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); }
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; }
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); } }
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); }