hch
13 小时以前 364bb6a6623e49eec17075074a33121b6706fb31
Merge branch 'master' of http://mobile.secondworld.net.cn:10010/r/Project_SG_scripts
9个文件已修改
224 ■■■■■ 已修改文件
Main/Component/UI/Common/PopupWindowsProcessor.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/ArenaBattleWin.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BaseBattleWin.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleField/BattleField.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleField/RecordActions/BattleStartAction.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BoneFieldBattleWin.cs 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/StoryBossBattleWin.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/TianziBillboradBattleWin.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Settlement/BattleSettlementManager.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Component/UI/Common/PopupWindowsProcessor.cs
@@ -27,12 +27,13 @@
    /// </summary>
    /// <param name="name">窗口名称</param>
    /// <param name="functionId">功能ID,用于指定窗口的具体功能或显示模式</param>
    public void Add(string name, bool isNeedHomeWin = true, int functionId = 0)
    public void Add(string name, bool isNeedHomeWin = true, string battleFieldName = "", int functionId = 0)
    {
        var popupWindow = new PopupWindow()
        {
            window = name,
            isNeedHomeWin = isNeedHomeWin,
            battleFieldName = battleFieldName,
            functionId = functionId,
        };
@@ -115,9 +116,9 @@
        if (Time.realtimeSinceStartup - firstTime < stayTime)
            return;
        
        // 只在“没有战斗”和“主线战斗”时允许弹窗
        // 只在“没有战斗”和“主线战斗”和“自己的战场”时允许弹窗
        string activeBattleName = BattleManager.Instance.GetActiveBattleName();
        if (activeBattleName != "" && activeBattleName != "StoryBattleField")
        if (activeBattleName != "" && activeBattleName != "StoryBattleField" && activeBattleName != popupWindowQueue[0].battleFieldName)
            return;
        if (UIManager.Instance.IsOpened(popupWindowQueue[0].window))
@@ -158,6 +159,7 @@
        public int functionId;
        public bool isNeedHomeWin;
        public string battleFieldName;
    }
}
Main/System/Battle/ArenaBattleWin.cs
@@ -47,6 +47,7 @@
    {
        base.OnPreOpen();
        MainWin.TabChangeEvent += OnTabChangeEvent;
        UIManager.Instance.OnOpenWindow += OnOpenWindow;
        bool isOpenBattleChangeTab = IsOpenBattleChangeTab();
        transButtons.localPosition = new Vector3(0, isOpenBattleChangeTab ? 130 : 0, 0);
        if (isOpenBattleChangeTab)
@@ -57,12 +58,14 @@
        {
            UIManager.Instance.CloseWindow<MainWin>();
        }
        isClickSkip = false;
    }
    protected override void OnPreClose()
    {
        base.OnPreClose();
        MainWin.TabChangeEvent -= OnTabChangeEvent;
        UIManager.Instance.OnOpenWindow -= OnOpenWindow;
        bool isOpenBattleChangeTab = IsOpenBattleChangeTab();
        if (isOpenBattleChangeTab)
        {
@@ -72,8 +75,51 @@
        {
            UIManager.Instance.OpenWindow<MainWin>();
        }
        if (isClickSkip)
        {
            isClickSkip = false;
            TryPass();
        }
    }
    void OnOpenWindow(UIBase win)
    {
        if (win is ArenaBattleVictoryWin || win is ArenaBattleFailWin)
        {
            isClickSkip = false;
        }
    }
    bool isClickSkip = false;
    protected override void OnClickPass()
    {
        if (!IsPass())
            return;
        isClickSkip = true;
        clickTime = Time.time;  // 记录点击时间
        battleField.ForceFinish();
    }
    float stayTime = 2f;
    float clickTime = 0f;
    void LateUpdate()
    {
        if (isClickSkip && Time.time - clickTime >= stayTime)
        {
            isClickSkip = false;
            TryPass();
        }
    }
    private void TryPass()
    {
        if (UIManager.Instance.IsOpened<ArenaBattleVictoryWin>() ||
            UIManager.Instance.IsOpened<ArenaBattleFailWin>())
            return;
        CloseWindow();
        Debug.LogError($"OnBattleEnd 异常关闭");
        BattleSettlementManager.Instance.WinShowOver(BattleConst.ArenaBattleField);
    }
    private void OnTabChangeEvent()
    {
        UIManager.Instance.CloseWindow<ArenaBattleWin>();
Main/System/Battle/BaseBattleWin.cs
@@ -200,12 +200,24 @@
    public bool IsPass()
    {
        if (null == battleField)
            return false;
            return true;
        // 检查是否为永久特权卡玩家
        bool hasForeverPrivilege = InvestModel.Instance.IsInvested(InvestModel.foreverCardType);
        if (!hasForeverPrivilege && !FuncOpen.Instance.IsFuncOpen(BattleManager.Instance.passFuncId, true))
        string battleFieldName = battleField.ToString();
        if (!hasForeverPrivilege && !FuncOpen.Instance.IsFuncOpen(BattleManager.Instance.passFuncId))
        {
            if (battleFieldName != BattleConst.StoryBossBattleField)
            {
                //等级达到20级后解锁或开通终身特权解锁
                SysNotifyMgr.Instance.ShowTip("BattlePass2");
            }
            else
            {
                FuncOpen.Instance.ProcessorFuncErrorTip(BattleManager.Instance.passFuncId);
            }
            return false;
        }
        int passRound = BattleManager.Instance.defaultPassRound;
        var name = battleField.ToString();
@@ -254,7 +266,16 @@
            int realPassRound = passRound + 1;  // 配置是超过x回合可以跳,意味着x+1回合可以跳
            if (nowRound < realPassRound)
            {
                if (battleFieldName != BattleConst.StoryBossBattleField)
                {
                    //%s0回合后可跳过,开通终身特权立即跳过
                    SysNotifyMgr.Instance.ShowTip("BattlePass1", realPassRound - nowRound);
                }
                else
                {
                SysNotifyMgr.Instance.ShowTip("BattlePass", realPassRound - nowRound);
                }
                return false;
            }
        }
Main/System/Battle/BattleField/BattleField.cs
@@ -681,7 +681,10 @@
            IsBattleFinish = true;
            if (!string.IsNullOrEmpty(guid))
            {
                Debug.Log($"OnBattleEnd guid {guid}");
            }
            //提供外部 胜利等奖励显示
            EventBroadcast.Instance.Broadcast<string, JsonData>(EventName.BATTLE_END, guid, turnFightStateData);
        });
Main/System/Battle/BattleField/RecordActions/BattleStartAction.cs
@@ -41,6 +41,10 @@
            UniTaskExtension.DelayTime((GameObject)null, 1f, () =>
            {
                if (battleField ==null|| battleField.battleRootNode == null|| battleField.battleRootNode.battleStartNode == null)
                {
                    return;
                }
                battleField.battleRootNode.battleStartNode.SetActive(false);
                StartBattleCallback();
            });
Main/System/Battle/BoneFieldBattleWin.cs
@@ -18,6 +18,7 @@
    {
        base.OnPreOpen();
        MainWin.TabChangeEvent += OnTabChangeEvent;
        UIManager.Instance.OnOpenWindow += OnOpenWindow;
        bool isOpenBattleChangeTab = IsOpenBattleChangeTab();
        transButtons.localPosition = new Vector3(0, isOpenBattleChangeTab ? 130 : 0, 0);
        if (isOpenBattleChangeTab)
@@ -28,6 +29,7 @@
        {
            UIManager.Instance.CloseWindow<MainWin>();
        }
        isClickSkip = false;
    }
    protected override void OnPreClose()
@@ -35,6 +37,7 @@
        base.OnPreClose();
        MainWin.TabChangeEvent -= OnTabChangeEvent;
        UIManager.Instance.OnOpenWindow -= OnOpenWindow;
        bool isOpenBattleChangeTab = IsOpenBattleChangeTab();
        if (isOpenBattleChangeTab)
        {
@@ -54,8 +57,53 @@
            bossBattleObject = null;
        }
        if (isClickSkip)
        {
            isClickSkip = false;
            TryPass();
        }
    }
    void OnOpenWindow(UIBase win)
    {
        if (win is BoneBattleVictoryWin || win is BoneBattleFailWin)
        {
            isClickSkip = false;
        }
    }
    bool isClickSkip = false;
    protected override void OnClickPass()
    {
        if (!IsPass())
            return;
        isClickSkip = true;
        clickTime = Time.time;  // 记录点击时间
        battleField.ForceFinish();
    }
    float stayTime = 2f;
    float clickTime = 0f;
    void LateUpdate()
    {
        if (isClickSkip && Time.time - clickTime >= stayTime)
        {
            isClickSkip = false;
            TryPass();
        }
    }
    private void TryPass()
    {
        if (UIManager.Instance.IsOpened<BoneBattleVictoryWin>() ||
            UIManager.Instance.IsOpened<BoneBattleFailWin>())
            return;
        CloseWindow();
        Debug.LogError($"OnBattleEnd 异常关闭");
        BattleSettlementManager.Instance.WinShowOver(BattleConst.BoneBattleField);
    }
    private void OnTabChangeEvent()
    {
        UIManager.Instance.CloseWindow<BoneFieldBattleWin>();
Main/System/Battle/StoryBossBattleWin.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
@@ -22,14 +23,15 @@
    protected override void OnPreOpen()
    {
        base.OnPreOpen();
        UIManager.Instance.OnOpenWindow += OnOpenWindow;
        UIManager.Instance.CloseWindow<MainWin>();
        isClickSkip = false;
    }
    protected override void OnPreClose()
    {
        base.OnPreClose();
        UIManager.Instance.OnOpenWindow -= OnOpenWindow;
        if (!UIManager.Instance.IsOpened<MainWin>())
            UIManager.Instance.OpenWindow<MainWin>();
@@ -38,8 +40,52 @@
            bossBattleObject.buffMgr.onBuffChanged -= OnBuffChanged;
            bossBattleObject = null;
        }
        if (isClickSkip)
        {
            isClickSkip = false;
            TryPass();
        }
    }
    bool isClickSkip = false;
    protected override void OnClickPass()
    {
        if (!IsPass())
            return;
        isClickSkip = true;
        clickTime = Time.time;  // 记录点击时间
        battleField.ForceFinish();
    }
    void OnOpenWindow(UIBase win)
    {
        if (win is BattleVictoryWin || win is BattleFailWin)
        {
            isClickSkip = false;
        }
    }
    float stayTime = 2f;
    float clickTime = 0f;
    void LateUpdate()
    {
        if (isClickSkip && Time.time - clickTime >= stayTime)
        {
            isClickSkip = false;
            TryPass();
        }
    }
    private void TryPass()
    {
        if (UIManager.Instance.IsOpened<BattleVictoryWin>() ||
            UIManager.Instance.IsOpened<BattleFailWin>())
            return;
        CloseWindow();
        Debug.LogError($"OnBattleEnd 异常关闭");
        BattleSettlementManager.Instance.WinShowOver(BattleConst.StoryBossBattleField);
    }
    protected override void OnCreateBattleField(string guid, BattleField field)
    {
        if (field is StoryBossBattleField)
Main/System/Battle/TianziBillboradBattleWin.cs
@@ -28,6 +28,7 @@
        TianziBillboradManager.Instance.OnUpdateBarInfoEvent += OnUpdateBarInfoEvent;
        TianziBillboradManager.Instance.PlayUiEffectAction += OnPlayUiEffectAction;
        MainWin.TabChangeEvent += OnTabChangeEvent;
        UIManager.Instance.OnOpenWindow += OnOpenWindow;
        bool isOpenBattleChangeTab = IsOpenBattleChangeTab();
        transButtons.localPosition = new Vector3(0, isOpenBattleChangeTab ? 130 : 0, 0);
        if (isOpenBattleChangeTab)
@@ -55,6 +56,7 @@
        TianziBillboradManager.Instance.OnUpdateBarInfoEvent -= OnUpdateBarInfoEvent;
        TianziBillboradManager.Instance.PlayUiEffectAction -= OnPlayUiEffectAction;
        MainWin.TabChangeEvent -= OnTabChangeEvent;
        UIManager.Instance.OnOpenWindow -= OnOpenWindow;
        bool isOpenBattleChangeTab = IsOpenBattleChangeTab();
        if (isOpenBattleChangeTab)
        {
@@ -81,14 +83,23 @@
        }
    }
    void OnOpenWindow(UIBase win)
    {
        if (win is TianziBillboradVictoryWin)
        {
            isClickSkip = false;
        }
    }
    bool isClickSkip = false;
    protected override void OnClickPass()
    {
        if (!IsPass())
            return;
        battleField.ForceFinish();
        isClickSkip = true;
        clickTime = Time.time;  // 记录点击时间
        battleField.ForceFinish();
    }
    float stayTime = 2f;
@@ -104,12 +115,12 @@
    private void TryPass()
    {
        if (!UIManager.Instance.IsOpened<TianziBillboradVictoryWin>())
        {
        if (UIManager.Instance.IsOpened<TianziBillboradVictoryWin>())
            return;
            CloseWindow();
        Debug.LogError($"OnBattleEnd 异常关闭");
            BattleSettlementManager.Instance.WinShowOver(BattleConst.TianziBillboradBattleField);
            TianziBillboradManager.Instance.isSweepVictory = false;
        }
    }
    private void OnUpdateBarInfoEvent(ulong loaclNowHunt, ulong loaclMaxHp, int loaclHpNum)
Main/System/Settlement/BattleSettlementManager.cs
@@ -42,16 +42,16 @@
        switch (battleName)
        {
            case BattleConst.ArenaBattleField:
                PopupWindowsProcessor.Instance.Add(isWin ? "ArenaBattleVictoryWin" : "ArenaBattleFailWin", false);
                PopupWindowsProcessor.Instance.Add(isWin ? "ArenaBattleVictoryWin" : "ArenaBattleFailWin", false, BattleConst.ArenaBattleField);
                break;
            case BattleConst.BoneBattleField:
                PopupWindowsProcessor.Instance.Add(isWin ? "BoneBattleVictoryWin" : "BoneBattleFailWin", false);
                PopupWindowsProcessor.Instance.Add(isWin ? "BoneBattleVictoryWin" : "BoneBattleFailWin", false, BattleConst.BoneBattleField);
                break;
            case BattleConst.TianziBillboradBattleField:
                PopupWindowsProcessor.Instance.Add("TianziBillboradVictoryWin", false);
                PopupWindowsProcessor.Instance.Add("TianziBillboradVictoryWin", false, BattleConst.TianziBillboradBattleField);
                break;
            default:
                PopupWindowsProcessor.Instance.Add(isWin ? "BattleVictoryWin" : "BattleFailWin", false);
                PopupWindowsProcessor.Instance.Add(isWin ? "BattleVictoryWin" : "BattleFailWin", false, BattleConst.StoryBossBattleField);
                break;
        }
    }
@@ -108,10 +108,13 @@
    {
        if (string.Empty == _guid)
            return;
        Debug.Log($"OnBattleEnd 结算 guid {_guid}");
        var battle = BattleManager.Instance.GetBattleField(_guid);
        if (battle == null)
            return;
        var battleName = battle.ToString();
        try
        {
        battleSettlementDic[battleName] = _data;
        if (battleAwardDic.ContainsKey(battleName))
        {
@@ -122,6 +125,12 @@
                _data[key] = extendData[key];
            }
        }
        }
        catch (Exception e)
        {
            Debug.LogError(e.ToString());
        }
        string activeBattleName = BattleManager.Instance.GetActiveBattleName();