forked from github/server
- Armbruständerung (#define CHANGED_CROSSBOWS 1)
This commit is contained in:
parent
059427e309
commit
4e98600738
|
@ -84,11 +84,12 @@ enum {
|
||||||
RL_NONE
|
RL_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Schadenstypen */
|
/* damage types */
|
||||||
|
|
||||||
#define CUT (1<<0)
|
#define CUT (1<<0)
|
||||||
#define PIERCE (1<<1)
|
#define PIERCE (1<<1)
|
||||||
#define BASH (1<<2)
|
#define BASH (1<<2)
|
||||||
|
#define ARMORPIERCING (1<<3)
|
||||||
|
|
||||||
typedef struct weapondata {
|
typedef struct weapondata {
|
||||||
double magres;
|
double magres;
|
||||||
|
@ -124,7 +125,11 @@ static weapondata weapontable[WP_MAX + 1] =
|
||||||
/* Langbogen */
|
/* Langbogen */
|
||||||
{0.00, "1d11+1", "1d11+1", I_LONGBOW, SK_LONGBOW, 0, 0, true, false, { RL_NONE, 0 }, PIERCE },
|
{0.00, "1d11+1", "1d11+1", I_LONGBOW, SK_LONGBOW, 0, 0, true, false, { RL_NONE, 0 }, PIERCE },
|
||||||
/* Armbrust */
|
/* Armbrust */
|
||||||
|
#if CHANGED_CROSSBOWS == 1
|
||||||
|
{0.00, "3d3+5", "3d3+5", I_CROSSBOW, SK_CROSSBOW, 0, 0, true, false, { RL_CROSSBOW, 2 }, PIERCE | ARMORPIERCING },
|
||||||
|
#else
|
||||||
{0.00, "3d3+5", "3d3+5", I_CROSSBOW, SK_CROSSBOW, 0, 0, true, false, { RL_CROSSBOW, 1 }, PIERCE },
|
{0.00, "3d3+5", "3d3+5", I_CROSSBOW, SK_CROSSBOW, 0, 0, true, false, { RL_CROSSBOW, 1 }, PIERCE },
|
||||||
|
#endif
|
||||||
/* Speer */
|
/* Speer */
|
||||||
{0.00, "1d10+0", "1d12+2", I_SPEAR, SK_SPEAR, 0, 0, false, false, { RL_NONE, 0}, PIERCE },
|
{0.00, "1d10+0", "1d12+2", I_SPEAR, SK_SPEAR, 0, 0, false, false, { RL_NONE, 0}, PIERCE },
|
||||||
/* Zweihänder */
|
/* Zweihänder */
|
||||||
|
@ -304,6 +309,7 @@ init_oldweapons(void)
|
||||||
if (weapontable[w].damage_type & CUT) wflags |= WTF_CUT;
|
if (weapontable[w].damage_type & CUT) wflags |= WTF_CUT;
|
||||||
if (weapontable[w].damage_type & PIERCE) wflags |= WTF_PIERCE;
|
if (weapontable[w].damage_type & PIERCE) wflags |= WTF_PIERCE;
|
||||||
if (weapontable[w].damage_type & BASH) wflags |= WTF_BLUNT;
|
if (weapontable[w].damage_type & BASH) wflags |= WTF_BLUNT;
|
||||||
|
if (weapontable[w].damage_type & ARMORPIERCING) wflags |= WTF_ARMORPIERCING;
|
||||||
|
|
||||||
damage[0] = weapontable[w].damfoot;
|
damage[0] = weapontable[w].damfoot;
|
||||||
damage[1] = weapontable[w].damhorse;
|
damage[1] = weapontable[w].damhorse;
|
||||||
|
|
|
@ -1001,14 +1001,19 @@ terminate(troop dt, troop at, int type, const char *damage, boolean missile)
|
||||||
int armor = select_armor(dt);
|
int armor = select_armor(dt);
|
||||||
int shield = select_shield(dt);
|
int shield = select_shield(dt);
|
||||||
|
|
||||||
int da = dice_rand(damage);
|
|
||||||
int rda, sk = 0, sd;
|
|
||||||
boolean magic = false;
|
|
||||||
|
|
||||||
const weapon_type *dwtype = NULL;
|
const weapon_type *dwtype = NULL;
|
||||||
const weapon_type *awtype = NULL;
|
const weapon_type *awtype = NULL;
|
||||||
const weapon * weapon;
|
const weapon * weapon;
|
||||||
|
|
||||||
|
int rda, sk = 0, sd;
|
||||||
|
boolean magic = false;
|
||||||
|
int da = dice_rand(damage);
|
||||||
|
|
||||||
|
if(fval(au, UFL_WERE)) {
|
||||||
|
int level = fspecial(du->faction, FS_LYCANTROPE);
|
||||||
|
da += level;
|
||||||
|
}
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case AT_STANDARD:
|
case AT_STANDARD:
|
||||||
weapon = select_weapon(at, true, true);
|
weapon = select_weapon(at, true, true);
|
||||||
|
@ -1030,20 +1035,28 @@ terminate(troop dt, troop at, int type, const char *damage, boolean missile)
|
||||||
sd = weapon_effskill(dt, at, weapon, false, false);
|
sd = weapon_effskill(dt, at, weapon, false, false);
|
||||||
if (weapon!=NULL) dwtype=weapon->type;
|
if (weapon!=NULL) dwtype=weapon->type;
|
||||||
|
|
||||||
/* Magischer Schaden durch Sprüche oder magische Waffen? */
|
|
||||||
|
|
||||||
ar = armordata[armor].prot;
|
ar = armordata[armor].prot;
|
||||||
ar += armordata[shield].prot;
|
ar += armordata[shield].prot;
|
||||||
|
|
||||||
/* natürliche Rüstung */
|
/* natürliche Rüstung */
|
||||||
an = du->race->armor;
|
an = du->race->armor;
|
||||||
if(fval(du, UFL_WERE)) {
|
|
||||||
int level = fspecial(du->faction, FS_LYCANTROPE);
|
|
||||||
an += level;
|
|
||||||
da += level;
|
|
||||||
}
|
|
||||||
/* magische Rüstung durch Artefakte oder Sprüche */
|
/* magische Rüstung durch Artefakte oder Sprüche */
|
||||||
/* Momentan nur Trollgürtel */
|
/* Momentan nur Trollgürtel und Werwolf-Eigenschaft */
|
||||||
am = select_magicarmor(dt);
|
am = select_magicarmor(dt);
|
||||||
|
if(fval(du, UFL_WERE)) {
|
||||||
|
/* this counts as magical armor */
|
||||||
|
int level = fspecial(du->faction, FS_LYCANTROPE);
|
||||||
|
am += level;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if CHANGED_CROSSBOWS == 1
|
||||||
|
if(fval(awtype,ARMORPIERCING)) {
|
||||||
|
/* crossbows */
|
||||||
|
ar /= 2;
|
||||||
|
an /= 2;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* natürliche Rüstung ist halbkumulativ */
|
/* natürliche Rüstung ist halbkumulativ */
|
||||||
if (ar>0) {
|
if (ar>0) {
|
||||||
|
|
|
@ -181,6 +181,7 @@ typedef struct weapon_mod {
|
||||||
#define WTF_CUT 0x08
|
#define WTF_CUT 0x08
|
||||||
#define WTF_BLUNT 0x10
|
#define WTF_BLUNT 0x10
|
||||||
#define WTF_BOW 0x20 /* elves like 'em */
|
#define WTF_BOW 0x20 /* elves like 'em */
|
||||||
|
#define WTF_ARMORPIERCING 0x40 /* armor has only half value */
|
||||||
|
|
||||||
typedef struct weapon_type {
|
typedef struct weapon_type {
|
||||||
const item_type * itype;
|
const item_type * itype;
|
||||||
|
|
|
@ -35,4 +35,5 @@
|
||||||
#define RESOURCE_QUANTITY 1.0
|
#define RESOURCE_QUANTITY 1.0
|
||||||
#define RECRUITFRACTION 5
|
#define RECRUITFRACTION 5
|
||||||
#define CATAPULT_AMMUNITION 0 /* Gebaut werden kann sie auch mit 0! */
|
#define CATAPULT_AMMUNITION 0 /* Gebaut werden kann sie auch mit 0! */
|
||||||
|
#define CHANGED_CROSSBOWS 0
|
||||||
|
|
||||||
|
|
|
@ -30,9 +30,10 @@
|
||||||
#define SKILLPOINTS 0
|
#define SKILLPOINTS 0
|
||||||
#define NEW_MIGRATION 1
|
#define NEW_MIGRATION 1
|
||||||
#define PEASANTS_DO_NOT_STARVE 0
|
#define PEASANTS_DO_NOT_STARVE 0
|
||||||
#define GUARD_DISABLES_RECRUIT 1
|
#define GUARD_DISABLES_RECRUIT 0
|
||||||
#define GUARD_DISABLES_PRODUCTION 1
|
#define GUARD_DISABLES_PRODUCTION 0
|
||||||
#define RESOURCE_QUANTITY 0.5
|
#define RESOURCE_QUANTITY 1.0
|
||||||
#define RECRUITFRACTION 5
|
#define RECRUITFRACTION 10
|
||||||
#define CATAPULT_AMMUNITION 1
|
#define CATAPULT_AMMUNITION 0
|
||||||
|
#define CHANGED_CROSSBOWS 0
|
||||||
|
|
||||||
|
|
|
@ -33,4 +33,5 @@
|
||||||
#define RESOURCE_QUANTITY 1.0
|
#define RESOURCE_QUANTITY 1.0
|
||||||
#define RECRUITFRACTION 20
|
#define RECRUITFRACTION 20
|
||||||
#define CATAPULT_AMMUNITION 0
|
#define CATAPULT_AMMUNITION 0
|
||||||
|
#define CHANGED_CROSSBOWS 0
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
#define RESOURCE_QUANTITY 1.0
|
#define RESOURCE_QUANTITY 1.0
|
||||||
#define RECRUITFRACTION 5
|
#define RECRUITFRACTION 5
|
||||||
#define CATAPULT_AMMUNITION 1
|
#define CATAPULT_AMMUNITION 1
|
||||||
|
#define CHANGED_CROSSBOWS 0
|
||||||
|
|
||||||
#define VICTORY_CONDITION VICTORY_MURDER
|
#define VICTORY_CONDITION VICTORY_MURDER
|
||||||
#define VICTORY_DELAY 4
|
#define VICTORY_DELAY 4
|
||||||
|
|
|
@ -33,4 +33,5 @@
|
||||||
#define RESOURCE_QUANTITY 1.0
|
#define RESOURCE_QUANTITY 1.0
|
||||||
#define RECRUITFRACTION 20
|
#define RECRUITFRACTION 20
|
||||||
#define CATAPULT_AMMUNITION 0
|
#define CATAPULT_AMMUNITION 0
|
||||||
|
#define CHANGED_CROSSBOWS 0
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue