diff options
author | Stefan O'Rear <stefanor@cox.net> | 2009-11-13 12:26:49 -0800 |
---|---|---|
committer | Stefan O'Rear <stefanor@cox.net> | 2009-11-13 12:26:49 -0800 |
commit | 7ec7eeeab0f4d6dadba493d5b11cc3a0910f6a06 (patch) | |
tree | 33f6304c1774daaffa0fe2cd8be9a4718dbb2120 /crawl-ref/source/mon-place.cc | |
parent | 7ac3138dd9288b88b2bc2781af9684a4ba53153f (diff) | |
download | crawl-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.cc | 22 |
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")) { |