public void PlayerWait(PlayerFSM player) { player.TransitionToState(player.InWindowState); spriteRenderer.sprite = openedWithRopeAndPlayerSprite; windowEnterState = WindowEnterState.PlayerInside; player.InWindowState.OnWindowExit.AddListener(ExitWindow); }
public void Interact(PlayerFSM player) { if (!canBeOpened) { return; } switch (windowEnterState) { case WindowEnterState.Closed: OpenWindow(); windowEnterState = WindowEnterState.Opened; break; case WindowEnterState.Opened: if (player.Inventory.HasItem(typeof(Rope)) && windowExit != null) { SetRope(player); windowEnterState = WindowEnterState.OpenedWithRope; } break; case WindowEnterState.PlayerInside: break; case WindowEnterState.OpenedWithRope: if (windowExit != null) { StartCoroutine(EnterWindowAnimation(player)); } break; } }
public void ExitWindow(PlayerFSM player) { windowEnterState = WindowEnterState.OpenedWithRope; spriteRenderer.sprite = openedWithRopeSprite; player.Visibility.SetVisibilityState(HeyEscape.Core.Player.VisibilityState.State.Visible); player.VirtualCamera.gameObject.SetActive(true); windowExit.SetEnabledVirtualCamera(false); SetEnabledVirtualCamera(false); }