2024-10-22 12:41:31 +00:00
|
|
|
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()
|
|
|
|
{
|
2024-10-31 05:41:13 +00:00
|
|
|
return !IsCleaningFloor && !IsCleaningTable;
|
2024-10-22 12:41:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public void SetIsCleaningFloor(bool value) => IsCleaningFloor = value;
|
|
|
|
public void SetIsCleaningTable(bool value) => IsCleaningTable = value;
|
|
|
|
}
|
|
|
|
}
|