summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/tutorial.cc
diff options
context:
space:
mode:
authorzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2008-05-27 06:27:45 +0000
committerzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2008-05-27 06:27:45 +0000
commit7012324fec0cb7df0a139e8e47664119c1c52952 (patch)
treeefbd2154d9987dfebb97620af336e0a5367ce66c /crawl-ref/source/tutorial.cc
parentfd2afc8ce1e4b4a87710217fc704bd5a835c121d (diff)
downloadcrawl-ref-7012324fec0cb7df0a139e8e47664119c1c52952.tar.gz
crawl-ref-7012324fec0cb7df0a139e8e47664119c1c52952.zip
When advising the player on resting, note that it's better to move back
to an area where you've explored and killed off all the monsters, since if you rest on the edge of the explored areas you're more likely to be interrupted by a wandering monster. On TUT_RETREAT_CASTER, if the player has wands that might be useful in fighting, comment on that. When first seeing an altar, tell conjurers that the best gods to worship are Vehumet and Sif Muna. When gaining your first god-granted ability, if the ability is passive tell the player to use '^' instead of 'a' to examine the ability. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5287 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/tutorial.cc')
-rw-r--r--crawl-ref/source/tutorial.cc108
1 files changed, 97 insertions, 11 deletions
diff --git a/crawl-ref/source/tutorial.cc b/crawl-ref/source/tutorial.cc
index e77664d47c..a174d43894 100644
--- a/crawl-ref/source/tutorial.cc
+++ b/crawl-ref/source/tutorial.cc
@@ -21,6 +21,7 @@
#include "initfile.h"
#include "itemname.h"
#include "itemprop.h"
+#include "items.h"
#include "menu.h"
#include "message.h"
#include "misc.h"
@@ -676,10 +677,12 @@ void tutorial_death_screen()
break;
case 2:
- text = "Rest between encounters. In Crawl, searching and resting "
- "are one and the same. To search for one turn, press "
- "<w>s</w>, <w>.</w>, <w>delete</w> or <w>keypad-5</w>. "
- "Pressing <w>5</w> or <w>shift-and-keypad-5</w> "
+ text = "Rest between encounters, if possible in an area already "
+ "already explored and cleared of monsters. In Crawl, "
+ "searching and resting are one and the same. To search "
+ "for one turn, press <w>s</w>, <w>.</w>, <w>delete</w> or "
+ "<w>keypad-5</w>. Pressing <w>5</w> or "
+ "<w>shift-and-keypad-5</w> "
#ifdef USE_TILE
", or clicking into the stat area "
#endif
@@ -878,7 +881,11 @@ void tutorial_healing_reminder()
std::string text;
text = "Remember to rest between fights and to enter unexplored "
- "terrain with full hitpoints and magic. For resting, press "
+ "terrain with full hitpoints and magic. Ideally you "
+ "should retreat back areas you've already explored and "
+ "cleared of monsters; resting on the edge of the explored "
+ "terrain increases the chances of your rest being "
+ "interrupted by wandering monsters. For resting, press "
"<w>5</w> or <w>Shift-numpad 5</w>"
#ifdef USE_TILE
", or click on the stat area with your mouse"
@@ -976,6 +983,53 @@ static bool _mons_is_highlighted(const monsters *mons)
&& Options.may_stab_brand != CHATTR_NORMAL);
}
+static bool _advise_use_wand()
+{
+ for (int i = 0; i < ENDOFPACK; i++)
+ {
+ item_def &obj(you.inv[i]);
+
+ if (!is_valid_item( obj ))
+ continue;
+
+ if (obj.base_type != OBJ_WANDS)
+ continue;
+
+ // Wand type unknown, might be useful.
+ if (!item_type_known(obj))
+ return true;
+
+ // Empty wands are no good.
+ if (obj.name(DESC_PLAIN).find("empty") != std::string::npos
+ || (item_ident(obj, ISFLAG_KNOW_PLUSES)
+ && obj.plus <= 0))
+ continue;
+
+ // Can it be used to fight?
+ switch(obj.sub_type)
+ {
+ case WAND_FLAME:
+ case WAND_FROST:
+ case WAND_SLOWING:
+ case WAND_MAGIC_DARTS:
+ case WAND_PARALYSIS:
+ case WAND_FIRE:
+ case WAND_COLD:
+ case WAND_CONFUSION:
+ case WAND_FIREBALL:
+ case WAND_TELEPORTATION:
+ case WAND_LIGHTNING:
+ case WAND_ENSLAVEMENT:
+ case WAND_DRAINING:
+ case WAND_RANDOM_EFFECTS:
+ case WAND_DISINTEGRATION:
+ return true;
+ }
+ }
+
+ return false;
+}
+
void tutorial_first_monster(const monsters &mon)
{
if (!Options.tutorial_events[TUT_SEEN_MONSTER])
@@ -1027,8 +1081,8 @@ void tutorial_first_monster(const monsters &mon)
"moving the cursor on the monster, and read the monster "
"description by then pressing <w>v</w>. "
#endif
- "\nTo attack this monster with your wielded weapon, just move into "
- "it. ";
+ "\nTo attack this monster with your wielded weapon, just move "
+ "into it. ";
#ifdef USE_TILE
text += "Note that as long as there's a non-friendly monster in view you "
"won't be able to automatically move to distant squares, to avoid "
@@ -1495,6 +1549,12 @@ void learned_something_new(tutorial_event_type seen_what, int x, int y)
text << "is an altar. You can get information about it by pressing "
"<w>p</w> while standing on the square. Before taking up "
"the responding faith you'll be asked for confirmation.";
+ if (you.religion == GOD_NO_GOD &&
+ Options.tutorial_type == TUT_MAGIC_CHAR)
+ text << "\n\nThe best god for an unexperienced conjurer is "
+ "Vehumet, though Sif Muna is a good second choice. You "
+ "shouldn't take the other gods while playing a conjurer "
+ "until you get some more experinece.";
break;
case TUT_SEEN_SHOP:
@@ -1526,7 +1586,7 @@ void learned_something_new(tutorial_event_type seen_what, int x, int y)
#endif
"is a closed door. You can open it by walking into it. "
"Sometimes it is useful to close a door. Do so by pressing "
- "<w>c</w>, followed by the direction, or simply "
+ "<w>C</w>, followed by the direction, or simply "
"<w>Ctrl-Direction</w>.";
#ifdef USE_TILE
text << "\nIn tiles, the same can be achieved by clicking on an "
@@ -1793,7 +1853,11 @@ void learned_something_new(tutorial_event_type seen_what, int x, int y)
case TUT_NEED_HEALING:
text << "If you're low on hitpoints or magic and there's no urgent "
- "need to move, you can rest for a bit. Press <w>5</w> or "
+ "need to move, you can rest for a bit. Ideally you should "
+ "retreat to an area you've already explored and cleared "
+ "of monsters before resting, since resting on the edge of "
+ "the explored terrain increases the risk of rest being "
+ "interrupted by a wandering monster. Press <w>5</w> or "
"<w>shift-numpad-5</w>"
#ifdef USE_TILE
", or click on the stat area"
@@ -1863,6 +1927,9 @@ void learned_something_new(tutorial_event_type seen_what, int x, int y)
text << "Without magical power you're unable to cast spells. While "
"melee is a possibility, that's not where your strengths "
"lie, so retreat (if possible) might be the better option.";
+
+ if (_advise_use_wand())
+ text << "\n\nOr you could <w>Z</w>ap a wand to deal damage.";
break;
case TUT_YOU_MUTATED:
@@ -1875,8 +1942,27 @@ void learned_something_new(tutorial_event_type seen_what, int x, int y)
break;
case TUT_NEW_ABILITY:
- text << "You just gained a new ability. Press <w>a</w> to take a "
- "look at your abilities or to use one of them.";
+ switch(you.religion)
+ {
+ // Gods where first granted ability is active.
+ case GOD_ZIN:
+ case GOD_KIKUBAAQUDGHA:
+ case GOD_YREDELEMNUL:
+ case GOD_OKAWARU:
+ case GOD_SIF_MUNA:
+ case GOD_TROG:
+ case GOD_NEMELEX_XOBEH:
+ case GOD_ELYVILON:
+ case GOD_LUGONU:
+ text << "You just gained a new ability. Press <w>a</w> to "
+ "take a look at your abilities or to use one of them.";
+ break;
+
+ // Gods where first granted ability is passive.
+ default:
+ text << "You just gained a new ability. Press <w>^</w> to "
+ "take a look at your ability.";
+ }
break;
case TUT_WIELD_WEAPON: