summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authorzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2009-01-02 06:39:14 +0000
committerzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2009-01-02 06:39:14 +0000
commite5c2d08635376bd510c1091ae6b78e69ae5dfef6 (patch)
tree2cd230476510728b06489d9d05333b74c7283fe8 /crawl-ref
parent469f183e63813560350b6a409356e11107893947 (diff)
downloadcrawl-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.cc8
-rw-r--r--crawl-ref/source/religion.cc4
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)