internal NPCCombatReplayDescription(NPC npc, ParsedEvtcLog log, CombatReplayMap map, CombatReplay replay) : base(npc, log, map, replay, log.FightData.Logic.TargetAgents.Contains(npc.AgentItem) ? "Target" : log.FriendlyAgents.Contains(npc.AgentItem) ? "Friendly" : "Mob")
 {
     if (log.FriendlyAgents.Contains(npc.AgentItem))
     {
         SetStatus(log, npc);
     }
 }
        //

        public override AbstractSingleActorSerializable GetCombatReplayJSON(CombatReplayMap map, ParsedEvtcLog log)
        {
            if (CombatReplay == null)
            {
                InitCombatReplay(log);
            }
            return(new NPCSerializable(this, log, map, CombatReplay));
        }
示例#3
0
 internal NPCCombatReplayDescription(NPC npc, ParsedEvtcLog log, CombatReplayMap map, CombatReplay replay) : base(npc, log, map, replay, log.FightData.Logic.TargetAgents.Contains(npc.AgentItem) ? "Target" : (log.FightData.Logic.NonPlayerFriendlyAgents.Contains(npc.AgentItem) || npc.AgentItem.GetFinalMaster().Type == ParsedData.AgentItem.AgentType.Player) ? "Friendly" : "Mob")
 {
     if (log.FriendlyAgents.Contains(npc.AgentItem))
     {
         SetStatus(log, npc);
     }
     if (npc.AgentItem.GetFinalMaster() != npc.AgentItem)
     {
         MasterID = npc.AgentItem.GetFinalMaster().UniqueID;
     }
 }
        internal NPCCombatReplayDescription(NPC npc, ParsedEvtcLog log, CombatReplayMap map, CombatReplay replay) : base(npc, log, map, replay)
        {
            if (log.FriendlyAgents.Contains(npc.AgentItem))
            {
                SetStatus(log, npc);
            }
            AgentItem master = npc.AgentItem.GetFinalMaster();

            // Don't put minions of NPC into the minion display system
            if (master != npc.AgentItem && master.IsPlayer)
            {
                MasterID = master.UniqueID;
            }
        }
        internal PlayerSerializable(Player player, ParsedEvtcLog log, CombatReplayMap map, CombatReplay replay) : base(player, log, map, replay, "Player")
        {
            Group = player.Group;
            Dead  = new List <long>();
            Down  = new List <long>();
            Dc    = new List <long>();
            (IReadOnlyList <(long start, long end)> deads, IReadOnlyList <(long start, long end)> downs, IReadOnlyList <(long start, long end)> dcs) = player.GetStatus(log);

            foreach ((long start, long end) in deads)
            {
                Dead.Add(start);
                Dead.Add(end);
            }
            foreach ((long start, long end) in downs)
            {
                Down.Add(start);
                Down.Add(end);
            }
            foreach ((long start, long end) in dcs)
            {
                Dc.Add(start);
                Dc.Add(end);
            }
        }
        internal AbstractSingleActorCombatReplayDescription(AbstractSingleActor actor, ParsedEvtcLog log, CombatReplayMap map, CombatReplay replay, string type)
        {
            Start = replay.TimeOffsets.start;
            End   = replay.TimeOffsets.end;
            Img   = actor.GetIcon();
            ID    = actor.UniqueID;
            var positions = new List <float>();

            Positions = positions;
            Type      = type;
            foreach (Point3D pos in replay.PolledPositions)
            {
                (float x, float y) = map.GetMapCoord(pos.X, pos.Y);
                positions.Add(x);
                positions.Add(y);
            }
        }
示例#7
0
        //

        public override AbstractSingleActorCombatReplayDescription GetCombatReplayDescription(CombatReplayMap map, ParsedEvtcLog log)
        {
            if (CombatReplay == null)
            {
                InitCombatReplay(log);
            }
            return(new NPCCombatReplayDescription(this, log, map, CombatReplay));
        }
 internal NPCSerializable(NPC npc, ParsedEvtcLog log, CombatReplayMap map, CombatReplay replay) : base(npc, log, map, replay, log.FightData.Logic.Targets.Contains(npc) ? "Target" : "Mob")
 {
     Start = replay.TimeOffsets.start;
     End   = replay.TimeOffsets.end;
 }
 internal FacingDecorationCombatReplayDescription(ParsedEvtcLog log, FacingDecoration decoration, CombatReplayMap map) : base(log, decoration, map)
 {
     Type       = "Facing";
     FacingData = decoration.Angles;
 }
 internal AbstractSingleActorSerializable(AbstractSingleActor actor, ParsedEvtcLog log, CombatReplayMap map, CombatReplay replay, string type)
 {
     Img       = actor.GetIcon();
     ID        = actor.UniqueID;
     Positions = new List <double>();
     Type      = type;
     foreach (Point3D pos in replay.PolledPositions)
     {
         (double x, double y) = map.GetMapCoord(pos.X, pos.Y);
         Positions.Add(x);
         Positions.Add(y);
     }
 }
 internal PlayerCombatReplayDescription(AbstractPlayer player, ParsedEvtcLog log, CombatReplayMap map, CombatReplay replay) : base(player, log, map, replay, !log.PlayerAgents.Contains(player.AgentItem) ? "TargetPlayer" : "Player")
 {
     Group = player.Group;
     SetStatus(log, player);
 }
示例#12
0
 public abstract AbstractSingleActorCombatReplayDescription GetCombatReplayDescription(CombatReplayMap map, ParsedEvtcLog log);
 internal PlayerSerializable(Player player, ParsedEvtcLog log, CombatReplayMap map, CombatReplay replay) : base(player, log, map, replay, "Player")
 {
     Group = player.Group;
 }
示例#14
0
        internal AbstractSingleActorSerializable(AbstractSingleActor actor, ParsedEvtcLog log, CombatReplayMap map, CombatReplay replay, string type)
        {
            Img       = actor.GetIcon();
            ID        = actor.UniqueID;
            Positions = new List <double>();
            Type      = type;
            foreach (Point3D pos in replay.PolledPositions)
            {
                (double x, double y) = map.GetMapCoord(pos.X, pos.Y);
                Positions.Add(x);
                Positions.Add(y);
            }
            if (actor.AgentItem.IsPlayer)
            {
                Dead = new List <long>();
                Down = new List <long>();
                Dc   = new List <long>();
                (IReadOnlyList <(long start, long end)> deads, IReadOnlyList <(long start, long end)> downs, IReadOnlyList <(long start, long end)> dcs) = actor.GetStatus(log);

                foreach ((long start, long end) in deads)
                {
                    Dead.Add(start);
                    Dead.Add(end);
                }
                foreach ((long start, long end) in downs)
                {
                    Down.Add(start);
                    Down.Add(end);
                }
                foreach ((long start, long end) in dcs)
                {
                    Dc.Add(start);
                    Dc.Add(end);
                }
            }
        }
 internal PlayerCombatReplayDescription(AbstractPlayer player, ParsedEvtcLog log, CombatReplayMap map, CombatReplay replay) : base(player, log, map, replay)
 {
     Group = player.Group;
     SetStatus(log, player);
 }