skills (non-magic characters): Fighter, Gladiator, Berserker, Paladin, Priest, Chaos Knight (*), Death Knight, Healer, Thief, Assassin, Hunter
*: Other than in the final layout (v4?) Trolls and Ghouls don't get "claws" as a weapon choice here because I had no idea what to do with the to-be-distributed enchantment points if they don't get a weapon.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6293 c06c8d41-db1a-0410-9941-cceddc491573
MCQZ4HEOF65FEVWUEAMO2765JYMJPKXQ454HCCWWK3JUYEUSUXTAC
2U7VFZ3242P22EPRQKCIHFZRRWHHBZGOEEN2WJNMCXV5BEI67NNAC
JPGW2YFZDRPAWPG4VAKOOB5SCJA2QSSLR5JJP7ULRBX3LLGI7PUAC
4RMVYPFXH724FUEKIDDSIQ2LRDKO2YV6IUUVP5VVHTK4CFFSNXBQC
RWSXCNYUGDSMP2GKN22HROC5Q2GHSAVJJUDRT3Z53WU2DAI4IZOQC
YTUD2TIFOAE6CDDT53PZH32TIXZEZZL5Y6ZRS4GXPVBOPIBTMQGQC
QCUMH3C7GXV7ZW444WT5SFAXQOJKJSE2YCQCEHMRYXCWF4QI7UMAC
6LT6USGJOTDMRJGXLAN2NSZXK2GKWEXDKKUV6SVV7ZC6WI6EKMDQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
C2PRXJYHDRF2642VDAUY76HJKCPQFGWDI6AM3SMCMYCHGWYDQXQQC
RKU2FIDSJCR4GZYBI7CLCFEYXVV5KRKI2CJFDNQT7YMWXUTUG7TAC
JJULXW764V5C2HJKZNWQAEWB6QM5YZADD7ZCE35LYTBFEM6PMYCAC
VXSORUQOM2VZA4CAZDC6KPAY373NQIN3UT7CXQXTRCYXO2WM62DAC
PO3IATZV4JX3I3522UAGF53ZLZ4FW7C2J32Z23PEWQVHGGEUO7SAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
KAL42YT6OQXFPMKKKHE2NQM47W5KMLSRI6KWFRTJFAO4WKP4MMLAC
H7BW6SEIQ57X6V4BM2RX54W42W6BH5XJBAS6FYCYKLQQG43ZMU4QC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
UKYGZDI6PYZPXDACCQGVPHANUP5ADCSNROOZIE7LYIZQWSNFHJZAC
22QXEMVWB4WB7NRHBLXMRVAYNG36KKTJJABENPBRXYERXEYVBLFQC
RB3ZDZXUZ3KVU5C4MFWTQB4J3PCQ5IQS4UVUBRS3TLSPFKBWNFDAC
RGWUYJO74FDGTH22CYSHBKFDGJ4S76WTLIULKPXA4QT5ZCNOB4LQC
YYMVEFSCN7DGZC74WGG53XOLQF42KY2KGBXF2GOAXCR6WEE5VHCQC
S4BRP4VHB23F2FCC6BXNAN2MZRVUGW7QMXUEOAVZVGFXKXJPVLLQC
Z6343ZVG2VOE7WOLBS7YLIWJ6XGCRCGJRJLP5WUVRTG7VOIXRRLAC
RB4PNFZOBEPUJM6PH4J4IPKF2WYYSQ2DINHZHOGDPA4ZN6E4RJAAC
BTDIRPAGSX5DWEEV62VGTYALWM6G5LKFKHT7HYJXVH7XBA4BPHLQC
VAIKTEZVIZTJORAZMFO5KG3NR2WIZXCKSO2ESIC6MZAULKCQ4JYAC
GUXTGUEMZYBRGV5QUAQSJHG3AOIQDWWCDIMOX4LASFJAZVGL2WQAC
J7UPE4RWHSTQNK6WVFD3GEMU5JQSYGYGOZ76HBQGR4INO2GLCQOAC
SJP5BHX6MFWF3OSQPEF4WUWZWPUGMOVURTT2CUVT6H3A66LETXUAC
W3ZIOVRGHZWWS7SB7QQWFIJ7XIFNXM3AEZSLGMQXAHC3LDV73VJAC
3GJTOMYXXJLY7QZNJLIONXAOHMU64PDYRXUYYQATIB7WPRHSNN6AC
JXOE7KJIEAJHPLMZAJ6O4YHDTRB6BGNP6XT3ZSEFYGSIUMHR77KQC
DMRXDEKHHBQNY37NPGZFAGUQPALWFANGGK4CUWIOQUPSLM2JBNFQC
GE4A5A5BBZX6JPNMVDCXEDHGJT2LSFVDVGDUBRDZJH6XJBPMASKAC
UFNXOEBCAUO3QMYOF6EXYILHZ44AXVMCOV76SFV3VV7DMVUPZWBAC
4RYFMDXFDD6CDZ73T2A4LBPBJEZ7N5DANPY6EVGFH43IQX2ZEFEQC
3OHKRNZDX6FDLBM26OFMRYUXVPLV24RIUYK6YDIIJPWHRVXUAJMAC
3BJ2OOF4F524G6UKVGOZVT6W3FSTSHHTKRJADUBZCHDXZWV3KANQC
LPW5S327G7WSDHNED5A2UB72HVH27YYNFZGBYWUW5XSV7U4HPNQAC
XPMC3YAOVJXYI5FAXLIHOCHVJLI24HKAF2GH7HG7FTQI5HBU4GWAC
DL4M4VJQZX43KRYN4FBP57YPSBX2UJPJ43QSYGFXVJO4PH2CHRCAC
4LK4NWHXIWWCTTJARE3EP247GMDZW7OQBGBQZXVL5QKRNVJORUTAC
TFO3DNZBDBA7YGKQKL624CG6DMVCEOPWQNAXDEV42ZODT5U3666AC
3NIWNYMNSQZEEXZLEQADAAB3D7GLO5FIH64U5P5YQUVIV5MOURCAC
7V4DCKFJCNBXFODMKJ6H3MCDUTSD4XVQ7D4D6XFCD4JNF4HCE4KAC
LJSES3YZH4RECLXVBRJXS54NJOLWXVBKV5GXBPVQBLRCYXX23X4AC
G3HJCS277WA2VONPOJW6FAOQO7VHMSMLXZWYIXKFE4N4Y3OV7UZAC
WFOFNKQC3EP2FX4YHYAB54B2JPN2KW6LCMFSX4KI6EK6YXNF4DXQC
KZIBMMGUSWOMS5NQ2KTWGY3SRYUYGZGD2YRZPQ2ISN5Z3JRSMEWQC
T7CUIVICB74342RA32BR37T36FOX4RBSQIB5PNOHTGTGUYGDKSTQC
LECIKTCYNIZX557PIJWPY73WM652RHZDIAY4J7OXIK7NY4LZ2ZJAC
CHEY5EGWQ3LVPKFUO5BMRTR724K4FQV37XSNVZULDHEAS5Q4BLDQC
W2G5DXQQOT5MGRUS4UUUKGPMIXOQWAAUV5REUJM7LAUQJGKCS23QC
3P6R443Q7BHDL2CB34CW5XNWWJ5RXQZUAL7RKVZCNRZPZRLTJS6QC
5V47S4NNTHWTSAHV3YLO2VGH7JTUIYJ3GBPDN5ZM4UQALT2ZEXDQC
if (player_genus(GENPC_ELVEN))
// Only set elven if the skills haven't been intentionally
// set otherwise (armour vs. dodging).
if (player_genus(GENPC_ELVEN)
&& (you.inv[i].base_type != OBJ_ARMOUR
|| get_armour_slot(you.inv[i]) != EQ_BODY_ARMOUR
|| you.skills[SK_DODGING] > 0
|| you.skills[SK_ARMOUR] == 0))
{
const weapon_type startwep[5] = { WPN_SHORT_SWORD, WPN_MACE,
WPN_HAND_AXE, WPN_SPEAR, WPN_TRIDENT };
weapon_type startwep[5] = { WPN_SHORT_SWORD, WPN_MACE,
WPN_HAND_AXE, WPN_SPEAR, WPN_UNKNOWN };
if (you.char_class == JOB_GLADIATOR)
startwep[3] = WPN_TRIDENT;
const bool claws_allowed =
(you.char_class != JOB_GLADIATOR && you.char_class != JOB_CHAOS_KNIGHT
&& you.has_claws());
if (claws_allowed)
{
for (int i = 3; i >= 0; i--)
startwep[i+1] = startwep[i];
char letter = (startwep_restrictions[i] == CC_BANNED) ? ' '
: 'a' + i;
char letter = (startwep_restrictions[i] == CC_BANNED)
? ' ' : ('a' + i);
if (startwep[i] == WPN_UNARMED)
cprintf("%c - claws" EOL, letter);
else
{
int x = effective_stat_bonus(startwep[i]);
cprintf("%c - %s%s" EOL, letter,
weapon_base_name(startwep[i]),
(x <= -4) ? " (not ideal)" : "" );
cprintf("%c - %s%s" EOL, letter,
weapon_base_name(startwep[i]),
(x <= -4) ? " (not ideal)" : "" );
}
if (you.species == SP_OGRE || you.species == SP_TROLL)
{
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ANIMAL_SKIN);
if (you.species == SP_OGRE)
_newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_ANKUS);
else if (you.species == SP_TROLL)
_newgame_clear_item(0); // Trolls go unarmed.
}
else if (you.species == SP_HALFLING || you.species == SP_KOBOLD
|| you.species == SP_GNOME || you.species == SP_VAMPIRE)
{
if (!_choose_weapon())
return (false);
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR,
ARM_LEATHER_ARMOUR);
}
else
{
if (!_choose_weapon())
return (false);
if (!_choose_weapon())
return (false);
// For small species, hand out some darts.
if (player_size(PSIZE_BODY) < SIZE_MEDIUM)
{
_newgame_make_item(2, EQ_NONE, OBJ_MISSILES, MI_DART, -1,
10 + roll_dice( 2, 10 ));
}
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_SCALE_MAIL,
ARM_ROBE);
_newgame_make_item(2, EQ_SHIELD, OBJ_ARMOUR, ARM_SHIELD,
ARM_BUCKLER);
if (you.species != SP_TROLL)
weap_skill = 2;
if (you.species == SP_HALFLING || you.species == SP_KOBOLD ||
you.species == SP_GNOME)
{
you.skills[SK_THROWING] = 1;
you.skills[SK_DARTS] = 1;
you.skills[SK_DODGING] = 1;
you.skills[SK_STEALTH] = 1;
you.skills[SK_STABBING] = 1;
you.skills[SK_DODGING + random2(3)] += 1;
}
else if (you.species == SP_OGRE || you.species == SP_TROLL)
{
if (you.species == SP_TROLL) //jmf: these guys get no weapon!
you.skills[SK_UNARMED_COMBAT] += 3;
else
you.skills[SK_FIGHTING] += 2;
you.skills[SK_SHIELDS] = 2;
// BWR sez Ogres & Trolls should probably start w/ Dodge 2 -- GDL
you.skills[SK_DODGING] = 3;
}
else
{
// Players get dodging or armour skill depending on their
// starting armour now (note: the armour has to be equipped
// for this function to work)
weap_skill = 2;
you.skills[(player_light_armour() ? SK_DODGING : SK_ARMOUR)] = 2;
you.skills[SK_THROWING] = 2;
if (you.species != SP_VAMPIRE)
you.skills[SK_SHIELDS] = 2;
if (you.species == SP_VAMPIRE || coinflip())
you.skills[SK_STABBING]++;
else
you.skills[SK_SHIELDS]++;
}
if (you.species == SP_KOBOLD || you.species == SP_HALFLING)
{
_newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_KNIFE, -1,
1, 1, 1);
}
else
{
_newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS,
(player_genus(GENPC_ELVEN) || you.species == SP_MERFOLK) ?
WPN_QUARTERSTAFF : WPN_MACE);
}
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
if (you.is_undead != US_UNDEAD)
_newgame_make_item(2, EQ_NONE, OBJ_POTIONS, POT_HEALING, -1, 2);
you.skills[SK_FIGHTING] = 2;
you.skills[SK_DODGING] = 1;
you.skills[SK_INVOCATIONS] = 4;
you.skills[ weapon_skill(you.inv[0]) ] = 2;
if (you.religion == GOD_BEOGH)
_newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_HAND_AXE);
else
_newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_QUARTERSTAFF);
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
if (you.is_undead != US_UNDEAD)
_newgame_make_item(2, EQ_NONE, OBJ_POTIONS, POT_HEALING, -1, 2);
you.skills[SK_FIGHTING] = 2;
you.skills[SK_INVOCATIONS] = 5;
you.skills[SK_DODGING] = 1;
weap_skill = 3;
if (you.species != SP_KOBOLD)
_newgame_make_item(3, EQ_HELMET, OBJ_ARMOUR, ARM_HELMET, ARM_CAP);
// Small races get stones, the others nets.
if (player_size(PSIZE_BODY) < SIZE_MEDIUM)
{
_newgame_make_item(4, EQ_NONE, OBJ_MISSILES, MI_STONE, -1,
10 + roll_dice( 2, 10 ));
}
else
// Deep elves get hand crossbows, everyone else gets blowguns.
// (Deep elves tend to suck at melee and need something that
// can do ranged damage.)
if (you.species == SP_DEEP_ELF)
{
you.inv[1].sub_type = WPN_HAND_CROSSBOW;
_newgame_make_item(4, EQ_NONE, OBJ_MISSILES, MI_DART, -1,
10 + roll_dice( 2, 10 ));
set_item_ego_type( you.inv[4], OBJ_MISSILES, SPMSL_POISONED );
}
else
{
_newgame_make_item(4, EQ_NONE, OBJ_MISSILES, MI_NEEDLE, -1,
5 + roll_dice(2, 5));
set_item_ego_type(you.inv[4], OBJ_MISSILES, SPMSL_POISONED);
_newgame_make_item(5, EQ_NONE, OBJ_MISSILES, MI_NEEDLE, -1,
1 + random2(4));
set_item_ego_type(you.inv[5], OBJ_MISSILES, SPMSL_CURARE);
}
_newgame_make_item(4, EQ_NONE, OBJ_MISSILES, MI_NEEDLE, -1,
5 + roll_dice(2, 5));
set_item_ego_type(you.inv[4], OBJ_MISSILES, SPMSL_POISONED);
_newgame_make_item(5, EQ_NONE, OBJ_MISSILES, MI_NEEDLE, -1,
1 + random2(4));
set_item_ego_type(you.inv[5], OBJ_MISSILES, SPMSL_CURARE);
you.skills[SK_DODGING] = 1;
you.skills[SK_STEALTH] = 3;
you.skills[SK_STABBING] = 2;
// DE still get Throwing skill because of Assassin/darts association.
you.skills[SK_THROWING] = 1;
you.skills[SK_DARTS] = 1;
if (you.species == SP_DEEP_ELF)
you.skills[SK_CROSSBOWS] = 1;
else
you.skills[SK_THROWING] += 1;
you.skills[SK_FIGHTING] = 2;
you.skills[SK_DODGING] = 1;
you.skills[SK_STEALTH] = 3;
you.skills[SK_STABBING] = 2;
you.skills[SK_DARTS] = 2;
if (you.species == SP_OGRE)
_newgame_make_item(0, EQ_WEAPON, OBJ_WEAPONS, WPN_ANKUS);
else if (you.species == SP_TROLL)
you.equip[EQ_WEAPON] = -1; // Trolls fight unarmed.
if (you.has_claws())
you.equip[EQ_WEAPON] = -1; // Trolls/Ghouls fight unarmed.
if (you.species == SP_TROLL)
{
// no wep - give them unarmed.
you.skills[SK_FIGHTING] += 3;
you.skills[SK_DODGING] = 2;
you.skills[SK_UNARMED_COMBAT] = 2;
}
else if (you.species == SP_OGRE)
{
you.skills[SK_FIGHTING] += 3;
you.skills[SK_MACES_FLAILS] = 3;
}
if (you_can_wear(EQ_BODY_ARMOUR))
you.skills[SK_ARMOUR] = 2;
you.skills[SK_AXES] = 3;
you.skills[SK_ARMOUR] = 2;
you.skills[SK_DODGING] = 2;
you.skills[SK_THROWING] = 2;
you.skills[SK_DODGING]++;
you.skills[SK_ARMOUR] = 1; // for the eventual dragon scale mail :)
if (you.species == SP_MERFOLK)
{
// Merfolk are spear hunters -- clobber bow, give six javelins
// possibly allow choice between javelin and net.
you.inv[1] = you.inv[2];
you.equip[EQ_BODY_ARMOUR] = 1;
_newgame_make_item(2, EQ_NONE, OBJ_MISSILES, MI_JAVELIN, -1, 6);
switch (you.species)
{ case SP_MOUNTAIN_DWARF:
case SP_HILL_ORC:
case SP_CENTAUR:
case SP_OGRE:
case SP_OGRE_MAGE:
you.inv[0].sub_type = WPN_HAND_AXE;
break;
case SP_GHOUL:
case SP_TROLL:
_newgame_clear_item(0);
break;
default:
break;
else
{
_newgame_make_item(3, EQ_NONE, OBJ_MISSILES, MI_ARROW, -1,
15 + random2avg(21, 5));
_newgame_make_item(1, EQ_NONE, OBJ_WEAPONS, WPN_BOW);
}
// Ogres chop up their food without finesse.
you.inv[0].sub_type = WPN_HAND_AXE;
you.inv[1].quantity = 0;
// And they get to throw rocks.
you.inv[3].sub_type = MI_LARGE_ROCK;
you.inv[3].quantity = 4;
_newgame_make_item(1, EQ_NONE, OBJ_MISSILES, MI_LARGE_ROCK, -1, 5);
_newgame_make_item(2, EQ_NONE, OBJ_MISSILES, MI_THROWING_NET, -1,
3);
you.inv[3].quantity += random2avg(15, 2);
you.inv[3].sub_type = MI_SLING_BULLET;
you.inv[1].sub_type = WPN_SLING;
you.skills[SK_DODGING] = 2;
you.skills[SK_STEALTH] = 2;
you.skills[SK_SLINGS] = 2;
you.skills[SK_THROWING] += 2;
case SP_KOBOLD:
_newgame_make_item(1, EQ_NONE, OBJ_WEAPONS, WPN_SLING);
_newgame_make_item(2, EQ_NONE, OBJ_MISSILES, MI_SLING_BULLET, -1,
15 + random2avg(21, 5) + random2avg(15, 2));
case SP_HILL_ORC:
you.inv[3].sub_type = MI_BOLT;
you.inv[1].sub_type = WPN_CROSSBOW;
if (you.species == SP_HILL_ORC)
{
you.inv[0].sub_type = WPN_SHORT_SWORD;
you.skills[SK_SHORT_BLADES] = 1;
}
else
{
you.inv[0].sub_type = WPN_HAND_AXE;
you.skills[SK_AXES] = 1;
}
you.skills[SK_DODGING] = 1;
you.skills[SK_CROSSBOWS] = 3;
break;
case SP_MERFOLK:
you.inv[0].sub_type = WPN_TRIDENT;
you.skills[SK_POLEARMS] = 2;
you.skills[SK_DODGING] = 2;
you.skills[SK_THROWING] += 3;
// And a hunting knife.
_newgame_make_item(-1, EQ_NONE, OBJ_WEAPONS, WPN_KNIFE);
_newgame_make_item(1, EQ_NONE, OBJ_WEAPONS, WPN_CROSSBOW);
_newgame_make_item(2, EQ_NONE, OBJ_MISSILES, MI_BOLT, -1,
15 + random2avg(21, 5));
you.skills[SK_DODGING] = 1;
you.skills[SK_STEALTH] = 1;
you.skills[(coinflip() ? SK_STABBING : SK_STEALTH)]++;
you.skills[SK_BOWS] = 3;
_newgame_make_item(1, EQ_NONE, OBJ_WEAPONS, WPN_BOW);
_newgame_make_item(2, EQ_NONE, OBJ_MISSILES, MI_ARROW, -1,
15 + random2avg(21, 5));
_newgame_make_item(3, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_LEATHER_ARMOUR,
ARM_ANIMAL_SKIN);
// Skills.
you.skills[SK_FIGHTING] = 2;
you.skills[SK_DODGING] = 2;
you.skills[SK_STEALTH] = 1;
weap_skill = 1;
if (is_range_weapon(you.inv[1]))
you.skills[range_skill(you.inv[1])] = 4;
else
you.skills[SK_THROWING] = 4;
weap_skill = 2;
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE, -1,
1, random2(3));
you.skills[SK_FIGHTING] = 3;
you.skills[SK_ARMOUR] = 1;
you.skills[SK_DODGING] = 1;
you.skills[(coinflip()? SK_ARMOUR : SK_DODGING)]++;
you.skills[SK_STABBING] = 1;
int plusses = 4 - you.inv[0].plus - you.inv[0].plus2;
ASSERT(plusses >= 0);
if (one_chance_in(5))
set_equip_desc( you.inv[0], ISFLAG_RUNED );
if (one_chance_in(5))
set_equip_desc( you.inv[0], ISFLAG_GLOWING );
weap_skill = 2;
if (you.religion != GOD_XOM)
{
// For Lugonu and Makhleb don't hand out enchanted armour.
// Distribute remaining enchantment points on the weapon.
const int help = random2(plusses + 1);
you.inv[0].plus += help;
you.inv[0].plus2 += plusses - help;
plusses = 0;
}
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE, -1,
1, plusses);
you.skills[SK_FIGHTING] = 3;
you.skills[SK_ARMOUR] = 1;
you.skills[SK_DODGING] = 1;
you.skills[(coinflip()? SK_ARMOUR : SK_DODGING)]++;