summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-stuff.cc
diff options
context:
space:
mode:
authorAdam Borowski <kilobyte@angband.pl>2009-11-24 13:46:43 +0100
committerAdam Borowski <kilobyte@angband.pl>2009-11-24 13:46:43 +0100
commit04d3f6151ecd235a6f1b91bc96010923b4c9f426 (patch)
treecafaf3f16deb1184a5e7fda84c963ac999a4eb1f /crawl-ref/source/mon-stuff.cc
parent077a18f5764a12e6c6dd25efedd3a8febd402fd2 (diff)
downloadcrawl-ref-04d3f6151ecd235a6f1b91bc96010923b4c9f426.tar.gz
crawl-ref-04d3f6151ecd235a6f1b91bc96010923b4c9f426.zip
Killing freed slaves and other friendles may give no xp, but Makhleb likes it nevertheless.
Diffstat (limited to 'crawl-ref/source/mon-stuff.cc')
-rw-r--r--crawl-ref/source/mon-stuff.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/crawl-ref/source/mon-stuff.cc b/crawl-ref/source/mon-stuff.cc
index b42209b4e3..af891dc167 100644
--- a/crawl-ref/source/mon-stuff.cc
+++ b/crawl-ref/source/mon-stuff.cc
@@ -1602,6 +1602,11 @@ int monster_die(monsters *monster, killer_type killer,
{
const bool bad_kill = god_hates_killing(you.religion, monster);
const bool was_neutral = testbits(monster->flags, MF_WAS_NEUTRAL);
+ // killing friendlies is good, more bloodshed!
+ // Undead feel no pain though, tormenting them is not as satisfying.
+ const bool good_kill = !created_friendly && gives_xp
+ || (is_evil_god(you.religion) && !monster->is_summoned()
+ && (targ_holy == MH_NATURAL || targ_holy == MH_HOLY));
if (death_message)
{
@@ -1632,7 +1637,7 @@ int monster_die(monsters *monster, killer_type killer,
_tutorial_inspect_kill();
// Prevent summoned creatures from being good kills.
- if (bad_kill || !created_friendly && gives_xp)
+ if (bad_kill || good_kill)
{
if (targ_holy == MH_NATURAL)
{
@@ -1720,7 +1725,7 @@ int monster_die(monsters *monster, killer_type killer,
// killing born-friendly monsters. The mutation still
// applies, however.
if (player_mutation_level(MUT_DEATH_STRENGTH)
- || (!created_friendly && gives_xp
+ || (good_kill
&& (you.religion == GOD_MAKHLEB
|| you.religion == GOD_SHINING_ONE
&& monster->is_evil())
@@ -1735,7 +1740,7 @@ int monster_die(monsters *monster, killer_type killer,
}
}
- if (!created_friendly && gives_xp
+ if (good_kill
&& (you.religion == GOD_MAKHLEB
|| you.religion == GOD_VEHUMET
|| you.religion == GOD_SHINING_ONE