diff options
author | dolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-09-19 18:34:09 +0000 |
---|---|---|
committer | dolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-09-19 18:34:09 +0000 |
commit | d91ad5d1d25e3d587192994fc42f229804804991 (patch) | |
tree | 0f1a6f3b67fd5ea471952622819b90270b665832 | |
parent | 5904e93aa4220ebb102df0510f11f21980ed6ffa (diff) | |
download | crawl-ref-d91ad5d1d25e3d587192994fc42f229804804991.tar.gz crawl-ref-d91ad5d1d25e3d587192994fc42f229804804991.zip |
Make sure (very) ugly things never resist polymorph beams.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10733 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r-- | crawl-ref/source/beam.cc | 13 | ||||
-rw-r--r-- | crawl-ref/source/mon-util.cc | 7 |
2 files changed, 16 insertions, 4 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc index 57af9eb18f..fc042aa19f 100644 --- a/crawl-ref/source/beam.cc +++ b/crawl-ref/source/beam.cc @@ -4885,9 +4885,20 @@ mon_resist_type bolt::try_enchant_monster(monsters *mon) if (mons_immune_magic(mon)) return (MON_UNAFFECTED); - if (flavour != BEAM_POLYMORPH || !mons_is_shapeshifter(mon)) + // (Very) ugly things and shapeshifters will never resist + // polymorph beams. + if (flavour == BEAM_POLYMORPH + && (mon->type == MONS_UGLY_THING + || mon->type == MONS_VERY_UGLY_THING + || mons_is_shapeshifter(mon))) + { + ; + } + else + { if (check_mons_resist_magic(mon, ench_power)) return (MON_RESIST); + } } return (apply_enchantment_to_monster(mon)); diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc index 7b6f6eb296..0ae62e5f7f 100644 --- a/crawl-ref/source/mon-util.cc +++ b/crawl-ref/source/mon-util.cc @@ -585,10 +585,10 @@ bool mons_is_native_in_branch(const monsters *monster, bool mons_is_chaotic(const monsters *mon) { - if (mons_is_shapeshifter(mon)) + if (mon->type == MONS_UGLY_THING || mon->type == MONS_VERY_UGLY_THING) return (true); - if (mon->type == MONS_UGLY_THING || mon->type == MONS_VERY_UGLY_THING) + if (mons_is_shapeshifter(mon)) return (true); if (mon->has_spell(SPELL_POLYMORPH_OTHER)) @@ -7959,9 +7959,10 @@ bool monsters::mutate() return (true); } + // Polymorphing a shapeshifter will make it revert to its original + // form. if (this->has_ench(ENCH_GLOWING_SHAPESHIFTER)) return (monster_polymorph(this, MONS_GLOWING_SHAPESHIFTER)); - if (this->has_ench(ENCH_SHAPESHIFTER)) return (monster_polymorph(this, MONS_SHAPESHIFTER)); |