using cfg.VihecleCultivateCfg; using Cysharp.Threading.Tasks; using Framework; using Gameplay; using PhxhSDK; using System.Collections.Generic; using TMPro; using UnityEngine; using static UI_VehicleChooseController; using Button = UnityEngine.UI.Button; using Constants = Framework.Constants; using Image = UnityEngine.UI.Image; public class UI_VehicleCultivateNewController : UIWindow { #region UI_Obj //UI GameObj ///Auto Gen Start/// public Button Button_back; public TMP_Text Text_Back; public Button Button_Home; public Image Image_PhoneState; public Image Image_Property; public TMP_Text Text_Property; public Image Image_Hp; public TMP_Text Text_Vehicle_Hp; public TMP_Text Text_Hp_Value; public Image Image_Defance; public TMP_Text Text_Vehicle_Defance; public TMP_Text Text_Defance_Value; public Image Image_Capacity; public TMP_Text Text_Vehicle_Capacity; public TMP_Text Text_Capacity_Value; public Image Image_PersonNum; public TMP_Text Text_Vehicle_PersonNum; public TMP_Text Text_PersonNum_Value; public Image Image_Attack; public TMP_Text Text_Vehicle_Attack; public TMP_Text Text_Attack_Value; public Image Image_Speed; public TMP_Text Text_Vehicle_Speed; public TMP_Text Text_Speed_Value; public Image Image_Terrian; public TMP_Text Text_Terrian; public Image Image_Road; public TMP_Text Text_RoadName; public TMP_Text Text_Road_Value; public Image Image_Snow; public TMP_Text Text_SnowName; public TMP_Text Text_Snow_Value; public Image Image_Mountain; public TMP_Text Text_MountainName; public TMP_Text Text_Mountain_Value; public Image Image_Forest; public TMP_Text Text_ForestName; public TMP_Text Text_Forest_Value; public Image Image_LevelBarBG; public Button Button_LevelStrengthen; public TMP_Text Text_Level_Max; public TMP_Text Text_LevelName; public TMP_Text Text_Level_Now; public Image Image_LastAndNextLevel; public TMP_Text Text_Last; public TMP_Text Text_Next; public Image Image_ActiveSkill; public TMP_Text Text_ActiveSkill; public TMP_Text Text_ActiveSkillName; public TMP_Text Text_SkillLevel; public TMP_Text Text_Class; public TMP_Text Text_Class_Value; public Image Image_SkillLogo; public Image Image_UI_SkillCd; public TMP_Text Text_CDSecond; public TMP_Text Text_CDTme; public TMP_Text Text_SkillInfo; public Image Image_VehicelIconBg; public Image Image_Icon; public TMP_Text Text_VehicleName; public Button Button_VehicleList; public Image Image_HeadPic; public Image Image_Lv; public TMP_Text Text_Max; public TMP_Text Text_Current; public Image Image_LastAndNext; public Image Image_BottomDark; public Image Image_JobBg; public Image Image_Job; public TMP_Text Text_Name; public Image Image_HealthIcon; public TMP_Text Text_PropertyValue; public Image Image_Mask; public Image Image_Back; public Image Image_LeftDark; public Image Image_TopBlackBar; public Image Image_BottomBlackBar; ///Auto Gen End/// #endregion // deal with input data //List mShowList; PhxhScrollViewEx BottomVehicleScrollView; List mCurVehicles; VehicleCultivateData curShownVehicleData; #region API /// /// 打开载具界面 /// /// public static async UniTask Open() { // 切换场景会有瞬间卡顿,先打开UI UIWindow uiWindow = await UIManager.Instance.CreateAndOpenWindow(UINameConst.UI_VehicleCultivateNew); CommonUtils.ChangeUIScene(Constants.UI_LEVEL_SELECTED_SCENE_PATH); // 切换到关卡选择场景 CameraManager.Instance.SetMainCameraActive(true); return uiWindow; } #endregion #region UIWindow_Function public override void PreLoad(object data = null) { GetStorageData(); foreach(var cfg in mCurVehicles) { string imgPath = VehicleDataHelper.GetVehiclePicPath(cfg.Cfg.ID); AssetManager.Instance.PostPreload(imgPath).Forget(); } if (mCurVehicles.Count > 0) curShownVehicleData = mCurVehicles[0]; else { curShownVehicleData = null; DebugUtil.LogError("mCurVehicles.Count is 0"); } } // Use this for initialization public override void OnInit() { //bind UI GameObj UI_VehicleCultivateNewBinder.GetComponents(this); BottomVehicleScrollView = GetComponent("UI_VehicleList/UI_VehicleList"); BindButton(Button_back, OnBackClick); BindButton(Button_Home, OnHomeClick); BindButton(Button_VehicleList, OnVehicleListClick); BindButton(Button_LevelStrengthen, OnCultivateClick); BottomVehicleScrollView.SetItemCountFunc(() => mCurVehicles.Count); BottomVehicleScrollView.SetUpdateFunc(_RefreshSkinItem); BottomVehicleScrollView.UpdateData(); VehicleInfoRefresh(); EventManager.Instance.Register(EventManager.EventName.VehecleUpgrade, VehicleInfoRefresh); } //invoke when open window protected override void OnShowWindow(object data = null) { } //invoke when reload window protected override void OnReloadWindow(object data = null) { } //invoke when close window protected override void OnHideWindow() { } //invoke when destroy public override void OnRelease() { base.OnRelease(); EventManager.Instance.Unregister(EventManager.EventName.VehecleUpgrade, VehicleInfoRefresh); } #endregion void VehicleInfoRefresh() { Text_VehicleName.text = curShownVehicleData.Name; Text_Name.text = curShownVehicleData.Name; string imgPath = VehicleDataHelper.GetVehiclePicPath(curShownVehicleData.Cfg.ID); Image_HeadPic.sprite = AssetManager.Instance.GetPreLoadResult(imgPath); #region 等级 Text_Level_Max.text = curShownVehicleData.SumPowerMaxLevel().ToString(); Text_Max.text = curShownVehicleData.SumPowerMaxLevel().ToString(); Text_Level_Now.text = curShownVehicleData.SumPowerLevel().ToString(); Text_Current.text = curShownVehicleData.SumPowerLevel().ToString(); #endregion #region 属性 Text_Hp_Value.text = curShownVehicleData.Hp().ToString(); Text_PersonNum_Value.text = curShownVehicleData.SeatCount().ToString(); Text_Defance_Value.text = curShownVehicleData.Defense().ToString(); Text_Speed_Value.text = curShownVehicleData.MoveSpeed().ToString(); Text_Attack_Value.text = curShownVehicleData.Attack().ToString(); Text_Capacity_Value.text = curShownVehicleData.BulletCapacity().ToString(); #endregion #region 适应性 Text_Road_Value.text = curShownVehicleData.GetTerrainAdapt(BonusType.TerrainPlain); Text_Snow_Value.text = curShownVehicleData.GetTerrainAdapt(BonusType.TerrainSnow); Text_Mountain_Value.text = curShownVehicleData.GetTerrainAdapt(BonusType.TerrainMountain); Text_Forest_Value.text = curShownVehicleData.GetTerrainAdapt(BonusType.TerrainForest); #endregion } void GetStorageData() { if (mCurVehicles == null) mCurVehicles = new List(); mCurVehicles.Clear(); mCurVehicles.AddRange(VehicleCultivateDataManager.Instance.DataList); } #region scrollview private void _RefreshSkinItem(int index, RectTransform item) { var cfg = mCurVehicles[index]; if(cfg == null) { DebugUtil.LogError($"Index:{index} VehicleCultivateData cfg is null"); return; } var image = CommonUtils.GetComponent(item.gameObject, "UI_CultivateVehicle/Vehicle/Image_HeadPic"); TMP_Text nameText = CommonUtils.GetComponent(item.gameObject, "UI_CultivateVehicle/Text_Name"); TMP_Text levelText = CommonUtils.GetComponent(item.gameObject, "UI_CultivateVehicle/Image_Lv/Text_Current"); TMP_Text maxLevelText = CommonUtils.GetComponent(item.gameObject, "UI_CultivateVehicle/Image_Lv/Text_Max"); Button btn = CommonUtils.GetComponent