Files
SVSimServer/SVSim.BattleEngine/Engine/Wizard/BaseShopPurchasePage.cs
gamer147 957af3d1ec feat(battle-engine): full Unity/VFX/god-object shims + expanded copy closure (2570 files)
Authored Unity primitive/object-model shim, VFX layer (control-flow-preserving, InstantVfx never invokes its action -- headless suppression), god-object stubs (GameMgr/EffectMgr/UIManager with faithfully-extracted nested enums), View/UI/Touch tree, LitJson+BetterList+Tuple copied, third-party stubs. Discovered Roslyn header-error masking: fixing class-header type errors unmasks body references, so the true copy closure is ~2570 files (was 782 under masking). Errors: masked-25720 -> 268; our shim files compile clean. Remaining: ~50 residual shim/external types, 24 NGUI UI-base overrides, static-type fixes, plus likely 1-2 more unmask waves.
2026-06-05 17:22:20 -04:00

133 lines
4.3 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using Cute;
using UnityEngine;
namespace Wizard;
public class BaseShopPurchasePage : UIBase
{
private const int PRODUCT_SCROLL_OBJECT_NUM = 4;
protected const int MAX_SERIES_CACHE_NUM = 4;
[SerializeField]
private UITexture _bgTexture;
[SerializeField]
protected UITexture _titleLogoTexture;
[SerializeField]
protected UILabel _labelSeriesDescription;
[SerializeField]
protected UIScrollView _scrollView;
[SerializeField]
protected UIWrapContent _wrapContent;
[SerializeField]
protected GameObject _productPlateOriginal;
protected List<int> _cacheSeriesIdList;
protected List<int> _cacheRefCountList;
protected List<string> _cacheResourceList;
protected List<string> _loadedResourceList;
protected List<Texture> _drumrollSeriesImageList = new List<Texture>();
protected List<Texture> _seriesTitleImageList = new List<Texture>();
public override void onFirstStart()
{
_cacheSeriesIdList = new List<int>(4);
_cacheRefCountList = new List<int>(4);
_cacheResourceList = new List<string>();
_loadedResourceList = new List<string>();
SetupScrollView();
base.IsShowFooterMenu = true;
_bgTexture.gameObject.layer = LayerMask.NameToLayer("FrontUI");
base.onFirstStart();
}
protected virtual void SetupScrollView()
{
for (int i = 0; i < 4; i++)
{
NGUITools.AddChild(_wrapContent.gameObject, _productPlateOriginal);
}
_productPlateOriginal.gameObject.SetActive(value: false);
_wrapContent.onInitializeItem = OnInitializeItem;
_wrapContent.minIndex = 0;
}
protected void CreateTopBar(string title, Action onFinishChangeView)
{
UIManager.ChangeViewSceneParam changeViewSceneParam = new UIManager.ChangeViewSceneParam();
changeViewSceneParam.MyPageMenuIndex = 5;
changeViewSceneParam.IsCutCardMotion = true;
changeViewSceneParam.OnFinishChangeView = onFinishChangeView;
UIManager.GetInstance().CreateTopBar(base.gameObject, title, UIManager.ViewScene.MyPage, MoneyDraw: true, changeViewSceneParam).gameObject.layer = LayerMask.NameToLayer("MyPage");
}
protected IEnumerator loadSeriesImages(ResourcesManager.AssetLoadPathType assetPathType, List<int> seriesIdList, Dictionary<int, BaseSeriesData> seriesMasterDic, Action callBack = null)
{
List<string> assetList = new List<string>();
for (int i = 0; i < seriesIdList.Count; i++)
{
BaseSeriesData baseSeriesData = seriesMasterDic[seriesIdList[i]];
assetList.Add(Toolbox.ResourcesManager.GetAssetTypePath(baseSeriesData.DrumrollPath, assetPathType));
assetList.Add(Toolbox.ResourcesManager.GetAssetTypePath(baseSeriesData.TitlePath, assetPathType));
}
assetList.Add(Toolbox.ResourcesManager.GetAssetTypePath("cmn_shop_icon_1", ResourcesManager.AssetLoadPathType.Effect2D));
yield return StartCoroutine(Toolbox.ResourcesManager.LoadAssetGroupAsync(assetList, null));
_loadedResourceList.AddRange(assetList);
_drumrollSeriesImageList.Clear();
_seriesTitleImageList.Clear();
for (int j = 0; j < seriesIdList.Count; j++)
{
BaseSeriesData baseSeriesData2 = seriesMasterDic[seriesIdList[j]];
Texture item = Toolbox.ResourcesManager.LoadObject(Toolbox.ResourcesManager.GetAssetTypePath(baseSeriesData2.DrumrollPath, assetPathType, isfetch: true)) as Texture;
_drumrollSeriesImageList.Add(item);
Texture item2 = Toolbox.ResourcesManager.LoadObject(Toolbox.ResourcesManager.GetAssetTypePath(baseSeriesData2.TitlePath, assetPathType, isfetch: true)) as Texture;
_seriesTitleImageList.Add(item2);
}
callBack.Call();
}
protected override void onClose()
{
AllDeleteCacheSeries();
if (_loadedResourceList.Count > 0)
{
Toolbox.ResourcesManager.RemoveAssetGroup(_loadedResourceList);
_loadedResourceList.Clear();
}
base.onClose();
}
private void AllDeleteCacheSeries()
{
Toolbox.ResourcesManager.RemoveAssetGroup(_cacheResourceList);
_cacheSeriesIdList.Clear();
_cacheRefCountList.Clear();
_cacheResourceList.Clear();
}
protected virtual void ResetProductListScroll(int productCount)
{
_wrapContent.maxIndex = productCount - 1;
_wrapContent.SortBasedOnScrollMovement();
_scrollView.ResetPosition();
_wrapContent.WrapContent();
}
protected virtual void OnInitializeItem(GameObject go, int wrapIndex, int realIndex)
{
}
}