diff options
author | Charles Otto <ottochar@gmail.com> | 2009-11-11 22:31:41 -0500 |
---|---|---|
committer | Charles Otto <ottochar@gmail.com> | 2009-11-11 23:04:23 -0500 |
commit | 37ba8b3ae6c9c7f6b39e372c4dd8f305f69923be (patch) | |
tree | 40564211ce358b7531089d895770d70334bb9470 /crawl-ref/source/monster.cc | |
parent | 21cc906692321fd60c3fa6ab4780ce1fa0f083c6 (diff) | |
download | crawl-ref-37ba8b3ae6c9c7f6b39e372c4dd8f305f69923be.tar.gz crawl-ref-37ba8b3ae6c9c7f6b39e372c4dd8f305f69923be.zip |
Give giant spores a chance of spawning ballistos while wandering
Give giant spores a chance of creating a ballistomycete when they move
while wandering. This ability is on a timer, so they can't create more
than 1 ballisto per 20 turns. Numbers may need tweaking.
Diffstat (limited to 'crawl-ref/source/monster.cc')
-rw-r--r-- | crawl-ref/source/monster.cc | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/crawl-ref/source/monster.cc b/crawl-ref/source/monster.cc index 1c46b41f98..77c9753884 100644 --- a/crawl-ref/source/monster.cc +++ b/crawl-ref/source/monster.cc @@ -2154,6 +2154,11 @@ static std::string _str_monam(const monsters& mon, description_level_type desc, result += cardinals[mon.number]; } + if (mon.type == MONS_BALLISTOMYCETE && desc != DESC_DBNAME) + { + result += mon.colour == LIGHTRED ? "Active " : ""; + } + // Done here to cover cases of undead versions of hydras. if (mons_species(nametype) == MONS_HYDRA && mon.number > 0 && desc != DESC_DBNAME) @@ -4992,25 +4997,23 @@ void monsters::apply_enchantment(const mon_enchant &me) if (mons_class_can_pass(MONS_GIANT_SPORE, env.grid(adjacent)) && !actor_at(adjacent)) { - beh_type created_behavior = BEH_HOSTILE; - - if (this->attitude == ATT_FRIENDLY) - created_behavior = BEH_FRIENDLY; + beh_type created_behavior = SAME_ATTITUDE(this); int rc = create_monster(mgen_data(MONS_GIANT_SPORE, - created_behavior, - 0, - 0, - adjacent, - MHITNOT, - MG_FORCE_PLACE)); + created_behavior, + 0, + 0, + adjacent, + MHITNOT, + MG_FORCE_PLACE)); if (rc != -1) { env.mons[rc].behaviour = BEH_WANDER; + env.mons[rc].number = 10; if (observe_cell(adjacent) && observe_cell(pos())) - mpr("A nearby fungus spawns a giant spore."); + mpr("A nearby fungus spawns a giant spore."); } break; } |