internal override void ComputePlayerCombatReplayActors(AbstractPlayer p, ParsedEvtcLog log, CombatReplay replay) { var knownEffectsIDs = new HashSet <long>(); EffectGUIDEvent spread = log.CombatData.GetEffectGUIDEvent(EffectGUIDs.HarvestTempleSpread); if (spread != null) { var spreadEffects = log.CombatData.GetEffectEvents(spread.ContentID).Where(x => x.Dst == p.AgentItem).ToList(); knownEffectsIDs.Add(spread.ContentID); foreach (EffectEvent spreadEffect in spreadEffects) { int duration = 5500; int start = (int)spreadEffect.Time; int end = start + duration; AbstractSingleActor dragonVoid = FindActiveDragonVoid(spreadEffect.Time); if (dragonVoid == null) { continue; } int effectEnd = Math.Min((int)dragonVoid.LastAware, end); replay.Decorations.Add(new CircleDecoration(true, end, 240, (start, effectEnd), "rgba(250, 120, 0, 0.2)", new AgentConnector(p))); replay.Decorations.Add(new CircleDecoration(true, 0, 240, (start, effectEnd), "rgba(250, 120, 0, 0.2)", new AgentConnector(p))); } } EffectGUIDEvent redSelected = log.CombatData.GetEffectGUIDEvent(EffectGUIDs.HarvestTempleRedPuddleSelect); if (redSelected != null) { var redSelectedEffects = log.CombatData.GetEffectEvents(redSelected.ContentID).Where(x => x.Dst == p.AgentItem).ToList(); knownEffectsIDs.Add(redSelected.ContentID); foreach (EffectEvent redSelectedEffect in redSelectedEffects) { int duration = 6500; int start = (int)redSelectedEffect.Time; int end = start + duration; AbstractSingleActor dragonVoid = FindActiveDragonVoid(redSelectedEffect.Time); if (dragonVoid == null) { continue; } int puddleEnd = (int)dragonVoid.LastAware; int effectEnd = Math.Min(puddleEnd, end); replay.Decorations.Add(new CircleDecoration(true, end, 280, (start, effectEnd), "rgba(250, 50, 0, 0.2)", new AgentConnector(p))); replay.Decorations.Add(new CircleDecoration(true, 0, 280, (start, effectEnd), "rgba(250, 50, 0, 0.2)", new AgentConnector(p))); Point3D pos = p.GetCurrentPosition(log, end); if (pos == null) { continue; } replay.Decorations.Add(new CircleDecoration(true, end + 1000, 280, (end, puddleEnd), "rgba(250, 0, 0, 0.3)", new PositionConnector(pos))); replay.Decorations.Add(new CircleDecoration(true, 0, 280, (end, puddleEnd), "rgba(250, 0, 0, 0.3)", new PositionConnector(pos))); } } /*if (p != log.PlayerList[0]) * { * return; * } * var test = log.CombatData.GetEffectEvents(p.AgentItem); * foreach (EffectEvent effectEvt in test) * { * if (effectEvt.IsAroundDst) * { * replay.Decorations.Insert(0, new CircleDecoration(true, 0, 180, ((int)effectEvt.Time, (int)effectEvt.Time + 100), "rgba(0, 180, 255, 1.0)", new AgentConnector(log.FindActor(effectEvt.Dst)))); * } * else * { * * replay.Decorations.Insert(0, new CircleDecoration(true, 0, 180, ((int)effectEvt.Time, (int)effectEvt.Time + 100), "rgba(0, 180, 255, 1.0)", new PositionConnector(effectEvt.Position))); * } * }*/ }