rendered paste body /* Skills */
skillWindow = maxSkill - minSkill;
for (i = ABILITY_NUM_TYPES; i < SKILL_NUM_TYPES; i++) {
seed = frand();
training = (seed * skillWindow) + minSkill;
if (TRAINING_SCALAR > 0){
switch (i) {
case SKILL_CLOSE:
ability1 = chr->skills[ABILITY_POWER];
ability2 = chr->skills[ABILITY_SPEED];
break;
case SKILL_HEAVY:
ability1 = chr->skills[ABILITY_POWER];
ability2 = chr->skills[ABILITY_ACCURACY];
break;
case SKILL_ASSAULT:
ability1 = chr->skills[ABILITY_ACCURACY];
ability2 = chr->skills[ABILITY_SPEED];
break;
case SKILL_SNIPER:
ability1 = chr->skills[ABILITY_MIND];
ability2 = chr->skills[ABILITY_ACCURACY];
break;
case SKILL_EXPLOSIVE:
ability1 = chr->skills[ABILITY_MIND];
ability2 = chr->skills[ABILITY_SPEED];
break;
default:
ability1 = training;
ability2 = training;
}
//scale the abilitiy window to the skill window.
windowScalar = skillWindow / abilityWindow;
ability1 = ((ability1 - minAbility) * windowScalar) + minSkill;
ability2 = ((ability2 - minAbility) * windowScalar) + minSkill;
chr->skills[i] = ((TRAINING_SCALAR * training) + ability1 + ability2) / (TRAINING_SCALAR + 2);
}
else
chr->skills[i] = training;
}