public void SetDeckChildren(string parenttokenType, string parentTokenIdx, List <LBD.GetComposableData> childrenTokens) { var deckInfo = new TcpMsg.DeckInfo(); var tblDeck = tblDecks.Find(x => x.tokenid == $"{parenttokenType}{parentTokenIdx}"); if (null != tblDeck) { if (null == deckInfos) { deckInfos = new List <TcpMsg.DeckInfo>(); } deckInfo.name = tblDeck.deckname; var parentTokenInfo = nonFungibles.Find(x => x.tokenType == parenttokenType && x.tokenIdx == parentTokenIdx); deckInfo.heroCard = TokenInfoToCardInfo(parentTokenInfo); deckInfo.unitList = new List <TcpMsg.CardInfo>(); foreach (var ctokenData in childrenTokens) { var childrenTokenInfo = nonFungibles.Find(x => x.GetTokenId() == ctokenData.tokenId); if (null != childrenTokenInfo) { deckInfo.unitList.Add(TokenInfoToCardInfo(childrenTokenInfo)); } } deckInfos.Add(deckInfo); } ComposableTokenReceive++; if (ComposableTokenRequest == ComposableTokenReceive) { // Load complete ComposableTokenRequest = 0; ComposableTokenReceive = 0; if (stateType == UserStateType.InitGetDeck) { UserData(); } } }
public void RegisterDeck(string tokenId, string deckName) { var tokenInfo = nonFungibles.Find(x => x.GetTokenId() == tokenId); var ackData = new TcpMsg.AckRegisterDeck(); if (null == tokenInfo) { ackData.errCode = TcpMsg.Error.NotFoundTokenInfo; } else { var resourceCardData = TCGGameSrv.ResourceDataLoader.Data_Card_Dictionary_ID[Convert.ToInt32(tokenInfo.meta)]; if (null == resourceCardData) { ackData.errCode = TcpMsg.Error.ResourcdNotFound; } else { if (resourceCardData.cardType != Resource.CardType.hero) { ackData.errCode = TcpMsg.Error.NotHeroCard; } else { if (null == deckInfos) { deckInfos = new List <TcpMsg.DeckInfo>(); } var deck = deckInfos.Find(x => x.GetDeckUid() == tokenId); if (null != deck) { ackData.errCode = TcpMsg.Error.Deck_Already_Exists; } else { var repoUser = TCGGameSrv.IocContainer.Resolve <Repository.IUser>(); var tblDeck = new Table.TblDeck() { tokenid = tokenId, deckname = deckName, regDate = DateTime.Now }; tblDeck.seq = repoUser.InsertDeck(tblDeck); tblDecks.Add(tblDeck); deck = new TcpMsg.DeckInfo() { name = deckName, heroCard = TokenInfoToCardInfo(tokenInfo), unitList = new List <TcpMsg.CardInfo>() }; deckInfos.Add(deck); ackData.deckInfo = deck; } } } } if (ackData.errCode != TcpMsg.Error.None) { logger.Warn($"UID={UID} Error Code={ackData.errCode.ToString()}"); } Send(new Packet(ackData)); }