CapersProject/Assets/02.Scripts/Character/Npc/Crew/Cleaner/CleanerCrew.cs
2024-10-31 14:41:13 +09:00

52 lines
1.7 KiB
C#

using BlueWater.Interfaces;
namespace BlueWater.Npcs.Crews.Cleaner
{
public class CleanerCrew : Crew
{
public bool IsCleaningFloor { get; private set; }
public bool IsCleaningTable { get; private set; }
public StateMachineController<CleanerCrew> StateMachineController { get; private set; }
public IStateMachine<CleanerCrew> IdleState { get; private set; }
public IStateMachine<CleanerCrew> WalkingState { get; private set; }
public IStateMachine<CleanerCrew> CleaningFloorState { get; private set; }
public IStateMachine<CleanerCrew> CleaningTableState { get; private set; }
protected override void Update()
{
StateMachineController.UpdateState(this);
base.Update();
}
public override void Initialize()
{
IdleState = new IdleState();
WalkingState = new WalkingState();
CleaningFloorState = new CleaningFloorState();
CleaningTableState = new CleaningTableState();
StateMachineController = new StateMachineController<CleanerCrew>(this, IdleState);
base.Initialize();
}
public override void ResetMission()
{
CrewInteraction = null;
IsOnMission = false;
BalloonUi.DiscardItem();
IsCleaningFloor = false;
IsCleaningTable = false;
}
public override bool IsCompletedMission()
{
return !IsCleaningFloor && !IsCleaningTable;
}
public void SetIsCleaningFloor(bool value) => IsCleaningFloor = value;
public void SetIsCleaningTable(bool value) => IsCleaningTable = value;
}
}