// returns initial state
            private State InitStates()
            {
                aiTools = GetComponent <AiTools>();
                aiTools.Init();
                SearchEnemy      searchEnemyState      = new SearchEnemy(aiTools);
                SearchHealthPack searchHealthPackState = new SearchHealthPack(aiTools);
                Attack           attackState           = new Attack(aiTools);
                Defence          defenceState          = new Defence(aiTools);

                searchEnemyState.AddTransition(
                    new Transition(
                        () => aiTools.agentState.isEnemyVisible,
                        attackState
                        )
                    );

                searchEnemyState.AddTransition(
                    new Transition(
                        () => (aiTools.world.healthPacksAvailable > 0) && (aiTools.agentState.health <= GameDefines.LOW_HP),
                        searchHealthPackState
                        )
                    );

                attackState.AddTransition(
                    new Transition(
                        () => (aiTools.agentState.health <= GameDefines.MEDIUM_HP),
                        defenceState
                        )
                    );

                attackState.AddTransition(
                    new Transition(
                        () => (aiTools.agentState.health > GameDefines.MEDIUM_HP) && !aiTools.agentState.isEnemyVisible,
                        searchEnemyState
                        )
                    );

                defenceState.AddTransition(
                    new Transition(
                        () => (aiTools.world.healthPacksAvailable > 0) && ((aiTools.agentState.health <= GameDefines.LOW_HP) || !aiTools.agentState.isEnemyVisible),
                        searchHealthPackState
                        )
                    );

                defenceState.AddTransition(
                    new Transition(
                        () => (!aiTools.agentState.isEnemyVisible && ((aiTools.world.healthPacksAvailable == 0) || aiTools.agentState.health > GameDefines.LOW_HP)),
                        searchEnemyState
                        )
                    );

                searchHealthPackState.AddTransition(
                    new Transition(
                        () => (aiTools.agentState.health > GameDefines.LOW_HP) || (aiTools.world.healthPacksAvailable == 0),
                        searchEnemyState
                        )
                    );

                return(searchEnemyState);
            }
Example #2
0
 void Awake()
 {
     animator             = GetComponent <Animator>();
     conLobbyComponent    = GameObject.Find("ConnectionLobby").GetComponent <ConnectionLobby>();
     searchEnemyComponent = GetComponentInChildren <SearchEnemy>();
     _animation           = GetComponent <Animation>();
 }
Example #3
0
 protected override void Start()
 {
     base.Start();
     normalAttack    = GetComponent <PlayerNormalAttack>();
     searchEnemy     = GetComponent <SearchEnemy>();
     searchCharactor = GetComponent <SearchCharacter>();
 }
Example #4
0
    // Use this for initialization
    void Start()
    {
        characterController = GetComponent <CharacterController>();
        //animator = GetComponent<Animator>();
        searchEnemy = GetComponentInChildren <SearchEnemy>();

        state = State.Normal;
    }
Example #5
0
    void Start()
    {
        _instance  = this;
        viewEuler  = GetComponent <PlayerStatus>().ViewEuler;
        _transform = transform;

        var lockOnTextObj = GameObject.Find("LockOnText");

        if (lockOnTextObj)
        {
            lockOnText      = lockOnTextObj.GetComponent <Text>();
            lockOnText.text = "";
        }
    }
Example #6
0
        //Método para movimiento del personaje
        public override Locomotion.MoveDirection GetNextMove(BoardInfo board, CellInfo currentPos, CellInfo[] goals)
        {
            //si hay enemigos en la lista y aun no han sido eliminados, procede a perseguirlos
            if (!allEliminated)
            {
                SearchEnemy getEnemy = new SearchEnemy();
                direction = getEnemy.Search(board, currentPos, goals);
                if (direction == 9999)
                {
                    allEliminated = true;
                }
            }
            else              //Al no haber enemigos, avanza a la meta
            {
                if (!nodesSet)
                {
                    CreateNodesBoard(board);
                    currentPlan = FindPath(board, nodes[currentPos.ColumnId, currentPos.RowId], nodes[goals[0].ColumnId, goals[0].RowId]);
                    nodesSet    = true;
                }
                if (currentPlan.Count() > 0)
                {
                    direction = currentPlan.Pop();
                }
            }
            // Se lee el número asignado a "direction" para hacer el movimiento segun el caso
            switch (direction)
            {
            case 0:
                return(Locomotion.MoveDirection.Up);

            case 1:
                return(Locomotion.MoveDirection.Right);

            case 2:
                return(Locomotion.MoveDirection.Down);

            case 3:
                return(Locomotion.MoveDirection.Left);

            default:
                return(Locomotion.MoveDirection.None);
            }
        }
Example #7
0
 void Start()
 {
     // enemy = GameObject.Find("Player"); //
     //script = enemy.GetComponent<SearchEnemy>();
     searchEnemy = GetComponentInChildren <SearchEnemy>();
 }
Example #8
0
 public CheckHealthEnergy(Character _character) : base(_character)
 {
     nodeTrue  = new SearchEnemy(_character);
     nodeFalse = new RandomDecision(new SearchHealth(_character), new SearchEnergy(_character));
 }