Ejemplo n.º 1
0
    public void AddBuff(Buff buff, bool can_stack)
    {
        if (BattleBase.Instance.IsBattleEnd == true)
        {
            return;
        }

        if (buff.IsMainBuff == true && can_stack == false)
        {
            foreach (Buff find_buff in Buffs.FindAll(b => b.Skill == buff.Skill))
            {
                find_buff.Finish();
            }
        }

        buff.EndTime = PlaybackTime + buff.Duration;
        buff.DoAction();
        Buffs.Add(buff);
        //        Buffs.Sort(Buff.SortByEndTime);

        if (buff.BuffContainer.Asset)
        {
            HPBar.AddBuff(buff.BuffContainer.Asset);
        }

        switch (buff.ActionInfo.actionType)
        {
        case eActionType.buff:
        case eActionType.debuff:
        case eActionType.buff_percent:
        case eActionType.debuff_percent:
            RefreshStat();
            break;
        }
    }