using cfg.CharacterCfg; using cfg.SkillCfg; using DG.Tweening; using Framework; using Gameplay.Net; using NLDPB; using System; using System.Collections; using Cysharp.Threading.Tasks; using Gameplay; using PhxhSDK; using TMPro; using UnityEngine; using UnityEngine.UI; using Button = UnityEngine.UI.Button; using Constants = Framework.Constants; using Image = UnityEngine.UI.Image; using System.Collections.Generic; public class UIRankController : UIWindow { //UI GameObj ///Auto Gen Start/// public Image Image_BG; public Image Image_RankPic_Bg; public Image Image_Poster; public Button Button_Back; public Button Button_Home; public TMP_Text Text_Hp01; public TMP_Text Text_Hp02; public TMP_Text Text_Morale01; public TMP_Text Text_Morale02; public TMP_Text Text_Defense01; public TMP_Text Text_Defense02; public TMP_Text Text_Armor01; public TMP_Text Text_Armor02; public TMP_Text Text_Armor_Value02; public TMP_Text Text_Change_Armor02; public TMP_Text Text_Attack01; public TMP_Text Text_Attack02; public TMP_Text Text_Speed01; public TMP_Text Text_Speed02; public Image Image_Skill_01; public TMP_Text Text_SkillName01; public TMP_Text Text_SkillInfo01; public Image Image_Arrow; public Image Image_Skill_02; public TMP_Text Text_SkillName02; public TMP_Text Text_SkillInfo02; public TMP_Text Text_SkillName03; public TMP_Text Text_SkillInfo03; public TMP_Text Text_RankLevel01; public TMP_Text Text_Rank_Value01; public Image Image_ArrowToRight; public TMP_Text Text_RankLevel02; public TMP_Text Text_Rank_Value02; public Image Image_Materal01; public Image Image_Red; public TMP_Text Text_Materal_Value01; public Image Image_Materal02; public Image Image_Green02; public TMP_Text Text_Materal_Value02; public Image Image_Materal03; public TMP_Text Text_Materal_Value03; public Button Button_Cannot; public TMP_Text Text_Cannot_Confirm; public Button Button_Confirm; public TMP_Text Text_Confirm; public Button Button_Cancel; ///Auto Gen End/// public static async UniTask Open(CharacterDataInfo characterDataInfo) { await CommonUtils.CaptureScreenshot(); return await UIManager.Instance.CreateAndOpenWindow(UINameConst.UIRank, characterDataInfo); } /// /// 高斯模糊遮罩 /// private RawImage rawImageGaussianBlurMask; /// /// 升级材料 /// private class Materal : UIGameObjectWrapper { private TMP_Text textValue; private GameObject goRed; private GameObject goGreen; private GenericItem genericItem; public Materal(GameObject root) : base(root) { textValue = GetComponent("value"); goRed = FindObj("Image_Red"); goGreen = FindObj("Image_Green02"); genericItem = new(FindObj("item/GenericItem")); } public void SetInfo(int itemId, int count) { textValue.text = $"{Actor.Instance.Item.GetItemCount(itemId)}/{count}"; goRed.IsScaleShow(!(Actor.Instance.Item.GetItemCount(itemId) >= count)); goGreen.IsScaleShow(Actor.Instance.Item.GetItemCount(itemId) >= count); genericItem.SetInfo(itemId, 0); IsScaleShow = true; } public override void Dispose() { base.Dispose(); genericItem.Dispose(); } } CharacterDataInfo mCharacterDataInfo; CharacterBreak mCharacterBreakCfg; private int mTargetLevel; private int maxLevel; private GameObject mLightRectObj; private Animator mAnimator; /// /// 升级材料列表 /// private readonly List listMateral = new(3); // Use this for initialization public override void PreLoad(object data = null) { base.PreLoad(data); mCharacterDataInfo = data as CharacterDataInfo; } public override void OnInit() { //bind UI GameObj UIRankBinder.GetComponents(this); rawImageGaussianBlurMask = GetComponent("GaussianBlurMask"); Transform tsMateralRoot = FindObj("Image_BG/UI_Materals").transform; mLightRectObj = FindObj("Image_BG/LightRect/1"); rawImageGaussianBlurMask.texture = CommonUtils.GetScreenTexture2D(); for (int i = 0; i < tsMateralRoot.childCount; ++i) { listMateral.Add(new Materal(tsMateralRoot.GetChild(i).gameObject)); } for (int i = 0; i < Constants.BREAK_FLAG_UI; i++) { GameObject tempFlagObj = FindObj(string.Format("Image_BG/Image_RankPic_Bg/{0}", (i + 1))); BindButton(CommonUtils.GetComponent