fix: la inmunitat del jugador no funcionava

This commit is contained in:
2024-07-25 18:13:34 +02:00
parent cff1df19c2
commit 18eab9fe0d
3 changed files with 24 additions and 32 deletions

View File

@@ -281,11 +281,7 @@ void Player::update()
shiftColliders();
updateCooldown();
updatePowerUpCounter();
updateInvulnerableCounter();
if (invulnerable)
{
invulnerableCounter % 8 > 3 ? playerSprite->getTexture()->setPalette(coffees) : playerSprite->getTexture()->setPalette(3);
}
updateInvulnerable();
}
// Obtiene la puntuación del jugador
@@ -360,10 +356,11 @@ bool Player::isInvulnerable()
return invulnerable;
}
// Establece el valor de la variable
// Establece el valor del estado
void Player::setInvulnerable(bool value)
{
invulnerable = value;
invulnerableCounter = invulnerable ? PLAYER_INVULNERABLE_COUNTER : 0;
}
// Obtiene el valor de la variable
@@ -378,20 +375,20 @@ void Player::setInvulnerableCounter(int value)
invulnerableCounter = value;
}
// Actualiza el valor de la variable
void Player::updateInvulnerableCounter()
// Monitoriza el estado
void Player::updateInvulnerable()
{
if (invulnerable)
{
if (invulnerableCounter > 0)
{
invulnerableCounter--;
invulnerableCounter % 8 > 3 ? playerSprite->getTexture()->setPalette(coffees) : playerSprite->getTexture()->setPalette(3);
}
else
{
invulnerable = false;
invulnerableCounter = PLAYER_INVULNERABLE_COUNTER;
playerSprite->getTexture()->setPalette(0);
setInvulnerable(false);
playerSprite->getTexture()->setPalette(coffees);
}
}
}
@@ -448,8 +445,8 @@ void Player::giveExtraHit()
if (coffees < 2)
{
coffees++;
playerSprite->getTexture()->setPalette(coffees);
}
playerSprite->getTexture()->setPalette(coffees);
}
// Quita el toque extra al jugador
@@ -458,16 +455,11 @@ void Player::removeExtraHit()
if (coffees > 0)
{
coffees--;
setInvulnerable(true);
playerSprite->getTexture()->setPalette(coffees);
}
if (coffees == 0)
{
extraHit = false;
}
invulnerable = true;
invulnerableCounter = PLAYER_INVULNERABLE_COUNTER;
playerSprite->getTexture()->setPalette(coffees);
extraHit = coffees == 0 ? false : true;
}
// Habilita la entrada de ordenes