diff options
-rw-r--r-- | crawl-ref/source/abl-show.cc | 16 | ||||
-rw-r--r-- | crawl-ref/source/dat/descript/ability.txt | 12 | ||||
-rw-r--r-- | crawl-ref/source/it_use3.cc | 4 | ||||
-rw-r--r-- | crawl-ref/source/mon-util.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/output.cc | 22 | ||||
-rw-r--r-- | crawl-ref/source/skills2.cc | 18 | ||||
-rw-r--r-- | crawl-ref/source/tutorial.cc | 67 | ||||
-rw-r--r-- | crawl-ref/source/tutorial.h | 1 |
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); |