CollisionReleasePlatformSingle(DynamicShape player, Passenger passenger) { if (passenger.GetReleasePlatformChar() != '^' && PlatformCollision.CollisionPlatform(player, passenger.GetReleasePlatform()) && GameRunning.GetLevelCounter() == passenger.SetOffLevel) { return(true); } return(false); }
/// <summary> /// Checks if the player is at the right platform /// </summary> /// <param name="player">player</param> /// <returns>bool checking if its the right platform</returns> public static bool CollisionReleasePlatform(DynamicShape player) { foreach (var passenger in PassengerCollision.GetPassengerPickups()) { if (passenger.GetReleasePlatformChar() != '^' && PlatformCollision.CollisionPlatform(player, passenger.GetReleasePlatform()) && GameRunning.GetLevelCounter() == passenger.SetOffLevel) { return(true); } } return(false); }
/// <summary> /// Checks which platform the player is supposed to be collided with. /// </summary> /// <param name="player">player</param> public static void CheckDropOffCollision(Player player) { foreach (var passenger in PassengerCollision.passengerPickups) { if (passenger.PickedUp && !passenger.DroppedOff && GameRunning.GetLevelCounter() == passenger.SetOffLevel && PlatformCollision.CollisionReleasePlatformSingle(player.GetsShape(), passenger) ) { if (passenger.GetReleasePlatformChar() != '^') { passenger.SetPosition( passenger.GetReleasePlatform()[0].Shape.Position.X, passenger.GetReleasePlatform()[0].Shape.Position.Y + 0.04f); passenger.GetShape().Direction.X = 0.0f; } passenger.DroppedOff = true; passenger.SetReleasedWithinTimer(!passenger.ReleaseTimer()); } } }