コード例 #1
0
 public void unregisterHeroStatsTarget(HeroStats heroStats)
 {
     if (this.m_heroStats.Contains(heroStats))
     {
         this.m_heroStats.Remove(heroStats);
     }
 }
コード例 #2
0
 private void onDungeonBoostActivated(DungeonBoost dungeonBoost, SkillType fromSkill)
 {
     if (ConfigDungeonBoosts.IsBox(dungeonBoost.Properties.Type))
     {
         for (int i = 0; i < this.m_heroStats.Count; i++)
         {
             HeroStats stats = this.m_heroStats[i];
             if (fromSkill != SkillType.NONE)
             {
                 string key = fromSkill.ToString();
                 if (!stats.SkillDungeonBoostBoxDestructionCounts.ContainsKey(key))
                 {
                     stats.SkillDungeonBoostBoxDestructionCounts.Add(key, 1.0);
                 }
                 else
                 {
                     Dictionary <string, double> dictionary;
                     string str2;
                     double num2 = dictionary[str2];
                     (dictionary = stats.SkillDungeonBoostBoxDestructionCounts)[str2 = key] = num2 + 1.0;
                 }
             }
             stats.DungeonBoostBoxesDestroyed++;
         }
     }
 }
コード例 #3
0
 private void onResourcesGained(Player player, ResourceType resourceType, double amount, bool visualizationManuallyControlled, string analyticsSourceId, Vector3?worldPt)
 {
     if (resourceType == ResourceType.Coin)
     {
         if (amount > 0.0)
         {
             for (int i = 0; i < this.m_heroStats.Count; i++)
             {
                 HeroStats local1 = this.m_heroStats[i];
                 local1.CoinsEarned += amount;
             }
             if (App.Binder.ConfigMeta.COMBAT_STATS_ENABLED && worldPt.HasValue)
             {
                 GameLogic.Binder.HeroStatRecordingSystem.RealtimeCombatStats.addDatapoint(amount, GameLogic.RealtimeCombatStats.DatapointType.Coins);
             }
         }
     }
     else if ((resourceType == ResourceType.Token) && (amount > 0.0))
     {
         for (int j = 0; j < this.m_heroStats.Count; j++)
         {
             HeroStats local2 = this.m_heroStats[j];
             local2.TokensEarned += amount;
         }
     }
 }
コード例 #4
0
 private void onRewardConsumed(Player player, Reward drop)
 {
     if (drop.isWrappedInsideChest())
     {
         for (int i = 0; i < this.m_heroStats.Count; i++)
         {
             HeroStats stats = this.m_heroStats[i];
             if (ConfigMeta.IsMysteryChest(drop.ChestType))
             {
                 stats.SilverChestsOpened++;
             }
             else if (drop.ChestType == App.Binder.ConfigMeta.MISSION_BIG_PRIZE_CHEST_TYPE)
             {
                 stats.MissionBigPrizesOpened++;
             }
             else
             {
                 stats.GoldChestsOpened++;
             }
             string item = drop.ChestType.ToString();
             if (!stats.EncounteredChestTypes.Contains(item))
             {
                 stats.EncounteredChestTypes.Add(item);
             }
         }
     }
 }
コード例 #5
0
 public TournamentInstance()
 {
     this.OutgoingLogQueue            = new List <TournamentLogEvent>();
     this.HeroStats                   = new GameLogic.HeroStats();
     this.Resources                   = new Dictionary <string, double>();
     this.Upgrades                    = new TournamentUpgrades();
     this.LastAdventurePanelSubTabIdx = -1;
 }
コード例 #6
0
 private void onMissionStarted(Player player, MissionInstance mission)
 {
     for (int i = 0; i < this.m_heroStats.Count; i++)
     {
         HeroStats local1 = this.m_heroStats[i];
         local1.MissionsStarted++;
     }
 }
コード例 #7
0
 private void onPlayerAugmentationGained(Player player, string id)
 {
     for (int i = 0; i < this.m_heroStats.Count; i++)
     {
         HeroStats local1 = this.m_heroStats[i];
         local1.KnightUpgrades++;
     }
 }
コード例 #8
0
 private void onBossTrainStarted(Player player, int numCharges)
 {
     for (int i = 0; i < this.m_heroStats.Count; i++)
     {
         HeroStats local1 = this.m_heroStats[i];
         local1.UsedBossTickets++;
     }
 }
コード例 #9
0
 private void onItemRankUpped(CharacterInstance character, ItemInstance itemInstance, int rankUpCount, bool free)
 {
     for (int i = 0; i < this.m_heroStats.Count; i++)
     {
         HeroStats local1 = this.m_heroStats[i];
         local1.ItemUpgrades++;
     }
 }
コード例 #10
0
 private void onItemUnlocked(CharacterInstance character, ItemInstance itemInstance)
 {
     for (int i = 0; i < this.m_heroStats.Count; i++)
     {
         HeroStats local1 = this.m_heroStats[i];
         local1.ItemsUnlocked++;
     }
 }
コード例 #11
0
 private void onPassiveProgress(Player player, int numPassiveMinionKills, int numPassiveFloorCompletions, int numPassiveBossKills)
 {
     for (int i = 0; i < this.m_heroStats.Count; i++)
     {
         HeroStats stats = this.m_heroStats[i];
         stats.MonstersKilled  += numPassiveMinionKills;
         stats.FloorsCompleted += numPassiveFloorCompletions;
         stats.BossesBeat      += numPassiveBossKills;
     }
 }
コード例 #12
0
 public void registerHeroStatsTarget(HeroStats heroStats)
 {
     if (this.m_heroStats.Contains(heroStats))
     {
         Debug.LogWarning("Trying to re-register HeroStats: " + heroStats);
     }
     else
     {
         this.m_heroStats.Add(heroStats);
     }
 }
コード例 #13
0
 private void onRoomCompleted(Room activeRoom)
 {
     if ((activeRoom.EndCondition == RoomEndCondition.NORMAL_COMPLETION) || (activeRoom.EndCondition == RoomEndCondition.FRENZY_COMPLETION))
     {
         for (int i = 0; i < this.m_heroStats.Count; i++)
         {
             HeroStats local1 = this.m_heroStats[i];
             local1.FloorsCompleted++;
         }
     }
 }
コード例 #14
0
 public TournamentInstance(TournamentInfo tournamentInfo, GameLogic.Player player)
 {
     this.OutgoingLogQueue            = new List <TournamentLogEvent>();
     this.HeroStats                   = new GameLogic.HeroStats();
     this.Resources                   = new Dictionary <string, double>();
     this.Upgrades                    = new TournamentUpgrades();
     this.LastAdventurePanelSubTabIdx = -1;
     this.TournamentId                = tournamentInfo.Id;
     this.Player       = player;
     this.CurrentState = State.PENDING_JOIN_CONFIRMATION;
 }
コード例 #15
0
 private void onBossTrainEnded(Player player, int numCharges, int numBossesKilled)
 {
     if (numCharges == numBossesKilled)
     {
         for (int i = 0; i < this.m_heroStats.Count; i++)
         {
             HeroStats local1 = this.m_heroStats[i];
             local1.CompletedBossTickets++;
         }
     }
 }
コード例 #16
0
 protected void Update()
 {
     this.m_activePlaytimeTimer.tick(Time.unscaledDeltaTime);
     if (this.m_activePlaytimeTimer.Idle)
     {
         for (int i = 0; i < this.m_heroStats.Count; i++)
         {
             HeroStats local1 = this.m_heroStats[i];
             local1.SecondsPlayedActive += 1L;
         }
         this.m_activePlaytimeTimer.reset();
     }
 }
コード例 #17
0
        private void onCharacterSpawned(CharacterInstance c)
        {
            ActiveDungeon activeDungeon = GameLogic.Binder.GameState.ActiveDungeon;

            if (c.IsBoss && (activeDungeon.Floor == 2))
            {
                for (int i = 0; i < this.m_heroStats.Count; i++)
                {
                    HeroStats local1 = this.m_heroStats[i];
                    local1.FirstBossSummonCount++;
                }
            }
        }
コード例 #18
0
ファイル: HeroStats.cs プロジェクト: hackerlank/UnityGameSrc
 public HeroStats(HeroStats another)
 {
     this.EncounteredChestTypes     = new List <string>();
     this.EncounteredItemsIds       = new List <string>();
     this.EncounteredCharacterTypes = new List <GameLogic.CharacterType>();
     this.SkillActivationCounts     = new Dictionary <string, int>();
     this.SkillDamageCounts         = new Dictionary <string, double>();
     this.CharacterTypeKillCounts   = new Dictionary <string, int>();
     this.SkillMinionKills          = new Dictionary <string, int>();
     this.Multikills          = new Dictionary <int, int>();
     this.ItemsGainedByRarity = new Dictionary <int, int>();
     this.SkillDungeonBoostBoxDestructionCounts = new Dictionary <string, double>();
     this.copyFrom(another);
 }
コード例 #19
0
 private void onItemGained(CharacterInstance character, ItemInstance itemInstance, string trackingId)
 {
     for (int i = 0; i < this.m_heroStats.Count; i++)
     {
         Dictionary <int, int> dictionary;
         int       num2;
         HeroStats stats = this.m_heroStats[i];
         if (!stats.ItemsGainedByRarity.ContainsKey(itemInstance.Rarity))
         {
             stats.ItemsGainedByRarity.Add(itemInstance.Rarity, 0);
         }
         num2 = dictionary[num2];
         (dictionary = stats.ItemsGainedByRarity)[num2 = itemInstance.Rarity] = num2 + 1;
     }
 }
コード例 #20
0
ファイル: HeroStats.cs プロジェクト: hackerlank/UnityGameSrc
 public void copyFrom(HeroStats another)
 {
     this.FloorsCompleted                       = another.FloorsCompleted;
     this.CreationTimestamp                     = another.CreationTimestamp;
     this.SecondsPlayedActive                   = another.SecondsPlayedActive;
     this.MonstersKilled                        = another.MonstersKilled;
     this.MultikilledMonsters                   = another.MultikilledMonsters;
     this.CoinsEarned                           = another.CoinsEarned;
     this.TokensEarned                          = another.TokensEarned;
     this.ItemsUnlocked                         = another.ItemsUnlocked;
     this.ItemUpgrades                          = another.ItemUpgrades;
     this.KnightUpgrades                        = another.KnightUpgrades;
     this.GoldChestsOpened                      = another.GoldChestsOpened;
     this.SilverChestsOpened                    = another.SilverChestsOpened;
     this.HeroesRetired                         = another.HeroesRetired;
     this.HighestFloor                          = another.HighestFloor;
     this.RankUps                               = another.RankUps;
     this.EncounteredChestTypes                 = new List <string>(another.EncounteredChestTypes);
     this.EncounteredItemsIds                   = new List <string>(another.EncounteredItemsIds);
     this.EncounteredCharacterTypes             = new List <GameLogic.CharacterType>(another.EncounteredCharacterTypes);
     this.HighestTokenMultiplier                = another.HighestTokenMultiplier;
     this.FirstBossSummonCount                  = another.FirstBossSummonCount;
     this.HighestTokenGainWithRetirement        = another.HighestTokenGainWithRetirement;
     this.HighestMultikill                      = another.HighestMultikill;
     this.HighestCriticalHit                    = another.HighestCriticalHit;
     this.SkillActivationCounts                 = new Dictionary <string, int>(another.SkillActivationCounts);
     this.SkillDamageCounts                     = new Dictionary <string, double>(another.SkillDamageCounts);
     this.CharacterTypeKillCounts               = new Dictionary <string, int>(another.CharacterTypeKillCounts);
     this.DamageDealt                           = another.DamageDealt;
     this.BossesBeat                            = another.BossesBeat;
     this.BossesBeatDuringFrenzy                = another.BossesBeatDuringFrenzy;
     this.MinionsKilledDuringFrenzy             = another.MinionsKilledDuringFrenzy;
     this.SkillMinionKills                      = new Dictionary <string, int>(another.SkillMinionKills);
     this.EnemiesFrozen                         = another.EnemiesFrozen;
     this.EnemiesPoisoned                       = another.EnemiesPoisoned;
     this.EnemiesStunned                        = another.EnemiesStunned;
     this.Multikills                            = new Dictionary <int, int>(another.Multikills);
     this.UsedBossTickets                       = another.UsedBossTickets;
     this.CompletedBossTickets                  = another.CompletedBossTickets;
     this.MissionsStarted                       = another.MissionsStarted;
     this.MissionBigPrizesOpened                = another.MissionBigPrizesOpened;
     this.ItemsGainedByRarity                   = new Dictionary <int, int>(another.ItemsGainedByRarity);
     this.EliteBossesBeat                       = another.EliteBossesBeat;
     this.FrenzyActivations                     = another.FrenzyActivations;
     this.DungeonBoostBoxesDestroyed            = another.DungeonBoostBoxesDestroyed;
     this.SkillDungeonBoostBoxDestructionCounts = new Dictionary <string, double>(another.SkillDungeonBoostBoxDestructionCounts);
 }
コード例 #21
0
 private void onCharacterDealtDamage(CharacterInstance sourceCharacter, CharacterInstance targetCharacter, Vector3 worldPos, double amount, bool critted, bool damageReduced, DamageType damageType, SkillType fromSkill)
 {
     if ((sourceCharacter != null) && sourceCharacter.IsPlayerCharacter)
     {
         for (int i = 0; i < this.m_heroStats.Count; i++)
         {
             HeroStats stats = this.m_heroStats[i];
             stats.DamageDealt += amount;
             if (fromSkill != SkillType.NONE)
             {
                 string key = fromSkill.ToString();
                 if (!stats.SkillDamageCounts.ContainsKey(key))
                 {
                     stats.SkillDamageCounts.Add(key, amount);
                 }
                 else
                 {
                     Dictionary <string, double> dictionary;
                     string str2;
                     double num2 = dictionary[str2];
                     (dictionary = stats.SkillDamageCounts)[str2 = key] = num2 + amount;
                 }
             }
             if (critted)
             {
                 stats.HighestCriticalHit = Math.Max(stats.HighestCriticalHit, amount);
             }
         }
         if (App.Binder.ConfigMeta.COMBAT_STATS_ENABLED)
         {
             GameLogic.RealtimeCombatStats.DatapointType damageSupport;
             if (sourceCharacter.IsSupport)
             {
                 damageSupport = GameLogic.RealtimeCombatStats.DatapointType.DamageSupport;
             }
             else if (fromSkill != SkillType.NONE)
             {
                 damageSupport = GameLogic.RealtimeCombatStats.DatapointType.DamageSkill;
             }
             else
             {
                 damageSupport = GameLogic.RealtimeCombatStats.DatapointType.DamageWeapon;
             }
             this.m_realtimeCombatStats.addDatapoint(amount, damageSupport);
         }
     }
 }
コード例 #22
0
        private void onGameplayStarted(ActiveDungeon activeDungeon)
        {
            Player player = GameLogic.Binder.GameState.Player;

            this.unregisterAllHeroStatsTargets();
            this.registerHeroStatsTarget(player.ActiveCharacter.HeroStats);
            if (activeDungeon.ActiveTournament != null)
            {
                this.registerHeroStatsTarget(activeDungeon.ActiveTournament.HeroStats);
            }
            for (int i = 0; i < this.m_heroStats.Count; i++)
            {
                HeroStats stats = this.m_heroStats[i];
                stats.HighestFloor           = Mathf.Max(stats.HighestFloor, activeDungeon.Floor);
                stats.HighestTokenMultiplier = Math.Max(stats.HighestTokenMultiplier, player.getActiveTokenRewardFloorMultiplier());
            }
        }
コード例 #23
0
 public void onMultikillBonusGranted(Player player, int killCount, double coinAmount)
 {
     for (int i = 0; i < this.m_heroStats.Count; i++)
     {
         HeroStats stats = this.m_heroStats[i];
         stats.MultikilledMonsters += killCount;
         stats.HighestMultikill     = Mathf.Max(stats.HighestMultikill, killCount);
         if (!stats.Multikills.ContainsKey(killCount))
         {
             stats.Multikills.Add(killCount, 1);
         }
         else
         {
             Dictionary <int, int> dictionary;
             int num2;
             num2 = dictionary[num2];
             (dictionary = stats.Multikills)[num2 = killCount] = num2 + 1;
         }
     }
 }
コード例 #24
0
 private void onBuffStarted(CharacterInstance character, Buff buff)
 {
     if (!character.IsPlayerCharacter)
     {
         EffectType effectTypeForBuff = ConfigUi.GetEffectTypeForBuff(buff);
         for (int i = 0; i < this.m_heroStats.Count; i++)
         {
             HeroStats stats = this.m_heroStats[i];
             if (effectTypeForBuff == ConfigPerks.GlobalFrostEffect.EffectType)
             {
                 stats.EnemiesFrozen++;
             }
             else if (effectTypeForBuff == ConfigPerks.GlobalPoisonEffect.EffectType)
             {
                 stats.EnemiesPoisoned++;
             }
             if (buff.Stuns)
             {
                 stats.EnemiesStunned++;
             }
         }
     }
 }
コード例 #25
0
ファイル: HeroStats.cs プロジェクト: hackerlank/UnityGameSrc
        public void add(HeroStats another)
        {
            string str;
            int    num4;
            double num5;

            this.FloorsCompleted     += another.FloorsCompleted;
            this.SecondsPlayedActive += another.SecondsPlayedActive;
            this.MonstersKilled      += another.MonstersKilled;
            this.MultikilledMonsters += another.MultikilledMonsters;
            this.CoinsEarned         += another.CoinsEarned;
            this.TokensEarned        += another.TokensEarned;
            this.ItemsUnlocked       += another.ItemsUnlocked;
            this.ItemUpgrades        += another.ItemUpgrades;
            this.KnightUpgrades      += another.KnightUpgrades;
            this.GoldChestsOpened    += another.GoldChestsOpened;
            this.SilverChestsOpened  += another.SilverChestsOpened;
            this.HeroesRetired       += another.HeroesRetired;
            this.HighestFloor         = Mathf.Max(this.HighestFloor, another.HighestFloor);
            this.RankUps             += another.RankUps;
            for (int i = 0; i < another.EncounteredChestTypes.Count; i++)
            {
                if (!this.EncounteredChestTypes.Contains(another.EncounteredChestTypes[i]))
                {
                    this.EncounteredChestTypes.Add(another.EncounteredChestTypes[i]);
                }
            }
            for (int j = 0; j < another.EncounteredItemsIds.Count; j++)
            {
                if (!this.EncounteredItemsIds.Contains(another.EncounteredItemsIds[j]))
                {
                    this.EncounteredItemsIds.Add(another.EncounteredItemsIds[j]);
                }
            }
            for (int k = 0; k < another.EncounteredCharacterTypes.Count; k++)
            {
                if (!this.EncounteredCharacterTypes.Contains(another.EncounteredCharacterTypes[k]))
                {
                    this.EncounteredCharacterTypes.Add(another.EncounteredCharacterTypes[k]);
                }
            }
            this.HighestTokenMultiplier         = Math.Max(this.HighestTokenMultiplier, another.HighestTokenMultiplier);
            this.FirstBossSummonCount           = Mathf.Max(this.FirstBossSummonCount, another.FirstBossSummonCount);
            this.HighestTokenGainWithRetirement = Math.Max(this.HighestTokenGainWithRetirement, another.HighestTokenGainWithRetirement);
            this.HighestMultikill   = Math.Max(this.HighestMultikill, another.HighestMultikill);
            this.HighestCriticalHit = Math.Max(this.HighestCriticalHit, another.HighestCriticalHit);
            foreach (KeyValuePair <string, int> pair in another.SkillActivationCounts)
            {
                if (this.SkillActivationCounts.ContainsKey(pair.Key))
                {
                    Dictionary <string, int> dictionary;
                    num4 = dictionary[str];
                    (dictionary = this.SkillActivationCounts)[str = pair.Key] = num4 + pair.Value;
                }
                else
                {
                    this.SkillActivationCounts.Add(pair.Key, pair.Value);
                }
            }
            foreach (KeyValuePair <string, double> pair2 in another.SkillDamageCounts)
            {
                if (this.SkillDamageCounts.ContainsKey(pair2.Key))
                {
                    Dictionary <string, double> dictionary2;
                    num5 = dictionary2[str];
                    (dictionary2 = this.SkillDamageCounts)[str = pair2.Key] = num5 + pair2.Value;
                }
                else
                {
                    this.SkillDamageCounts.Add(pair2.Key, pair2.Value);
                }
            }
            foreach (KeyValuePair <string, int> pair3 in another.CharacterTypeKillCounts)
            {
                if (this.CharacterTypeKillCounts.ContainsKey(pair3.Key))
                {
                    Dictionary <string, int> dictionary3;
                    num4 = dictionary3[str];
                    (dictionary3 = this.CharacterTypeKillCounts)[str = pair3.Key] = num4 + pair3.Value;
                }
                else
                {
                    this.CharacterTypeKillCounts.Add(pair3.Key, pair3.Value);
                }
            }
            this.DamageDealt               += another.DamageDealt;
            this.BossesBeat                += another.BossesBeat;
            this.BossesBeatDuringFrenzy    += another.BossesBeatDuringFrenzy;
            this.MinionsKilledDuringFrenzy += another.MinionsKilledDuringFrenzy;
            foreach (KeyValuePair <string, int> pair4 in another.SkillMinionKills)
            {
                if (this.SkillMinionKills.ContainsKey(pair4.Key))
                {
                    Dictionary <string, int> dictionary4;
                    num4 = dictionary4[str];
                    (dictionary4 = this.SkillMinionKills)[str = pair4.Key] = num4 + pair4.Value;
                }
                else
                {
                    this.SkillMinionKills.Add(pair4.Key, pair4.Value);
                }
            }
            this.EnemiesFrozen   += another.EnemiesFrozen;
            this.EnemiesPoisoned += another.EnemiesPoisoned;
            this.EnemiesStunned  += another.EnemiesStunned;
            foreach (KeyValuePair <int, int> pair5 in another.Multikills)
            {
                if (this.Multikills.ContainsKey(pair5.Key))
                {
                    Dictionary <int, int> dictionary5;
                    num4 = dictionary5[num4];
                    (dictionary5 = this.Multikills)[num4 = pair5.Key] = num4 + pair5.Value;
                }
                else
                {
                    this.Multikills.Add(pair5.Key, pair5.Value);
                }
            }
            foreach (KeyValuePair <int, int> pair6 in another.ItemsGainedByRarity)
            {
                if (this.ItemsGainedByRarity.ContainsKey(pair6.Key))
                {
                    Dictionary <int, int> dictionary6;
                    num4 = dictionary6[num4];
                    (dictionary6 = this.ItemsGainedByRarity)[num4 = pair6.Key] = num4 + pair6.Value;
                }
                else
                {
                    this.ItemsGainedByRarity.Add(pair6.Key, pair6.Value);
                }
            }
            this.UsedBossTickets            += another.UsedBossTickets;
            this.CompletedBossTickets       += another.CompletedBossTickets;
            this.MissionsStarted            += another.MissionsStarted;
            this.MissionBigPrizesOpened     += another.MissionBigPrizesOpened;
            this.EliteBossesBeat            += another.EliteBossesBeat;
            this.FrenzyActivations          += another.FrenzyActivations;
            this.DungeonBoostBoxesDestroyed += another.DungeonBoostBoxesDestroyed;
            foreach (KeyValuePair <string, double> pair7 in another.SkillDungeonBoostBoxDestructionCounts)
            {
                if (this.SkillDungeonBoostBoxDestructionCounts.ContainsKey(pair7.Key))
                {
                    Dictionary <string, double> dictionary7;
                    num5 = dictionary7[str];
                    (dictionary7 = this.SkillDungeonBoostBoxDestructionCounts)[str = pair7.Key] = num5 + pair7.Value;
                }
                else
                {
                    this.SkillDungeonBoostBoxDestructionCounts.Add(pair7.Key, pair7.Value);
                }
            }
        }
コード例 #26
0
 private void onCharacterKilled(CharacterInstance character, CharacterInstance killer, bool critted, SkillType fromSkill)
 {
     if ((killer != null) && killer.IsPlayerCharacter)
     {
         Room activeRoom = GameLogic.Binder.GameState.ActiveDungeon.ActiveRoom;
         bool flag       = GameLogic.Binder.FrenzySystem.isFrenzyActive();
         int  num        = activeRoom.numberOfBossesAlive();
         for (int i = 0; i < this.m_heroStats.Count; i++)
         {
             string    str3;
             int       num3;
             HeroStats stats = this.m_heroStats[i];
             stats.MonstersKilled++;
             bool flag2 = character.IsBoss && (num == 0);
             if (flag2)
             {
                 stats.BossesBeat++;
                 if (character.IsEliteBoss)
                 {
                     stats.EliteBossesBeat++;
                 }
             }
             if (flag)
             {
                 if (flag2)
                 {
                     stats.BossesBeatDuringFrenzy++;
                 }
                 else
                 {
                     stats.MinionsKilledDuringFrenzy++;
                 }
             }
             if (!stats.EncounteredCharacterTypes.Contains(character.Type))
             {
                 stats.EncounteredCharacterTypes.Add(character.Type);
             }
             string key = character.Type.ToString();
             if (!stats.CharacterTypeKillCounts.ContainsKey(key))
             {
                 stats.CharacterTypeKillCounts.Add(key, 1);
             }
             else
             {
                 Dictionary <string, int> dictionary;
                 num3 = dictionary[str3];
                 (dictionary = stats.CharacterTypeKillCounts)[str3 = key] = num3 + 1;
             }
             if (fromSkill != SkillType.NONE)
             {
                 string str2 = fromSkill.ToString();
                 if (!stats.SkillMinionKills.ContainsKey(str2))
                 {
                     stats.SkillMinionKills.Add(str2, 1);
                 }
                 else
                 {
                     Dictionary <string, int> dictionary2;
                     num3 = dictionary2[str3];
                     (dictionary2 = stats.SkillMinionKills)[str3 = str2] = num3 + 1;
                 }
             }
         }
     }
 }