CapersProject/Assets/02.Scripts/Character/Npc/Customer/State/VomitState.cs
2024-12-17 21:54:30 +09:00

51 lines
1.5 KiB
C#

using BlueWater.Audios;
using BlueWater.Interfaces;
namespace BlueWater.Npcs.Customers
{
public class VomitState : IStateMachine<Customer>
{
private string _vomitSfxName = "Vomit";
private bool _isVomiting;
public void EnterState(Customer character)
{
if (character.CustomerSkin == CustomerSkin.Cat)
{
character.SpineController.PlayAnimation(CatSpineAnimation.VomitingForm, false);
}
else
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingForm, false);
}
}
public void UpdateState(Customer character)
{
if (!_isVomiting && character.SpineController.IsAnimationComplete())
{
AudioManager.Instance.PlaySfx(_vomitSfxName);
if (character.CustomerSkin == CustomerSkin.Cat)
{
character.SpineController.PlayAnimation(CatSpineAnimation.Vomiting, false);
}
else
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.Vomiting, false);
}
_isVomiting = true;
}
if (_isVomiting && character.SpineController.IsAnimationComplete())
{
character.InstanceVomit();
}
}
public void ExitState(Customer character)
{
}
}
}