summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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);