public static Card GenerateCard(string id) { Card card = LoadXml.GetCard(id); Card result = new Card(card.cardID, card.cardName, card.cardDescribe, card.cardType); if (card.IsMonster()) { result.SetMonsterAttribute(card.attribute, card.race, card.level, card.afk, card.def); } return(result); }
/// <summary> /// 查找卡片 /// </summary> /// <param name="cardType"></param> /// <param name="cardAttr"></param> /// <param name="cardRace"></param> /// <param name="cardLevel"></param> /// <param name="keyWord"></param> public void FindCard(int cardType, int cardAttr, int cardRace, int cardLevel, string keyWord) { List <string> list = new List <string>(); list = LoadXml.SearchCard(cardType, cardAttr, cardRace, cardLevel, keyWord); List <Card> cardList = new List <Card>(); foreach (var item in list) { cardList.Add(LoadXml.GetCard(item)); } cardList = Group.SortCardList(cardList); list = new List <string>(); for (int i = 0; i < cardList.Count; i++) { list.Add(cardList[i].cardID); } searchResultCardUI.ShowSearchCard(list); }
/// <summary> /// 增加卡片 /// </summary> /// <param name="isMain">是否为主卡组</param> /// <param name="id">卡片id</param> public void AddCardToDeck(string id) { Card card = LoadXml.GetCard(id); bool isMain = !ComVal.isInExtra(card.cardType); int cardNum = 0; if (isMain) { foreach (var item in curDeck.mainDeck.cardList) { if (item.cardID == card.cardID) { cardNum++; } } } else { foreach (var item in curDeck.extraDeck.cardList) { if (item.cardID == card.cardID) { cardNum++; } } } if (cardNum >= 3) { return; } if (isMain) { if (curCard != null) { int val = GetObjVal(curCard.gameObject, isMain); AddToDeckFromPool(card, mainDeckGroup.transform, true); curDeck.mainDeck.InsertCard(card, val); for (int i = val; i < curDeck.mainDeck.GroupNum; i++) { mainDeckList[i].GetComponent <Card_Edit>().SetTexture(curDeck.mainDeck.GetCard(i).cardID, true); } UpdateText(); return; } if (mainDeckList.Count > curDeck.mainDeck.cardList.Count) { Card_Edit theCard_edit = mainDeckList[curDeck.mainDeck.cardList.Count].GetComponent <Card_Edit>(); theCard_edit.SetTexture(card.cardID, true); theCard_edit.SetActive(true); } else if (mainDeckList.Count == curDeck.mainDeck.cardList.Count) { AddToDeckFromPool(card, mainDeckGroup.transform, true); } else { Debug.Log("error"); } curDeck.mainDeck.AddCard(card); } else { if (curCard != null) { int val = GetObjVal(curCard.gameObject, isMain); AddToDeckFromPool(card, extraDeckGroup.transform, false); curDeck.extraDeck.InsertCard(card, val); for (int i = val; i < curDeck.extraDeck.GroupNum; i++) { extraDeckList[i].GetComponent <Card_Edit>().SetTexture(curDeck.extraDeck.GetCard(i).cardID, true); } UpdateText(); return; } if (extraDeckList.Count > curDeck.extraDeck.cardList.Count) { Card_Edit theCard_edit = extraDeckList[curDeck.extraDeck.cardList.Count].GetComponent <Card_Edit>(); theCard_edit.SetTexture(card.cardID, true); theCard_edit.SetActive(true); } else if (extraDeckList.Count == curDeck.extraDeck.cardList.Count) { AddToDeckFromPool(card, extraDeckGroup.transform, false); } else { Debug.Log("error"); } curDeck.extraDeck.AddCard(card); } UpdateText(); }