39 lines
1.0 KiB
C#
39 lines
1.0 KiB
C#
using System;
|
|
|
|
public class Bed : BaseInteractableObject
|
|
{
|
|
|
|
protected override void PrepareMenuActions()
|
|
{
|
|
_menuActions[RadialMenuActions.Sleep].IsEnabled = true;
|
|
}
|
|
|
|
protected override void InteractAction(RadialMenuActions interactAction)
|
|
{
|
|
_player.SetPlayerAnimation(AnimationStates.Sitting, OnAnimationFinished);
|
|
}
|
|
|
|
private void OnAnimationFinished()
|
|
{
|
|
GameManager.Instance.UI.ShowTimeSliderDialog("Sleep", "Wake up in", OnCancel, OnConfirm);
|
|
}
|
|
private void OnCancel()
|
|
{
|
|
OnFastForwardEnd();
|
|
}
|
|
|
|
private void OnConfirm(TimeSpan time)
|
|
{
|
|
_player.SetPlayerActing(PlayerStates.Sleeping);
|
|
GameManager.Instance.Time.FastForward(time);
|
|
GameManager.Instance.Time.OnFastForwardEnd += OnFastForwardEnd;
|
|
}
|
|
|
|
private void OnFastForwardEnd()
|
|
{
|
|
_player.SetPlayerActing(PlayerStates.Awake);
|
|
_player.SetPlayerAnimation(AnimationStates.Standing);
|
|
GameManager.Instance.Time.OnFastForwardEnd -= OnFastForwardEnd;
|
|
}
|
|
}
|