allow nurses heal attack when wielding a non-weapon/weaptool
if riding or levitating, hero could apply bullwhip downward to pull up things
from underwater or lava; feedback implied the item was on the surface
+some monster code was checking whether pets or engulfers were eating green
+ slime by checking for green slime corpse instead of glob
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
if (obj->otyp == CORPSE) {
could_petrify = touch_petrifies(&mons[obj->corpsenm]);
could_poly = polyfodder(obj);
- could_slime = (obj->corpsenm == PM_GREEN_SLIME);
could_grow = (obj->corpsenm == PM_WRAITH);
could_heal = (obj->corpsenm == PM_NURSE);
+ } else if (obj->otyp == GLOB_OF_GREEN_SLIME) {
+ could_slime = TRUE;
}
if (is_unpaid(obj))
(void) stolen_value(obj, u.ux, u.uy, TRUE, FALSE);
could_poly ? (struct permonst *) 0
: &mons[PM_GREEN_SLIME],
FALSE, could_slime);
- delobj(obj); /* corpse is digested */
+ delobj(obj); /* corpse or glob is digested */
} else if (could_petrify) {
minstapetrify(u.ustuck, TRUE);
/* Don't leave a cockatrice corpse in a statue */
|| (acidic(fptr) && !resists_acid(mon))
|| (poisonous(fptr) && !resists_poison(mon)))
return POISON;
- /* turning into slime is preferable to starvation */
- else if (fptr == &mons[PM_GREEN_SLIME] && !slimeproof(mon->data))
- return starving ? ACCFOOD : POISON;
- /* polymorphing is preferable to starvation, and the pet might also
- * want to take their chances on it if they've been mistreated */
+ /* polymorphing is preferable to starvation, and pet might also
+ want to take its chances on that if they've been mistreated */
else if (is_shapeshifter(fptr)) {
if (mon->mtame == 1) {
- /* A herbivore still won't eat a nonvegan corpse, but in any
- * other circumstance a pet with tameness 1 will happily eat
- * a shapeshifter. */
+ /* A herbivore still won't eat a nonvegan corpse, but
+ in any other circumstance a pet with tameness 1 will
+ happily eat a shapeshifter. */
return (herbi && !vegan(fptr)) ? MANFOOD : CADAVER;
}
return starving ? ACCFOOD : MANFOOD;
- }
- else if (vegan(fptr))
+ } else if (vegan(fptr))
return herbi ? CADAVER : MANFOOD;
/* most humanoids will avoid cannibalism unless starving;
arbitrary: elves won't eat other elves even then */
return (starving && carni && !is_elf(mptr)) ? ACCFOOD : TABU;
else
return carni ? CADAVER : MANFOOD;
+ case GLOB_OF_GREEN_SLIME: /* other globs use the default case */
+ /* turning into slime is preferable to starvation */
+ return (starving || slimeproof(mon->data)) ? ACCFOOD : POISON;
case CLOVE_OF_GARLIC:
return (is_undead(mptr) || is_vampshifter(mon))
? TABU
deadmimic = (obj->otyp == CORPSE && (obj->corpsenm == PM_SMALL_MIMIC
|| obj->corpsenm == PM_LARGE_MIMIC
|| obj->corpsenm == PM_GIANT_MIMIC));
- slimer = (obj->otyp == CORPSE && obj->corpsenm == PM_GREEN_SLIME);
+ slimer = (obj->otyp == GLOB_OF_GREEN_SLIME);
poly = polyfodder(obj);
grow = mlevelgain(obj);
heal = mhealup(obj);