1
0
Fork 0
mirror of https://codeberg.org/noisytoot/notnotdnethack.git synced 2025-05-11 09:45:09 +01:00

Flux slimes also inflict sliming

This commit is contained in:
Chris-plus-alphanumericgibberish 2015-02-17 03:47:57 -05:00 committed by Edoardo Spadolini
parent 4368661534
commit f56fd09455
6 changed files with 18 additions and 12 deletions

View file

@ -561,7 +561,7 @@ register struct obj *obj;
if (obj->otyp == CORPSE) {
could_petrify = touch_petrifies(&mons[obj->corpsenm]);
could_poly = polyfodder(obj);
could_slime = (obj->corpsenm == PM_GREEN_SLIME);
could_slime = (obj->corpsenm == PM_GREEN_SLIME || obj->corpsenm == PM_FLUX_SLIME);
could_grow = (obj->corpsenm == PM_WRAITH);
could_heal = (obj->corpsenm == PM_NURSE);
}

View file

@ -746,6 +746,7 @@ BOOLEAN_P bld, nobadeffects;
return;
break;
case PM_GREEN_SLIME:
case PM_FLUX_SLIME:
if (!nobadeffects && !Slimed && !Unchanging && !flaming(youmonst.data) &&
youmonst.data != &mons[PM_GREEN_SLIME]) {
You("don't feel very well.");
@ -784,6 +785,7 @@ struct monst *mon;
return TRUE; /* lifesaved */
case PM_GREEN_SLIME:
case PM_FLUX_SLIME:
if (!Unchanging && youmonst.data != &mons[PM_FIRE_VORTEX] &&
youmonst.data != &mons[PM_FIRE_ELEMENTAL] &&
youmonst.data != &mons[PM_GREEN_SLIME]) {
@ -2557,7 +2559,7 @@ struct obj *otmp;
!Stone_resistance &&
!poly_when_stoned(youmonst.data));
if (mnum == PM_GREEN_SLIME)
if (mnum == PM_GREEN_SLIME || mnum == PM_FLUX_SLIME)
stoneorslime = (!Unchanging && !flaming(youmonst.data) &&
youmonst.data != &mons[PM_GREEN_SLIME]);

View file

@ -1653,7 +1653,7 @@ mdamagem(magr, mdef, mattk)
case AD_SLIM:
if (cancelled) break; /* physical damage only */
if (!rn2(4) && !flaming(mdef->data) &&
mdef->data != &mons[PM_GREEN_SLIME] && !is_rider(mdef->data)) {
mdef->data != &mons[PM_GREEN_SLIME] && mdef->data != &mons[PM_FLUX_SLIME] && !is_rider(mdef->data)) {
(void) newcham(mdef, &mons[PM_GREEN_SLIME], FALSE, vis);
mdef->mstrategy &= ~STRAT_WAITFORU;
tmp = 0;
@ -1722,7 +1722,7 @@ mdamagem(magr, mdef, mattk)
* after monkilled() to provide better message ordering */
if (mdef->cham != CHAM_ORDINARY) {
(void) newcham(magr, (struct permonst *)0, FALSE, TRUE);
} else if (mdef->data == &mons[PM_GREEN_SLIME]) {
} else if (mdef->data == &mons[PM_GREEN_SLIME] || mdef->data == &mons[PM_FLUX_SLIME]) {
(void) newcham(magr, &mons[PM_GREEN_SLIME], FALSE, TRUE);
} else if (mdef->data == &mons[PM_WRAITH]) {
(void) grow_up(magr, (struct monst *)0);

View file

@ -2404,7 +2404,8 @@ dopois:
pline_The("slime burns away!");
dmg = 0;
} else if (Unchanging ||
youmonst.data == &mons[PM_GREEN_SLIME]) {
youmonst.data == &mons[PM_GREEN_SLIME] ||
youmonst.data == &mons[PM_FLUX_SLIME]) {
You("are unaffected.");
dmg = 0;
} else if (!Slimed) {

View file

@ -2294,7 +2294,8 @@ struct obj *obj;
(!resists_ston(mon) &&
(obj->corpsenm == PM_LIZARD ||
(acidic(&mons[obj->corpsenm]) &&
obj->corpsenm != PM_GREEN_SLIME))));
obj->corpsenm != PM_GREEN_SLIME &&
obj->corpsenm != PM_FLUX_SLIME))));
if (typ == EGG)
return (boolean)(touch_petrifies(&mons[obj->corpsenm]));
break;
@ -2409,7 +2410,7 @@ boolean by_you;
for(obj = mon->minvent; obj; obj = obj->nobj) {
/* Monsters can also use potions of acid */
if ((obj->otyp == POT_ACID) || (obj->otyp == CORPSE &&
(obj->corpsenm == PM_LIZARD || (acidic(&mons[obj->corpsenm]) && obj->corpsenm != PM_GREEN_SLIME)))) {
(obj->corpsenm == PM_LIZARD || (acidic(&mons[obj->corpsenm]) && obj->corpsenm != PM_GREEN_SLIME && obj->corpsenm != PM_FLUX_SLIME)))) {
mon_consume_unstone(mon, obj, by_you, TRUE);
return TRUE;
}

View file

@ -2365,7 +2365,7 @@ register struct attack *mattk;
if (notonhead || !has_head(mdef->data)) {
pline("%s doesn't seem harmed.", Monnam(mdef));
tmp = 0;
if (!Unchanging && mdef->data == &mons[PM_GREEN_SLIME]) {
if (!Unchanging && mdef->data == &mons[PM_GREEN_SLIME] && mdef->data == &mons[PM_FLUX_SLIME]) {
if (!Slimed) {
You("suck in some slime and don't feel very well.");
Slimed = 10L;
@ -2464,7 +2464,7 @@ register struct attack *mattk;
case AD_SLIM:
if (negated) break; /* physical damage only */
if (!rn2(4) && !flaming(mdef->data) &&
mdef->data != &mons[PM_GREEN_SLIME] && !is_rider(mdef->data)) {
mdef->data != &mons[PM_GREEN_SLIME] && mdef->data != &mons[PM_FLUX_SLIME] && !is_rider(mdef->data)) {
You("turn %s into slime.", mon_nam(mdef));
(void) newcham(mdef, &mons[PM_GREEN_SLIME], FALSE, FALSE);
tmp = 0;
@ -2848,7 +2848,7 @@ register struct attack *mattk;
nomul(-tmp, "digesting a victim");
nomovemsg = msgbuf;
} else pline("%s", msgbuf);
if (mdef->data == &mons[PM_GREEN_SLIME]) {
if (mdef->data == &mons[PM_GREEN_SLIME] || mdef->data == &mons[PM_FLUX_SLIME]) {
Sprintf(msgbuf, "%s isn't sitting well with you.",
The(mdef->data->mname));
if (!Unchanging) {
@ -3030,7 +3030,8 @@ use_weapon:
if ((uwep || (u.twoweap && uswapwep) || uarmg) &&
maybe_polyd(is_vampire(mas), Race_if(PM_VAMPIRE)) &&
(is_rider(mon->data) ||
mon->data == &mons[PM_GREEN_SLIME])){
mon->data == &mons[PM_GREEN_SLIME] ||
mon->data == &mons[PM_FLUX_SLIME])){
break;
}
case AT_STNG:
@ -3270,7 +3271,8 @@ use_weapon:
if ((uwep || (u.twoweap && uswapwep) || uarmg) &&
maybe_polyd(is_vampire(youmonst.data), Race_if(PM_VAMPIRE)) &&
(is_rider(mon->data) ||
mon->data == &mons[PM_GREEN_SLIME])){
mon->data == &mons[PM_GREEN_SLIME] ||
mon->data == &mons[PM_FLUX_SLIME])){
break;
}
case AT_STNG: