Exemplo n.º 1
0
        public virtual void SendState(NewPackets.EntityUpdate statePacket = default)
        {
            statePacket.unitIndex = _context.ownerID;
            statePacket.unitType  = Type;
            statePacket.hidden    = Hidden;
            statePacket.dead      = Dead;

            statePacket.position = CurrentPosition;

            statePacket.health         = HealthPoints;
            statePacket.healthCapacity = HealthCapacity;

            for (int i = 1; i < _context.gameManager.PlayerFactions.Count; i++)
            {
                if (_context.gameManager.PlayerFactions[i].Territory.Contains(CurrentPosition))
                {
                    if (!Cloaked || InFaction(i) || InFaction(0))    // Send only if not cloaked or i is own faction
                    {
                        _context.gameManager.Send(
                            (byte)_context.factionID,
                            NewPackets.PacketType.UpdateEntity,
                            statePacket.ByteArray(),
                            _context.gameManager.PlayerFactions[i].FactionClient);
                    }
                }
            }
        }
Exemplo n.º 2
0
        public virtual void BroadcastState(NewPackets.EntityUpdate statePacket = default)
        {
            statePacket.unitIndex = _context.ownerID;
            statePacket.unitType  = Type;
            statePacket.hidden    = Hidden;
            statePacket.dead      = Dead;

            statePacket.position = CurrentPosition;

            statePacket.health         = HealthPoints;
            statePacket.healthCapacity = HealthCapacity;

            _context.gameManager.Broadcast(
                (byte)_context.factionID,
                NewPackets.PacketType.UpdateEntity,
                statePacket.ByteArray());
        }