summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-06-19 21:53:43 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-06-19 21:53:43 +0000
commit82d1156545140d12af47d0267466e34017684e0e (patch)
treedf44f62da6a2000143dbf80221bbb3de9dd3235e /crawl-ref
parent920b471045d3ef04952de3c127fd9d4c3688f1ac (diff)
downloadcrawl-ref-82d1156545140d12af47d0267466e34017684e0e.tar.gz
crawl-ref-82d1156545140d12af47d0267466e34017684e0e.zip
Update tutorial information for the 'm' and 'a' screens.
Space allowing, differentiate between hydras with different numbers of heads in the monster list. (This is probably only interesting in the Swamp.) git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5993 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref')
-rw-r--r--crawl-ref/source/abl-show.cc16
-rw-r--r--crawl-ref/source/dat/descript/ability.txt12
-rw-r--r--crawl-ref/source/it_use3.cc4
-rw-r--r--crawl-ref/source/mon-util.cc2
-rw-r--r--crawl-ref/source/output.cc22
-rw-r--r--crawl-ref/source/skills2.cc18
-rw-r--r--crawl-ref/source/tutorial.cc67
-rw-r--r--crawl-ref/source/tutorial.h1
8 files changed, 89 insertions, 53 deletions
diff --git a/crawl-ref/source/abl-show.cc b/crawl-ref/source/abl-show.cc
index 478685394d..7bc948f10f 100644
--- a/crawl-ref/source/abl-show.cc
+++ b/crawl-ref/source/abl-show.cc
@@ -1965,6 +1965,14 @@ int choose_ability_menu(const std::vector<talent>& talents, bool describe)
abil_menu.set_flags(MF_SINGLESELECT | MF_ANYPRINTABLE |
MF_ALWAYS_SHOW_MORE);
}
+ else if (Options.tutorial_left)
+ {
+ // XXX This could be buggy if you manage to pick up lots and lots
+ // of abilities during the tutorial.
+ abil_menu.set_more(tut_abilities_info());
+ abil_menu.set_flags(MF_SINGLESELECT | MF_ANYPRINTABLE |
+ MF_ALWAYS_SHOW_MORE);
+ }
int numbers[52];
for (int i = 0; i < 52; ++i)
@@ -2001,14 +2009,6 @@ int choose_ability_menu(const std::vector<talent>& talents, bool describe)
}
}
- if (Options.tutorial_left)
- {
- // XXX This could be buggy if you manage to pick up lots and lots
- // of abilities during the tutorial.
- abil_menu.set_more(tut_abilities_info());
- abil_menu.set_flags(MF_SINGLESELECT | MF_ANYPRINTABLE |
- MF_ALWAYS_SHOW_MORE);
- }
std::vector<MenuEntry*> sel = abil_menu.show(false);
redraw_screen();
if (sel.empty())
diff --git a/crawl-ref/source/dat/descript/ability.txt b/crawl-ref/source/dat/descript/ability.txt
index 74290bd276..551423ec98 100644
--- a/crawl-ref/source/dat/descript/ability.txt
+++ b/crawl-ref/source/dat/descript/ability.txt
@@ -259,10 +259,14 @@ about which books of madness burst into flames.
%%%%
Berserk
-You enter a state of frenzied rage. It is prolonged by killing. Once
-over, you are slowed and exhausted, unable to immediately berserk
-again. Unless other sources of rage, Trog prevents you from passing
-out.
+Berserk greatly if temporarily increases your hit points and damage
+output in melee fights. It will time out quickly if you don't kill
+anything, but may be extended by multiple kills. While berserk, you
+cannot perform a number of actions such as, for example, (un)wield a
+weapon, quaff something, zap wands, or evoke items.
+Such a rage is usually followed by deep exhaustion, a time during
+which you are slowed down, and cannot berserk again. Unlike other
+sources of rage, Trog prevents you from passing out.
%%%%
Trog's Hand
diff --git a/crawl-ref/source/it_use3.cc b/crawl-ref/source/it_use3.cc
index 978ab0b03d..8f439ffe77 100644
--- a/crawl-ref/source/it_use3.cc
+++ b/crawl-ref/source/it_use3.cc
@@ -453,8 +453,8 @@ bool evoke_wielded()
bool unevokable = false;
// Check inscriptions.
- if ( !check_warning_inscriptions(wpn, OPER_EVOKE) )
- return false;
+ if (!check_warning_inscriptions(wpn, OPER_EVOKE))
+ return (false);
switch (wpn.base_type)
{
diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc
index 9ad25159f8..2386659f0c 100644
--- a/crawl-ref/source/mon-util.cc
+++ b/crawl-ref/source/mon-util.cc
@@ -1830,7 +1830,7 @@ static std::string _str_monam(const monsters& mon, description_level_type desc,
// Done here to cover cases of undead versions of hydras.
if (nametype == MONS_HYDRA
- && mon.number > 0 && desc != DESC_PLAIN && desc != DESC_DBNAME)
+ && mon.number > 0 && desc != DESC_DBNAME)
{
if (mon.number < 11)
{
diff --git a/crawl-ref/source/output.cc b/crawl-ref/source/output.cc
index 63f7a3dc41..fa1b681c57 100644
--- a/crawl-ref/source/output.cc
+++ b/crawl-ref/source/output.cc
@@ -1259,12 +1259,22 @@ monster_pane_info::less_than(const monster_pane_info& m1,
if (m1.m_mon->type == MONS_DANCING_WEAPON)
return (false);
- // Because of the type checks above, if one of the two is zombified, so is
- // the other, and of the same type.
- if (zombified && mons_is_zombified(m1.m_mon)
- && m1.m_mon->base_monster < m2.m_mon->base_monster)
+ if (zombified)
{
- return (true);
+ // Because of the type checks above, if one of the two is zombified, so is
+ // the other, and of the same type.
+ if (mons_is_zombified(m1.m_mon)
+ && m1.m_mon->base_monster < m2.m_mon->base_monster)
+ {
+ return (true);
+ }
+
+ // Both monsters are hydras or hydra zombies, sort by number of heads.
+ if (m1.m_mon->has_hydra_multi_attack()
+ && m1.m_mon->number > m2.m_mon->number)
+ {
+ return (true);
+ }
}
if (m1.m_fullname && m2.m_fullname || m1.m_mon->type == MONS_PLAYER_GHOST)
@@ -1288,7 +1298,7 @@ void monster_pane_info::to_string( int count, std::string& desc,
if (count == 1)
{
- if (m_fullname && !mons_is_mimic(m_mon->type))
+ if (!mons_is_mimic(m_mon->type))
out << m_mon->name(DESC_PLAIN);
else
out << mons_type_name(m_mon->type, DESC_PLAIN);
diff --git a/crawl-ref/source/skills2.cc b/crawl-ref/source/skills2.cc
index 93212f0d52..ae1225ae75 100644
--- a/crawl-ref/source/skills2.cc
+++ b/crawl-ref/source/skills2.cc
@@ -1826,9 +1826,18 @@ static void _display_skill_table(bool show_aptitudes, bool show_description)
if (Options.tutorial_left)
{
- cgotoxy(1, bottom_line-5);
- // Doesn't mention the toggle between progress/aptitudes.
- print_tut_skills_info();
+ if (show_description)
+ {
+ cgotoxy(1, bottom_line-2);
+ // Doesn't mention the toggle between progress/aptitudes.
+ print_tut_skills_description_info();
+ }
+ else
+ {
+ cgotoxy(1, bottom_line-5);
+ // Doesn't mention the toggle between progress/aptitudes.
+ print_tut_skills_info();
+ }
}
else
{
@@ -1838,6 +1847,7 @@ static void _display_skill_table(bool show_aptitudes, bool show_description)
if (show_description)
{
+ // We need the extra spaces to override the alternative sentence.
cprintf("Press the letter of a skill to read its description. "
" ");
}
@@ -1890,6 +1900,8 @@ void show_skills()
{
// Show skill description.
show_description = !show_description;
+ if (Options.tutorial_left)
+ clrscr();
continue;
}
diff --git a/crawl-ref/source/tutorial.cc b/crawl-ref/source/tutorial.cc
index ef7f3e357b..3b0bf63551 100644
--- a/crawl-ref/source/tutorial.cc
+++ b/crawl-ref/source/tutorial.cc
@@ -2012,8 +2012,9 @@ void learned_something_new(tutorial_event_type seen_what, int x, int y)
break;
case TUT_SKILL_RAISE:
- text << "One of your skills just got raised. To view or manage your "
- "skill set, type <w>m</w>.";
+ text << "One of your skills just got raised. You can train your skills "
+ "or pick up new ones by performing the corresponding actions. "
+ "To view or manage your skill set, type <w>m</w>.";
break;
case TUT_GAINED_MAGICAL_SKILL:
@@ -2735,8 +2736,8 @@ void learned_something_new(tutorial_event_type seen_what, int x, int y)
text << "\nAlternatively, you can dump all information pertaining to "
"your character into a text file with the <w>#</w> command. "
- "You can then find said file in the <w>/morgue</w> folder ("
- << you.your_name << ".txt) and read it at your leasure. Also, "
+ "You can then find said file in the <w>/morgue</w> folder (<w>"
+ << you.your_name << ".txt</w>) and read it at your leasure. Also, "
"such a file will automatically be created upon death (the "
"filename will then also contain the date) but that won't be "
"of much use to you now.";
@@ -2760,25 +2761,14 @@ formatted_string tut_abilities_info()
{
std::ostringstream text;
text << "<" << colour_to_str(channel_to_colour(MSGCH_TUTORIAL)) << ">";
- text <<
- "This screen shows your character's set of talents. You can gain new " EOL
- "abilities via certain items, through religion or by way of mutations. " EOL
- "Activation of an ability usually comes at a cost, e.g. nutrition or " EOL
- "Magic power. ";
-
- if (you.religion != GOD_NO_GOD)
- {
- text <<
- "<w>Renounce Religion</w> will make your character leave your god" EOL
- "(and usually anger said god)";
+ std::string broken = "This screen shows your character's set of talents. "
+ "You can gain new abilities via certain items, through religion or by "
+ "way of mutations. Activation of an ability usually comes at a cost, "
+ "e.g. nutrition or Magic power. If, from the main screen, you press "
+ "<w>a!</w> you can read your abilities' descriptions.";
+ linebreak_string2(broken, _get_tutorial_cols());
+ text << broken;
- if (you.religion == GOD_TROG)
- {
- text << ", while <w>Berserk</w> temporarily increases your" EOL
- "damage output in melee fights";
- }
- text << ".";
- }
text << "</" << colour_to_str(channel_to_colour(MSGCH_TUTORIAL)) << ">";
return formatted_string::parse_string(text.str(), false);
@@ -2791,13 +2781,32 @@ void print_tut_skills_info()
textcolor(channel_to_colour(MSGCH_TUTORIAL));
std::ostringstream text;
text << "<" << colour_to_str(channel_to_colour(MSGCH_TUTORIAL)) << ">";
- text <<
- "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 <cyan>cyan percent " EOL
- "value</cyan> shows your progress towards the next skill level. You can toggle" EOL
- "which skills to train by pressing their slot letters. A <darkgrey>greyish</darkgrey> skill " EOL
- "will increase at a decidedly slower rate and ease training of others. ";
+ std::string broken = "This screen shows the skill set of your character. "
+ "The number next to the skill is your current level, the higher the "
+ "better. The <cyan>cyan percent value</cyan> shows your progress "
+ "towards the next skill level. You can toggle which skills to train by "
+ "pressing their slot letters. A <darkgrey>greyish</darkgrey> skill "
+ "will increase at a decidedly slower rate and ease training of others. "
+ "Press <w>?</w> to read your skills' descriptions.";
+ linebreak_string2(broken, _get_tutorial_cols());
+ text << broken;
+ text << "</" << colour_to_str(channel_to_colour(MSGCH_TUTORIAL)) << ">";
+
+ formatted_string::parse_string(text.str(), false).display();
+}
+
+void print_tut_skills_description_info()
+{
+ textcolor(channel_to_colour(MSGCH_TUTORIAL));
+ std::ostringstream text;
+ text << "<" << colour_to_str(channel_to_colour(MSGCH_TUTORIAL)) << ">";
+ std::string broken = "This screen shows the skill set of your character. "
+ "Press the letter of a skill to read its description, "
+ "or press <w>?</w> again to return to the skill "
+ "selection.";
+
+ linebreak_string2(broken, _get_tutorial_cols());
+ text << broken;
text << "</" << colour_to_str(channel_to_colour(MSGCH_TUTORIAL)) << ">";
formatted_string::parse_string(text.str(), false).display();
diff --git a/crawl-ref/source/tutorial.h b/crawl-ref/source/tutorial.h
index e0d94d2b0a..88ec4c22d8 100644
--- a/crawl-ref/source/tutorial.h
+++ b/crawl-ref/source/tutorial.h
@@ -45,6 +45,7 @@ void tutorial_first_item(const item_def& item);
void learned_something_new(tutorial_event_type seen_what, int x = 0, int y = 0);
formatted_string tut_abilities_info(void);
void print_tut_skills_info(void);
+void print_tut_skills_description_info(void);
// Additional information for tutorial players.
void tutorial_describe_item(const item_def &item);