diff options
Diffstat (limited to 'crawl-ref/source/hiscores.cc')
-rw-r--r-- | crawl-ref/source/hiscores.cc | 40 |
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) { |