Beispiel #1
0
    public void Initialise(InitialData data, Client client)
    {
        this.client       = client;
        Player.OnEndTurn += PlayerTurnFinished;
        Player.OnVictory += VictoryHandling;
        deckManager.Initialise(Extensions.Invert(data.cards));
        localId = client.client.clientID;

        localDownOffset = -Mathf.PI / 2 + (-localId + data.players.Count) * ((2 * Mathf.PI) / (data.players.Count));

        Camera.main.orthographicSize = Constants.OverlapPreventionDistance + Constants.HalfCardLenght * 2 + Constants.MiddleRadius;
        cameraWidth = Camera.main.orthographicSize * 2 * Camera.main.aspect;


        foreach (byte id in data.players.Keys)
        {
            players.Add(AddPlayer(id, data.players[id], (byte)data.players.Count));
        }
        display.InstantiateTurnIndicators(players.ToArray());
        foreach (Player player in players)
        {
            OnTurnBegin?.Invoke(this, player);
            player.Draw(4);
        }

        gameBegan = true;
        OnTurnBegin?.Invoke(this, players[0]);
    }