Main/System/Main/MainWin.cs
@@ -27,7 +27,9 @@
    [SerializeField] UIEffectPlayer fightEffect;
    [SerializeField] UIEffectPlayer openCloseAnim;
    [SerializeField] FillTween cdTween;
    [SerializeField] Transform nextCantAttackMask;
    [SerializeField] Text hammerText;
    [SerializeField] Text multiFightText;
    bool isForcePlayFightUIAnim = true; //强制播放战斗锤子框动画
@@ -35,7 +37,7 @@
    protected override void InitComponent()
    {
        base.InitComponent();
        avatarCell.redpoint.redpointId = MainRedDot.PhantasmPavilionRepoint;
        avatarCell.button.SetListener(() =>
        {
            UIManager.Instance.OpenWindow<PlayerProfileWin>();
@@ -54,6 +56,9 @@
        PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
        AutoFightModel.Instance.OnFightEvent += OnSkillCast;
        RenameManager.Instance.OnUpdateRenameResultEvent += OnUpdateRenameResultEvent;
        UIManager.Instance.OnCloseWindow += OnCloseWindow;
        GlobalTimeEvent.Instance.MSEvent += OnMSEvent;
        EventBroadcast.Instance.AddListener<string>(EventName.BATTLE_START, OnBattleStart);
        base.OnPreOpen();
        // 刷新UI
@@ -65,6 +70,10 @@
        PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh;
        AutoFightModel.Instance.OnFightEvent -= OnSkillCast;
        RenameManager.Instance.OnUpdateRenameResultEvent -= OnUpdateRenameResultEvent;
        UIManager.Instance.OnCloseWindow -= OnCloseWindow;
        GlobalTimeEvent.Instance.MSEvent -= OnMSEvent;
        EventBroadcast.Instance.RemoveListener<string>(EventName.BATTLE_START, OnBattleStart);
        base.OnPreClose();
        isForcePlayFightUIAnim = true;
    }
@@ -79,6 +88,13 @@
        topBar.SetActive(functionOrder == 0 || functionOrder == 2);
    }
    void OnCloseWindow(UIBase _ui)
    {
        if (_ui.name == "AutoFightWin")
        {
            multiFightText.text = Language.Get("MultiFight", AutoFightModel.Instance.fightCost);
        }
    }
    //战斗按钮动画
    void ClickAnimation(int index)
@@ -154,7 +170,9 @@
            case PlayerDataType.default26:
                hammerText.text = UIHelper.GetMoneyCnt(41).ToString();
                break;
            case PlayerDataType.ExAttr3:
                officialRankText.InitUI(PlayerDatas.Instance.baseData.realmLevel, PlayerDatas.Instance.baseData.TitleID);
                break;
        }
    }
@@ -179,6 +197,7 @@
        {
            if (currentSubUI != null && currentSubUI.name == "HomeWin")
            {
                fightEffect.Play();
                //手动自动一起处理
                AutoFightModel.Instance.StartFight();
            }
@@ -293,6 +312,7 @@
            fightOtherWinBG.SetActive(false);
            fightOtherWinWarnImg.SetActive(false);
            fightBG.SetActive(true);
            multiFightText.text = Language.Get("MultiFight", AutoFightModel.Instance.fightCost);
            if (BattleManager.Instance.storyBattleField != null &&
@@ -313,6 +333,7 @@
        {
            //非主城界面
            fightOtherWinBG.SetActive(true);
            multiFightText.text = "";
            fightBG.SetActive(false);
            if (BattleManager.Instance.storyBattleField != null &&
            BattleManager.Instance.storyBattleField.GetBattleMode() == BattleMode.Stop)
@@ -326,13 +347,32 @@
        }
    }
    void OnBattleStart(string guid)
    {
        if (string.IsNullOrEmpty(guid))
        {
            var tmpHero = TeamManager.Instance.GetTeam(TeamType.Story).GetNextServerHero("");
            if (tmpHero != null)
            {
                AutoFightModel.Instance.fightingHeroSkinID = tmpHero.SkinID;
            }
            else
            {
                Debug.LogError("没有找到下一个攻击武将");
                return;
            }
            fightHeroImg.SetOrgSprite(HeroSkinConfig.Get(AutoFightModel.Instance.fightingHeroSkinID).SquareIcon, "HeroHead");
        }
    }
    void RefreshFightIng(bool isfighting = false)
    {
        if (isfighting)
        {
            fightEffect.Play();
            if (!fightEffect.isPlaying)
                fightEffect.Play();
            nextCantAttackMask.localScale = Vector3.zero;
            cdTween.SetStartState();
            cdTween.Play(() =>
            {
@@ -341,6 +381,7 @@
                {
                    AutoFightModel.Instance.fightingHeroSkinID = tmpHero.SkinID;
                    fightHeroImg.SetOrgSprite(HeroSkinConfig.Get(AutoFightModel.Instance.fightingHeroSkinID).SquareIcon, "HeroHead");
                    nextCantAttackMask.localScale = Vector3.one;
                }
            });
            fightHeroScale.SetStartState();
@@ -369,6 +410,17 @@
        }
        fightHeroImg.SetOrgSprite(HeroSkinConfig.Get(AutoFightModel.Instance.fightingHeroSkinID).SquareIcon, "HeroHead");
    }
    void OnMSEvent()
    {
        if (nextCantAttackMask.localScale == Vector3.one)
        {
            if (BattleManager.Instance.storyBattleField.IsCanRequestFight())
            {
                nextCantAttackMask.localScale = Vector3.zero;
            }
        }
    }
    void OnSkillCast(bool isfighting)
@@ -435,15 +487,25 @@
    {
        if (functionOrder != -1)
        {
            Debug.Log("RestoreSubUI functionOrder " + functionOrder);
            return;
            if (currentSubUI != null && currentSubUI.IsActive())
            {
                //点击挑战标签又关闭时,会触发 RestoreFuncBtn 造成
                return;
            }
        }
        if (functionOrder != -1)
        {
            //主动点击功能栏的情况
            lastWinOrder = functionOrder;
        }
        //lastWinOrder 是默认恢复使用
        if (lastWinOrder == -1)
        {
            lastWinOrder = 0;
        }
        Debug.Log("RestoreSubUI lastWinOrder " + lastWinOrder);
        OnTabButtonClicked(lastWinOrder);
    }