public void ApplySoldierWorkExperience(ISoldier soldier, float points) { float powerArmorSkill = soldier.GetTotalSkillValue(_skillsByName["Power Armor"]); // if any gunnery, ranged, melee, or vehicle skill is below the PA skill, focus on improving PA float gunnerySkill = soldier.GetTotalSkillValue(soldier.GetBestSkillInCategory(SkillCategory.Gunnery).BaseSkill); float meleeSkill = soldier.GetTotalSkillValue(soldier.GetBestSkillInCategory(SkillCategory.Melee).BaseSkill); float rangedSkill = soldier.GetTotalSkillValue(soldier.GetBestSkillInCategory(SkillCategory.Ranged).BaseSkill); float vehicleSkill = soldier.GetTotalSkillValue(soldier.GetBestSkillInCategory(SkillCategory.Vehicle).BaseSkill); float[] floatArray = { gunnerySkill, meleeSkill, rangedSkill, vehicleSkill }; float totalMax = Mathf.Max(floatArray); if (totalMax > powerArmorSkill) { soldier.AddSkillPoints(_skillsByName["Power Armor"], points); } else { ApplyMarineWorkExperienceByType(soldier, points); } }