diff options
author | Adam Borowski <kilobyte@angband.pl> | 2009-11-24 13:46:43 +0100 |
---|---|---|
committer | Adam Borowski <kilobyte@angband.pl> | 2009-11-24 13:46:43 +0100 |
commit | 04d3f6151ecd235a6f1b91bc96010923b4c9f426 (patch) | |
tree | cafaf3f16deb1184a5e7fda84c963ac999a4eb1f /crawl-ref/source/mon-stuff.cc | |
parent | 077a18f5764a12e6c6dd25efedd3a8febd402fd2 (diff) | |
download | crawl-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.cc | 11 |
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 |