private void UpdatePlayerVisibility()
{
if (isPlayerVisible == (isPlayerVisible = state != State.Turning && lantern.IsPlayerVisible))
{
return;
}
if (isPlayerVisible)
{
if (!isPlayerConsideredVisible)
{
state = State.Following;
damageTimer.Reset(damageTime);
OnDetected();
}
isPlayerConsideredVisible = true;
looseVisibilityTimer.Stop();
}
else
{
if (looseVisibilityTimer.Elapsed)
{
looseVisibilityTimer.Reset(visibilityPadTime);
}
}
}