예제 #1
0
        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()));
            }
        }
예제 #2
0
 public virtual void CampaignTick(CampaignStatusInfo statusInfo)
 {
 }