public void ResetStats() { for (int i = 0; i < EStats.GetNames(typeof(EStats)).Length; i++) { statsArray[i] = 0; } }
public static EquippableItem GenerateItem(int encounterCount, EquipSlot?slot = null, ESkills skill = ESkills.None, bool guaranteeSkill = false) { float statRollDivisor = 100; if (slot == null) { slot = GetRandomEquipSlot(); } (int, string)rollAndRarity = DecideRarity(); float score = (statScoreBaseValue + encounterCount) * (rollAndRarity.Item1 / statRollDivisor); int numberOfStats = Enum.GetNames(typeof(EStats)).Length; List <float> statRatios = DistributeSumBetweenNRandomNumbers(UnityEngine.Random.Range(1, numberOfStats)); List <float> statRatiosXScore = new List <float>(); // -1 because attack range should not generate random values for (int i = 0; i < numberOfStats - 1; i++) { if (i >= statRatios.Count) { statRatiosXScore.Add(0); } else { statRatiosXScore.Add(Mathf.Floor(statRatios[i] * score)); } } statRatiosXScore.Shuffle(); string category = EquipSlotToSpriteCategory((EquipSlot)slot); string label = GetLabelFromTier(GameManager.instance.GetTier()); Stats itemStats = new Stats(); foreach (EStats stat in EStats.GetValues(typeof(EStats))) { if (stat == EStats.AttackRange) { break; } itemStats.SetStat(stat, statRatiosXScore[(int)stat]); } if (skill == ESkills.None) { skill = RollForSkill(guaranteeSkill); } return(new EquippableItem( slot: (EquipSlot)slot, _name: label, spriteCategoryLabel: (category, label), _sellPrice: (int)Mathf.Ceil(score * 3), itemStats, _itemScore: rollAndRarity.Item1, _rarity: rollAndRarity.Item2, _skill: skill )); }
private void AddStatLine(EStats stat, float value) { tooltipManager.textComp.text += Stats.GetStatName(stat); tooltipManager.textComp.text += ": "; tooltipManager.textComp.text += Mathf.Floor(value).ToString(); tooltipManager.textComp.text += "\n"; }
public void RenderPlayerStats() { statDisplay.text = ""; foreach (EStats stat in EStats.GetValues(typeof(EStats))) { AddStatLine(Stats.GetStatName(stat), unitStats.GetStat(stat)); } }
public void SetStat(EStats stat, float value) { int statNumber = (int)stat; if (statNumber > statsArray.Length) { Array.Resize(ref statsArray, statNumber + 1); } statsArray[(int)stat] = value; }
private IEnumerator _UpgradeEffect(EStats p_stat) { yield return(new WaitForSeconds(1.25f)); int maxUpgrade = GameConfiguration.Instance.PlayerUpgrader.MaxUpgrade; DisplayUpgrades(m_powerFirstPosition, GameConfiguration.Instance.PlayerUpgrader.Power, maxUpgrade); DisplayUpgrades(m_speedFirstPosition, GameConfiguration.Instance.PlayerUpgrader.Speed, maxUpgrade); DisplayUpgrades(m_armorFirstPosition, GameConfiguration.Instance.PlayerUpgrader.Armor, maxUpgrade); //TODO: Juice it! }
public float GetStat(EStats stat) { int statNumber = (int)stat; float statValue; if (statNumber >= statsArray.Length) { Array.Resize(ref statsArray, statNumber + 1); return(0); } else { statValue = statsArray[statNumber]; } return(statValue); }
//private float GetMultiplicativeStat(EStats stat) //{ // List<float> allStatInstances = new List<float>(); // foreach (EquippableItem item in eqItems.EquippedItemsArray) // { // if (item != null) // allStatInstances.Add(item.Stats.GetStat(stat)); // } // allStatInstances.Add(Stats.GetStat(stat)); // allStatInstances.Add(StatModifiers.GetStat(stat)); // float reverseStatProduct = 1; // foreach (float statInstance in allStatInstances) // { // if (statInstance != 0) // reverseStatProduct *= (1 - statInstance / 100); // } // return (1 - reverseStatProduct) * 100; //} private float GetAdditiveStat(EStats stat) { float tempStat = Stats.GetStat(stat); foreach (EquippableItem item in eqItems.EquippedItemsArray) { if (item != null) { Stats itemStats = item.Stats; float statOnItem = itemStats.GetStat(stat); tempStat += statOnItem; } } tempStat += StatModifiers.GetStat(stat); return(tempStat); }
public int GetValue(EStats stat) { switch (stat) { case EStats.STATS_ATTACK: return(attack); case EStats.STATS_DEFENSE: return(defense); case EStats.STATS_INITIATIVE: return(initiative); case EStats.STATS_HEALTH_MAX: return(healthMax); case EStats.STATS_STAMINA_MAX: return(staminaMax); default: return(-1); } }
private void RenderTooltip(EquippableItem item) { tooltipManager.textComp.text = ""; tooltipManager.textComp.text += item.Name; tooltipManager.textComp.text += "\n"; if (Skills.instance && item.Skill != ESkills.None) { tooltipManager.textComp.text += "Skill: "; tooltipManager.textComp.text += Skills.instance.skillsList[item.Skill].Name; tooltipManager.textComp.text += "\n"; } tooltipManager.textComp.text += item.Slot; tooltipManager.textComp.text += "\n"; foreach (EStats stat in EStats.GetValues(typeof(EStats))) { AddStatLine(stat, item.Stats.GetStat(stat)); } tooltipManager.inventorySpriteManager.CreateAndDisplaySprite(item); }
public float GetStat(EStats stat) { float retrievedStat; switch (stat) { case EStats.Damage: retrievedStat = GetAdditiveStat(stat) * damageBalanceRatio; break; case EStats.Health: retrievedStat = GetAdditiveStat(stat) * healthBalanceRatio; break; default: retrievedStat = GetAdditiveStat(stat); break; } if (retrievedStat < 0) { retrievedStat = 0; } return(retrievedStat); }
public StatChangeEffect(int _duration, EStats _statToChange, float _statChangeAmount) : base(_duration) { StatToChange = _statToChange; StatChangeAmount = _statChangeAmount; }
public ItemStats(EStats eStats, int value) { EStats = eStats; Value = value; Wearing = false; }
public static string GetStatName(EStats stat) { StatNames.TryGetValue(stat, out string name); return(name); }
private void UpgradeEffect(EStats p_stat) { StartCoroutine(_UpgradeEffect(p_stat)); }