Example #1
0
    private void Initialized()
    {
        ClientA.ClientState = ProxyBase.ClientStates.Playing;
        ClientB.ClientState = ProxyBase.ClientStates.Playing;

        DebugLog.Print("StartGameSuccess! Between: " + ClientA.ClientID + " and " + ClientB.ClientID);

        SyncRandomNumber();

        int PA_LIFE       = ClientA.BuildInfo.Life;
        int PA_MAGIC      = ClientA.BuildInfo.Energy;
        int PA_BEGINMETAL = ClientA.BuildInfo.BeginMetal;
        int PB_LIFE       = ClientB.BuildInfo.Life;
        int PB_MAGIC      = ClientB.BuildInfo.Energy;
        int PB_BEGINMETAL = ClientB.BuildInfo.BeginMetal;

        PlayerA = new BattlePlayer(ClientA.UserName, ClientA.ClientID, 0, PA_BEGINMETAL, PA_LIFE, PA_LIFE, 0, PA_MAGIC, this);
        PlayerA.CardDeckManager.CardDeck = new CardDeck(ClientA.BuildInfo, PlayerA.OnCardDeckLeftChange, PlayerA.CardDeckManager.OnUpdatePlayerCoolDownCard, PlayerA.CardDeckManager.OnRemovePlayerCoolDownCard);
        PlayerA.MyClientProxy            = ClientA;

        PlayerB = new BattlePlayer(ClientB.UserName, ClientB.ClientID, 0, PB_BEGINMETAL, PB_LIFE, PB_LIFE, 0, PB_MAGIC, this);
        PlayerB.CardDeckManager.CardDeck = new CardDeck(ClientB.BuildInfo, PlayerB.OnCardDeckLeftChange, PlayerB.CardDeckManager.OnUpdatePlayerCoolDownCard, PlayerB.CardDeckManager.OnRemovePlayerCoolDownCard);
        PlayerB.MyClientProxy            = ClientB;

        if (ClientB is BattleProxyAI battleProxyAI && battleProxyAI.Enemy != null)
        {
            PlayerB.BattleStatistics.Level = battleProxyAI.Enemy.DifficultyLevel;
            PlayerA.BattleStatistics.Level = battleProxyAI.Enemy.DifficultyLevel;
        }

        PlayerA.MyEnemyPlayer = PlayerB;
        PlayerB.MyEnemyPlayer = PlayerA;

        ClientA.InitGameInfo();
        ClientB.InitGameInfo();

        ClientA.CurrentClientRequestResponseBundle = new GameStart_ResponseBundle();
        ClientB.CurrentClientRequestResponseBundle = new GameStart_ResponseBundle();

        if (ClientB is BattleProxyAI ai && ai.Enemy != null && ai.Enemy.LevelID != -1 && !ai.IsCustomizeBattle)
        {
            StartFightingEnemyRequest request = new StartFightingEnemyRequest(ai.Enemy.LevelID);
            BroadcastRequest(request);
        }

        SetPlayerRequest request1 = new SetPlayerRequest(ClientA.UserName, ClientA.ClientID, 0, PA_BEGINMETAL, PA_LIFE, PA_LIFE, 0, PA_MAGIC);

        Broadcast_AddRequestToOperationResponse(request1);
        SetPlayerRequest request2 = new SetPlayerRequest(ClientA.UserName, ClientB.ClientID, 0, PB_BEGINMETAL, PB_LIFE, PB_LIFE, 0, PB_MAGIC);

        Broadcast_AddRequestToOperationResponse(request2);

        GameBegin();

        Broadcast_SendOperationResponse(); //初始化的大包请求
    }