125 战斗 1.快速结束战斗失效的问题 2.角色UI高过外部UI的问题 3.战斗伤害消失的问题
12个文件已修改
159 ■■■■ 已修改文件
Main/Core/NetworkPackage/CustomServerPack/CustomHB426CombinePack.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Manager/UIManager.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleField/BattleField.cs 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleHUDWin.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleManager.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleUtility.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/Define/BattleDmgInfo.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/Motion/MotionBase.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/RecordPlayer/RecordPlayer.cs 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/Skill/SkillBase.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/UIComp/DamageLine.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Core/NetworkPackage/CustomServerPack/CustomHB426CombinePack.cs
@@ -63,7 +63,7 @@
                temp += "  pack type is " + pack.GetType().Name + "\n";
            }
        }
        BattleDebug.LogError(temp);
        // BattleDebug.LogError(temp);
    }
    public void AddPack(GameNetPackBasic pack)
Main/Manager/UIManager.cs
@@ -586,7 +586,7 @@
            // 设置UI的排序顺序
            ui.SetSortingOrder(sortingOrder);
            // 更新当前最高排序顺序
            currentHighestSortingOrder += ui.uiLayer == UILayer.Static ? 55/*这里是角色+特效之上的层级*/ : 10;
            currentHighestSortingOrder += ui.uiLayer == UILayer.Static ? 155/*这里是角色+特效之上的层级*/ : 10;
            // Debug.Log(ui.uiName + " order is " + sortingOrder + " " + currentHighestSortingOrder);
        }
Main/System/Battle/BattleField/BattleField.cs
@@ -478,16 +478,16 @@
            int winFaction = (int)turnFightStateData["winFaction"];
            //获胜阵营:   一般为1或者2,当玩家发起的战斗时,如果获胜阵营不等于1代表玩家失败了
            if (winFaction == 1)
            {
                Debug.LogError(guid + " : 战斗胜利");
                //  战斗胜利
            }
            else
            {
                //  战斗失败
                Debug.LogError(guid + " : 战斗失败");
            }
            // if (winFaction == 1)
            // {
            //     Debug.LogError(guid + " : 战斗胜利");
            //     //  战斗胜利
            // }
            // else
            // {
            //     //  战斗失败
            //     Debug.LogError(guid + " : 战斗失败");
            // }
            IsBattleFinish = true;
Main/System/Battle/BattleField/RecordActions/DeathRecordAction.cs
@@ -15,6 +15,11 @@
    public override void Run()
    {
        if (isFinish)
        {
            return;
        }
        base.Run();
        if (!isRunOnce)
@@ -63,6 +68,23 @@
        }
    }
    public override void ForceFinish()
    {
        isFinish = true;
        //  直接结束
        foreach (var deadPack in deadPackList)
        {
            BattleObject deadObj = battleField.battleObjMgr.GetBattleObject((int)deadPack.ObjID);
            if (null != deadObj)
            {
                OnDeathAnimationEnd(deadObj);
            }
        }
        base.ForceFinish();
    }
    private void OnDeathAnimationEnd(BattleObject deadObj)
    {
        //  只有主线掉落物品
Main/System/Battle/BattleHUDWin.cs
@@ -54,9 +54,9 @@
        ClearContent(guid);
    }
    private void ClearContent(string guid)
    private void ClearContent(string guid, bool force = false)
    {
        if (battleField.guid == guid)
        if ((battleField != null && battleField.guid == guid) || force)
        {
            for (int i = damageContentList.Count - 1; i >= 0; i--)
            {
@@ -105,9 +105,6 @@
    private void OnDamageTaken(BattleDmgInfo damageInfo)
    {
        if (battleField.IsBattleEnd())
            return;
        GameObject damageContent = damagePrefabPool.Request();
        DamageContent content = damageContent.GetComponent<DamageContent>();
        damageContent.transform.SetParent(damageNode, false);
@@ -141,9 +138,8 @@
        if (battleField != null)
        {
            battleField.OnBattlePause -= OnBattlePause;
            ClearContent(battleField.guid);
        }
        ClearContent(string.Empty, true);
        battleField = _battleField;
        battleField.OnBattlePause += OnBattlePause;
    }
Main/System/Battle/BattleManager.cs
@@ -261,7 +261,7 @@
        {
            str += "  " + list[i].GetType().Name + "\n";
        }
        BattleDebug.LogError(str);
        // BattleDebug.LogError(str);
        return list;
    }
Main/System/Battle/BattleUtility.cs
@@ -102,12 +102,54 @@
            var numChar = (char)GetDamageNumKey(config, basePowerStr[i]);
            if (numChar > 0)
            {
                result += numChar;
                result += numChar;
            }
        }
        return result;
    }
    public static string DisplayDamageNum(BattleDmg damage)
    {
        var config = DamageNumConfig.Get(damage.attackType);
        string result = string.Empty;
        //  如果是闪避 则只显示闪避两个字
        if (damage.IsType(DamageType.Dodge))
        {
            result += (char)config.prefix;
        }
        else
        {
            result = ConvertToArtFont(config, damage.damage);
        }
        return result;
    }
    static string ConvertToArtFont(DamageNumConfig config, float _num)
    {
        var stringBuild = new System.Text.StringBuilder();
        if (0 != config.plus)
            stringBuild.Append((char)config.plus);
        if (0 != config.prefix)
            stringBuild.Append((char)config.prefix);
        var chars = UIHelper.ReplaceLargeArtNum(_num);
        for (var i = 0; i < chars.Length; i++)
        {
            int numChar = GetDamageNumKey(config, (int)chars[i]);
            if (numChar > 0)
            {
                stringBuild.Append((char)numChar);
            }
        }
        return stringBuild.ToString();
    }
    public static int GetMainTargetPositionNum(BattleObject caster, List<HB427_tagSCUseSkill.tagSCUseSkillHurt> targetList, SkillConfig skillConfig)
    {
        int returnIndex = 0;
Main/System/Battle/Define/BattleDmgInfo.cs
@@ -4,8 +4,14 @@
{
    public long damage;
    public int attackType;
    public bool IsType(DamageType damageType)
    {
        return (attackType & (int)damageType) == (int)damageType;
    }
}
public class BattleDmgInfo
{
Main/System/Battle/Motion/MotionBase.cs
@@ -224,6 +224,13 @@
        updateLocalHandler = () =>
        {
            if (skillBase.IsFinished())
            {
                isPlaySkillAnimation = false;
                RemoveRunAction(updateLocalHandler);
                return;
            }
            float frame = (skillTrackEntry.TrackTime * skillTrackEntry.TimeScale * (float)BattleConst.skillMotionFps);
            if (currentTrackEntry != skillTrackEntry)
Main/System/Battle/RecordPlayer/RecordPlayer.cs
@@ -17,6 +17,8 @@
    private float speedRatio = 1.5f;
    private bool isForceFinish = false;
    public void Init(BattleField _battleField)
    {
        Release();
@@ -33,6 +35,11 @@
    public void PlayRecord(RecordAction recordAction)
    {
        BattleDebug.LogError("Enqueue record action " + recordAction.GetType());
        if (isForceFinish)
        {
            recordAction.ForceFinish();
            return;
        }
        recordActionQueue.Enqueue(recordAction);
    }
@@ -46,6 +53,12 @@
    public void InsertRecord(RecordAction recordAction)
    {
        if (isForceFinish)
        {
            recordAction.ForceFinish();
            return;
        }
        BattleDebug.LogError("Insert record action " + recordAction.GetType());
        if (currentRecordAction != null)
        {
@@ -65,6 +78,11 @@
    public void ImmediatelyPlay(RecordAction recordAction)
    {
        if (isForceFinish)
        {
            recordAction.ForceFinish();
            return;
        }
        immediatelyActionList.Add(recordAction);
    }
@@ -159,28 +177,28 @@
    }
    public void HaveRest()
    {
        while (IsPlaying())
        {
            ForceFinish();
        }
        ForceFinish();
    }
    public void ForceFinish()
    {
        for (int i = 0; i < immediatelyActionList.Count; i++)
        isForceFinish = true;
        for (int i = immediatelyActionList.Count - 1; i >= 0; i--)
        {
            immediatelyActionList[i].ForceFinish();
            var action = immediatelyActionList[i];
            action.ForceFinish();
            immediatelyActionList.Remove(action);
        }
        immediatelyActionList.Clear();
        if (currentRecordAction != null)
        while (currentRecordAction != null)
        {
            currentRecordAction.ForceFinish();
            var temp = currentRecordAction;
            currentRecordAction = null;
            temp.ForceFinish();
        }
        currentRecordAction = null;
        while (recordActionQueue.Count > 0)
        {
@@ -197,6 +215,7 @@
        currentRecordAction = null;
        recordActionQueue.Clear();
        immediatelyActionList.Clear();
        isForceFinish = false;
    }
    public void SetSpeedRatio(float ratio)
Main/System/Battle/Skill/SkillBase.cs
@@ -686,6 +686,7 @@
            otherSkillAction.ForceFinish();
            otherSkillAction = null;
        }
        HandleDead();
        isFinished = true;
        moveFinished = true;
        isPlay = true;
Main/System/Battle/UIComp/DamageLine.cs
@@ -24,6 +24,6 @@
    public void SetDamage(BattleDmg damage)
    {
        damageTypeLabel.SetActive(false);
        damageValueLabel.text = BattleUtility.DisplayDamageNum(damage.damage, damage.attackType);
        damageValueLabel.text = BattleUtility.DisplayDamageNum(damage);
    }
}