예제 #1
0
        // GET: Deck/DeckDetail
        //CHANGE PARAMETER TO INT FOR FINAL - JON
        public ActionResult DeckDetail(int?deckId)
        {
            DeckDetailViewModel result = new DeckDetailViewModel();

            if (TempData["UpdateSuccess"] != null)
            {
                result.UpdateSuccessMessage = TempData["UpdateSuccess"] as string;
            }

            //FOR TESTING ONLY:
            if (!deckId.HasValue)
            {
                deckId = TempData["deckId"] as int?;
            }
            int             id    = deckId.Value;
            DeckItem        deck  = _db.GetDeck(id);
            List <CardItem> cards = _db.GetAllCardsForDeck(id);

            foreach (CardItem card in cards)
            {
                card.Tags = _db.GetAllTagsForCard(card.Id);
            }
            deck.Cards  = cards;
            result.Deck = deck;

            return(View("DeckDetail", result));
        }
예제 #2
0
        /// <summary>
        /// Add Deck to Database (Without Any Cards)
        /// </summary>
        /// <param name="deck">DeckItem Object</param>
        /// <returns>DeckItem Object with Id added</returns>
        public DeckItem AddDeck(DeckItem deck)
        {
            DeckItem result = deck;

            //Connect to Database
            using (SqlConnection conn = new SqlConnection(_connectionString))
            {
                conn.Open();

                //Create sql statement
                string sqlInsertDeck = "INSERT INTO [Deck] (UserId, Name, Description) " +
                                       $"VALUES (@UserId, @Name, @Description); " +
                                       "SELECT CAST(scope_identity() as int); ";

                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = sqlInsertDeck;
                cmd.Connection  = conn;
                cmd.Parameters.AddWithValue("@UserId", deck.UserID);
                cmd.Parameters.AddWithValue("@Name", deck.Name);
                cmd.Parameters.AddWithValue("@Description", deck.Description);

                int?newId = (int?)cmd.ExecuteScalar();

                if (!newId.HasValue)
                {
                    throw new Exception("DATABASE ERROR: Deck could not be added.");
                }

                int deckId = newId.Value;
                result.Id = deckId;
            }
            return(result);
        }
예제 #3
0
        /// <summary>
        /// Add a card to a deck in the database
        /// </summary>
        /// <param name="cardId">id of card to be added to deck</param>
        /// <param name="deckId">id of deck to recieve new card</param>
        /// <returns>Updated deck item</returns>
        public DeckItem AddCardToDeck(int cardId, int deckId)
        {
            DeckItem deckItem = new DeckItem();

            //Connect to Database
            using (SqlConnection conn = new SqlConnection(_connectionString))
            {
                conn.Open();

                //Create sql statement
                string sqlInsertCard = "INSERT INTO [Deck_Card] (DeckId, CardId) " +
                                       "VALUES(@deckId, @cardId); ";

                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = sqlInsertCard;
                cmd.Connection  = conn;
                cmd.Parameters.AddWithValue("@deckId", deckId);
                cmd.Parameters.AddWithValue("@cardId", cardId);

                ////Send command to database

                int rowsAffected = cmd.ExecuteNonQuery();


                if (rowsAffected == 0)
                {
                    throw new Exception("DATABASE ERROR: Card could not be added.");
                }

                //int cardId = newId.Value;
            }
            return(deckItem);
        }
예제 #4
0
        /// <summary>
        /// Returns a DeckItem object based on id (Does not currently return card list)
        /// </summary>
        /// <param name="deckId">id of deck</param>
        /// <returns>Deck</returns>
        public DeckItem GetDeck(int deckId)
        {
            DeckItem deckItem = new DeckItem();
            string   sql      = "SELECT deck.Id, deck.UserId, deck.Name, deck.Description, COUNT(Deck_Card.CardId) as CardCount " +
                                $"FROM [Deck] " +
                                $"LEFT JOIN [Deck_Card] ON Deck.Id = Deck_Card.DeckId " +
                                $"WHERE deck.Id = @Id " +
                                "GROUP BY Deck_Card.DeckId, deck.userId, deck.Id, deck.Name, deck.Description;";

            using (SqlConnection conn = new SqlConnection(_connectionString))
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(sql, conn);
                cmd.Parameters.AddWithValue("@Id", deckId);

                //Send command to database
                SqlDataReader reader = cmd.ExecuteReader();

                //Pull data off of result set
                while (reader.Read())
                {
                    DeckItem newDeck = new DeckItem();

                    newDeck.Id          = Convert.ToInt32(reader["Id"]);
                    newDeck.Name        = Convert.ToString(reader["Name"]);
                    newDeck.UserID      = Convert.ToInt32(reader["UserId"]);
                    newDeck.Description = Convert.ToString(reader["Description"]);
                    newDeck.CardCount   = Convert.ToInt32(reader["CardCount"]);

                    deckItem = newDeck;
                }
            }
            return(deckItem);
        }
예제 #5
0
    public override void Initialize()
    {
        string []         suits = new string[] { "Heart", "Spades", "Diamond", "Club" };
        List <CardStruct> defs  = new List <CardStruct>();

        for (int i = 0; i < 4; ++i)
        {
            string symbol = suits[i];
            defs.Add(new CardStruct("A", symbol, 1));
            defs.Add(new CardStruct("2", symbol, 2));
            defs.Add(new CardStruct("3", symbol, 3));
            defs.Add(new CardStruct("4", symbol, 4));
            defs.Add(new CardStruct("5", symbol, 5));
            defs.Add(new CardStruct("6", symbol, 6));
            defs.Add(new CardStruct("7", symbol, 7));
            defs.Add(new CardStruct("8", symbol, 8));
            defs.Add(new CardStruct("9", symbol, 9));
            defs.Add(new CardStruct("10", symbol, 10));
            defs.Add(new CardStruct("J", symbol, 11));
            defs.Add(new CardStruct("Q", symbol, 12));
            defs.Add(new CardStruct("K", symbol, 13));
        }

        deckItems = new DeckItem[52];
        for (int i = 0; i < defs.Count; ++i)
        {
            DeckItem item = new DeckItem();
            item.Card    = defs[i];
            deckItems[i] = item;
        }
    }
예제 #6
0
        public bool UpdateDeck(DeckItem deck, int deckId)
        {
            bool wasSuccessful = true;

            //Connect to database
            using (SqlConnection conn = new SqlConnection(_connectionString))
            {
                conn.Open();

                //Create SQL statement
                const string sqlUpdateDeck = "UPDATE [Deck] SET Name = @Name, Description = @Description WHERE Id = @Id;";

                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = sqlUpdateDeck;
                cmd.Connection  = conn;
                cmd.Parameters.AddWithValue("@Name", deck.Name);
                cmd.Parameters.AddWithValue("@Description", deck.Description);
                cmd.Parameters.AddWithValue("@Id", deck.Id);

                //Send command to database
                int rowsAffected = cmd.ExecuteNonQuery();

                if (rowsAffected == 0)
                {
                    wasSuccessful = false;
                }
            }
            return(wasSuccessful);
        }
예제 #7
0
        // GET: Index
        public ActionResult Index(int?deckId)
        {
            int id = 0;

            //REMOVE OPTIONAL AFTER TESTING - Jon
            if (!deckId.HasValue)
            {
                id = 1;
            }
            else
            {
                id = deckId.Value;
            }
            // Get Data for view model
            DeckItem deck = _db.GetDeck(id);

            deck.Cards = _db.GetAllCardsForDeck(id);
            StudyDeck studyDeck = new StudyDeck
            {
                Deck = deck
            };
            bool sessionStarted = StartStudyDeckSession(studyDeck);

            //Add data to view model
            StudyIndexViewModel IndexView = new StudyIndexViewModel
            {
                StudyDeck      = studyDeck,
                SessionStarted = sessionStarted
            };

            return(View("Index", IndexView));
        }
예제 #8
0
        /// <summary>
        /// Update deck in database
        /// </summary>
        /// <param name="deck">Updated Deck Object</param>
        /// <param name="deckId">id of deck in database to be updated</param>
        /// <returns>updated deck from database</returns>
        public bool UpdateDeck(DeckItem deck, int deckId)
        {
            DeckItem deckOld = GetDeck(deckId);

            deck.Name         = deckOld.Name;
            deck.Id           = deckId;
            _decks[deck.Name] = deck;
            //return deck;

            return(true);
        }
예제 #9
0
        //Get Deck/EditDeck
        public ActionResult UpdateDeck(int deckId)
        {
            DeckItem            oldDeck = _db.GetDeck(deckId);
            UpdateDeckViewModel model   = new UpdateDeckViewModel
            {
                DeckId      = deckId,
                Name        = oldDeck.Name,
                Description = oldDeck.Description
            };

            return(View("UpdateDeck", model));
        }
예제 #10
0
        /// <summary>
        /// Get deck by deck id
        /// </summary>
        /// <param name="deckId">id for deck</param>
        /// <returns>deck with id requested</returns>
        public DeckItem GetDeck(int deckId)
        {
            DeckItem result = new DeckItem();

            foreach (KeyValuePair <string, DeckItem> item in _decks)
            {
                if (item.Value.Id == deckId)
                {
                    result = item.Value;
                }
            }
            return(result);
        }
예제 #11
0
    public override void Initialize()
    {
        if (Atlas == null)
        {
            Debug.LogError("CardAtlas is not initialized.");
        }
        if (Stock == null)
        {
            Debug.LogError("CardStock is not initialized.");
        }

        Debug.Log("Atlas = " + Atlas.name);
        string []      suits    = new string[] { "Heart", "Spade", "Diamond", "Club" };
        string []      prefixes = new string[] { "H-", "S-", "D-", "C-" };
        List <CardDef> defs     = new List <CardDef>();

        for (int i = 0; i < 4; ++i)
        {
            //int ii = i*13;
            string symbol = suits[i];
            defs.Add(new CardDef(Atlas, Stock, "A", symbol, 1));
            defs.Add(new CardDef(Atlas, Stock, "2", symbol, 2));
            defs.Add(new CardDef(Atlas, Stock, "3", symbol, 3));
            defs.Add(new CardDef(Atlas, Stock, "4", symbol, 4));
            defs.Add(new CardDef(Atlas, Stock, "5", symbol, 5));
            defs.Add(new CardDef(Atlas, Stock, "6", symbol, 6));
            defs.Add(new CardDef(Atlas, Stock, "7", symbol, 7));
            defs.Add(new CardDef(Atlas, Stock, "8", symbol, 8));
            defs.Add(new CardDef(Atlas, Stock, "9", symbol, 9));
            defs.Add(new CardDef(Atlas, Stock, "10", symbol, 10));
            string  prefix = prefixes[i];
            CardDef jj     = new CardDef(Atlas, Stock, "J", symbol, 0);
            jj.Image = prefix + "Jack";
            defs.Add(jj);
            CardDef qq = new CardDef(Atlas, Stock, "Q", symbol, 0);
            qq.Image = prefix + "Queen";
            defs.Add(qq);
            CardDef kk = new CardDef(Atlas, Stock, "K", symbol, 0);
            kk.Image = prefix + "King";
            defs.Add(kk);
        }

        m_itemList = new DeckItem[52];
        for (int i = 0; i < defs.Count; ++i)
        {
            DeckItem item = new DeckItem();
            item.Count    = 1;
            item.Card     = defs[i];
            m_itemList[i] = item;
        }
    }
예제 #12
0
        public void GetDeckTest()
        {
            //Arrange
            DatabaseSvc testDAL = new DatabaseSvc(_connectionString);

            //Act
            DeckItem deck = testDAL.GetDeck(_deckId1);

            //Assert
            Assert.AreEqual(_deckId1, deck.Id, "Confirm deck id");
            Assert.AreEqual(TestDeckName, deck.Name, "Confirm deck name");
            Assert.AreEqual(TestDeckDescription, deck.Description, "Confirm deck description");
            Assert.AreEqual(1, deck.CardCount, "Confirm number of cards");
        }
예제 #13
0
        public void AddCardToDeckTest()
        {
            //Arrange
            DatabaseSvc testDAL = new DatabaseSvc(_connectionString);

            //Act
            List <CardItem> oldCards = testDAL.GetAllCardsForDeck(_deckId1);
            DeckItem        deck     = testDAL.AddCardToDeck(_cardId2, _deckId1);
            List <CardItem> newCards = testDAL.GetAllCardsForDeck(_deckId1);

            //Assert
            Assert.AreEqual(1, (newCards.Count() - oldCards.Count()), "Confirm number of cards");
            Assert.AreEqual(TestCard1Term, newCards[0].Term, "Confirm old card term");
            Assert.AreEqual(TestCard2Term, newCards[1].Term, "Confirm new card term");
        }
예제 #14
0
        public ActionResult NewDeck(NewDeckViewModel model)
        {
            ActionResult result;

            //Validate the model before proceeding
            if (!ModelState.IsValid)
            {
                result = View("NewDeck", model);
            }
            else
            {
                //make deckitem
                int      userId = GetActiveUserId();
                DeckItem deck   = new DeckItem
                {
                    Name        = model.Name,
                    Description = model.Description,
                    UserID      = userId
                };

                //Attempt add to database
                string errorMessage;
                bool   addDeckSuccess = true;
                try
                {
                    deck = _db.AddDeck(deck);
                }
                catch (Exception e)
                {
                    errorMessage   = e.Message;
                    addDeckSuccess = false;
                }

                //send success/error message
                if (addDeckSuccess)
                {
                    TempData["UpdateSuccess"] = $"{deck.Name} deck creation successful";
                }
                else
                {
                    TempData["ErrorMessage"] = $"DATABASE ERROR: {deck.Name} deck creation failed";
                }


                result = RedirectToAction("ViewDecks");
            }
            return(result);
        }
예제 #15
0
        /// <summary>
        /// Add a deck item to mock database
        /// </summary>
        /// <param name="deck">DeckItem object to be added without id</param>
        /// <returns>DeckItem object with Id</returns>
        public DeckItem AddDeck(DeckItem deck)
        {
            int deckCountOld = _decks.Count();

            //Add to Dictionary
            deck.Id = _deckId++;
            _decks.Add(deck.Name, deck);
            //Check that card was successfully added
            int deckCountNew = _decks.Count();

            if (deckCountNew - deckCountOld != 1)
            {
                throw new Exception("DATABASE ERROR: Deck was not added");
            }
            return(deck);
        }
예제 #16
0
        /// <summary>
        /// Remove a card from a deck
        /// </summary>
        /// <param name="cardId">id of card to be removed</param>
        /// <param name="deckId">id of deck for card to be removed from</param>
        /// <returns>Updated deck</returns>
        public bool RemoveCardFromDeck(int cardId, int deckId)
        {
            //Get card and deck from mock database
            DeckItem deck = GetDeck(deckId);

            foreach (CardItem card in deck.Cards)
            {
                if (card.Id == cardId)
                {
                    deck.Cards.Remove(card);
                }
            }

            //return updated deck to make sure card was added
            deck = GetDeck(deckId);
            return(true);
        }
예제 #17
0
        //Functionality

        /// <summary>
        /// Add a card to a deck
        /// </summary>
        /// <param name="cardId">id of card to add</param>
        /// <param name="deckId">id of deck to be added to</param>
        /// <returns>updated deck with card added</returns>
        public DeckItem AddCardToDeck(int cardId, int deckId)
        {
            //Get card and deck from mock database
            CardItem card = GetCard(cardId);
            DeckItem deck = GetDeck(deckId);

            if (deck.Cards == null)
            {
                deck.Cards = new List <CardItem>();
            }
            deck.Cards.Add(card);
            _decks[deck.Name] = deck;

            //return updated deck to make sure card was added
            deck = GetDeck(deckId);
            return(deck);
        }
예제 #18
0
        /// <summary>
        /// Delete deck from mock database
        /// </summary>
        /// <param name="deckId">id of deck to be deleted</param>
        public bool DeleteDeck(int deckId)
        {
            bool itWorked = true;
            int  oldCount = _decks.Count();

            //Get deckname and remove
            DeckItem deck = GetDeck(deckId);

            _decks.Remove(deck.Name);

            //Confirm deletion
            int newCount = _decks.Count();

            if (!(oldCount - newCount == 1))
            {
                itWorked = false;
            }
            return(itWorked);
        }
예제 #19
0
        public ActionResult UpdateDeck(UpdateDeckViewModel model)
        {
            ActionResult result;
            bool         updateDeckSuccess = true;

            //Validate the model before proceeding
            if (!ModelState.IsValid)
            {
                result = View("ViewDecks");
            }
            else
            {
                //make deckitem
                int      userId = GetActiveUserId();
                DeckItem deck   = new DeckItem
                {
                    Id          = model.DeckId,
                    Name        = model.Name,
                    Description = model.Description,
                    UserID      = userId
                };

                //Attempt add to database

                updateDeckSuccess = _db.UpdateDeck(deck, deck.Id);

                //send success/error message
                if (updateDeckSuccess)
                {
                    TempData["UpdateSuccess"] = $"{deck.Name} deck edit successful";
                }
                else
                {
                    TempData["ErrorMessage"] = $"DATABASE ERROR: {deck.Name} deck edit failed";
                }


                result = RedirectToAction("ViewDecks");
            }
            return(result);
        }
예제 #20
0
        public List <DeckItem> GetAllDecksForCard(int cardId, int userId)
        {
            List <DeckItem> result = new List <DeckItem>();

            //Connect to Database
            using (SqlConnection conn = new SqlConnection(_connectionString))
            {
                conn.Open();

                //Create sql statement
                string sqlPlayer = "SELECT deck.Id, deck.UserId, deck.Description, deck.Name " +
                                   "FROM [Deck] " +
                                   "JOIN Deck_Card ON deck.Id = Deck_Card.DeckId " +
                                   $"WHERE Deck_Card.CardId = @cardId " +
                                   $"AND Deck.UserId = @userId; ";

                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = sqlPlayer;
                cmd.Connection  = conn;
                cmd.Parameters.AddWithValue("@cardId", cardId);
                cmd.Parameters.AddWithValue("@userId", userId);

                //Send command to database
                SqlDataReader reader = cmd.ExecuteReader();

                //Pull data off of result set
                while (reader.Read())
                {
                    DeckItem deck = new DeckItem();

                    deck.Id          = Convert.ToInt32(reader["Id"]);
                    deck.UserID      = Convert.ToInt32(reader["UserId"]);
                    deck.Name        = Convert.ToString(reader["Name"]);
                    deck.Description = Convert.ToString(reader["Description"]);

                    result.Add(deck);
                }
            }
            return(result);
        }
예제 #21
0
        public void UpdateDeckTest()
        {
            //Arrange
            DatabaseSvc testDAL = new DatabaseSvc(_connectionString);

            DeckItem testDeck = new DeckItem
            {
                Id          = _deckId1,
                Name        = "New Test Deck!",
                Description = "Wow a cool new deck for testing updates!",
                UserID      = _userId
            };

            //Act
            bool     deckUpdated     = testDAL.UpdateDeck(testDeck, _deckId1);
            DeckItem confirmTestDeck = testDAL.GetDeck(_deckId1);

            //Assert
            Assert.AreEqual(true, deckUpdated, "Confirm Bool");
            Assert.AreEqual(testDeck.Name, confirmTestDeck.Name, "Confirm Name");
            Assert.AreEqual(testDeck.Description, confirmTestDeck.Description, "Confirm Description");
        }
예제 #22
0
        public void AddDeckTest()
        {
            //Arrange
            DatabaseSvc testDAL = new DatabaseSvc(_connectionString);

            DeckItem testDeckNoId = new DeckItem
            {
                Name        = "Test Name",
                Description = "Test Description",
                UserID      = _userId
            };

            //Act
            DeckItem testDeckHasId   = testDAL.AddDeck(testDeckNoId);
            DeckItem confirmTestDeck = testDAL.GetDeck(testDeckHasId.Id);

            //Assert
            int confirmTestDeckId = _deckId1 + 1;

            Assert.AreEqual(confirmTestDeckId, testDeckHasId.Id, "Confirm new id");
            Assert.AreEqual(testDeckNoId.Name, confirmTestDeck.Name, "Confirm Name");
            Assert.AreEqual(testDeckNoId.Description, confirmTestDeck.Description, "Confirm Description");
        }
예제 #23
0
    public override void Initialize()
    {
        if (Atlas == null)
        {
            Debug.LogError("CardAtlas is not initialized.");
        }
        if (Stock == null)
        {
            Debug.LogError("CardStock is not initialized.");
        }

        Debug.Log("Atlas = " + Atlas.name);
        string [] suits    = new string[] { "Heart", "Spade", "Diamond", "Club" };
        string [] prefixes = new string[] { "H-", "S-", "D-", "C-" };
        //defs为所有游戏卡牌
        List <CardDef> defs = new List <CardDef>();
        //Wujianglist为所有武将卡牌
        List <CardDef> Wujianglist = new List <CardDef>();

        #region 标准场108张卡牌
        //开始导入游戏牌(108张)

        /*
         #region 基本牌定义(53张)
         * //"杀"牌定义(30张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_02_Meihua_Sha01", "Sha", 2, "Meihua", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_03_Meihua_Sha02", "Sha", 3, "Meihua", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_04_Meihua_Sha03", "Sha", 4, "Meihua", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_05_Meihua_Sha04", "Sha", 5, "Meihua", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_06_Fangkuai_Sha05", "Sha", 6, "Fangkuai", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_06_Meihua_Sha06", "Sha", 6, "Meihua", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_07_Fangkuai_Sha07", "Sha", 7, "Fangkuai", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_07_Heitao_Sha08", "Sha", 7, "Heitao", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_07_Meihua_Sha09", "Sha", 7, "Meihua", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_08_Fangkuai_Sha10", "Sha", 8, "Fangkuai", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_08_Heitao_Sha11", "Sha", 8, "Heitao", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_08_Heitao_Sha12", "Sha", 8, "Heitao", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_08_Meihua_Sha13", "Sha", 8, "Meihua", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_08_Meihua_Sha14", "Sha", 8, "Meihua", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_09_Fangkuai_Sha15", "Sha", 9, "Fangkuai", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_09_Heitao_Sha16", "Sha", 9, "Heitao", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_09_Heitao_Sha17", "Sha", 9, "Heitao", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_09_Meihua_Sha18", "Sha", 9, "Meihua", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_09_Meihua_Sha19", "Sha", 9, "Meihua", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_10_Fangkuai_Sha20", "Sha", 10, "Fangkuai", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_10_Heitao_Sha21", "Sha", 10, "Heitao", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_10_Heitao_Sha22", "Sha", 10, "Heitao", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_10_Hongtao_Sha23", "Sha", 10, "Hongtao", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_10_Hongtao_Sha24", "Sha", 10, "Hongtao", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_10_Meihua_Sha25", "Sha", 10, "Meihua", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_10_Meihua_Sha26", "Sha", 10, "Meihua", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_11_Hongtao_Sha27", "Sha", 11, "Hongtao", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_11_Meihua_Sha28", "Sha", 11, "Meihua", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_11_Meihua_Sha29", "Sha", 11, "Meihua", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_13_Fangkuai_Sha30", "Sha", 13, "Fangkuai", "Youxi", "Jiben"));
         *
         * //"闪"牌定义(15张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_02_Fangkuai_Shan01", "Shan",2, "Fangkuai", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_02_Fangkuai_Shan02", "Shan",2, "Fangkuai", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_02_Hongtao_Shan03", "Shan",2, "Hongtao", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_02_Hongtao_Shan04", "Shan",2, "Hongtao", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_03_Fangkuai_Shan05", "Shan",3, "Fangkuai", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_04_Fangkuai_Shan06", "Shan",4, "Fangkuai", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_05_Fangkuai_Shan07", "Shan",5, "Fangkuai", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_06_Fangkuai_Shan08", "Shan",6, "Fangkuai", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_07_Fangkuai_Shan09", "Shan",7, "Fangkuai", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_08_Fangkuai_Shan10", "Shan",8, "Fangkuai", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_09_Fangkuai_Shan11", "Shan",9, "Fangkuai", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_10_Fangkuai_Shan12", "Shan",10, "Fangkuai", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_11_Fangkuai_Shan13", "Shan",11, "Fangkuai", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_11_Fangkuai_Shan14", "Shan",11, "Fangkuai", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_13_Hongtao_Shan15", "Shan",13, "Hongtao", "Youxi", "Jiben"));
         *
         * //"桃"牌定义(8张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_03_Hongtao_Tao01", "Tao",3, "Hongtao", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_04_Hongtao_Tao02", "Tao",4, "Hongtao", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_06_Hongtao_Tao03", "Tao",6, "Hongtao", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_07_Hongtao_Tao04", "Tao",7, "Hongtao", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_08_Hongtao_Tao05", "Tao",8, "Hongtao", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_09_Hongtao_Tao06", "Tao",9, "Hongtao", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_12_Fangkuai_Tao07", "Tao",12, "Fangkuai", "Youxi", "Jiben"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_12_Hongtao_Tao08", "Tao",12, "Hongtao", "Youxi", "Jiben"));
         #endregion
         *
         #region 非延时锦囊牌定义(36张)
         * //"决斗"牌定义(3张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_01_Fangkuai_Juedou01", "Juedou",1, "Fangkuai", "Youxi", "Feiyanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_01_Heitao_Juedou02", "Juedou",1, "Heitao", "Youxi", "Feiyanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_01_Meihua_Juedou03", "Juedou",1, "Meihua", "Youxi", "Feiyanshijinnang"));
         * //"桃园结义"牌定义(1张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_01_Hongtao_Taoyuanjieyi", "Taoyuanjieyi", 1, "Hongtao", "Youxi", "Feiyanshijinnang"));
         * //"万箭齐发"牌定义(1张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_01_Hongtao_Wanjianqifa", "Wanjianqifa", 1, "Hongtao", "Youxi", "Feiyanshijinnang"));
         * //"顺手牵羊"牌定义(5张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_03_Fangkuai_Shunshouqianyang01", "Shunshouqianyang", 3, "Fangkuai", "Youxi", "Feiyanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_03_Heitao_Shunshouqianyang02", "Shunshouqianyang", 3, "Heitao", "Youxi", "Feiyanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_04_Fangkuai_Shunshouqianyang03", "Shunshouqianyang", 4, "Fangkuai", "Youxi", "Feiyanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_04_Heitao_Shunshouqianyang04", "Shunshouqianyang", 4, "Heitao", "Youxi", "Feiyanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_11_Heitao_Shunshouqianyang05", "Shunshouqianyang", 11, "Heitao", "Youxi", "Feiyanshijinnang"));
         * //"过河拆桥"牌定义(6张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_03_Heitao_Guohechaiqiao01", "Guohechaiqiao",3, "Heitao", "Youxi", "Feiyanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_03_Meihua_Guohechaiqiao02", "Guohechaiqiao",3, "Meihua", "Youxi", "Feiyanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_04_Heitao_Guohechaiqiao03", "Guohechaiqiao",4, "Heitao", "Youxi", "Feiyanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_04_Meihua_Guohechaiqiao04", "Guohechaiqiao",4, "Meihua", "Youxi", "Feiyanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_12_Heitao_Guohechaiqiao05", "Guohechaiqiao",12, "Heitao", "Youxi", "Feiyanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_12_Hongtao_Guohechaiqiao06", "Guohechaiqiao",12, "Hongtao", "Youxi", "Feiyanshijinnang"));
         * //"五谷丰登"牌定义(2张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_03_Hongtao_Wugufengdeng01", "Wugufengdeng", 3, "Hongtao", "Youxi", "Feiyanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_04_Hongtao_Wugufengdeng02", "Wugufengdeng", 4, "Hongtao", "Youxi", "Feiyanshijinnang"));
         * //"南蛮入侵"牌定义(3张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_07_Heitao_Nanmanruqin01", "Nanmanruqin", 7, "Heitao", "Youxi", "Feiyanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_07_Meihua_Nanmanruqin02", "Nanmanruqin", 7, "Meihua", "Youxi", "Feiyanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_13_Heitao_Nanmanruqin03", "Nanmanruqin", 13, "Heitao", "Youxi", "Feiyanshijinnang"));
         * //"无中生有"牌定义(4张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_07_Hongtao_Wuzhongshengyou01", "Wuzhongshengyou", 7, "Hongtao", "Youxi", "Feiyanchijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_08_Hongtao_Wuzhongshengyou02", "Wuzhongshengyou", 8, "Hongtao", "Youxi", "Feiyanchijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_09_Hongtao_Wuzhongshengyou03", "Wuzhongshengyou", 9, "Hongtao", "Youxi", "Feiyanchijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_11_Hongtao_Wuzhongshengyou04", "Wuzhongshengyou", 11, "Hongtao", "Youxi", "Feiyanchijinnang"));
         * //"无懈可击"牌定义(4张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_11_Heitao_Wuxiekeji01", "Wuxiekeji", 11, "Heitao", "Youxi", "Feiyanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_12_Fangkuai_Wuxiekeji02", "Wuxiekeji", 12, "Fangkuai", "Youxi", "Feiyanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_12_Meihua_Wuxiekeji03", "Wuxiekeji", 12, "Meihua", "Youxi", "Feiyanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_13_Meihua_Wuxiekeji04", "Wuxiekeji", 13, "Meihua", "Youxi", "Feiyanshijinnang"));
         * //"借刀杀人"牌定义(2张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_12_Meihua_Jiedaosharen01", "Jiedaosharen", 12, "Meihua", "Youxi", "Feiyanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_13_Meihua_Jiedaosharen02", "Jiedaosharen", 13, "Meihua", "Youxi", "Feiyanshijinnang"));
         #endregion
         *
         #region 延时锦囊牌定义(5张)
         * //"闪电"牌定义(2张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_01_Heitao_Shandian01", "Shandian", 1, "Heitao", "Youxi", "Yanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_12_Hongtao_Shandian02", "Shandian", 12, "Hongtao", "Youxi", "Yanshijinnang"));
         * //"乐不思蜀"牌定义(3张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_06_Heitao_Lebusishu01", "Lebusishu", 6, "Heitao", "Youxi", "Yanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_06_Hongtao_Lebusishu02", "Lebusishu", 6, "Hongtao", "Youxi", "Yanshijinnang"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_06_Meihua_Lebusishu03", "Lebusishu", 6, "Meihua", "Youxi", "Yanshijinnang"));
         #endregion
         *
         #region 装备牌定义(19张)
         * //"武器"牌定义(10张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_01_Fangkuai_Zhugeliannu01", "Zhugeliannu", 1, "Fangkuai", "Youxi", "Zhuangbei"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_01_Meihua_Zhugeliannu02", "Zhugeliannu", 1, "Meihua", "Youxi", "Zhuangbei"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_02_Heitao_Cixiongshuanggujian", "Cixiongshuanggujian", 2, "Heitao", "Youxi", "Zhuangbei"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_02_Heitao_Hanbingjian", "Hanbingjian", 2, "Heitao", "Youxi", "Zhuangbei"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_05_Fangkuai_Guanshifu", "Guanshifu", 5, "Fangkuai", "Youxi", "Zhuangbei"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_05_Heitao_Qinglongyanyuedao", "Qinglongyanyuedao", 5, "Heitao", "Youxi", "Zhuangbei"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_05_Hongtao_Qilingong", "Qilingong", 5, "Hongtao", "Youxi", "Zhuangbei"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_06_Heitao_Qinggangjian", "Qinggangjian", 6, "Heitao", "Youxi", "Zhuangbei"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_12_Fangkuai_Fangtianhuaji", "Fangtianhuaji", 12, "Fangkuai", "Youxi", "Zhuangbei"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_12_Heitao_Zhangbashemao", "Zhangbashemao", 12, "Heitao", "Youxi", "Zhuangbei"));
         * //"防具"牌定义(3张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_02_Heitao_Baguazhen01", "Baguazhen", 2, "Heitao", "Youxi", "Zhuangbei"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_02_Meihua_Baguazhen02", "Baguazhen", 2, "Meihua", "Youxi", "Zhuangbei"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_02_Meihua_Renwangdun", "Renwangdun", 2, "Meihua", "Youxi", "Zhuangbei"));
         * //"+1马"牌定义(3张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_05_Heitao_Jiayi01", "Jiayi", 5, "Heitao", "Youxi", "Zhuangbei"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_05_Meihua_Jiayi02", "Jiayi", 5, "Meihua", "Youxi", "Zhuangbei"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_13_Hongtao_Jiayi03", "Jiayi", 13, "Hongtao", "Youxi", "Zhuangbei"));
         * //"-1马"牌定义(3张)
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_05_Hongtao_Jianyi01", "Jianyi", 5, "Hongtao", "Youxi", "Zhuangbei"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_13_Fangkuai_Jianyi02", "Jianyi", 13, "Fangkuai", "Youxi", "Zhuangbei"));
         * defs.Add(new CardDef(Atlas, Stock, "Youxi_13_Heitao_Jianyi03", "Jianyi", 13, "Heitao", "Youxi", "Zhuangbei"));
         #endregion
         */
        #endregion

        #region 新1v1模式52张卡牌

        defs.Add(new CardDef(Atlas, Stock, "Youxi_02_Fangkuai_Shan03", "Shan", 2, "Fangkuai", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_02_Hongtao_Shan01", "Shan", 2, "Hongtao", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_03_Fangkuai_Shan04", "Shan", 3, "Fangkuai", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_03_Hongtao_Tao01", "Tao", 3, "Hongtao", "Youxi", "Jiben"));


        defs.Add(new CardDef(Atlas, Stock, "Youxi_04_Hongtao_Tao02", "Tao", 4, "Hongtao", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_04_Meihua_Sha07", "Sha", 4, "Meihua", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_05_Heitao_Sha01", "Sha", 5, "Heitao", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_05_Hongtao_Shan02", "Shan", 5, "Hongtao", "Youxi", "Jiben"));


        defs.Add(new CardDef(Atlas, Stock, "Youxi_05_Meihua_Sha08", "Sha", 5, "Meihua", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_06_Fangkuai_Sha14", "Sha", 6, "Fangkuai", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_06_Meihua_Sha09", "Sha", 6, "Meihua", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_07_Fangkuai_Shan05", "Shan", 7, "Fangkuai", "Youxi", "Jiben"));


        defs.Add(new CardDef(Atlas, Stock, "Youxi_07_Heitao_Sha02", "Sha", 7, "Heitao", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_07_Meihua_Sha17", "Sha", 7, "Meihua", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_08_Fangkuai_Shan06", "Shan", 8, "Fangkuai", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_08_Heitao_Sha03", "Sha", 8, "Heitao", "Youxi", "Jiben"));

        defs.Add(new CardDef(Atlas, Stock, "Youxi_08_Meihua_Sha10", "Sha", 8, "Meihua", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_09_Fangkuai_Sha15", "Sha", 9, "Fangkuai", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_09_Hongtao_Tao03", "Tao", 9, "Hongtao", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_09_Meihua_Sha11", "Sha", 9, "Meihua", "Youxi", "Jiben"));

        defs.Add(new CardDef(Atlas, Stock, "Youxi_10_Fangkuai_Shan07", "Shan", 10, "Fangkuai", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_10_Heitao_Sha04", "Sha", 10, "Heitao", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_10_Hongtao_Sha05", "Sha", 10, "Hongtao", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_10_Meihua_Sha12", "Sha", 10, "Meihua", "Youxi", "Jiben"));


        defs.Add(new CardDef(Atlas, Stock, "Youxi_11_Fangkuai_Shan08", "Shan", 11, "Fangkuai", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_11_Hongtao_Sha06", "Sha", 11, "Hongtao", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_11_Meihua_Sha13", "Sha", 11, "Meihua", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_12_Fangkuai_Tao04", "Tao", 12, "Fangkuai", "Youxi", "Jiben"));

        defs.Add(new CardDef(Atlas, Stock, "Youxi_12_Heitao_Sha18", "Sha", 12, "Heitao", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_13_Fangkuai_Sha16", "Sha", 13, "Fangkuai", "Youxi", "Jiben"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_01_Heitao_Juedou01", "Juedou", 1, "Heitao", "Youxi", "Feiyanshijinnang"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_01_Hongtao_Wanjianqifa", "Wanjianqifa", 1, "Hongtao", "Youxi", "Feiyanshijinnang"));

        defs.Add(new CardDef(Atlas, Stock, "Youxi_01_Meihua_Juedou02", "Juedou", 1, "Meihua", "Youxi", "Feiyanshijinnang"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_03_Heitao_Guohechaiqiao01", "Guohechaiqiao", 3, "Heitao", "Youxi", "Feiyanshijinnang"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_03_Meihua_Guohechaiqiao03", "Guohechaiqiao", 3, "Meihua", "Youxi", "Feiyanshijinnang"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_04_Fangkuai_Shunshouqianyang03", "Shunshouqianyang", 4, "Fangkuai", "Youxi", "Feiyanshijinnang"));


        defs.Add(new CardDef(Atlas, Stock, "Youxi_04_Heitao_Shunshouqianyang01", "Shunshouqianyang", 4, "Heitao", "Youxi", "Feiyanshijinnang"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_06_Hongtao_Lebusishu", "Lebusishu", 6, "Hongtao", "Youxi", "Yanshijinnang"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_07_Hongtao_Wuzhongshengyou01", "Wuzhongshengyou", 7, "Hongtao", "Youxi", "Feiyanshijinnang"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_08_Hongtao_Wuzhongshengyou02", "Wuzhongshengyou", 8, "Hongtao", "Youxi", "Feiyanshijinnang"));

        defs.Add(new CardDef(Atlas, Stock, "Youxi_10_Meihua_Bingliangcunduan", "Bingliangcunduan", 10, "Meihua", "Youxi", "Yanshijinnang"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_11_Heitao_Shunshouqianyang02", "Shunshouqianyang", 11, "Heitao", "Youxi", "Feiyanshijinnang"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_12_Hongtao_Guohechaiqiao02", "Guohechaiqiao", 12, "Hongtao", "Youxi", "Feiyanshijinnang"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_13_Heitao_Nanmanruqin", "Nanmanruqin", 13, "Heitao", "Youxi", "Feiyanshijinnang"));

        //defs.Add(new CardDef(Atlas, Stock, "Youxi_13_Hongtao_Wuxiekeji01", "Wuxiekeji", 13, "Hongtao", "Youxi", "Feiyanshijinnang"));
        //defs.Add(new CardDef(Atlas, Stock, "Youxi_13_Meihua_Wuxiekeji02", "Wuxiekeji", 13, "Meihua", "Youxi", "Feiyanshijinnang"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_01_Fangkuai_Zhugeliannu", "Zhugeliannu", 1, "Fangkuai", "Youxi", "Wuqi"));
        //defs.Add(new CardDef(Atlas, Stock, "Youxi_02_Heitao_Baguazhen", "Baguazhen", 2, "Heitao", "Youxi", "Fangju"));

        defs.Add(new CardDef(Atlas, Stock, "Youxi_02_Meihua_Renwangdun", "Renwangdun", 2, "Meihua", "Youxi", "Fangju"));
        //defs.Add(new CardDef(Atlas, Stock, "Youxi_05_Fangkuai_Guanshifu", "Guanshifu", 5, "Fangkuai", "Youxi", "Wuqi"));
        defs.Add(new CardDef(Atlas, Stock, "Youxi_06_Heitao_Qinggangjian", "Qinggangjian", 6, "Heitao", "Youxi", "Wuqi"));
        //defs.Add(new CardDef(Atlas, Stock, "Youxi_09_Heitao_Hanbingjian", "Hanbingjian", 9, "Heitao", "Youxi", "Wuqi"));

        #endregion

        //开始导入武将牌(27张)
        #region 魏国武将定义(7张)
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_001_Caocao", "Caocao", "Wei", 4, "Nan", "Jianxiong", "", "", "Hujia"));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_002_Simayi", "Simayi", "Wei", 3, "Nan", "Fankui", "Guicai", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_003_Xiahoudun", "Xiahoudun", "Wei", 4, "Nan", "Ganglie", "", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_004_Zhangliao", "Zhangliao", "Wei", 4, "Nan", "Tuxi", "", "", ""));
        //Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_005_Xuchu", "Xuchu", "Wei", 4, "Nan", "Luoyi", "", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_006_Guojia", "Guojia", "Wei", 3, "Nan", "Tiandu", "Yiji", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_007_Zhenji", "Zhenji", "Wei", 3, "Nv", "Qingguo", "Luoshen", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_031_Dianwei", "Dianwei", "Wei", 4, "Nan", "Qiangxi", "", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_032_Xuhuang", "Xuhuang", "Wei", 4, "Nan", "Duanliang", "", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_033_Caoren", "Caoren", "Wei", 4, "Nan", "Jushou", "", "", ""));
        #endregion
        #region 蜀国武将定义(7张)
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_008_Liubei", "Liubei", "Shu", 4, "Nan", "Rende", "", "", "Jijiang"));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_009_Guanyu", "Guanyu", "Shu", 4, "Nan", "Wusheng", "", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_010_Zhangfei", "Zhangfei", "Shu", 4, "Nan", "Paoxiao", "", "", ""));//√
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_011_Zhugeliang", "Zhugeliang", "Shu", 3, "Nan", "Guanxing", "Kongcheng", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_012_Zhaoyun", "Zhaoyun", "Shu", 4, "Nan", "Longdan", "", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_013_Machao", "Machao", "Shu", 4, "Nan", "Mashu", "Tieqi", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_014_Huangyueying", "Huangyueying", "Shu", 3, "Nv", "Jizhi", "Qicai", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_034_Huangzhong", "Huangzhong", "Shu", 4, "Nan", "Liegong", "", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_035_Weiyan", "Weiyan", "Shu", 4, "Nan", "Kuanggu", "", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_036_Menghuo", "Menghuo", "Shu", 4, "Nan", "Huoshou", "Zaiqi", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_037_Jiangwei", "Jiangwei", "Shu", 4, "Nan", "Tiaoxin", "", "", ""));
        #endregion
        #region 吴国武将定义(8张)
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_015_Sunquan", "Sunquan", "Wu", 4, "Nan", "Zhiheng", "", "", "Jiuyuan"));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_016_Ganning", "Ganning", "Wu", 4, "Nan", "Qixi", "", "", ""));
        //Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_017_Lvmeng", "Lvmeng", "Wu", 4, "Nan", "Keji", "", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_018_Huanggai", "Huanggai", "Wu", 4, "Nan", "Kurou", "", "", ""));

        /*
         * //Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_019_Zhouyu", "Zhouyu", "Wu", 3, "Nan", "Yingzi", "Fanjian", "", ""));
         */
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_020_Daqiao", "Daqiao", "Wu", 3, "Nn", "Guose", "Liuli", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_021_Luxun", "Luxun", "Wu", 3, "Nan", "Qianxun", "Lianying", "", ""));

        /*
         * Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_022_Sunshangxiang", "Sunshangxiang", "Wu", 3, "Nv", "Jieyin", "Xiaoji", "", ""));
         */
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_030_Xiaoqiao", "Xiaoqiao", "Wu", 3, "Nv", "Tianxiang", "Hongyan", "", ""));
        #endregion
        #region 群雄武将定义(3张)
        //Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_023_Huatuo", "Huatuo", "Qun", 3, "Nan", "Jijiu", "Qingnang", "", ""));
        //Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_024_Lvbu", "Lvbu", "Qun", 4, "Nan", "Wushuang", "", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_025_Diaochan", "Diaochan", "Qun", 3, "Nv", "Lijian", "Biyue", "", ""));//√
        //Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_028_Zhangjiao", "Zhangjiao", "Qun", 3, "Nan", "Leiji", "Guidao", "", ""));
        Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_029_Pangde", "Pangde", "Qun", 4, "Nan", "Mashu", "Mengjin", "", ""));
        #endregion
        #region 特殊武将定义(2张)
        //Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_026_Shibingnan", "Shibingnan", "None", 4, "Nan", "", "", "", ""));
        //Wujianglist.Add(new CardDef(Atlas, Stock, "Wujiang_027_Shibingnv", "Shibingnv", "None", 4, "Nv", "", "", "", ""));
        #endregion

        //将所有游戏卡牌导入m_itemList
        m_itemList = new DeckItem[defs.Count];
        for (int i = 0; i < defs.Count; ++i)
        {
            DeckItem item = new DeckItem();
            item.Count    = 1;
            item.Card     = defs[i];
            m_itemList[i] = item;
        }
        //将所有武将卡牌导入
        Wujiang_itemList = new DeckItem[Wujianglist.Count];
        for (int i = 0; i < Wujianglist.Count; ++i)
        {
            DeckItem item = new DeckItem();
            item.Count          = 1;
            item.Card           = Wujianglist[i];
            Wujiang_itemList[i] = item;
        }
    }
예제 #24
0
        void ImportMwsDeck(GameInfoItem gameItem, DeckItem deck, string text, CodesMapService mappingManager, Dictionary<string, string> discardedLines)
        {
            ServicesProvider engServicesProvider = servicesProvider;
              if(engServicesProvider.GameLanguageCode != "eng")
              {
            engServicesProvider = new ServicesProvider("eng", "eng");
            engServicesProvider.LoadGame(gameItem);
              }
              discardedLines.Clear();
              foreach(string line in text.Split(new string[] {Environment.NewLine}, StringSplitOptions.None).
            Select(e => e.Trim()).Where(e => e.Length > 0 && !e.StartsWith("//")))
              {
            string[] lineParts = line.Split(' ');
            if(lineParts.Length < 3)
              continue;

            try
            {
              var cardList = deck.MainCards;
              int partIndex = 0;
              if(lineParts[0] == "SB:")
              {
            partIndex++;
            cardList = deck.SideboardCards;
              }
              int amount;
              if(int.TryParse(lineParts[partIndex++], out amount))
              {
            string mwsSetCode = string.Empty;
            try
            {
              mwsSetCode = lineParts[partIndex++].Replace("[", string.Empty).Replace("]", string.Empty);
            }
            catch
            {
              throw new Exception("Cannot read set code on this line: " + line);
            }
            string cardName = string.Empty;
            try
            {
              cardName = string.Concat(
                lineParts.Skip(partIndex).Where(e => e != "(1)" && e != "(2)" && e != "(3)" && e != "(4)").Select(
                e => string.Concat(e, " ")).ToArray()).TrimEnd();
              cardName = cardName.Split(new string[] { "--" }, StringSplitOptions.None).First();
            }
            catch
            {
              throw new Exception("Cannot read card name on this line: " + line);
            }
            string internalSetCode = mappingManager.GetCode(mwsSetCode);
            if(string.IsNullOrEmpty(internalSetCode))
              throw new Exception("Set code unknown: " + mwsSetCode);
            CardSearchParams p = new CardSearchParams();
            p.Sets.Add(internalSetCode);
            p.Name = cardName;
            p.Language = "ENG";
            p.NameExact = true;

            CardItem cardItem = engServicesProvider.CardsService.SelectCards(p).FirstOrDefault();
            if(cardItem == null)
              throw new Exception("Card name unknown: " + cardName);
            for(int i = 0; i < amount; i++)
              cardList.Add(cardItem.Clone());
              }
              else
              {
            throw new Exception("Cannot read card amount on this line: " + line);
              }
            }
            catch(Exception ex)
            {
              discardedLines.Add(line, ex.Message);
            }
              }
        }
예제 #25
0
 void SaveDeck(DeckItem deck, string deckPath)
 {
     XmlDocument xDoc = new XmlDocument();
     xDoc.LoadXml(
     "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
     "<deck game=''>" +
     "	<main />" +
     " <sideboard />" +
     "</deck>"
     );
       xDoc.DocumentElement.Attributes["game"].Value = deck.GameCode;
       XmlNode cardNode = null;
       XmlAttribute attribute = null;
       foreach(var cardsById in deck.MainCards.GroupBy(e => e.Id))
     {
         cardNode = xDoc.CreateNode(XmlNodeType.Element, "", "card", "");
     attribute = xDoc.CreateAttribute("count");
     attribute.Value = cardsById.Count().ToString();
     cardNode.Attributes.Append(attribute);
     attribute = xDoc.CreateAttribute("id");
     attribute.Value = cardsById.Key;
         cardNode.Attributes.Append(attribute);
         xDoc.DocumentElement.SelectSingleNode("main").AppendChild(cardNode);
     }
     foreach(var cardsById in deck.SideboardCards.GroupBy(e => e.Id))
     {
         cardNode = xDoc.CreateNode(XmlNodeType.Element, "", "card", "");
     attribute = xDoc.CreateAttribute("count");
     attribute.Value = cardsById.Count().ToString();
     cardNode.Attributes.Append(attribute);
     attribute = xDoc.CreateAttribute("id");
     attribute.Value = cardsById.Key;
         cardNode.Attributes.Append(attribute);
         xDoc.DocumentElement.SelectSingleNode("sideboard").AppendChild(cardNode);
     }
       Utils.BackupFile(deckPath, true);
       xDoc.Save(deckPath);
 }
예제 #26
0
        //public void ImportDeckFromText(GameItem gameItem, string text, MappingManager mappingManager)
        //{
        //  DeckItem deck = new DeckItem(gameItem.Code);
        //  deck.Category = "Imported";
        //  deck.Name = "???";
        //  ImportMwsDeck(deck, text, mappingManager);
        //  SaveDeck(deck);
        //}
        public DeckImportStatistics ImportDecksFromFiles(GameInfoItem gameItem, string[] fileNames, CodesMapService mappingManager)
        {
            DeckImportStatistics statistics = new DeckImportStatistics();

              foreach(string fileName in fileNames)
              {
            Dictionary<string, string> discardedLines = new Dictionary<string, string>();
            if(string.Compare(Path.GetExtension(fileName), DECK_FILE_EXTENSION) != 0)
            {
              DeckItem deck = new DeckItem(gameItem.Code);
              deck.Category = "Imported";
              deck.Name = Path.GetFileNameWithoutExtension(fileName);

              ImportMwsDeck(gameItem, deck, File.ReadAllText(fileName), mappingManager, discardedLines);

              SaveDeck(deck);
            }
            else
            {
              File.Copy(fileName, Path.Combine(SettingsManager.Settings.DeckPath, Path.GetFileName(fileName)), true);
            }
            statistics.ImportResults.Add(new DeckImportResult()
            {
              FileName = fileName,
              Successfull = discardedLines.Count == 0,
              DiscardedLines = discardedLines
            });
              }
              return statistics;
        }
예제 #27
0
 public void SaveDeck(DeckItem deck)
 {
     string deckPath = Path.Combine(SettingsManager.Settings.DeckPath, deck.Category + "." + deck.Name + DECK_FILE_EXTENSION);
       SaveDeck(deck, deckPath);
 }
예제 #28
0
        private static void ParseFile(string filename)
        {
            SaveFile fileItem;

            fileItem = new SaveFile()
            {
                FileName  = filename,
                FileTime  = long.TryParse(filename.Split("_")[0], out long timeInTick) ? new DateTime(timeInTick) : DateTime.Now,
                Processed = (int)SaveFileProcessedEnum.NotProcessed
            };

            string jsonex = File.ReadAllText(filename).Replace(" NULL", " \"NULL\"");

            dynamic jsonFile = JObject.Parse(jsonex);

            var elementStacks = jsonFile["elementStacks"];

            foreach (JProperty property in elementStacks.Properties())
            {
                ElementStack element = new ElementStack
                {
                    ElementStackIdentification = property.Name,
                    SaveFile = fileItem
                };

                fileItem.ElementStacks.Add(element);

                //var elementStackItems = JObject.Parse(property.Values);
                foreach (JProperty subprop in property.Values())
                {
                    ElementStackItem item = new ElementStackItem
                    {
                        Value        = subprop.Value.ToString(),
                        Key          = subprop.Name,
                        ElementStack = element
                    };

                    element.ElementStackItems.Add(item);
                }
            }

            var decks = jsonFile["decks"];

            foreach (JProperty property in decks.Properties())
            {
                Deck deck = new Deck()
                {
                    Name     = property.Name,
                    SaveFile = fileItem
                };

                fileItem.Decks.Add(deck);
                //How to identify eliminated cards?

                foreach (JProperty subprop in property.Values())
                {
                    if (subprop.Name == "eliminatedCards")
                    {
                        //Aqui eu tenho uma sub parte
                        foreach (JToken subsubprop in subprop.Values())
                        {
                            DeckItem decksubItem = new DeckItem()
                            {
                                Eliminated = true,
                                Value      = subsubprop.Value <string>(),
                                Key        = "0",
                                Deck       = deck
                            };
                            deck.DeckItems.Add(decksubItem);
                        }
                        continue;
                    }

                    DeckItem deckItem = new DeckItem()
                    {
                        Eliminated = false,
                        Key        = subprop.Name,
                        Value      = subprop.Value.ToString(),
                        Deck       = deck
                    };
                    deck.DeckItems.Add(deckItem);
                }
            }

            var metainfo = jsonFile["metainfo"];

            MetaInfo meta = new MetaInfo();

            foreach (JProperty property in metainfo.Properties())
            {
                if (property.Name.ToUpper() == "BirdWormSlider".ToUpper())
                {
                    meta.BirdWormSlider = int.Parse(property.Value.ToString());
                }
                if (property.Name.ToUpper() == "VERSIONNUMBER".ToUpper())
                {
                    meta.Version = property.Value.ToString();
                }
                if (property.Name.ToUpper() == "WeAwaitSTE".ToUpper())
                {
                    meta.WeAwaitSTE = property.Value.ToString();
                }
            }

            fileItem.MetaInfo = meta;

            var             characterDetails = jsonFile["characterDetails"];
            CharacterDetail characterDetail  = new CharacterDetail()
            {
                SaveFile = fileItem,
                Levers   = new List <Lever>()
            };

            fileItem.CharacterDetail = characterDetail;

            foreach (JProperty property in characterDetails.Properties())
            {
                if (property.Name.ToUpper() == "activeLegacy".ToUpper())
                {
                    characterDetail.ActiveLegacy = property.Value.HasValues ? property.Value.ToString() : string.Empty;
                    continue;
                }
                if (property.Name.ToUpper() == "name".ToUpper())
                {
                    characterDetail.Name = property.Value.ToString();
                    continue;
                }
                if (property.Name.ToUpper() == "profession".ToUpper())
                {
                    characterDetail.Profession = property.Value.ToString();
                    continue;
                }
                LeverPartEnum leverPart = LeverPartEnum.Error;

                if (property.Name.ToUpper() == "pastLevers".ToUpper())
                {
                    leverPart = LeverPartEnum.PastLevers;
                }

                if (property.Name.ToUpper() == "futureLevers".ToUpper())
                {
                    leverPart = LeverPartEnum.FutureLevers;
                }

                if (property.Name.ToUpper() == "executions".ToUpper())
                {
                    leverPart = LeverPartEnum.Executions;
                }

                foreach (JProperty subprop in property.Values())
                {
                    Lever lever = new Lever()
                    {
                        CharacterDetail = characterDetail,
                        Part            = (int)leverPart,
                        Key             = subprop.Name,
                        Value           = subprop.Value.ToString()
                    };
                    characterDetail.Levers.Add(lever);
                }
            }

            var situations = jsonFile["situations"];

            foreach (JProperty property in situations.Properties())
            {
                Situation situation = new Situation()
                {
                    SaveFile = fileItem,
                    SituationIdentification = property.Name
                };

                fileItem.Situations.Add(situation);

                foreach (JProperty sitItem in property.Values())
                {
                    //ongoingSlotElements
                    if (sitItem.Name.ToUpper() == "ongoingSlotElements".ToUpper())
                    {
                        foreach (JProperty subprop in sitItem.Values())
                        {
                            OngoingSlotElement ongoingSlotElement = new OngoingSlotElement()
                            {
                                Situation = situation,
                                OngoingSlotElementIdentification = subprop.Name
                            };

                            situation.OngoingSlotElements.Add(ongoingSlotElement);

                            foreach (JProperty subpropitem in subprop.Values())
                            {
                                OngoingSlotElementItem ongoingSlotElementItem = new OngoingSlotElementItem()
                                {
                                    OngoingSlotElement = ongoingSlotElement,
                                    Key   = subpropitem.Name,
                                    Value = subpropitem.Value.ToString(),
                                };

                                ongoingSlotElement.OngoingSlotElementItems.Add(ongoingSlotElementItem);
                            }
                        }
                        continue;
                    }

                    //situationOutputNotes
                    if (sitItem.Name.ToUpper() == "situationOutputNotes".ToUpper())
                    {
                        foreach (JProperty subprop in sitItem.Values())
                        {
                            string indexValue = subprop.Name;
                            foreach (JProperty subpropitem in subprop.Values())
                            {
                                SituationOutputNote situationOutputNote = new SituationOutputNote()
                                {
                                    Situation = situation,
                                    Index     = indexValue,
                                    Key       = subpropitem.Name,
                                    Value     = subpropitem.Value.ToString(),
                                };

                                situation.SituationOutputNotes.Add(situationOutputNote);
                            }
                        }
                        continue;
                    }

                    //situationStoredElements
                    if (sitItem.Name.ToUpper() == "situationStoredElements".ToUpper())
                    {
                        foreach (JProperty subprop in sitItem.Values())
                        {
                            SituationStoredElement situationStoredElement = new SituationStoredElement()
                            {
                                Situation = situation,
                                SituationStoredElementIdentification = subprop.Name
                            };
                            situation.SituationStoredElements.Add(situationStoredElement);

                            foreach (JProperty subpropitem in subprop.Values())
                            {
                                SituationStoredElementItem situationStoredElementItem = new SituationStoredElementItem()
                                {
                                    SituationStoredElement = situationStoredElement,
                                    Key   = subpropitem.Name,
                                    Value = subpropitem.Value.ToString(),
                                };

                                situationStoredElement.SituationStoredElementItems.Add(situationStoredElementItem);
                            }
                        }
                        continue;
                    }

                    SituationItem situationItem = new SituationItem()
                    {
                        Key       = sitItem.Name,
                        Value     = sitItem.Value.ToString(),
                        Situation = situation
                    };

                    situation.SituationItems.Add(situationItem);
                }
            }

            //Verify some properties:
            VerifyFile(fileItem);
        }
예제 #29
0
 string ExportDeckToText(DeckItem deck, bool includeTags)
 {
     StringBuilder str = new StringBuilder();
       str.Append("[");
       str.Append(deck.GameCode);
       str.Append("]");
       str.Append(Environment.NewLine);
       str.Append("[");
       str.Append(deck.Category);
       str.Append("]");
       str.Append(Environment.NewLine);
       str.Append("[");
       str.Append(deck.Name);
       str.Append("]");
       str.Append(Environment.NewLine);
       str.Append(Environment.NewLine);
       str.Append("##MAIN## (");
       str.Append(deck.MainCards.Count);
       str.Append(")");
       str.Append(Environment.NewLine);
       ExportDeckSegmentToText(str, deck.MainCards, includeTags);
       str.Append(Environment.NewLine);
       str.Append("##SIDEBOARD## (");
       str.Append(deck.SideboardCards.Count);
       str.Append(")");
       str.Append(Environment.NewLine);
       ExportDeckSegmentToText(str, deck.SideboardCards, includeTags);
       return str.ToString();
 }
예제 #30
0
        /// <summary>
        /// Get Deck by name of deck
        /// </summary>
        /// <param name="deckName">name of deck</param>
        /// <returns>deck with name</returns>
        public DeckItem GetDeck(string deckName, int userId)
        {
            DeckItem result = _decks[deckName];

            return(result);
        }
예제 #31
0
 public DeckItem LoadDeck(string category, string name, string language)
 {
     DeckItem deck = null;
       string deckPath = Path.Combine(SettingsManager.Settings.DeckPath, category + "." + name + DECK_FILE_EXTENSION);
       if(File.Exists(deckPath))
       {
     XmlDocument xDoc = new XmlDocument();
     try
     {
       xDoc.Load(deckPath);
       deck = new DeckItem(xDoc.DocumentElement.SelectSingleNode("@game").InnerText);
       deck.Category = category;
       deck.Name = name;
       FillDeck(deck.MainCards, xDoc.DocumentElement.SelectSingleNode("main"), language);
       FillDeck(deck.SideboardCards, xDoc.DocumentElement.SelectSingleNode("sideboard"), language);
     }
     catch {  /* invalid deck file, ignored */ }
       }
       return deck;
 }
예제 #32
0
        public List <CardItem> GetAllCardsForDeck(int deckId)
        {
            DeckItem deck = GetDeck(deckId);

            return(deck.Cards);
        }