From 23d9c0d8f9b6763cedbd0cc73c6e479dd11feb23 Mon Sep 17 00:00:00 2001 From: dshaligram Date: Sun, 28 Oct 2007 10:37:06 +0000 Subject: Monsters should not gain experience for offing their friends. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2635 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/monstuff.cc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'crawl-ref/source/monstuff.cc') diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc index 6eebbc4750..81c9a7d05b 100644 --- a/crawl-ref/source/monstuff.cc +++ b/crawl-ref/source/monstuff.cc @@ -375,7 +375,8 @@ static void check_kill_milestone(const monsters *mons, } #endif // DGL_MILESTONES -static void give_monster_experience( int killer_index, int experience, +static void give_monster_experience( monsters *victim, + int killer_index, int experience, bool victim_was_born_friendly ) { if (killer_index < 0 || killer_index >= MAX_MONSTERS) @@ -384,8 +385,11 @@ static void give_monster_experience( int killer_index, int experience, if (!mons->alive()) return; - if (!victim_was_born_friendly || !mons_friendly(mons)) + if ((!victim_was_born_friendly || !mons_friendly(mons)) + && !mons_aligned(killer_index, monster_index(victim))) + { mons->gain_exp(experience); + } } static void give_adjusted_experience(monsters *monster, killer_type killer, @@ -403,7 +407,8 @@ static void give_adjusted_experience(monsters *monster, killer_type killer, gain_exp( experience / 2 + 1, exp_gain, avail_gain ); if (MON_KILL(killer)) - give_monster_experience( killer_index, experience, created_friendly ); + give_monster_experience( monster, killer_index, experience, + created_friendly ); } static bool is_pet_kill(killer_type killer, int i) -- cgit v1.2.3-54-g00ecf