コード例 #1
0
ファイル: CombatParser.cs プロジェクト: Rivsoft/SWTOR.Parser
        private void CharacterAnalyzer(CombatData combat, List<LogEntry> log)
        {
            var allSources = log.DistinctSources();
            var allTargets = log.DistinctTargets();
            var allCharacters = allSources.Union(allTargets).Distinct();

            foreach (var character in allCharacters)
            {
                var metrics = new CharacterData();
                combat.Characters.Add(character, metrics);

                CombatAnalyzer(metrics.AsSource, log.WithSource(character));
                CombatAnalyzer(metrics.AsTarget, log.WithTarget(character));
            }
        }
コード例 #2
0
ファイル: CombatParser.cs プロジェクト: Rivsoft/SWTOR.Parser
        private CombatLog ParseCombatLog(List<LogEntry> log)
        {
            var cLog = new CombatLog();
            CombatData currentCombat = null;

            foreach (LogEntry logEntry in log)
            {
                if (logEntry.effect.name == "EnterCombat")
                    currentCombat = new CombatData();

                if (currentCombat != null)
                    currentCombat.Log.Add(logEntry);

                if (logEntry.effect.name == "ExitCombat")
                {
                    cLog.Combats.Add(currentCombat);
                    currentCombat = null;
                }
            }

            if (currentCombat != null) // we have a partial combat
                cLog.Combats.Add(currentCombat);
            return cLog;
        }