Mild Zombie Apocalypse
When a zombie (or lich) kills a monster in melee without a weapon, the monster can rise few turns later as a zombie. The only creatures that can be zombified are ones that actually have a zombie counterpart monster. A zombie cannot turn a jackal into a zombie, for instance. But it could turn a shopkeeper into a human zombie, or a dwarf king into a dwarf zombie. Zombies will fight with monsters that can be turned into zombies. Originally this was a SliceHack feature, but this is based on xNetHack version of it, with some modifications.
This commit is contained in:
22
src/do.c
22
src/do.c
@@ -1982,6 +1982,28 @@ long timeout UNUSED;
|
||||
}
|
||||
}
|
||||
|
||||
/* Timeout callback. Revive the corpse as a zombie. */
|
||||
/*ARGSUSED*/
|
||||
void
|
||||
zombify_mon(arg, timeout)
|
||||
anything *arg;
|
||||
long timeout UNUSED;
|
||||
{
|
||||
struct obj *body = arg->a_obj;
|
||||
int zmon = zombie_form(&mons[body->corpsenm]);
|
||||
|
||||
if (zmon != NON_PM) {
|
||||
|
||||
if (has_omid(body))
|
||||
free_omid(body);
|
||||
if (has_omonst(body))
|
||||
free_omonst(body);
|
||||
|
||||
body->corpsenm = zmon;
|
||||
revive_mon(arg, timeout);
|
||||
}
|
||||
}
|
||||
|
||||
boolean
|
||||
cmd_safety_prevention(cmddesc, act, flagcounter)
|
||||
const char *cmddesc;
|
||||
|
||||
Reference in New Issue
Block a user