From 5ec81a1f6695b9253b85ada7fa8a4eb7a51f7209 Mon Sep 17 00:00:00 2001 From: dolorous Date: Sun, 15 Mar 2009 17:02:02 +0000 Subject: Per jpeg's suggestion, add a "desecrate orcish remains" conduct for Beogh. This will cause a small piety hit, but no penance, for butchering orc corpses, or for using non-area necromantic spells on orcish remains which can (a) destroy them without creating zombified orcs, or (b) turn them non-orcish (Fulsome Distillation, Sublimation of Blood, Bone Shards, and Twisted Resurrection). git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9498 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/spells3.cc | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'crawl-ref/source/spells3.cc') diff --git a/crawl-ref/source/spells3.cc b/crawl-ref/source/spells3.cc index 0b4ce3865c..ccbb018590 100644 --- a/crawl-ref/source/spells3.cc +++ b/crawl-ref/source/spells3.cc @@ -291,11 +291,16 @@ bool cast_bone_shards(int power, bolt &beam) bool success = false; + const bool was_orc = (mons_species(you.weapon()->plus) == MONS_ORC); + if (you.weapon()->sub_type != CORPSE_SKELETON) { mpr("The corpse collapses into a pulpy mess."); dec_inv_item_quantity(you.equip[EQ_WEAPON], 1); + + if (was_orc) + did_god_conduct(DID_DESECRATE_ORCISH_REMAINS, 2); } else { @@ -311,6 +316,9 @@ bool cast_bone_shards(int power, bolt &beam) dec_inv_item_quantity(you.equip[EQ_WEAPON], 1); + if (was_orc) + did_god_conduct(DID_DESECRATE_ORCISH_REMAINS, 2); + zapping(ZAP_BONE_SHARDS, power, beam); success = true; @@ -337,6 +345,9 @@ bool cast_sublimation_of_blood(int pow) inc_mp(7 + random2(7), false); dec_inv_item_quantity(wielded, 1); + + if (mons_species(you.inv[wielded].plus) == MONS_ORC) + did_god_conduct(DID_DESECRATE_ORCISH_REMAINS, 2); } else if (is_blood_potion(you.inv[wielded])) { @@ -1039,6 +1050,7 @@ bool cast_simulacrum(int pow, god_type god) bool cast_twisted_resurrection(int pow, god_type god) { int how_many_corpses = 0; + int how_many_orcs = 0; int total_mass = 0; int rotted = 0; @@ -1048,6 +1060,8 @@ bool cast_twisted_resurrection(int pow, god_type god) { total_mass += mons_weight(si->plus); how_many_corpses++; + if (mons_species(si->plus) == MONS_ORC) + how_many_orcs++; if (food_is_rotten(*si)) rotted++; destroy_item(si->index()); @@ -1080,6 +1094,10 @@ bool cast_twisted_resurrection(int pow, god_type god) { mprf("The corpse%s collapse%s into a pulpy mess.", how_many_corpses > 1 ? "s": "", how_many_corpses > 1 ? "": "s"); + + if (how_many_orcs > 0) + did_god_conduct(DID_DESECRATE_ORCISH_REMAINS, 2 * how_many_orcs); + return (false); } @@ -1102,6 +1120,10 @@ bool cast_twisted_resurrection(int pow, god_type god) if (monster == -1) { mpr("The corpses collapse into a pulpy mess."); + + if (how_many_orcs > 0) + did_god_conduct(DID_DESECRATE_ORCISH_REMAINS, 2 * how_many_orcs); + return (false); } @@ -1110,6 +1132,9 @@ bool cast_twisted_resurrection(int pow, god_type god) mpr("The heap of corpses melds into an agglomeration of writhing flesh!"); + if (how_many_orcs > 0) + did_god_conduct(DID_DESECRATE_ORCISH_REMAINS, 2 * how_many_orcs); + if (mon == MONS_ABOMINATION_LARGE) { menv[monster].hit_dice = 8 + total_mass / ((colour == LIGHTRED) ? 500 : -- cgit v1.2.3-54-g00ecf