diff options
-rw-r--r-- | crawl-ref/source/monstuff.cc | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc index 757a4ecb26..1b79f65338 100644 --- a/crawl-ref/source/monstuff.cc +++ b/crawl-ref/source/monstuff.cc @@ -470,13 +470,31 @@ static bool monster_avoided_death(monsters *monster, killer_type killer, int i) || monster->hit_dice < 1) return (false); - // Orcs may convert to Beogh under threat of death. - if (YOU_KILL(killer) - && mons_near(monster) - && !mons_friendly(monster) - && you.religion == GOD_BEOGH + bool convert = false; + + if (you.religion == GOD_BEOGH && mons_species(monster->type) == MONS_ORC - && !player_under_penance() && you.piety >= piety_breakpoint(2)) + && !player_under_penance() && you.piety >= piety_breakpoint(2) + && mons_near(monster)) + { + if (YOU_KILL(killer)) + convert = true; + else if (MON_KILL(killer)) + { + monsters *mon = &menv[i]; + if (mons_species(mon->type) == MONS_ORC && mons_friendly(mon) + && !one_chance_in(3)) + { + convert = true; + } + } + } + + // Orcs may convert to Beogh under threat of death, either from you + // or, less often, your followers. In both cases, the checks are + // made against your stats. You're the potential messiah, after + // all. + if (convert) { #ifdef DEBUG_DIAGNOSTICS mprf(MSGCH_DIAGNOSTICS, "Death convert attempt on %s, HD: %d, " |