// 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)); }
/// <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); }
/// <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); }
/// <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); }
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; } }
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); }
// 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)); }
/// <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); }
//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)); }
/// <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); }
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; } }
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"); }
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"); }
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); }
/// <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); }
/// <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); }
//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); }
/// <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); }
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); }
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); }
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"); }
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"); }
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; } }
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); } } }
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); }
//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; }
public void SaveDeck(DeckItem deck) { string deckPath = Path.Combine(SettingsManager.Settings.DeckPath, deck.Category + "." + deck.Name + DECK_FILE_EXTENSION); SaveDeck(deck, deckPath); }
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); }
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(); }
/// <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); }
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; }
public List <CardItem> GetAllCardsForDeck(int deckId) { DeckItem deck = GetDeck(deckId); return(deck.Cards); }