diff options
author | drachereborn <kerwin.khu@gmail.com> | 2014-05-23 00:27:35 +0200 |
---|---|---|
committer | Shmuale Mark <shm.mark@gmail.com> | 2014-05-25 21:55:21 -0400 |
commit | f6d44216f86f13f3ce9a7e7ee174ecb80f4248e5 (patch) | |
tree | 74869545c0073bed711d4d2724abca018672f033 /crawl-ref/source/art-func.h | |
parent | 39681b60120ae513a3c68a709a7a488547923f90 (diff) | |
download | crawl-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.h | 65 |
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)); + } + } +} |