diff options
author | dolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-06-24 19:23:47 +0000 |
---|---|---|
committer | dolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-06-24 19:23:47 +0000 |
commit | 2013a8bc4c4a49c29069e3d6e5231227e5b64239 (patch) | |
tree | c7f7cba5c7a240e8b6d8abf98e1c7a9d3d91b271 /crawl-ref/source/xom.cc | |
parent | 0aff0188aadd0a8661abc5b2d2bd33d763243796 (diff) | |
download | crawl-ref-2013a8bc4c4a49c29069e3d6e5231227e5b64239.tar.gz crawl-ref-2013a8bc4c4a49c29069e3d6e5231227e5b64239.zip |
Simplify Xom's polymorphing monsters.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6123 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/xom.cc')
-rw-r--r-- | crawl-ref/source/xom.cc | 73 |
1 files changed, 34 insertions, 39 deletions
diff --git a/crawl-ref/source/xom.cc b/crawl-ref/source/xom.cc index 3a737d2763..a178001328 100644 --- a/crawl-ref/source/xom.cc +++ b/crawl-ref/source/xom.cc @@ -597,30 +597,28 @@ static bool _xom_is_good(int sever) } else if (random2(sever) <= 7) { - if (!there_are_monsters_nearby()) - goto try_again; + if (there_are_monsters_nearby()) + { + monsters *mon = + choose_random_nearby_monster(0, _choose_mutatable_monster); - monsters *mon = - choose_random_nearby_monster(0, _choose_mutatable_monster); + if (mon) + { + god_speaks(GOD_XOM, _get_xom_speech("good monster polymorph")); - if (mon) - { - god_speaks(GOD_XOM, _get_xom_speech("good monster polymorph")); + monster_polymorph(mon, RANDOM_MONSTER, + mons_wont_attack(mon) ? PPT_MORE : PPT_LESS); - if (mons_wont_attack(mon)) - monster_polymorph(mon, RANDOM_MONSTER, PPT_MORE); - else - monster_polymorph(mon, RANDOM_MONSTER, PPT_LESS); + if (one_chance_in(8) + && !mon->has_ench(ENCH_GLOWING_SHAPESHIFTER, + ENCH_SHAPESHIFTER)) + { + mon->add_ench(one_chance_in(3) ? ENCH_GLOWING_SHAPESHIFTER + : ENCH_SHAPESHIFTER); + } - if (one_chance_in(8) - && !mon->has_ench(ENCH_GLOWING_SHAPESHIFTER, - ENCH_SHAPESHIFTER)) - { - mon->add_ench(one_chance_in(3) ? ENCH_GLOWING_SHAPESHIFTER - : ENCH_SHAPESHIFTER); + done = true; } - - done = true; } } else if (random2(sever) <= 8) @@ -792,30 +790,28 @@ static bool _xom_is_bad(int sever) } else if (random2(sever) <= 7) { - if (!there_are_monsters_nearby()) - goto try_again; + if (there_are_monsters_nearby()) + { + monsters *mon = + choose_random_nearby_monster(0, _choose_mutatable_monster); - monsters *mon = - choose_random_nearby_monster(0, _choose_mutatable_monster); + if (mon) + { + god_speaks(GOD_XOM, _get_xom_speech("bad monster polymorph")); - if (mon) - { - god_speaks(GOD_XOM, _get_xom_speech("bad monster polymorph")); + monster_polymorph(mon, RANDOM_MONSTER, + mons_wont_attack(mon) ? PPT_LESS : PPT_MORE); - if (mons_wont_attack(mon)) - monster_polymorph(mon, RANDOM_MONSTER, PPT_LESS); - else - monster_polymorph(mon, RANDOM_MONSTER, PPT_MORE); + if (one_chance_in(8) + && !mon->has_ench(ENCH_GLOWING_SHAPESHIFTER, + ENCH_SHAPESHIFTER)) + { + mon->add_ench(one_chance_in(3) ? ENCH_GLOWING_SHAPESHIFTER + : ENCH_SHAPESHIFTER); + } - if (one_chance_in(8) - && !mon->has_ench(ENCH_GLOWING_SHAPESHIFTER, - ENCH_SHAPESHIFTER)) - { - mon->add_ench(one_chance_in(3) ? ENCH_GLOWING_SHAPESHIFTER - : ENCH_SHAPESHIFTER); + done = true; } - - done = true; } } else if (random2(sever) <= 8) @@ -907,7 +903,6 @@ static bool _xom_is_bad(int sever) } } -try_again: return (done); } |