예제 #1
0
        public async Task <IActionResult> Edit(int id, [Bind("MagicCardId,Name,Color,Power,Toughness,Description,Type,ManaCost,MultiverseId,IdentityUserId,ImageUrl,CardsAmount,Price")] MagicCard magicCard)
        {
            if (id != magicCard.MagicCardId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(magicCard);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!MagicCardExists(magicCard.MagicCardId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IdentityUserId"] = new SelectList(_context.Users, "Id", "Id", magicCard.IdentityUserId);
            return(View(magicCard));
        }
예제 #2
0
 private void UnselectPiece()
 {
     selectedPiece     = null;
     isPieceSelected   = false;
     isMagicReady      = false;
     selectedMagicCard = null;
 }
예제 #3
0
        public Card GetCard(string paramNAME)
        {
            string sqlcmd      = "SELECT * FROM CARD";
            string whereclause = "WHERE NAME = ?";

            using (IDbConnection connection = database.CreateOpenConnection())
            {
                using (IDbCommand command = database.CreateCommand(sqlcmd + " " + whereclause, connection))
                {
                    IDbDataParameter p1 = command.CreateParameter(); command.Parameters.Add(p1);

                    byte[] bytes = System.Text.Encoding.UTF8.GetBytes(paramNAME);
                    p1.Value = System.Text.Encoding.Default.GetString(bytes);

                    using (IDataReader reader = command.ExecuteReader())
                    {
                        if (!reader.Read())
                        {
                            return(null);
                        }

                        MagicCard card = new MagicCard(true);
                        card.Name         = ReadCleanString(reader["name"]);
                        card.ManaCost     = reader["cost"].ToString();
                        card.PowTgh       = reader["PowTgh"].ToString();
                        card.Multiverseid = Convert.ToInt32(reader["Id"].ToString());
                        card.Rule         = ReadCleanString(reader["Rule"]);
                        card.Type         = reader["Type"].ToString();
                        card.Extension    = reader["Extension"].ToString();
                        card.Rarity       = reader["Rarity"].ToString();
                        return(card);
                    }
                }
            }
        }
예제 #4
0
        public ICard CreateCard(string type, string name)
        {
            //Type cardType = Assembly.GetExecutingAssembly()
            //    .GetTypes()
            //    .FirstOrDefault(t => t.Name.StartsWith(type));

            //var card = Activator.CreateInstance(cardType, name) as ICard;

            //return card;

            ICard card = null;

            switch (type)
            {
            case "Trap":
                card = new TrapCard(name);
                break;

            case "Magic":
                card = new MagicCard(name);
                break;
            }

            return(card);
        }
예제 #5
0
        private MagicCard GetCardFromText(string text)
        {
            int    blank = text.IndexOf(" ");
            int    amount;
            string name;

            if (blank > 0)
            {
                amount = Convert.ToInt32(text.Substring(0, blank).Trim());
                name   = text.Substring(blank).Trim();
            }
            else
            {
                amount = 1;
                name   = text.Trim();
            }

            ArchivistDatabase adb  = new ArchivistDatabase();
            MagicCard         card = adb.GetCard(name) as MagicCard;

            if (card == null)
            {
                card = new MagicCard(true)
                {
                    Name   = name,
                    Amount = amount
                };
            }
            else
            {
                card.Amount = amount;
            }

            return(card);
        }
예제 #6
0
        public void CreaturePowerAndShield()
        {
            var card = new MagicCard("Scoria Elemental", "", 6, 1, null);

            Assert.AreEqual(6, card.Power);
            Assert.AreEqual(1, card.Shield);
        }
        public void GetCardValue()
        {
            var dataContext = new MagicOnlineBotDb();

            var card = dataContext.Prices.First(p => p.CardId == 20956);
            var magicCard = new MagicCard(card);
            Console.WriteLine("You get - " + magicCard + " OwnedAmount: " + card.OwnedAmount);
        }
        public ActionResult IndexUpdate()
        {
            MagicCard userInput = new MagicCard(Request.Form["newCardName"], Request.Form["newCardColor"], Request.Form["newCardRarity"], Request.Form["newCardType"], Request.Form["newCardSet"]);

            userInput.Save();

            //Redirects to Index() after posting. This prevents the bug of adding the same items when refreshing after posting. Index doesn't refer to the index.cshtml but rather the function called Index() in this controller. You can add a second parameter after this to specify which controller if needed.
            return(RedirectToAction("Index"));
        }
예제 #9
0
        public void GetAll_DbStartsEmpty_0()
        {
            //Arrange
            //Act
            int result = MagicCard.GetAll().Count;

            //Assert
            Assert.AreEqual(0, result);
        }
예제 #10
0
        public void DragonFamilyName()
        {
            var card = new MagicCard("Dromoka, the Eternal", "", new HashSet <CardType>
            {
                new Creature(5, 5)
            }, new Dragon("Dromoka"));

            Assert.AreEqual("Dromoka", card.FamilyName);
        }
예제 #11
0
        public void Equals_ReturnsTrueIfCardsAreTheSame_Card()
        {
            // Arrange, Act
            MagicCard firstMagicCard  = new MagicCard("1", "1", "1", "1", "1", 1);
            MagicCard secondMagicCard = new MagicCard("1", "1", "1", "1", "1", 1);
            bool      isSame          = firstMagicCard.Equals(secondMagicCard);

            // Assert
            Assert.AreEqual(isSame, true);
        }
예제 #12
0
        public void OverlappingName()
        {
            var card = new MagicCard("Spined Thopter", "Flying", new HashSet <CardType>
            {
                new Artifact(),
                new Creature(2, 1)
            }, null);

            Assert.AreEqual("Artifact Creature", card.Type);
        }
예제 #13
0
        public ICard CreateCard(string type, string name)
        {
            ICard card = new MagicCard(name);

            if (type == "Trap")
            {
                card = new TrapCard(name);
            }

            return(card);
        }
예제 #14
0
        private void DebugCard(MagicCard card)
        {
            cardArtImage.Image = card.cardArtBitmap;
            cardImage.Image    = card.cardBitmap;

            cardInfo.Text = "Card Name: " + card.referenceCard.Name + Environment.NewLine +
                            "Set: " + (String)card.referenceCard.dataRow["Set"] + Environment.NewLine +
                            "Type: " + (String)card.referenceCard.dataRow["Type"] + Environment.NewLine +
                            "Casting Cost: " + (String)card.referenceCard.dataRow["Cost"] + Environment.NewLine +
                            "Rarity: " + (String)card.referenceCard.dataRow["Rarity"] + Environment.NewLine +
                            "Hamming: " + card.hammingValue + Environment.NewLine +
                            "Area: " + card.area;
        }
예제 #15
0
        public void Save_SavesCardToDatabase_MagicCardList()
        {
            MagicCard testCard = new MagicCard("1", "1", "1", "1", "1", 1);

            testCard.Save();

            List <MagicCard> result   = MagicCard.GetAll();
            List <MagicCard> testList = new List <MagicCard> {
                testCard
            };

            CollectionAssert.AreEqual(testList, result);
        }
예제 #16
0
        public void Find_FindMagicCardDatabase_MagicCard()
        {
            //Arrange
            MagicCard testMagicCard = new MagicCard("1", "2", "2", "2", "2", 1);

            testMagicCard.Save();

            //Act
            MagicCard foundMagicCard = MagicCard.Find(testMagicCard.GetId());

            //Assert
            Assert.AreEqual(testMagicCard, foundMagicCard);
        }
예제 #17
0
        private void GetCards()
        {
            var allcards = ListOfxmlDatabase.Select(doc => doc.Descendants("card").ToList()).SelectMany(query => query);
            foreach (var card in allcards)
            {
                var tmpCard = new MagicCard
                {
                    Id = Convert.ToInt32(card.Element("id")?.Value),
                    Name = card.Element("name")?.Value,
                    Set = card.Element("set")?.Value,
                    PathOfCardImage = card.Element("pathofcardimage")?.Value
                };
                //get list of pHashes
                var phashes = card.Element("phashes")?.Elements("phash").ToList();
                phashes?.ForEach(o => tmpCard.PHashes.Add(Convert.ToUInt64(o.Value)));

                ListOfAllMagicCards.Add(tmpCard);
            }

            //Task.Run(() =>
            //{
            //    var tmpCard = new MagicCard
            //    {
            //        Id = Convert.ToInt32(card.Element("id")?.Value),
            //        Name = card.Element("name")?.Value,
            //        Set = card.Element("set")?.Value,
            //        Type = card.Element("type")?.Value,
            //        Rarity = card.Element("rarity")?.Value,
            //        Manacost = card.Element("manacost")?.Value,
            //        ConvertedManaCost = Convert.ToInt32(GetNullableElementValue(card, "converted_manacost")),
            //        Power = card.Element("power")?.Value,
            //        Toughness = card.Element("toughness")?.Value,
            //        Loyalty = Convert.ToInt32(GetNullableElementValue(card, "loyalty")),
            //        Ability = card.Element("ability")?.Value,
            //        Flavor = card.Element("flavor")?.Value,
            //        Variation = Convert.ToInt32(GetNullableElementValue(card, "variation")),
            //        Artist = card.Element("artist")?.Value,
            //        Number = card.Element("number")?.Value,
            //        Rating = Convert.ToDouble(GetNullableElementValue(card, "rating")),
            //        Ruling = card.Element("ruling")?.Value,
            //        Color = card.Element("color")?.Value,
            //        GeneratedMana = card.Element("generated_mana")?.Value,
            //        BackId = Convert.ToInt32(GetNullableElementValue(card, "back_id")),
            //        WaterMark = card.Element("watermark")?.Value,
            //        PrintNumber = card.Element("print_number")?.Value,
            //        IsOriginal = Convert.ToBoolean(GetNullableElementValue(card, "is_original"))
            //    };
            //    ListOfAllMagicCards.Add(tmpCard);
            //});
        }
예제 #18
0
 public string AddCard(string type, string name)
 {
     if (type == "Magic")
     {
         Card card = new MagicCard(name);
         cardRepository.Add(card);
     }
     else if (type == "Trap")
     {
         Card card = new TrapCard(name);
         cardRepository.Add(card);
     }
     return(string.Format(ConstantMessages.SuccessfullyAddedCard, type, name));
 }
예제 #19
0
 public ICard CreateCard(string type, string name)
 {
     if (type == "Magic")
     {
         MagicCard magicCard = new MagicCard(name);
         return(magicCard);
     }
     else if (type == "Trap")
     {
         TrapCard trapCard = new TrapCard(name);
         return(trapCard);
     }
     return(null);
 }
예제 #20
0
 public string AddCard(string type, string name)
 {
     if (type == "Magic")
     {
         var card = new MagicCard(name);
         cardRepository.Add(card);
         return($"Successfully added card of type {type}Card with name: {name}");
     }
     else
     {
         var card = new TrapCard(name);
         cardRepository.Add(card);
         return($"Successfully added card of type {type}Card with name: {name}");
     }
 }
예제 #21
0
        public ICard CreateCard(string type, string name)
        {
            ICard cardToCreate = null;

            if (type.ToLower() == "magic".ToLower())
            {
                cardToCreate = new MagicCard(name);
            }
            else if (type.ToLower() == "trap".ToLower())
            {
                cardToCreate = new TrapCard(name);
            }

            return(cardToCreate);
        }
예제 #22
0
 public string AddCard(string type, string name)
 {
     if (type == "Trap")
     {
         TrapCard trapCard = new TrapCard(name);
         cardRepository.Add(trapCard);
         return($"Successfully added card of type TrapCard with name: {trapCard.Name}");
     }
     else if (type == "Magic")
     {
         MagicCard magicCard = new MagicCard(name);
         cardRepository.Add(magicCard);
         return($"Successfully added card of type MagicCard with name: {magicCard.Name}");
     }
     return(null);
 }
예제 #23
0
        public void Save_DatabaseAssignsIdToObject_Id()
        {
            //Arrange
            MagicCard testMagicCard  = new MagicCard("1", "1", "1", "1", "1", 1);
            MagicCard testMagicCard2 = new MagicCard("1", "1", "1", "1", "1", 1);

            //Act
            testMagicCard.Save();
            MagicCard savedCard = MagicCard.GetAll()[0];

            int result = savedCard.GetId();
            int testId = testMagicCard.GetId();

            //Assert
            Assert.AreEqual(testId, result);
        }
예제 #24
0
        public string AddCard(string type, string name)
        {
            ICard card;

            if (type == "Magic")
            {
                card = new MagicCard(name);
            }
            else
            {
                card = new TrapCard(name);
            }
            this.cards.Add(card);

            return($"Successfully added card of type {card.GetType().Name} with name: {card.Name}");
        }
예제 #25
0
        public string AddCard(string type, string name)
        {
            ICard card = null;

            if (type == "Magic")
            {
                card = new MagicCard(name);
            }
            else if (type == "Trap")
            {
                card = new TrapCard(name);
            }
            this.cardRepository.Add(card);

            return($"Successfully added card of type {type}Card with name: {name}");
        }
예제 #26
0
        public ICard CreateCard(string type, string name)
        {
            ICard card = null;

            switch (type.ToLower())
            {
            case "trap":
                card = new TrapCard(name);
                break;

            case "magic":
                card = new MagicCard(name);
                break;
            }
            return(card);
        }
        public string AddCard(string type, string name)
        {
            ICard card = null;

            if (type == "Trap")
            {
                card = new TrapCard(name);
            }
            else if (type == "Magic")
            {
                card = new MagicCard(name);
            }

            this.cardRepository.Add(card);

            return(string.Format(OutputMessages.SuccessfullyAddedCard, type, name));
        }
예제 #28
0
        public string AddCard(string type, string name)
        {
            string result = $"Successfully added card of type {type}Card with name: {name}";

            // Creates a card$ with the provided type and name.The method should return the following message:
            if (type == "Magic")
            {
                var newCard = new MagicCard(name);
                this.cardRepo.Add(newCard);
            }
            else
            {
                var newCard = new TrapCard(name);
                this.cardRepo.Add(newCard);
            }
            return(result);
        }
예제 #29
0
        public string AddCard(string type, string name)
        {
            ICard card = null;

            switch (type)
            {
            case "Magic":
                card = new MagicCard(name);
                break;

            case "Trap":
                card = new TrapCard(name);
                break;
            }
            this.cardRepository.Add(card);
            return($"Successfully added card of type {type}Card with name: {name}");
        }
예제 #30
0
        public Selector(SpriteBatch spriteBatch, Card card)
        {
            // Make card selector outline
            line = new Texture2D(spriteBatch.GraphicsDevice, 1, 1);
            line.SetData <Color>(new Color[] { Color.White });
            lineWidth = 4;

            // Other selector variables
            color        = Color.Black;
            selected     = card;
            attacking    = null; //idk
            summoning    = null; //idk
            settingMagic = null; //idk
            settingTrap  = null; //idk
            state        = SelectedState.P1_HAND;
            action       = SelectedAction.NONE;
            index        = 0;
        }
        public string AddCard(string type, string name)
        {
            ICard card = null;

            if (type == "MagicCard")
            {
                card = new MagicCard(name);
            }

            else if (type == "TrapCard")
            {
                card = new TrapCard(name);
            }

            cardRepository.Add(card);

            return($"{string.Format(ConstantMessages.SuccessfullyAddedCard, type, name)}");
        }
        public string AddCard(string type, string name)
        {
            if (type == "Magic")
            {
                ICard card = new MagicCard(name);
                this.cardRepository.Add(card);

                return(string.Format(ConstantMessages.SuccessfullyAddedCard, "Magic", name));
            }
            if (type == "Trap")
            {
                ICard card = new TrapCard(name);
                this.cardRepository.Add(card);

                return(string.Format(ConstantMessages.SuccessfullyAddedCard, "Trap", name));
            }
            return("");
        }
        public void OwnedAmountIsPopulatedInCardList()
        {
            var dataContext = new MagicOnlineBotDb();

            var card = dataContext.Prices.First(p => p.CardId == 20956);
            var magicCard = new MagicCard(card);
            Console.WriteLine("You get - " + magicCard + " OwnedAmount: " + card.OwnedAmount);
            card.OwnedAmount += 7;
            dataContext.SubmitChanges();

            var wishListCards = IoC.GetInstance<IMagicCardList>().GetComprehensiveCommonsAndUncommons(8, 2);
            Console.WriteLine(wishListCards.FirstOrDefault(p => p.Value.OwnedAmount > 0));

            card = dataContext.Prices.First(p => p.CardId == 12);
            magicCard = new MagicCard(card);
            Console.WriteLine("You get - " + magicCard + " OwnedAmount: " + card.OwnedAmount);
            card.OwnedAmount -= 7;
            dataContext.SubmitChanges();

            IoC.GetInstance<IMagicCardList>().InvalidateCache();

            wishListCards = IoC.GetInstance<IMagicCardList>().GetComprehensiveCommonsAndUncommons(8, 2);
            Console.WriteLine(wishListCards.FirstOrDefault(p => p.Value.OwnedAmount > 0));
        }
        public MagicCard NewCard(MagicCard magicCard)
        {
            if (magicCard != null)
            {
                var newCard = magicCard.Clone();
                newCard.CopiesOfCard = 1;
                return newCard;
            }

            _logger.Error("Card was not found.");
            return null;
        }
예제 #35
0
		public void addItem (MagicCard p)
		{
				asental.Add (p);
		}
        protected void AddCardToDictionary(MagicCard card, Dictionary<int, MagicCard> cardsYouGet)
        {
            if (card == null) return;

            _logger.TraceFormat("Adding card {0} to cards you get.", card);
            if (cardsYouGet.ContainsKey(card.Id))
            {
                cardsYouGet[card.Id].CopiesOfCard++;
            }
            else
            {
                cardsYouGet[card.Id] = card;
            }
        }
 protected static void AddCardToDictionary(MagicCard card, IDictionary<int, MagicCard> cardsYouGet)
 {
     if (cardsYouGet.ContainsKey(card.NumberId))
     {
         cardsYouGet[card.NumberId].CopiesOfCard++;
     }
     else
     {
         cardsYouGet[card.NumberId] = card;
     }
 }
예제 #38
0
        public void DetectQuads()
        {
            // Greyscale
            FilteredBitmap = Grayscale.CommonAlgorithms.BT709.Apply(CameraBitmap);

            // edge filter
            var edgeFilter = new SobelEdgeDetector();
            edgeFilter.ApplyInPlace(FilteredBitmap);

            // Threshhold filter
            var threshholdFilter = new Threshold(190);
            threshholdFilter.ApplyInPlace(FilteredBitmap);

            var bitmapData = FilteredBitmap.LockBits(
                new Rectangle(0, 0, FilteredBitmap.Width, FilteredBitmap.Height),
                ImageLockMode.ReadWrite, FilteredBitmap.PixelFormat);

            var blobCounter = new BlobCounter
            {
                FilterBlobs = true,
                MinHeight = 125,
                MinWidth = 125
            };

            blobCounter.ProcessImage(bitmapData);
            var blobs = blobCounter.GetObjectsInformation();
            FilteredBitmap.UnlockBits(bitmapData);

            var shapeChecker = new SimpleShapeChecker();

            var bm = new Bitmap(FilteredBitmap.Width, FilteredBitmap.Height, PixelFormat.Format24bppRgb);

            var g = Graphics.FromImage(bm);
            g.DrawImage(FilteredBitmap, 0, 0);

            var pen = new Pen((Color)new ColorConverter().ConvertFromString(Application.Current.Resources["AccentColor"].ToString()), 5);
            var cardPositions = new List<IntPoint>();

            // Loop through detected shapes
            for (int i = 0, n = blobs.Length; i < n; i++)
            {
                var edgePoints = blobCounter.GetBlobsEdgePoints(blobs[i]);
                List<IntPoint> corners;
                var sameCard = false;

                // is triangle or quadrilateral
                if (shapeChecker.IsQuadrilateral(edgePoints, out corners))
                {
                    if (!corners.Any())
                        return;
                    // get sub-type
                    var subType = shapeChecker.CheckPolygonSubType(corners);

                    // Only return 4 corner rectanges
                    if ((subType != PolygonSubType.Parallelogram && subType != PolygonSubType.Rectangle) || corners.Count != 4)
                        continue;

                    // Check if its sideways, if so rearrange the corners so it's veritcal
                    RearrangeCorners(corners);

                    // Prevent it from detecting the same card twice
                    foreach (var point in cardPositions)
                    {
                        var distance = corners[0].DistanceTo(point);
                        if (corners[0].DistanceTo(point) < 40)
                            sameCard = true;
                    }

                    if (sameCard)
                        continue;

                    // Hack to prevent it from detecting smaller sections of the card instead of the whole card
                    var area = GetArea(corners);

                    if (area < 20000)// || area > 35000)
                        continue;

                    cardPositions.Add(corners[0]);

                    g.DrawPolygon(pen, ToPointsArray(corners));

                    // Extract the card bitmap
                    var transformFilter = new QuadrilateralTransformation(corners, 225, 325);
                    CardBitmap = transformFilter.Apply(CameraBitmap);
                    TmpCard = new MagicCard
                    {
                        Corners = corners,
                        CardBitmap = CardBitmap
                    };
                }
            }

            pen.Dispose();
            g.Dispose();

            FilteredBitmap = bm;
        }