public SearchGroup(FilterCondition c, ISet <string> stats) { InitializeComponent(); Stats = stats; if (c is WeightCondition w) { Type = GroupType.Weight; AddHeader(w.Min, w.Max); foreach (string s in w.Weights.Keys) { AddRow(s, w.Weights[s], null); } } else if (c is AndCondition a) { Type = GroupType.And; AddHeader(null, null); foreach (FilterCondition sub in a.Subconditions) { if (sub is ClampCondition cc) { AddRow(cc.Template, cc.Min, cc.Max); } } } else if (c is NotCondition n) { Type = GroupType.Not; AddHeader(null, null); foreach (FilterCondition sub in n.Subconditions) { if (sub is ClampCondition cc) { AddRow(cc.Template, cc.Min, cc.Max); } } } else { Type = GroupType.Count; CountCondition cnt = (CountCondition)c; AddHeader(cnt.Min, cnt.Max); foreach (FilterCondition sub in cnt.Subconditions) { if (sub is ClampCondition cc) { AddRow(cc.Template, cc.Min, cc.Max); } } } }
// 손에 있는 card를 target에게 사용한다. public bool Use(GameObject card, GameObject target) { Card tempCard = card.GetComponent <Card>(); int cost = tempCard.BattleCost; if (cost > currentCost) { return(false); } if (!tempCard.Use(target)) { return(false); } // 카드 사용 코스트 소모, 0보다 작으면 0으로 퉁침 if (cost >= 0) { currentCost -= cost; } // Ready 예외사항 : 이런 식으로 하기 싫은데 좋은 방법을 못찾겠음 if (cost == tempCard.BattleCost) { CountCondition tempCon = card.transform.parent.GetComponent <Unit>().SearchCondition(typeof(Ready)) as CountCondition; if (tempCon != null) { tempCon.DecreaseCount(tempCon.Count); } } costText.GetComponent <Text>().text = currentCost + " / " + maxCost; cards.Remove(card); return(true); }