예제 #1
0
 public Effect(Constants.EffectType type, Constants.BuffTypes buffType = Constants.BuffTypes.None,
               Constants.StatusTypes statusType = Constants.StatusTypes.None, float power = 0, int duration = 2)
 {
     Type       = type;
     BuffType   = buffType;
     StatusType = statusType;
     Power      = power;
     Duration   = duration;
 }
예제 #2
0
        public void AddBuff(Constants.BuffTypes buff, float multi, int duration = 4)
        {
            if (Effects == null)
            {
                Effects = new List <Effect>();
            }
            //Swap multi for speed
            if (buff == Constants.BuffTypes.Speed)
            {
                if (multi < 1)
                {
                    multi = 1;
                }
                else
                {
                    multi = (1f / 3f);
                }
            }
            if (Effects.Find(x => x.BuffType == buff) != null)
            {
                unitManager.log.Add("Can't stack buff on " + NameStr);
                return;
            }
            Effects.Add(new Effect(Constants.EffectType.Buff, buff, Constants.StatusTypes.None, multi, duration));
            switch (buff)
            {
            case Constants.BuffTypes.Damage:
                Stats.AttackPower *= (Constants.BUFF_MULTIPLIER * multi);
                Stats.MagicPower  *= (Constants.BUFF_MULTIPLIER * multi);
                break;

            case Constants.BuffTypes.Defense:
                Stats.AttackDefense *= (Constants.BUFF_MULTIPLIER * multi);
                Stats.MagicDefense  *= (Constants.BUFF_MULTIPLIER * multi);
                break;

            case Constants.BuffTypes.Evasion:
                Stats.Accuracy *= (Constants.BUFF_MULTIPLIER * multi);
                Stats.Evasion  *= (Constants.BUFF_MULTIPLIER * multi);
                break;

            case Constants.BuffTypes.Speed:
                Stats.Speed = (int)(Stats.Speed * Constants.BUFF_MULTIPLIER * multi);
                break;

            case Constants.BuffTypes.Guard:
                Stats.AttackDefense *= Constants.GUARD_MODIFIER;
                Stats.MagicDefense  *= Constants.GUARD_MODIFIER;
                break;
            }
            UpdateColor();
        }