diff options
-rw-r--r-- | crawl-ref/source/command.cc | 3 | ||||
-rw-r--r-- | crawl-ref/source/dat/database/monspeak.txt | 2 | ||||
-rw-r--r-- | crawl-ref/source/describe.cc | 25 | ||||
-rw-r--r-- | crawl-ref/source/describe.h | 2 | ||||
-rw-r--r-- | crawl-ref/source/directn.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/initfile.cc | 8 | ||||
-rw-r--r-- | crawl-ref/source/spells2.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/spl-book.cc | 2 |
8 files changed, 36 insertions, 10 deletions
diff --git a/crawl-ref/source/command.cc b/crawl-ref/source/command.cc index 501e8ada2a..9a6f33c56d 100644 --- a/crawl-ref/source/command.cc +++ b/crawl-ref/source/command.cc @@ -1172,7 +1172,8 @@ static bool _do_description(std::string key, std::string footer = "") break; } - describe_monsters(mon); + const monsters m = mon; + describe_monsters(m); return (false); } diff --git a/crawl-ref/source/dat/database/monspeak.txt b/crawl-ref/source/dat/database/monspeak.txt index fd21e04a20..9c5835a431 100644 --- a/crawl-ref/source/dat/database/monspeak.txt +++ b/crawl-ref/source/dat/database/monspeak.txt @@ -2268,7 +2268,7 @@ orc sorcerer @_wizard_@ w:1 -@_generic_orc_speech@ +@_generic_orc_speech_@ w:1 __NONE diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc index 1e72b06d1f..765b17c950 100644 --- a/crawl-ref/source/describe.cc +++ b/crawl-ref/source/describe.cc @@ -2328,9 +2328,9 @@ static std::string _describe_draconian(const monsters *mon) // Contains sketchy descriptions of every monster in the game. // //--------------------------------------------------------------- -void describe_monsters(monsters& mons) +void describe_monsters(const monsters& mons) { - // for undetected mimics describe mimicked item instead + // For undetected mimics describe mimicked item instead. if (mons_is_mimic(mons.type) && !(mons.flags & MF_KNOWN_MIMIC)) { item_def item; @@ -2433,7 +2433,7 @@ void describe_monsters(monsters& mons) break; } case MONS_PLAYER_GHOST: - body << "The apparition of " << get_ghost_description(mons) + body << "$The apparition of " << get_ghost_description(mons) << ".$"; break; @@ -2456,6 +2456,21 @@ void describe_monsters(monsters& mons) break; } + if (mons_behaviour_perceptible(&mons) && !mons_is_sleeping(&mons) + && !mons_is_confused(&mons) + && (mons_see_invis(&mons) || mons_sense_invis(&mons))) + { + if (you.invisible() && mons.foe == MHITYOU && !mons_is_fleeing(&mons)) + { + if (mons_see_invis(&mons)) + body << "$$It is watching you carefully."; + else + body << "$$It is looking in your general direction."; + } + else if (mons.foe == MHITNOT || mons_is_fleeing(&mons)) + body << "$$It seems to be peering into the shadows."; + } + std::string symbol_suffix = "__"; symbol_suffix += symbol; symbol_suffix += "_suffix"; @@ -2507,11 +2522,11 @@ void describe_monsters(monsters& mons) mouse_control mc(MOUSE_MODE_MORE); if (Options.tutorial_left) - tutorial_describe_monster(static_cast<const monsters*>(&mons)); + tutorial_describe_monster(&mons); if (getch() == 0) getch(); -} // end describe_monsters +} // Describes the current ghost's previous owner. The caller must // prepend "The apparition of" or whatever and append any trailing diff --git a/crawl-ref/source/describe.h b/crawl-ref/source/describe.h index 66c0275b46..2e00c44c99 100644 --- a/crawl-ref/source/describe.h +++ b/crawl-ref/source/describe.h @@ -67,7 +67,7 @@ void inscribe_item( item_def &item, bool proper_prompt ); /* *********************************************************************** * called from: command - direct * *********************************************************************** */ -void describe_monsters(monsters &mons); +void describe_monsters(const monsters &mons); // last updated 12 Jun 2008 {jpeg} /* *********************************************************************** diff --git a/crawl-ref/source/directn.cc b/crawl-ref/source/directn.cc index 233853d2f4..15a4905ca2 100644 --- a/crawl-ref/source/directn.cc +++ b/crawl-ref/source/directn.cc @@ -1219,7 +1219,7 @@ void full_describe_square(const coord_def &c) if (mid != NON_MONSTER && player_monster_visible(&menv[mid])) { // First priority: monsters. - describe_monsters(menv[mid]); + describe_monsters(static_cast<const monsters>(menv[mid])); } else if (oid != NON_ITEM) { diff --git a/crawl-ref/source/initfile.cc b/crawl-ref/source/initfile.cc index 947065149b..503f2911f1 100644 --- a/crawl-ref/source/initfile.cc +++ b/crawl-ref/source/initfile.cc @@ -261,12 +261,16 @@ static int _str_to_weapon( const std::string &str ) return (WPN_SHORT_SWORD); else if (str == "mace") return (WPN_MACE); + else if (str == "ankus") + return (WPN_ANKUS); else if (str == "spear") return (WPN_SPEAR); else if (str == "trident") return (WPN_TRIDENT); else if (str == "hand axe" || str == "handaxe") return (WPN_HAND_AXE); + else if (str == "unarmed" || str == "claws") + return (WPN_UNARMED); else if (str == "random") return (WPN_RANDOM); @@ -281,12 +285,16 @@ std::string weapon_to_str( int weapon ) return "short sword"; case WPN_MACE: return "mace"; + case WPN_ANKUS: + return "ankus"; case WPN_SPEAR: return "spear"; case WPN_TRIDENT: return "trident"; case WPN_HAND_AXE: return "hand axe"; + case WPN_UNARMED: + return "claws"; case WPN_RANDOM: default: return "random"; diff --git a/crawl-ref/source/spells2.cc b/crawl-ref/source/spells2.cc index 47101e47e0..2736a57266 100644 --- a/crawl-ref/source/spells2.cc +++ b/crawl-ref/source/spells2.cc @@ -681,9 +681,11 @@ void cast_toxic_radiance(void) if (static_cast<int>(message.length()) < get_number_of_cols() - 2) mpr(message.c_str()); else + { // Exclamation mark to suggest that a lot of creatures were // affected. mpr("The monsters around you are poisoned!"); + } } } diff --git a/crawl-ref/source/spl-book.cc b/crawl-ref/source/spl-book.cc index 0ab544910f..2a1b9bf5a3 100644 --- a/crawl-ref/source/spl-book.cc +++ b/crawl-ref/source/spl-book.cc @@ -1244,7 +1244,7 @@ bool learn_spell(int book) } // You can always memorise selective amnesia: - if (you.spell_no == 21 && specspell != SPELL_SELECTIVE_AMNESIA) + if (you.spell_no >= 21 && specspell != SPELL_SELECTIVE_AMNESIA) { mpr("Your head is already too full of spells!"); return (false); |