lcy
4 天以前 f1e5df1fc8eadd0eb27e0a6870501fa25a42b5a1
Main/System/Main/MainWin.cs
@@ -28,15 +28,18 @@
    [SerializeField] UIEffectPlayer openCloseAnim;
    [SerializeField] FillTween cdTween;
    [SerializeField] Text hammerText;
    bool isFirstOpen = true; //首次打开
    bool isForcePlayFightUIAnim = true; //强制播放战斗锤子框动画
    public static event Action TabChangeEvent;
    protected override void InitComponent()
    {
        base.InitComponent();
        avatarCell.button.AddListener(() => { });
        avatarCell.button.SetListener(() =>
        {
            UIManager.Instance.OpenWindow<PlayerProfileWin>();
        });
    }
    void Display()
@@ -50,6 +53,7 @@
    {
        PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
        AutoFightModel.Instance.OnFightEvent += OnSkillCast;
        RenameManager.Instance.OnUpdateRenameResultEvent += OnUpdateRenameResultEvent;
        base.OnPreOpen();
        // 刷新UI
@@ -60,31 +64,52 @@
    {
        PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh;
        AutoFightModel.Instance.OnFightEvent -= OnSkillCast;
        RenameManager.Instance.OnUpdateRenameResultEvent -= OnUpdateRenameResultEvent;
        base.OnPreClose();
        isForcePlayFightUIAnim = true;
    }
    private void OnUpdateRenameResultEvent()
    {
        Display();
    }
    void DisplayTopBar()
    {
        topBar.SetActive(functionOrder == 0 || functionOrder == 2);
    }
    //战斗按钮动画
    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);
@@ -183,12 +208,12 @@
        {
            return;
        }
        TabChangeEvent?.Invoke();
        ClickAnimation(index);
        // 更新当前选中的标签索引
        functionOrder = index;
        TabChangeEvent?.Invoke();
        DisplayTopBar();
@@ -311,8 +336,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 +356,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 +391,7 @@
    //外部调用点击功能
    public void ClickFunc(int functionOrder)
    {
        tabButtons[functionOrder].SelectBtn();
        tabButtons[functionOrder].onClick.Invoke();
    }
@@ -364,7 +403,7 @@
        {
            if (lastWinOrder == -1)
            {
                lastWinOrder = 0;
                functionOrder = 0;
            }
            else
            {
@@ -386,6 +425,7 @@
            currentSubUI.CloseWindow();
            currentSubUI = null;
            functionOrder = -1;
            isForcePlayFightUIAnim = true;
            DisplayTopBar();
        }
    }
@@ -393,6 +433,8 @@
    // 外部恢复子界面
    public void RestoreSubUI()
    {
        if (functionOrder != -1)
            return;
        if (lastWinOrder == -1)
        {
            lastWinOrder = 0;
@@ -400,6 +442,6 @@
        OnTabButtonClicked(lastWinOrder);
    }
    #endregion
}