예제 #1
0
        static public void CreatePackage(RequestContext request)
        {
            int userstate = UserHandler.AuthUser(request);

            if (userstate == 2)     //adminrechte benötigt
            {
                int         counter     = 0;
                DummyCard[] cards       = new DummyCard[5];
                string[]    jsonStrings = PrepareJsonStrings(request.Message);
                foreach (string s in jsonStrings)
                {
                    cards[counter] = JsonConvert.DeserializeObject <DummyCard>(jsonStrings[counter]);
                    counter++;
                }

                try
                {
                    CardsPacksDatabaseHandler.InsertPackage(cards);
                    Output.WriteConsole(Output.PackageAddedSuccess);
                }
                catch (Exception e)
                {
                    Output.WriteConsole(e.Message);
                }

                return;
            }

            if (userstate == 1)
            {
                Output.WriteConsole(Output.PermissionsDenied);
                return;
            }
            Output.WriteConsole(Output.AuthError);
        }
예제 #2
0
        public void Package_String_Handling_Damage()
        {
            int counter = 0;

            DummyCard[] cards = new DummyCard[5];
            string      str   = "[{\"Id\":\"845f0dc7-37d0-426e-994e-43fc3ac83c08\", \"Name\":\"WaterGoblin\", \"Damage\": 10.0}, " +
                                "{\"Id\":\"99f8f8dc-e25e-4a95-aa2c-782823f36e2a\", \"Name\":\"Dragon\", \"Damage\": 50.0}, " +
                                "{\"Id\":\"e85e3976-7c86-4d06-9a80-641c2019a79f\", \"Name\":\"WaterSpell\", \"Damage\": 20.0}, " +
                                "{\"Id\":\"1cb6ab86-bdb2-47e5-b6e4-68c5ab389334\", \"Name\":\"Ork\", \"Damage\": 45.0}, " +
                                "{\"Id\":\"dfdd758f-649c-40f9-ba3a-8657f4b3439f\", \"Name\":\"FireSpell\",    \"Damage\": 25.0}]";

            string[] jsonStrings = PackageHandler.PrepareJsonStrings(str);

            foreach (string s in jsonStrings)
            {
                cards[counter] = JsonConvert.DeserializeObject <DummyCard>(jsonStrings[counter]);
                counter++;
            }

            Assert.AreEqual(cards[0].damage, 10);
            Assert.AreEqual(cards[1].damage, 50);
            Assert.AreEqual(cards[2].damage, 20);
            Assert.AreEqual(cards[3].damage, 45);
            Assert.AreEqual(cards[4].damage, 25);
        }
        static string GDBUjson(User user)
        {
            string jsonStr   = "";
            bool   deckEmpty = true;

            using var conn = new NpgsqlConnection(connString);  //connect to db
            DummyCard card = new DummyCard();

            conn.Open();

            string selectString = String.Format("SELECT id, cardname, damage FROM cards_users WHERE userid = {0} AND in_deck = true", user.uid);

            using (var cmd = new NpgsqlCommand(selectString, conn))
                using (var reader = cmd.ExecuteReader())
                    while (reader.Read())
                    {
                        deckEmpty   = false;
                        card.id     = reader[0].ToString();
                        card.name   = reader[1].ToString();
                        card.damage = (float)((double)reader[2]);
                        jsonStr    += JsonConvert.SerializeObject(card);
                    }

            conn.Close();
            if (deckEmpty)
            {
                return("{}");
            }
            return(jsonStr);
        }
        static public DummyCard GetDummyCard(User user, string cardId)
        {
            DummyCard card    = new DummyCard();
            int       counter = 0;

            using var conn = new NpgsqlConnection(connString);  //connect to db
            conn.Open();

            string selectString = String.Format("SELECT id, cardname, damage FROM cards_users WHERE userid = {0} AND id = '{1}'", user.uid, cardId);

            using (var cmd = new NpgsqlCommand(selectString, conn))
                using (var reader = cmd.ExecuteReader())
                    if (reader.Read())
                    {
                        card.id     = reader[0].ToString();
                        card.name   = reader[1].ToString();
                        card.damage = (float)((double)reader[2]);
                        counter++;
                    }
                    else
                    {
                        card = null;
                    }

            conn.Close();
            return(card);
        }
        static public DummyCard[] GetDummyDeck(User user)
        {
            DummyCard[] deck = new DummyCard[4];
            for (int i = 0; i < 4; i++)
            {
                deck[i] = new DummyCard();
            }
            int counter = 0;

            using var conn = new NpgsqlConnection(connString);  //connect to db
            conn.Open();

            string selectString = String.Format("SELECT id, cardname, damage FROM cards_users WHERE userid = {0} AND in_deck = true", user.uid);

            using (var cmd = new NpgsqlCommand(selectString, conn))
                using (var reader = cmd.ExecuteReader())
                    while (reader.Read())
                    {
                        deck[counter].id     = reader[0].ToString();
                        deck[counter].name   = reader[1].ToString();
                        deck[counter].damage = (float)((double)reader[2]);
                        counter++;
                    }
            conn.Close();
            return(deck);
        }
예제 #6
0
        static public void Trade(RequestContext request)
        {
            int userstate = UserHandler.AuthUser(request);

            if (userstate == 1 || userstate == 2)
            {
                string tradeId = ExtractIdFromRessource(request.Ressource);
                User   user    = UserHandler.GetUserDataByToken(request);
                if (!TradingDatabaseHandler.CheckDealToUser(tradeId, user))
                {
                    string    offeredCardId = request.Message.Trim('"');
                    DummyCard dummyCard     = CardsUsersDatabaseHandler.GetDummyCard(user, offeredCardId);
                    if (dummyCard != null)
                    {
                        ICard card = DummyCardConverter.Convert(dummyCard);
                        if (TradingDatabaseHandler.Trade(tradeId, user, offeredCardId, card.type, card.damage))
                        {
                            TradingDatabaseHandler.DeleteTradingDeal(tradeId);
                            Output.WriteConsole(Output.TradeSuccess);
                            return;
                        }
                        Output.WriteConsole(Output.TradeConditionsNotMet);
                        return;
                    }
                    Output.WriteConsole(Output.TradeInvalidCard);
                    return;
                }
                Output.WriteConsole(Output.TradeSelfTrade);
                return;
            }
            Output.WriteConsole(Output.AuthError);
        }
예제 #7
0
        public void DummyCard_Banana_Fail_Conversion()
        {
            DummyCard card = new DummyCard();

            card.id     = "abc";
            card.damage = 20;
            card.name   = "Banana";

            ICard card2 = DummyCardConverter.Convert(card);

            Assert.AreEqual(card2, null);
        }
예제 #8
0
        public void DummyCard_Knight_Conversion()
        {
            DummyCard card = new DummyCard();

            card.id     = "abc";
            card.damage = 20;
            card.name   = "Knight";

            ICard card2 = DummyCardConverter.Convert(card);

            Assert.AreEqual(card2.element_type, Element_types.Normal);
        }
예제 #9
0
        public void DummyCard_Waterspell_Conversion()
        {
            DummyCard card = new DummyCard();

            card.id     = "abc";
            card.damage = 20;
            card.name   = "WaterSpell";

            ICard card2 = DummyCardConverter.Convert(card);

            Assert.AreEqual(card2.element_type, Element_types.Water);
        }
예제 #10
0
        public void DummyCard_Dragon_Conversion()
        {
            DummyCard card = new DummyCard();

            card.id     = "abc";
            card.damage = 20;
            card.name   = "Dragon";

            ICard card2 = DummyCardConverter.Convert(card);

            Assert.AreEqual(card2.element_type, Element_types.Fire);
        }
예제 #11
0
        public static void AcquirePackage(User user)
        {
            DummyCard[] cards = new DummyCard[5];
            for (int i = 0; i < 5; i++)
            {
                cards[i] = new DummyCard();
            }
            int counter = 0;
            int minId   = 0;

            using var conn = new NpgsqlConnection(connString);
            conn.Open();
            try
            {
                using (var cmd = new NpgsqlCommand("Select min(packid) FROM cards_packs WHERE bought = false", conn))
                    using (var reader = cmd.ExecuteReader())
                        while (reader.Read())
                        {
                            minId = (int)reader[0];
                        }
            }
            catch (Exception e)
            {
                conn.Close();
                throw new Exception(Output.PackageTransactionError);
            }

            string selectString = String.Format("SELECT id, cardname, damage FROM cards_packs WHERE packid = {0}", minId);

            using (var cmd = new NpgsqlCommand(selectString, conn))
                using (var reader = cmd.ExecuteReader())
                    while (reader.Read())
                    {
                        cards[counter].id     = reader[0].ToString();
                        cards[counter].name   = reader[1].ToString();
                        cards[counter].damage = (float)((double)reader[2]);
                        counter++;
                    }

            using (var cmd = new NpgsqlCommand("UPDATE cards_packs SET bought = true WHERE packid = @id", conn))
            {      //adding parameters
                cmd.Parameters.AddWithValue("@id", minId);
                cmd.Prepare();
                cmd.ExecuteNonQuery();
            }
            conn.Close();

            CardsUsersDatabaseHandler.InsertPackage(cards, user);
        }
    private void CreateCardOption(Card card, int counter)
    {
        float imageOffset = cardWidth;

        contentWidth += cardWidth;
        if (counter > 0)
        {
            imageOffset  += cardWidth / 4;
            contentWidth += cardWidth / 4;
        }
        imageOffset *= counter;
        DummyCard newDummyCard = Instantiate(dummycard, new Vector2(transform.position.x + imageOffset, transform.position.y), Quaternion.identity);

        newDummyCard.transform.SetParent(cardHolder.transform);
        newDummyCard.SetupDummyCard(card);

        cardOptions.Add(newDummyCard);
    }