summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source
diff options
context:
space:
mode:
authorCharles Otto <ottochar@gmail.com>2009-11-13 13:56:43 -0500
committerCharles Otto <ottochar@gmail.com>2009-11-13 13:58:10 -0500
commit5aba0fa49e632d5f61d3489263f36dde4a74dfad (patch)
tree8ae1224a2f1b7ded903e176e6245f9f057028365 /crawl-ref/source
parentc27779f9fc2954eb86537e540644a20212fd22ad (diff)
downloadcrawl-ref-5aba0fa49e632d5f61d3489263f36dde4a74dfad.tar.gz
crawl-ref-5aba0fa49e632d5f61d3489263f36dde4a74dfad.zip
Change ballistomycete messaging
Drop the deactivation message, simplify and change the activation messaging.
Diffstat (limited to 'crawl-ref/source')
-rw-r--r--crawl-ref/source/mon-abil.cc22
-rw-r--r--crawl-ref/source/mon-abil.h2
-rw-r--r--crawl-ref/source/mon-stuff.cc8
3 files changed, 12 insertions, 20 deletions
diff --git a/crawl-ref/source/mon-abil.cc b/crawl-ref/source/mon-abil.cc
index ba42c46658..3a258d469f 100644
--- a/crawl-ref/source/mon-abil.cc
+++ b/crawl-ref/source/mon-abil.cc
@@ -1430,7 +1430,7 @@ void ballisto_on_move(monsters * monster, const coord_def & position)
// Increase the count of every ballistomycete on the level (only if
// monster is of an appropriate type). If a ballisto has a count greater
// than 0 it changes color and starts producing spores.
-void activate_ballistomycetes( monsters * monster)
+void activate_ballistomycetes( monsters * monster, const coord_def & origin)
{
if (!monster || monster->type != MONS_BALLISTOMYCETE
&& monster->type != MONS_GIANT_SPORE)
@@ -1438,7 +1438,7 @@ void activate_ballistomycetes( monsters * monster)
return;
}
- bool activated_others = false;
+ bool found_others = false;
int seen_others = 0;
for (monster_iterator mi; mi; ++mi)
@@ -1448,7 +1448,7 @@ void activate_ballistomycetes( monsters * monster)
&& mi->type == MONS_BALLISTOMYCETE)
{
mi->number++;
-
+ found_others = true;
// Change color and start the spore production timer if we
// are moving from 0 to 1.
if (mi->number == 1)
@@ -1457,7 +1457,6 @@ void activate_ballistomycetes( monsters * monster)
// Reset the spore production timer.
mi->del_ench(ENCH_SPORE_PRODUCTION, false);
mi->add_ench(ENCH_SPORE_PRODUCTION);
- activated_others = true;
if (you.can_see(*mi))
seen_others++;
@@ -1465,14 +1464,10 @@ void activate_ballistomycetes( monsters * monster)
}
}
- // Do some messaging. I'm not entirely sure how detailed to get,
- // so erroring on the side of message spam at this point. -cao
- if (mons_near(monster) && activated_others)
- mprf("The fungus' death has angered other fungi on the level.");
- if (seen_others == 1)
- mprf("A ballistomycete appears irritated.");
- else if (seen_others > 1)
- mprf("Some ballistomycetes appear irritated.");
+ if (you.see_cell(origin) && found_others)
+ {
+ mprf("You feel the ballistomycetes will spawn a replacement spore.");
+ }
}
// Decrease the count on each ballistomycete on the level. To be called
@@ -1494,9 +1489,6 @@ void deactivate_ballistos()
{
mi->colour = MAGENTA;
mi->del_ench(ENCH_SPORE_PRODUCTION);
-
- if (you.can_see(*mi))
- mprf("A nearby ballistomycete calms down.");
}
}
diff --git a/crawl-ref/source/mon-abil.h b/crawl-ref/source/mon-abil.h
index 810ccd43f4..efced91fa4 100644
--- a/crawl-ref/source/mon-abil.h
+++ b/crawl-ref/source/mon-abil.h
@@ -17,7 +17,7 @@ bool ugly_thing_mutate(monsters *ugly, bool proximity = false);
bool slime_split_merge(monsters *thing);
void ballisto_on_move(monsters * monster, const coord_def & pos);
-void activate_ballistomycetes( monsters * monster);
+void activate_ballistomycetes( monsters * monster, const coord_def & origin);
void deactivate_ballistos();
#endif
diff --git a/crawl-ref/source/mon-stuff.cc b/crawl-ref/source/mon-stuff.cc
index 8ba89a64fb..4b0114d5ee 100644
--- a/crawl-ref/source/mon-stuff.cc
+++ b/crawl-ref/source/mon-stuff.cc
@@ -1046,7 +1046,7 @@ static bool _spore_goes_pop(monsters *monster, killer_type killer,
// FIXME: show_more == mons_near(monster)
beam.explode();
- activate_ballistomycetes(monster);
+ activate_ballistomycetes(monster, beam.target);
// Monster died in explosion, so don't re-attach it to the grid.
return (true);
}
@@ -1433,9 +1433,6 @@ int monster_die(monsters *monster, killer_type killer,
you.remove_beholder(monster);
- if(monster->type == MONS_BALLISTOMYCETE)
- activate_ballistomycetes(monster);
-
// Clear auto exclusion now the monster is killed -- if we know about it.
if (mons_near(monster) || wizard)
remove_auto_exclude(monster);
@@ -2088,6 +2085,9 @@ int monster_die(monsters *monster, killer_type killer,
_mummy_curse(monster, killer, killer_index);
}
+ if(monster->type == MONS_BALLISTOMYCETE)
+ activate_ballistomycetes(monster, monster->pos());
+
if (!wizard && !submerged)
_monster_die_cloud(monster, !mons_reset, silent, summoned);