yyl
1 天以前 3af0d67c58acff1e066d8f7902f9747fbaf51b62
125 战斗 buff支持多个buff同时释放
2个文件已修改
48 ■■■■■ 已修改文件
Main/System/Battle/BattleField/RecordActions/BuffMountAction.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/Buff/BattleObjectBuffMgr.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleField/RecordActions/BuffMountAction.cs
@@ -4,23 +4,23 @@
public class BuffMountAction : RecordAction
{
    protected HB428_tagSCBuffRefresh hB428_TagSCBuffRefresh;
    protected List<HB428_tagSCBuffRefresh> buffList;
    protected Action onComplete;
    public BuffMountAction(BattleField _battleField, BattleObject _battleObj, HB428_tagSCBuffRefresh vNetData, Action _onComplete)
        : base(RecordActionType.BuffMount, _battleField, _battleObj)
    public BuffMountAction(BattleField _battleField, List<HB428_tagSCBuffRefresh> buffPackList, Action _onComplete = null)
        : base(RecordActionType.Death, _battleField, null)
    {
        isFinish = false;
        hB428_TagSCBuffRefresh = vNetData;
        buffList = buffPackList;
        onComplete = _onComplete;
    }
    public override bool IsFinished()
    {
        return isFinish;
    }
    public override void Run()
    {
@@ -28,17 +28,19 @@
        if (!isRunOnce)
        {
            SkillConfig skillConfig = SkillConfig.Get((int)hB428_TagSCBuffRefresh.SkillID);
            if (null != skillConfig)
            foreach (var hB428_TagSCBuffRefresh in buffList)
            {
                //  飘字
                battleObject.heroInfoBar.ShowTips(skillConfig.SkillName);
                SkillConfig skillConfig = SkillConfig.Get((int)hB428_TagSCBuffRefresh.SkillID);
                BattleObject obj = battleField.battleObjMgr.GetBattleObject((int)hB428_TagSCBuffRefresh.ObjID);
                if (null != skillConfig && obj != null)
                {
                    //  飘字
                    obj.heroInfoBar.ShowTips(skillConfig.SkillName);
                }
            }
            //  加buff(onComplete写了)
            onComplete?.Invoke();
            isFinish = true;
            return;
@@ -48,6 +50,11 @@
    public override void ForceFinish()
    {
        if (isFinish)
        {
            return;
        }
        //  1帧就结束了 不管
        base.ForceFinish();
    }
Main/System/Battle/Buff/BattleObjectBuffMgr.cs
@@ -93,7 +93,7 @@
    }
    //  刷新buff
    public void RefreshBuff(HB428_tagSCBuffRefresh vNetData)
    public void RefreshBuff(HB428_tagSCBuffRefresh vNetData, bool insert = false)
    {
        SkillConfig skillConfig = SkillConfig.Get((int)vNetData.SkillID);
@@ -114,9 +114,9 @@
            buffDataDict.Add(vNetData.BuffID, vNetData);
        }
        if (isNew)
        if (vNetData.IsAdd != 0)
        {
            BuffMountAction buffMountAction = new BuffMountAction(battleObject.battleField, battleObject, vNetData, () =>
            BuffMountAction buffMountAction = new BuffMountAction(battleObject.battleField, new List<HB428_tagSCBuffRefresh>(){ vNetData}, () =>
            {
                if (null != skillConfig && skillConfig.BuffEffect > 0)
                {
@@ -135,7 +135,14 @@
                }
                battleObject.heroInfoBar.RefreshBuff(buffDataDict.Values.ToList());
            });
            battleObject.battleField.recordPlayer.PlayRecord(buffMountAction);
            if (insert)
            {
                battleObject.battleField.recordPlayer.ImmediatelyPlay(buffMountAction);
            }
            else
            {
                battleObject.battleField.recordPlayer.PlayRecord(buffMountAction);
            }
        }
        else
        {
@@ -144,4 +151,8 @@
        }
    }
    public void InsertBuff(HB428_tagSCBuffRefresh vNetData)
    {
        RefreshBuff(vNetData, true);
    }
}