From 18092af0ef3d2972919f65cbe34c93a00b756d65 Mon Sep 17 00:00:00 2001 From: j-p-e-g Date: Sat, 9 Jun 2007 21:34:21 +0000 Subject: Some more changes to the tutorial, most importantly to the skill screen (please check this, guys!) - I also changed the targetting description in the tutorial messages. If I've counted right, we've not got five commands to shoot at a previously selected target, namely ., f, p, t and Enter. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1566 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/enum.h | 3 +- crawl-ref/source/monstuff.cc | 2 ++ crawl-ref/source/skills2.cc | 27 ++++++++++++++---- crawl-ref/source/tutorial.cc | 66 ++++++++++++++++++++++++++++++-------------- 4 files changed, 70 insertions(+), 28 deletions(-) (limited to 'crawl-ref') diff --git a/crawl-ref/source/enum.h b/crawl-ref/source/enum.h index 28a846bb8b..a423412ad5 100644 --- a/crawl-ref/source/enum.h +++ b/crawl-ref/source/enum.h @@ -3693,7 +3693,8 @@ enum tutorial_event_type TUT_YOU_MUTATED, // 40 TUT_NEW_ABILITY, TUT_WIELD_WEAPON, - TUT_EVENTS_NUM // 43 + TUT_FLEEING_MONSTER, + TUT_EVENTS_NUM // 44 }; // for numbers higher than 45 change size of tutorial_events in externs.h enum tutorial_types diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc index ee039dec11..68b4633883 100644 --- a/crawl-ref/source/monstuff.cc +++ b/crawl-ref/source/monstuff.cc @@ -1462,6 +1462,8 @@ void behaviour_event( monsters *mon, int event, int src, // assume monsters know where to run from, even // if player is invisible. setTarget = true; + if (see_grid(mon->x, mon->y)) + learned_something_new(TUT_FLEEING_MONSTER); break; case ME_CORNERED: diff --git a/crawl-ref/source/skills2.cc b/crawl-ref/source/skills2.cc index 019c44a927..4af9af03e6 100644 --- a/crawl-ref/source/skills2.cc +++ b/crawl-ref/source/skills2.cc @@ -1937,18 +1937,33 @@ void show_skills() } } - // if any more skills added, must adapt letters to go into caps - gotoxy(1, bottom_line-1); - textcolor(LIGHTGREY); - cprintf("Press the letter of a skill to choose whether you want to practise it."); - - if (!player_genus(GENPC_DRACONIAN) || you.max_level >= 7) + if (Options.tutorial_left) + { + textcolor(MAGENTA); + gotoxy(1, bottom_line-5); + formatted_string::parse_block( + "This screen shows the skill set of your character. You can pick up new" EOL + "skills by performing the corresponding actions. The number next to the" EOL + "skill is your current level, the higher the better. The blue percent " EOL + "value shows your progress towards the next skill level. You can toggle" EOL + "which skills to train by pressing their slot letters. A greyish skill " EOL + "will increase at a decidedly slower rate and ease training of others. ", + false).display(); + } + else { + // if any more skills added, must adapt letters to go into caps + gotoxy(1, bottom_line-1); + textcolor(LIGHTGREY); + cprintf("Press the letter of a skill to choose whether you want to practise it."); + if (!player_genus(GENPC_DRACONIAN) || you.max_level >= 7) + { gotoxy(1, bottom_line); formatted_string::parse_string("Press '!' to toggle between " "progress and " "aptitude " "display.").display(); + } } int get_thing = getch(); diff --git a/crawl-ref/source/tutorial.cc b/crawl-ref/source/tutorial.cc index eba41f060b..7cf37d0414 100644 --- a/crawl-ref/source/tutorial.cc +++ b/crawl-ref/source/tutorial.cc @@ -342,6 +342,8 @@ static std::string tut_debug_list(int event) return "gained a divine ability"; case TUT_WIELD_WEAPON: return "wielded an unsuitable weapon"; + case TUT_FLEEING_MONSTER: + return "made a monster flee"; default: return "faced a bug"; } @@ -806,6 +808,9 @@ void tutorial_first_monster(const monsters& mon) unsigned short col; get_mons_glyph(&mon, &ch, &col); + if (ch == ' ') // happens if monster standing on dropped corpse or item + return; + std::string text = "That "; text += colour_to_tag(col); text += ch; @@ -822,24 +827,28 @@ void tutorial_first_monster(const monsters& mon) if (Options.tutorial_type == TUT_RANGER_CHAR) { text = "However, as a hunter you will want to deal with it using your " - "bow. Do this as follows: wbf+. where wb " - "wields the bow, f fires appropriate ammunition " - "(your arrows) and enters targeting mode. + and " - "- allow you to select the proper monster. Finally, " - "Enter or . fire. If you miss, " - "ff fires at the previous target again."; + "bow. Do this as follows: wbff where wb " + "wields the bow, and ff fires appropriate ammunition " + "(your arrows) at the nearest hostile monster. If you'd like to " + "choose a new monster you can type f followed by " + "+ or - instead to cycle through the " + "available targets. Then press Enter, f " + "or . to fire. If you miss, ff fires at " + "the previous target again."; print_formatted_paragraph(text, get_tutorial_cols(), MSGCH_TUTORIAL); } else if (Options.tutorial_type == TUT_MAGIC_CHAR) { - text = "However, as a conjurer you will want to deal with it using magic." - "Do this as follows: Za+. where Za zaps " + text = "However, as a conjurer you will want to deal with it using magic. " + "Do this as follows: Za. where Za zaps " "the first spell you know, "; text += spell_title(get_spell_by_letter('a')); - text += ", and enters targeting mode. + and - " - "allow you to select the proper target. Finally, Enter " - "or . fire. If you miss, Zap will " - "fire at the previous target again."; + text += ", and . shoots at the targetted monster (the closest " + "hostile monster). To target a different monster, use + " + "or - to cycle through the available targets. " + "Enter, f or . will fire. If you " + "miss, Za followed by any of the aforementioned keys " + "will fire at it again."; print_formatted_paragraph(text, get_tutorial_cols(), MSGCH_TUTORIAL); } @@ -911,8 +920,7 @@ void learned_something_new(tutorial_event_type seen_what, int x, int y) get_item_symbol(DNGN_ITEM_BOOK, &ch, &colour); text << "You have picked up a spellbook ('" << static_cast(ch) - << - "'). You can read it by typing r, " + << "'). You can read it by typing r, " "memorise spells via M and cast a memorised " "spell with Z."; @@ -923,16 +931,14 @@ void learned_something_new(tutorial_event_type seen_what, int x, int y) } break; case TUT_SEEN_WEAPON: - text << - "This is the first weapon ('(') you've picked up. " + text << "This is the first weapon ('(') you've picked up. " "Use w to wield it, but be aware that this weapon " "might train a different skill from your current one. You can " "view the weapon's properties with v."; if (Options.tutorial_type == TUT_BERSERK_CHAR) { - text << - "\nAs you're already trained in Axes you should stick " + text << "\nAs you're already trained in Axes you should stick " "with these. Checking other axes can be worthwhile."; } break; @@ -1034,6 +1040,9 @@ void learned_something_new(tutorial_event_type seen_what, int x, int y) break; case TUT_SEEN_TRAPS: + object = env.show[ex][ey]; + colour = env.show_col[ex][ey]; + get_item_symbol( object, &ch, &colour ); text << "Oops... you just triggered a trap. An unwary adventurer will " "occasionally stumble into one of these nasty constructions " "depicted by ^. They can do physical damage (with " @@ -1081,8 +1090,8 @@ void learned_something_new(tutorial_event_type seen_what, int x, int y) { text << "\nTo dedicate your kills to " << god_name(you.religion) - << " pray before battle. Not all gods will be " - "pleased by doing this."; + << " pray before battle. Note that not all gods " + "will be pleased about you doing this."; } break; case TUT_NEW_LEVEL: @@ -1249,7 +1258,8 @@ void learned_something_new(tutorial_event_type seen_what, int x, int y) if (you.species == SP_CENTAUR) text << " As a four-legged centaur you are particularly quick - " "running is an option! "; - if (Options.tutorial_type == TUT_BERSERK_CHAR && !you.berserker) + if (Options.tutorial_type == TUT_BERSERK_CHAR && !you.berserker + && !you.hunger) { text << "\nAlso, with " << god_name(you.religion) @@ -1279,6 +1289,20 @@ void learned_something_new(tutorial_event_type seen_what, int x, int y) "b by pressing '."; } break; + case TUT_FLEEING_MONSTER: + if (!Options.tutorial_type == TUT_BERSERK_CHAR) + return; + + text << "While unsporting, it is sometimes useful to attack a fleeing " + "monster by throwing something after it. To do this, press " + "t, choose a throwing weapon, e.g. one of your " + "spears, use + to select a monster and press " + "., f or Enter. The closest " + "monster will be autoselected. If you've got the fire_order " + "option set you can directly use ff or " + "f+. instead; the game will pick the first weapon " + "that fits the option."; + break; case TUT_SEEN_MONSTER: case TUT_SEEN_FIRST_OBJECT: break; -- cgit v1.2.3-54-g00ecf