Exemple #1
0
 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);
     }
 }
Exemple #2
0
    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;
     }
 }
Exemple #4
0
 public override void ApplyModifiersToCard(SC_BaseCard c, bool add)
 {
     if (c.Path == boostedCardName)
     {
         c.commonEffects.Add(new CommonEffect(CommonEffectType.Chain, v: 2));
     }
 }
Exemple #5
0
    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));
    }
Exemple #6
0
    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);
    }
Exemple #7
0
    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);
    }
Exemple #8
0
 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;
     }
 }
Exemple #9
0
 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;
     }
 }
Exemple #10
0
    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);
    }
Exemple #11
0
    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);
    }
Exemple #12
0
        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;
            }
        }
Exemple #13
0
 public static void TryAddRemove(SC_BaseCard c, bool add)
 {
     if (filteredCards != null && filteredCards.ContainsKey(c))
     {
         filteredCards[c].OnPointerClick(null);
     }
     else
     {
         Instance.AddRemoveCard(c, add);
     }
 }
Exemple #14
0
    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");
    }
Exemple #15
0
    void Awake()
    {
        BigRec.sizeDelta = RecT.sizeDelta * GM.enlargeCardFactor;

        if (Card)
        {
            Card = Instantiate(Card, transform);

            SetImages(true);
        }
        else
        {
            BigRec.anchoredPosition += Vector2.up * GM.yOffset;
        }
    }
Exemple #16
0
    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);
    }
Exemple #17
0
    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;
            }
        }
    }
Exemple #18
0
    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));
    }
Exemple #19
0
    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);
    }
Exemple #20
0
    public static void RemoveCard(SC_BaseCard c)
    {
        DestroyImmediate(deckCards[c].gameObject);

        deckCards.Remove(c);
    }