summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/beam.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2007-10-29 12:30:20 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2007-10-29 12:30:20 +0000
commit90b272a317a96b72679acd8bd21f5ac9af77d000 (patch)
treedd4dd783f4ec6f93e5c0e9870a222f802ca1d524 /crawl-ref/source/beam.cc
parent537d9d5e0f922b3b0731f922d0eac7fd94dc2c27 (diff)
downloadcrawl-ref-90b272a317a96b72679acd8bd21f5ac9af77d000.tar.gz
crawl-ref-90b272a317a96b72679acd8bd21f5ac9af77d000.zip
Beogh conversion fixes for trunk.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2660 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/beam.cc')
-rw-r--r--crawl-ref/source/beam.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index abbcefe830..2f4543b9f6 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -3648,6 +3648,7 @@ static int affect_monster(bolt &beam, monsters *mon)
return (BEAM_STOP);
}
+ bool hit_woke_orc = false;
if (beam.name[0] == '0')
{
if (beam.is_tracer)
@@ -3684,6 +3685,14 @@ static int affect_monster(bolt &beam, monsters *mon)
if (mons_holiness( mon ) == MH_HOLY)
did_god_conduct( DID_ATTACK_HOLY, mon->hit_dice, mon );
+
+ if (you.religion == GOD_BEOGH && mons_species(mon->type) == MONS_ORC
+ && mon->behaviour == BEH_SLEEP && you.species == SP_HILL_ORC
+ && !player_under_penance() && you.piety >= 75)
+ {
+ hit_woke_orc = true;
+ }
+
}
behaviour_event( mon, ME_ANNOY, beam_source(beam) );
@@ -3721,6 +3730,8 @@ static int affect_monster(bolt &beam, monsters *mon)
break;
}
}
+ if (hit_woke_orc)
+ beogh_follower_convert(mon, true);
return (rangeUsed);
// END non-tracer enchantment
@@ -3832,6 +3843,14 @@ static int affect_monster(bolt &beam, monsters *mon)
did_god_conduct( DID_ATTACK_HOLY, mon->hit_dice, mon );
}
+ if (you.religion == GOD_BEOGH && mons_species(mon->type) == MONS_ORC
+ && mon->behaviour == BEH_SLEEP && you.species == SP_HILL_ORC
+ && YOU_KILL(beam.thrower) && !player_under_penance()
+ && you.piety >= 75)
+ {
+ hit_woke_orc = true;
+ }
+
// Don't annoy friendlies if the player's beam did no damage.
// Hostiles will still take umbrage.
if (hurt_final > 0 || !mons_friendly(mon) || !YOU_KILL(beam.thrower))
@@ -3961,6 +3980,8 @@ static int affect_monster(bolt &beam, monsters *mon)
if (wake_mimic && mons_is_mimic( mon->type ))
mimic_alert(mon);
+ else if (hit_woke_orc)
+ beogh_follower_convert(mon, true);
}
return (range_used_on_hit(beam));