public override void ApplyModifiersToCard(SC_BaseCard c, bool add) { if (c.Is(SC_Global.CardType.Aerial)) { (c as SC_OffensiveMove).effectModifiers.health += (c as SC_OffensiveMove).cost.health * (add ? 1 : -1); } }
public virtual IEnumerator Grab(bool local, SC_BaseCard original, bool tween = true) { SC_GameManager GM = SC_GameManager.Instance; RectTransform rT = local ? GM.localHand : GM.otherHand; SC_UI_Card c = CreateCard(original, rT); c.Card.Stolen = local != Local; if (!local) { c.RecT.anchorMin = c.RecT.anchorMax = c.RecT.pivot = new Vector2(.5f, 1); } if (IsDiscard || (local && !tween)) { c.SetImages(); } SC_Deck.OrganizeHand(rT); if (tween) { Vector3 target = c.transform.localPosition; c.transform.position = transform.position; c.Flip(local && !IsDiscard, GM.drawSpeed); yield return(c.transform.DOLocalMove(target, GM.drawSpeed, true).WaitForCompletion()); } (local ? SC_Player.localPlayer : SC_Player.otherPlayer).AddCard(c.Card); }
public override void ApplyModifiersToCard(SC_BaseCard c, bool add) { if (c.Is(SC_Global.CardType.Classic)) { (c as SC_OffensiveMove).effectModifiers.health += add ? 1 : -1; } }
public override void ApplyModifiersToCard(SC_BaseCard c, bool add) { if (c.Path == boostedCardName) { c.commonEffects.Add(new CommonEffect(CommonEffectType.Chain, v: 2)); } }
public void AddRemoveCard(SC_BaseCard c, bool add) { if (add) { AddCard(c); } else { RemoveCard(c); } deckCardsCount.text = deckCards.Count.ToString() + " card" + (deckCards.Count > 1 ? "s" : "") + " in deck"; showDeckSavingButton.interactable = deckCards.Count == deckSize; for (int i = 0; i < 7; i++) { deckMatchHeatRepartitions[i].text = "(" + Mathf.RoundToInt(deckCardsColumns[i].childCount * 100f / Mathf.Max(1, deckCards.Count)) + "%)"; } float maxSize = 0; foreach (RectTransform t in deckCardsColumns) { maxSize = Mathf.Max(maxSize, t.childCount * deckCardHeight); } deckContent.sizeDelta = new Vector2(0, Mathf.Max(372, maxSize)); }
bool CheckType(SC_BaseCard c, TMP_Dropdown d) { if (d.value == 1 && !(c as SC_OffensiveMove)) { return(false); } else if (d.value == 2 && !(c as SC_Submission)) { return(false); } else if (d.value == 3 && !c.Is(CardType.Aerial)) { return(false); } else if (d.value == 4 && !c.Is(CardType.Classic)) { return(false); } else if (d.value == 5 && !c.Is(CardType.Strike)) { return(false); } else if (d.value == 6 && !c.Is(CardType.Mytho)) { return(false); } else if (d.value == 7 && !c.Is(CardType.Hardcore)) { return(false); } return(true); }
public virtual bool Matching(SC_BaseCard card) { if (superTypeQuery == Supertype.Attack && !(card as SC_AttackCard)) { return(false); } else if (superTypeQuery == Supertype.OffensiveMove && !(card as SC_OffensiveMove)) { return(false); } foreach (TypeQuery tq in typeQueries) { if (card.Is(tq.type) != tq.isOfType) { return(false); } } foreach (CommonEffectType cet in commonEffectQueries) { if (!card.Has(cet)) { return(false); } } return(true); }
public override void ApplyModifiersToCard(SC_BaseCard c, bool add) { if (c.Is(SC_Global.CardType.Submission)) { (c as SC_Submission).effectModifiers.bodyPartDamage.damage += add ? 1 : -1; } }
public override void ApplyModifiersToCard(SC_BaseCard c, bool add) { if ((c as SC_OffensiveMove) && c.Is(SC_Global.CardType.Hardcore)) { (c as SC_OffensiveMove).effectModifiers.health -= add ? 1 : -1; } }
public override SC_UI_Card CreateCard(SC_BaseCard original, RectTransform parent = null) { SC_UI_Card c = base.CreateCard(original, parent); Destroy(original.UICard.gameObject); return(c); }
public virtual SC_UI_Card CreateCard(SC_BaseCard original, RectTransform parent = null) { SC_UI_Card c = SC_BaseCard.Create(original, parent ?? RecT); GetCards().Remove(original); return(c); }
public override void ApplyModifiersToCard(SC_BaseCard c, bool add) { if (c.Is(SC_Global.CardType.Strike)) { c.commonEffects.Insert(0, new CommonEffect(CommonEffectType.Break)); (c as SC_OffensiveMove).effectModifiers.stamina += add ? 1 : -1; } }
public static void TryAddRemove(SC_BaseCard c, bool add) { if (filteredCards != null && filteredCards.ContainsKey(c)) { filteredCards[c].OnPointerClick(null); } else { Instance.AddRemoveCard(c, add); } }
public void Setup(SC_BaseCard c, int o) { card = c; name = card.Path; image.sprite = Resources.Load <Sprite> (name); origin = o; text.text = o == 0 ? "From your deck" : (o == 1 ? "From your discard" : "From opponent's discard"); }
void Awake() { BigRec.sizeDelta = RecT.sizeDelta * GM.enlargeCardFactor; if (Card) { Card = Instantiate(Card, transform); SetImages(true); } else { BigRec.anchoredPosition += Vector2.up * GM.yOffset; } }
public override SC_UI_Card CreateCard(SC_BaseCard original, RectTransform parent = null) { SC_UI_Card c = base.CreateCard(original, parent); if (cards.Count <= 0) { GetComponent <Image> ().enabled = false; TSize.gameObject.SetActive(false); } else { TSize.text = Size.ToString(); } return(c); }
public override void OnInspectorGUI() { DrawDefaultInspector(); SC_BaseCard bC = target as SC_BaseCard; bC.matchHeat = Mathf.Clamp(bC.matchHeat, 1, 20); SC_AttackCard aC = bC as SC_AttackCard; if (aC) { aC.matchHeatGain = aC.finisher ? 0 : Mathf.Max(aC.matchHeatGain, 0); } SC_OffensiveMove oM = bC as SC_OffensiveMove; if (oM) { if (oM.cost.bodyPartDamage.bodyPart == SC_Global.BodyPart.None) { oM.cost.bodyPartDamage.damage = 0; } SC_Global.OffensiveBodyPartDamage oBPD = oM.effect.bodyPartDamage; if (oBPD.bodyPart == SC_Global.BodyPart.None) { oBPD.otherBodyPart = SC_Global.BodyPart.None; oBPD.damage = 0; oBPD.both = false; } if (oBPD.otherBodyPart == SC_Global.BodyPart.None) { oBPD.both = false; } } }
public override bool Matching(SC_BaseCard card) { if (maxMatchHeat > 0 && card.matchHeat > maxMatchHeat) { return(false); } if (finisher && (!(card as SC_AttackCard) || !(card as SC_AttackCard).finisher)) { return(false); } if (moveOfDoom > 0 && (!(card as SC_OffensiveMove) || (card as SC_OffensiveMove).moveOfDoom != moveOfDoom)) { return(false); } if ((heel && !card.IsAlignmentCard(heel)) || (face && !card.IsAlignmentCard(face))) { return(false); } if (bodyPartTarget != BodyPart.None) { if (card as SC_AttackCard) { OffensiveBodyPartDamage obpd = (card as SC_OffensiveMove)?.effect.bodyPartDamage ?? (card as SC_Submission).effect.bodyPartDamage; if (obpd.bodyPart != bodyPartTarget && obpd.otherBodyPart != bodyPartTarget) { return(false); } } else { return(false); } } return(base.Matching(card)); }
public static void AddCard(SC_BaseCard c) { SC_DeckBuilder_DeckCard d = Instantiate(Resources.Load <SC_DeckBuilder_DeckCard> ("Prefabs/DeckBuilder/P_DeckBuilder_DeckCard"), Instance.deckCardsColumns[(c.matchHeat - 1) / 3]); deckCards[c] = d; d.Card = c; d.RecT.sizeDelta = new Vector2(d.RecT.sizeDelta.x, Instance.deckCardHeight); int index; for (index = 1; index < d.RecT.parent.childCount; index++) { if (d.RecT.parent.GetChild(index).GetComponent <SC_DeckBuilder_DeckCard> ().Card.matchHeat > c.matchHeat) { break; } } d.RecT.SetSiblingIndex(index); }
public static void RemoveCard(SC_BaseCard c) { DestroyImmediate(deckCards[c].gameObject); deckCards.Remove(c); }