From 0c023f544c759f832d5432503a8a02f9f52906be Mon Sep 17 00:00:00 2001 From: zelgadis Date: Sun, 24 May 2009 05:16:26 +0000 Subject: Tutorial changes: * Note items which give abilities or resistances even if they're not equipped. * Don't give conjurers the item note about heavy armour for non-body armour, but do give a note about shields making casting harder. * Miscellaneous other improvements. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9812 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/tutorial.cc | 81 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 65 insertions(+), 16 deletions(-) (limited to 'crawl-ref/source/tutorial.cc') diff --git a/crawl-ref/source/tutorial.cc b/crawl-ref/source/tutorial.cc index f976efa0e4..50619e7585 100644 --- a/crawl-ref/source/tutorial.cc +++ b/crawl-ref/source/tutorial.cc @@ -1595,6 +1595,12 @@ void learned_something_new(tutorial_event_type seen_what, coord_def gc) text << "\nAs you're already trained in Axes you should stick " "with these. Checking other axes can be worthwhile."; } + else if (Options.tutorial_type == TUT_MAGIC_CHAR) + { + text << "\nAs a spellslinger you don't need a weapon to fight. " + "However, you should still carry at least one knife, " + "dagger, sword or axe so that you can chop up corpses."; + } break; case TUT_SEEN_MISSILES: @@ -1602,9 +1608,10 @@ void learned_something_new(tutorial_event_type seen_what, coord_def gc) #ifndef USE_TILE "('(') " #endif - "you've picked up. Darts can be thrown by hand, but other " - "missile types like arrows and needles require a launcher " - "and training in using it to be really effective. " + "you've picked up. Darts and throwing nets can be thrown by " + "by hand, but other missile types like arrows and needles " + "require a launcher and training in using it to be really " + "effective. " #ifdef USE_TILE "Right-clicking on " #else @@ -2303,7 +2310,7 @@ void learned_something_new(tutorial_event_type seen_what, coord_def gc) "with the Ctrl-F command, which will let you " "seach for all known items in the dungeon. For example, " "Ctrl-F \"knife\" will list all knives. You can " - "canthen travel to one of the spots."; + "can then travel to one of the spots."; Options.tut_stashes = false; } @@ -2538,7 +2545,7 @@ void learned_something_new(tutorial_event_type seen_what, coord_def gc) "lie, so retreat (if possible) might be the better option."; if (_advise_use_wand()) - text << "\n\nOr you could Zap a wand to deal damage."; + text << "\n\nOr you could evoke (V) a wand to deal damage."; break; case TUT_YOU_MUTATED: @@ -2880,7 +2887,11 @@ void learned_something_new(tutorial_event_type seen_what, coord_def gc) "it a bit, so as to then fire it at a monster."; if (Options.tutorial_type == TUT_MAGIC_CHAR) - text << " Note that casting spells is still very much possible."; + text << " Note that casting spells is still very much possible, " + "as is using wands, scrolls and potions."; + else + text << " Note that using wands, scrolls and potions is still " + "very much possible."; break; case TUT_LOAD_SAVED_GAME: @@ -2892,6 +2903,8 @@ void learned_something_new(tutorial_event_type seen_what, coord_def gc) "also check "; std::vector listed; + if (Options.tutorial_type == TUT_MAGIC_CHAR) + listed.push_back("your spells (z?)"); if (!your_talents(false).empty()) listed.push_back("your abilities"); if (Options.tutorial_type != TUT_MAGIC_CHAR || how_mutated()) @@ -3000,11 +3013,27 @@ static std::string _tut_target_mode(bool spells = false) return (result); } -static std::string _tut_abilities() +static std::string _tut_abilities(const item_def& item) { - return ("To do this, enter the ability menu with a, and then " + std::string str = "To do this, "; + + if (!item_is_equipped(item)) + { + switch(item.base_type) + { + case OBJ_WEAPONS: str += "first wield it"; break; + case OBJ_ARMOUR: str += "first Wear it"; break; + case OBJ_JEWELLERY: str += "first Put it on"; break; + default: + str += "(BUG! this item shouldn't give an ability)"; + break; + } + str += ", then "; + } + str += "enter the ability menu with a, and then " "choose the corresponding ability. Note that such an attempt of " - "activation, especially by the untrained, is likely to fail."); + "activation, especially by the untrained, is likely to fail."; + return (str); } static std::string _tut_throw_stuff(const item_def &item) @@ -3047,7 +3076,7 @@ void tutorial_describe_item(const item_def &item) // You can activate it. ostr << "When wielded, some weapons (such as this one) " "offer certain abilities you can activate. "; - ostr << _tut_abilities(); + ostr << _tut_abilities(item); break; } else if (gives_resistance(item) @@ -3205,6 +3234,17 @@ void tutorial_describe_item(const item_def &item) "innate abilities.)"; wearable = false; } + else if (item.sub_type == ARM_CENTAUR_BARDING + && you.species != SP_CENTAUR) + { + ostr << "Only centaurs can wear centaur barding."; + wearable = false; + } + else if (item.sub_type == ARM_NAGA_BARDING) + { + ostr << "Only nagas can wear naga barding."; + wearable = false; + } else { ostr << "You can wear pieces of armour with W and take " @@ -3217,7 +3257,8 @@ void tutorial_describe_item(const item_def &item) } if (Options.tutorial_type == TUT_MAGIC_CHAR - && !is_light_armour(item)) + && !is_light_armour(item) + && get_armour_slot(item) == EQ_BODY_ARMOUR) { ostr << "\nNote that body armour with high evasion penalties " "may hinder your ability to learn and cast spells. " @@ -3225,6 +3266,13 @@ void tutorial_describe_item(const item_def &item) "elven armour will be generally safe for any aspiring " "spellcaster."; } + else if (Options.tutorial_type == TUT_MAGIC_CHAR + && is_shield(item)) + { + ostr << "\nNote that shields will hinder you ability to " + "cast spells; the larger the shield, the bigger " + "the penalty."; + } else if (Options.tutorial_type == TUT_RANGER_CHAR && is_shield(item)) { @@ -3264,11 +3312,12 @@ void tutorial_describe_item(const item_def &item) #endif "."; } - if (is_artefact(item) && gives_ability(item)) + if (gives_ability(item)) { - ostr << "\nWhen worn, some types of armour (such as this " - "one) offer certain abilities you can activate. "; - ostr << _tut_abilities(); + ostr << "\n\nWhen worn, some types of armour (such as " + "this one) offer certain abilities you can " + "activate. "; + ostr << _tut_abilities(item); } } Options.tutorial_events[TUT_SEEN_ARMOUR] = false; @@ -3346,7 +3395,7 @@ void tutorial_describe_item(const item_def &item) { ostr << "\n\nWhen worn, some types of jewellery (such as this " "one) offer certain abilities you can activate. "; - ostr << _tut_abilities(); + ostr << _tut_abilities(item); } Options.tutorial_events[TUT_SEEN_JEWELLERY] = false; break; -- cgit v1.2.3-54-g00ecf