Example #1
0
    public void OnClientSummonMechRequest(SummonMechRequest r)
    {
        ClientA.CurrentClientRequestResponseBundle = new SummonMechRequest_ResponseBundle();
        ClientB.CurrentClientRequestResponseBundle = new SummonMechRequest_ResponseBundle();

        BattlePlayer  sp                 = GetPlayerByClientId(r.clientId);
        CardInfo_Mech info               = (CardInfo_Mech)sp.HandManager.GetHandCardInfo(r.handCardInstanceId);
        List <int>    targetMechIds      = r.targetMechIds;
        List <int>    targetMechIds_real = new List <int>();

        for (int i = 0; i < targetMechIds.Count; i++)
        {
            bool isTemp     = r.isTargetMechIdTempIds[i];
            int  realMechId = r.targetMechIds[i];
            if (isTemp)
            {
                realMechId = sp.BattleGroundManager.GetMechIdByClientMechTempId(realMechId);
            }

            if (realMechId != -1)
            {
                targetMechIds_real.Add(realMechId);
            }
        }

        sp.HandManager.UseCard(r.handCardInstanceId, targetMechIds);
        sp.BattleGroundManager.AddMech(info, r.battleGroundIndex, targetMechIds_real, r.clientMechTempId, r.handCardInstanceId);

        Broadcast_SendOperationResponse();
    }
Example #2
0
    IEnumerator Co_RetrySummonRequest(ModuleMech mech, int cardInstanceId, List <int> targetMechIds, List <bool> isTargetMechIdTempIds)
    {
        while (true)
        {
            int battleGroundIndex = GetIndexOfAliveMechs(mech); //确定的时候再获取位置信息(召唤的过程中可能会有协议没有跑完,会有机甲生成)

            if (battleGroundIndex != -1)
            {
                mech.M_ClientTempMechID = GenerateClientMechTempId();
                SummonMechRequest request = new SummonMechRequest(Client.Instance.Proxy.ClientID, cardInstanceId, battleGroundIndex, mech.M_ClientTempMechID, targetMechIds, isTargetMechIdTempIds);
                Client.Instance.Proxy.SendMessage(request);
                break;
            }

            yield return(null);
        }

        yield return(null);
    }