/// <summary>
/// Runs when a character collides with a powerUp
/// </summary>
public bool OnCollision(Fixture powerUpGeom, Fixture character, Contact contant)
{
if (character.CollisionCategories == Category.Cat11)
{
//Gets the powerupstatus from geomData
PowerUpStatus powerUpStatus = (PowerUpStatus)powerUpGeom.Body.UserData;
waitingPowerUps.Remove(powerUpStatus);
//Gets the charactercontroller
CharacterController player = (CharacterController)character.Body.UserData;
player.AddPowerUp(powerUpStatus.PowerUp);
//Setup the powerupstatus for the player
powerUpStatus.ElapsedTime = 0;
powerUpStatus.Player = player;
//Removes the powerup from screen
powerUpStatus.Image.DisposBoundBox();
powerUpImg.RemovePosition(powerUpStatus.Image);
//Sets the active powerup on the player, so it's removed by the update when time is up
if (activePowerUps.ContainsKey(player.model.playerIndex))
{
activePowerUps[player.model.playerIndex] = powerUpStatus;
}
else
{
activePowerUps.Add(player.model.playerIndex, powerUpStatus);
}
return(false);
}
return(true);
}