private void TrainMelee(ISoldier soldier, float points) { float pointShare = points / 4; soldier.AddSkillPoints(_skillsByName["Sword"], pointShare); soldier.AddSkillPoints(_skillsByName["Shield"], pointShare); soldier.AddSkillPoints(_skillsByName["Axe"], pointShare); soldier.AddSkillPoints(_skillsByName["Fist"], pointShare); }
private void TrainVehicles(ISoldier soldier, float points) { float pointShare = points / 4; soldier.AddSkillPoints(_skillsByName["Drive (Bike)"], pointShare); soldier.AddSkillPoints(_skillsByName["Pilot (Land Speeder)"], pointShare); soldier.AddSkillPoints(_skillsByName["Drive (Rhino)"], pointShare); soldier.AddSkillPoints(_skillsByName["Gunnery (Bolter)"], pointShare); }
private void TrainRanged(ISoldier soldier, float points) { float pointShare = points / 5; soldier.AddSkillPoints(_skillsByName["Gun (Bolter)"], pointShare); soldier.AddSkillPoints(_skillsByName["Gunnery (Laser)"], pointShare); soldier.AddSkillPoints(_skillsByName["Gun (Flamer)"], pointShare); soldier.AddSkillPoints(_skillsByName["Gun (Sniper)"], pointShare); soldier.AddSkillPoints(_skillsByName["Gun (Shotgun)"], pointShare); }
public void ApplyVeteranWorkExperience(ISoldier soldier, float points) { float pointShare = points / 7.0f; soldier.AddSkillPoints(_skillsByName["Marine"], pointShare); soldier.AddSkillPoints(_skillsByName["Power Armor"], pointShare); soldier.AddSkillPoints(_skillsByName["Armory (Small Arms)"], pointShare); soldier.AddSkillPoints(_skillsByName["Drive (Bike)"], pointShare); soldier.AddSkillPoints(_skillsByName["Jump Pack"], pointShare); if (soldier.Template.IsSquadLeader) { soldier.AddSkillPoints(_skillsByName["Tactics"], pointShare); soldier.AddSkillPoints(_skillsByName["Leadership"], pointShare); } else { soldier.AddSkillPoints(_skillsByName["Gun (Bolter)"], pointShare); soldier.AddSkillPoints(_skillsByName["Sword"], pointShare); } }
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); } }
public void ApplyScoutWorkExperience(ISoldier soldier, float points) { // scouts in reserve get training, not work experience float pointShare = points / 9.0f; soldier.AddSkillPoints(_skillsByName["Marine"], pointShare); soldier.AddSkillPoints(_skillsByName["Power Armor"], pointShare); soldier.AddSkillPoints(_skillsByName["Armory (Small Arms)"], pointShare); soldier.AddSkillPoints(_skillsByName["Gun (Bolter)"], pointShare); soldier.AddSkillPoints(_skillsByName["Gunnery (Bolter)"], pointShare); soldier.AddSkillPoints(_skillsByName["Stealth"], pointShare); if (soldier.Template.IsSquadLeader) { soldier.AddSkillPoints(_skillsByName["Tactics"], pointShare); soldier.AddSkillPoints(_skillsByName["Leadership"], pointShare); soldier.AddSkillPoints(_skillsByName["Teaching"], pointShare); } else { soldier.AddSkillPoints(_skillsByName["Gun (Sniper)"], pointShare); soldier.AddSkillPoints(_skillsByName["Gun (Shotgun)"], pointShare); soldier.AddSkillPoints(_skillsByName["Gunnery (Bolter)"], pointShare); } }
public void ApplyDevastatorWorkExperience(ISoldier soldier, float points) { float pointShare = points / 9.0f; soldier.AddSkillPoints(_skillsByName["Marine"], pointShare); soldier.AddSkillPoints(_skillsByName["Power Armor"], pointShare); soldier.AddSkillPoints(_skillsByName["Armory (Small Arms)"], pointShare); soldier.AddSkillPoints(_skillsByName["Gun (Bolter)"], pointShare); soldier.AddSkillPoints(_skillsByName["Gunnery (Bolter)"], pointShare); if (soldier.Template.IsSquadLeader) { soldier.AddSkillPoints(_skillsByName["Tactics"], pointShare * 2); soldier.AddSkillPoints(_skillsByName["Leadership"], pointShare * 2); } else { soldier.AddSkillPoints(_skillsByName["Gun (Plasma)"], pointShare); soldier.AddSkillPoints(_skillsByName["Gun (Flamer)"], pointShare); soldier.AddSkillPoints(_skillsByName["Gunnery (Rocket)"], pointShare); soldier.AddSkillPoints(_skillsByName["Gunnery (Laser)"], pointShare); } }