// Returns the base stat value for a given stat
        public float BaseStat(RPGStats.Stats stat)
        {
            switch (stat)
            {
            case RPGStats.Stats.Speed:
                return(speedStat);

            case RPGStats.Stats.Str:
                return(strStat);

            case RPGStats.Stats.Def:
                return(defStat);

            case RPGStats.Stats.Int:
                return(intStat);

            case RPGStats.Stats.Mind:
                return(mindStat);

            case RPGStats.Stats.Hp:
                return(hpStat);

            case RPGStats.Stats.Mp:
                return(mpStat);

            case RPGStats.Stats.Dex:
                return(dexStat);

            case RPGStats.Stats.Agi:
                return(agiStat);

            default:
                return(-1);
            }
        }
Beispiel #2
0
 public override void UpdateEffect(Character chara)
 {
     //if damage over time, ticks down that stat
     if (StatusEffects.effect == StatusEffectType.DamageOverTime)
     {
         RPGStats.Stats tmp = FindStatModified(StatusEffects.statBuff, chara);
         chara.CharaStats[tmp] -= StatusEffects.amount;
     }
     base.UpdateEffect(chara);
 }
        public void SetBaseStat(RPGStats.Stats stat, float value)
        {
            switch (stat)
            {
            case RPGStats.Stats.Speed:
                speedStat = value;
                break;

            case RPGStats.Stats.Str:
                strStat = value;
                break;

            case RPGStats.Stats.Def:
                defStat = value;
                break;

            case RPGStats.Stats.Int:
                intStat = value;
                break;

            case RPGStats.Stats.Mind:
                mindStat = value;
                break;

            case RPGStats.Stats.Hp:
                hpStat = value;
                break;

            case RPGStats.Stats.Mp:
                mpStat = value;
                break;

            case RPGStats.Stats.Dex:
                dexStat = value;
                break;

            case RPGStats.Stats.Agi:
                agiStat = value;
                break;

            default:
                throw new System.ArgumentOutOfRangeException();
            }
        }
Beispiel #4
0
        RPGStats.Stats FindStatModified(RPGStats.Stats statType, Character target)
        {
            //return RPGStats.Stats
            switch (statType)
            {
            case RPGStats.Stats.Speed:
                return(RPGStats.Stats.Speed);

            case RPGStats.Stats.Str:
                return(RPGStats.Stats.Str);

            case RPGStats.Stats.Def:
                return(RPGStats.Stats.Def);

            case RPGStats.Stats.Int:
                return(RPGStats.Stats.Int);

            case RPGStats.Stats.Mind:
                return(RPGStats.Stats.Mind);

            case RPGStats.Stats.Hp:
                return(RPGStats.Stats.Hp);

            case RPGStats.Stats.Mp:
                return(RPGStats.Stats.Mp);

            case RPGStats.Stats.Dex:
                return(RPGStats.Stats.Dex);

            case RPGStats.Stats.Agi:
                return(RPGStats.Stats.Agi);

            default:
                break;
            }
            //defaults to strength
            return(RPGStats.Stats.Str);
        }
Beispiel #5
0
        void ResetStats(Character target)
        {
            //does effect here, fix later(not sustainable)
            switch (StatusEffects.effect)
            {
            case StatusEffectType.Buff: {
                //target.Str += StatusEffects.amount;
                RPGStats.Stats tmp = FindStatModified(StatusEffects.statBuff, target);
                target.CharaStats[tmp] -= StatusEffects.amount;
                break;
            }

            case StatusEffectType.Debuff: {
                RPGStats.Stats tmp = FindStatModified(StatusEffects.statBuff, target);
                target.CharaStats[tmp] += StatusEffects.amount;
                break;
            }

            default:
                Debug.Log("error");
                break;
            }
        }
Beispiel #6
0
            public void ApplyItemEffects(RPGItems.Item item, bool removing = false)
            {
                // Do nothing if passed null item
                if (item == null)
                {
                    return;
                }

                float multiplier = removing ? -1 : 1;

                foreach (RPGsys.Status buff in item.Effect.currentEffects)
                {
                    //HACK
                    if (buff is RPGsys.Buff)
                    {
                        RPGsys.Buff    b       = (RPGsys.Buff)buff;
                        RPGStats.Stats tgtStat = b.StatusEffects.statBuff;
                        float          amount  = b.StatusEffects.amount * multiplier;
                        switch (b.StatusEffects.effect)
                        {
                        case Status.StatusEffectType.Heal:
                        //HACK change tgtStat to hp?
                        case Status.StatusEffectType.Buff:
                            break;

                        case Status.StatusEffectType.Debuff:
                            amount *= -1;
                            break;
                        }

                        // Add to dictionary, or add to already existing value
                        float currentChange = 0;
                        changes.TryGetValue(tgtStat, out currentChange);
                        changes[tgtStat] = currentChange + amount;
                    }
                }
            }
Beispiel #7
0
        void SetStats(Character target)
        {
            //RPGStats.Stats tmp = 0;
            switch (StatusEffects.effect)
            {
            case StatusEffectType.Buff: {
                //target.Str += StatusEffects.amount;
                RPGStats.Stats tmp = FindStatModified(StatusEffects.statBuff, target);
                target.CharaStats[tmp] += StatusEffects.amount;
                break;
            }

            case StatusEffectType.Debuff: {
                RPGStats.Stats tmp = FindStatModified(StatusEffects.statBuff, target);
                target.CharaStats[tmp] -= StatusEffects.amount;
                break;
            }

            case StatusEffectType.Heal: {
                //caps HP to the max so you can't overheal
                target.Hp += StatusEffects.amount;
                if (target.Hp > target.hpStat)
                {
                    target.Hp = target.hpStat;
                }
                //HACK check if in battle so it doesn't try making effect when using potion in inventory
                if (GameController.Instance.state == GameController.EGameStates.Battle)
                {
                    GetScreenLoc tempLoc  = new GetScreenLoc();
                    Vector2      location = tempLoc.getScreenPos(target.transform);
                    if (target.tag == "Enemy")
                    {
                        FloatingTextController.CreateHealEnemyText((StatusEffects.amount).ToString(), location);
                    }
                    else if (target.tag == "Player")
                    {
                        FloatingTextController.CreateHealAllyText((StatusEffects.amount).ToString(), location);
                    }
                }
                break;
            }

            case StatusEffectType.ManaHeal: {
                target.Mp += StatusEffects.amount;
                if (target.Mp > target.mpStat)
                {
                    target.Mp = target.mpStat;
                }
                //HACK check if in battle so it doesn't try making effect when using potion in inventory
                if (GameController.Instance.state == GameController.EGameStates.Battle)
                {
                    GetScreenLoc tempLoc  = new GetScreenLoc();
                    Vector2      location = tempLoc.getScreenPos(target.transform);
                    if (target.tag == "Enemy")
                    {
                        FloatingTextController.CreateHealEnemyText((StatusEffects.amount).ToString(), location);
                    }
                    else if (target.tag == "Player")
                    {
                        FloatingTextController.CreateHealAllyText((StatusEffects.amount).ToString(), location);
                    }
                }

                break;
            }

            default:
                Debug.Log("error");
                break;
            }
        }