summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/hiscores.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/hiscores.cc')
-rw-r--r--crawl-ref/source/hiscores.cc40
1 files changed, 39 insertions, 1 deletions
diff --git a/crawl-ref/source/hiscores.cc b/crawl-ref/source/hiscores.cc
index 548e9c1532..9f3576d51e 100644
--- a/crawl-ref/source/hiscores.cc
+++ b/crawl-ref/source/hiscores.cc
@@ -763,7 +763,8 @@ void scorefile_entry::init_death_cause(int dam, int dsrc,
// for death by monster
if ((death_type == KILLED_BY_MONSTER || death_type == KILLED_BY_BEAM
- || death_type == KILLED_BY_SPORE)
+ || death_type == KILLED_BY_SPORE
+ || death_type == KILLED_BY_REFLECTION)
&& !invalid_monster_index(death_source)
&& menv[death_source].type != -1)
{
@@ -1640,6 +1641,43 @@ std::string scorefile_entry::death_description(death_desc_verbosity verbosity)
needs_damage = true;
break;
+ case KILLED_BY_REFLECTION:
+ needs_damage = true;
+ if (terse)
+ desc += "reflected bolt";
+ else
+ {
+ desc += "Killed by a reflected ";
+ if (auxkilldata.empty())
+ desc += "bolt";
+ else
+ desc += auxkilldata;
+
+ if (!death_source_name.empty() && !oneline && !semiverbose)
+ {
+ desc += "\n";
+ desc += " ";
+ desc += "... reflected by ";
+ desc += death_source_name;
+ needs_damage = false;
+ }
+ }
+ break;
+
+ case KILLED_BY_BOUNCE:
+ if (terse)
+ desc += "bounced beam";
+ else
+ {
+ desc += "Killed themselves with a bounced ";
+ if (auxkilldata.empty())
+ desc += "beam";
+ else
+ desc += auxkilldata;
+ }
+ needs_damage = true;
+ break;
+
case KILLED_BY_SPORE:
if (terse)
{