All pastes #490334 Raw Edit

Mine

public text v1 · immutable
·published 2007-05-15 23:29 UTC
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;
    }