stoning resistance revisited
It turns out that there were a bunch more monsters with the corpse- conveys-stoning-resistance flag than just green mold. Instead of stripping it off, give them (including green mold) a chance to confer timed resistance against stoning and also against acid. All of these can convey either of those two resistances. Like other intrinsics obtained via eating, at most one can be obtained from any given corpse. green mold, acid blob, spotted jelly, ochre jelly, black naga, yellow dragon, Chromatic Dragon These can confer temporary stoning resistance but not acid resistance: lizard, chickatrice, cockatrice, gargoyle, winged gargoyle, xorn, Medusa There aren't any that confer just acid resistance without a chance for stoning resistance. The effect lasts for 3d6 turns, or is extended by 3d6 more if randomly chosen and applied when already in effect. Having temporary acid resistance time out during another meal when eating a corpse that ends up conferring acid resistance seems strange. The protection against acid is granted at the start of the meal and continues to the end (in regards to eating, not external attacks) even when the intrinisic is lost in between. I'm not sure whether that needs some form of fixing, and if so, what that fixing should be.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.7 monsters.h $NHDT-Date: 1616891049 2021/03/28 00:24:09 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.85 $ */
|
||||
/* NetHack 3.7 monsters.h $NHDT-Date: 1648318980 2022/03/26 18:23:00 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.97 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Michael Allison, 2006. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -142,7 +142,7 @@
|
||||
A(ATTK(AT_NONE, AD_ACID, 1, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
|
||||
NO_ATTK),
|
||||
SIZ(30, 10, MS_SILENT, MZ_TINY),
|
||||
MR_SLEEP | MR_POISON | MR_ACID | MR_STONE, MR_STONE,
|
||||
MR_SLEEP | MR_POISON | MR_ACID | MR_STONE, MR_ACID | MR_STONE,
|
||||
M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
|
||||
| M1_MINDLESS | M1_ACID,
|
||||
M2_WANDER | M2_NEUTER, 0, 2, CLR_GREEN, ACID_BLOB),
|
||||
@@ -524,16 +524,18 @@
|
||||
| M1_MINDLESS | M1_NOTAKE,
|
||||
M2_HOSTILE | M2_NEUTER, 0, 5, CLR_BLUE, BLUE_JELLY),
|
||||
MON("spotted jelly", S_JELLY, LVL(5, 0, 8, 10, 0), (G_GENO | 1),
|
||||
A(ATTK(AT_NONE, AD_ACID, 0, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
|
||||
NO_ATTK),
|
||||
SIZ(50, 20, MS_SILENT, MZ_MEDIUM), MR_ACID | MR_STONE, 0,
|
||||
A(ATTK(AT_NONE, AD_ACID, 0, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(50, 20, MS_SILENT, MZ_MEDIUM),
|
||||
MR_ACID | MR_STONE, MR_ACID | MR_STONE,
|
||||
M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
|
||||
| M1_MINDLESS | M1_ACID | M1_NOTAKE,
|
||||
M2_HOSTILE | M2_NEUTER, 0, 6, CLR_GREEN, SPOTTED_JELLY),
|
||||
MON("ochre jelly", S_JELLY, LVL(6, 3, 8, 20, 0), (G_GENO | 2),
|
||||
A(ATTK(AT_ENGL, AD_ACID, 3, 6), ATTK(AT_NONE, AD_ACID, 3, 6), NO_ATTK,
|
||||
NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(50, 20, MS_SILENT, MZ_MEDIUM), MR_ACID | MR_STONE, 0,
|
||||
A(ATTK(AT_ENGL, AD_ACID, 3, 6), ATTK(AT_NONE, AD_ACID, 3, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(50, 20, MS_SILENT, MZ_MEDIUM),
|
||||
MR_ACID | MR_STONE, MR_ACID | MR_STONE,
|
||||
M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
|
||||
| M1_MINDLESS | M1_ACID | M1_NOTAKE,
|
||||
M2_HOSTILE | M2_NEUTER, 0, 8, CLR_BROWN, OCHRE_JELLY),
|
||||
@@ -981,8 +983,8 @@
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(0, 0, MS_SILENT, MZ_SMALL),
|
||||
MR_FIRE | MR_COLD | MR_ELEC | MR_DISINT | MR_SLEEP | MR_POISON
|
||||
| MR_ACID | MR_STONE,
|
||||
0, M1_FLY | M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS
|
||||
| MR_ACID | MR_STONE, 0,
|
||||
M1_FLY | M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS
|
||||
| M1_NOHEAD | M1_MINDLESS | M1_UNSOLID | M1_NOTAKE,
|
||||
M2_HOSTILE | M2_NEUTER, M3_INFRAVISIBLE, 5, CLR_YELLOW, YELLOW_LIGHT),
|
||||
MON("black light", S_LIGHT, LVL(5, 15, 0, 0, 0),
|
||||
@@ -990,8 +992,7 @@
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(0, 0, MS_SILENT, MZ_SMALL),
|
||||
MR_FIRE | MR_COLD | MR_ELEC | MR_DISINT | MR_SLEEP | MR_POISON
|
||||
| MR_ACID | MR_STONE,
|
||||
0,
|
||||
| MR_ACID | MR_STONE, 0,
|
||||
M1_FLY | M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS
|
||||
| M1_NOHEAD | M1_MINDLESS | M1_UNSOLID | M1_SEE_INVIS | M1_NOTAKE,
|
||||
M2_HOSTILE | M2_NEUTER, 0, 7, CLR_BLACK, BLACK_LIGHT),
|
||||
@@ -1199,8 +1200,8 @@
|
||||
M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, 13, CLR_GREEN,
|
||||
BABY_GREEN_DRAGON),
|
||||
MON("baby yellow dragon", S_DRAGON, LVL(12, 9, 2, 10, 0), G_GENO,
|
||||
A(ATTK(AT_BITE, AD_PHYS, 2, 6), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
|
||||
NO_ATTK),
|
||||
A(ATTK(AT_BITE, AD_PHYS, 2, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(1500, 500, MS_ROAR, MZ_HUGE), MR_ACID | MR_STONE, 0,
|
||||
M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE | M1_ACID,
|
||||
M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, 13, CLR_YELLOW,
|
||||
@@ -1307,11 +1308,12 @@
|
||||
0, 20, CLR_GREEN, GREEN_DRAGON),
|
||||
MON("yellow dragon", S_DRAGON, LVL(15, 9, -1, 20, 7), (G_GENO | 1),
|
||||
A(ATTK(AT_BREA, AD_ACID, 4, 6), ATTK(AT_BITE, AD_PHYS, 3, 8),
|
||||
ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4), NO_ATTK,
|
||||
NO_ATTK),
|
||||
SIZ(WT_DRAGON, 1500, MS_ROAR, MZ_GIGANTIC), MR_ACID | MR_STONE,
|
||||
MR_STONE, M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS
|
||||
| M1_OVIPAROUS | M1_CARNIVORE | M1_ACID,
|
||||
ATTK(AT_CLAW, AD_PHYS, 1, 4), ATTK(AT_CLAW, AD_PHYS, 1, 4),
|
||||
NO_ATTK, NO_ATTK),
|
||||
SIZ(WT_DRAGON, 1500, MS_ROAR, MZ_GIGANTIC),
|
||||
MR_ACID | MR_STONE, MR_ACID | MR_STONE,
|
||||
M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS
|
||||
| M1_OVIPAROUS | M1_CARNIVORE | M1_ACID,
|
||||
M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
|
||||
0, 20, CLR_YELLOW, YELLOW_DRAGON),
|
||||
/*
|
||||
@@ -1381,7 +1383,8 @@
|
||||
MON("green mold", S_FUNGUS, LVL(1, 0, 9, 0, 0), (G_GENO | 1),
|
||||
A(ATTK(AT_NONE, AD_ACID, 0, 4),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(50, 30, MS_SILENT, MZ_SMALL), MR_ACID | MR_STONE, 0,
|
||||
SIZ(50, 30, MS_SILENT, MZ_SMALL),
|
||||
MR_ACID | MR_STONE, MR_ACID | MR_STONE,
|
||||
M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS
|
||||
| M1_ACID | M1_NOTAKE,
|
||||
M2_HOSTILE | M2_NEUTER, 0, 2, CLR_GREEN, GREEN_MOLD),
|
||||
@@ -1663,18 +1666,18 @@
|
||||
* Nagas
|
||||
*/
|
||||
MON("red naga hatchling", S_NAGA, LVL(3, 10, 6, 0, 0), G_GENO,
|
||||
A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
|
||||
NO_ATTK),
|
||||
SIZ(500, 100, MS_MUMBLE, MZ_LARGE), MR_FIRE | MR_POISON,
|
||||
MR_FIRE | MR_POISON,
|
||||
A(ATTK(AT_BITE, AD_PHYS, 1, 4),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(500, 100, MS_MUMBLE, MZ_LARGE), MR_FIRE | MR_POISON, MR_POISON,
|
||||
M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_NOTAKE | M1_OMNIVORE,
|
||||
M2_STRONG, M3_INFRAVISIBLE, 4, CLR_RED, RED_NAGA_HATCHLING),
|
||||
MON("black naga hatchling", S_NAGA, LVL(3, 10, 6, 0, 0), G_GENO,
|
||||
A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
|
||||
NO_ATTK),
|
||||
SIZ(500, 100, MS_MUMBLE, MZ_LARGE), MR_POISON | MR_ACID | MR_STONE,
|
||||
MR_POISON | MR_STONE, M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_ACID
|
||||
| M1_NOTAKE | M1_CARNIVORE,
|
||||
A(ATTK(AT_BITE, AD_PHYS, 1, 4),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(500, 100, MS_MUMBLE, MZ_LARGE),
|
||||
MR_POISON | MR_ACID | MR_STONE, MR_POISON,
|
||||
M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_ACID | M1_NOTAKE
|
||||
| M1_CARNIVORE,
|
||||
M2_STRONG, 0, 4, CLR_BLACK, BLACK_NAGA_HATCHLING),
|
||||
MON("golden naga hatchling", S_NAGA, LVL(3, 10, 6, 0, 0), G_GENO,
|
||||
A(ATTK(AT_BITE, AD_PHYS, 1, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
|
||||
@@ -1696,10 +1699,10 @@
|
||||
| M1_OVIPAROUS | M1_NOTAKE | M1_OMNIVORE,
|
||||
M2_STRONG, M3_INFRAVISIBLE, 8, CLR_RED, RED_NAGA),
|
||||
MON("black naga", S_NAGA, LVL(8, 14, 2, 10, 4), (G_GENO | 1),
|
||||
A(ATTK(AT_BITE, AD_PHYS, 2, 6), ATTK(AT_SPIT, AD_ACID, 0, 0), NO_ATTK,
|
||||
NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(2600, 400, MS_MUMBLE, MZ_HUGE), MR_POISON | MR_ACID | MR_STONE,
|
||||
MR_POISON | MR_STONE,
|
||||
A(ATTK(AT_BITE, AD_PHYS, 2, 6), ATTK(AT_SPIT, AD_ACID, 0, 0),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(2600, 400, MS_MUMBLE, MZ_HUGE),
|
||||
MR_POISON | MR_ACID | MR_STONE, MR_POISON | MR_ACID | MR_STONE,
|
||||
M1_NOLIMBS | M1_SLITHY | M1_THICK_HIDE | M1_OVIPAROUS | M1_ACID
|
||||
| M1_NOTAKE | M1_CARNIVORE,
|
||||
M2_STRONG, 0, 10, CLR_BLACK, BLACK_NAGA),
|
||||
@@ -1746,8 +1749,8 @@
|
||||
* must be in the same order as the pudding globs in objects.c
|
||||
*/
|
||||
MON("gray ooze", S_PUDDING, LVL(3, 1, 8, 0, 0), (G_GENO | G_NOCORPSE | 2),
|
||||
A(ATTK(AT_BITE, AD_RUST, 2, 8), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
|
||||
NO_ATTK),
|
||||
A(ATTK(AT_BITE, AD_RUST, 2, 8),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(500, 250, MS_SILENT, MZ_MEDIUM),
|
||||
MR_FIRE | MR_COLD | MR_POISON | MR_ACID | MR_STONE,
|
||||
MR_FIRE | MR_COLD | MR_POISON,
|
||||
@@ -1755,8 +1758,9 @@
|
||||
| M1_MINDLESS | M1_OMNIVORE | M1_ACID,
|
||||
M2_HOSTILE | M2_NEUTER, 0, 4, CLR_GRAY, GRAY_OOZE),
|
||||
MON("brown pudding", S_PUDDING, LVL(5, 3, 8, 0, 0),
|
||||
(G_GENO | G_NOCORPSE | 1), A(ATTK(AT_BITE, AD_DCAY, 0, 0), NO_ATTK,
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
(G_GENO | G_NOCORPSE | 1),
|
||||
A(ATTK(AT_BITE, AD_DCAY, 0, 0),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(500, 250, MS_SILENT, MZ_MEDIUM),
|
||||
MR_COLD | MR_ELEC | MR_POISON | MR_ACID | MR_STONE,
|
||||
MR_COLD | MR_ELEC | MR_POISON,
|
||||
@@ -1768,14 +1772,14 @@
|
||||
A(ATTK(AT_TUCH, AD_SLIM, 1, 4), ATTK(AT_NONE, AD_SLIM, 0, 0), NO_ATTK,
|
||||
NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(400, 150, MS_SILENT, MZ_LARGE),
|
||||
MR_COLD | MR_ELEC | MR_POISON | MR_ACID | MR_STONE, 0,
|
||||
MR_COLD | MR_ELEC | MR_POISON | MR_ACID | MR_STONE, MR_ACID | MR_STONE,
|
||||
M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD
|
||||
| M1_MINDLESS | M1_OMNIVORE | M1_ACID | M1_POIS,
|
||||
M2_HOSTILE | M2_NEUTER, 0, 8, CLR_GREEN, GREEN_SLIME),
|
||||
MON("black pudding", S_PUDDING, LVL(10, 6, 6, 0, 0),
|
||||
(G_GENO | G_NOCORPSE | 1),
|
||||
A(ATTK(AT_BITE, AD_CORR, 3, 8), ATTK(AT_NONE, AD_CORR, 0, 0), NO_ATTK,
|
||||
NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_BITE, AD_CORR, 3, 8), ATTK(AT_NONE, AD_CORR, 0, 0),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(900, 250, MS_SILENT, MZ_LARGE),
|
||||
MR_COLD | MR_ELEC | MR_POISON | MR_ACID | MR_STONE,
|
||||
MR_COLD | MR_ELEC | MR_POISON,
|
||||
@@ -2135,20 +2139,20 @@
|
||||
M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID, M2_HOSTILE | M2_NEUTER, 0,
|
||||
6, CLR_BROWN, ROPE_GOLEM),
|
||||
MON("gold golem", S_GOLEM, LVL(5, 9, 6, 0, 0), (G_NOCORPSE | 1),
|
||||
A(ATTK(AT_CLAW, AD_PHYS, 2, 3), ATTK(AT_CLAW, AD_PHYS, 2, 3), NO_ATTK,
|
||||
NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_CLAW, AD_PHYS, 2, 3), ATTK(AT_CLAW, AD_PHYS, 2, 3),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(450, 0, MS_SILENT, MZ_LARGE), MR_SLEEP | MR_POISON | MR_ACID, 0,
|
||||
M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE,
|
||||
M2_HOSTILE | M2_NEUTER, 0, 6, HI_GOLD, GOLD_GOLEM),
|
||||
MON("leather golem", S_GOLEM, LVL(6, 6, 6, 0, 0), (G_NOCORPSE | 1),
|
||||
A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6), NO_ATTK,
|
||||
NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
A(ATTK(AT_CLAW, AD_PHYS, 1, 6), ATTK(AT_CLAW, AD_PHYS, 1, 6),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(800, 0, MS_SILENT, MZ_LARGE), MR_SLEEP | MR_POISON, 0,
|
||||
M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID, M2_HOSTILE | M2_NEUTER, 0,
|
||||
7, HI_LEATHER, LEATHER_GOLEM),
|
||||
MON("wood golem", S_GOLEM, LVL(7, 3, 4, 0, 0), (G_NOCORPSE | 1),
|
||||
A(ATTK(AT_CLAW, AD_PHYS, 3, 4), NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK,
|
||||
NO_ATTK),
|
||||
A(ATTK(AT_CLAW, AD_PHYS, 3, 4),
|
||||
NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK),
|
||||
SIZ(900, 0, MS_SILENT, MZ_LARGE), MR_COLD | MR_SLEEP | MR_POISON, 0,
|
||||
M1_BREATHLESS | M1_MINDLESS | M1_HUMANOID | M1_THICK_HIDE,
|
||||
M2_HOSTILE | M2_NEUTER, 0, 8, HI_WOOD, WOOD_GOLEM),
|
||||
@@ -2376,9 +2380,9 @@
|
||||
A(ATTK(AT_WEAP, AD_PHYS, 2, 4), ATTK(AT_CLAW, AD_PHYS, 1, 8),
|
||||
ATTK(AT_GAZE, AD_STON, 0, 0), ATTK(AT_BITE, AD_DRST, 1, 6), NO_ATTK,
|
||||
NO_ATTK),
|
||||
SIZ(WT_HUMAN, 400, MS_HISS, MZ_LARGE), MR_POISON | MR_STONE,
|
||||
MR_POISON | MR_STONE, M1_FLY | M1_SWIM | M1_AMPHIBIOUS | M1_HUMANOID
|
||||
| M1_POIS | M1_OMNIVORE,
|
||||
SIZ(WT_HUMAN, 400, MS_HISS, MZ_LARGE),
|
||||
MR_POISON | MR_STONE, MR_POISON | MR_STONE,
|
||||
M1_FLY | M1_SWIM | M1_AMPHIBIOUS | M1_HUMANOID | M1_POIS | M1_OMNIVORE,
|
||||
M2_NOPOLY | M2_HOSTILE | M2_STRONG | M2_PNAME | M2_FEMALE,
|
||||
M3_WAITFORU | M3_INFRAVISIBLE, 25, CLR_BRIGHT_GREEN, MEDUSA),
|
||||
MON("Wizard of Yendor", S_HUMAN, LVL(30, 12, -8, 100, A_NONE),
|
||||
@@ -3092,7 +3096,7 @@
|
||||
MR_FIRE | MR_COLD | MR_SLEEP | MR_DISINT | MR_ELEC | MR_POISON
|
||||
| MR_ACID | MR_STONE,
|
||||
MR_FIRE | MR_COLD | MR_SLEEP | MR_DISINT | MR_ELEC | MR_POISON
|
||||
| MR_STONE,
|
||||
| MR_ACID | MR_STONE,
|
||||
M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE | M1_SEE_INVIS | M1_POIS,
|
||||
M2_NOPOLY | M2_HOSTILE | M2_FEMALE | M2_STALK | M2_STRONG | M2_NASTY
|
||||
| M2_GREEDY | M2_JEWELS | M2_MAGIC,
|
||||
|
||||
Reference in New Issue
Block a user