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 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 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]); } }