summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-ench.cc
diff options
context:
space:
mode:
authorSteve Melenchuk <smelenchuk@gmail.com>2014-01-21 18:29:06 -0700
committerSteve Melenchuk <smelenchuk@gmail.com>2014-01-21 22:11:39 -0700
commit889f32d1afad941cdf3a3fa9d877aee8947f1f02 (patch)
tree5d29044bc778407462ad440a71fbc6ee92341a17 /crawl-ref/source/mon-ench.cc
parent9bf2e4835f6a977e7b902899e68b167b03ffccc7 (diff)
downloadcrawl-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.cc12
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: