summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-ench.cc
diff options
context:
space:
mode:
authorDracoOmega <draco_omega@live.com>2014-02-20 13:55:46 -0330
committerSteve Melenchuk <smelenchuk@gmail.com>2014-03-06 09:58:04 -0700
commit8775c94ab80febb6c3c4fa3c967e77e82993b02f (patch)
tree34a8603f1e58bb7940dcdc8d7a19ccfc577e1ef4 /crawl-ref/source/mon-ench.cc
parentc60085f66cc3fa0e7dd44289e96877a76c277196 (diff)
downloadcrawl-ref-8775c94ab80febb6c3c4fa3c967e77e82993b02f.tar.gz
crawl-ref-8775c94ab80febb6c3c4fa3c967e77e82993b02f.zip
Some Summon Greater Demon adjustments
Greater Demon was hit especially hard by the overall summoning nerfs for reasons that aren't immediately obvious. Given that the strongest demons are guaranteed to eventually turn hostile, it was a fairly common tactic to keep your distance from them while they fought (lest you be tormented or hellfired without warning), but now not only do you need to stay closer to them for them to continue fighting, but it is difficult to actually leave them behind if you try! Even if you tell the demon to wait, if it attempts to engage a hostile (as it will if any are around) and then loses LoS to you, it will dutifully run right back after you, even if what you WANTED was to lose LoS to it. (Also, a small cap means fewer friendly demons to quickly dispatch any that turn hostile before they can harm you). The charm duration was extremely low compared to the full summon duration of the demons, frequently making 1s that were friendly for only 10 turns and then hostile for 90 turns afterward. Combined with the noticeable chance of all demons being outright hostile from the start, I feel that the risk/reward ration of this spell was just not equitable anymore. This commit makes three changes aimed at keeping the intent of the spell while making it more useable under the new summoning conditions: 1) Summoned 1s remain charmed for longer (duration somewhat influenced by spellpower) 2) Overall duration of summons is reduced (which should make it easier to abjure any hostile demons you end up with, whether they are hostile immediately or later) 3) 1s breaking free of charm lose their first action afterward, so that they can no longer torment/hellfire the player as the very first indication of their becoming hostile. Ideally this keeps the spell's identity as one with powerful upsides, but also risks, while tilting the balance more in the player's favor and making the risks more manageable when forced to maintain proximity with temperamental fiends.
Diffstat (limited to 'crawl-ref/source/mon-ench.cc')
-rw-r--r--crawl-ref/source/mon-ench.cc14
1 files changed, 13 insertions, 1 deletions
diff --git a/crawl-ref/source/mon-ench.cc b/crawl-ref/source/mon-ench.cc
index aaa8c63375..3e76e24e3e 100644
--- a/crawl-ref/source/mon-ench.cc
+++ b/crawl-ref/source/mon-ench.cc
@@ -576,7 +576,12 @@ void monster::remove_enchantment_effect(const mon_enchant &me, bool quiet)
case ENCH_CHARM:
if (!quiet)
- simple_monster_message(this, " is no longer charmed.");
+ {
+ if (props.exists("charmed_demon"))
+ simple_monster_message(this, " breaks free of your control!");
+ else
+ simple_monster_message(this, " is no longer charmed.");
+ }
if (you.can_see(this))
{
@@ -593,6 +598,13 @@ void monster::remove_enchantment_effect(const mon_enchant &me, bool quiet)
}
mons_att_changed(this);
+ // If a greater demon is breaking free, give the player time to respond
+ if (props.exists("charmed_demon"))
+ {
+ speed_increment -= speed;
+ props.erase("charmed_demon");
+ }
+
// Reevaluate behaviour.
behaviour_event(this, ME_EVAL);
break;