public void SquadMemberView_OnSoldierTransferred(Tuple <int, SoldierTemplate, string> newPosition) { Squad currentSquad = _selectedSoldier.AssignedSquad; // move soldier to his new role _selectedSoldier.AssignedSquad = null; currentSquad.RemoveSquadMember(_selectedSoldier); if (_selectedSoldier.Template.IsSquadLeader && (currentSquad.SquadTemplate.SquadType & SquadTypes.HQ) == 0) { // if soldier is squad leader and its not an HQ Squad, change name currentSquad.Name = currentSquad.SquadTemplate.Name; } Squad newSquad = GameSettings.Chapter.SquadMap[newPosition.Item1]; _selectedSoldier.AssignedSquad = newSquad; newSquad.AddSquadMember(_selectedSoldier); UpdateSquadLocations(currentSquad, newSquad); if (_selectedSoldier.Template != newPosition.Item2) { string entry = $"{GameSettings.Date}: promoted to {newPosition.Item2.Name}"; _selectedSoldier.AddEntryToHistory(entry); _selectedSoldier.Template = newPosition.Item2; } if (_selectedSoldier.Template.IsSquadLeader && (newSquad.SquadTemplate.SquadType & SquadTypes.HQ) == 0) { // if soldier is squad leader and its not an HQ Squad, change name newSquad.Name = _selectedSoldier.Name.Split(' ')[1] + " Squad"; } if (currentSquad != newSquad) { string entry = $"{GameSettings.Date} transferred to {newSquad.Name}, {newSquad.ParentUnit.Name}"; _selectedSoldier.AddEntryToHistory(entry); } // refresh the unit layout BuildUnitTree(UnitTreeView, GameSettings.Chapter.OrderOfBattle, GameSettings.Chapter.PlayerSoldierMap, GameSettings.Chapter.SquadMap); if (newSquad.ParentUnit.HQSquad != null && newSquad.Id == newSquad.ParentUnit.HQSquad.Id) { UnitTreeView.UnitButton_OnClick(newSquad.Id); } else { UnitTreeView.ExpandUnit(newSquad.ParentUnit.Id); UnitTreeView.SquadButton_OnClick(newSquad.Id); } }
private void ApplyBionics(HitLocation hitLocation, PlayerSoldier soldier) { // NOTE: We don't heal the wound here. // The wound will heal automatically in the next turn. // This represents the marine learning how to use the new body part. hitLocation.IsCybernetic = true; soldier.AddEntryToHistory($"Received bioic {hitLocation.Template.Name} replacement"); if (hitLocation.Template.Name.Contains("Arm")) { hitLocation.Armor = 2; string otherName = hitLocation.Template.Name.Replace("Arm", "Hand"); var otherHitLocation = soldier.Body.HitLocations .First(hl => hl.Template.Name == otherName); otherHitLocation.Armor = 2; otherHitLocation.IsCybernetic = true; } else if (hitLocation.Template.Name.Contains("Leg")) { hitLocation.Armor = 3; string otherName = hitLocation.Template.Name.Replace("Leg", "Foot"); var otherHitLocation = soldier.Body.HitLocations .First(hl => hl.Template.Name == otherName); otherHitLocation.Armor = 3; otherHitLocation.IsCybernetic = true; } }
public void EvaluateSoldier(PlayerSoldier soldier, Date trainingFinishedYear) { UpdateRatings(soldier); //if (soldier.MeleeRating > 115) soldier.AddEntryToHistory(trainingFinishedYear.ToString() + ": Awarded Adamantium Sword of the Emperor badge during training"); if (soldier.MeleeRating > 100) { soldier.AddEntryToHistory(trainingFinishedYear.ToString() + ": Awarded Gold Sword of the Emperor badge during training"); } else if (soldier.MeleeRating > 95) { soldier.AddEntryToHistory(trainingFinishedYear.ToString() + ": Awarded Silver Sword of the Emperor badge during training"); } else if (soldier.MeleeRating > 86) { soldier.AddEntryToHistory(trainingFinishedYear.ToString() + ": Awarded Bronze Sword of the Emperor badge during training"); } if (soldier.RangedRating > 110) { soldier.AddEntryToHistory(trainingFinishedYear.ToString() + ": Awarded Gold Marksman badge during training with " + soldier.GetBestSkillInCategory(SkillCategory.Ranged).BaseSkill.Name); } else if (soldier.RangedRating > 105) { soldier.AddEntryToHistory(trainingFinishedYear.ToString() + ": Awarded Silver Marksman badge during training with " + soldier.GetBestSkillInCategory(SkillCategory.Ranged).BaseSkill.Name); } else if (soldier.RangedRating > 98) { soldier.AddEntryToHistory(trainingFinishedYear.ToString() + ": Awarded Bronze Marksman badge during training with " + soldier.GetBestSkillInCategory(SkillCategory.Ranged).BaseSkill.Name); } if (soldier.LeadershipRating > 100) { soldier.AddEntryToHistory(trainingFinishedYear.ToString() + ": Awarded Gold Voice of the Emperor badge during training"); } else if (soldier.LeadershipRating > 70) { soldier.AddEntryToHistory(trainingFinishedYear.ToString() + ": Awarded Silver Voice of the Emperor badge during training"); } else if (soldier.LeadershipRating > 50) { soldier.AddEntryToHistory(trainingFinishedYear.ToString() + ": Awarded Bronze Voice of the Emperor badge during training"); } if (soldier.AncientRating > 125) { soldier.AddEntryToHistory(trainingFinishedYear.ToString() + ": Awarded Gold Banner of the Emperor badge during training"); } else if (soldier.AncientRating > 110) { soldier.AddEntryToHistory(trainingFinishedYear.ToString() + ": Awarded Silver Banner of the Emperor badge during training"); } else if (soldier.AncientRating > 95) { soldier.AddEntryToHistory(trainingFinishedYear.ToString() + ": Awarded Bronze Banner of the Emperor badge during training"); } if (soldier.MedicalRating > 75) { soldier.AddEntryToHistory(trainingFinishedYear.ToString() + ": Flagged for potential training as Apothecary"); } if (soldier.TechRating > 50) { soldier.AddEntryToHistory(trainingFinishedYear.ToString() + ": Flagged for potential training as Techmarine"); } if (soldier.PietyRating > 90) { soldier.AddEntryToHistory(trainingFinishedYear.ToString() + ": Awarded Devout badge and declared a Novice"); } }