public static void Click(Entity entity) { if (State != BattleActionState.SelectTargets || _activeCard == null) { return; } _targets.Add(entity); if (_activeCard.MeCard.NumTargets > _targets.Count) { return; } State = BattleActionState.HandleTurn; if (_activeCard.MeCard.NumTargets < _targets.Count) { Debug.Log("Too many targets! Card: " + _activeCard.GetType().FullName); _activeCard.MeCard.Cast(_targets.Take(_activeCard.MeCard.NumTargets).ToList()); } else if (_activeCard.MeCard.NumTargets == _targets.Count) { _activeCard.MeCard.Cast(_targets); } Deck.Discards.Add(_activeCard.MeCard); _activeCard.DestroyCard(); _activeCard = null; _targets.Clear(); Deck.DrawCard(); RoomMB.ActiveRoom.StartCoroutine(WaitAndAttackPlayer()); }
public static void ClearActive() { if (State == BattleActionState.HandleTurn) { return; } _activeCard = null; _targets.Clear(); State = BattleActionState.SelectCard; }
public static void Discard(CardMB cardMb) { if (!Hand.Contains(cardMb)) { throw new Exception("Card isn't able to be discarded"); } Hand.Remove(cardMb); Discards.Add(cardMb.MeCard); UnityEngine.Object.Destroy(cardMb.gameObject); }
private void Start() { YesButton.OnClick = Accept; NoButton.OnClick = Reject; _card = (Card)Activator.CreateInstance(CardList.GetRandomCard()); CardMB c = CardMB.Spawn(_card); _cardObject = c.gameObject; Destroy(c); _cardObject.transform.position = CardTarget.transform.position; }
public static void Click(CardMB cardMb) { if (State != BattleActionState.SelectCard) { return; } if (!Player.PlayerRef.CanCast(cardMb.MeCard)) { return; } _activeCard = cardMb; State = BattleActionState.SelectTargets; }
public static void InsertIntoHand(CardMB cardMb) { float cardMbX = cardMb.transform.position.x; for (int i = 0; i < Hand.Count; i++) { if (cardMbX < HandMB.CalculatePos(i)) { Hand.Insert(i, cardMb); return; } } Hand.Add(cardMb); }
public static void DrawCard() { // if Draws empty, shuffle discard and put into Draws if (Draws.Count == 0) { Shuffle(Discards); Draws = Discards; Discards = new List <Card>(); } CardMB newCard = CardMB.Spawn(Draws[0]); Hand.Add(newCard); Draws.RemoveAt(0); }
public static CardMB Spawn(Card c) { GameObject cardObject = Instantiate(CardPrefab); CardMB cardMb = cardObject.GetComponent <CardMB>(); switch (c.GetCardType()) { case CardType.AttackCard: cardMb.CardSprite.sprite = CardBgs[0]; break; case CardType.BuffCard: cardMb.CardSprite.sprite = CardBgs[1]; break; case CardType.HealingCard: cardMb.CardSprite.sprite = CardBgs[2]; break; case CardType.SummonCard: cardMb.CardSprite.sprite = CardBgs[3]; break; default: throw new ArgumentException("Invalid card: " + c.GetType().FullName); } cardMb.CardArt.sprite = c.CardArt; TextMeshPro text = cardObject.GetComponentInChildren <TextMeshPro>(); string[] textLines = c.Description.Split('\n'); text.text = string.Format("<b>{0}</b>\n<i>{1}</i>\n{2}", textLines); cardMb.Init(c, new Vector2(HandMB.CalculatePos(Deck.Hand.Count), 1.5f)); return(cardMb); }