lcy
2025-11-12 f1e5df1fc8eadd0eb27e0a6870501fa25a42b5a1
Main/System/Main/HomeWin.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;
@@ -13,7 +14,10 @@
    //经验区
    [SerializeField] Text playerLevelText;
    [SerializeField] SmoothSlider expSlider;
    [SerializeField] UIEffectPlayer fullEffect;
    [SerializeField] UIEffectPlayer headEffect;
    [SerializeField] Button officialUpBtn;
    [SerializeField] Transform officialTip;
    //任务区
    [SerializeField] Button taskButton; //引导或者领取任务奖励
@@ -131,6 +135,8 @@
        DisplayLevel();
        DisplayRestState();
        funcColBtn.SetActive(FuncOpen.Instance.IsFuncOpen(GeneralDefine.mainRightFuncOpenFuncID));
        officialTip.SetActive(OfficialRankManager.Instance.CanOfficialLVUP());
    }
    protected override void OnPreOpen()
@@ -146,6 +152,9 @@
        FirstChargeManager.Instance.OnUpdateFirstChargeInfo += OnUpdateFirstChargeInfo;
        GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
        HeroUIManager.Instance.OnUnLockHeroCountEvent += OnUnLockHeroCountEvent;
        OfficialRankManager.Instance.OnOfficialCanLVUpEvent += OnOfficialCanLVUpEvent;
        FirstChargeManager.Instance.OnFirstChargeTaskUpdateEvent += OnFirstChargeTaskUpdateEvent;
        OfficialRankManager.Instance.RealmMissionRefreshEvent += OnOfficialCanLVUpEvent;
        Display();
        DisplayFirstChargeBtn();
@@ -168,9 +177,16 @@
        FirstChargeManager.Instance.OnUpdateFirstChargeInfo -= OnUpdateFirstChargeInfo;
        GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
        HeroUIManager.Instance.OnUnLockHeroCountEvent -= OnUnLockHeroCountEvent;
        OfficialRankManager.Instance.OnOfficialCanLVUpEvent -= OnOfficialCanLVUpEvent;
        FirstChargeManager.Instance.OnFirstChargeTaskUpdateEvent -= OnFirstChargeTaskUpdateEvent;
        OfficialRankManager.Instance.RealmMissionRefreshEvent -= OnOfficialCanLVUpEvent;
        //  关闭的时候把战斗界面也给关了 虽然是在外面开的
        UIManager.Instance.CloseWindow<BattleWin>();
    }
    void OnOfficialCanLVUpEvent()
    {
        officialTip.SetActive(OfficialRankManager.Instance.CanOfficialLVUP());
    }
    private void OnClickEnterBoss()
@@ -201,12 +217,18 @@
                {
                    lastLV = PlayerDatas.Instance.baseData.LV;
                    lvUPEffect.Play();
                    fullEffect.Play(closePMA: true);
                    headEffect.Stop();
                }
                playerLevelText.text = PlayerDatas.Instance.baseData.LV.ToString();
                break;
            case PlayerDataType.ExAttr1:
            case PlayerDataType.ExAttr2:
                DisplayLevel();
                break;
            case PlayerDataType.RealmLevel:
                OnOfficialCanLVUpEvent();
                break;
        }
@@ -246,15 +268,21 @@
    private void UpdatePlayerInfo()
    {
        playerLevelText.text = PlayerDatas.Instance.baseData.LV.ToString();
        ShowExp();
        headEffect.transform.localPosition = new Vector3(400 * expSlider.value - 200 - 24, 0, 0);
        ShowExp(false);
    }
    void ShowExp()
    void ShowExp(bool showEffect = true)
    {
        var lvConfig = PlayerLVConfig.Get(PlayerDatas.Instance.baseData.LV);
        expSlider.value = (float)PlayerDatas.Instance.baseData.curExp / lvConfig.EXP;
        expSlider.Text.text = PlayerDatas.Instance.baseData.curExp + "/" + PlayerLVConfig.Get(PlayerDatas.Instance.baseData.LV).EXP;
        if (showEffect)
        {
            headEffect.transform.DOLocalMove(new Vector3(400 * expSlider.value - 200 - 24, 0, 0), 0.5f);
            headEffect.Play(closePMA:true);
        }
    }
@@ -269,6 +297,11 @@
        {
            taskButton.SetActive(true);
            var taskConfig = TaskConfig.Get(task.TaskID);
            if (taskConfig == null)
            {
                Debug.LogError("找不到任务 " + task.TaskID);
                return;
            }
            taskText.text = taskConfig.TaskDescribe;
            taskNumText.text = string.Format("({0}/{1})", task.CurValue, taskConfig.NeedValue);
            taskNumText.color = task.CurValue >= taskConfig.NeedValue ? UIHelper.GetUIColor(TextColType.NavyYellow) : UIHelper.GetUIColor(TextColType.Red);
@@ -294,6 +327,7 @@
            getReward.RewardType = 66;
            getReward.DataEx = (uint)TaskManager.Instance.mainTask.TaskID;
            GameNetSystem.Instance.SendInfo(getReward);
            return;
        }
        
        TaskManager.Instance.ClickTask();
@@ -409,7 +443,7 @@
    private void DisplayFirstChargeBtn()
    {
        bool isFirstChargeFuncOpen = FuncOpen.Instance.IsFuncOpen(FirstChargeManager.FuncID);
        bool isFirstChargeFuncOpen = FirstChargeManager.Instance.IsFuncOpen();
        if (FirstChargeManager.Instance.IsAllFirstChargeRewardsClaimed() &&
        FirstChargeManager.Instance.IsNextDayAfterAllClaimed())
        {
@@ -419,14 +453,18 @@
        {
            FirstChargeBtn.SetActive(isFirstChargeFuncOpen);
        }
    }
    private void OnFirstChargeTaskUpdateEvent()
    {
        DisplayFirstChargeBtn();
    }
    private void OnFuncStateChange(int funcId)
    {
        if (funcId == FirstChargeManager.FuncID)
        if (funcId == GeneralDefine.mainRightFuncOpenFuncID)
        {
            DisplayFirstChargeBtn();
            funcColBtn.SetActive(FuncOpen.Instance.IsFuncOpen(GeneralDefine.mainRightFuncOpenFuncID));
        }
    }