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:
parent
4368661534
commit
f56fd09455
6 changed files with 18 additions and 12 deletions
2
src/do.c
2
src/do.c
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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]);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
12
src/uhitm.c
12
src/uhitm.c
|
@ -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:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue