protected override bool InitCombatReplay(ParsedEvtcLog log) { if (base.InitCombatReplay(log)) { // Trim DespawnEvent despawnCheck = log.CombatData.GetDespawnEvents(AgentItem).LastOrDefault(); SpawnEvent spawnCheck = log.CombatData.GetSpawnEvents(AgentItem).LastOrDefault(); DeadEvent deathCheck = log.CombatData.GetDeadEvents(AgentItem).LastOrDefault(); AliveEvent aliveCheck = log.CombatData.GetAliveEvents(AgentItem).LastOrDefault(); if (AgentItem.Type != AgentItem.AgentType.EnemyPlayer && deathCheck != null && (aliveCheck == null || aliveCheck.Time < deathCheck.Time)) { CombatReplay.Trim(AgentItem.FirstAware, deathCheck.Time); } else if (despawnCheck != null && (spawnCheck == null || spawnCheck.Time < despawnCheck.Time)) { CombatReplay.Trim(AgentItem.FirstAware, despawnCheck.Time); } else { CombatReplay.Trim(AgentItem.FirstAware, AgentItem.LastAware); } return(true); } return(false); }
protected static void TrimCombatReplay(ParsedEvtcLog log, CombatReplay replay, AgentItem agentItem) { // Trim DespawnEvent despawnCheck = log.CombatData.GetDespawnEvents(agentItem).LastOrDefault(); SpawnEvent spawnCheck = log.CombatData.GetSpawnEvents(agentItem).LastOrDefault(); DeadEvent deathCheck = log.CombatData.GetDeadEvents(agentItem).LastOrDefault(); AliveEvent aliveCheck = log.CombatData.GetAliveEvents(agentItem).LastOrDefault(); if (deathCheck != null && (aliveCheck == null || aliveCheck.Time < deathCheck.Time)) { replay.Trim(agentItem.FirstAware, deathCheck.Time); } else if (despawnCheck != null && (spawnCheck == null || spawnCheck.Time < despawnCheck.Time)) { replay.Trim(agentItem.FirstAware, despawnCheck.Time); } else { replay.Trim(agentItem.FirstAware, agentItem.LastAware); } }