Example #1
0
 public Buff(BuffKind buffKind, double amount, bool percent, int remain)
 {
     _buffKind = buffKind;
     _amount   = amount;
     _percent  = percent;
     _remain   = remain;
 }
Example #2
0
        public void RemoveBuffs(BuffKind kind, int count)
        {
            var own = GetOwner();

            if (own == null)
            {
                return;
            }

            if (_effects == null)
            {
                return;
            }
            foreach (var e in new List <Effect>(_effects))
            {
                if (e != null)
                {
                    if (e.Template is BuffTemplate template && template.Kind != kind)
                    {
                        continue;
                    }
                    if (e.Template is BuffEffect effect && effect.Buff.Kind != kind)
                    {
                        continue;
                    }
                    e.Exit();
                    count--;
                    if (count == 0)
                    {
                        return;
                    }
                }
            }
        }
 public AbstractBuffSkill(SkillKind skillKind, string name, int manaConsumption, float timeout, BuffKind buffKind, float duration, float amount, bool periodic)
     : base(skillKind, name, manaConsumption, timeout)
 {
     this.duration           = duration;
     this.amount             = amount;
     this.buffKind           = buffKind;
     this.periodic           = periodic;
     this.periodicApplyTimer = PERIODIC_APPLY_TIMER;
 }
Example #4
0
    //计算数值受所有buff影响后的数值
    private double Buff_affect(double num, BuffKind buffKind)
    {
        for (int i = 0, len = _buffs.Count; i < len; i++)
        {
            if (_buffs[i]._buffKind == buffKind) //判断是否为增加获得治疗量的buff
            {
                num = _buffs[i].Count(num);      //若是,则根据buff增减治疗量
            }
        } //由于排序时百分比buff在后面,数值buff在前面,所以遍历时会先加数值再乘百分比

        return(num);
    }
Example #5
0
 public DebuffSkill(string name, int manaConsumption, float timeout, BuffKind buffKind, float duration, int amount, bool periodic)
     : base(SkillKind.DEBUFF, name, manaConsumption, timeout, buffKind, duration, amount, periodic)
 {
     this.periodic = periodic;
 }
Example #6
0
 public BuffSkill(string name, int manaConsumption, float timeout, BuffKind buffKind, float duration, float amount)
     : base(SkillKind.BUFF, name, manaConsumption, timeout, buffKind, duration, amount, false)
 {
 }