Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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;
            }
        }
Exemple #3
0
        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");
            }
        }