Make Death revive faster
Death will revive faster than the other riders. Make all the riders revive after 67 turns, instead of 500. There was practically a zero chance a rider would revive at 500, so keep it somewhat sensible.
This commit is contained in:
@@ -336,6 +336,7 @@ when fire damage dried a wet towel, it would never reduce the wetness to 0
|
|||||||
when water damage wet a towel, the new wetness might randomly become less
|
when water damage wet a towel, the new wetness might randomly become less
|
||||||
when the wetness of a towel in inventory changed, persistent inventory wasn't
|
when the wetness of a towel in inventory changed, persistent inventory wasn't
|
||||||
updated to show that
|
updated to show that
|
||||||
|
make Death revive earlier, and all the Riders after 67 turns at latest
|
||||||
|
|
||||||
|
|
||||||
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
|
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
|
||||||
|
|||||||
@@ -1415,6 +1415,7 @@ E struct obj *FDECL(mk_named_object,
|
|||||||
(int, struct permonst *, int, int, const char *));
|
(int, struct permonst *, int, int, const char *));
|
||||||
E struct obj *FDECL(rnd_treefruit_at, (int, int));
|
E struct obj *FDECL(rnd_treefruit_at, (int, int));
|
||||||
E void FDECL(set_corpsenm, (struct obj *, int));
|
E void FDECL(set_corpsenm, (struct obj *, int));
|
||||||
|
E long FDECL(rider_revival_time, (struct obj *, BOOLEAN_P));
|
||||||
E void FDECL(start_corpse_timeout, (struct obj *));
|
E void FDECL(start_corpse_timeout, (struct obj *));
|
||||||
E void FDECL(bless, (struct obj *));
|
E void FDECL(bless, (struct obj *));
|
||||||
E void FDECL(unbless, (struct obj *));
|
E void FDECL(unbless, (struct obj *));
|
||||||
|
|||||||
@@ -1960,9 +1960,7 @@ long timeout UNUSED;
|
|||||||
|
|
||||||
if (is_rider(mptr) && rn2(99)) { /* Rider usually tries again */
|
if (is_rider(mptr) && rn2(99)) { /* Rider usually tries again */
|
||||||
action = REVIVE_MON;
|
action = REVIVE_MON;
|
||||||
for (when = 3L; when < 67L; when++)
|
when = rider_revival_time(body, TRUE);
|
||||||
if (!rn2(3))
|
|
||||||
break;
|
|
||||||
} else { /* rot this corpse away */
|
} else { /* rot this corpse away */
|
||||||
You_feel("%sless hassled.", is_rider(mptr) ? "much " : "");
|
You_feel("%sless hassled.", is_rider(mptr) ? "much " : "");
|
||||||
action = ROT_CORPSE;
|
action = ROT_CORPSE;
|
||||||
|
|||||||
+18
-8
@@ -1146,6 +1146,23 @@ int id;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the number of turns after which a Rider corpse revives */
|
||||||
|
long
|
||||||
|
rider_revival_time(body, retry)
|
||||||
|
struct obj *body;
|
||||||
|
boolean retry;
|
||||||
|
{
|
||||||
|
long when;
|
||||||
|
long minturn = retry ? 3L : (body->corpsenm == PM_DEATH) ? 6L : 12L;
|
||||||
|
|
||||||
|
/* Riders have a 1/3 chance per turn of reviving after 12, 6, or 3 turns.
|
||||||
|
Always revive by 67. */
|
||||||
|
for (when = minturn; when < 67L; when++)
|
||||||
|
if (!rn2(3))
|
||||||
|
break;
|
||||||
|
return when;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Start a corpse decay or revive timer.
|
* Start a corpse decay or revive timer.
|
||||||
* This takes the age of the corpse into consideration as of 3.4.0.
|
* This takes the age of the corpse into consideration as of 3.4.0.
|
||||||
@@ -1178,15 +1195,8 @@ struct obj *body;
|
|||||||
when += (long) (rnz(rot_adjust) - rot_adjust);
|
when += (long) (rnz(rot_adjust) - rot_adjust);
|
||||||
|
|
||||||
if (is_rider(&mons[body->corpsenm])) {
|
if (is_rider(&mons[body->corpsenm])) {
|
||||||
/*
|
|
||||||
* Riders always revive. They have a 1/3 chance per turn
|
|
||||||
* of reviving after 12 turns. Always revive by 500.
|
|
||||||
*/
|
|
||||||
action = REVIVE_MON;
|
action = REVIVE_MON;
|
||||||
for (when = 12L; when < 500L; when++)
|
when = rider_revival_time(body, FALSE);
|
||||||
if (!rn2(3))
|
|
||||||
break;
|
|
||||||
|
|
||||||
} else if (mons[body->corpsenm].mlet == S_TROLL && !no_revival) {
|
} else if (mons[body->corpsenm].mlet == S_TROLL && !no_revival) {
|
||||||
long age;
|
long age;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user