summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Lawrence Ramsey <dolorous@users.sourceforge.net>2009-11-04 08:42:47 -0600
committerDavid Lawrence Ramsey <dolorous@users.sourceforge.net>2009-11-04 08:42:47 -0600
commitf7c29d55ca91d539d64de5e120a5b2c301ccb938 (patch)
treec4c6909967778f25afd96ff314a7e14ed2fe48af
parent2095831bd6147db1fd74e35e984953d5d01fd3e9 (diff)
downloadcrawl-ref-f7c29d55ca91d539d64de5e120a5b2c301ccb938.tar.gz
crawl-ref-f7c29d55ca91d539d64de5e120a5b2c301ccb938.zip
Remove some hardcoded monster flags.
Since insubstantial monsters all resist sticky flame, move the check for insubstantiality into monsters::res_sticky_flame(), and remove the MR_RES_STICKY_FLAME flag from such monsters.
-rw-r--r--crawl-ref/source/mon-data.h35
-rw-r--r--crawl-ref/source/monster.cc2
2 files changed, 17 insertions, 20 deletions
diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h
index c9c16afc90..45514ccb4b 100644
--- a/crawl-ref/source/mon-data.h
+++ b/crawl-ref/source/mon-data.h
@@ -1186,7 +1186,7 @@ static monsterentry mondata[] = {
{
MONS_HUNGRY_GHOST, 'p', GREEN, "hungry ghost",
M_SENSE_INVIS | M_LEVITATE | M_EVIL | M_INSUBSTANTIAL | M_SPEAKS,
- MR_RES_POISON | mrd(MR_RES_COLD, 2) | MR_RES_STICKY_FLAME,
+ MR_RES_POISON | mrd(MR_RES_COLD, 2),
0, 10, MONS_PLAYER_GHOST, MONS_HUNGRY_GHOST, MH_UNDEAD, -4,
{ {AT_HIT, AF_HUNGER, 5}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 7, 3, 5, 0 },
@@ -1210,7 +1210,7 @@ static monsterentry mondata[] = {
MONS_PLAYER_GHOST, 'p', WHITE, "player ghost",
M_FIGHTER | M_SPEAKS | M_SPELLCASTER | M_ACTUAL_SPELLS | M_LEVITATE
| M_EVIL | M_UNIQUE | M_INSUBSTANTIAL,
- MR_RES_POISON | MR_RES_STICKY_FLAME,
+ MR_RES_POISON,
0, 15, MONS_PLAYER_GHOST, MONS_PLAYER_GHOST, MH_UNDEAD, -5,
{ {AT_HIT, AF_PLAIN, 5}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 4, 2, 3, 0 },
@@ -1221,8 +1221,7 @@ static monsterentry mondata[] = {
{
MONS_INSUBSTANTIAL_WISP, 'p', LIGHTGREY, "insubstantial wisp",
M_LEVITATE | M_SPECIAL_ABILITY | M_INSUBSTANTIAL,
- mrd(MR_RES_ELEC | MR_RES_POISON | MR_RES_FIRE | MR_RES_COLD, 2)
- | MR_RES_STICKY_FLAME,
+ mrd(MR_RES_ELEC | MR_RES_POISON | MR_RES_FIRE | MR_RES_COLD, 2),
0, 17, MONS_INSUBSTANTIAL_WISP, MONS_INSUBSTANTIAL_WISP, MH_NONLIVING, MAG_IMMUNE,
{ {AT_HIT, AF_BLINK, 12}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 6, 1, 2, 0 },
@@ -1392,8 +1391,7 @@ static monsterentry mondata[] = {
{
MONS_FIRE_VORTEX, 'v', RED, "fire vortex",
M_LEVITATE | M_CONFUSED | M_INSUBSTANTIAL | M_GLOWS,
- MR_RES_POISON | mrd(MR_RES_FIRE, 3) | MR_VUL_COLD | MR_RES_ELEC
- | MR_RES_STICKY_FLAME,
+ MR_RES_POISON | mrd(MR_RES_FIRE, 3) | MR_VUL_COLD | MR_RES_ELEC,
0, 5, MONS_FIRE_VORTEX, MONS_FIRE_VORTEX, MH_NONLIVING, MAG_IMMUNE,
{ {AT_HIT, AF_FIRE, 30}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 3, 3, 5, 0 },
@@ -1404,8 +1402,7 @@ static monsterentry mondata[] = {
{
MONS_SPATIAL_VORTEX, 'v', BLACK, "spatial vortex",
M_LEVITATE | M_CONFUSED | M_INSUBSTANTIAL | M_GLOWS,
- MR_RES_POISON | MR_RES_FIRE | MR_RES_COLD | MR_RES_ELEC
- | MR_RES_STICKY_FLAME,
+ MR_RES_POISON | MR_RES_FIRE | MR_RES_COLD | MR_RES_ELEC,
0, 5, MONS_FIRE_VORTEX, MONS_SPATIAL_VORTEX, MH_NONLIVING, MAG_IMMUNE,
{ {AT_HIT, AF_DISTORT, 30}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 6, 6, 6, 0 },
@@ -1417,7 +1414,7 @@ static monsterentry mondata[] = {
{
MONS_AIR_ELEMENTAL, 'v', LIGHTGREY, "air elemental",
M_LEVITATE | M_SEE_INVIS | M_LEVITATE | M_INSUBSTANTIAL | M_GLOWS,
- mrd(MR_RES_ELEC, 3) | MR_RES_POISON | MR_RES_STICKY_FLAME,
+ mrd(MR_RES_ELEC, 3) | MR_RES_POISON,
0, 5, MONS_EARTH_ELEMENTAL, MONS_AIR_ELEMENTAL, MH_NONLIVING, MAG_IMMUNE,
{ {AT_HIT, AF_PLAIN, 15}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 6, 3, 5, 0 },
@@ -1439,8 +1436,7 @@ static monsterentry mondata[] = {
{
MONS_FIRE_ELEMENTAL, '#', YELLOW, "fire elemental",
M_LEVITATE | M_INSUBSTANTIAL | M_GLOWS,
- MR_RES_POISON | MR_RES_HELLFIRE | MR_VUL_COLD | MR_RES_ELEC
- | MR_RES_STICKY_FLAME,
+ MR_RES_POISON | MR_RES_HELLFIRE | MR_VUL_COLD | MR_RES_ELEC,
0, 10, MONS_EARTH_ELEMENTAL, MONS_FIRE_ELEMENTAL, MH_NONLIVING, MAG_IMMUNE,
{ {AT_HIT, AF_FIRE, 5}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 6, 3, 5, 0 },
@@ -2062,7 +2058,7 @@ static monsterentry mondata[] = {
{
MONS_GIANT_SPORE, 'G', GREEN, "giant spore",
M_LEVITATE | M_INSUBSTANTIAL,
- MR_RES_POISON | MR_RES_STICKY_FLAME,
+ MR_RES_POISON,
0, 10, MONS_PLANT, MONS_GIANT_SPORE, MH_PLANT, -3,
{ {AT_HIT, AF_PLAIN, 1}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 1, 0, 0, 1 },
@@ -2821,7 +2817,7 @@ static monsterentry mondata[] = {
{
MONS_SHADOW_WRAITH, 'W', BLUE, "shadow wraith",
M_LEVITATE | M_SEE_INVIS | M_INVIS | M_EVIL | M_INSUBSTANTIAL,
- MR_RES_POISON | MR_RES_STICKY_FLAME,
+ MR_RES_POISON,
0, 15, MONS_WRAITH, MONS_SHADOW_WRAITH, MH_UNDEAD, -8,
{ {AT_HIT, AF_DRAIN_XP, 20}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 10, 3, 5, 0 },
@@ -3428,7 +3424,7 @@ static monsterentry mondata[] = {
{
MONS_SMOKE_DEMON, '3', LIGHTGREY, "smoke demon",
M_SPELLCASTER | M_FLIES | M_EVIL | M_INSUBSTANTIAL,
- MR_RES_POISON | mrd(MR_RES_FIRE, 2) | MR_RES_STICKY_FLAME,
+ MR_RES_POISON | mrd(MR_RES_FIRE, 2),
0, 12, MONS_SMOKE_DEMON, MONS_SMOKE_DEMON, MH_DEMONIC, -6,
{ {AT_HIT, AF_PLAIN, 8}, {AT_HIT, AF_PLAIN, 5}, {AT_HIT, AF_PLAIN, 5},
AT_NO_ATK },
@@ -3529,7 +3525,7 @@ static monsterentry mondata[] = {
{
MONS_CHAOS_SPAWN, '3', ETC_RANDOM, "chaos spawn",
M_SEE_INVIS | M_EVIL | M_INSUBSTANTIAL,
- MR_RES_STICKY_FLAME,
+ MR_NO_FLAGS,
0, 12, MONS_CHAOS_SPAWN, MONS_CHAOS_SPAWN, MH_DEMONIC, -7,
{ {AT_RANDOM, AF_CHAOS, 21}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 6, 3, 5, 0 },
@@ -3880,8 +3876,7 @@ static monsterentry mondata[] = {
MONS_BALL_LIGHTNING, '*', LIGHTCYAN, "ball lightning",
M_LEVITATE | M_CONFUSED | M_SPELLCASTER | M_SPECIAL_ABILITY
| M_INSUBSTANTIAL,
- mrd(MR_RES_ELEC | MR_RES_POISON | MR_RES_FIRE | MR_RES_COLD, 3)
- | MR_RES_STICKY_FLAME,
+ mrd(MR_RES_ELEC | MR_RES_POISON | MR_RES_FIRE | MR_RES_COLD, 3),
0, 20, MONS_BALL_LIGHTNING, MONS_BALL_LIGHTNING, MH_NONLIVING, MAG_IMMUNE,
{ {AT_HIT, AF_PLAIN, 5}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 12, 0, 0, 1 },
@@ -3893,7 +3888,7 @@ static monsterentry mondata[] = {
MONS_ORB_OF_FIRE, '*', RED, "orb of fire",
M_SPELLCASTER | M_LEVITATE | M_SEE_INVIS | M_INSUBSTANTIAL | M_GLOWS,
mrd(MR_RES_FIRE | MR_RES_HELLFIRE | MR_RES_POISON, 3) | MR_RES_COLD
- | MR_RES_ELEC | MR_RES_STICKY_FLAME,
+ | MR_RES_ELEC,
0, 10, MONS_ORB_OF_FIRE, MONS_ORB_OF_FIRE, MH_NONLIVING, MAG_IMMUNE,
{ AT_NO_ATK, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 30, 0, 0, 150 },
@@ -3906,7 +3901,7 @@ static monsterentry mondata[] = {
MONS_VAPOUR, '#', LIGHTGREY, "vapour",
M_SPELLCASTER | M_LEVITATE | M_SEE_INVIS | M_INVIS | M_CONFUSED
| M_INSUBSTANTIAL,
- mrd(MR_RES_ELEC, 3) | MR_RES_POISON | MR_RES_STICKY_FLAME,
+ mrd(MR_RES_ELEC, 3) | MR_RES_POISON,
0, 21, MONS_VAPOUR, MONS_VAPOUR, MH_NONLIVING, MAG_IMMUNE,
{ AT_NO_ATK, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 12, 2, 3, 0 },
@@ -3917,7 +3912,7 @@ static monsterentry mondata[] = {
{
MONS_SHADOW, ' ', BLACK, "shadow",
M_SEE_INVIS | M_EVIL | M_INSUBSTANTIAL | M_GLOWS,
- MR_RES_POISON | mrd(MR_RES_COLD, 3) | MR_RES_STICKY_FLAME,
+ MR_RES_POISON | mrd(MR_RES_COLD, 3),
0, 10, MONS_WRAITH, MONS_SHADOW, MH_UNDEAD, -5,
{ {AT_HIT, AF_DRAIN_STR, 5}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK },
{ 3, 3, 5, 0 },
diff --git a/crawl-ref/source/monster.cc b/crawl-ref/source/monster.cc
index b3967e3547..4770e2fe9b 100644
--- a/crawl-ref/source/monster.cc
+++ b/crawl-ref/source/monster.cc
@@ -3041,6 +3041,8 @@ int monsters::res_poison() const
int monsters::res_sticky_flame() const
{
int res = get_mons_resists(this).sticky_flame;
+ if (mons_is_insubstantial(type))
+ res += 1;
if (has_equipped(EQ_BODY_ARMOUR, ARM_MOTTLED_DRAGON_ARMOUR))
res += 1;
return (res);