public static void CreateStateChangeEvents(List <CombatItem> stateChangeEvents, MetaEventsContainer metaDataEvents, StatusEventsContainer statusEvents, List <RewardEvent> rewardEvents, AgentData agentData) { foreach (CombatItem c in stateChangeEvents) { switch (c.IsStateChange) { case ParseEnum.StateChange.EnterCombat: var enterCombatEvt = new EnterCombatEvent(c, agentData); GeneralHelper.Add(statusEvents.EnterCombatEvents, enterCombatEvt.Src, enterCombatEvt); break; case ParseEnum.StateChange.ExitCombat: var exitCombatEvt = new ExitCombatEvent(c, agentData); GeneralHelper.Add(statusEvents.ExitCombatEvents, exitCombatEvt.Src, exitCombatEvt); break; case ParseEnum.StateChange.ChangeUp: var aliveEvt = new AliveEvent(c, agentData); GeneralHelper.Add(statusEvents.AliveEvents, aliveEvt.Src, aliveEvt); break; case ParseEnum.StateChange.ChangeDead: var deadEvt = new DeadEvent(c, agentData); GeneralHelper.Add(statusEvents.DeadEvents, deadEvt.Src, deadEvt); break; case ParseEnum.StateChange.ChangeDown: var downEvt = new DownEvent(c, agentData); GeneralHelper.Add(statusEvents.DownEvents, downEvt.Src, downEvt); break; case ParseEnum.StateChange.Spawn: var spawnEvt = new SpawnEvent(c, agentData); GeneralHelper.Add(statusEvents.SpawnEvents, spawnEvt.Src, spawnEvt); break; case ParseEnum.StateChange.Despawn: var despawnEvt = new DespawnEvent(c, agentData); GeneralHelper.Add(statusEvents.DespawnEvents, despawnEvt.Src, despawnEvt); break; case ParseEnum.StateChange.HealthUpdate: var healthEvt = new HealthUpdateEvent(c, agentData); GeneralHelper.Add(statusEvents.HealthUpdateEvents, healthEvt.Src, healthEvt); break; case ParseEnum.StateChange.LogStart: if (c.Value == 0 || c.BuffDmg == 0) { continue; } metaDataEvents.LogStartEvent = new LogStartEvent(c); break; case ParseEnum.StateChange.LogEnd: if (c.Value == 0 || c.BuffDmg == 0) { continue; } metaDataEvents.LogEndEvent = new LogEndEvent(c); break; case ParseEnum.StateChange.MaxHealthUpdate: var maxHealthEvt = new MaxHealthUpdateEvent(c, agentData); GeneralHelper.Add(statusEvents.MaxHealthUpdateEvents, maxHealthEvt.Src, maxHealthEvt); break; case ParseEnum.StateChange.PointOfView: if (c.SrcAgent == 0) { continue; } metaDataEvents.PointOfViewEvent = new PointOfViewEvent(c, agentData); break; case ParseEnum.StateChange.Language: metaDataEvents.LanguageEvent = new LanguageEvent(c); break; case ParseEnum.StateChange.GWBuild: if (c.SrcAgent == 0) { continue; } metaDataEvents.BuildEvent = new BuildEvent(c); break; case ParseEnum.StateChange.ShardId: metaDataEvents.ShardEvents.Add(new ShardEvent(c)); break; case ParseEnum.StateChange.Reward: rewardEvents.Add(new RewardEvent(c)); break; case ParseEnum.StateChange.TeamChange: var tcEvt = new TeamChangeEvent(c, agentData); GeneralHelper.Add(statusEvents.TeamChangeEvents, tcEvt.Src, tcEvt); break; case ParseEnum.StateChange.AttackTarget: var aTEvt = new AttackTargetEvent(c, agentData); GeneralHelper.Add(statusEvents.AttackTargetEvents, aTEvt.Src, aTEvt); break; case ParseEnum.StateChange.Targetable: var tarEvt = new TargetableEvent(c, agentData); GeneralHelper.Add(statusEvents.TargetableEvents, tarEvt.Src, tarEvt); break; case ParseEnum.StateChange.MapID: metaDataEvents.MapIDEvents.Add(new MapIDEvent(c)); break; case ParseEnum.StateChange.Guild: var gEvt = new GuildEvent(c, agentData); GeneralHelper.Add(metaDataEvents.GuildEvents, gEvt.Src, gEvt); break; case ParseEnum.StateChange.BuffInfo: case ParseEnum.StateChange.BuffFormula: if (metaDataEvents.BuffInfoEvents.TryGetValue(c.SkillID, out BuffInfoEvent buffInfoEvent)) { buffInfoEvent.CompleteBuffInfoEvent(c); } else { buffInfoEvent = new BuffInfoEvent(c); metaDataEvents.BuffInfoEvents[c.SkillID] = buffInfoEvent; } if (c.IsStateChange == ParseEnum.StateChange.BuffInfo) { if (metaDataEvents.BuffInfoEventsByCategory.TryGetValue(buffInfoEvent.Category, out List <BuffInfoEvent> bdEvtList)) { bdEvtList.Add(buffInfoEvent); } else { metaDataEvents.BuffInfoEventsByCategory[buffInfoEvent.Category] = new List <BuffInfoEvent> { buffInfoEvent }; } } break; case ParseEnum.StateChange.SkillInfo: case ParseEnum.StateChange.SkillTiming: if (metaDataEvents.SkillInfoEvents.TryGetValue(c.SkillID, out SkillInfoEvent skillInfoEvent)) { skillInfoEvent.CompleteSkillInfoEvent(c); } else { skillInfoEvent = new SkillInfoEvent(c); metaDataEvents.SkillInfoEvents[c.SkillID] = skillInfoEvent; } break; case ParseEnum.StateChange.BreakbarState: var bSEvt = new BreakbarStateEvent(c, agentData); GeneralHelper.Add(statusEvents.BreakbarStateEvents, bSEvt.Src, bSEvt); break; case ParseEnum.StateChange.BreakbarPercent: var bPEvt = new BreakbarPercentEvent(c, agentData); GeneralHelper.Add(statusEvents.BreakbarPercentEvents, bPEvt.Src, bPEvt); break; case ParseEnum.StateChange.Error: metaDataEvents.ErrorEvents.Add(new ErrorEvent(c)); break; case ParseEnum.StateChange.Tag: // Getting ready in case this becomes an actual state event _ = new TagEvent(c, agentData); //GeneralHelper.Add(metaDataEvents.TagEvents, tagEvt.Src, tagEvt); break; } } }
public static void CreateStateChangeEvents(List <CombatItem> stateChangeEvents, MetaEventsContainer metaDataEvents, StatusEventsContainer statusEvents, List <RewardEvent> rewardEvents, AgentData agentData) { foreach (CombatItem c in stateChangeEvents) { switch (c.IsStateChange) { case ParseEnum.StateChange.EnterCombat: var enterCombatEvt = new EnterCombatEvent(c, agentData); GeneralHelper.Add(statusEvents.EnterCombatEvents, enterCombatEvt.Src, enterCombatEvt); break; case ParseEnum.StateChange.ExitCombat: var exitCombatEvt = new ExitCombatEvent(c, agentData); GeneralHelper.Add(statusEvents.ExitCombatEvents, exitCombatEvt.Src, exitCombatEvt); break; case ParseEnum.StateChange.ChangeUp: var aliveEvt = new AliveEvent(c, agentData); GeneralHelper.Add(statusEvents.AliveEvents, aliveEvt.Src, aliveEvt); break; case ParseEnum.StateChange.ChangeDead: var deadEvt = new DeadEvent(c, agentData); GeneralHelper.Add(statusEvents.DeadEvents, deadEvt.Src, deadEvt); break; case ParseEnum.StateChange.ChangeDown: var downEvt = new DownEvent(c, agentData); GeneralHelper.Add(statusEvents.DownEvents, downEvt.Src, downEvt); break; case ParseEnum.StateChange.Spawn: var spawnEvt = new SpawnEvent(c, agentData); GeneralHelper.Add(statusEvents.SpawnEvents, spawnEvt.Src, spawnEvt); break; case ParseEnum.StateChange.Despawn: var despawnEvt = new DespawnEvent(c, agentData); GeneralHelper.Add(statusEvents.DespawnEvents, despawnEvt.Src, despawnEvt); break; case ParseEnum.StateChange.HealthUpdate: var healthEvt = new HealthUpdateEvent(c, agentData); GeneralHelper.Add(statusEvents.HealthUpdateEvents, healthEvt.Src, healthEvt); break; case ParseEnum.StateChange.LogStart: metaDataEvents.LogStartEvents.Add(new LogStartEvent(c)); break; case ParseEnum.StateChange.LogEnd: metaDataEvents.LogEndEvents.Add(new LogEndEvent(c)); break; case ParseEnum.StateChange.MaxHealthUpdate: var maxHealthEvt = new MaxHealthUpdateEvent(c, agentData); GeneralHelper.Add(statusEvents.MaxHealthUpdateEvents, maxHealthEvt.Src, maxHealthEvt); break; case ParseEnum.StateChange.PointOfView: metaDataEvents.PointOfViewEvents.Add(new PointOfViewEvent(c, agentData)); break; case ParseEnum.StateChange.Language: metaDataEvents.LanguageEvents.Add(new LanguageEvent(c)); break; case ParseEnum.StateChange.GWBuild: metaDataEvents.BuildEvents.Add(new BuildEvent(c)); break; case ParseEnum.StateChange.ShardId: metaDataEvents.ShardEvents.Add(new ShardEvent(c)); break; case ParseEnum.StateChange.Reward: rewardEvents.Add(new RewardEvent(c)); break; case ParseEnum.StateChange.TeamChange: var tcEvt = new TeamChangeEvent(c, agentData); GeneralHelper.Add(statusEvents.TeamChangeEvents, tcEvt.Src, tcEvt); break; case ParseEnum.StateChange.AttackTarget: var aTEvt = new AttackTargetEvent(c, agentData); GeneralHelper.Add(statusEvents.AttackTargetEvents, aTEvt.Src, aTEvt); break; case ParseEnum.StateChange.Targetable: var tarEvt = new TargetableEvent(c, agentData); GeneralHelper.Add(statusEvents.TargetableEvents, tarEvt.Src, tarEvt); break; case ParseEnum.StateChange.MapID: metaDataEvents.MapIDEvents.Add(new MapIDEvent(c)); break; case ParseEnum.StateChange.Guild: var gEvt = new GuildEvent(c, agentData); GeneralHelper.Add(metaDataEvents.GuildEvents, gEvt.Src, gEvt); break; } } }