Exemplo n.º 1
0
        private void UpdateVillage(CocApi cocApi, VillageApiModel downloadedVillage)
        {
            if (downloadedVillage.AttackWins != AttackWins ||
                downloadedVillage.BestTrophies != BestTrophies ||
                downloadedVillage.BestVersusTrophies != BestVersusTrophies ||
                downloadedVillage.BuilderHallLevel != BuilderHallLevel ||
                //downloadedVillage.DefenseWins != DefenseWins ||
                //downloadedVillage.Donations != Donations ||
                //downloadedVillage.DonationsReceived != DonationsReceived ||
                //downloadedVillage.ExpLevel != ExpLevel ||
                //downloadedVillage.Name != Name ||
                //downloadedVillage.Role != Role ||
                downloadedVillage.TownHallLevel != TownHallLevel ||
                downloadedVillage.TownHallWeaponLevel != TownHallWeaponLevel ||
                //downloadedVillage.Trophies != Trophies ||
                //downloadedVillage.VersusBattleWinCount != VersusBattleWinCount ||
                //downloadedVillage.VersusBattleWins != VersusBattleWins ||
                //downloadedVillage.VersusTrophies != VersusTrophies ||
                downloadedVillage.WarStars != WarStars
                )
            {
                cocApi.VillageChangedEvent(this, downloadedVillage);

                //AttackWins = downloadedVillage.AttackWins;
                //BestTrophies = downloadedVillage.BestTrophies;
                //BestVersusTrophies = downloadedVillage.BestVersusTrophies;
                //BuilderHallLevel = downloadedVillage.BuilderHallLevel;
                ////Name = downloadedVillage.Name;
                ////Role = downloadedVillage.Role;
                //TownHallLevel = downloadedVillage.TownHallLevel;
                //TownHallWeaponLevel = downloadedVillage.TownHallWeaponLevel;
                //WarStars = downloadedVillage.WarStars;
            }
        }
Exemplo n.º 2
0
        private void UpdateVillageVersusTrophies(CocApi cocApi, VillageApiModel downloadedVillage)
        {
            if (downloadedVillage.VersusTrophies != VersusTrophies)
            {
                cocApi.VillageVersusTrophiesChangedEvent(this, downloadedVillage.VersusTrophies);

                //VersusTrophies = downloadedVillage.VersusTrophies;
            }
        }
Exemplo n.º 3
0
        private void UpdateVillageVersusBattleWins(CocApi cocApi, VillageApiModel downloadedVillage)
        {
            if (downloadedVillage.VersusBattleWins != VersusBattleWins)
            {
                cocApi.VillageVersusBattleWinsChangedEvent(this, downloadedVillage.VersusBattleWins);

                //VersusBattleWins = downloadedVillage.VersusBattleWins;
            }
        }
Exemplo n.º 4
0
        private void UpdateVillageVersusBattleWinCount(CocApi cocApi, VillageApiModel downloadedVillage)
        {
            if (downloadedVillage.VersusBattleWinCount != VersusBattleWinCount)
            {
                cocApi.VillageVersusBattleWinCountChangedEvent(this, downloadedVillage.VersusBattleWinCount);

                //VersusBattleWinCount = downloadedVillage.VersusBattleWinCount;
            }
        }
Exemplo n.º 5
0
        private void UpdateVillageExpLevel(CocApi cocApi, VillageApiModel downloadedVillage)
        {
            if (downloadedVillage.ExpLevel != ExpLevel)
            {
                cocApi.VillageExpLevelChangedEvent(this, downloadedVillage.ExpLevel);

                //ExpLevel = downloadedVillage.ExpLevel;
            }
        }
Exemplo n.º 6
0
        private void UpdateVillageDefenseWins(CocApi cocApi, VillageApiModel downloadedVillage)
        {
            if (downloadedVillage.DefenseWins != DefenseWins)
            {
                cocApi.VillageDefenseWinsChangedEvent(this, downloadedVillage.DefenseWins);

                //DefenseWins = downloadedVillage.DefenseWins;
            }
        }
Exemplo n.º 7
0
        private void UpdateLegendLeagueStatistics(CocApi cocApi, VillageApiModel downloadedVillage)
        {
            if (LegendStatistics == null && downloadedVillage.LegendStatistics == null)
            {
                return;
            }

            if (LegendStatistics == null && downloadedVillage.LegendStatistics != null)
            {
                cocApi.VillageReachedLegendsLeagueEvent(downloadedVillage);
            }

            //LegendStatistics = downloadedVillage.LegendStatistics;
        }
Exemplo n.º 8
0
        private void UpdateLabels(CocApi cocApi, VillageApiModel downloadedVillage)
        {
            if (Labels == null && downloadedVillage.Labels == null)
            {
                return;
            }

            if (Labels != null && Labels.Count() > 0 && (downloadedVillage.Labels == null || downloadedVillage.Labels.Count() == 0))
            {
                cocApi.VillageLabelsRemovedEvent(downloadedVillage, Labels);

                //Labels = downloadedVillage.Labels;
            }
            else if ((Labels == null || Labels.Count() == 0) && downloadedVillage.Labels != null && downloadedVillage.Labels.Count() > 0)
            {
                cocApi.VillageLabelsAddedEvent(downloadedVillage, downloadedVillage.Labels);

                //Labels = downloadedVillage.Labels;
            }
            else
            {
                List <VillageLabelApiModel> added = new List <VillageLabelApiModel>();

                List <VillageLabelApiModel> removed = new List <VillageLabelApiModel>();

                foreach (VillageLabelApiModel labelApiModel in Labels.EmptyIfNull())
                {
                    if (!downloadedVillage.Labels.Any(l => l.Id == labelApiModel.Id))
                    {
                        removed.Add(labelApiModel);
                    }
                }

                foreach (VillageLabelApiModel labelApiModel in downloadedVillage.Labels.EmptyIfNull())
                {
                    if (!Labels.Any(l => l.Id == labelApiModel.Id))
                    {
                        added.Add(labelApiModel);
                    }
                }

                cocApi.VillageLabelsRemovedEvent(downloadedVillage, removed);

                cocApi.VillageLabelsAddedEvent(downloadedVillage, added);

                //Labels = downloadedVillage.Labels;
            }
        }
Exemplo n.º 9
0
        internal void Update(CocApi cocApi, VillageApiModel downloadedVillage)
        {
            lock (_updateLock)
            {
                Logger ??= cocApi.Logger;

                if (ReferenceEquals(this, downloadedVillage))
                {
                    return;
                }

                Swallow(() => UpdateVillage(cocApi, downloadedVillage), nameof(UpdateVillage));

                Swallow(() => UpdateLabels(cocApi, downloadedVillage), nameof(UpdateLabels));

                Swallow(() => UpdateVillageDefenseWins(cocApi, downloadedVillage), nameof(UpdateVillageDefenseWins));

                //UpdateVillageDonations(cocApi, downloadedVillage);

                //UpdateVillageDonationsReceived(cocApi, downloadedVillage);

                Swallow(() => UpdateVillageExpLevel(cocApi, downloadedVillage), nameof(UpdateVillageExpLevel));

                Swallow(() => UpdateVillageTrophies(cocApi, downloadedVillage), nameof(UpdateVillageTrophies));

                Swallow(() => UpdateVillageVersusBattleWinCount(cocApi, downloadedVillage), nameof(UpdateVillageVersusBattleWinCount));

                Swallow(() => UpdateVillageVersusBattleWins(cocApi, downloadedVillage), nameof(UpdateVillageVersusBattleWins));

                Swallow(() => UpdateVillageVersusTrophies(cocApi, downloadedVillage), nameof(UpdateVillageVersusTrophies));

                //UpdateVillageLeague(cocApi, downloadedVillage);

                Swallow(() => UpdateVillageAchievements(cocApi, downloadedVillage), nameof(UpdateVillageAchievements));

                Swallow(() => UpdateVillageTroops(cocApi, downloadedVillage), nameof(UpdateVillageTroops));

                Swallow(() => UpdateVillageHeroes(cocApi, downloadedVillage), nameof(UpdateVillageHeroes));

                Swallow(() => UpdateVillageSpells(cocApi, downloadedVillage), nameof(UpdateVillageSpells));

                Swallow(() => UpdateLegendLeagueStatistics(cocApi, downloadedVillage), nameof(UpdateLegendLeagueStatistics));

                //UpdateAtUtc = downloadedVillage.UpdateAtUtc;

                //Expires = downloadedVillage.Expires;
            }
        }
Exemplo n.º 10
0
        private void UpdateVillageTroops(CocApi cocApi, VillageApiModel downloadedVillage)
        {
            List <TroopApiModel> newTroops = new List <TroopApiModel>();

            foreach (TroopApiModel troop in downloadedVillage.Troops.EmptyIfNull())
            {
                TroopApiModel?oldTroop = Troops.FirstOrDefault(t => t.Name == troop.Name);

                if (oldTroop == null || oldTroop.Level < troop.Level)
                {
                    newTroops.Add(troop);
                }
            }

            if (newTroops.Count() > 0)
            {
                cocApi.VillageTroopsChangedEvent(this, newTroops);

                //Troops = downloadedVillage.Troops;
            }
        }
Exemplo n.º 11
0
        private void UpdateVillageSpells(CocApi cocApi, VillageApiModel downloadedVillage)
        {
            List <VillageSpellApiModel> newSpells = new List <VillageSpellApiModel>();

            foreach (VillageSpellApiModel spell in downloadedVillage.Spells.EmptyIfNull())
            {
                VillageSpellApiModel?oldSpell = Spells.FirstOrDefault(s => s.Name == spell.Name);

                if (oldSpell == null || oldSpell.Level < spell.Level)
                {
                    newSpells.Add(spell);
                }
            }

            if (newSpells.Count() > 0)
            {
                cocApi.VillageSpellsChangedEvent(this, newSpells);

                //Spells = downloadedVillage.Spells;
            }
        }
Exemplo n.º 12
0
        private void UpdateVillageAchievements(CocApi cocApi, VillageApiModel downloadedVillage)
        {
            List <AchievementApiModel> newAchievements = new List <AchievementApiModel>();

            foreach (AchievementApiModel achievement in downloadedVillage.Achievements.EmptyIfNull())
            {
                if (achievement.Value > achievement.Target)
                {
                    AchievementApiModel oldAchievement = Achievements.FirstOrDefault(a => a.Name == achievement.Name);

                    if (oldAchievement == null || oldAchievement.Value < oldAchievement.Target)
                    {
                        newAchievements.Add(achievement);
                    }
                }
            }

            if (newAchievements.Count() > 0)
            {
                cocApi.VillageAchievementsChangedEvent(this, newAchievements);

                //Achievements = downloadedVillage.Achievements;
            }
        }