forked from github/server
- herbs do not rot
- hungry demons can only go down
This commit is contained in:
parent
3ca03e3145
commit
ad9dc82cfd
3 changed files with 30 additions and 5 deletions
|
@ -1069,10 +1069,26 @@ demon_skillchanges(void)
|
||||||
for (u = r->units; u; u = u->next) {
|
for (u = r->units; u; u = u->next) {
|
||||||
if (u->race == new_race[RC_DAEMON]) {
|
if (u->race == new_race[RC_DAEMON]) {
|
||||||
skill * sv = u->skills;
|
skill * sv = u->skills;
|
||||||
|
int upchance = 15;
|
||||||
|
int downchance = 10;
|
||||||
|
|
||||||
|
if (fval(u, UFL_HUNGER)) {
|
||||||
|
/* hungry demons only go down, never up in skill */
|
||||||
|
static int rule_hunger = -1;
|
||||||
|
if (rule_hunger<0) {
|
||||||
|
rule_hunger = get_param_int(global.parameters, "hunger.demon.skill", 0);
|
||||||
|
}
|
||||||
|
if (rule_hunger) {
|
||||||
|
upchance = 0;
|
||||||
|
downchance = 15;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
while (sv!=u->skills+u->skill_size) {
|
while (sv!=u->skills+u->skill_size) {
|
||||||
if (sv->level>0 && rng_int() % 100 < 25) {
|
int roll = rng_int() % 100;
|
||||||
|
if (sv->level>0 && roll < upchance+downchance) {
|
||||||
int weeks = 1+rng_int()%3;
|
int weeks = 1+rng_int()%3;
|
||||||
if (rng_int() % 100 < 40) {
|
if (roll < downchance) {
|
||||||
reduce_skill(u, sv, weeks);
|
reduce_skill(u, sv, weeks);
|
||||||
} else {
|
} else {
|
||||||
while (weeks--) learn_skill(u, sv->id, 1.0);
|
while (weeks--) learn_skill(u, sv->id, 1.0);
|
||||||
|
@ -1133,14 +1149,21 @@ karma_update(void)
|
||||||
static void
|
static void
|
||||||
rotting_herbs(void)
|
rotting_herbs(void)
|
||||||
{
|
{
|
||||||
|
static int rule_rot = -1;
|
||||||
region * r;
|
region * r;
|
||||||
|
|
||||||
|
if (rule_rot<0) {
|
||||||
|
rule_rot = get_param_int(global.parameters, "rules.economy.herbrot", HERBROTCHANCE);
|
||||||
|
}
|
||||||
|
if (rule_rot==0) return;
|
||||||
|
|
||||||
for (r = regions; r; r = r->next) {
|
for (r = regions; r; r = r->next) {
|
||||||
unit * u;
|
unit * u;
|
||||||
for (u = r->units; u; u=u->next) {
|
for (u = r->units; u; u=u->next) {
|
||||||
item **itmp = &u->items, *hbag = *i_find(itmp, olditemtype[I_SACK_OF_CONSERVATION]);
|
item **itmp = &u->items, *hbag = *i_find(itmp, olditemtype[I_SACK_OF_CONSERVATION]);
|
||||||
int rot_chance = HERBROTCHANCE;
|
int rot_chance = rule_rot;
|
||||||
|
|
||||||
if (hbag) rot_chance = (HERBROTCHANCE*2)/5;
|
if (hbag) rot_chance = (rot_chance*2)/5;
|
||||||
while (*itmp) {
|
while (*itmp) {
|
||||||
item * itm = *itmp;
|
item * itm = *itmp;
|
||||||
int n = itm->number;
|
int n = itm->number;
|
||||||
|
|
|
@ -116,6 +116,7 @@
|
||||||
<param name="nmr.removenewbie" value="0"/>
|
<param name="nmr.removenewbie" value="0"/>
|
||||||
<param name="GiveRestriction" value="3"/>
|
<param name="GiveRestriction" value="3"/>
|
||||||
<param name="hunger.long" value="0"/>
|
<param name="hunger.long" value="0"/>
|
||||||
|
<param name="hunger.demon.skill" value="1"/>
|
||||||
<param name="init_spells" value="0"/>
|
<param name="init_spells" value="0"/>
|
||||||
<param name="hunger.damage" value="1d9+9"/>
|
<param name="hunger.damage" value="1d9+9"/>
|
||||||
<param name="recruit.allow_merge" value="1"/>
|
<param name="recruit.allow_merge" value="1"/>
|
||||||
|
@ -132,6 +133,7 @@
|
||||||
<param name="rules.magic.playerschools" value="gwyrrd illaun draig cerddor"/>
|
<param name="rules.magic.playerschools" value="gwyrrd illaun draig cerddor"/>
|
||||||
<param name="rules.economy.taxation" value="1"/>
|
<param name="rules.economy.taxation" value="1"/>
|
||||||
<param name="rules.economy.roqf" value="5"/>
|
<param name="rules.economy.roqf" value="5"/>
|
||||||
|
<param name="rules.economy.herbrot" value="0"/>
|
||||||
<param name="rules.give" value="11"/> <!-- only self + peasants + ondeath -->
|
<param name="rules.give" value="11"/> <!-- only self + peasants + ondeath -->
|
||||||
<param name="rules.help.mask" value="fight guard money"/>
|
<param name="rules.help.mask" value="fight guard money"/>
|
||||||
<param name="movement.shipspeed.skillbonus" value="7"/>
|
<param name="movement.shipspeed.skillbonus" value="7"/>
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
<familiar race="giantturtle"/>
|
<familiar race="giantturtle"/>
|
||||||
</race>
|
</race>
|
||||||
|
|
||||||
<race name="halfling" magres="0.05" maxaura="1.0" regaura="1.0" recruitcost="100" maintenance="10" weight="1000" capacity="540" speed="1.0" hp="20" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
|
<race name="halfling" defensemodifier="1" magres="0.05" maxaura="1.0" regaura="1.0" recruitcost="100" maintenance="10" weight="1000" capacity="540" speed="1.0" hp="20" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
|
||||||
<ai splitsize="10000" moverandom="yes" learn="yes"/>
|
<ai splitsize="10000" moverandom="yes" learn="yes"/>
|
||||||
<function name="itemdrop" value="defaultdrops"/>
|
<function name="itemdrop" value="defaultdrops"/>
|
||||||
<param name="other_race" value="dwarf"/>
|
<param name="other_race" value="dwarf"/>
|
||||||
|
|
Loading…
Reference in a new issue