internal override void ComputePlayerCombatReplayActors(AbstractPlayer p, ParsedEvtcLog log, CombatReplay replay) { IReadOnlyList <AbstractCastEvent> cls = p.GetCastEvents(log, 0, log.FightData.FightEnd); var shieldCast = cls.Where(x => x.SkillId == 52780).ToList(); foreach (AbstractCastEvent c in shieldCast) { int start = (int)c.Time; int duration = 10000; int radius = 300; Point3D shieldNextPos = replay.PolledPositions.FirstOrDefault(x => x.Time >= start); Point3D shieldPrevPos = replay.PolledPositions.LastOrDefault(x => x.Time <= start); if (shieldNextPos != null || shieldPrevPos != null) { replay.Decorations.Add(new CircleDecoration(true, 0, radius, (start, start + duration), "rgba(255, 0, 255, 0.1)", new InterpolatedPositionConnector(shieldPrevPos, shieldNextPos, start))); replay.Decorations.Add(new CircleDecoration(false, 0, radius, (start, start + duration), "rgba(255, 0, 255, 0.3)", new InterpolatedPositionConnector(shieldPrevPos, shieldNextPos, start))); } } }