diff options
author | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-01-02 06:39:14 +0000 |
---|---|---|
committer | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-01-02 06:39:14 +0000 |
commit | e5c2d08635376bd510c1091ae6b78e69ae5dfef6 (patch) | |
tree | 2cd230476510728b06489d9d05333b74c7283fe8 /crawl-ref | |
parent | 469f183e63813560350b6a409356e11107893947 (diff) | |
download | crawl-ref-e5c2d08635376bd510c1091ae6b78e69ae5dfef6.tar.gz crawl-ref-e5c2d08635376bd510c1091ae6b78e69ae5dfef6.zip |
Don't apply god conducts in monster_die() while in arena mode. In partiuclar,
this prevents TSO from smiting the player when the friendly faction kills an
angel or daeva.
Assert in god_speaks() and did_god_conduct() if called during arena mode.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8105 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref')
-rw-r--r-- | crawl-ref/source/monstuff.cc | 8 | ||||
-rw-r--r-- | crawl-ref/source/religion.cc | 4 |
2 files changed, 11 insertions, 1 deletions
diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc index 4b18876eac..028140ed04 100644 --- a/crawl-ref/source/monstuff.cc +++ b/crawl-ref/source/monstuff.cc @@ -1174,6 +1174,9 @@ void monster_die(monsters *monster, killer_type killer, mpr("That felt strangely unrewarding."); } + if (crawl_state.arena) + break; + // killing triggers tutorial lesson _tutorial_inspect_kill(); @@ -1326,6 +1329,9 @@ void monster_die(monsters *monster, killer_type killer, MDAM_DEAD); } + if (crawl_state.arena) + break; + // No piety loss if god gifts killed by other monsters. // Also, dancing weapons aren't really friendlies. if (mons_friendly(monster) @@ -1562,7 +1568,7 @@ void monster_die(monsters *monster, killer_type killer, } } - if (!mons_reset) + if (!mons_reset && !crawl_state.arena) { you.kills->record_kill(monster, killer, pet_kill); diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc index c1e1845971..37fb2258ff 100644 --- a/crawl-ref/source/religion.cc +++ b/crawl-ref/source/religion.cc @@ -2307,6 +2307,8 @@ god_type string_to_god(const char *_name, bool exact) void god_speaks(god_type god, const char *mesg) { + ASSERT(!crawl_state.arena); + int orig_mon = mgrd(you.pos()); monsters fake_mon; @@ -2348,6 +2350,8 @@ static bool _do_god_revenge(conduct_type thing_done) bool did_god_conduct(conduct_type thing_done, int level, bool known, const monsters *victim) { + ASSERT(!crawl_state.arena); + bool retval = false; if (you.religion != GOD_NO_GOD && you.religion != GOD_XOM) |