diff options
author | Steve Melenchuk <smelenchuk@gmail.com> | 2014-01-21 18:29:06 -0700 |
---|---|---|
committer | Steve Melenchuk <smelenchuk@gmail.com> | 2014-01-21 22:11:39 -0700 |
commit | 889f32d1afad941cdf3a3fa9d877aee8947f1f02 (patch) | |
tree | 5d29044bc778407462ad440a71fbc6ee92341a17 /crawl-ref/source/mon-ench.cc | |
parent | 9bf2e4835f6a977e7b902899e68b167b03ffccc7 (diff) | |
download | crawl-ref-889f32d1afad941cdf3a3fa9d877aee8947f1f02.tar.gz crawl-ref-889f32d1afad941cdf3a3fa9d877aee8947f1f02.zip |
Demonspawn black suns: Black Mark.
Originally Black Hole in the proposal, but with a Singularity spell
in the works that's too misleading a name.
This spell empowers the caster and its allies to randomly drain speed,
skills, abilities, or magic on successful damaging melee attacks,
healing the ally making the attack.
This commit also gives black suns a (temporary?) spell set loosely based
in the proposal; they also get Malign Offering, which I see as fitting
both the necromancy theme and the ability of the caster to heal their
allies (through Black Mark).
Diffstat (limited to 'crawl-ref/source/mon-ench.cc')
-rw-r--r-- | crawl-ref/source/mon-ench.cc | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/crawl-ref/source/mon-ench.cc b/crawl-ref/source/mon-ench.cc index f6de847921..087a118307 100644 --- a/crawl-ref/source/mon-ench.cc +++ b/crawl-ref/source/mon-ench.cc @@ -918,6 +918,13 @@ void monster::remove_enchantment_effect(const mon_enchant &me, bool quiet) break; } + case ENCH_BLACK_MARK: + if (!quiet) + simple_monster_message(this, " is no longer absorbing vital" + " energies."); + calc_speed(); + break; + default: break; } @@ -1026,7 +1033,7 @@ void monster::timeout_enchantments(int levels) case ENCH_OZOCUBUS_ARMOUR: case ENCH_WRETCHED: case ENCH_SCREAMED: case ENCH_BLIND: case ENCH_WORD_OF_RECALL: case ENCH_INJURY_BOND: case ENCH_FLAYED: case ENCH_AGILE: case ENCH_FROZEN: - case ENCH_EPHEMERAL_INFUSION: + case ENCH_EPHEMERAL_INFUSION: case ENCH_BLACK_MARK: lose_ench_levels(i->second, levels); break; @@ -2084,7 +2091,7 @@ static const char *enchant_names[] = "awaken vines", "control_winds", "wind_aided", "summon_capped", "toxic_radiance", "grasping_roots_source", "grasping_roots", "iood_charged", "fire_vuln", "tornado_cooldown", "icemail", "agile", - "frozen", "ephemeral_infusion", "buggy", + "frozen", "ephemeral_infusion", "black_mark", "buggy", }; static const char *_mons_enchantment_name(enchant_type ench) @@ -2228,6 +2235,7 @@ int mon_enchant::calc_duration(const monster* mons, case ENCH_STONESKIN: case ENCH_OZOCUBUS_ARMOUR: case ENCH_AGILE: + case ENCH_BLACK_MARK: cturn = 1000 / _mod_speed(25, mons->speed); break; case ENCH_LIQUEFYING: |