コード例 #1
0
ファイル: Match.cs プロジェクト: p-svacha/AITG
    /// <summary>
    /// Adjust player money and initialize card effects according to the players ChosenCards
    /// </summary>
    private void InitializeCardEffects()
    {
        if (Player1.ChosenCard == null || Player2.ChosenCard == null)
        {
            throw new Exception("Called InitializeCardEffects() without both players having chosen a card.");
        }

        // Reduce money of players according to card costs
        Player1.Money -= Player1.ChosenCard.Cost;
        Player2.Money -= Player2.ChosenCard.Cost;

        // Update Player bar to show new money
        if (Visual)
        {
            MatchUI.UpdatePlayerBar();
        }

        // Queue actions of the chosen cards (and show chosen cards if visual)
        if (Visual)
        {
            Effects.Enqueue(() => { VisualActions.Add(new VA_ShowChosenCards(Player1, Player1.ChosenCard, MatchUI)); });
        }
        Effects.Enqueue(() => { Player1.ChosenCard.Action(this, Player1, Player2); });
        if (Visual)
        {
            Effects.Enqueue(() => { VisualActions.Add(new VA_ShowChosenCards(Player2, Player2.ChosenCard, MatchUI)); });
        }
        Effects.Enqueue(() => { Player2.ChosenCard.Action(this, Player2, Player1); });
    }
コード例 #2
0
ファイル: Match.cs プロジェクト: p-svacha/AITG
    public void StartMatch(VisualPlayer v_player = null, VisualMinion v_minion = null, int visualBoardHeight = 0, MatchUI matchUI = null)
    {
        V_Player          = v_player;
        V_Minion          = v_minion;
        VisualBoardHeight = visualBoardHeight;

        if (Visual)
        {
            // UI
            MatchUI       = matchUI;
            MatchUI.Match = this;
            MatchUI.UpdatePlayerBar();
            MatchUI.UpdateTurnText();
            if (MatchType == MatchType.AI_vs_AI)
            {
                MatchUI.UpdatePlayerGenomes();
            }

            // Summon Players
            Player1.Visual = GameObject.Instantiate(V_Player, new Vector3(0, 0, -(VisualBoardHeight / 2)), Quaternion.identity);
            Player2.Visual = GameObject.Instantiate(V_Player, new Vector3(0, 0, VisualBoardHeight / 2), Quaternion.identity);
            Player1.Color  = PlayerColor;
            Player2.Color  = PlayerColor;
            VisualActions.Add(new VA_SummonPlayer(Player1.Visual, PlayerColor));
            VisualActions.Add(new VA_SummonPlayer(Player2.Visual, PlayerColor));
        }

        // Let's go
        Phase = MatchPhase.GameReady;
    }