From 88c3cb054fd143fc5737df3701763fa13db78624 Mon Sep 17 00:00:00 2001 From: zelgadis Date: Sun, 14 Dec 2008 09:34:57 +0000 Subject: Some updates to the chaos brand based on discussions: 1) Remove behavior/logic which wouldn't be evident to the player. 2) Xom only gives chaos branded missiles and launchers to hostile monsters, never as a gift to the player. 3) The frequency of a branded Xom gift being switched to the chaos brand has decreased from 33% to 20%. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7831 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/fight.cc | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) (limited to 'crawl-ref/source/fight.cc') diff --git a/crawl-ref/source/fight.cc b/crawl-ref/source/fight.cc index b78b568ef3..a66dd8c034 100644 --- a/crawl-ref/source/fight.cc +++ b/crawl-ref/source/fight.cc @@ -2209,7 +2209,6 @@ void melee_attack::chaos_affects_defender() const bool mon = defender->atype() == ACT_MONSTER; const bool immune = mon && mons_immune_magic(def); const bool is_shifter = mon && mons_is_shapeshifter(def); - const bool is_chaotic = mon && mons_is_chaotic(def); const bool can_clone = mon && !mons_is_holy(def) && mons_clonable(def, true); const bool can_poly = is_shifter || (defender->can_safely_mutate() @@ -2223,25 +2222,9 @@ void melee_attack::chaos_affects_defender() int rage_chance = can_rage ? 10 : 0; int miscast_chance = 10; - if (is_chaotic) - { - // Polymorphing might reduce amount of chaos in the world. - poly_chance = 0; - poly_up_chance = 0; - - // Chaos wants more chaos. - clone_chance *= 2; - - // Chaos loves shifters. - if (is_shifter) - { - clone_chance *= 2; - poly_up_chance = 4; - - // Already a shifter - shifter_chance = 0; - } - } + if (is_shifter) + // Already a shifter + shifter_chance = 0; // A chaos self-attack increased the chance of certain effects, // due to a short-circuit/feedback/resonance/whatever. @@ -2252,6 +2235,18 @@ void melee_attack::chaos_affects_defender() poly_up_chance *= 2; shifter_chance *= 2; miscast_chance *= 2; + + // Inform player that something is up. + if (see_grid(defender->pos())) + { + if (defender->atype() == ACT_PLAYER) + mpr("You give off a flash of multi-coloured light!"); + else if (you.can_see(defender)) + simple_monster_message(def, " gives off a flash of " + "multi-coloured light!"); + else + mpr("There is a flash of multi-coloured light!"); + } } // NOTE: Must appear in exact same order as in chaos_type enumeration. -- cgit v1.2.3-54-g00ecf