From 58c32846fce869fb03fc45ae0d137b55c6097b39 Mon Sep 17 00:00:00 2001 From: Adam Borowski Date: Wed, 18 Nov 2009 15:46:58 +0100 Subject: Un-underpopulate '4's by adding sixfirhy: elec theme, unorthodox timings. Sixfirhies move in bursts: speed 30, but act only on 4 turns out of 12. They also get a bonus to moving compared to other actions (move cost 60%). Damage brand is AF_ELEC -- it's unproportionately dangerous, so the numbers only look small. Also, electricity heals them! It won't bring the back from over the edge if physical part of damage got them to 0 hp or less, in this case, they'll explode instead. Keeping with the long tradition of Crawl's demon names, the credit for this one goes to timecircuits' cat. --- crawl-ref/source/item_use.cc | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'crawl-ref/source/item_use.cc') diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc index 698a066220..515c54c414 100644 --- a/crawl-ref/source/item_use.cc +++ b/crawl-ref/source/item_use.cc @@ -1880,7 +1880,16 @@ static bool _charged_hit_victim(bolt &beam, actor* victim, int &dmg, if (victim->airborne() || victim->res_elec() > 0 || !one_chance_in(3)) return (false); - dmg += 10 + random2(15); + // A hack and code duplication, but that's easier than adding accounting + // for each of multiple brands. + if (victim->id() == MONS_SIXFIRHY) + { + if (!beam.is_tracer) + victim->heal(10 + random2(15), false); + // physical damage is still done + } + else + dmg += 10 + random2(15); if (beam.is_tracer) return (false); @@ -1888,6 +1897,8 @@ static bool _charged_hit_victim(bolt &beam, actor* victim, int &dmg, if (you.can_see(victim)) if (victim->atype() == ACT_PLAYER) dmg_msg = "You are electrocuted!"; + else if (victim->id() == MONS_SIXFIRHY) + dmg_msg = victim->name(DESC_CAP_THE) + " is charged up!"; else dmg_msg = "There is a sudden explosion of sparks!"; -- cgit v1.2.3-54-g00ecf