Esempio n. 1
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILED;

        Blackboard bb   = sAI.GetBlackboard();
        float      dist = (sAI.transform.position - bb.moveToPosition).magnitude;

        if (dist > 1.0f)
        {
            UnityEngine.AI.NavMeshAgent agent = sAI.GetComponent <UnityEngine.AI.NavMeshAgent>();
            agent.destination = bb.moveToPosition;

            output = TASK_RETURN_STATUS.FAILED;
        }
        else
        {
            bb.nodesForAStar.Remove(bb.currNodeToGetTo);
            if (bb.nodesForAStar.Count > 0)
            {
                bb.currNodeToGetTo = bb.nodesForAStar[0];
                bb.moveToPosition  = bb.currNodeToGetTo.transform.position;
            }
            output = TASK_RETURN_STATUS.SUCCEED;
        }

        return(output);
    }
Esempio n. 2
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        //run A*
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILED;

        Blackboard bb = sAI.GetBlackboard();


        if (bb.nodesForAStar.Count <= 0)
        {
            GameObject go       = GameObject.FindGameObjectWithTag("AStar");
            AStarObj   aStarObj = go.GetComponent <AStarObj>();
            //AStarObj aStarObj = GameObject.FindGameObjectWithTag("AStar").GetComponent<AStarObj>(); //new AStarObj();
            aStarObj.RunThroughPath(sAI, bb.startNode, bb.goalNode);
            if (bb.nodesForAStar.Count > 0)
            {
                output             = TASK_RETURN_STATUS.SUCCEED;
                bb.currNodeToGetTo = bb.nodesForAStar[0];
                bb.moveToPosition  = bb.currNodeToGetTo.transform.position;
            }
        }
        else
        {
            output = TASK_RETURN_STATUS.SUCCEED;
        }

        return(output);
    }
Esempio n. 3
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILED;

        Blackboard bb = sAI.GetBlackboard();

        if (bb.enemyTarget != null)
        {
            Vector3 dir = sAI.transform.position - bb.enemyTarget.gameObject.transform.position;

            float dist = dir.magnitude;
            if (dist < 5.0f)
            {
                //dir.Normalize();

                dir += sAI.transform.position;
                UnityEngine.AI.NavMeshAgent agent = sAI.GetComponent <UnityEngine.AI.NavMeshAgent>();
                agent.destination = dir;

                //sAI.transform.position += dir;

                output = TASK_RETURN_STATUS.SUCCEED;
            }
        }
        return(output);
    }
Esempio n. 4
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILED;

        Blackboard bb = sAI.GetBlackboard();

        if (bb.enemyTarget != null)
        {
            if (bb.enemyTarget.getEnemyType() == EnemyType.HELLEPHANT || bb.enemyTarget.getEnemyType() == EnemyType.ZOMBEAR)
            {
                Vector3 dir             = bb.enemyTarget.transform.position - sAI.transform.position;
                float   distFromCrystal = (Vector3.zero - sAI.transform.position).magnitude;
                float   dist            = dir.magnitude;
                if (dist > 5.0f && distFromCrystal < 50.0f)
                {
                    UnityEngine.AI.NavMeshAgent agent = sAI.GetComponent <UnityEngine.AI.NavMeshAgent>();

                    agent.destination = bb.enemyTarget.transform.position;

                    output = TASK_RETURN_STATUS.SUCCEED;
                }
            }
        }


        return(output);
    }
Esempio n. 5
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.SUCCESS;

        sAI.GetSurvivor().SwitchWeapons(WEAPON_TYPE.PISTOL);

        return(output);
    }
Esempio n. 6
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.SUCCESS;

        Debug.Log("Testing");

        return(output);
    }
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.SUCCESS;

        FindPath(sAI, sAI.GetSurvivor().transform.position, targetPoint);


        return(output);
    }
Esempio n. 8
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILURE;

        if (enemyTarget.getState() == EnemyState.NORMAL)
        {
            sAI.GetBlackBoard().target = enemyTarget;
            output = TASK_RETURN_STATUS.SUCCESS;
        }
        return(output);
    }
Esempio n. 9
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILED;

        if (GameManager.getAllEnemies().Count > 4)
        {
            output = TASK_RETURN_STATUS.SUCCEED;
        }

        return(output);
    }
Esempio n. 10
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILED;

        Blackboard bb = sAI.GetBlackboard();

        bb.distFromTarget = GetDistFromTarget(bb.enemyTarget, sAI);
        output            = TASK_RETURN_STATUS.SUCCEED;

        return(output);
    }
Esempio n. 11
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILED;

        if (sAI.GetBlackboard().nodesForAStar.Count <= 0)
        {
            output = TASK_RETURN_STATUS.SUCCEED;
        }

        return(output);
    }
Esempio n. 12
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILURE;

        if(GameManager.GetBreakTimeRemaining() > 0)
        {
            SpendGoldOnAmmo();

            output = TASK_RETURN_STATUS.SUCCESS;
        }

        return output;

    }
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILURE;

        base.Run(sAI);

        if (GameManager.GetCurrentGold() >= GameManager.GetSurvivorCost())
        {
            GameManager.PurchaseSurvivor();

            output = TASK_RETURN_STATUS.SUCCESS;
        }

        return(output);
    }
Esempio n. 14
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILURE;

        BlackBoard bd = sAI.GetBlackBoard();

        if (bd.target != null)
        {
            if (bd.target.getState() == EnemyState.NORMAL)
            {
                output = TASK_RETURN_STATUS.SUCCESS;
            }
        }
        return(output);
    }
Esempio n. 15
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.SUCCEED;

        foreach (BT_Task child in children)
        {
            if (child.Run(sAI) == TASK_RETURN_STATUS.FAILED)
            {
                output = TASK_RETURN_STATUS.FAILED;
                break;
            }
        }

        return(output);
    }
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILURE;

        base.Run(sAI);

        if (GameManager.GetCurrentGold() >= GameManager.GetAssaultAmmoCost())
        {
            GameManager.PurchaseAmmo(WEAPON_TYPE.ASSAULT);

            output = TASK_RETURN_STATUS.SUCCESS;
        }

        return(output);
    }
Esempio n. 17
0
    /* DO NOT USE UNLESS FOR SURE THAT THE ENEMY ORDERING IS EASIEST TO HARDEST IN ENUM*/

    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILED;

        Enemy target = FindClosestWorstTarget(sAI);

        if (target != null)
        {
            sAI.GetBlackboard().enemyTarget = target;
            output = TASK_RETURN_STATUS.SUCCEED;
        }


        return(output);
    }
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILURE;

        base.Run(sAI);

        if (sAI.GetBlackBoard().target.state == EnemyState.DEAD)
        {
            sAI.GetSurvivor().MoveTo(sAI.GetBlackBoard().currentSurvivorPosition);

            output = TASK_RETURN_STATUS.SUCCESS;
        }

        return(output);
    }
Esempio n. 19
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILED;

        if (sAI.GetSurvivor().GetWeapon(WEAPON_TYPE.GRENADE_LAUNCHER).getAmmo() > 0)
        {
            if ((sAI.transform.position - sAI.GetBlackboard().enemyTarget.transform.position).magnitude <= 10)
            {
                sAI.GetSurvivor().SwitchWeapons(WEAPON_TYPE.GRENADE_LAUNCHER);
                output = TASK_RETURN_STATUS.SUCCEED;
            }
        }

        return(output);
    }
Esempio n. 20
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILURE;

        Enemy e = FindPriorityTarget(sAI);

        if (e != null)
        {
            BlackBoard b = sAI.GetBlackBoard();

            b.target = e;

            output = TASK_RETURN_STATUS.SUCCESS;
        }
        return(output);
    }
Esempio n. 21
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILED;
        Blackboard         bb     = sAI.GetBlackboard();

        if (bb.distFromTarget <= 25.0f) //&& bb.distFromTarget >= 10.0f)
        {
            //if (sAI.GetSurvivor().GetWeapon(WEAPON_TYPE.PISTOL).getAmmo() > 0)
            //{
            sAI.GetSurvivor().SwitchWeapons(WEAPON_TYPE.PISTOL);
            output = TASK_RETURN_STATUS.SUCCEED;
            //}
        }

        return(output);
    }
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILURE;


        BlackBoard blackBoard = sAI.GetBlackBoard();
        bool       b          = isTargetVisible(sAI, blackBoard.target);

        if (b == true)
        {
            output = TASK_RETURN_STATUS.SUCCESS;
        }


        return(output);
    }
Esempio n. 23
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILED;

        /* UNLIKE NAME SUGGESTS, it will only return success if the wave is still running) */
        if (GameManager.InBreakTime() == false)
        {
            output = TASK_RETURN_STATUS.SUCCEED;
        }
        //else
        //{
        //sAI.GetBlackboard().WaveNumber++;
        //}

        return(output);
    }
Esempio n. 24
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILED;
        Blackboard         bb     = sAI.GetBlackboard();

        if (bb.distFromTarget < 10.0f)
        {
            if (sAI.GetSurvivor().GetWeapon(WEAPON_TYPE.SHOTGUN).getAmmo() > 0)
            {
                sAI.GetSurvivor().SwitchWeapons(WEAPON_TYPE.SHOTGUN);
                output = TASK_RETURN_STATUS.SUCCEED;
            }
        }

        return(output);
    }
Esempio n. 25
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILURE;

        if (sAI.GetBlackBoard().target.state != EnemyState.DEAD)
        {
            Vector3 runTo = sAI.GetSurvivor().transform.position + ((sAI.GetSurvivor().transform.position -
                                                                     sAI.GetBlackBoard().target.gameObject.transform.position) * 5);

            sAI.GetSurvivor().MoveTo(runTo);

            output = TASK_RETURN_STATUS.SUCCESS;
        }

        return(output);
    }
Esempio n. 26
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILED;
        Blackboard         bb     = sAI.GetBlackboard();

        if (bb.nodesForAStar.Count > 0)
        {
            output = TASK_RETURN_STATUS.SUCCEED;
        }
        //for breakpointing
        else
        {
            output = TASK_RETURN_STATUS.FAILED;
        }
        return(output);
    }
Esempio n. 27
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILED;

        WEAPON_TYPE prevType = sAI.GetSurvivor().GetCurrentWeapon().type;

        sAI.GetSurvivor().SwitchWeapons(WEAPON_TYPE.GRENADE_LAUNCHER);
        if (sAI.GetSurvivor().GetCurrentWeapon().getAmmo() > 0)
        {
            Enemy target = sAI.GetBlackboard().enemyTarget;
            sAI.GetSurvivor().Fire(target.transform.position + (sAI.GetEnemyHeightOffset() * Vector3.up));
            sAI.GetSurvivor().SwitchWeapons(prevType);
            output = TASK_RETURN_STATUS.SUCCEED;
        }
        return(output);
    }
Esempio n. 28
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILURE;

        BlackBoard blackBoard = sAI.GetBlackBoard();
        Enemy      target     = blackBoard.target;

        if (target != null)
        {
            sAI.GetSurvivor().Fire(target.transform.position + (Vector3.up * sAI.enemyHeightOffset));

            output = TASK_RETURN_STATUS.SUCCESS;
        }

        return(output);
    }
Esempio n. 29
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILED;

        Enemy e = FindClosestHellephantTarget(sAI);

        if (e != null)
        {
            if (sAI.GetBlackboard().distFromTarget < 20.0f)
            {
                sAI.GetBlackboard().enemyTarget = e;
                output = TASK_RETURN_STATUS.SUCCEED;
            }
        }

        return(output);
    }
Esempio n. 30
0
    public override TASK_RETURN_STATUS Run(Survivor_AI sAI)
    {
        TASK_RETURN_STATUS output = TASK_RETURN_STATUS.FAILURE;

        for (int i = 0; i < children.Count; i++)
        {
            Task child = children [i];

            if (child.Run(sAI) == TASK_RETURN_STATUS.SUCCESS)
            {
                output = TASK_RETURN_STATUS.SUCCESS;
                break;
            }
        }

        return(output);
    }