diff options
author | David Lawrence Ramsey <dolorous@users.sourceforge.net> | 2009-11-05 22:39:58 -0600 |
---|---|---|
committer | David Lawrence Ramsey <dolorous@users.sourceforge.net> | 2009-11-05 22:39:58 -0600 |
commit | 2cd18cf91603ca59471842721b584b8a7521f103 (patch) | |
tree | f4cb1a7e79f28f7ab79fc6d79d6ead891a332d7d | |
parent | c48b4e0e828ab1b12e858dfdf6ec870226261d7f (diff) | |
download | crawl-ref-2cd18cf91603ca59471842721b584b8a7521f103.tar.gz crawl-ref-2cd18cf91603ca59471842721b584b8a7521f103.zip |
Tweak hell knights' resistances so that they resist hellfire, and mark
natural monsters with hellfire resistance as evil (since they likely got
it through evil pacts or the like, as opposed to things like fire
elementals, which are just made of fire).
This ensures that all hell knights are evil, even if they get the
spellbook with only Bolt of Fire and Blink, without marking Harold as
evil for getting that same spellbook.
-rw-r--r-- | crawl-ref/source/mon-data.h | 2 | ||||
-rw-r--r-- | crawl-ref/source/monster.cc | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/crawl-ref/source/mon-data.h b/crawl-ref/source/mon-data.h index dd62fd3c76..264c067527 100644 --- a/crawl-ref/source/mon-data.h +++ b/crawl-ref/source/mon-data.h @@ -3119,7 +3119,7 @@ static monsterentry mondata[] = { { MONS_HELL_KNIGHT, '@', RED, "hell knight", M_FIGHTER | M_SPELLCASTER | M_ACTUAL_SPELLS | M_WARM_BLOOD | M_SPEAKS, - mrd(MR_RES_FIRE, 2), + MR_RES_FIRE | MR_RES_HELLFIRE, 550, 10, MONS_HUMAN, MONS_HUMAN, MH_NATURAL, -3, { {AT_HIT, AF_PLAIN, 13}, AT_NO_ATK, AT_NO_ATK, AT_NO_ATK }, { 10, 3, 6, 0 }, diff --git a/crawl-ref/source/monster.cc b/crawl-ref/source/monster.cc index 924042a1ff..f7abb19d6b 100644 --- a/crawl-ref/source/monster.cc +++ b/crawl-ref/source/monster.cc @@ -2892,6 +2892,15 @@ bool monsters::is_evil() const return (true); } + // Assume that no natural creatures resist hellfire, except by evil + // means. + if (holiness() == MH_NATURAL) + { + const mon_resist_def res = get_mons_resists(this); + if (res.hellfire) + return (true); + } + return (false); } |