summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/art-func.h
diff options
context:
space:
mode:
authordrachereborn <kerwin.khu@gmail.com>2014-05-23 00:27:35 +0200
committerShmuale Mark <shm.mark@gmail.com>2014-05-25 21:55:21 -0400
commitf6d44216f86f13f3ce9a7e7ee174ecb80f4248e5 (patch)
tree74869545c0073bed711d4d2724abca018672f033 /crawl-ref/source/art-func.h
parent39681b60120ae513a3c68a709a7a488547923f90 (diff)
downloadcrawl-ref-f6d44216f86f13f3ce9a7e7ee174ecb80f4248e5.tar.gz
crawl-ref-f6d44216f86f13f3ce9a7e7ee174ecb80f4248e5.zip
Modify unrands Chilly Death and Flaming Death
Chilly Death now has flash freeze Flaming Death now has sticky flame (1 in 3 chance) Chilly Death's slaying is also buffed (+8, +10) [wheals: tweaked chilly death description to make it clear it only affects movement speed, and used increase_duration on MarvinPA's suggestion.]
Diffstat (limited to 'crawl-ref/source/art-func.h')
-rw-r--r--crawl-ref/source/art-func.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/crawl-ref/source/art-func.h b/crawl-ref/source/art-func.h
index fcfef2d4a6..c636dcfcd9 100644
--- a/crawl-ref/source/art-func.h
+++ b/crawl-ref/source/art-func.h
@@ -1074,3 +1074,68 @@ static void _FIRESTARTER_melee_effects(item_def* weapon, actor* attacker,
}
}
}
+
+///////////////////////////////////////////////////
+
+static void _CHILLY_DEATH_equip(item_def *item, bool *show_msgs, bool unmeld)
+{
+ _equip_mpr(show_msgs, "The dagger glows with an icy blue light!");
+}
+
+static void _CHILLY_DEATH_unequip(item_def *item, bool *show_msgs)
+{
+ _equip_mpr(show_msgs, "The dagger stops glowing.");
+}
+
+static void _CHILLY_DEATH_melee_effects(item_def* weapon, actor* attacker,
+ actor* defender, bool mondied, int dam)
+{
+ if (dam)
+ {
+ if (defender->is_monster()
+ && !mondied
+ && !defender->as_monster()->has_ench(ENCH_FROZEN))
+ {
+ mprf("%s is flash-frozen.",
+ defender->name(DESC_THE).c_str());
+ defender->as_monster()->add_ench(
+ mon_enchant(ENCH_FROZEN, 0, attacker,
+ (5 + random2(dam)) * BASELINE_DELAY));
+ }
+ else if (defender->is_player()
+ && !you.duration[DUR_FROZEN])
+ {
+ mprf(MSGCH_WARN, "You are encased in ice.");
+ you.increase_duration(DUR_FROZEN, 5 + random2(dam));
+ }
+ }
+}
+
+///////////////////////////////////////////////////
+
+static void _FLAMING_DEATH_equip(item_def *item, bool *show_msgs, bool unmeld)
+{
+ _equip_mpr(show_msgs, "The scimitar bursts into red hot flame!");
+}
+
+static void _FLAMING_DEATH_unequip(item_def *item, bool *show_msgs)
+{
+ _equip_mpr(show_msgs, "The scimitar stops flaming.");
+}
+
+static void _FLAMING_DEATH_melee_effects(item_def* weapon, actor* attacker,
+ actor* defender, bool mondied, int dam)
+{
+ if (!mondied && (dam > 2 && one_chance_in(3)))
+ {
+ if (defender->is_player())
+ napalm_player(random2avg(7, 3) + 1, attacker->name(DESC_A, true));
+ else
+ {
+ napalm_monster(
+ defender->as_monster(),
+ attacker,
+ min(4, 1 + random2(attacker->get_experience_level())/2));
+ }
+ }
+}