git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5328 c06c8d41-db1a-0410-9941-cceddc491573
NK2TBKWOQBD2ZRGAO4Z3HMZPIN7UX3HNUS2YHEIJUUINUTRMPODQC NZP2SRKMFBILMJ6K434C3COVRHJY342OPWMBE4DDLOS5EDYIYWYQC PZNRGNZPN4YLXL2UDMEUPE33AAZZ6Z2YPK6EQGYZL2PNTRWLCUNQC HIPFIMUOA7DFOFV3DQ55YZJVGNU2GNDYFUCB4MRPUR5DTYDO5YMAC DHXIQXK5VTL5JDDEERAVLZK4KBQLXFTBN5TQ6MH3PRBLG5ULOS4AC HNX5L5QUZWBQTOBEVKJTAMRX5NOCK7CVBIKMCLYEJLVJNCCUCXUAC WF2DSJGR6PKLGQSXEFF4ZW4EZZFGMHXPXWUYAKYBPFJH6KJKAANQC 7NDXS36TE7QVXTXJWMYSVG5UHCCLPIO4VL6NXFGTDK3ZNKE3A2IAC 77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC ESWIM76FGJL4QFLSHU6AC4D74PT7OPLQ7ZCJYWLZS5UCBAJDXYHAC LS5XCCGKQHSJQGWLWLGTP2F5OYWK4ND5AQQAGRN6H2HVBSXNCCZAC W54GZBNFKPOF6DTOVK73PVASTQI5DXG42WQ6CXFDPXHFZOHUVVSQC XRZPPYWPWUOM4SFNI6BHKH2UKJQNLKOV6Y7XIEPEZXE5QYRT26PAC ACDPN464TK2LKLHSDN3YVRHAPF7WLSLLU3UHIYEXKFDEZPEU3XSQC 7HA2754QW3SBCAJ5K6KUXNXXXIZB5BIBCFPLXADCXHH6EREKXHSAC TI2HASZUN3QBTNWRCXLXJHOZBOUHFEOQUCPK5EYLATL7BP32H6LQC JJULXW764V5C2HJKZNWQAEWB6QM5YZADD7ZCE35LYTBFEM6PMYCAC U3KGUJJQWQORJIIFH3ADVNIEEX5HOX6KEOXO7DJSL7L3Z6GG3PAQC BFCFMN2BXNLXJCYYCL2V2XTDQQNM3PJPSRB6CU76FM3332NC7GMAC YDDLIMYVR5YEORQ6YXEG3M4O26M3XIZ6OCXQTHEVLKTAAJP3FI5AC HQTS3VQ6PNUZKHNVEWMML7JNAAAKL4DSW3KFSRCCSLGYTDHZFCCAC 4CK7LBQIQYKOEZ6B4YGRYDXV2ICEA3OHQHCXXVPNSMEKGPCHR52QC QXD3HX6QQ37PW6HVKIIKGFLO2ACROLUGKK66KFX7ED6SO4FDXB2AC TOOHYAX73C5KPSWGHPCBWCUN62WMMO3BI5CWEEMGV3WBFZ5RIH5AC Z6XF4AIERIW4U4AR3HU2ILYFZ54IK4K4ORQ6JKCEWRO5LZODWDDAC 5HF63O5IRRERI2V3SZEDHUNFHUF2B4RSVWQR6C6DR5JF5UYSROWAC HMC247EGUJ3Q25DQ3VKUCIGLIO4SZORFQQWAPAF6S2WLQY3WU5TQC Q4YYTFXYZUDBYWT37U354CJOAQMAAIWM5W72TAEGMEUKZIUZBMGAC GL6SGPBZQPJBVGPOASYVCTAFXS7RNARR6Y5WZMIO5YCTB7ZJY4KAC MCBXXIV6GICTZB56APSXMJEI63FVQWVZR3H2DRNMMFDH2XCGK4JAC GTPAKUU3R5AS3LQNCCZIP3BWV473RM4EB2AIS4FXAJRXHEOVH2PAC S2LIBA2CLTZ6ZU66AUZ2CCNLCDOBSGWQGTZ6HFAFP2XSWAALGLSQC 45EMD3KLQPMERNMIKU5G76H6556XOMIW352TSBP7VLWJX2YYGS7AC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC LDBTCT5WIPLJPZWXS2RUQ26QKISCUUTLO77M464WOE6VSYSNPKYAC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC TJISAZK5RWKXIIC5UTQNY4KT3UX3ASGBUQQNWZ7ZDULPRYFRZXQQC RC6L3CIBLJEH4GWRFD7UQNGI6PZT74FRUVOYHSAN2XCC74NZUASQC 3YK4G4IQBXW63HPGU5WRTV6L2FCMKAK4DOTCHFK2FNSB5B3Y3PVQC 6PAG7GHXHIYXJPPTEK4KZQZT4CL2SJDAGTVIUDB4KK66PVSTWUMAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC 4O3VTUJT5T7NBNF3Q45XO2WHS6TCJXVLH6CKX4K36WUBDRT5F6KAC P2OYYNPHIBGOLT4CRLNTTIXDN34EU2QCMFQJNLAMUAHQXZTEDPXQC PBKRKGKARGZSLVFVDTK5NWDXQD26NHNN67LDSSB75CLEWBR6TLEQC WZNB427K3EUNV3FMVXLQTM4UIHER4FIKQXWLUUXRNQC3OQ33VQYAC XX3TYGTDZY7AT53JJDTMKQXOYL4TUPVXXE2WY53UKZZOZ4UXDTQQC 72CQFK27NR37P2WQ32U4PEXXKMRIO7JEMJN2ZCPNVPZMT7UPFJJAC VNHFP63ZLLZU3A3PLXP4BITX57DUIYDHFOHQYK3BOBHV3S64G26QC 3KAINFIXO7WNWGUGZB43EUNFRS2ZPBLQZDTY456QACMRHYIJ7WDAC DGHHGJ6RCXFF3I53K2DI2FDB3UW2SUZAWWAQ7T6YW6374WOQASUQC CVOQOT7B2FYC3E6ZPOMC7TCJMLEFFIRPTHNRNW5L65NCTAHPA42AC VCG3BRIYRTNNWYC3LOXD6KFGXOX37HAFW2HNV7WXVG2V7EUHLDZQC CLIEHAE2PP7ZIGLLIMYCWM4FC54KBOAN5AILOLAZJ5S26GTJM4RQC 2X6FLALUQSY4GEF2YBXZVC5ZTOZSMS3IBO7BFTSKAA4TXWEV7EXAC JM7UAK777RAVDAVLQLEOBRTGNW2B47S5G55XITJXO243IUNZHVYQC // map window (starts at 1) or message window (starts at 18)// FIXME: This should be done more cleanly using the crawl_view settings
// Map window (starts at 1) or message window (starts at 18).// FIXME: This should be done more cleanly using the// crawl_view settings!
// crude hack:// if the first monster is sleeping wake it// (highlighting is an unnecessary complication)
// XXX: Crude hack (and doesn't really work either):// If the first monster is sleeping wake it// (highlighting is an unnecessary complication).
"<w>not</w> want Xom to grow bored with you. If you've ""kept him amused he'll treat you like a plaything, ""randomly helping and harming you for his own amusement.";
"absolutely not want this god to grow bored with you!\n""If you keep Xom amused he'll treat you like a plaything, ""randomly helping and harming you for his own amusement; ""otherwise he'll treat you like a disfavoured plaything.";formatted_message_history(text.str(), MSGCH_TUTORIAL, 0,_get_tutorial_cols());
text << "Your piety (divine favor) gradually decreases over time, and ""if it runs out " << new_god_name << " will excommunicate you ""and punish you. You can prevent this, and even gain ""enough piety to get powers and divine gifts, by doing things ""to please " << new_god_name << ". And don't panic: you ""start out with a decent amount of piety, so any danger of ""excommunication is far off.\n";
if (is_good_god(you.religion)){// For the good gods, piety grows over them.text << "From now on, " << new_god_name << " will watch over you and ""judge your behaviour. Thus, your actions will greatly ""influence your piety (divine favour). If your piety runs out ";}else{text << "Your piety (divine favour) will gradually decrease over time, ""and if it runs out ";}
text << new_god_name << " will excommunicate you and punish you. ""You can prevent this, however, and even gain enough piety to get ""powers and divine gifts, by doing things to please "<< new_god_name << ". But don't panic: you start out with a decent ""amount of piety, so any danger of excommunication is far off.\n";
text.str("");text << "\nYou can check your god's likes and dislikes, as well as your ""current standing and divine abilites, at any time by typing ""<w>^</w> "#ifdef USE_TILE"(alternatively press <w>Control</w> while ""<w>right-clicking</w> on your avatar)"#endif".";formatted_message_history(text.str(), MSGCH_TUTORIAL, 0,_get_tutorial_cols());
"parentheses at the end of the \"Health\" line in the ""stat area of the window). While you can wait it out, ""you'll probably want to stop it as soon as possible by ""drinking a potion of healing, since the longer you wait ""the more your maximum HP will be reduced. Once you've ""stopped rotting you can restore your maximum HP to normal ""by drinking potions of healing and heal wounds while ""fully healed.";
"parentheses).\n""While you can wait it out, you'll probably want to stop ""rotting as soon as possible by drinking a potion of healing, ""since the longer you wait the more your maximum HP will be ""reduced. Once you've stopped rotting you can restore your ""maximum HP to normal by drinking potions of healing and heal ""wounds while fully healed.";
".\n\n""When resting up on the next (deeper) level it's wise ""to retreat to an up staircase or hatch so you can ""retreat to the previous level if a monster wanders ""across you. Monsters can only follow you up if they're ""standing right next to you, so if they're still at least ""two squares away you can flee and safely rest on the ""the previous level. They'll still be there when you ""go back down, though, so you'd want to go back down a ""different set of stairs so they can't get the jump on ""you when you return.";
".\n\n";
text << "If retreating to another level, keep in mind that monsters ""may follow you if they're standing right next to you when ""you start climbing or descending the stairs. And even if "" you'vemanaged to shake them off, they'll still be there when ""you come back, though, so you'll want to use a different set ""of stairs when you return.";
"to nothing). Either you repeatedly annoyed him, ""you weren't doing things that pleased him often ""enough, or some combination of the two. If you ""can find an altar dedicated to " << old_god<< " you can re-convert and all will be well, otherwise ""you'll have to weather his displeasure until his ""wrath is spent.";
"to nothing). Maybe you repeatedly annoyed him, ""or maybe you weren't doing things that pleased him ""often enough, or some combination of the two. If you ""can find an altar dedicated to " << old_god;}
text << "You just renounced your religion? Are you ""<w>sure</w> about that? If you can find an ""altar dedicated to " << old_god << " you can ""re-convert and all will be well, otherwise you'll ""have to weather his displeasure until his wrath is ""spent.";
{text << "If you decide that abandoning " << old_god << "wasn't ""such a smart move after all, and you'd like to return ""to your old faith you'll have to find an altar ""dedicated to " << old_god << " where";}text << " you can re-convert and all will be well; otherwise ""you'll have to weather this god's displeasure until their ""divine wrath is spent.";
"converting to " << new_god << " (it's only safe to ""convert between gods if both of them is among the ""three good gods). Unfortunately, converting back to "<< old_god << " will annoy " << new_god <<", so you're stuck with having to suffer the wrath ""of one god or another.";
"converting to " << new_god << "! (It's only safe to ""convert between the three good gods.) Unfortunately, ""converting back to " << old_god << " will annoy "<< new_god << ", so you're stuck with having to suffer ""the wrath of one god or another.";}
text << "Uh-oh, you've wound up in the Abyss!. The Abyss is filled ""with nasty monsters, you can't remember or map where you've ""been, and you're probably going to die. If you want to ""survive until you can find the exit (a flickering ""<w>\\</w>), keep moving, don't fight any of the ""monsters, and don't bother picking up any items on the ""ground. If you're encumbered or overburdened then ""lighten up your load, and if the monsters are closing in ""use potions of speed to get away. And if you can, move "
text << "Uh-oh, you've wound up in the Abyss! The Abyss is a special ""place where you cannot remember or map where you've been; it ""is filled with nasty monsters, and you're probably going to ""die.\n";text << "You can increase your chances of survival until you can find ""the exit (a flickering <w>\\</w>), keep moving, don't fight ""any of the monsters, and don't bother picking up any items ""on the ground. If you're encumbered or overburdened then ""lighten up your load, and if the monsters are closing in, try ""to use items of speed to get away. And where possible, move "
"then a miscast merely means the spell not working, along ""with a harmless side effect. However, for spells with a ""low success rate there's a chance of contaminating ""yourself with magical energy, plus a chance of an ""additional harmful side effect. Normally this isn't a ""problem, since magical contamination bleeds off over time, ""but if you're repeatedly contaminated too often in a short""amount of time you'll mutate and suffer from other ill ""side effects.\n\n"
"then a miscast merely means the spell is not working, along ""with a harmless side effect. However, for spells with a ""low success rate there's a chance of contaminating yourself ""with magical energy, plus a chance of an additional harmful ""side effect. Normally this isn't a problem, since magical ""contamination bleeds off over time, but if you're repeatedly ""contaminated in a short amount of time you'll mutate or ""suffer from other ill side effects.\n\n"
text << "The spell you just cast made you hungrier; you can see ""how hungry spells make you by entering <w>z\?!</w>. The ""amount of nutrition consumed increases with the level of ""the spell and decreases according to your intelligence ""stat multiplied by your Spellcasting skill; if your ""intelligence and Spellcasting are high enough a spell ""might not cost you any nutrition at all.";
text << "The spell you just cast made you hungrier; you can see how ""hungry spells make you by entering <w>z\?!</w>. The amount of ""nutrition consumed increases with the level of the spell and ""decreases in dependence of your intelligence stat and your ""Spellcasting skill. If both of these are high enough a spell ""might even not cost you any nutrition at all.";
"you're glowing! You acquire magical contamination from ""using some powerful magics, like invisibility, haste/speed ""and potions of resistance. This normally isn't a problem, ""since contamination slowly bleeds off on its own, but it""seems that you've contaminated yourself so many time is ""such a short amount of time that you're in trouble. ""Now that you're glowing the contamination is going to ""mutate you, and possibly even damage you via magical ""storms. Additionally, glowing is going to make you much ""less stealthy.";
"you're glowing! You usually acquire magical contamination ""from using some powerful magics, like invisibility, haste ""or potions of resistance. This normally isn't a problem as ""contamination slowly bleeds off on its own, but it seems that ""you've accumulated so much contamination over a short amount ""of time, that it can have nasty effects, such as mutate you ""or deal direct damage. In addition, glowing is going to make ""you much more noticeable.";
// Explains the most important commands necessary to use an item, and mentions// special effects, etc.// NOTE: For identified artefacts don't give all this information!// (The screen is likely to overflow.) Artefacts need special information// if they are evokable or grant resistances.// In any case, check whether we still have enough space for the// inscription prompt and answer.
ostr << "\nOn second look you've been training in <w>"<< skill_name(best_wpskill)<< "</w> for a while, so maybe you should ""continue training that rather than <w>"<< skill_name(curr_wpskill)<< "</w>. (Type <w>m</w> to see the skill ""management screen for the actual numbers.)";long_text = true;
ostr << "\nOn second look you've been training in <w>"<< skill_name(best_wpskill)<< "</w> for a while, so maybe you should ""continue training that rather than <w>"<< skill_name(curr_wpskill)<< "</w>. (Type <w>m</w> to see the skill ""management screen for the actual numbers.)";long_text = true;
if (item_known_cursed( item ) && wearable){ostr << "\nA cursed piece of armour, once worn, cannot be ""removed again until the curse has been lifted by ""reading a scroll of remove curse or enchant armour.";}if (gives_resistance(item))
if (wearable)
ostr << "\n\nThis armour offers its wearer protection from ""certain sources. For an overview of your resistances ""(among other things) type <w>%</w>"
if (item_known_cursed( item )){ostr << "\nA cursed piece of armour, once worn, cannot be ""removed again until the curse has been lifted by ""reading a scroll of remove curse or enchant ""armour.";}if (gives_resistance(item)){ostr << "\n\nThis armour offers its wearer protection from ""certain sources. For an overview of your"" resistances (among other things) type <w>%</w>"
".";}if (is_artefact(item) && gives_ability(item)){ostr << "\nWhen worn, some types of armour (such as this one) ""offer abilities that can be e<w>v</w>oked. ";ostr << _tut_abilities();
".";}if (is_artefact(item) && gives_ability(item)){ostr << "\nWhen worn, some types of armour (such as this ""one) offer abilities that can be e<w>v</w>oked. ";ostr << _tut_abilities();}
case DNGN_ORCISH_IDOL:case DNGN_GRANITE_STATUE:case DNGN_TRAP_MAGICAL:case DNGN_TRAP_MECHANICAL:case DNGN_TRAP_NATURAL:case DNGN_STONE_STAIRS_DOWN_I:case DNGN_STONE_STAIRS_DOWN_II:case DNGN_STONE_STAIRS_DOWN_III:case DNGN_STONE_STAIRS_UP_I:case DNGN_STONE_STAIRS_UP_II:case DNGN_STONE_STAIRS_UP_III:case DNGN_ESCAPE_HATCH_DOWN:case DNGN_ESCAPE_HATCH_UP:return true;default:return false;
// So are statues, traps, and stairs.case DNGN_ORCISH_IDOL:case DNGN_GRANITE_STATUE:case DNGN_TRAP_MAGICAL:case DNGN_TRAP_MECHANICAL:case DNGN_TRAP_NATURAL:case DNGN_STONE_STAIRS_DOWN_I:case DNGN_STONE_STAIRS_DOWN_II:case DNGN_STONE_STAIRS_DOWN_III:case DNGN_STONE_STAIRS_UP_I:case DNGN_STONE_STAIRS_UP_II:case DNGN_STONE_STAIRS_UP_III:case DNGN_ESCAPE_HATCH_DOWN:case DNGN_ESCAPE_HATCH_UP:return (true);default:return (false);
ostr << "If "<< god_name(you.religion)<< " likes to have items or corpses sacrificed on ""altars, here you can do this by <w>d</w>ropping ""them, then <w>p</w>raying. As a follower, ""pressing <w>^</w> "#ifdef USE_TILE"(alternatively press <w>Control</w> while ""<w>right-clicking</w> on your avatar) "#endif"allows you to check "<< god_name(you.religion)<< "'s likes and dislikes at any time, as well as ""your current standing and divine abilities.";
ostr << "If "<< god_name(you.religion)<< " likes to have certain items or corpses ""sacrificed on altars, any appropriate item ""<w>d</w>ropped on an altar during prayer, or ""already lying on an altar when you start ""<w>p</w>raying will be automatically ""sacrificed to "<< god_name(you.religion)<< ".";
ostr << "dangerous, and you should stay out of it if you can. ";
if (!is_damaging_cloud(ctype, true)){ostr << "currently harmless, but that could change at some point. ""Check the overview screen (<w>%%</w>) to view your "" resistances.";need_cloud = true;}else{ostr << "probably dangerous, and you should stay out of it if you ""can. ";}
"under the surface of the shallow water. Distance attacks ""which only hit a single target may not hit submereged monsters ""unless you use the <w>!</w> key to fire your ammo/spell/wand ""after selecting the sumberged target.";
"under the surface of the shallow water. Other than non-submerged ""monsters, a submerged monster will not be autotargeted when doing ""a ranged attack while there are other, visible targets in sight. ""Of course you can still target it manually if you wish to.";
// Hallelujah, we're home!if (_is_safe_move(c.x, c.y))next_travel_move = c;return (true);}else if (!point_distance[dc.x][dc.y]){
case MISC_DECK_OF_DUNGEONS: return "deck of dungeons";case MISC_DECK_OF_SUMMONING: return "deck of summonings";case MISC_DECK_OF_WONDERS: return "deck of wonders";case MISC_DECK_OF_PUNISHMENT: return "deck of punishment";case MISC_DECK_OF_WAR: return "deck of war";case MISC_DECK_OF_CHANGES: return "deck of changes";case MISC_DECK_OF_DEFENCE: return "deck of defence";
case MISC_DECK_OF_DUNGEONS: return "deck of dungeons";case MISC_DECK_OF_SUMMONING: return "deck of summonings";case MISC_DECK_OF_WONDERS: return "deck of wonders";case MISC_DECK_OF_PUNISHMENT: return "deck of punishment";case MISC_DECK_OF_WAR: return "deck of war";case MISC_DECK_OF_CHANGES: return "deck of changes";case MISC_DECK_OF_DEFENCE: return "deck of defence";
case MISC_CRYSTAL_BALL_OF_SEEING: return "crystal ball of seeing";case MISC_BOX_OF_BEASTS: return "box of beasts";case MISC_EMPTY_EBONY_CASKET: return "empty ebony casket";case MISC_AIR_ELEMENTAL_FAN: return "air elemental fan";case MISC_LAMP_OF_FIRE: return "lamp of fire";case MISC_LANTERN_OF_SHADOWS: return "lantern of shadows";case MISC_HORN_OF_GERYON: return "horn of Geryon";case MISC_DISC_OF_STORMS: return "disc of storms";
case MISC_CRYSTAL_BALL_OF_SEEING: return "crystal ball of seeing";case MISC_BOX_OF_BEASTS: return "box of beasts";case MISC_EMPTY_EBONY_CASKET: return "empty ebony casket";case MISC_AIR_ELEMENTAL_FAN: return "air elemental fan";case MISC_LAMP_OF_FIRE: return "lamp of fire";case MISC_LANTERN_OF_SHADOWS: return "lantern of shadows";case MISC_HORN_OF_GERYON: return "horn of Geryon";case MISC_DISC_OF_STORMS: return "disc of storms";case MISC_BOTTLED_EFREET: return "bottled efreet";
case MISC_AIR_ELEMENTAL_FAN: return "gauzy fan";case MISC_LAMP_OF_FIRE: return "blazing lamp";case MISC_LANTERN_OF_SHADOWS: return "bone lantern";case MISC_HORN_OF_GERYON: return "silver horn";case MISC_DISC_OF_STORMS: return "grey disc";
case MISC_AIR_ELEMENTAL_FAN: return "gauzy fan";case MISC_LAMP_OF_FIRE: return "blazing lamp";case MISC_LANTERN_OF_SHADOWS: return "bone lantern";case MISC_HORN_OF_GERYON: return "silver horn";case MISC_DISC_OF_STORMS: return "grey disc";