public void Handle(SpecificCollisionEvent collisionEvent)
        {
            if (TargetIsShooter(collisionEvent))
            {
                return;
            }

            if (ComponentManager.EntityHasComponent <HealthComponent>(collisionEvent.Target))
            {
                Debug.WriteLine("Added damage");
                var healthComponent =
                    ComponentManager.GetEntityComponentOrDefault <HealthComponent>(collisionEvent.Target);
                if (healthComponent != null)
                {
                    var bulletComponent =
                        ComponentManager.GetEntityComponentOrDefault <BulletComponent>(collisionEvent.Entity);
                    if (bulletComponent != null)
                    {
                        var damage = bulletComponent.Damage;
                        healthComponent.Damage.Add(damage);
                    }
                }
            }
            StopBulletAnimation(collisionEvent.EventTime, collisionEvent.Entity);
        }
Esempio n. 2
0
        public void Handle(SpecificCollisionEvent collisionEvent)
        {
            Debug.WriteLine("Added damage");
            var healthComponent = ComponentManager.GetEntityComponentOrDefault <HealthComponent>(collisionEvent.Entity);

            if (healthComponent != null)
            {
                healthComponent.Damage.Add(1000);
            }

            Debug.WriteLine("Handle enemy collision");
//            GameEnder.Score = GameTime.TotalGameTime.TotalSeconds;
        }
Esempio n. 3
0
        public void Handle(SpecificCollisionEvent collisionEvent)
        {
            //Debug.WriteLine("WALL E:" + collisionEvent.Entity + ", T:" + collisionEvent.Target + ", -:" + collisionEvent.Event);
            if (IsBulletCollisionAndNotRelevant(collisionEvent))
            {
                return;
            }

            var entityMoveComponent     = ComponentManager.Instance.GetEntityComponentOrDefault <MoveComponent>(collisionEvent.Entity);
            var entityRenderComponent   = ComponentManager.Instance.GetEntityComponentOrDefault <RenderComponent>(collisionEvent.Entity);
            var entityPositionComponent = ComponentManager.Instance.GetEntityComponentOrDefault <PositionComponent>(collisionEvent.Entity);

            StopMovement(entityRenderComponent, entityPositionComponent, entityMoveComponent);
        }
 /*
  * Target is the pickup, entity is the player
  * This function determines what kind of pickup type it is, and calls the appropriate method.
  * First it checks if it has already been used(has the delete tag), in case 2 players touched it in the same frame.
  */
 public void Handle(SpecificCollisionEvent collisionEvent)
 {
     if (ComponentManager.GetEntityComponentOrDefault <TagComponent>(collisionEvent.Target).Tags.Contains(Tag.Delete))
     {
         return;
     }
     if (ComponentManager.EntityHasComponent(typeof(HealthPickupComponent), collisionEvent.Target))
     {
         HandleHealthPickup(collisionEvent.Entity, collisionEvent.Target);
     }
     else if (ComponentManager.EntityHasComponent(typeof(AmmoPickupComponent), collisionEvent.Target))
     {
         HandleAmmoPickup(collisionEvent.Entity, collisionEvent.Target);
     }
 }
Esempio n. 5
0
        private static bool IsBulletCollisionAndNotRelevant(SpecificCollisionEvent collisionEvent)
        {
            var bulletComponent =
                ComponentManager.Instance.GetEntityComponentOrDefault <BulletComponent>(collisionEvent.Target);

            if (bulletComponent != null)
            {
                if (bulletComponent.ShooterEntityId == collisionEvent.Entity)
                {
                    return(true);
                }
            }
            var bulletComponent2 =
                ComponentManager.Instance.GetEntityComponentOrDefault <BulletComponent>(collisionEvent.Entity);

            if (bulletComponent2 != null)
            {
                if (bulletComponent2.ShooterEntityId == collisionEvent.Target)
                {
                    return(true);
                }
            }
            return(false);
        }
        private bool TargetIsShooter(SpecificCollisionEvent collisionEvent)
        {
            var bulletComponent = ComponentManager.GetEntityComponentOrDefault <BulletComponent>(collisionEvent.Entity);

            return(collisionEvent.Target == bulletComponent.ShooterEntityId);
        }