Exemplo n.º 1
0
        public static void SignIn(Client client, string jsonPacketData)
        {
            client.packetMap.Remove("SignIn");

            SignIn signIn = JsonConvert.DeserializeObject<SignIn>(jsonPacketData);

            if (InternalSignIn(client, signIn.email, signIn.password))
            {
                OkMessage okMessage = new OkMessage();
                okMessage.op = "SignIn";

                client.Send(okMessage);

                ProfileHandler.ProfileInfo(client);
                ProfileHandler.ProfileDataInfo(client);
            }
        }
Exemplo n.º 2
0
        public static void Reconnect(Client client, string jsonPacketData)
        {
            client.packetMap.Remove("Reconnect");

            Reconnect reconnect = JsonConvert.DeserializeObject<Reconnect>(jsonPacketData);

            if (InternalSignIn(client, reconnect.email, reconnect.password))
            {
                OkMessage okMessage = new OkMessage();
                okMessage.op = "Reconnect";

                client.Send(okMessage);

                ProfileHandler.ProfileInfo(client);
                ProfileHandler.ProfileDataInfo(client);
            }
        }
Exemplo n.º 3
0
        public static void DeckDelete(Client client, string jsonPacketData)
        {
            client.packetMap.Remove("DeckDelete");

            DeckDelete deckDelete = JsonConvert.DeserializeObject<DeckDelete>(jsonPacketData);

            if (client.account.deckMap.ContainsKey(deckDelete.name))
            {
                int lastId;
                DB.Database.Execute(client.connection, out lastId, true, true, "DELETE FROM account_decks WHERE guid = ? AND name = ?", client.account.id, deckDelete.name);

                client.account.deckMap.Remove(deckDelete.name);

                OkMessage okMessage = new OkMessage();
                okMessage.op = "DeckDelete";

                client.Send(okMessage);
            }
            else
            {
                Console.WriteLine("{0} is trying to delete the deck {1} which they don't own!", client.account.username, deckDelete.name);
                PlayerAPI.KickPlayer(client, "AntiCheat: You have been disconnected from the server!");
            }
        }
Exemplo n.º 4
0
        public static void SellCards(Client client, string jsonPacketData)
        {
            client.packetMap.Remove("SellCards");

            SellCards sellCards = JsonConvert.DeserializeObject<SellCards>(jsonPacketData);

            bool saleError = false;
            int totalGold  = 0;

            foreach (int cardId in sellCards.cardIds)
            {
                if (CardAPI.Exists(client, cardId))
                {
                    if (CardAPI.GetCard(client, cardId).tradable)
                    {
                        switch (CardAPI.GetCardType(client.account.cardMap[cardId].typeId).rarity)
                        {
                            case 0: { totalGold += ConfigReader.sellCommon; break; }
                            case 1: { totalGold += ConfigReader.sellUncommon; break; }
                            case 2: { totalGold += ConfigReader.sellRare; break; }
                        }

                        CardAPI.RemoveCard(client, cardId);
                    }
                    else { saleError = true; }
                }
                else { saleError = true; }
            }

            if (!saleError)
            {
                int lastId;
                DB.Database.Execute(client.connection, out lastId, true, true, "UPDATE server_stats SET totalSoldCards = totalSoldCards + ?", sellCards.cardIds.Count);

                PlayerAPI.IncreaseGold(client, totalGold);
                PlayerAPI.UpdateScrollTypeCount(client);

                OkMessage okMessage = new OkMessage();
                okMessage.op = "SellCards";

                client.Send(okMessage);
            }
        }
Exemplo n.º 5
0
        public static void GameChallengeDecline(Client client, string jsonPacketData)
        {
            client.packetMap.Remove("GameChallengeDecline");

            GameChallengeDecline gameChallengeDecline = JsonConvert.DeserializeObject<GameChallengeDecline>(jsonPacketData);
            Client opponentSession = PlayerAPI.GetSession(gameChallengeDecline.profile, true);

            if (PlayerAPI.IsOnline(opponentSession.account.username))
            {
                OkMessage okMessage = new OkMessage();
                okMessage.op = "GameChallengeDecline";

                client.Send(okMessage);

                GameChallengeResponse gameChallengeResponse = new GameChallengeResponse();
                gameChallengeResponse.status = "DECLINE";

                gameChallengeResponse.from.id               = opponentSession.account.id;
                gameChallengeResponse.from.userUuid         = "";
                gameChallengeResponse.from.name             = opponentSession.account.username;
                gameChallengeResponse.from.acceptChallenges = opponentSession.account.acceptChallenges;
                gameChallengeResponse.from.acceptTrades     = opponentSession.account.acceptTrades;
                gameChallengeResponse.from.adminRole        = opponentSession.account.adminRole;
                gameChallengeResponse.from.userType         = "Beta";

                gameChallengeResponse.to.id               = client.account.id;
                gameChallengeResponse.to.userUuid         = "";
                gameChallengeResponse.to.name             = client.account.username;
                gameChallengeResponse.to.acceptChallenges = client.account.acceptChallenges;
                gameChallengeResponse.to.acceptTrades     = client.account.acceptTrades;
                gameChallengeResponse.to.adminRole        = client.account.adminRole;
                gameChallengeResponse.to.userType         = "Beta";

                client.Send(gameChallengeResponse);
                opponentSession.Send(gameChallengeResponse);
            }
        }
Exemplo n.º 6
0
        public static void GameChallengeRequest(Client client, string jsonPacketData)
        {
            client.packetMap.Remove("GameChallengeRequest");

            GameChallengeRequest gameChallengeRequest = JsonConvert.DeserializeObject<GameChallengeRequest>(jsonPacketData);
            Client opponentSession = PlayerAPI.GetSession(gameChallengeRequest.profile, true);

            if (PlayerAPI.IsOnline(opponentSession.account.username))
            {
                if (client.account.deckMap.ContainsKey(gameChallengeRequest.deck))
                {
                    client.account.challengeMap.Add(opponentSession.account.username, gameChallengeRequest.deck);

                    OkMessage okMessage = new OkMessage();
                    okMessage.op = "GameChallengeRequest";

                    client.Send(okMessage);

                    GameChallenge gameChallenge = new GameChallenge();
                    gameChallenge.from.id               = client.account.id;
                    gameChallenge.from.userUuid         = "";
                    gameChallenge.from.name             = client.account.username;
                    gameChallenge.from.acceptChallenges = client.account.acceptChallenges;
                    gameChallenge.from.acceptTrades     = client.account.acceptTrades;
                    gameChallenge.from.adminRole        = client.account.adminRole;
                    gameChallenge.from.userType         = "Beta";

                    opponentSession.Send(gameChallenge);
                }
                else
                {
                    Console.WriteLine("{0} is trying to challenge {1} with the deck {2} which they don't own!", client.account.username, opponentSession.account.username, gameChallengeRequest.deck);
                    PlayerAPI.KickPlayer(client, "AntiCheat: You have been disconnected from the server!");
                }
            }
            else
            {
                Console.WriteLine("{0} is trying to challenge someone who is offline or doesn't exist!", opponentSession.account.username);
                PlayerAPI.KickPlayer(client, "AntiCheat: You have been disconnected from the server!");
            }
        }
Exemplo n.º 7
0
        public static void TradeSetGold(Client client, string jsonPacketData)
        {
            client.packetMap.Remove("TradeSetGold");

            TradeSetGold tradeSetGold = JsonConvert.DeserializeObject<TradeSetGold>(jsonPacketData);

            if (client.account.tradeStatus.trading)
            {
                Client opponentSession = PlayerAPI.GetSession(client.account.tradeStatus.partner, false);

                if (opponentSession != null && client.account.gold >= tradeSetGold.gold)
                {
                    client.account.tradeStatus.gold = tradeSetGold.gold;

                    TradeViewUpdate(client, opponentSession);

                    OkMessage okMessage = new OkMessage();
                    okMessage.op = "TradeSetGold";

                    client.Send(okMessage);
                }
            }
        }
Exemplo n.º 8
0
        public static void TradeInvite(Client client, string jsonPacketData)
        {
            client.packetMap.Remove("TradeInvite");

            TradeInvite tradeInvite = JsonConvert.DeserializeObject<TradeInvite>(jsonPacketData);
            Client opponentSession = PlayerAPI.GetSession(tradeInvite.profile, true);

            if (opponentSession != null)
            {
                if (!client.account.tradeRequestList.Contains(opponentSession.account.username) && !opponentSession.account.tradeStatus.trading)
                {
                    client.account.tradeRequestList.Add(opponentSession.account.username);

                    OkMessage okMessage = new OkMessage();
                    okMessage.op = "TradeInvite";

                    client.Send(okMessage);

                    TradeInviteForward tradeInviteForward = new TradeInviteForward();
                    tradeInviteForward.inviter = PlayerAPI.UserInfo(client);

                    opponentSession.Send(tradeInviteForward);
                }
            }
        }
Exemplo n.º 9
0
        public static void TradeAddCards(Client client, string jsonPacketData)
        {
            client.packetMap.Remove("TradeAddCards");

            TradeAddCards tradeAddCards = JsonConvert.DeserializeObject<TradeAddCards>(jsonPacketData);

            if (client.account.tradeStatus.trading)
            {
                Client opponentSession = PlayerAPI.GetSession(client.account.tradeStatus.partner, false);

                if (opponentSession != null)
                {
                    TradeDeckInvalidationWarning tradeDeckInvalidationWarning = new TradeDeckInvalidationWarning();

                    foreach (int cardId in tradeAddCards.cardIds)
                    {
                        if (CardAPI.Exists(client, cardId))
                        {
                            foreach (KeyValuePair<string, Deck> deck in client.account.deckMap)
                            {
                                foreach (Card deckCard in deck.Value.cards)
                                {
                                    if (deckCard.id == cardId)
                                    {
                                        tradeDeckInvalidationWarning.deckNames.Add(deck.Value.name);
                                        break;
                                    }
                                }
                            }

                            client.account.tradeStatus.cardIds.Add(cardId);
                        }
                    }

                    if (tradeDeckInvalidationWarning.deckNames.Count > 0)
                    {
                        client.Send(tradeDeckInvalidationWarning);
                    }

                    TradeViewUpdate(client, opponentSession);

                    OkMessage okMessage = new OkMessage();
                    okMessage.op = "TradeAddCards";

                    client.Send(okMessage);
                }
            }
        }
Exemplo n.º 10
0
        public static void SelectPreconstructed(Client client, string jsonPacketData)
        {
            client.packetMap.Remove("SelectPreconstructed");

            int lastId;
            string cards   = "";
            int resourceId = 0;

            SelectPreconstructed selectPreconstructed = JsonConvert.DeserializeObject<SelectPreconstructed>(jsonPacketData);

            Deck deck = new Deck();
            deck.name      = selectPreconstructed.resourceType.Substring(0, 1) + selectPreconstructed.resourceType.ToLower().Remove(0, 1) + " Preconstructed";
            deck.timestamp = DateTime.Now.Ticks;
            deck.metadata  = "";
            deck.valid     = true;

            deck.resources.Add(selectPreconstructed.resourceType);

            client.connection.Open();

            List<int> cardTypeList = Variables.deckTypeMap[selectPreconstructed.resourceType];

            foreach (int cardType in cardTypeList)
            {
                DB.Database.Execute(client.connection, out lastId, false, false, "INSERT INTO account_cards VALUES (0, ?, ?, 0, 0, 0);", client.account.id, cardType);

                cards += lastId + "|";

                Card card = new Card();
                card.id       = lastId;
                card.typeId   = cardType;
                card.tradable = false;
                card.isToken  = false;
                card.level    = 0;

                deck.cards.Add(card);
                client.account.cardMap.Add(card.id, card);
            }

            DB.Database.Execute(client.connection, out lastId, false, false, "INSERT INTO account_decks VALUES (0, ?, ?, ?, ?, \"\", ?, 1);", client.account.id, deck.name, selectPreconstructed.resourceType, deck.timestamp, cards.TrimEnd('|'));

            switch (selectPreconstructed.resourceType)
            {
                case "DECAY":  { resourceId = 4; break; }
                case "ENERGY": { resourceId = 1; break; }
                case "GROWTH": { resourceId = 2; break; }
                case "ORDER":  { resourceId = 3; break; }
            }

            DB.Database.Execute(client.connection, out lastId, false, true, "UPDATE account_data SET selectedPreconstructed = ? WHERE guid = ?", resourceId, client.account.id);

            client.account.deckMap.Add(deck.name, deck);

            OkMessage okMessage = new OkMessage();
            okMessage.op = "SelectPreconstructed";

            client.Send(okMessage);
        }