Ejemplo n.º 1
0
    protected void FillAbility(Ability ability, JSONNode AbilityNode)
    {
        IEnumerator enumerator;

        enumerator = AbilityNode["perks"].AsObject.GetEnumerator();

        while (enumerator.MoveNext())
        {
            PAPerk tempPerk;
            tempPerk = new PAPerk();

            KeyValuePair <string, JSONNode> currentPair = (KeyValuePair <string, JSONNode>)enumerator.Current;

            tempPerk.Key    = currentPair.Key;
            tempPerk.Points = currentPair.Value.AsInt;


            ability.Perks.Add(tempPerk.Key, tempPerk);
        }

        for (int p = 0; p < AbilityNode["pool"].Count; p++)
        {
            ability.PerkPool.Add(AbilityNode["pool"][p].Value);
        }

        ability.Points = AbilityNode["points"].AsInt;
        ability.Exp    = AbilityNode["exp"].AsInt;
        ability.LVL    = AbilityNode["lvl"].AsInt;
    }
Ejemplo n.º 2
0
 public bool IsInitialPerkValue(DevAbility ability, PAPerk perk)
 {
     for (int i = 0; i < ability.InitialPerks.Count; i++)
     {
         if (ability.InitialPerks[i].Key == perk.Key)
         {
             return(ability.InitialPerks[i].Level == perk.Points);
         }
     }
     return(false);
 }
Ejemplo n.º 3
0
    private float GetPerkValue(DevPAPerk currentPerk, PAPerk perk)
    {
        // Gauss formula => 1 + 2 + 3 + ... + n = n * (n + 1) / 2
        float sumValuesUntilLevel = (perk.Points - 1) * perk.Points / 2;
        // 1 * x + 2 * x + ... + n * x = (1 + 2 + 3 + ... + n) * x
        int   precentAccelerationPerUpgrade = 0;//CurrentPerk.PrecentAccelerationPerUpgrade;
        float accelerationPoint             = sumValuesUntilLevel * precentAccelerationPerUpgrade;

        float percentValue = currentPerk.StartingValue + perk.Points * currentPerk.PrecentPerUpgrade + accelerationPoint;

        return(percentValue);
    }
Ejemplo n.º 4
0
Archivo: CrateUI.cs Proyecto: Tzook/lel
    public void Set(string perkKey, PAPerk currentAbilityPerk = null)
    {
        Debug.Log("SD" + perkKey);
        CurrentPerk = Content.Instance.GetPerk(perkKey);

        m_Image.sprite = CurrentPerk.Icon;

        m_Animator.SetTrigger("Reset");

        int   precentAccelerationPerUpgrade = 0;//CurrentPerk.PrecentAccelerationPerUpgrade;
        float PercentValue = CurrentPerk.PrecentPerUpgrade + precentAccelerationPerUpgrade * (currentAbilityPerk == null ? 0 : currentAbilityPerk.Points);

        m_Title.text = PerkValueFormatter.Instance.GetFormattedValue(CurrentPerk, PercentValue, true) + " " + CurrentPerk.Name;
    }
Ejemplo n.º 5
0
    public void SetInfo(DevAbility devPA, PAPerk perk)
    {
        currentPerk = Content.Instance.GetPerk(perk.Key);
        bool isInitialValue = Content.Instance.IsInitialPerkValue(devPA, perk);

        txtTitle.text    = currentPerk.Name;
        iconImage.sprite = currentPerk.Icon;

        float percentValue = GetPerkValue(currentPerk, perk);

        txtPrecent.text = PerkValueFormatter.Instance.GetFormattedValue(currentPerk, percentValue, false);

        txtPrecent.color = isInitialValue ? initialPerkColor : originalTextColor;
    }
Ejemplo n.º 6
0
    public void GainPerk(string perkKey)
    {
        PAPerk    tempPerk = GetPerk(perkKey);
        DevPAPerk perkRef  = Content.Instance.GetPerk(perkKey);

        if (tempPerk != null)
        {
            tempPerk.Points++;
        }
        else
        {
            tempPerk = new PAPerk();

            tempPerk.Key    = perkRef.Key;
            tempPerk.Points = 1;

            Perks.Add(tempPerk.Key, tempPerk);
        }
    }