Example #1
0
    public void Edit()
    {
        for (int i = SC_DeckBuilder.deckCards.Count; i > 0; i--)
        {
            SC_DeckBuilder.TryAddRemove(SC_DeckBuilder.deckCards.Keys.ElementAt(0), false);
        }

        foreach (SC_BaseCard c in SC_Global.CodeToCardsList(SelectedDeck.Deck))
        {
            SC_DeckBuilder.TryAddRemove(c, true);
        }

        gameObject.SetActive(false);

        deckBuilder.Show(true);
    }
Example #2
0
    public void Setup()
    {
        Instance = this;

        deckCards = new Dictionary <SC_BaseCard, SC_DeckBuilder_DeckCard> ();

        size = Resources.Load <RectTransform> ("Prefabs/Cards/P_UI_Card").sizeDelta *searchCardSize;

        dropdownFilters = transform.GetComponentsInChildren <TMP_Dropdown> ();

        minMaxFilters = new MinMaxFilter[] { matchHeatFilter, attackCardStaminaCost, attackCardBodyPartsCostValue,
                                             attackCardBodyPartsDamageValue, offensiveMoveHealthCost, offensiveMoveStaminaDamage, offensiveMoveHealthDamage,
                                             submissionStaminaReduction, submissionBreakCost };

        #region Setup Min Max Filters
        for (int i = 1; i < minMaxFilters.Length; i++)
        {
            minMaxFilters[i].min = 50;
            minMaxFilters[i].max = 0;
        }

        #region Set minimum and maximum attack filter values
        foreach (SC_BaseCard c in allCards)
        {
            SC_AttackCard a = c as SC_AttackCard;

            if (a)
            {
                attackCardStaminaCost.min = Mathf.Min(attackCardStaminaCost.min, a.cost.stamina);
                attackCardStaminaCost.max = Mathf.Max(attackCardStaminaCost.max, a.cost.stamina);

                attackCardBodyPartsCostValue.min = Mathf.Min(attackCardBodyPartsCostValue.min, a.cost.bodyPartDamage.damage);
                attackCardBodyPartsCostValue.max = Mathf.Max(attackCardBodyPartsCostValue.max, a.cost.bodyPartDamage.damage);

                int bpDamage = ((a as SC_OffensiveMove)?.effect.bodyPartDamage ?? (a as SC_Submission).effect.bodyPartDamage).damage;

                attackCardBodyPartsDamageValue.min = Mathf.Min(attackCardBodyPartsDamageValue.min, bpDamage);
                attackCardBodyPartsDamageValue.max = Mathf.Max(attackCardBodyPartsDamageValue.max, bpDamage);

                SC_OffensiveMove o = c as SC_OffensiveMove;

                if (o)
                {
                    offensiveMoveHealthCost.min = Mathf.Min(offensiveMoveHealthCost.min, o.cost.health);
                    offensiveMoveHealthCost.max = Mathf.Max(offensiveMoveHealthCost.max, o.cost.health);

                    offensiveMoveStaminaDamage.min = Mathf.Min(offensiveMoveStaminaDamage.min, o.effect.stamina);
                    offensiveMoveStaminaDamage.max = Mathf.Max(offensiveMoveStaminaDamage.max, o.effect.stamina);

                    offensiveMoveHealthDamage.min = Mathf.Min(offensiveMoveHealthDamage.min, o.effect.health);
                    offensiveMoveHealthDamage.max = Mathf.Max(offensiveMoveHealthDamage.max, o.effect.health);
                }
                else
                {
                    SC_Submission s = c as SC_Submission;

                    submissionStaminaReduction.min = Mathf.Min(submissionStaminaReduction.min, s.effect.stamina);
                    submissionStaminaReduction.max = Mathf.Max(submissionStaminaReduction.max, s.effect.stamina);

                    submissionBreakCost.min = Mathf.Min(submissionBreakCost.min, s.effect.breakCost);
                    submissionBreakCost.max = Mathf.Max(submissionBreakCost.max, s.effect.breakCost);
                }
            }
        }
        #endregion

        foreach (MinMaxFilter m in minMaxFilters)
        {
            m.minInput.text = m.min.ToString();
            m.maxInput.text = m.max.ToString();

            m.minInput.onEndEdit.AddListener((s) => {
                int clamped = Mathf.Clamp(m.Min, m.min, m.Max);

                if (m.Min != clamped)
                {
                    m.minInput.text = clamped.ToString();
                }
            });

            m.maxInput.onEndEdit.AddListener((s) => {
                int clamped = Mathf.Clamp(m.Max, m.Min, m.max);

                if (m.Max != clamped)
                {
                    m.maxInput.text = clamped.ToString();
                }
            });
        }
        #endregion

        commonEffects = commonEffectsParent.GetComponentsInChildren <Toggle> ();

        typeToggles = new Toggle[] { mainTypeToggle, firstSubTypeToggle, secondSubTypeToggle };
    }
Example #3
0
    public void OnPointerClick(PointerEventData eventData)
    {
        OnPointerExit(eventData);

        SC_DeckBuilder.TryAddRemove(Card, false);
    }