//增加到vector集合以及wang,bomb,three,two,one分类 public void AddVector(ref CardVector vec, CardSize val, List <int> list) { int len = list.Count; if (0 < len && val >= mCW1) { vec.GetChild(DeckType.WangBomb).Add(val, list); } else if (4 == len) { vec.GetChild(DeckType.Bomb).Add(val, list); } else if (3 == len) { vec.GetChild(DeckType.Three).Add(val, list); } else if (2 == len) { vec.GetChild(DeckType.Double).Add(val, list); } else if (1 == len) { vec.GetChild(DeckType.Single).Add(val, list); } }
//取出王炸牌至wangVec,返回剩余的牌 public List <int> GetWangBombCard(List <int> handCard, ref CardVector wangVec) { List <int> arr = new List <int>(); List <int> temp = new List <int>(); int count = handCard.Count; for (int i = 0; i < count; ++i) { int card = handCard[i]; CardSize val = GetCardSize(card); if (val == mCW1 || val == mCW2) { temp.Add(card); } else { arr.Add(card); } } if (temp.Count == 2) { foreach (int card in temp) { wangVec.Add(GetCardSize(card), new List <int>(card)); } } else { arr.AddRange(temp); } return(arr); }
public void SetupCard(Card card, CardSize cardSize) { ID = card.ID; sprite = Resources.Load <Sprite>($"ScannedImages/{card.imageURL.Split('.')[0]}"); size = card.size; if (card.faction.Length < 1) { faction = Faction.Empire | Faction.Rebellion; } else if (card.faction == "emp") { faction = Faction.Empire; } else if (card.faction == "reb") { faction = Faction.Rebellion; } else { // No faction, error will be logged Debug.LogError($"Base card {card.name} ({card.ID}) defines an invalid faction: {card.faction}"); faction = (Faction) ~0; } cardName = card.name; cost = card.cost; isCommander = card.isCommander; isUnique = card.isUnique; isSquadron = card.isSquadron; cardTypeRaw = card.cardType; }
public static int GetRealSize(CardSize size) { if ((int)size > 10) { return(10); } return((int)size); }
public List <int> GetMoreThanCardVal(ref CardVector vec, CardSize minVal, int minCount, int maxCount = 0) { List <CardSize> arr = new List <CardSize>(); List <int> resultCards = new List <int>(); List <CardSize> keys = vec.GetKeys(); for (int i = 0; i < keys.Count; ++i) { CardSize key = keys[i]; if (0 == i && key > minVal && key < mC2) { arr.Add(key); } else if (key > minVal) { CardSize preKey = keys[i - 1]; if (preKey == key - 1 && key < mC2) { arr.Add(key); if (0 == maxCount && arr.Count == minCount) { break; } } else { if (arr.Count >= minCount) { break; } else { arr = new List <CardSize>(); arr.Add(key); } } } } int length = arr.Count; if (length >= minCount) { for (int i = 0; i < length; ++i) { if ((0 == maxCount && i == minCount) || (0 < maxCount && i >= maxCount - 1)) { break; } CopyList(vec.Get(arr[i]), ref resultCards); } } return(resultCards); }
public List <int> Get(CardSize key) { List <int> cardsList = new List <int>(); if (mCardData.TryGetValue(key, out cardsList)) { return(cardsList); } return(null); }
public void SpawnCategory(CardSize cardSize, int defaultColumnCount = 0) { CardCategory cardCategoryToSpawn = Instantiate <CardCategory>(cardCategoryPrefab, Vector3.zero, Quaternion.identity, contentTransform); cardCategoryToSpawn.SetupCardCategory(cardSize, unityCards.FindAll(uC => uC.cardSize == cardSize), defaultColumnCount); if (!cardCategories.Contains(cardCategoryToSpawn)) { cardCategories.Add(cardCategoryToSpawn); } }
public SizeListItemModel() { _size = new CardSize(); _id = Guid.NewGuid(); _size.Front = ViewModelLocator.SizeTabViewModel.Images.First().FullPath; _size.Back = ViewModelLocator.SizeTabViewModel.Images.First().FullPath; RaisePropertyChanged("Back"); RaisePropertyChanged("Front"); RaisePropertyChanged("BackImage"); RaisePropertyChanged("FrontImage"); }
public SizeItemModel(CardSize s, IdeCollection <IdeBaseItem> source) : base(source) // load item { CanBeDefault = true; _size = s; BackAsset = new AssetController(AssetType.Image); BackAsset.Register(s.Back); BackAsset.PropertyChanged += BackAssetUpdated; FrontAsset = new AssetController(AssetType.Image); FrontAsset.Register(s.Front); FrontAsset.PropertyChanged += FrontAssetUpdated; }
public void GoToCategory(CardSize cardSize) { CenterToItem(cardCategories.Find(cC => cC.categoryCardSize == cardSize)); // switch(cardSize){ // case CardSize.Large: // break; // case CardSize.Normal: // break; // case CardSize.Small: // break; // } }
public List <int> GetMaxGreaterTran(CardSize k) { List <CardSize> keys = GetKeys(); for (int i = keys.Count - 1; i >= 0; --i) { if (keys[i] > k) { return(mCardData[keys[i]]); } } return(null); }
public List <int> GetGreaterThan(CardSize k) { List <CardSize> keys = GetKeys(); foreach (CardSize key in keys) { if (key > k) { return(mCardData[key]); } } return(null); }
public void Add(CardSize key, List <int> cards) { List <int> cardsList = new List <int>(); if (mCardData.TryGetValue(key, out cardsList)) { cardsList.AddRange(cards); mCardData[key] = cardsList; } else { mCardData.Add(key, cards); } }
public SizeItemViewModel() // new item { _size = new CardSize { Front = AssetManager.Instance.Assets.FirstOrDefault(x => x.Type == AssetType.Image)?.FullPath, Back = AssetManager.Instance.Assets.FirstOrDefault(x => x.Type == AssetType.Image)?.FullPath, Width = 15, Height = 15, BackWidth = 15, BackHeight = 15 }; RaisePropertyChanged("Back"); RaisePropertyChanged("Front"); }
public Options() { Compactness = CompactMode.Small; InfoCardOpacity = 0.8f; TemperatureBandWidth = 10f; UseBaseSelection = false; ForceFirstSelectionToHover = true; CustomCardSize = new CardSize { fontSizeDecrease = smallCardSize.fontSizeDecrease, minHeight = smallCardSize.minHeight, maxImageSize = smallCardSize.maxImageSize, ShadowBarBorder = smallCardSize.ShadowBarBorder }; }
public SizeItemModel(SizeItemModel s, IdeCollection <IdeBaseItem> source) : base(source) // copy item { CanBeDefault = true; _size = new CardSize { Front = s.Front.FullPath, Height = s.Height, Width = s.Width, CornerRadius = s.CornerRadius, Back = s.Back.FullPath, BackHeight = s.Height, BackWidth = s.BackWidth, BackCornerRadius = s.BackCornerRadius }; Name = s.Name; }
public SizeItemModel(IdeCollection <IdeBaseItem> source) : base(source) // new item { CanBeDefault = true; _size = new CardSize { Front = AssetManager.Instance.Assets.FirstOrDefault(x => x.Type == AssetType.Image)?.FullPath, Back = AssetManager.Instance.Assets.FirstOrDefault(x => x.Type == AssetType.Image)?.FullPath, Width = 15, Height = 15, BackWidth = 15, BackHeight = 15 }; Name = "New Size"; RaisePropertyChanged("Back"); RaisePropertyChanged("Front"); }
public SizeItemViewModel(SizeItemViewModel s) // copy item { _size = new CardSize { Name = Utils.GetUniqueName(s.Name, s.ItemSource.Select(x => (x as SizeItemViewModel).Name)), Front = s.Front.FullPath, Height = s.Height, Width = s.Width, CornerRadius = s.CornerRadius, Back = s.Back.FullPath, BackHeight = s.Height, BackWidth = s.BackWidth, BackCornerRadius = s.BackCornerRadius }; ItemSource = s.ItemSource; Parent = s.Parent; }
//检查单牌是否可加到顺子中,返回剩余牌 public List <int> CheckSingleAsShun(List <int> handCard, ref CardVector vec) { CardVector shunVec = vec; List <CardSize> keys = shunVec.GetKeys(); if (0 == keys.Count) { return(handCard); } List <int> lastCards = new List <int>(); foreach (int card in handCard) { bool suc = false; foreach (CardSize key in keys) { List <int> items = shunVec.Get(key); if (0 == items.Count) { continue; } CardSize min = GetCardSize(items[0]); CardSize max = GetCardSize(items[items.Count - 1]); CardSize val = GetCardSize(card); if (val == min - 1) { items.Insert(0, (int)val); suc = true; break; } else if (val == max + 1) { items.Add((int)val); suc = true; break; } } if (!suc) { lastCards.Add(card); } } return(lastCards); }
//从顺子cards对象中获取顺子大于minVal的牌 public List <int> GetMoreThanShunCard(List <int> handCard, CardSize minVal, int minCount, int maxCount = 0) { List <int> result = new List <int>(); int length = result.Count; foreach (int card in handCard) { CardSize val = GetCardSize(card); if (val > minVal && val < mC2 && ((0 == maxCount && length < minCount) || (0 < maxCount && length < maxCount - 1))) { result.Add(card); } } if ((0 == maxCount && result.Count == minCount) || (0 < maxCount && result.Count >= minCount)) { return(result); } return(new List <int>()); }
public void SetupCardCategory(CardSize cardSize, List <CardUnityBase> cards, int defaulColumnCount = 0) { categoryHeader = Instantiate <CategoryHeader>(categoryHeaderPrefab, Vector3.zero, Quaternion.identity, transform.parent); categoryHeader.transform.SetSiblingIndex(transform.GetSiblingIndex()); string categoryName; switch (cardSize) { case CardSize.Large: categoryHeader.SetHeaderText("Ships"); categoryName = "Category-Ships"; break; case CardSize.Normal: categoryHeader.SetHeaderText("Squadrons"); categoryName = "Category-Squadrons"; break; case CardSize.Small: categoryHeader.SetHeaderText("Upgrades"); categoryName = "Category-Upgrades"; break; default: categoryHeader.SetHeaderText("Miscellaneous"); categoryName = "Category-Miscellaneous"; break; } cardsInCategory = cards; categoryCardSize = cardSize; SetupCardsInCategory(); if (defaulColumnCount > 0) { SetColumns(defaulColumnCount); } gameObject.name = $"{transform.GetSiblingIndex().ToString("000")}-{categoryName}"; }
//取出指定大小的牌至vec对象,返回剩余牌 public List <int> GetCard(List <int> handCard, CardSize cardVal, ref CardVector vec) { List <int> arr = new List <int>(); int count = handCard.Count; for (int i = 0; i < count; ++i) { int card = handCard[i]; CardSize val = GetCardSize(card); if (cardVal == val) { vec.Add(val, new List <int>(card)); } else { arr.Add(card); } } return(arr); }
public SizeItemModel(IdeCollection <IdeBaseItem> source) : base(source) // new item { CanBeDefault = true; _size = new CardSize { Width = 15, Height = 15, BackWidth = 15, BackHeight = 15 }; Name = "New Size"; BackAsset = new AssetController(AssetType.Image); _size.Back = BackAsset.FullPath; BackAsset.PropertyChanged += BackAssetUpdated; RaisePropertyChanged("Back"); FrontAsset = new AssetController(AssetType.Image); _size.Front = FrontAsset.FullPath; FrontAsset.PropertyChanged += FrontAssetUpdated; RaisePropertyChanged("Front"); }
/// <summary> /// 通过数字获取一张扑克牌 /// </summary> /// <param name="num"></param> /// <returns></returns> public static CardData GetCardData(byte num) { num = (byte)(num + 1); if (num > 54 || num < 0) { throw new Exception("num is error!"); } if (num == (byte)(CardSize.C_Wang)) { return(new CardData(CardColor.Wang, CardSize.C_Wang)); } if (num == (byte)(CardSize.C_King)) { return(new CardData(CardColor.King, CardSize.C_King)); } CardColor color = (CardColor)((num - 1) % 4 + 1); CardSize size = (CardSize)((num - 1) / 4 + 1); return(new CardData(color, size)); }
public SizeItemModel(SizeItemModel s, IdeCollection <IdeBaseItem> source) : base(source) // copy item { CanBeDefault = true; _size = new CardSize { Height = s.Height, Width = s.Width, CornerRadius = s.CornerRadius, BackHeight = s.Height, BackWidth = s.BackWidth, BackCornerRadius = s.BackCornerRadius }; BackAsset = new AssetController(AssetType.Image); BackAsset.Register(s._size.Back); _size.Back = BackAsset.FullPath; BackAsset.PropertyChanged += BackAssetUpdated; FrontAsset = new AssetController(AssetType.Image); FrontAsset.Register(s._size.Front); _size.Front = FrontAsset.FullPath; FrontAsset.PropertyChanged += FrontAssetUpdated; Name = s.Name; }
public CardData(CardColor color, CardSize size) { this._color = color; this._size = size; }
/// <summary> /// /// </summary> /// <param name="cardSize"></param> /// <returns></returns> public int[] GetSame(CardSize cardSize) { return(_list[(int)cardSize].ToArray()); }
public int GetSameSizeCount(CardSize cardSize) { return(GetSame(cardSize).Length); }
/// <summary> /// /// </summary> /// <param name="card">牌Id</param> /// <param name="cardSize">牌大小</param> public void Add(int card, CardSize cardSize) { _list[(int)cardSize].Add(card); }
/// <summary> /// /// </summary> /// <param name="cardSize"></param> /// <returns></returns> public int[] GetSame(CardSize cardSize) { return _list[(int)cardSize].ToArray(); }
public UICard(CardSize _size, int cardID) { size = _size; SetCard (cardID); }
public void SetSize(CardSize _size) { size = _size; }
public BitmapImage GetCardBack(CardSize size) { return(_cardFrontsBacksCache[size.Name].Item2); }
public int GetSameSizeCount(CardSize cardSize) { return GetSame(cardSize).Length; }