summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/hiscores.cc
diff options
context:
space:
mode:
authorgammafunk <gammafunk@gmail.com>2014-03-05 22:59:38 -0600
committergammafunk <gammafunk@gmail.com>2014-03-06 12:27:43 -0600
commit6f24510ddd6b1be80c396e74d537a9a915535ebc (patch)
tree769abe6d2e8ef8f0ee7006d4aea03be4e38e6203 /crawl-ref/source/hiscores.cc
parent2f0dee958f5c89741639812ce72daf06e96ad4f0 (diff)
downloadcrawl-ref-6f24510ddd6b1be80c396e74d537a9a915535ebc.tar.gz
crawl-ref-6f24510ddd6b1be80c396e74d537a9a915535ebc.zip
Octopode Crusher: An octopode warrior that throws your weight around.
This a late-game octopode monster with a new throw ability as well as throw icicle. It's meant to be a bit tougher than the late-shoals merfolk it can spawn with in the Depths water population (it replaces ordinary octopodes there). New ability: Throw. A 2 in 5 chance to hurl a victim that's currently being constricted by the crusher for undodgable, AC-checking damage, preferably "into" (i.e. adjacent to) a solid feature for 50% increased damage. The base throw damage is currently HD * 3. The landing site must be at distance of at least 4 from the thrower, is always habitable for the victim, and the feature site must be visible to the thrower if the damage increase is to apply. If no landing site adjacent to a solid feature can be found, any habitable landing site in LOS is used, but then only the base damage applies.
Diffstat (limited to 'crawl-ref/source/hiscores.cc')
-rw-r--r--crawl-ref/source/hiscores.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/crawl-ref/source/hiscores.cc b/crawl-ref/source/hiscores.cc
index 0072ae8ccd..ccd0141c3b 100644
--- a/crawl-ref/source/hiscores.cc
+++ b/crawl-ref/source/hiscores.cc
@@ -621,7 +621,7 @@ static const char *kill_method_names[] =
"falling_down_stairs", "acid", "curare",
"beogh_smiting", "divine_wrath", "bounce", "reflect", "self_aimed",
"falling_through_gate", "disintegration", "headbutt", "rolling",
- "mirror_damage", "spines", "frailty", "barbs",
+ "mirror_damage", "spines", "frailty", "barbs", "being_thrown",
};
static const char *_kill_method_name(kill_method_type kmt)
@@ -1178,7 +1178,8 @@ void scorefile_entry::init_death_cause(int dam, int dsrc,
|| death_type == KILLED_BY_REFLECTION
|| death_type == KILLED_BY_ROLLING
|| death_type == KILLED_BY_SPINES
- || death_type == KILLED_BY_WATER)
+ || death_type == KILLED_BY_WATER
+ || death_type == KILLED_BY_BEING_THROWN)
&& !invalid_monster_index(death_source)
&& menv[death_source].type != MONS_NO_MONSTER)
{
@@ -2473,6 +2474,14 @@ string scorefile_entry::death_description(death_desc_verbosity verbosity) const
desc += terse ? "barbs" : "Succumbed to a manticore's barbed spikes";
break;
+ case KILLED_BY_BEING_THROWN:
+ if (terse)
+ desc += apostrophise(death_source_desc()) + " throw";
+ else
+ desc += "Thrown by " + death_source_desc();
+ needs_damage = true;
+ break;
+
default:
desc += terse? "program bug" : "Nibbled to death by software bugs";
break;