Files
SVSimServer/SVSim.BattleEngine/Engine/MyPageItemShop.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

444 lines
15 KiB
C#

using System.Collections;
using System.Collections.Generic;
using Cute;
using UnityEngine;
using Wizard;
public class MyPageItemShop : MyPageItem
{
private const float SET_ACTIVE_APPEAL_OBJ_DELAY_TIME = 0.15f;
[SerializeField]
private ShopSupplyCardPanel _supplyCardPanel;
[SerializeField]
private ShopPanelAppealItem _supplyAppealItem;
[SerializeField]
private MyPageCardPanel _cardPackCardPanel;
[SerializeField]
private ShopPanelAppealItem _cardPackAppealItem;
[SerializeField]
private MyPageCardPanel _crystalCardPanel;
[SerializeField]
private UIButton _supplyButton;
[SerializeField]
private UIButton _buyCardSleeveButton;
[SerializeField]
private ShopPanelAppealItem _sleeveAppealItem;
[SerializeField]
private UIButton _buyLeaderSkinButton;
[SerializeField]
private ShopPanelAppealItem _skinAppealItem;
[SerializeField]
private UIButton _buyItemButton;
[SerializeField]
private DialogItemPurchase _itemPurchaseDialog;
[SerializeField]
private SpotCardExchangeDialog _dialogSpotCardExchange;
[SerializeField]
private GameObject _supplyMenuRoot;
[SerializeField]
private UIButton _cardButton;
[SerializeField]
private GameObject _cardMenuRoot;
[SerializeField]
private UIButton _buyCardPackButton;
[SerializeField]
private ShopPanelAppealItem _packAppealItem;
[SerializeField]
private UIButton _buyDeckButton;
[SerializeField]
private ShopPanelAppealItem _deckAppealItem;
[SerializeField]
private UIButton _exchangeSpotCardButton;
[SerializeField]
private GameObject _cardPackMenuRoot;
[SerializeField]
private UIButton _crystalButton;
[SerializeField]
private UILabel _supplyMaintenanceBaseLabel;
[SerializeField]
private MyPageShopCrystalApeal _crystalAppeal;
[SerializeField]
private GameObject _cardBuyCampaignRoot;
[SerializeField]
private UILabel _cardBuyCampaignLabel;
private CardPanelMaintenancePlate _buyCardSleeveMaintenancePlate;
private CardPanelMaintenancePlate _buyLeaderSkinMaintenancePlate;
private CardPanelMaintenancePlate _buyItemMaintenancePlate;
private CardPanelMaintenancePlate _buyCardPackMaintenancePlate;
private CardPanelMaintenancePlate _buyBuildDeckMaintenancePlate;
private CardPanelMaintenancePlate _exchangeSpotCardMaintenancePlate;
private const string SLEEVE_BTN_SPRITE_NAME_BASE = "btn_supply_sleeve";
private const string SKIN_BTN_SPRITE_NAME_BASE = "btn_supply_skin";
private List<string> _shopCardPanelResource = new List<string>();
private const int CARD_INDEX_SUPPLY = 0;
private const int CARD_INDEX_CARD = 1;
private const int CARD_INDEX_CRYSTAL = 2;
private bool IsSpecialSleeveMode => Data.MyPageNotifications.data.ShopNotification.AppealSleeve.IsCollaborationPanel;
private bool IsSpecialSkinMode => Data.MyPageNotifications.data.ShopNotification.AppealLeaderSkin.IsCollaborationPanel;
public MyPageShopCrystalApeal CrystalAppeal => _crystalAppeal;
private bool IsTutorial => Data.Load.data._userTutorial.TutorialStep == 41;
public override void Initialize(MyPageMenu parent)
{
base.Initialize(parent);
_buyCardSleeveButton.onClick.Add(new EventDelegate(delegate
{
OnPushBuyCardSleeve();
}));
_buyLeaderSkinButton.onClick.Add(new EventDelegate(delegate
{
OnPushBuyLeaderSkin();
}));
_buyItemButton.onClick.Add(new EventDelegate(delegate
{
OnPushBuyItem();
}));
_buyCardPackButton.onClick.Add(new EventDelegate(delegate
{
OnPusBuyCardPack();
}));
_buyDeckButton.onClick.Add(new EventDelegate(delegate
{
OnPushBuyBuildDeck();
}));
_exchangeSpotCardButton.onClick.Add(new EventDelegate(delegate
{
OnPushExchangeSpotCard();
}));
SaveDefaultPosition(_cardPackMenuRoot);
SaveDefaultPosition(_cardPackMenuRoot);
SaveDefaultPosition(_supplyMenuRoot);
}
public override void Show(bool skipCardAnimation = false)
{
base.Show(skipCardAnimation);
_supplyMenuRoot.SetActive(value: false);
_cardPackMenuRoot.SetActive(value: false);
RestoreCardPanelPosition();
StartCardPanelAppearAnimation();
_supplyButton.onClick.Clear();
_supplyButton.onClick.Add(new EventDelegate(delegate
{
OnPushSupplyButton();
}));
_cardButton.onClick.Clear();
_cardButton.onClick.Add(new EventDelegate(delegate
{
OnPushCardButton();
}));
RestoreDefaultPosition(_cardPackMenuRoot);
RestoreDefaultPosition(_supplyMenuRoot);
if (IsTutorial)
{
SetTutorial();
UIManager.GetInstance()._Footer.SetButtonEnableColorChange(5, btnIsEnable: false);
}
ShowCardPanelAppeal();
UIManager.GetInstance().StartCoroutine(_crystalCardPanel.DisablePanel(Data.SystemText.Get("System_0074")));
UIManager.GetInstance().StartCoroutine(LoadCardPanelCoroutine());
}
private IEnumerator LoadCardPanelCoroutine()
{
ShopNotification shopNotification = Data.MyPageNotifications.data.ShopNotification;
bool flag = shopNotification.AppealSleeve.IsCollaborationPanel || shopNotification.AppealLeaderSkin.IsCollaborationPanel;
if ((flag && !_supplyCardPanel.IsLoadedSpecialCardPanelResource) || (!flag && !_supplyCardPanel.IsLoadedDefaultCardPanelResource))
{
_shopCardPanelResource.Add(_supplyCardPanel.GetResourcePath(isfetch: false));
yield return Toolbox.ResourcesManager.LoadAssetGroupSync(_shopCardPanelResource, null);
_supplyCardPanel.AttachCardPanelTexture();
}
}
private void OnDestroy()
{
Toolbox.ResourcesManager.RemoveAssetGroup(_shopCardPanelResource);
_shopCardPanelResource.Clear();
}
public override void OnMyPageInfoReceive()
{
base.OnMyPageInfoReceive();
if (IsTutorial)
{
SetTutorial();
}
}
private void SetCardPanelTutorialMode()
{
UIManager.SetObjectToGrey(_supplyCardPanel.gameObject, b: true);
UIManager.SetObjectToGrey(_crystalButton.gameObject, b: true);
}
private void SetTutorial()
{
SetCardPanelTutorialMode();
UIManager.SetObjectToGrey(base.TopBar.BackButton.gameObject, b: true);
UIManager.SetObjectToGrey(base.TopBar.BuyCrystalButton.gameObject, b: true);
base.TopBar.BuyCrystalButton.isEnabled = false;
Footer footer = UIManager.GetInstance()._Footer;
for (int i = 0; i < footer._underButtons.Length; i++)
{
if (i == 5)
{
footer.SetButtonEnableColorChange(i, !base.gameObject.activeInHierarchy);
}
else
{
footer.SetButtonEnableColorChange(i, btnIsEnable: false);
}
}
if (base.gameObject.activeInHierarchy)
{
base.Parent.SetGuideEffect(_cardPackCardPanel.transform, new Vector3(-40f, 0f, 0f), -45f);
}
}
private void OnPushCardButton()
{
if (!base.IsCardMoving)
{
base.Parent.SetDefaultBackButtonHandler();
base.CardAnimation.OnClicked(1);
ShowCardMenu();
if (IsTutorial)
{
base.Parent.SetGuideEffect(_buyCardPackButton.transform, Vector3.zero, -45f);
}
}
}
private void OnPushSupplyButton()
{
if (!IsTutorial && !base.IsCardMoving)
{
base.Parent.SetDefaultBackButtonHandler();
ShowSupplyMenu();
base.CardAnimation.OnClicked(0);
}
}
private void ShowSupplyMenu()
{
base.IsEnableFooterCurrentMenu = true;
base.Parent.SetBackButtonEnable();
_supplyButton.onClick.Clear();
base.TopBar.SetTitleLabel(Data.SystemText.Get("MyPage_0017"));
SetSpriteSpecialBtn(_buyCardSleeveButton, "btn_supply_sleeve", IsSpecialSleeveMode);
SetSpriteSpecialBtn(_buyLeaderSkinButton, "btn_supply_skin", IsSpecialSkinMode);
_supplyAppealItem.DelaySetActiveAppealObj(isActive: false, 0.15f);
MoveCardPanelLeftPosition(_supplyCardPanel.gameObject);
FadeOutCardPanelAndNonActive(_cardPackCardPanel);
FadeOutCardPanelAndNonActive(_crystalCardPanel);
_supplyMenuRoot.SetActive(value: true);
AppearAnimationFromRight(_supplyMenuRoot);
bool isMaintenance = Data.MaintenanceCodeList.Contains(NetworkDefine.MAINTENANCE_TYPE.SHOP_SLEEVE_MAINTENANCE);
bool isMaintenance2 = Data.MaintenanceCodeList.Contains(NetworkDefine.MAINTENANCE_TYPE.SHOP_SKIN_MAINTENANCE);
bool isMaintenance3 = Data.MaintenanceCodeList.Contains(NetworkDefine.MAINTENANCE_TYPE.SHOP_ITEM_MAINTENANCE);
_buyCardSleeveMaintenancePlate = MyPageItem.SetMaintenanceVisible(isMaintenance, _buyCardSleeveButton, _buyCardSleeveMaintenancePlate, _supplyMaintenanceBaseLabel.depth);
_buyLeaderSkinMaintenancePlate = MyPageItem.SetMaintenanceVisible(isMaintenance2, _buyLeaderSkinButton, _buyLeaderSkinMaintenancePlate, _supplyMaintenanceBaseLabel.depth);
_buyItemMaintenancePlate = MyPageItem.SetMaintenanceVisible(isMaintenance3, _buyItemButton, _buyItemMaintenancePlate, _supplyMaintenanceBaseLabel.depth);
}
private void SetSpriteSpecialBtn(UIButton button, string buttonSpriteNameBase, bool isSpecial)
{
button.normalSprite = (isSpecial ? (buttonSpriteNameBase + "_special") : buttonSpriteNameBase);
}
public void GoToShopSupply()
{
ShowSupplyMenu();
}
public void GoToShopCard()
{
ShowCardMenu();
}
private void OnPushBuyCardSleeve()
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
UIManager.GetInstance().ChangeViewScene(UIManager.ViewScene.CardSleevePurchasePage);
}
private void OnPushBuyLeaderSkin()
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
UIManager.GetInstance().ChangeViewScene(UIManager.ViewScene.ClassSkinPurchasePage);
}
private void OnPushBuyItem()
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
_itemPurchaseDialog.CreateItemPurcahseDialog();
}
private void ShowCardMenu()
{
if (!IsTutorial)
{
base.IsEnableFooterCurrentMenu = true;
}
base.Parent.SetBackButtonEnable();
_cardButton.onClick.Clear();
base.TopBar.SetTitleLabel(Data.SystemText.Get("MyPage_0016"));
_cardPackAppealItem.DelaySetActiveAppealObj(isActive: false, 0.15f);
RestoreCardPanelPosition();
MoveCardPanelLeftPosition(_cardPackCardPanel.gameObject);
FadeOutCardPanelAndNonActive(_supplyCardPanel);
FadeOutCardPanelAndNonActive(_crystalCardPanel);
_cardPackMenuRoot.SetActive(value: true);
AppearAnimationFromRight(_cardPackMenuRoot);
bool isMaintenance = Data.MaintenanceCodeList.Contains(NetworkDefine.MAINTENANCE_TYPE.SHOP_CARDPACK_MAINTENANCE);
bool isMaintenance2 = Data.MaintenanceCodeList.Contains(NetworkDefine.MAINTENANCE_TYPE.SHOP_BUILDDECK_MAINTENANCE);
bool isMaintenance3 = Data.MaintenanceCodeList.Contains(NetworkDefine.MAINTENANCE_TYPE.SPOTCARD_EXCHANGE);
_buyCardPackMaintenancePlate = MyPageItem.SetMaintenanceVisible(isMaintenance, _buyCardPackButton, _buyCardPackMaintenancePlate, _supplyMaintenanceBaseLabel.depth);
_buyBuildDeckMaintenancePlate = MyPageItem.SetMaintenanceVisible(isMaintenance2, _buyDeckButton, _buyBuildDeckMaintenancePlate, _supplyMaintenanceBaseLabel.depth);
_exchangeSpotCardMaintenancePlate = MyPageItem.SetMaintenanceVisible(isMaintenance3, _exchangeSpotCardButton, _exchangeSpotCardMaintenancePlate, _supplyMaintenanceBaseLabel.depth);
if (IsTutorial)
{
UIManager.SetObjectToGrey(_buyDeckButton.gameObject, b: true);
UIManager.SetObjectToGrey(_exchangeSpotCardButton.gameObject, b: true);
SetCardPanelTutorialMode();
}
}
private void OnPusBuyCardPack()
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
UIManager.GetInstance().ChangeViewScene(UIManager.ViewScene.Gacha, null, new GachaUIParam());
if (IsTutorial)
{
base.Parent.SetGuideEffect(base.Parent.transform, Vector3.zero, 0f);
base.Parent.FirstGuidEffect.gameObject.SetActive(value: false);
}
}
private void OnPushBuyBuildDeck()
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
UIManager.GetInstance().ChangeViewScene(UIManager.ViewScene.BuildDeckPurchasePage);
}
private void OnPushExchangeSpotCard()
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
_dialogSpotCardExchange.CreateSpotCardExchangeDialog();
}
private void OnPushBuyCrystal()
{
}
private void ShowCardPanelAppeal()
{
if (IsTutorial)
{
_supplyAppealItem.SetActiveAppealObj(isActive: false);
_cardPackAppealItem.SetActiveAppealObj(isActive: false);
_sleeveAppealItem.SetActiveAppealObj(isActive: false);
_skinAppealItem.SetActiveAppealObj(isActive: false);
_packAppealItem.SetActiveAppealObj(isActive: false);
_deckAppealItem.SetActiveAppealObj(isActive: false);
_crystalAppeal.gameObject.SetActive(value: false);
_cardBuyCampaignRoot.SetActive(value: false);
return;
}
bool flag = Data.MaintenanceCodeList.Contains(NetworkDefine.MAINTENANCE_TYPE.SHOP_SLEEVE_MAINTENANCE);
bool flag2 = Data.MaintenanceCodeList.Contains(NetworkDefine.MAINTENANCE_TYPE.SHOP_SKIN_MAINTENANCE);
bool flag3 = Data.MaintenanceCodeList.Contains(NetworkDefine.MAINTENANCE_TYPE.SHOP_CARDPACK_MAINTENANCE);
bool flag4 = Data.MaintenanceCodeList.Contains(NetworkDefine.MAINTENANCE_TYPE.SHOP_BUILDDECK_MAINTENANCE);
ShopNotification shopNotification = Data.MyPageNotifications.data.ShopNotification;
ShopNotification.ShopAppealInfo appeal = PriorizeAppealInfo(new List<ShopNotification.ShopAppealInfo> { shopNotification.AppealSleeve, shopNotification.AppealLeaderSkin });
_supplyAppealItem.SetAppeal(appeal);
ShopNotification.ShopAppealInfo appeal2 = PriorizeAppealInfo(new List<ShopNotification.ShopAppealInfo> { shopNotification.AppealCardPack, shopNotification.AppealBuildDeck });
_cardPackAppealItem.SetAppeal(appeal2);
_sleeveAppealItem.SetAppeal(shopNotification.AppealSleeve);
_skinAppealItem.SetAppeal(shopNotification.AppealLeaderSkin);
_packAppealItem.SetAppeal(shopNotification.AppealCardPack);
_deckAppealItem.SetAppeal(shopNotification.AppealBuildDeck);
_supplyAppealItem.SetActiveAppealObj(!flag && !flag2);
_cardPackAppealItem.SetActiveAppealObj(!flag3 && !flag4);
_sleeveAppealItem.SetActiveAppealObj(!flag);
_skinAppealItem.SetActiveAppealObj(!flag2);
_packAppealItem.SetActiveAppealObj(!flag3);
_deckAppealItem.SetActiveAppealObj(!flag4);
if (!flag3 && Prerelease.Status == Prerelease.eStatus.PRE_ROTATION)
{
_cardBuyCampaignRoot.SetActive(value: true);
_cardBuyCampaignLabel.text = Data.SystemText.Get("MyPage_0048", ConvertTime.ToLocal(Prerelease.Instance.EndTime));
_cardPackAppealItem.SetActiveAppealObj(isActive: false);
}
else
{
_cardBuyCampaignRoot.SetActive(value: false);
}
_crystalAppeal.gameObject.SetActive(value: false);
}
private ShopNotification.ShopAppealInfo PriorizeAppealInfo(List<ShopNotification.ShopAppealInfo> appealInfoList)
{
List<ShopNotification.ShopAppealInfo> list = appealInfoList.FindAll((ShopNotification.ShopAppealInfo info) => info.NeedsCampaignDisplay);
if (list.Count > 0)
{
return list[0];
}
List<ShopNotification.ShopAppealInfo> list2 = appealInfoList.FindAll((ShopNotification.ShopAppealInfo info) => info.RemainTime != null);
if (list2.Count > 0)
{
return list2.FindMin((ShopNotification.ShopAppealInfo info) => info.RemainTime.Second);
}
ShopNotification.ShopAppealInfo shopAppealInfo = appealInfoList.Find((ShopNotification.ShopAppealInfo info) => info.IsNew);
if (shopAppealInfo == null)
{
return new ShopNotification.ShopAppealInfo();
}
return shopAppealInfo;
}
}