summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/newgame.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-01-12 06:54:40 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2009-01-12 06:54:40 +0000
commita8f3beb7df924aa35785a9eccc7e9312f8c6cdaf (patch)
tree9a3d55ffffaf6e07bbaef2963df85b21fc045916 /crawl-ref/source/newgame.cc
parent880502633871227567f855808219c6f83a3aa666 (diff)
downloadcrawl-ref-a8f3beb7df924aa35785a9eccc7e9312f8c6cdaf.tar.gz
crawl-ref-a8f3beb7df924aa35785a9eccc7e9312f8c6cdaf.zip
Apply a patch to improve Artificers (as per FR 2407979)
by Happylisk and nendo. Thanks! * Artificers may now start with a rod of striking, but don't get a wand of random effects in this case. * All wands start at 15 charges. * Spriggan Enchanters no longer get a rod of striking. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8423 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/newgame.cc')
-rw-r--r--crawl-ref/source/newgame.cc62
1 files changed, 29 insertions, 33 deletions
diff --git a/crawl-ref/source/newgame.cc b/crawl-ref/source/newgame.cc
index 8ad13595b7..91d88c4418 100644
--- a/crawl-ref/source/newgame.cc
+++ b/crawl-ref/source/newgame.cc
@@ -2879,7 +2879,8 @@ static void _give_basic_knowledge(job_type which_job)
break;
case JOB_ARTIFICER:
- set_ident_type( OBJ_SCROLLS, SCR_RECHARGING, ID_KNOWN_TYPE );
+ if (!item_is_rod(you.inv[2]))
+ set_ident_type( OBJ_SCROLLS, SCR_RECHARGING, ID_KNOWN_TYPE );
break;
default:
@@ -4209,7 +4210,8 @@ static bool _choose_wand()
const wand_type startwand[5] = { WAND_ENSLAVEMENT, WAND_CONFUSION,
WAND_MAGIC_DARTS, WAND_FROST, WAND_FLAME };
- const int num_choices = 5;
+ _make_rod(you.inv[2], STAFF_STRIKING);
+ const int num_choices = 6;
int keyin = 0;
if (!Options.random_pick)
@@ -4217,7 +4219,7 @@ static bool _choose_wand()
_print_character_info();
textcolor( CYAN );
- cprintf(EOL "You have a choice of wands: "
+ cprintf(EOL "You have a choice of tools:" EOL
"(Press %% for a list of aptitudes)" EOL);
for (int i = 0; i < num_choices; i++)
@@ -4225,7 +4227,13 @@ static bool _choose_wand()
textcolor(LIGHTGREY);
const char letter = 'a' + i;
- cprintf("%c - %s" EOL, letter, wand_type_name(startwand[i]));
+ if (i == num_choices - 1)
+ {
+ cprintf("%c - %s" EOL, letter,
+ you.inv[2].name(DESC_QUALNAME, false).c_str());
+ }
+ else
+ cprintf("%c - %s" EOL, letter, wand_type_name(startwand[i]));
}
textcolor(BROWN);
@@ -4238,7 +4246,7 @@ static bool _choose_wand()
do
{
textcolor( CYAN );
- cprintf(EOL "Which wand? ");
+ cprintf(EOL "Which wand or rod? ");
textcolor( LIGHTGREY );
keyin = c_getch();
@@ -4272,25 +4280,18 @@ static bool _choose_wand()
keyin += 'a';
}
- const wand_type choice = startwand[keyin - 'a'];
- int nCharges;
- switch (choice)
+ if (keyin - 'a' == num_choices - 1)
{
- case WAND_MAGIC_DARTS:
- case WAND_ENSLAVEMENT:
- nCharges = 6;
- break;
- case WAND_FROST:
- case WAND_FLAME:
- nCharges = 7;
- break;
- default:
- nCharges = 8;
- break;
+ // Choose the rod; we're all done.
+ return (true);
}
- _newgame_make_item(3, EQ_NONE, OBJ_WANDS, choice, -1, 1,
- nCharges, 0);
+ // 1 wand of random effects and one chosen lesser wand
+ const wand_type choice = startwand[keyin - 'a'];
+ int nCharges = 15;
+ _newgame_make_item(2, EQ_NONE, OBJ_WANDS, WAND_RANDOM_EFFECTS, -1, 1,
+ nCharges, 0);
+ _newgame_make_item(3, EQ_NONE, OBJ_WANDS, choice, -1, 1, nCharges, 0);
return (true);
}
@@ -5125,16 +5126,13 @@ bool _give_items_skills()
_newgame_make_item(3, EQ_NONE, OBJ_MISSILES, MI_DART, -1,
8 + roll_dice( 2, 8 ), 1);
+ // Spriggans used to get a rod striking, but now anyone can get
+ // one when playing an Artificer this is no longer necessary. (jpeg)
if (you.species == SP_SPRIGGAN)
- {
you.inv[0].sub_type = WPN_DAGGER;
- _make_rod(you.inv[3], STAFF_STRIKING);
- you.skills[SK_EVOCATIONS] = 1;
- }
- else
- you.skills[SK_DARTS] = 1;
you.skills[SK_SHORT_BLADES] = 1;
+ you.skills[SK_DARTS] = 1;
you.skills[SK_ENCHANTMENTS] = 4;
you.skills[SK_SPELLCASTING] = 1;
you.skills[SK_DODGING] = 2;
@@ -5416,11 +5414,9 @@ bool _give_items_skills()
_newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_KNIFE);
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR,
ARM_LEATHER_ARMOUR, ARM_ROBE);
- // 1 wand of random effects and one chosen lesser wand
- _newgame_make_item(2, EQ_NONE, OBJ_WANDS, WAND_RANDOM_EFFECTS, -1, 1,
- 6, 0);
- // Choice of lesser wands: confusion (8), enslavement (8),
- // slowing (8), magic dart (6), frost (7), flame (7)
+ // Choice of lesser wands, 15 charges plus wand of random effects:
+ // confusion, enslavement, slowing, magic dart, frost, flame; OR a rod
+ // of striking and no random effects.
if (!_choose_wand())
return (false);
@@ -5435,9 +5431,9 @@ bool _give_items_skills()
// Skills
you.skills[SK_EVOCATIONS] = 4;
you.skills[SK_TRAPS_DOORS] = 3;
- //you.skills[SK_CROSSBOWS] = 2;
you.skills[SK_DODGING] = 2;
you.skills[SK_FIGHTING] = 1;
+ you.skills[SK_STEALTH] = 1;
break;
default: