summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-abil.h
diff options
context:
space:
mode:
authorDracoOmega <draco_omega@live.com>2013-05-16 21:56:59 -0230
committerDracoOmega <draco_omega@live.com>2013-05-26 20:47:52 -0230
commitb1d49dd0dfda48a6b581c55c7054f68023a7537f (patch)
treef5977e6c98fb6b4c7121aa1086902eb70e43ac72 /crawl-ref/source/mon-abil.h
parent4cf0e864b9184e08541cf04b6ea46d5ddaa70c67 (diff)
downloadcrawl-ref-b1d49dd0dfda48a6b581c55c7054f68023a7537f.tar.gz
crawl-ref-b1d49dd0dfda48a6b581c55c7054f68023a7537f.zip
New monster: lost souls
These are wandering confluxes of necromantic power that have no offense of their own, but can sacrifice themselves to 'revive' allied monsters near them at the moment they are killed. If a non-zombified undead is killed while in LoS of an allied lost soul, the soul will die instead and the undead will be restored to full hp (and have its status effects reset). If a zombifiable living creature dies while in LoS of an allied lost soul, instead the soul will assume its likeness, turning into a spellcasting spectral of the same type with 'fake' (as with shadow creatures) copies of the original's gear. Lost souls move quickly and attempt to maintain range, but are otherwise fragile. If they find themselves near foes but no allies they could aid, they will flicker out of the living world and reappearing near some other ally elsewhere in the level (and temporarily submerge into the air there). Tactically, they can serve to augment singular threats and also create situations where the player might rather choose to ignore the most threatening creatures so as to force the lost soul to sacrifice itself for a harmless one, or to kill the soul directly.
Diffstat (limited to 'crawl-ref/source/mon-abil.h')
-rw-r--r--crawl-ref/source/mon-abil.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/crawl-ref/source/mon-abil.h b/crawl-ref/source/mon-abil.h
index 79f9ad98dc..4d4b507f3d 100644
--- a/crawl-ref/source/mon-abil.h
+++ b/crawl-ref/source/mon-abil.h
@@ -36,4 +36,7 @@ bool get_push_space(const coord_def& pos, coord_def& newpos,
void heal_flayed_effect(actor* act, bool quiet = false, bool blood_only = false);
+bool lost_soul_revive(monster* mons);
+bool lost_soul_spectralize(monster* mons);
+
#endif