Fixed ghost caught queue
This commit is contained in:
@@ -593,18 +593,23 @@ namespace Marro.PacManUdon
|
||||
}
|
||||
}
|
||||
|
||||
internal void HitPacMan()
|
||||
internal bool HitPacMan()
|
||||
{
|
||||
if (ghostState != PacManGhostState.Normal)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (isScared)
|
||||
{
|
||||
Debug.Log($"{gameObject} was cought!");
|
||||
ghostManager.GhostCaughtQueue(this);
|
||||
}
|
||||
else if (ghostState == PacManGhostState.Normal)
|
||||
{
|
||||
Debug.Log($"{gameObject} cought PacMan!");
|
||||
ghostManager.CapturedPacMan();
|
||||
ghostManager.GhostCaught(this);
|
||||
return true;
|
||||
}
|
||||
|
||||
Debug.Log($"{gameObject} cought PacMan!");
|
||||
ghostManager.CapturedPacMan();
|
||||
return true;
|
||||
}
|
||||
|
||||
public void Caught(int scoreBonus)
|
||||
@@ -695,25 +700,33 @@ namespace Marro.PacManUdon
|
||||
|
||||
public void SetFrozen(bool frozen, bool ignoreIfCaught = false, bool keepAnimating = false)
|
||||
{
|
||||
animator.speed = frozen && !keepAnimating ? 0 : 1; // This would cause issues if the returning sprite was animated, luckily it isn't :)
|
||||
|
||||
if (frozen && !ignoreIfCaught)
|
||||
{
|
||||
frozenState = PacManGhostFrozenState.Frozen;
|
||||
return;
|
||||
}
|
||||
else if (frozen && ignoreIfCaught)
|
||||
|
||||
if (frozen && ignoreIfCaught)
|
||||
{
|
||||
frozenState = PacManGhostFrozenState.FrozenIfNotCaught;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
var oldFrozenState = frozenState;
|
||||
frozenState = PacManGhostFrozenState.NotFrozen;
|
||||
|
||||
if (oldFrozenState == PacManGhostFrozenState.FrozenIfNotCaught) // Catch animator up after not updating during FrozenIfNotCaught
|
||||
{
|
||||
UpdateAnimator();
|
||||
}
|
||||
var oldFrozenState = frozenState;
|
||||
frozenState = PacManGhostFrozenState.NotFrozen;
|
||||
|
||||
if (oldFrozenState == PacManGhostFrozenState.FrozenIfNotCaught) // Catch animator up after not updating during FrozenIfNotCaught
|
||||
{
|
||||
UpdateAnimator();
|
||||
}
|
||||
|
||||
if (ghostState == PacManGhostState.CaughtScore)
|
||||
{
|
||||
ReturnHome(); // Return home when unfreezing after being caught
|
||||
collisionManager.PacManTryEatGhost(); // We may have skipped collisions while frozen
|
||||
}
|
||||
animator.speed = frozen && !keepAnimating ? 0 : 1; // This would cause issues if the returning sprite was animated, luckily it isn't :)
|
||||
}
|
||||
|
||||
public void SetHousePelletCounterActive(bool active)
|
||||
|
||||
Reference in New Issue
Block a user