summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/describe.cc
diff options
context:
space:
mode:
authorJude Brown <bookofjude@users.sourceforge.net>2009-12-24 20:34:29 +1000
committerJude Brown <bookofjude@users.sourceforge.net>2009-12-24 21:17:11 +1000
commit9fcc7c41761ea968d0da075f2974a8908a2ef19b (patch)
tree85c8495c846722906b4832ba3d5de430532d95f6 /crawl-ref/source/describe.cc
parentbcc249f77c1459b75b7a4f96b018a15569e675b3 (diff)
downloadcrawl-ref-9fcc7c41761ea968d0da075f2974a8908a2ef19b.tar.gz
crawl-ref-9fcc7c41761ea968d0da075f2974a8908a2ef19b.zip
New (rakshasa) unique: Mara, Lord of Ilusions.
This re-uses several ideas from the Emerald Eye FR, and implements the spell "Mislead": this grants the "Misled" status effect to the player, and causes on-level monsters to appear (glyph, name and tile) to be other monsters. Only their appearance is changed. Healing potions and rain remove this status effect. Mara also has a beefed-up version of the Rakshasa clone spell: it instead creates an "exact" clone (slightly altered spells list, and non-unique status for his clones). Only two will ever be created at once. Finally, he has the spell "Summon Player Ghost". This spell creates a ghost of the player (though marked as a summon, meaning that it (shouldn't) register a milestone, though it will be treated as a self-ghost kill) that is hostile. Only one of these should be existant at any one point in time. I'm pretty sure that I haven't broken anything, but would definitely appreciate someone sanity-checking this commit. Known minor issue: Kirke's summon ugly things being cast while having the Misled status causes them to show up with no glyph.
Diffstat (limited to 'crawl-ref/source/describe.cc')
-rw-r--r--crawl-ref/source/describe.cc24
1 files changed, 15 insertions, 9 deletions
diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc
index 8846f838ea..95473fc4a1 100644
--- a/crawl-ref/source/describe.cc
+++ b/crawl-ref/source/describe.cc
@@ -2731,16 +2731,21 @@ 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.
+ // Magic resistance at MAG_IMMUNE, but not for Rs, as there is then
+ // too much information leak.
+ if (mon.type != MONS_RAKSHASA && mon.type != MONS_MARA
+ && mon.type != MONS_RAKSHASA_FAKE && mon.type != MONS_MARA_FAKE)
{
- const int mr = mon.res_magic();
- if (mr >= 10)
+ if (mons_immune_magic(&mon))
+ result << pronoun << " is immune to magical enchantments.$";
+ else // How resistant is it? Same scale as the player.
{
- result << pronoun << make_stringf(" is %s resistant to magic.$",
- magic_res_adjective(mr).c_str());
+ const int mr = mon.res_magic();
+ if (mr >= 10)
+ {
+ result << pronoun << make_stringf(" is %s resistant to magic.$",
+ magic_res_adjective(mr).c_str());
+ }
}
}
@@ -2929,7 +2934,8 @@ void get_monster_db_desc(const monsters& mons, describe_info &inf,
<< " is incapable of using stairs.$";
}
- if (mons.is_summoned() && mons.type != MONS_RAKSHASA_FAKE)
+ if (mons.is_summoned() && (mons.type != MONS_RAKSHASA_FAKE
+ && mons.type != MONS_MARA_FAKE))
{
inf.body << "$" << "This monster has been summoned, and is thus only "
"temporary. Killing it yields no experience, nutrition "