Example #1
0
    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]);
     }
 }
Example #7
0
 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]);
        }
    }
Example #9
0
 public void Exit()
 {
     StatesUtils.ExitBuilding(Owner, TIRED);
     Owner.NeedsManager.WorkNeedOverride = false;
     Owner.NeedsManager.FoodNeedOverride = false;
 }
Example #10
0
 public void Exit()
 {
     StatesUtils.ExitBuilding(Owner, HUNGRY);
     Owner.NeedsManager.WorkNeedOverride = false;
 }
Example #11
0
 public void Exit()
 {
     StatesUtils.ExitBuilding(Owner, WORK);
 }