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; }