Example #1
0
    private void Update()
    {
        if (_prevInFocus != GameData.Instance.playerInFocus)
        {
        }


        if (Input.GetKeyUp(KeyCode.R))
        {
            SeekRock();
        }
        if (landedOnNewFloor)
        {
            landedOnNewFloor = false;
            if (AIManager.BuildElevator(playerID))
            {
                Debug.Log("Player " + playerID + " updated their " + GameData.Instance.playerMineLocations[playerID].ToString() + " elevator location");
                elevatorCreator.CreateElevator(playerID);
            }
        }
        if (!_breakingBlock)
        {
            //check if stuck
            //might need to rescan map, and set new target pos
            if (IsStandingStill(_previousPos, transform.position))
            {
                _stuckTimer -= Time.deltaTime;
            }
            else
            {
                _stuckTimer = 3f;
            }
            if (_stuckTimer < 0)
            {
                if (_stuckNumber > 2)
                {
                    StartCoroutine(BreakBlock());
                    Debug.Log("player " + playerID + " has been stuck for a long ass time");
                }
                else
                {
                    Debug.Log("Player " + playerID + "is stuck");
                    _stuckTimer = 3f;
                    _isStuck    = true;
                    AStarMapController.RequestScan();
                    DetermineNewTarget();
                    _isStuck = false;
                    _stuckNumber++;
                }
            }
        }



        _previousPos = transform.position;
        GameData.Instance.playerLocalLocations[playerID] = transform.localPosition;
    }