summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/mon-util.cc')
-rw-r--r--crawl-ref/source/mon-util.cc32
1 files changed, 29 insertions, 3 deletions
diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc
index a10a56b0ab..2ed46d37f8 100644
--- a/crawl-ref/source/mon-util.cc
+++ b/crawl-ref/source/mon-util.cc
@@ -730,7 +730,7 @@ mon_attack_def mons_attack_spec(const monsters *mons, int attk_number)
int mc = mons->type;
const bool zombified = mons_is_zombified(mons);
- if ((attk_number < 0 || attk_number > 3) || mons->has_hydra_multi_attack())
+ if (attk_number < 0 || attk_number > 3 || mons->has_hydra_multi_attack())
attk_number = 0;
if (mc == MONS_PLAYER_GHOST || mc == MONS_PANDEMONIUM_DEMON)
@@ -1690,6 +1690,32 @@ static std::string _str_monam(const monsters& mon, description_level_type desc,
result += draconian_colour_name(mon.base_monster) + " ";
break;
+ case MONS_HYDRA:
+ if (mon.number < 1 || desc == DESC_PLAIN || desc == DESC_DBNAME)
+ break;
+
+ if (mon.number < 11)
+ {
+ result += (mon.number == 1) ? "one" :
+ (mon.number == 2) ? "two" :
+ (mon.number == 3) ? "three" :
+ (mon.number == 4) ? "four" :
+ (mon.number == 5) ? "five" :
+ (mon.number == 6) ? "six" :
+ (mon.number == 7) ? "seven" :
+ (mon.number == 8) ? "eight" :
+ (mon.number == 9) ? "nine"
+ : "ten";
+ }
+ else
+ {
+ snprintf(info, INFO_SIZE, "%d", mon.number);
+ result += info;
+ }
+
+ result += "-headed ";
+ break;
+
default:
break;
}
@@ -4546,8 +4572,8 @@ void monsters::load_spells(mon_spellbook_type book)
bool monsters::has_hydra_multi_attack() const
{
- return (type == MONS_HYDRA ||
- (mons_is_zombified(this) && base_monster == MONS_HYDRA));
+ return (type == MONS_HYDRA
+ || (mons_is_zombified(this) && base_monster == MONS_HYDRA));
}
bool monsters::has_ench(enchant_type ench) const