Example #1
0
        private void HandleEntityRemove(EntityRemovePacket entityRemovePacket)
        {
            Console.WriteLine("Handling");

            var entity = ServiceManager.RetrieveEntityByID(entityRemovePacket.EntityID);


            // If an entity was removed, check if it's blow-up-able
            var explosiveComponent = (ExplosiveComponent)entity.GetComponent(typeof(ExplosiveComponent));

            if (explosiveComponent != null)
            {
                // Get the owner
                var owner             = ServiceManager.RetrieveEntityByID(explosiveComponent.OwnerID);
                var ownerBombModifier =
                    (BombCountModifierComponent)owner.GetComponent(typeof(BombCountModifierComponent));
                ownerBombModifier.CurrentBombCount--;
            }


            ServiceManager.RemoveEntityByID(entityRemovePacket.EntityID);


            HandleRemovalBehaviour(entity);
        }
Example #2
0
            public new static Packet FromNetBuffer(NetIncomingMessage incomingMessage)
            {
                var entityID = incomingMessage.ReadUInt64();
                var packet   = new EntityRemovePacket(entityID);

                return(packet);
            }
Example #3
0
        void _serviceContainer_EntityRemoved(Entity entity)
        {
            var packet = new EntityRemovePacket(entity.ID);


            foreach (var player in _simulationState.Entities)
            {
                // Grab the connection
                var playerComponent = (PlayerComponent)player.GetComponent(typeof(PlayerComponent));

                if (playerComponent == null)
                {
                    continue;
                }

                var connection = playerComponent.Connection;

                if (connection != null)
                {
                    ClientNetworkManager.Instance.SendPacket(packet, connection);
                }
            }
        }