public string ScoutBoardSpace(int boardSpaceNumber)
    {
        string result     = "";
        var    boardSpace = BoardSpaceStates[boardSpaceNumber];

        if (boardSpace.numberOfPenguins > 0)
        {
            result += "Znalazłaś/eś pingwina! Weź żeton badań.\n";
            boardSpace.numberOfPenguins--;
            _totalPenguins--;
            BoardUpdatedEvent?.Invoke();
            if (_totalPenguins <= 0)
            {
                GameOver();
            }
        }
        if (boardSpace.IsAntarcticBase)
        {
            result += "Odwiedziłaś/eś stację badawczą. Odzyskaj żetony skanera.\n";
        }
        if (result.Length == 0)
        {
            result = "Nic nie znalazłaś/eś. :c\n";
        }

        return(result);
    }
    public void NewTurn()
    {
        //Remove penguins that want to migrate
        foreach (var space in BoardSpaceStates)
        {
            for (int i = 0; i < space.numberOfPenguins; i++)
            {
                if (Random.Range(0f, 1f) <= 0.3f)
                {
                    space.numberOfPenguins--;
                    var neighbour = space.neighbours[Random.Range(0, space.neighbours.Length)];
                    neighbour.immigratingPenguins++;
                }
            }
        }

        //Add pending penguins that migrated from neighbouring spaces
        foreach (var space in BoardSpaceStates)
        {
            space.numberOfPenguins   += space.immigratingPenguins;
            space.immigratingPenguins = 0;
        }

        BoardUpdatedEvent?.Invoke();
    }
    private void LoadGameFromPath(string path)
    {
        if (!File.Exists(path))
        {
            return;
        }
        else
        {
            var savedJson = File.ReadAllText(path);
            var savedGame = JsonUtility.FromJson <SavedGame>(savedJson);

            for (int i = 0; i < savedGame.numberofPenguins.Count; i++)
            {
                BoardSpaceStates[i].numberOfPenguins = savedGame.numberofPenguins[i];
                if (savedGame.antarcticBasePosition == i)
                {
                    BoardSpaceStates[i].IsAntarcticBase = true;
                }
                else
                {
                    BoardSpaceStates[i].IsAntarcticBase = false;
                }
            }
            BoardUpdatedEvent?.Invoke();
        }
    }
    private void SaveGameToPath(string path)
    {
        var savedGame = new SavedGame(BoardSpaceStates);
        var json      = JsonUtility.ToJson(savedGame);

        File.WriteAllText(path, json);
        BoardUpdatedEvent?.Invoke();
        return;
    }
 public void NewGame()
 {
     foreach (var space in BoardSpaceStates)
     {
         space.numberOfPenguins = 0;
         space.IsAntarcticBase  = false;
     }
     for (int i = 0; i < 10; i++)
     {
         BoardSpaceStates[Random.Range(0, BoardSpaceStates.Length)].numberOfPenguins++;
     }
     _totalPenguins = 10;
     BoardSpaceStates[Random.Range(0, BoardSpaceStates.Length)].IsAntarcticBase = true;
     BoardUpdatedEvent?.Invoke();
 }