summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-place.cc
diff options
context:
space:
mode:
authorStefan O'Rear <stefanor@cox.net>2009-11-13 12:26:49 -0800
committerStefan O'Rear <stefanor@cox.net>2009-11-13 12:26:49 -0800
commit7ec7eeeab0f4d6dadba493d5b11cc3a0910f6a06 (patch)
tree33f6304c1774daaffa0fe2cd8be9a4718dbb2120 /crawl-ref/source/mon-place.cc
parent7ac3138dd9288b88b2bc2781af9684a4ba53153f (diff)
downloadcrawl-ref-7ec7eeeab0f4d6dadba493d5b11cc3a0910f6a06.tar.gz
crawl-ref-7ec7eeeab0f4d6dadba493d5b11cc3a0910f6a06.zip
Add a little variety in summoned by tags
Diffstat (limited to 'crawl-ref/source/mon-place.cc')
-rw-r--r--crawl-ref/source/mon-place.cc22
1 files changed, 19 insertions, 3 deletions
diff --git a/crawl-ref/source/mon-place.cc b/crawl-ref/source/mon-place.cc
index 545cd28454..32a6158786 100644
--- a/crawl-ref/source/mon-place.cc
+++ b/crawl-ref/source/mon-place.cc
@@ -1263,12 +1263,27 @@ static int _place_monster_aux(const mgen_data &mg,
}
mon->foe = mg.foe;
+ std::string blame_prefix;
+
+ if (mg.abjuration_duration > 0)
+ {
+ blame_prefix = "summoned by ";
+ }
+ else if (mons_class_is_zombified(mg.cls))
+ {
+ blame_prefix = "animated by ";
+ }
+ else
+ {
+ blame_prefix = "created by ";
+ }
+
if (!mg.non_actor_summoner.empty())
{
CrawlStoreValue& blame = mon->props["blame"];
blame.new_vector(SV_STR, SFLAG_CONST_TYPE);
- blame.get_vector().push_back(mg.non_actor_summoner);
+ blame.get_vector().push_back(blame_prefix + mg.non_actor_summoner);
}
else if (mg.summoner != NULL)
{
@@ -1278,13 +1293,14 @@ static int _place_monster_aux(const mgen_data &mg,
if (mg.summoner->atype() == ACT_PLAYER)
{
- blame.get_vector().push_back("themselves");
+ blame.get_vector().push_back(blame_prefix + "the player character");
}
else
{
monsters* sum = &menv[mg.summoner->mindex()];
- blame.get_vector().push_back(sum->full_name(DESC_NOCAP_A, true));
+ blame.get_vector().push_back(blame_prefix
+ + sum->full_name(DESC_NOCAP_A, true));
if (sum->props.exists("blame"))
{