Example #1
0
    public static GOAPGoal Get(GOAPGoalType type, Agent owner)
    {
        if (_buffers[(int)type].Count > 0)
        {
            _buffers[(int)type].Peek().Reset(owner);
            return(_buffers[(int)type].Dequeue());
        }
        switch (type)
        {
        case GOAPGoalType.STEP_IN:
            return(new GOAPGoalStepIn(owner));

        case GOAPGoalType.STEP_OUT:
            return(new GOAPGoalStepOut(owner));

        case GOAPGoalType.STEP_AROUND:
            return(new GOAPGoalStepAround(owner));

        case GOAPGoalType.ATTACK_TARGET:
            return(new GOAPGoalAttackTarget(owner));

        case GOAPGoalType.REACT_TO_DAMAGE:
            return(new GOAPGoalReactToDamage(owner));

        case GOAPGoalType.BLOCK:
            return(new GOAPGoalBlock(owner));

        /*case GOAPGoalType.ORDER_ATTACK:
         *  return new GOAPGoalOrderAttack(owner);
         * case GOAPGoalType.ORDER_DODGE:
         *  return new GOAPGoalOrderDodge(owner);
         * case GOAPGoalType.LOOK_AT_TARGET:
         *  return new GOAPGoalLookAtTarget(owner);
         * case GOAPGoalType.KILL_TARGET:
         *  return new GOAPGoalKillTarget(owner);
         * case GOAPGoalType.DODGE:
         *  return new GOAPGoalDodge(owner);
         * case GOAPGoalType.ALERT:
         *  return new GOAPGoalAlert(owner);
         * case GOAPGoalType.CALM:
         *  return new GOAPGoalCalm(owner);
         * case GOAPGoalType.PLAY_ANIM:
         *  return new GOAPGoalPlayAnim(owner);
         * case GOAPGoalType.IDLE_ANIM:
         *  return new GOAPGoalIdleAction(owner);
         */
        default:
            return(null);
        }
    }
Example #2
0
    //public abstract void MakeSatisfied(WorldState worldState);

    protected GOAPGoal(GOAPGoalType type, Agent owner)
    {
        GoalType = type;
        _owner   = owner;
        Plan     = new GOAPPlan(_owner);
    }