summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-11 15:45:23 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-07-11 15:45:23 +0000
commit6ac25ffd6efaa21bc9ac1d9a5828e7ae6412d292 (patch)
tree43de69e9e8645ec0e1f99d0b5fb4af8e928dba22
parent9f6d46081c7ab1d1d56a5e145ccfad9765cf35da (diff)
downloadcrawl-ref-6ac25ffd6efaa21bc9ac1d9a5828e7ae6412d292.tar.gz
crawl-ref-6ac25ffd6efaa21bc9ac1d9a5828e7ae6412d292.zip
Apply r6498 to 0.4.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup-0.4@6499 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/docs/crawl_manual.txt11
-rw-r--r--crawl-ref/source/describe.cc4
-rw-r--r--crawl-ref/source/newgame.cc103
3 files changed, 68 insertions, 50 deletions
diff --git a/crawl-ref/docs/crawl_manual.txt b/crawl-ref/docs/crawl_manual.txt
index 49b85a87f3..7013763ed4 100644
--- a/crawl-ref/docs/crawl_manual.txt
+++ b/crawl-ref/docs/crawl_manual.txt
@@ -1921,14 +1921,15 @@ of spells which should see them through the first several levels.
Wizards:
--------
A Wizard is a magician who does not specialise in any area of magic.
-Wizards start with a variety of magical skills and the magic dart spell
-in memory.
+Wizards start with a variety of magical skills and with either
+Magic Dart or Summon Small Mammals in memory, depending on their
+starting book.
Conjurers:
----------
The Conjurer specialises in the violent and destructive magic of
-conjuration spells. Like the Wizard, the Conjurer starts with the
-magic dart spell.
+conjuration spells. Like most Wizards, the Conjurer starts with the
+Magic Dart spell.
Enchanters:
-----------
@@ -1937,7 +1938,7 @@ Although not as directly powerful as conjurations, high-level
enchantments offer a wide range of very handy effects. The Enchanter
begins with lightly enchanted weapons and armour, but no direct damage
spell (since enchantments do not deal with direct attacks). Instead,
-they begin with the "Corona" spell and some enchanted darts, which
+they begin with the Corona spell and some enchanted darts, which
should help them out until they can use the higher level enchantment
spells.
diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc
index 11ff6eca6e..1659657f03 100644
--- a/crawl-ref/source/describe.cc
+++ b/crawl-ref/source/describe.cc
@@ -2888,7 +2888,7 @@ static void _detailed_god_description(god_type which_god)
const int bottom_line = std::min(30, get_number_of_lines());
- cgotoxy(1, bottom_line-1);
+ cgotoxy(1, bottom_line);
formatted_string::parse_string(
"Press '<w>!</w>' to toggle between the overview and the more detailed "
"description.").display();
@@ -3105,7 +3105,7 @@ void describe_god( god_type which_god, bool give_title )
numcols).c_str());
}
- cgotoxy(1, bottom_line - 1);
+ cgotoxy(1, bottom_line);
textcolor(LIGHTGREY);
formatted_string::parse_string(
"Press '<w>!</w>' to toggle between the overview and the more detailed "
diff --git a/crawl-ref/source/newgame.cc b/crawl-ref/source/newgame.cc
index 9a9f89d7d0..d74301e19f 100644
--- a/crawl-ref/source/newgame.cc
+++ b/crawl-ref/source/newgame.cc
@@ -242,10 +242,10 @@ static job_type new_jobs_order[] = {
JOB_HEALER, JOB_CHAOS_KNIGHT,
JOB_DEATH_KNIGHT, JOB_CRUSADER,
// general and niche spellcasters (incl. Crusader above)
- JOB_REAVER, JOB_WIZARD,
- JOB_CONJURER, JOB_ENCHANTER,
- JOB_SUMMONER, JOB_NECROMANCER,
- JOB_WARPER, JOB_TRANSMUTER,
+ JOB_REAVER, JOB_WARPER,
+ JOB_WIZARD, JOB_CONJURER,
+ JOB_ENCHANTER, JOB_SUMMONER,
+ JOB_NECROMANCER, JOB_TRANSMUTER,
JOB_FIRE_ELEMENTALIST, JOB_ICE_ELEMENTALIST,
JOB_AIR_ELEMENTALIST, JOB_EARTH_ELEMENTALIST,
// poison specialists and stabbers
@@ -715,7 +715,7 @@ static unsigned char _random_potion_description()
// in itemname.cc; this check ensures clear potions don't
// get odd qualifiers.
}
- while ((colour == PDC_CLEAR && nature > PDQ_VISCOUS)
+ while (colour == PDC_CLEAR && nature > PDQ_VISCOUS
|| desc == PDESCS(PDC_CLEAR)
|| desc == PDESCQ(PDQ_GLUGGY, PDC_WHITE));
@@ -1270,6 +1270,9 @@ game_start:
_mark_starting_books();
_racialise_starting_equipment();
+ _give_basic_spells(you.char_class);
+ _give_basic_knowledge(you.char_class);
+
_initialise_item_descriptions();
_reassess_starting_skills();
@@ -1307,9 +1310,6 @@ game_start:
set_hp( you.hp_max, false );
set_mp( you.max_magic_points, false );
- _give_basic_spells(you.char_class);
- _give_basic_knowledge(you.char_class);
-
// tmpfile purging removed in favour of marking
tmp_file_pairs.init(false);
@@ -2243,8 +2243,13 @@ static bool _choose_weapon()
weapon_type startwep[5] = { WPN_SHORT_SWORD, WPN_MACE,
WPN_HAND_AXE, WPN_SPEAR, WPN_UNKNOWN };
- if (you.char_class == JOB_GLADIATOR)
+ // Gladiators that are at least medium sized get to choose a trident
+ // rather than a spear
+ if (you.char_class == JOB_GLADIATOR
+ && player_size(PSIZE_BODY) >= SIZE_MEDIUM)
+ {
startwep[3] = WPN_TRIDENT;
+ }
const bool claws_allowed =
(you.char_class != JOB_GLADIATOR && you.has_claws());
@@ -2866,9 +2871,17 @@ static void _give_basic_spells(job_type which_job)
switch (which_job)
{
+ case JOB_WIZARD:
+ if (!you.skills[SK_CONJURATIONS])
+ {
+ // Wizards who start with Minor Magic III (summoning) have no
+ // Conjurations skill, and thus get another starting spell.
+ which_spell = SPELL_SUMMON_SMALL_MAMMALS;
+ break;
+ }
+ // intentional fall-through
case JOB_CONJURER:
case JOB_REAVER:
- case JOB_WIZARD:
which_spell = SPELL_MAGIC_DART;
break;
case JOB_STALKER:
@@ -4639,8 +4652,9 @@ bool _give_items_skills()
else
you.inv[0].plus2 = 4 - you.inv[0].plus;
- _newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE, -1,
- 1, you.religion == GOD_XOM ? 1 + random2(3) : 0);
+ _newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_LEATHER_ARMOUR,
+ ARM_ROBE, 1, you.religion == GOD_XOM ? 1 + random2(3)
+ : 0);
you.skills[SK_FIGHTING] = 3;
you.skills[SK_ARMOUR] = 1;
@@ -4817,7 +4831,8 @@ bool _give_items_skills()
ng_dk = (keyn == '*'? DK_RANDOM : choice);
}
- _newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
+ _newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_LEATHER_ARMOUR,
+ ARM_ROBE);
switch (choice)
{
@@ -4831,8 +4846,8 @@ bool _give_items_skills()
case DK_YREDELEMNUL:
you.religion = GOD_YREDELEMNUL;
you.piety = 28;
- you.inv[0].plus = 1;
- you.inv[0].plus2 = 1;
+ you.inv[0].plus = 1 + random2(2);
+ you.inv[0].plus2 = 3 - you.inv[0].plus;
you.inv[2].quantity = 0;
you.skills[SK_INVOCATIONS] = 3;
break;
@@ -4871,13 +4886,13 @@ bool _give_items_skills()
if (you.inv[0].quantity < 1)
_newgame_clear_item(0);
- _newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
+ _newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_LEATHER_ARMOUR,
+ ARM_ROBE);
_newgame_make_item(2, EQ_NONE, OBJ_BOOKS, BOOK_WAR_CHANTS);
you.skills[SK_FIGHTING] = 3;
you.skills[SK_ARMOUR] = 1;
you.skills[SK_DODGING] = 1;
- you.skills[SK_STEALTH] = 1;
you.skills[SK_SPELLCASTING] = 2;
you.skills[SK_ENCHANTMENTS] = 2;
weap_skill = 2;
@@ -4891,7 +4906,8 @@ bool _give_items_skills()
if (you.inv[0].quantity < 1)
_newgame_clear_item(0);
- _newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
+ _newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_LEATHER_ARMOUR,
+ ARM_ROBE);
if (!_choose_book( you.inv[2], BOOK_CONJURATIONS_I, 2 ))
return (false);
@@ -4904,6 +4920,32 @@ bool _give_items_skills()
weap_skill = 3;
break;
+ case JOB_WARPER:
+ _newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_SHORT_SWORD);
+ if (!_choose_weapon())
+ return (false);
+
+ if (you.inv[0].quantity < 1)
+ _newgame_clear_item(0);
+
+ _newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_LEATHER_ARMOUR,
+ ARM_ROBE);
+ _newgame_make_item(2, EQ_NONE, OBJ_BOOKS, BOOK_SPATIAL_TRANSLOCATIONS);
+
+ // One free escape.
+ _newgame_make_item(3, EQ_NONE, OBJ_SCROLLS, SCR_BLINKING);
+ _newgame_make_item(4, EQ_NONE, OBJ_MISSILES, MI_DART, -1,
+ 10 + roll_dice( 2, 10 ));
+
+ you.skills[SK_FIGHTING] = 1;
+ you.skills[SK_ARMOUR] = 1;
+ you.skills[SK_DODGING] = 2;
+ you.skills[SK_SPELLCASTING] = 2;
+ you.skills[SK_TRANSLOCATIONS] = 3;
+ you.skills[SK_DARTS] = 1;
+ weap_skill = 3;
+ break;
+
case JOB_WIZARD:
// The knife is a tool, not a weapon, so don't start wielding it.
if (_needs_butchering_tool())
@@ -5011,31 +5053,6 @@ bool _give_items_skills()
you.skills[SK_STEALTH] = 2;
break;
- case JOB_WARPER:
- _newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_SHORT_SWORD);
- if (!_choose_weapon())
- return (false);
-
- if (you.inv[0].quantity < 1)
- _newgame_clear_item(0);
-
- _newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_LEATHER_ARMOUR,
- ARM_ROBE);
- _newgame_make_item(2, EQ_NONE, OBJ_BOOKS, BOOK_SPATIAL_TRANSLOCATIONS);
-
- // One free escape.
- _newgame_make_item(3, EQ_NONE, OBJ_SCROLLS, SCR_BLINKING);
- _newgame_make_item(4, EQ_NONE, OBJ_MISSILES, MI_DART, -1,
- 10 + roll_dice( 2, 10 ));
-
- you.skills[SK_FIGHTING] = 1;
- you.skills[SK_DODGING] = 2;
- you.skills[SK_SPELLCASTING] = 2;
- you.skills[SK_TRANSLOCATIONS] = 3;
- you.skills[SK_DARTS] = 1;
- weap_skill = 3;
- break;
-
case JOB_TRANSMUTER:
you.equip[EQ_WEAPON] = -1;