new key command old key
z cast spell Z Z zap wand z c chop up D, Dissect C close door c O open door o o auto-explore Ctrl-O Ctrl-O Dungeon overview O v evoke E E show experience C t shout ! ! annotate level Ctrl-I
Also changed the entire tutorial to match the new settings, and modified several references in the game.
Other changes:
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3553 c06c8d41-db1a-0410-9941-cceddc491573
ACDPN464TK2LKLHSDN3YVRHAPF7WLSLLU3UHIYEXKFDEZPEU3XSQC
5TG5LXU4DX65KMWCZ7YJHOB3VAETQAVBUHEUSQTPMA327XV2HQWAC
YZ3BCKFW4PTYDL5EG2PW52KKRHPWCYPSXYH7TJAINF3335N2XCHAC
KZIHM6RUX43HHKXG6HGJHVEEYUPVVNBFIWMT4SKPD2GAH5ZMA3KAC
RPGERJQMO2J4ZDYTRHJCLZMXDVSTUOOJURSZ7FPWOUFHTXIV5VIAC
3WHI3KM43ZCN4ITJLFQQBQBC4OJPRS7QTBPIQ6QBCUVKRSK476SAC
7HA2754QW3SBCAJ5K6KUXNXXXIZB5BIBCFPLXADCXHH6EREKXHSAC
77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC
XRZPPYWPWUOM4SFNI6BHKH2UKJQNLKOV6Y7XIEPEZXE5QYRT26PAC
LABXKXWWQY2V4FUDLGVTDYHXINAP6KRHZDHBQ2FE22FFOEIZPL6QC
7NDXS36TE7QVXTXJWMYSVG5UHCCLPIO4VL6NXFGTDK3ZNKE3A2IAC
TI2HASZUN3QBTNWRCXLXJHOZBOUHFEOQUCPK5EYLATL7BP32H6LQC
GL6SGPBZQPJBVGPOASYVCTAFXS7RNARR6Y5WZMIO5YCTB7ZJY4KAC
Q4YYTFXYZUDBYWT37U354CJOAQMAAIWM5W72TAEGMEUKZIUZBMGAC
ESWIM76FGJL4QFLSHU6AC4D74PT7OPLQ7ZCJYWLZS5UCBAJDXYHAC
TRNEOO3YKZSUGYTJZDDXZTJFQJXY6PWKBDJXAOLY3FZAD6WHTUTQC
U3KGUJJQWQORJIIFH3ADVNIEEX5HOX6KEOXO7DJSL7L3Z6GG3PAQC
6HQB2N6N75R2RGKJFWRUN7WAC2PNGWQFXTII5DTRLTHZ2BOTMTVAC
TOOHYAX73C5KPSWGHPCBWCUN62WMMO3BI5CWEEMGV3WBFZ5RIH5AC
2N5AKUYV6EUUT254C47WSHZKD7FGN65JKJ3RCKSDP74XJIHIFMDQC
Z6XF4AIERIW4U4AR3HU2ILYFZ54IK4K4ORQ6JKCEWRO5LZODWDDAC
SJP5BHX6MFWF3OSQPEF4WUWZWPUGMOVURTT2CUVT6H3A66LETXUAC
BFCFMN2BXNLXJCYYCL2V2XTDQQNM3PJPSRB6CU76FM3332NC7GMAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
WCK6TM2ZD56WSOK6SMMKBYAYGG4OUCTILLMVVLMB4QO5I5S2IVNAC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
3GLHLYH34NUBL2C5HSECKNVAO4ZFAAYXCW3Q5VZ2PXDDZ4SDD7LQC
4XGOVPFCU6KZIYHKWCHUTZY6G5S326DKBG3UREPR34Q4TSDD3TAAC
7Q4H6B62UZACQOUDHCHPMPBYEBXM5GVQINIHVHM4KLRENSH6VGTAC
VXWHZPSSJAOUIBJVCYGYOHILZFVDDVKUY5JMFFCQSYCXL3NAZIKAC
I7QLYOTE6DLQZM7YWUWYLKHRJRB2A3STQ42ALSRGQICEWKD2QTEQC
2YZN7CPQFZMSMFMVCE2FATR52SVDE3OZHTS7F7QCKJIZUA4WX2AQC
JJH7VX2LLBZPDKG24SQREWQLX6I6RYNWFECHRZVK7PT5KPQ4MAMAC
FXLBM7PB5FCPMKZNI3NSVDAEM26MAQU5RG55BEBL3LRN7QMPLWTAC
TRZAZJJA5VQBJ65SO5H5DNSILIZEJHIZCBYEBHEATCT6ZSMWIFKQC
JM7UAK777RAVDAVLQLEOBRTGNW2B47S5G55XITJXO243IUNZHVYQC
AVCMVFA3MKCXHO6H44UK5KJNIHTGQV7UA7GYXM26VI6TXXU5ZN6QC
IHIJSWVOONSTA2WCHKW3YKBLETUQECFVBVLMET5SGQZ4C6U3GCUQC
4VK7VHWRVRO66BRSGTBPSYJGGXLRF6AG6G74UDTPHTPXR7ZRNINQC
result = "<magenta>"
"What you see here is the typical Crawl screen. The upper left map "
"shows your hero as the <w>@</w> in the center. The parts "
"of the map you remember but cannot currently see will be greyed "
"out."
"</magenta>" EOL;
result = "<";
result += colour_to_str(channel_to_colour(MSGCH_TUTORIAL));
result += ">";
result += "What you see here is the typical Crawl screen. The upper left map "
"shows your hero as the <w>@</w> in the center. The parts "
"of the map you remember but cannot currently see will be greyed "
"out.";
result += "</";
result += colour_to_str(channel_to_colour(MSGCH_TUTORIAL));
result += ">" EOL;
istr << "<magenta>"
"To the right, important properties of \n"
"the character are displayed. The most \n"
"basic one is your health, measured as \n"
"<w>HP: " << you.hp << "/" << you.hp_max << "</w>. ";
istr << "<"
<< colour_to_str(channel_to_colour(MSGCH_TUTORIAL))
<< ">"
<< "To the right, important properties of \n"
"the character are displayed. The most \n"
"basic one is your health, measured as \n"
"<w>HP: " << you.hp << "/" << you.hp_max << "</w>. ";
"These are your current out \n"
"of maximum health points. When health \n"
"drops to zero, you die. \n"
"<w>Magic: "
<< you.magic_points << "/" << you.max_magic_points <<
"</w> is your energy for casting \n"
"spells, although more mundane actions \n"
"often draw from Magic, too. \n"
"Further down, <w>Str</w>ength, <w>Dex</w>terity and \n"
"<w>Int</w>elligence are shown and provide an \n"
"all-around account of the character's \n"
"attributes. \n"
"</magenta>"
" \n"
" --more-- Press <w>Escape</w> to skip the basics\n"
" \n"
" \n";
"These are your current out \n"
"of maximum health points. When health \n"
"drops to zero, you die. \n"
"<w>Magic: " << you.magic_points << "/" << you.max_magic_points
<< "</w> is your energy for casting \n"
"spells, although more mundane actions \n"
"often draw from Magic, too. \n"
"Further down, <w>Str</w>ength, <w>Dex</w>terity and \n"
"<w>Int</w>elligence are shown and provide an \n"
"all-around account of the character's \n"
"attributes. \n"
<< "</" << colour_to_str(channel_to_colour(MSGCH_TUTORIAL)) << ">"
" \n"
" --more-- Press <w>Escape</w> to skip the basics\n"
" \n"
" \n";
result = "<magenta>"
"This lower part of the screen is reserved for messages. Everything "
result = "<";
result += colour_to_str(channel_to_colour(MSGCH_TUTORIAL));
result += ">";
result += "This lower part of the screen is reserved for messages. Everything "
"bow. If you have a look at your bow with <w>v</w>, you'll "
"find an explanation of how to do this. First <w>w</w>ield "
"it, then follow the instructions.";
"bow. If you have a look at your bow from your <w>i</w>nventory, "
"you'll find an explanation of how to do this. First "
"<w>w</w>ield it, then follow the instructions.";
"If you have a look at your spellbook with <w>v</w>, you'll "
"find an explanation of how to do this.";
"If you have a look at your spellbook from your <w>i</w>nventory, "
"you'll find an explanation of how to do this.";
"\nAny time you <w>v</w>iew an item, you can read about its "
"properties and description.";
"\nAny time you look at an item in your <w>i</w>nventory, you can "
"read about its properties and description.";
"using it to be really effective. <w>v</w> gives more "
"information about both missiles and launcher.";
"using it to be really effective. Selecting the item in your "
"<w>i</w>nventory gives more information about both missiles "
"and launcher.";
"it. You can view it with <w>v</w> although often magic "
"is necessary to reveal its true nature.";
"it. You can view its properties from your <w>i</w>nventory, "
"although often magic is necessary to reveal its true nature.";
ostr << "\n\nThis armour offers its wearer protection from "
"certain sources. For an overview of your resistances "
"(among other things) type <w>%</w>.";
ostr << "\n\nThis armour offers its wearer protection from "
"certain sources. For an overview of your resistances "
"(among other things) type <w>%</w>.";
ostr << "It's a book, you can <w>r</w>ead it. ";
ostr << "A manual can greatly help you in training a skill. "
"To use it, <w>r</w>ead it while your experience "
"pool (the number in brackets) is full. Note that "
"this will drain said pool, so only use this manual "
"if you think you need the skill in question.";
ostr << "A manual can greatly help you in training a skill. "
"To use it, <w>r</w>ead it while your experience "
"pool (the number in brackets) is full. Note that "
"this will drain said pool, so only use this manual "
"if you think you need the skill in question.";
if (!item_ident(item, ISFLAG_KNOW_TYPE))
ostr << "It's a book, you can <w>r</w>ead it.";
else
{
ostr << "A spellbook! You could <w>M</w>emorise some "
"spells and then cast them with <w>z</w>.";
}
ostr << "\nAs a worshipper of "
<< god_name(GOD_TROG)
<< ", though, you might instead wish to burn this "
"tome of hated magic by using the corresponding "
"<w>a</w>bility. "
"Note that this only works on books that are "
"lying on the floor and not on your current "
"square. ";
if (you.religion == GOD_TROG)
ostr << "It's a book, you can <w>r</w>ead it.";
}
else if (!you.skills[SK_SPELLCASTING])
{
ostr << "A spellbook! You could <w>M</w>emorise some "
"spells and then cast them with <w>z</w>. ";
ostr << "\nFor now, however, that will have to wait "
"until you've learned the basics of Spellcasting "
"by reading lots of scrolls.";
}
else // actually can cast spells
{
if (player_can_memorise(item))
ostr << "A spellbook! You could <w>M</w>emorise some "
"spells and then cast them with <w>Z</w>. ";
ostr << "\nAs a worshipper of "
<< god_name(GOD_TROG)
<< ", though, you might instead wish to burn this "
"tome of hated magic by using the corresponding "
"<w>a</w>bility. "
"Note that this only works on books that are "
"lying on the floor and not on your current "
"square. ";
ostr << "Such a <lightblue>highlighted spell</lightblue> "
"can be <w>M</w>emorised right away. ";
ostr << "A spellbook! You could <w>M</w>emorise some "
"spells and then cast them with <w>Z</w>. ";
ostr << "\nFor now, however, that will have to wait "
"until you've learned the basics of Spellcasting "
"by reading lots of scrolls.";
ostr << "You cannot memorise any "
<< (you.spell_no ? "more " : "")
<< "spells right now. This will change as you "
"grow in levels and Spellcasting proficiency. ";
else // actually can cast spells
{
if (player_can_memorise(item))
{
ostr << "Such a <lightblue>highlighted spell</lightblue> "
"can be <w>M</w>emorised right away. ";
}
else
{
ostr << "You cannot memorise any "
<< (you.spell_no ? "more " : "")
<< "spells right now. This will change as you "
"grow in levels and Spellcasting proficiency. ";
}
if (you.spell_no)
{
ostr << "\n\nTo do magic, type <w>Z</w> and "
"choose a spell, e.g. <w>a</w> (check "
"with <w>?</w>). For attack spells "
"you'll ";
ostr << tut_target_mode(true);
}
if (you.spell_no)
{
ostr << "\n\nTo do magic, type <w>z</w> and choose a "
"spell, e.g. <w>a</w> (check with <w>?</w>). "
"For attack spells you'll ";
ostr << tut_target_mode(true);
ostr << "Staffs have to be <w>w</w>ielded to be of use. "
"There are staves that help spellcasters, and others that "
"allow you to harness spells hidden within.";
if (!item_ident(item, ISFLAG_KNOW_TYPE))
if (item_is_rod( item ))
{
if (!item_ident(item, ISFLAG_KNOW_TYPE))
{
ostr << "\n\nTo find out what this rod might do, you have to "
"<w>w</w>ield and e<w>v</w>oke it to see if you can "
"use the spells hidden within. ";
}
else
{
ostr << "\n\nYou can use this rod's magic by <w>w</w>ielding "
"and e<w>v</w>oking it.";
}
}
else
ostr << "\n\nTo find out what this staff might do, you have to "
"wield it, then <w>E</w>voke it to see if anything "
"interesting happens. If nothing happens, it's probably "
"an ancient staff capable of enhancing certain spell "
"schools while suppressing others. ";
if (you.spell_no)
ostr << "This staff can enhance your spellcasting of specific "
"spell schools. ";
bool gives_resist = false;
if (you.spell_no && !item_ident(item, ISFLAG_KNOW_TYPE))
else if (gives_resistance(item))
{
ostr << "It also offers its wielder protection from certain "
"sources. For an overview of your resistances (among "
"other things) type <w>%</w>.";
gives_resist = true;
}
if (!gives_resist && Options.tutorial_type == TUT_BERSERK_CHAR
&& you.religion == GOD_TROG)
{
ostr << "\n\nSeeing how "
<< god_name(GOD_TROG, false)
<< " frowns upon the use of magic, this staff will be "
"of little use to you and you might just as well "
"<w>d</w>rop it now.";
}
else if (item.sub_type <= STAFF_AIR && gives_resistance(item))
{
ostr << "\nThis staff offers its wielder protection from "
"certain sources. For an overview of your resistances "
"(among other things) type <w>%</w>.";
}
? god_colour( static_cast<god_type>(param) )
: god_message_altar_colour( static_cast<god_type>(param) );
? god_colour( static_cast<god_type>(param) )
: god_message_altar_colour( static_cast<god_type>(param) );