public void AddComposableTokenInfo(LBD.TokenInfo ptokenInfo, LBD.TokenInfo ctokenInfo)
        {
            var deckInfo = deckInfos.Find(x => x.GetDeckUid() == ptokenInfo.GetTokenId());

            var ackData = new TcpMsg.AckDeckChildrenCardAdd();

            if (null != deckInfo)
            {
                deckInfo.unitList.Add(TokenInfoToCardInfo(ctokenInfo));

                ackData.deckInfo = deckInfo;
            }
            else
            {
                ackData.errCode = TcpMsg.Error.NotFoundDeckInfo;
            }

            if (ackData.errCode != TcpMsg.Error.None)
            {
                logger.Warn($"UID={UID} Error Code={ackData.errCode.ToString()}");
            }

            stateType = UserStateType.None;
            Send(new Packet(ackData));
        }
        public void IntlMsg_TransactionError(InternalMsg.InternalBaseMsg msg)
        {
            var intlMsg = msg as InternalMsg.IntlMsg_TransactionError;

            if (null != user)
            {
                TcpMsg.MessageResponse ackData;
                switch (intlMsg.errorCode)
                {
                case InternalMsg.Error.AddTokenParent:
                    user.stateType = UserStateType.None;
                    ackData        = new TcpMsg.AckDeckChildrenCardAdd()
                    {
                        errCode       = TcpMsg.Error.DeckAddError,
                        statusCode    = intlMsg.statusCode,
                        statusMessage = intlMsg.statusMessage
                    };
                    break;

                case InternalMsg.Error.RemoveTokenParent:
                    user.stateType = UserStateType.None;
                    ackData        = new TcpMsg.AckDeckChildrenCardRemove()
                    {
                        errCode       = TcpMsg.Error.DeckRemoveError,
                        statusCode    = intlMsg.statusCode,
                        statusMessage = intlMsg.statusMessage
                    };
                    break;

                default:
                    logger.Warn($"Not Found ErrorCode={intlMsg.errorCode}");
                    return;
                }

                user.Send(new Packet(ackData));
            }
            else
            {
                logger.Warn($"Is User Null~~~");
            }
        }
示例#3
0
        public void ReqDeckChildrenCardAdd(NetMessage message)
        {
            var reqData = message.GetData <TcpMsg.ReqDeckChildrenCardAdd>();

            if (null != user)
            {
                var errorCode = user.CheckDeckCount(reqData.deckuid);

                if (errorCode == TcpMsg.Error.None)
                {
                    user.stateType = UserStateType.DeckCardAdd;

                    LBD.LBDApiManager.Instance.AddLBDCmd(new LBD.Msg.LBDMsg_GetComposableToken()
                    {
                        uid       = user.UID,
                        guid      = user.Id.ToString(),
                        type      = TcpMsg.GetComposableType.GetTokenParent,
                        tokenType = LBD.LBDApiManager.TokenIdToTokenType(reqData.tokenid),
                        tokenIdx  = LBD.LBDApiManager.TokenIdToTokenIndex(reqData.tokenid),

                        limit   = 50,
                        orderBy = string.Empty,
                        page    = 1,

                        value = reqData.deckuid
                    });

                    return;
                }

                var ackData = new TcpMsg.AckDeckChildrenCardAdd();
                ackData.errCode = errorCode;

                user.Send(new Packet(ackData));
            }
            else
            {
                logger.Warn($"Is User Null~~~");
            }
        }
        public void IntlMsg_GetComposableToken(InternalMsg.InternalBaseMsg msg)
        {
            var intlMsg = msg as InternalMsg.IntlMsg_GetComposableToken;

            if (null != user)
            {
                var resDataHeader = JsonConvert.DeserializeObject <LBD.ResponesDataHeader>(intlMsg.result);

                if (resDataHeader.statusCode == 1000)
                {
                    if (intlMsg.type == TcpMsg.GetComposableType.GetTokenChildren)
                    {
                        if (user.stateType == UserStateType.InitGetDeck)
                        {
                            var resData = JsonConvert.DeserializeObject <LBD.Respones_GetComosableListInfo>(intlMsg.result);

                            user.SetDeckChildren(intlMsg.tokenType, intlMsg.tokenIndex, resData.responseData);
                        }
                    }
                    else if (intlMsg.type == TcpMsg.GetComposableType.GetTokenParent)
                    {
                        if (user.stateType == UserStateType.DeckCardAdd)
                        {
                            var ackData = new TcpMsg.AckDeckChildrenCardAdd()
                            {
                                errCode = TcpMsg.Error.AlreadySetDeckCard,
                            };
                            user.Send(new Packet(ackData));
                        }
                    }
                }
                else if (resDataHeader.statusCode == 4047)
                {
                    if (user.stateType == UserStateType.DeckCardAdd)
                    {
                        // Parent token not exist
                        if (intlMsg.type == TcpMsg.GetComposableType.GetTokenParent)
                        {
                            LBD.LBDApiManager.Instance.AddLBDCmd(new LBD.Msg.LBDMsg_AddTokenParent()
                            {
                                uid          = user.UID,
                                guid         = user.Id.ToString(),
                                holderAddr   = string.Empty,
                                holderUserId = user.lineUID,
                                pTokenType   = LBD.LBDApiManager.TokenIdToTokenType(intlMsg.value),
                                pTokenIdx    = LBD.LBDApiManager.TokenIdToTokenIndex(intlMsg.value),
                                cTokenType   = intlMsg.tokenType,
                                cTokenIdx    = intlMsg.tokenIndex
                            });
                            return;
                        }
                    }

                    logger.Warn($"Error statusCode={resDataHeader.statusCode} statusMessage={resDataHeader.statusMessage}");
                }
                else
                {
                    logger.Warn($"Error statusCode={resDataHeader.statusCode} statusMessage={resDataHeader.statusMessage}");
                }
            }
            else
            {
                logger.Warn($"Is User Null~~~");
            }
        }