Ejemplo n.º 1
0
 public void ResetStats()
 {
     for (int i = 0; i < EStats.GetNames(typeof(EStats)).Length; i++)
     {
         statsArray[i] = 0;
     }
 }
Ejemplo n.º 2
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
                   ));
    }
Ejemplo n.º 3
0
 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";
 }
Ejemplo n.º 4
0
 public void RenderPlayerStats()
 {
     statDisplay.text = "";
     foreach (EStats stat in EStats.GetValues(typeof(EStats)))
     {
         AddStatLine(Stats.GetStatName(stat), unitStats.GetStat(stat));
     }
 }
Ejemplo n.º 5
0
        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;
        }
Ejemplo n.º 6
0
    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!
    }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        //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);
        }
Ejemplo n.º 9
0
    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);
        }
    }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
 public StatChangeEffect(int _duration, EStats _statToChange, float _statChangeAmount) : base(_duration)
 {
     StatToChange     = _statToChange;
     StatChangeAmount = _statChangeAmount;
 }
Ejemplo n.º 13
0
 public ItemStats(EStats eStats, int value)
 {
     EStats  = eStats;
     Value   = value;
     Wearing = false;
 }
Ejemplo n.º 14
0
 public static string GetStatName(EStats stat)
 {
     StatNames.TryGetValue(stat, out string name);
     return(name);
 }
Ejemplo n.º 15
0
 private void UpgradeEffect(EStats p_stat)
 {
     StartCoroutine(_UpgradeEffect(p_stat));
 }