164 天子的考验 修复切出战斗后再回来从头播放血条和掉箱子的问题
3个文件已修改
61 ■■■■■ 已修改文件
Main/System/Battle/BattleField/TianziBillboradBattleField.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/TianziBillborad/TianziBillboradManager.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/TianziBillborad/TianziDamageBar.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleField/TianziBillboradBattleField.cs
@@ -69,7 +69,7 @@
    {
        AutoFightModel.Instance.isPause = false;
        Destroy();
        TianziBillboradManager.Instance.ClearBar();
        if (UIManager.Instance.IsOpened<TianziBillboradBattleWin>())
        {
            UIManager.Instance.CloseWindow<TianziBillboradBattleWin>();
Main/System/TianziBillborad/TianziBillboradManager.cs
@@ -12,6 +12,11 @@
    public ulong historyHurt;    //本考验历史最大伤害
    public ulong todayHurt;    //本考验今日最大伤害
    public bool isSkipSweepTip = false;
    public ulong loaclNowHunt = 0;
    public ulong loaclAllHunt = 0;
    public ulong loaclMaxHp = 0;
    public int loaclHpNum = 0;
    public event Action UpdateTianziKYInfoExent;
    public Dictionary<int, int[][]> rankAwards;// 每日排行奖励 {"名次":[[物品ID, 个数,是否拍品], ...], ...} 配置的名次key,自动按小于等于对应名次给奖励
    public Redpoint parentRedpoint = new Redpoint(MainRedDot.MainChallengeRedpoint, MainRedDot.TianziBillboradRepoint);
@@ -38,13 +43,21 @@
        UpdateTianziKYInfoExent -= OnUpdateTianziKYInfoExent;
    }
    public void ClearBar()
    {
        loaclNowHunt = 0;
        loaclAllHunt = 0;
        loaclMaxHp = 0;
        loaclHpNum = 0;
    }
    private void OnBeforePlayerDataInitializeEvent()
    {
        nowTabIndex = 0;
        todayLineID = 0;
        historyHurt = 0;
        todayHurt = 0;
        ClearBar();
        isSkipSweepTip = false;
    }
Main/System/TianziBillborad/TianziDamageBar.cs
@@ -66,11 +66,24 @@
        nowHpNum = 1; // 默认从第1条血开始
        if (!TianziConfig.TryGetTianziConfigByBossIDAndHPNum(bossId, nowHpNum, out TianziConfig tianziConfig))
            return;
        m_IntensifySlider.stage = 0;
        m_IntensifySlider.ResetStage();
        nowHunt = 0; // 初始血量为0
        nowHpMax = (ulong)tianziConfig.MaxHP;
        m_BoxCount.text = Language.Get("TianziBillborad07", 0);
        if (TianziBillboradManager.Instance.loaclHpNum > 0)
        {
            nowHunt = TianziBillboradManager.Instance.loaclNowHunt;
            nowHpMax = TianziBillboradManager.Instance.loaclMaxHp;
            nowHpNum = TianziBillboradManager.Instance.loaclHpNum;
            m_BoxCount.text = Language.Get("TianziBillborad07", Mathf.Max(nowHpNum - 1, 0));
        }
        else
        {
            m_IntensifySlider.stage = 0;
            m_IntensifySlider.ResetStage();
            nowHunt = 0; // 初始血量为0
            nowHpMax = (ulong)tianziConfig.MaxHP;
            m_BoxCount.text = Language.Get("TianziBillborad07", 0);
        }
        // 除零保护
        float percentage = 0f;
        if (nowHpMax > 0)
@@ -176,10 +189,7 @@
        //Debug.Log($"TianziDamageBar end nowHpNum {nowHpNum} nowHunt {nowHunt} nowHpMax{nowHpMax} 时间: {DateTime.Now:HH:mm:ss}");
    }
    ulong loaclNowHunt = 0;
    ulong loaclAllHunt = 0;
    ulong loaclMaxHp = 0;
    int loaclHpNum = 0;
    public void Show(BattleDmgInfo _damageInfo)
    {
        if (_damageInfo == null)
@@ -191,12 +201,12 @@
        for (int i = 0; i < damages.Count; i++)
        {
            ulong hunt = (ulong)damages[i];
            loaclAllHunt += hunt;
            if (!TianziConfig.TryGetTianziConfigByBossIDAndDamage(bossId, loaclAllHunt, out TianziConfig tianziConfig))
            TianziBillboradManager.Instance.loaclAllHunt += hunt;
            if (!TianziConfig.TryGetTianziConfigByBossIDAndDamage(bossId, TianziBillboradManager.Instance.loaclAllHunt, out TianziConfig tianziConfig))
                return;
            loaclMaxHp = (ulong)tianziConfig.MaxHP;
            loaclHpNum = tianziConfig.HPNum;
            loaclNowHunt = TianziConfig.GetCurrentHPDamage(bossId, loaclAllHunt);
            TianziBillboradManager.Instance.loaclMaxHp = (ulong)tianziConfig.MaxHP;
            TianziBillboradManager.Instance.loaclHpNum = tianziConfig.HPNum;
            TianziBillboradManager.Instance.loaclNowHunt = TianziConfig.GetCurrentHPDamage(bossId, TianziBillboradManager.Instance.loaclAllHunt);
            // if (loaclMaxHp < nowHpMax || loaclHpNum < nowHpNum)
            // {
@@ -209,9 +219,9 @@
            //     Debug.LogWarning($"TianziDamageBar hunt {hunt} loaclAllHunt {loaclAllHunt} loaclHpNum {loaclHpNum} loaclNowHunt {loaclNowHunt} nowHpNum {nowHpNum} nowHunt {nowHunt} nowHpMax{nowHpMax} 时间: {DateTime.Now:HH:mm:ss}");
            //     return;
            // }
            nowHunt = loaclNowHunt;
            nowHpMax = loaclMaxHp;
            nowHpNum = loaclHpNum;
            nowHunt = TianziBillboradManager.Instance.loaclNowHunt;
            nowHpMax = TianziBillboradManager.Instance.loaclMaxHp;
            nowHpNum = TianziBillboradManager.Instance.loaclHpNum;
            // 除零保护
            float percentage = 0f;
            if (nowHpMax > 0)