opposed to banned ones). Tweak the code to enforce wearable body armour and shield types for all species. I'm afraid the skills need to be adjusted as well, probably in more detail, but I'm rather clueless on that account.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6147 c06c8d41-db1a-0410-9941-cceddc491573
BTDIRPAGSX5DWEEV62VGTYALWM6G5LKFKHT7HYJXVH7XBA4BPHLQC
GE4A5A5BBZX6JPNMVDCXEDHGJT2LSFVDVGDUBRDZJH6XJBPMASKAC
C2PRXJYHDRF2642VDAUY76HJKCPQFGWDI6AM3SMCMYCHGWYDQXQQC
2RSY5J2ED2GM5R564UF5NEPDAEJDGLJJ6U3YO6UBQOX4KSLGNY7QC
VXSORUQOM2VZA4CAZDC6KPAY373NQIN3UT7CXQXTRCYXO2WM62DAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
6SSW2WIX3LUPDP2QI6Z75YUE53G5H3CZBAPCQA7OEQEPOCIXT73AC
NCDWWDJQLAU5ORSAQGZKJJ5E22VTDGGPJMVVBWQFHQ2B3U3UFHDQC
QDTVLBRGHDTRUVT7I3O72K6TMOYAUSAJBZUHGOEFU2RKJNUPWZSQC
Z6343ZVG2VOE7WOLBS7YLIWJ6XGCRCGJRJLP5WUVRTG7VOIXRRLAC
JJULXW764V5C2HJKZNWQAEWB6QM5YZADD7ZCE35LYTBFEM6PMYCAC
S4BRP4VHB23F2FCC6BXNAN2MZRVUGW7QMXUEOAVZVGFXKXJPVLLQC
XSGOCZRVJO3C2Z7ADWP5N6HTDKJLJ4LN5OY6RNXX3L42FZGGVRLAC
UKYGZDI6PYZPXDACCQGVPHANUP5ADCSNROOZIE7LYIZQWSNFHJZAC
YYMVEFSCN7DGZC74WGG53XOLQF42KY2KGBXF2GOAXCR6WEE5VHCQC
KOAT7CNKJHJQGVW4USZEOC5IKLLYEU5HIYWZW5YU2R4ETVBIBWEQC
P2ZCF3BBG523ZEOD6XQA4X5YEHBTWH3IM33YVHXP2SQ5POXZIH4QC
XVRZIUEK3PHCL6JIBTIBYEUWOVLZ6MQZYUIFYCH454WDGDSBADLAC
UFNXOEBCAUO3QMYOF6EXYILHZ44AXVMCOV76SFV3VV7DMVUPZWBAC
3OHKRNZDX6FDLBM26OFMRYUXVPLV24RIUYK6YDIIJPWHRVXUAJMAC
3BJ2OOF4F524G6UKVGOZVT6W3FSTSHHTKRJADUBZCHDXZWV3KANQC
DL4M4VJQZX43KRYN4FBP57YPSBX2UJPJ43QSYGFXVJO4PH2CHRCAC
4LK4NWHXIWWCTTJARE3EP247GMDZW7OQBGBQZXVL5QKRNVJORUTAC
SJP5BHX6MFWF3OSQPEF4WUWZWPUGMOVURTT2CUVT6H3A66LETXUAC
T7CUIVICB74342RA32BR37T36FOX4RBSQIB5PNOHTGTGUYGDKSTQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
NIWYMEKDSS3KYWQNL2EHD2EEK6FMQXWG3QWIB5OILGIUTR4CXGLAC
Q5YUZONIIPGRWOIQNL6DHRGLKF4V3K5XSZCBH2SL7DP4WPLDNOSQC
return random2(shield_class)
+ (random2(stat) / 4)
+ (random2(skill_bump(SK_SHIELDS)) / 4)
- 1;
return (random2(shield_class)
+ (random2(stat) / 4)
+ (random2(skill_bump(SK_SHIELDS)) / 4)
- 1);
// If the character is restricted in wearing armour of equipment slot
// eqslot, hand out replacement instead.
if (item.base_type == OBJ_ARMOUR && replacement != -1
&& !you_can_wear(eqslot))
{
// Don't replace shields with bucklers for draconians and ogres.
if (sub_type != ARM_SHIELD
|| !player_genus(GENPC_OGRE) && !player_genus(GENPC_DRACONIAN))
{
item.sub_type = replacement;
}
}
// Ogres and draconians cannot wear armour.
if ((you.species == SP_OGRE_MAGE || player_genus(GENPC_DRACONIAN))
&& you.skills[ SK_ARMOUR ])
// Some species cannot wear real armour.
if (you.skills[ SK_ARMOUR ] && !you_can_wear(EQ_BODY_ARMOUR))
_newgame_make_item(4, EQ_SHIELD, OBJ_ARMOUR,
(player_genus(GENPC_DRACONIAN) || you.species == SP_OGRE_MAGE) ?
ARM_SHIELD : ARM_BUCKLER);
_newgame_make_item(4, EQ_SHIELD, OBJ_ARMOUR, ARM_SHIELD,
ARM_BUCKLER);
else if (player_genus(GENPC_DRACONIAN))
{
if (!_choose_weapon())
return (false);
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ROBE);
_newgame_make_item(2, EQ_SHIELD, OBJ_ARMOUR, ARM_SHIELD);
}
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_SCALE_MAIL);
_newgame_make_item(2, EQ_SHIELD, OBJ_ARMOUR, ARM_SHIELD);
_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);
}
// 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 ));
if (player_genus(GENPC_DRACONIAN) || you.species == SP_OGRE)
{
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_ANIMAL_SKIN);
_newgame_make_item(2, EQ_SHIELD, OBJ_ARMOUR, ARM_SHIELD);
}
else
{
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR,
ARM_LEATHER_ARMOUR);
_newgame_make_item(2, EQ_SHIELD, OBJ_ARMOUR, ARM_BUCKLER);
}
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR,
ARM_LEATHER_ARMOUR, ARM_ANIMAL_SKIN);
_newgame_make_item(2, EQ_SHIELD, OBJ_ARMOUR, ARM_SHIELD,
ARM_BUCKLER);
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_LEATHER_ARMOUR);
if (!can_wear_armour(you.inv[1], false, true))
you.inv[1].sub_type = ARM_ANIMAL_SKIN;
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_LEATHER_ARMOUR,
ARM_ANIMAL_SKIN);
_newgame_make_item(2, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_LEATHER_ARMOUR);
if (!can_wear_armour(you.inv[2], false, true))
{
you.inv[2].sub_type =
player_genus(GENPC_DRACONIAN)? ARM_ROBE : ARM_ANIMAL_SKIN;
}
_newgame_make_item(2, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_LEATHER_ARMOUR,
(player_genus(GENPC_DRACONIAN) ? ARM_ROBE
: ARM_ANIMAL_SKIN));
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_LEATHER_ARMOUR);
if (you.species == SP_SPRIGGAN || you.species == SP_OGRE_MAGE
|| player_genus(GENPC_DRACONIAN))
{
you.inv[1].sub_type = ARM_ROBE;
}
_newgame_make_item(1, EQ_BODY_ARMOUR, OBJ_ARMOUR, ARM_LEATHER_ARMOUR,
ARM_ROBE);