summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source
diff options
context:
space:
mode:
authorRobert Vollmert <rvollmert@gmx.net>2009-12-04 08:52:58 +0100
committerRobert Vollmert <rvollmert@gmx.net>2009-12-04 09:18:30 +0100
commit83a78c65abdbfa995225122be56548a75d46f0ff (patch)
tree8b94ef7340139ec8d7b2eced94a6a6d9ac71e1b3 /crawl-ref/source
parentc4c9ac1d41f59ab9038529cbd90e45e41f4e20c7 (diff)
downloadcrawl-ref-83a78c65abdbfa995225122be56548a75d46f0ff.tar.gz
crawl-ref-83a78c65abdbfa995225122be56548a75d46f0ff.zip
Added monster MR display (petato, mantis-id 113).
Adds a line to the monster description screen that tells you how resistant it is to magic. Uses the same scale as player MR (eg on the % screen) except it skips "not resistant" levels of (non-)resistance. Uploaded a new version of the patch; now includes experimental MR display rescaling for both players and npcs. Try it out on the % screen, or examine a creature. Adverbs stolen from the stealth display, crazy resistant creatures are described as "almost entirely resistant".
Diffstat (limited to 'crawl-ref/source')
-rw-r--r--crawl-ref/source/describe.cc17
-rw-r--r--crawl-ref/source/output.cc7
-rw-r--r--crawl-ref/source/player.cc7
3 files changed, 27 insertions, 4 deletions
diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc
index 47c8d42f66..b4ef97cf18 100644
--- a/crawl-ref/source/describe.cc
+++ b/crawl-ref/source/describe.cc
@@ -2732,6 +2732,23 @@ static std::string _monster_stat_description(const monsters& mon)
// Magic resistance at MAG_IMMUNE.
if (mons_immune_magic(&mon))
result << pronoun << " is immune to magical enchantments.$";
+ else // How resistant is it? Same scale as the player.
+ {
+ const int mr = mon.res_magic();
+ if (mr >= 10)
+ {
+ result << pronoun << make_stringf(" is %s resistant to magic.$",
+ (mr < 30) ? "slightly" :
+ (mr < 60) ? "somewhat" :
+ (mr < 90) ? "quite" :
+ (mr < 120) ? "very" :
+ (mr < 150) ? "extremely" :
+ (mr < 190) ? "extraordinarily" :
+ (mr < 240) ? "incredibly" :
+ (mr < 300) ? "uncannily"
+ : "almost entirely");
+ }
+ }
if (mons_class_flag(mon.type, M_STATIONARY))
result << pronoun << " cannot move.$";
diff --git a/crawl-ref/source/output.cc b/crawl-ref/source/output.cc
index ad90622cca..6b02f7d1e1 100644
--- a/crawl-ref/source/output.cc
+++ b/crawl-ref/source/output.cc
@@ -2287,8 +2287,11 @@ std::string _status_mut_abilities()
(mr < 60) ? "somewhat" :
(mr < 90) ? "quite" :
(mr < 120) ? "very" :
- (mr < 140) ? "extremely"
- : "incredibly");
+ (mr < 150) ? "extremely" :
+ (mr < 190) ? "extraordinarily" :
+ (mr < 240) ? "incredibly" :
+ (mr < 300) ? "uncannily"
+ : "almost entirely");
status.push_back(info);
diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc
index ab351092fe..e69dc3c94d 100644
--- a/crawl-ref/source/player.cc
+++ b/crawl-ref/source/player.cc
@@ -3798,8 +3798,11 @@ void display_char_status()
(mr < 60) ? "somewhat" :
(mr < 90) ? "quite" :
(mr < 120) ? "very" :
- (mr < 140) ? "extremely"
- : "incredibly");
+ (mr < 150) ? "extremely" :
+ (mr < 190) ? "extraordinarily" :
+ (mr < 240) ? "incredibly" :
+ (mr < 300) ? "uncannily"
+ : "almost entirely");
// character evaluates their ability to sneak around:
const int ustealth = check_stealth();