private void ValidateHeroList(CampaignStatusInfo statusInfo) { if (statusInfo.CurrentCampaign?.Characters == null || statusInfo.CurrentCampaign.Characters.Count < 1) { return; } var characterObjects = new List <CharacterObject>(); foreach (var character in statusInfo.CurrentCampaign.Characters) { if (CharacterTraitInfo.ContainsKey(character)) { characterObjects.Add(character); } else { //LoadCharacterTraitData(character); //adding this hero to the List manually for now, otherwise, the addition to the list should be moved to loadCharacterTraitData and GenerateCharacterTraits if (!character.IsHero) { continue; } characterObjects.Add(character); if (character.IsPlayerCharacter) { CharacterTraitInfo.Add(character, new List <TraitSet>()); GivePlayerTraitSet(new BigCharacterTraitSet(null)); } else { CharacterTraitInfo.Add(character, new List <TraitSet>()); } } } foreach (var oldCharacterObject in CharacterTraitInfo.Keys .Where(oldCharacterObject => characterObjects .All(freshCharacterObject => oldCharacterObject != freshCharacterObject))) { //should save the character traits at this point since we will be removing them from the active Character List CharacterTraitInfo.Remove(oldCharacterObject); } foreach (var character in CharacterTraitInfo) { //InformationManager.DisplayMessage(new InformationMessage(character.Key?.ToString())); } }
public virtual void CampaignTick(CampaignStatusInfo statusInfo) { }