private void MoveCharacter(Vector2 move) { var newTransform = CurrentGridLocation + move; if (mapController.CheckValid(newTransform, CharacterGuid)) { var cost = mapController.CheckCost(newTransform); if (ActivityEnergy >= cost) { ConsumeEnergy(cost); mapController.Changeloc(CurrentGridLocation, newTransform); transform.position = new Vector3(newTransform.x, 0, newTransform.y); CurrentGridLocation = new Vector2(newTransform.x, newTransform.y); } } else { OnFailedMove?.Invoke(); } }