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; }
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); }
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); }
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; }
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; }
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); } }