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>2008-01-06 10:54:31 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-01-06 10:54:31 +0000
commit6bc2ed8d726d40e06198a96719d0b7457c53a284 (patch)
treed03858a788b00109c78a4782eb1caafdd29a2a27 /crawl-ref/source/beam.cc
parent7281e182f7ade312409dee7b007188906169918e (diff)
downloadcrawl-ref-6bc2ed8d726d40e06198a96719d0b7457c53a284.tar.gz
crawl-ref-6bc2ed8d726d40e06198a96719d0b7457c53a284.zip
Change conducts of Zin and TSO (!)
Zin: - DID_UNDEAD_KILLED_BY_SERVANT - DID_DEMON_KILLED_BY_SERVANT + DID_KILL_MUTATOR_OR_ROTTER (shapeshifters and monsters that have an attack AF_MUTATE or AF_ROT) TSO: + DID_KILL_NATURAL_EVIL + DID_NATURAL_EVIL_KILLED_BY_SERVANT Removed M_EVIL flag from a number of early monsters such as goblins and hobgoblins, and also from orcs, ogres, trolls and big kobold. Reasoning: The corresponding species are not considered evil themselves and are allowed to worship the good gods). Note that this weakens all forms of holy attacks! Any attempt to charm evil, undead or demonic monsters will fail (no effect) for worshippers of TSO. Like Makhleb, TSO now gets returning power (arguable) and hp from killing evil, undead and demonic monsters. Zin's piety pool (from donations) is drained much quicker now, on average once every 5 turns. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3213 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/beam.cc')
-rw-r--r--crawl-ref/source/beam.cc26
1 files changed, 23 insertions, 3 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index a876a3fd02..a09fdbb141 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -70,7 +70,8 @@
// from remaining range
#define MON_RESIST 0 // monster resisted
#define MON_UNAFFECTED 1 // monster unaffected
-#define MON_AFFECTED 2 // monster was unaffected
+#define MON_AFFECTED 2 // monster was affected
+#define MON_OTHER 3 // monster unaffected, but for other reasons
static int spreadx[] = { 0, 0, 1, -1 };
static int spready[] = { -1, 1, 0, 0 };
@@ -2112,6 +2113,13 @@ int mons_ench_f2(monsters *monster, bolt &pbolt)
return (MON_AFFECTED);
}
case BEAM_CHARM: /* 9 = charm */
+ if (you.religion == GOD_SHINING_ONE
+ && is_mons_evil_demonic_or_undead(monster))
+ {
+ simple_monster_message(monster, " is repulsed!");
+ return (MON_OTHER);
+ }
+
if (monster->add_ench(ENCH_CHARM))
{
// put in an exception for fungi, plants and other things you won't
@@ -4182,8 +4190,14 @@ static int affect_monster_enchantment(bolt &beam, monsters *mon)
if (check_mons_resist_magic( mon, beam.ench_power ))
return mons_immune_magic(mon) ? MON_UNAFFECTED : MON_RESIST;
- simple_monster_message(mon, " is enslaved.");
beam.obvious_effect = true;
+ if (you.religion == GOD_SHINING_ONE)
+ {
+ simple_monster_message(mon, " is repulsed!");
+ return (MON_OTHER);
+ }
+
+ simple_monster_message(mon, " is enslaved.");
// wow, permanent enslaving
mon->attitude = ATT_FRIENDLY;
@@ -4208,8 +4222,14 @@ static int affect_monster_enchantment(bolt &beam, monsters *mon)
if (mons_friendly(mon))
return (MON_UNAFFECTED);
- simple_monster_message(mon, " is enslaved.");
beam.obvious_effect = true;
+ if (you.religion == GOD_SHINING_ONE)
+ {
+ simple_monster_message(mon, " is repulsed!");
+ return (MON_OTHER);
+ }
+
+ simple_monster_message(mon, " is enslaved.");
// wow, permanent enslaving
if (one_chance_in(2 + mon->hit_dice / 4))