forked from github/server
- Neue Orkrasse RC_URUK
Muss getestet werden. Langsameres Lernen nicht drin.
This commit is contained in:
parent
f1fc6dce4f
commit
0a0474df52
|
@ -245,7 +245,7 @@ expandrecruit(region * r, request * recruitorders)
|
|||
{
|
||||
/* Rekrutierung */
|
||||
|
||||
int i, n, p = rpeasants(r), h = rhorses(r);
|
||||
int i, n, p = rpeasants(r), h = rhorses(r), uruks = 0;
|
||||
int rfrac = p / RECRUITFRACTION;
|
||||
unit * u;
|
||||
|
||||
|
@ -266,7 +266,7 @@ expandrecruit(region * r, request * recruitorders)
|
|||
if (h <= 0) continue;
|
||||
} else if ((rc->ec_flags & ECF_REC_ETHEREAL) == 0) {
|
||||
/* recruit from peasants if any space left */
|
||||
if (n >= rfrac) continue;
|
||||
if (n - (uruks+1)/2 >= rfrac) continue;
|
||||
}
|
||||
}
|
||||
if (recruitcost) {
|
||||
|
@ -276,7 +276,10 @@ expandrecruit(region * r, request * recruitorders)
|
|||
if ((rc->ec_flags & ECF_REC_UNLIMITED)==0) {
|
||||
if (rc->ec_flags & ECF_REC_HORSES) h--; /* use a horse */
|
||||
else {
|
||||
if ((rc->ec_flags & ECF_REC_ETHEREAL)==0) p--; /* use a peasant */
|
||||
if ((rc->ec_flags & ECF_REC_ETHEREAL)==0) {
|
||||
p--; /* use a peasant */
|
||||
if(rc == new_race[RC_URUK]) uruks++;
|
||||
}
|
||||
n++;
|
||||
}
|
||||
}
|
||||
|
@ -286,7 +289,7 @@ expandrecruit(region * r, request * recruitorders)
|
|||
}
|
||||
|
||||
assert(p>=0 && h>=0);
|
||||
rsetpeasants(r, p);
|
||||
rsetpeasants(r, p+uruks/2);
|
||||
rsethorses(r, h);
|
||||
|
||||
free(oa);
|
||||
|
@ -295,7 +298,7 @@ expandrecruit(region * r, request * recruitorders)
|
|||
if (u->n >= 0) {
|
||||
if (u->number)
|
||||
u->hp += u->n * unit_max_hp(u);
|
||||
if (u->race == new_race[RC_ORC]) {
|
||||
if (u->race == new_race[RC_URUK]) {
|
||||
change_skill(u, SK_SWORD, skill_level(1) * u->n);
|
||||
change_skill(u, SK_SPEAR, skill_level(1) * u->n);
|
||||
}
|
||||
|
@ -365,12 +368,17 @@ recruit(region * r, unit * u, strlist * S,
|
|||
return;
|
||||
}
|
||||
|
||||
#if RACE_ADJUSTMENTS
|
||||
if (fval(r, RF_ORCIFIED) && u->faction->race != new_race[RC_URUK] &&
|
||||
#else
|
||||
if (fval(r, RF_ORCIFIED) && u->faction->race != new_race[RC_ORC] &&
|
||||
#endif
|
||||
!(u->faction->race->ec_flags & ECF_REC_HORSES)) {
|
||||
cmistake(u, S->s, 238, MSG_EVENT);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
recruitcost = u->faction->race->recruitcost;
|
||||
if (recruitcost) {
|
||||
pl = getplane(r);
|
||||
|
@ -537,6 +545,11 @@ givemen(int n, unit * u, unit * u2, const char * cmd)
|
|||
return;
|
||||
} else if (u == u2) {
|
||||
error = 10;
|
||||
#if RACE_ADJUSTMENTS
|
||||
} else if (u->race == new_race[RC_URUK]) {
|
||||
/* Uruks/Snotlings können nicht an Bauern übergeben werden. */
|
||||
error = 307;
|
||||
#endif
|
||||
} else if ((u && unit_has_cursed_item(u)) || (u2 && unit_has_cursed_item(u2))) {
|
||||
error = 78;
|
||||
} else if (fval(u, FL_LOCKED) || fval(u, FL_HUNGER) || is_cursed(u->attribs, C_SLAVE, 0)) {
|
||||
|
|
|
@ -1075,6 +1075,8 @@ randomevents(void)
|
|||
drown(r);
|
||||
}
|
||||
|
||||
|
||||
#if RACE_ADJUSTMENTS
|
||||
/* Orks vermehren sich */
|
||||
|
||||
for (r = regions; r; r = r->next) {
|
||||
|
@ -1129,6 +1131,7 @@ randomevents(void)
|
|||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Talente von Dämonen verschieben sich und Dämonen fressen Bauern */
|
||||
|
||||
|
|
|
@ -1324,8 +1324,6 @@ describe(FILE * F, region * r, int partial, faction * f)
|
|||
}
|
||||
}
|
||||
|
||||
extern const int wagetable[6][3];
|
||||
|
||||
void
|
||||
statistics(FILE * F, region * r, faction * f)
|
||||
{
|
||||
|
|
|
@ -132,7 +132,7 @@ setstealth(unit * u, strlist * S)
|
|||
if (u->race == new_race[RC_DAEMON]) {
|
||||
race_t allowed[] = { RC_DWARF, RC_ELF, RC_ORC, RC_GOBLIN, RC_HUMAN,
|
||||
RC_TROLL, RC_DAEMON, RC_INSECT, RC_HALFLING, RC_CAT, RC_AQUARIAN,
|
||||
NORACE };
|
||||
RC_URUK, NORACE };
|
||||
int i;
|
||||
for (i=0;allowed[i]!=NORACE;++i) if (new_race[allowed[i]]==trace) break;
|
||||
if (new_race[allowed[i]]==trace) {
|
||||
|
|
|
@ -682,11 +682,22 @@ weapon_skill(const weapon_type * wtype, const unit * u, boolean attacking)
|
|||
skill = effskill(u, SK_WEAPONLESS);
|
||||
if (skill==0) {
|
||||
/* wenn kein waffenloser kampf, dann den rassen-defaultwert */
|
||||
if(u->race == new_race[RC_URUK]) {
|
||||
int sword = effskill(u, SK_SWORD);
|
||||
int spear = effskill(u, SK_SPEAR);
|
||||
skill = max(sword, spear) - 3;
|
||||
if (attacking) {
|
||||
skill = max(skill, u->race->at_default);
|
||||
} else {
|
||||
skill = max(skill, u->race->df_default);
|
||||
}
|
||||
} else {
|
||||
if (attacking) {
|
||||
skill = u->race->at_default;
|
||||
} else {
|
||||
skill = u->race->df_default;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* der rassen-defaultwert kann höher sein als der Talentwert von
|
||||
* waffenloser kampf */
|
||||
|
|
|
@ -2764,7 +2764,8 @@ wage(const region *r, const unit *u, boolean img)
|
|||
if (b) esize = buildingeffsize(b, img);
|
||||
|
||||
if (u) {
|
||||
wage = wagetable[esize][old_race(u->race) == RC_ORC];
|
||||
/* TODO: Snotling! */
|
||||
wage = wagetable[esize][u->race == new_race[RC_ORC] || u->race == new_race[RC_URUK]];
|
||||
if (fspecial(u->faction, FS_URBAN)) {
|
||||
wage += wagetable[esize][3];
|
||||
}
|
||||
|
|
|
@ -616,34 +616,35 @@ enum {
|
|||
RC_HALFLING,
|
||||
RC_CAT,
|
||||
RC_AQUARIAN,
|
||||
RC_URUK,
|
||||
|
||||
RC_UNDEAD, /* 11 - Untoter */
|
||||
RC_UNDEAD, /* 12 - Untoter */
|
||||
RC_ILLUSION,
|
||||
RC_FIREDRAGON,
|
||||
RC_DRAGON,
|
||||
RC_WYRM,
|
||||
RC_TREEMAN,
|
||||
|
||||
RC_BIRTHDAYDRAGON, /* 17 - Katzendrache*/
|
||||
RC_BIRTHDAYDRAGON, /* 18 - Katzendrache*/
|
||||
RC_DRACOID,
|
||||
|
||||
RC_SPECIAL,
|
||||
RC_SPELL,
|
||||
|
||||
RC_IRONGOLEM, /* 21 - Eisengolem */
|
||||
RC_IRONGOLEM, /* 22 - Eisengolem */
|
||||
RC_STONEGOLEM,
|
||||
|
||||
RC_SHADOW,
|
||||
RC_SHADOWLORD,
|
||||
|
||||
RC_IRONKEEPER, /* 25 - Bergwächter */
|
||||
RC_IRONKEEPER, /* 26 - Bergwächter */
|
||||
RC_ALP,
|
||||
|
||||
RC_TOAD, /* 27 - Kröte */
|
||||
RC_TOAD, /* 28 - Kröte */
|
||||
RC_HIRNTOETER,
|
||||
|
||||
RC_PEASANT,
|
||||
RC_WOLF, /* 30 */
|
||||
RC_WOLF, /* 31 */
|
||||
|
||||
RC_HOUSECAT,
|
||||
RC_TUNNELWORM,
|
||||
|
@ -654,7 +655,7 @@ enum {
|
|||
RC_UNICORN,
|
||||
RC_WARG,
|
||||
RC_WRAITH,
|
||||
RC_IMP, /* 40 */
|
||||
RC_IMP, /* 41 */
|
||||
RC_DREAMCAT,
|
||||
RC_FEY,
|
||||
RC_OWL,
|
||||
|
@ -664,7 +665,7 @@ enum {
|
|||
RC_OCEANTURTLE,
|
||||
RC_KRAKEN,
|
||||
RC_SEASERPENT,
|
||||
RC_SHADOWKNIGHT, /* 50 */
|
||||
RC_SHADOWKNIGHT, /* 51 */
|
||||
|
||||
RC_CENTAUR,
|
||||
|
||||
|
@ -675,10 +676,11 @@ enum {
|
|||
RC_GHOUL,
|
||||
RC_GHOUL_LORD,
|
||||
|
||||
RC_MUS_SPIRIT, /* 58 */
|
||||
RC_GNOME, /* 59 */
|
||||
RC_TEMPLATE, /* 60 */
|
||||
RC_CLONE, /* 61 */
|
||||
RC_MUS_SPIRIT, /* 59 */
|
||||
RC_GNOME, /* 60 */
|
||||
RC_TEMPLATE, /* 61 */
|
||||
RC_CLONE, /* 62 */
|
||||
|
||||
|
||||
MAXRACES,
|
||||
NORACE = (race_t) - 1
|
||||
|
|
|
@ -155,7 +155,7 @@ const struct race_syn race_synonyms[] = {
|
|||
|
||||
/* required for old_race, do not change order! */
|
||||
static const char * oldracenames[MAXRACES] = {
|
||||
"dwarf", "elf", "orc", "goblin", "human", "troll", "demon", "insect", "halfling", "cat", "aquarian",
|
||||
"dwarf", "elf", "orc", "goblin", "human", "troll", "demon", "insect", "halfling", "cat", "aquarian", "uruk"
|
||||
"undead", "illusion",
|
||||
"young dragon", "dragon", "wyrm", "ent", "catdragon", "dracoid",
|
||||
"special", "spell",
|
||||
|
@ -208,6 +208,7 @@ give_starting_equipment(struct region *r, struct unit *u)
|
|||
set_show_item(u->faction, I_FEENSTIEFEL);
|
||||
break;
|
||||
case RC_ORC:
|
||||
case RC_URUK:
|
||||
set_level(u, SK_SPEAR, 4);
|
||||
set_level(u, SK_SWORD, 4);
|
||||
set_level(u, SK_CROSSBOW, 4);
|
||||
|
|
|
@ -4287,7 +4287,7 @@
|
|||
<text locale="en">"$unit($unit) in $region($region): '$command' - options ZIP and BZIP2 can only be switched, not turned off."</text>
|
||||
</message>
|
||||
|
||||
<message name="error305">
|
||||
<message name="error306">
|
||||
<type>
|
||||
<arg name="unit" type="unit"></arg>
|
||||
<arg name="region" type="region"></arg>
|
||||
|
@ -4300,6 +4300,19 @@
|
|||
</locale>
|
||||
</message>
|
||||
|
||||
<message name="error307">
|
||||
<type>
|
||||
<arg name="unit" type="unit"></arg>
|
||||
<arg name="region" type="region"></arg>
|
||||
<arg name="command" type="string"></arg>
|
||||
</type>
|
||||
<locale name="de">
|
||||
<nr section="errors">
|
||||
<text>"$unit($unit) in $region($region): '$command' - Orks sind keine Bauern."</text>
|
||||
</nr>
|
||||
</locale>
|
||||
</message>
|
||||
|
||||
<message name="drown_on_ship">
|
||||
<type>
|
||||
<arg name="unit" type="unit"></arg>
|
||||
|
|
|
@ -1861,6 +1861,12 @@
|
|||
<string name="Orks">
|
||||
<text locale="de">Orks</text>
|
||||
</string>
|
||||
<string name="Uruk">
|
||||
<text locale="de">Ork</text>
|
||||
</string>
|
||||
<string name="Uruks">
|
||||
<text locale="de">Orks</text>
|
||||
</string>
|
||||
<string name="Riesenschildkröte">
|
||||
<text locale="de">Riesenschildkröte</text>
|
||||
</string>
|
||||
|
@ -2013,6 +2019,12 @@
|
|||
<string name="rc_orc">
|
||||
<text locale="de">Ork</text>
|
||||
</string>
|
||||
<string name="rc_uruk_p">
|
||||
<text locale="de">Orks</text>
|
||||
</string>
|
||||
<string name="rc_uruk">
|
||||
<text locale="de">Ork</text>
|
||||
</string>
|
||||
<string name="rc_zombie">
|
||||
<text locale="de">Zombie</text>
|
||||
</string>
|
||||
|
|
|
@ -1691,8 +1691,14 @@
|
|||
<text locale="en">orc</text>
|
||||
</string>
|
||||
<string name="Orks">
|
||||
<text locale="en">orcs</text>
|
||||
</string>
|
||||
<string name="Uruk">
|
||||
<text locale="en">orc</text>
|
||||
</string>
|
||||
<string name="Uruks">
|
||||
<text locale="en">orcs</text>
|
||||
</string>
|
||||
<string name="Riesenschildkröte">
|
||||
<text locale="en">giant turtle</text>
|
||||
</string>
|
||||
|
|
|
@ -1093,7 +1093,7 @@
|
|||
<familiar race="eagle"></familiar>
|
||||
<familiar race="imp"></familiar>
|
||||
</race>
|
||||
<race name="goblin" magres="-0.050000" maxaura="1.000000" regaura="1.000000" recruitcost="40" maintenance="10" weight="1000" speed="1.000000" hp="16" ac="0" damage="1d5" unarmedattack="-2" unarmeddefense="0" attackmodifier="0" defensemodifier="0" playerrace walk giveitem giveperson giveunit getitem equipment>
|
||||
<race name="goblin" magres="-0.050000" maxaura="1.000000" regaura="1.000000" recruitcost="40" maintenance="10" weight="900" speed="1.000000" hp="16" ac="0" damage="1d5" unarmedattack="-2" unarmeddefense="0" attackmodifier="0" defensemodifier="0" playerrace walk giveitem giveperson giveunit getitem equipment>
|
||||
<ai splitsize="10000" attackrandom moverandom learn></ai>
|
||||
<function name="initfamiliar" value="oldfamiliars"></function>
|
||||
<skill name="sk_alchemy" modifier="1"></skill>
|
||||
|
@ -1173,7 +1173,7 @@
|
|||
<familiar race="unicorn"></familiar>
|
||||
<familiar race="imp"></familiar>
|
||||
</race>
|
||||
<race name="dwarf" magres="0.050000" maxaura="1.000000" regaura="0.500000" recruitcost="90" maintenance="10" weight="1000" speed="1.000000" hp="24" ac="0" damage="1d5" unarmedattack="-2" unarmeddefense="-2" attackmodifier="0" defensemodifier="0" playerrace walk giveitem giveperson giveunit getitem equipment>
|
||||
<race name="dwarf" magres="0.050000" maxaura="1.000000" regaura="0.500000" recruitcost="110" maintenance="10" weight="1000" speed="1.000000" hp="24" ac="0" damage="1d5" unarmedattack="-2" unarmeddefense="-2" attackmodifier="0" defensemodifier="0" playerrace walk giveitem giveperson giveunit getitem equipment>
|
||||
<ai splitsize="10000" attackrandom moverandom learn></ai>
|
||||
<skill name="sk_mining" modifier="2"></skill>
|
||||
<skill name="sk_bow" modifier="-1"></skill>
|
||||
|
@ -1204,4 +1204,33 @@
|
|||
<familiar race="wolf"></familiar>
|
||||
<familiar race="rat"></familiar>
|
||||
</race>
|
||||
<race name="uruk" magres="-0.050000" maxaura="1.000000" regaura="1.000000" recruitcost="70" maintenance="10" weight="1000" speed="1.000000" hp="24" ac="0" damage="1d5" unarmedattack="-2" unarmeddefense="-2" attackmodifier="0" defensemodifier="0" playerrace walk giveitem giveperson giveunit getitem equipment>
|
||||
<ai splitsize="10000" attackrandom moverandom learn></ai>
|
||||
<skill name="sk_alchemy" modifier="1"></skill>
|
||||
<skill name="sk_mining" modifier="1"></skill>
|
||||
<skill name="sk_building" modifier="1"></skill>
|
||||
<skill name="sk_trade" modifier="-3"></skill>
|
||||
<skill name="sk_forestry" modifier="1"></skill>
|
||||
<skill name="sk_herbalism" modifier="-2"></skill>
|
||||
<skill name="sk_magic" modifier="-1"></skill>
|
||||
<skill name="sk_training" modifier="-1"></skill>
|
||||
<skill name="sk_armorer" modifier="1"></skill>
|
||||
<skill name="sk_shipcraft" modifier="-1"></skill>
|
||||
<skill name="sk_sailing" modifier="-1"></skill>
|
||||
<skill name="sk_espionage" modifier="-1"></skill>
|
||||
<skill name="sk_quarrying" modifier="1"></skill>
|
||||
<skill name="sk_tactics" modifier="1"></skill>
|
||||
<skill name="sk_entertainment" modifier="-2"></skill>
|
||||
<skill name="sk_weaponsmithing" modifier="2"></skill>
|
||||
<skill name="sk_cartmaking" modifier="-1"></skill>
|
||||
<skill name="sk_taxation" modifier="1"></skill>
|
||||
<skill name="sk_unarmed" modifier="-99"></skill>
|
||||
<attack type="1" damage="1d5"></attack>
|
||||
<familiar race="goblin" default></familiar>
|
||||
<familiar race="ghost"></familiar>
|
||||
<familiar race="imp"></familiar>
|
||||
<familiar race="rat"></familiar>
|
||||
<familiar race="wolf"></familiar>
|
||||
<familiar race="demon"></familiar>
|
||||
</race>
|
||||
</races>
|
||||
|
|
Loading…
Reference in New Issue