using System.Collections; 
 | 
using System.Collections.Generic; 
 | 
using UnityEngine; 
 | 
using DG.Tweening; 
 | 
using UnityEngine.UI; // DOTween 插件引用 
 | 
using Cysharp.Threading.Tasks; 
 | 
using System; 
 | 
  
 | 
  
 | 
public class OneLevelWin : UIBase 
 | 
{ 
 | 
    protected Image m_TitleIcon; 
 | 
    protected FunctionButtonGroup m_Group; 
 | 
    protected Button m_Left; 
 | 
    protected Button m_Right; 
 | 
    protected Button m_Close; 
 | 
  
 | 
    protected Text m_Copper; 
 | 
    protected Text m_Diamond; 
 | 
    protected Text m_BindDiamond; 
 | 
  
 | 
    protected RectTransform m_SubWindowContainer; 
 | 
    public RectTransform subWindowContainer { get { return m_SubWindowContainer; } } 
 | 
  
 | 
    private UIBase subWindow = null; 
 | 
  
 | 
    //  init once 
 | 
    protected override void InitComponent() 
 | 
    { 
 | 
        base.InitComponent(); 
 | 
  
 | 
  
 | 
        // //  跟原版的差别  
 | 
        Transform trans = transform; 
 | 
  
 | 
        // if (_rectTransform != null) 
 | 
        // { 
 | 
        //     trans = _rectTransform; 
 | 
        // } 
 | 
  
 | 
        m_TitleIcon = trans.GetComponent<Image>("Pivot/Container_BackGround/Img_Title"); 
 | 
        m_Group = trans.GetComponent<FunctionButtonGroup>("Pivot/Container_Functions"); 
 | 
        m_Left = trans.GetComponent<Button>("Pivot/Container_Buttons/Btn_Left"); 
 | 
        m_Right = trans.GetComponent<Button>("Pivot/Container_Buttons/Btn_Right"); 
 | 
        m_Close = trans.GetComponent<Button>("Pivot/Container_Buttons/Btn_Close"); 
 | 
  
 | 
        m_Copper = trans.GetComponent<Text>("Pivot/Container_BackGround/FollowStoreBottom/SilverCountBG/CountText"); 
 | 
        if (m_Copper != null) 
 | 
            m_Diamond = trans.GetComponent<Text>("Pivot/Container_BackGround/FollowStoreBottom/GoldCountBG/CountText"); 
 | 
            m_BindDiamond = trans.GetComponent<Text>("Pivot/Container_BackGround/FollowStoreBottom/GoldPaperCountBG/CountText"); 
 | 
  
 | 
        m_SubWindowContainer = trans.GetComponent<RectTransform>("Pivot/Container_SubWindow"); 
 | 
  
 | 
        var name = gameObject.name; 
 | 
        var infos = WindowConfig.GetWindowFunctionInfos(name); 
 | 
        foreach (var info in infos) 
 | 
        { 
 | 
            var title = Language.Get(info.titleKey); 
 | 
            if (title.Length == 2) 
 | 
            { 
 | 
                title = title.Insert(1, " "); 
 | 
            } 
 | 
            m_Group.AddFunction("FunctionButton_Pattern_1", info.order, info.functionId, title, info.redPointId); 
 | 
        } 
 | 
  
 | 
        m_TitleIcon.SetSprite(WindowConfig.GetTitleIconKey(name)); 
 | 
        m_TitleIcon.SetNativeSize(); 
 | 
  
 | 
        m_Close.SetListener(CloseWindow); 
 | 
        m_Left.SetListener(() => { m_Group.TriggerLast(); }); 
 | 
        m_Right.SetListener(() => { m_Group.TriggerNext(); }); 
 | 
    } 
 | 
  
 | 
    protected override void OnPreOpen() 
 | 
    { 
 | 
        base.OnPreOpen(); 
 | 
  
 | 
        if (m_Copper == null) 
 | 
            m_Copper = this.GetComponent<Text>("Pivot/Container_BackGround/FollowStoreBottom/SilverCountBG/CountText"); 
 | 
            m_Diamond = this.GetComponent<Text>("Pivot/Container_BackGround/FollowStoreBottom/GoldCountBG/CountText"); 
 | 
            m_BindDiamond = this.GetComponent<Text>("Pivot/Container_BackGround/FollowStoreBottom/GoldPaperCountBG/CountText"); 
 | 
  
 | 
         
 | 
        UpdateMoney(); 
 | 
    } 
 | 
  
 | 
    protected override void OnPreClose() 
 | 
    { 
 | 
        base.OnPreClose(); 
 | 
        CloseSubWindows(); 
 | 
    } 
 | 
  
 | 
    protected override void OnOpen() 
 | 
    { 
 | 
        base.OnOpen(); 
 | 
  
 | 
        PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataUpdate; 
 | 
  
 | 
        ExecuteNextFrame(() => { 
 | 
            m_Group.TriggerByOrder(functionOrder); 
 | 
            m_Group.GotoOrder(functionOrder); 
 | 
        }); 
 | 
  
 | 
        m_Left.SetActive(m_Group.unLockedCount > 1); 
 | 
        m_Right.SetActive(m_Group.unLockedCount > 1); 
 | 
    } 
 | 
  
 | 
    protected virtual void CloseSubWindows() 
 | 
    { 
 | 
        if (null != subWindow) 
 | 
        { 
 | 
            subWindow.CloseWindow(); 
 | 
        } 
 | 
        subWindow = null; 
 | 
    } 
 | 
  
 | 
    public void SetFunctionListener(int order, Action callBack) 
 | 
    { 
 | 
        m_Group.SetFunctionListener(order, callBack); 
 | 
    } 
 | 
  
 | 
    public void SetFunctionButtonActive(int order, bool isShow) 
 | 
    { 
 | 
        m_Group.SetFunctionButtonActive(order, isShow); 
 | 
    } 
 | 
  
 | 
    public RedPointState GetFunctionButtonRedPointState(int order) 
 | 
    { 
 | 
        return m_Group.GetFunctionButtonRedPointState(order); 
 | 
    } 
 | 
  
 | 
    public void FunctionButtonInvoke(int order) 
 | 
    { 
 | 
        m_Group.TriggerByOrder(order); 
 | 
        m_Group.GotoOrder(order); 
 | 
    } 
 | 
  
 | 
    private void OnPlayerDataUpdate(PlayerDataType type) 
 | 
    { 
 | 
        switch (type) 
 | 
        { 
 | 
            case PlayerDataType.Gold: 
 | 
            case PlayerDataType.GoldPaper: 
 | 
            case PlayerDataType.Silver: 
 | 
            case PlayerDataType.ExAttr6: 
 | 
            case PlayerDataType.default5: 
 | 
            case PlayerDataType.default6: 
 | 
                UpdateMoney(); 
 | 
                break; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    void UpdateMoney() 
 | 
    { 
 | 
        if (m_Copper == null) 
 | 
            return; 
 | 
        m_Copper.text = ItemLogicUtility.Instance.OnChangeCoinsUnit(PlayerDatas.Instance.baseData.allCopper); 
 | 
        m_Diamond.text = UIHelper.GetMoneyCntEx(1).ToString(); 
 | 
        if (PlayerDatas.Instance.baseData.bindDiamond > 0) 
 | 
            m_BindDiamond.text = ItemLogicUtility.Instance.OnChangeCoinsUnit(PlayerDatas.Instance.baseData.bindDiamond); 
 | 
        else 
 | 
            m_BindDiamond.text = UIHelper.GetMoneyCntEx(2).ToString(); 
 | 
    } 
 | 
} 
 |