public void ExecuteState() { if (StatesUtils.ValidateState(Owner, HUNGRY)) { StatesUtils.MoveTo(Owner, Owner.ChosenFoodPlace.gameObject); if (Owner.ChosenFoodPlace.FeedingVacancy == false || Owner.ChosenFoodPlace.FoodValue < 2f) { if (Owner.AgentMemory.FoodPlaces.Count - 1 > _dicIndex) { Owner.ChosenFoodPlace = Owner.AgentMemory.FoodPlaces.ElementAt(_dicIndex).Key; StatesUtils.MoveTo(Owner, Owner.ChosenFoodPlace.gameObject); } else { // Set Work Need to Zero // Cuases the agent to find the next most urgent need Owner.NeedsManager.FoodNeedOverride = true; Owner.StateMachineRef.ChangeState(Owner.States[Agent.StatesEnum.BaseState]); } _dicIndex++; } } else { Owner.StateMachineRef.ChangeState(Owner.States[Agent.StatesEnum.BaseState]); } }
public void ExecuteState() { if (StatesUtils.ValidateState(Owner, WORK)) { StatesUtils.MoveTo(Owner, Owner.CurrentWorkplace.gameObject); if (Owner.CurrentWorkplace.WorkersNeeded == false || Owner.CurrentWorkplace.BuildingActive == false) { _dicIndex++; if (Owner.AgentMemory.Workplaces.Count - 1 > _dicIndex) { Owner.CurrentWorkplace = Owner.AgentMemory.Workplaces.ElementAt(_dicIndex).Key; StatesUtils.MoveTo(Owner, Owner.CurrentWorkplace.gameObject); } else { // Set Work Need to Zero // Cuases the agent to find the next most urgent need Owner.NeedsManager.WorkNeedOverride = true; Owner.StateMachineRef.ChangeState(Owner.States[Agent.StatesEnum.BaseState]); } } } else { Owner.StateMachineRef.ChangeState(Owner.States[Agent.StatesEnum.BaseState]); } }
public void OnTriggerStay(Collider2D collider) { if (collider.gameObject == Owner.CurrentSleepPlace.gameObject) { StatesUtils.EnterBuilding(Owner, TIRED); Owner.StateMachineRef.ChangeState(Owner.States[Agent.StatesEnum.Sleeping]); } }
public void OnTriggerStay(Collider2D collider) { if (collider.gameObject == Owner.CurrentWorkplace.gameObject && Owner.CurrentWorkplace.WorkersNeeded) { StatesUtils.EnterBuilding(Owner, WORK); Owner.StateMachineRef.ChangeState(Owner.States[Agent.StatesEnum.Working]); } }
public void ExecuteState() { if (StatesUtils.ValidateState(Owner, TIRED)) { StatesUtils.MoveTo(Owner, Owner.CurrentSleepPlace.gameObject); } else { Owner.StateMachineRef.ChangeState(Owner.States[Agent.StatesEnum.BaseState]); } }
public void ExecuteState() { if (StatesUtils.ValidateState(Owner, WORK) && Owner.CurrentWorkplace.BuildingActive) { Work(Owner.CurrentWorkplace); } else { Owner.StateMachineRef.ChangeState(Owner.States[Agent.StatesEnum.BaseState]); } }
public void OnTriggerStay(Collider2D collider) { if (collider.gameObject == Owner.ChosenFoodPlace.gameObject) { if (Owner.ChosenFoodPlace.FeedingVacancy) { StatesUtils.EnterBuilding(Owner, HUNGRY); Owner.StateMachineRef.ChangeState(Owner.States[Agent.StatesEnum.Eating]); } else { Owner.StateMachineRef.ChangeState(Owner.States[Agent.StatesEnum.SearchingFood]); } } }
public void ExecuteState() { if (StatesUtils.ValidateState(Owner, HORNY) && Owner.ChosenMate != null) { if (Owner.ChosenMate.GetComponent <Agent>().ActiveState == Agent.StatesEnum.MovingToMate) { StatesUtils.MoveTo(Owner, Owner.ChosenMate); } else { Owner.StateMachineRef.ChangeState(Owner.States[Agent.StatesEnum.SearchingMate]); } } else if (StatesUtils.ValidateState(Owner, HORNY) && Owner.ChosenMate == null) { Owner.StateMachineRef.ChangeState(Owner.States[Agent.StatesEnum.SearchingMate]); } else { Owner.StateMachineRef.ChangeState(Owner.States[Agent.StatesEnum.BaseState]); } }
public void Exit() { StatesUtils.ExitBuilding(Owner, TIRED); Owner.NeedsManager.WorkNeedOverride = false; Owner.NeedsManager.FoodNeedOverride = false; }
public void Exit() { StatesUtils.ExitBuilding(Owner, HUNGRY); Owner.NeedsManager.WorkNeedOverride = false; }
public void Exit() { StatesUtils.ExitBuilding(Owner, WORK); }