Exemple #1
0
    void DetermineNewTarget()
    {
        Collider2D[] interactableObjects = Physics2D.OverlapCircleAll(transform.position, 10); //TODO: make sure this doesnt overlap with other maps

        Transform elevator = null;
        Mine      m        = GameData.Instance.playerMineLocations[playerID];

        if ((m == Mine.IronMine && GameData.Instance.playerFloors[playerID][Mine.IronMine] == 0) ||
            (m == Mine.JellyMine && GameData.Instance.playerFloors[playerID][Mine.JellyMine] == 0) ||
            (m == Mine.IronMine && GameData.Instance.playerFloors[playerID][Mine.CoalMine] == 0))
        {
            List <Collider2D> elevators = new List <Collider2D>();
            for (int i = 0; i < interactableObjects.Length; i++)
            {
                if (interactableObjects[i].tag == "Elevator")
                {
                    elevators.Add(interactableObjects[i]);
                }
            }
            elevator = AIManager.ChooseElevator(playerID, elevators);
        }
        if (elevator != null)
        {
            target = elevator;
        }
        else
        {
            TileType toSeek = AIManager.GetTileTypeToSeek(playerID, _isStuck);
            target = AIManager.GetTargetedTileTransformFromMap(interactableObjects, toSeek, playerID, transform);
        }
        if (target != null)
        {
            seeker.StartPath(rb.position, target.position, OnPathComplete);
            currentObj = target.gameObject;
        }
    }