lcy
7 天以前 3b2a6bb9047cfce9f501593b3669a9c1af6c5df4
Main/System/Main/MainWin.cs
@@ -29,7 +29,7 @@
    [SerializeField] FillTween cdTween;
    [SerializeField] Text hammerText;
    
    bool isFirstOpen = true; //首次打开
    bool isForcePlayFightUIAnim = true; //强制播放战斗锤子框动画
    public static event Action TabChangeEvent;
    protected override void InitComponent()
@@ -61,6 +61,7 @@
        PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh;
        AutoFightModel.Instance.OnFightEvent -= OnSkillCast;
        base.OnPreClose();
        isForcePlayFightUIAnim = true;
    }
@@ -73,18 +74,33 @@
    //战斗按钮动画
    void ClickAnimation(int index)
    {
        if (isFirstOpen || (functionOrder != 0 && index == 0))
        //强制播放
        if (isForcePlayFightUIAnim)
        {
            openCloseAnim.onComplete = () =>
            {
                openCloseAnim.SetEnabled(true);
            };
            openCloseAnim.PlayByArrIndex(index == 0 ? 1 : 0);
            isForcePlayFightUIAnim = false;
            return;
        }
        //切换显示
        if (functionOrder != 0 && index == 0)
        {
            //切回战斗场景
            openCloseAnim.onComplete = () =>
            {
                openCloseAnim.SetEnabled(true);
            };
            openCloseAnim.PlayByArrIndex(1);
            isFirstOpen = false;
        }
        else if (functionOrder == 0 && index != 0)
        else if (functionOrder <= 0 && index != 0)
        {
            //切出战斗场景
            openCloseAnim.onComplete = () =>
            {
                openCloseAnim.SetEnabled(true);
@@ -184,11 +200,11 @@
            return;
        }
        
        TabChangeEvent?.Invoke();
        ClickAnimation(index);
        // 更新当前选中的标签索引
        functionOrder = index;
        TabChangeEvent?.Invoke();
        DisplayTopBar();
@@ -311,8 +327,12 @@
            cdTween.SetStartState();
            cdTween.Play(() =>
            {
                AutoFightModel.Instance.fightingHeroSkinID = TeamManager.Instance.GetTeam(TeamType.Story).GetNextServerHero(AutoFightModel.Instance.heroGuid).SkinID;
                fightHeroImg.SetOrgSprite(HeroSkinConfig.Get(AutoFightModel.Instance.fightingHeroSkinID).SquareIcon, "HeroHead");
                var tmpHero = TeamManager.Instance.GetTeam(TeamType.Story).GetNextServerHero(AutoFightModel.Instance.heroGuid);
                if (tmpHero != null)
                {
                    AutoFightModel.Instance.fightingHeroSkinID = tmpHero.SkinID;
                    fightHeroImg.SetOrgSprite(HeroSkinConfig.Get(AutoFightModel.Instance.fightingHeroSkinID).SquareIcon, "HeroHead");
                }
            });
            fightHeroScale.SetStartState();
            fightHeroScale.Play();
@@ -327,7 +347,16 @@
        if (AutoFightModel.Instance.fightingHeroSkinID == 0)
        {
            AutoFightModel.Instance.fightingHeroSkinID = TeamManager.Instance.GetTeam(TeamType.Story).GetNextServerHero(AutoFightModel.Instance.heroGuid).SkinID;
            var tmpHero = TeamManager.Instance.GetTeam(TeamType.Story).GetNextServerHero(AutoFightModel.Instance.heroGuid);
            if (tmpHero != null)
            {
                AutoFightModel.Instance.fightingHeroSkinID = tmpHero.SkinID;
            }
            else
            {
                Debug.LogError("没有找到下一个攻击武将");
                return;
            }
        }
        fightHeroImg.SetOrgSprite(HeroSkinConfig.Get(AutoFightModel.Instance.fightingHeroSkinID).SquareIcon, "HeroHead");
@@ -353,6 +382,7 @@
    //外部调用点击功能
    public void ClickFunc(int functionOrder)
    {
        tabButtons[functionOrder].SelectBtn();
        tabButtons[functionOrder].onClick.Invoke();
    }
@@ -364,7 +394,7 @@
        {
            if (lastWinOrder == -1)
            {
                lastWinOrder = 0;
                functionOrder = 0;
            }
            else
            {
@@ -386,6 +416,7 @@
            currentSubUI.CloseWindow();
            currentSubUI = null;
            functionOrder = -1;
            isForcePlayFightUIAnim = true;
            DisplayTopBar();
        }
    }
@@ -393,6 +424,8 @@
    // 外部恢复子界面
    public void RestoreSubUI()
    {
        if (functionOrder != -1)
            return;
        if (lastWinOrder == -1)
        {
            lastWinOrder = 0;