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

1322 lines
39 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Convention;
using Cute;
using UnityEngine;
using Wizard;
public class MyPageMenu : UIBase
{
private const float TRANSITIONAL_BGM_DELAY_TIME = 0.5f;
private static readonly string MYPAGE_LAYER_NAME = "MyPage";
private const int TUTORIAL_DIALOG_DEPTH = 3000;
private static MyPageMenu _instance;
public const int HOME_INDEX = 0;
public const int STORY_INDEX = 1;
public const int BATTLE_INDEX = 2;
public const int ARENA_INDEX = 3;
public const int DECK_INDEX = 4;
public const int SHOP_INDEX = 5;
public const int OTHER_INDEX = 6;
private const int MYPAGE_ITEM_MAX = 7;
private const float TWEEN_DISTANCE_X_MOVE_NAME_FRAME = 450f;
private const float TWEEN_DELAY_MOVE_NAME_FRAME = 0f;
private const float TWEEN_DISTANCE_Y_BACK_BUTTON = 500f;
private const float TWEEN_DELAY_BACK_BUTTON = 0.1f;
private const float TWEEN_TIME_TOP_BAR = 0.3f;
private GameObject[] _pagePrefab;
private const int MYPAGE_TREASURE_CP_REWARD_DIALOG = 37;
private const int BG_REMAKE_RELEASE_MEMORY_COUNT = 50;
[SerializeField]
private GameObject _pagePrefabHome;
[SerializeField]
private GameObject _pagePrefabSoroPlay;
[SerializeField]
private GameObject _pagePrefabBattle;
[SerializeField]
private GameObject _pagePrefabArena;
[SerializeField]
private GameObject _pagePrefabCard;
[SerializeField]
private GameObject _pagePrefabShop;
[SerializeField]
private GameObject _pagePrefabOther;
[SerializeField]
private GameObject _myPageLayerRoot;
[SerializeField]
private MyPageHomeStatic _homeStatic;
[SerializeField]
private MyPageCustomBGControl _customBGControlOriginal;
private MyPageCustomBGControl _customBGControl;
[SerializeField]
private RewardBase _rewardBase;
[SerializeField]
private BoxCollider _notTouchMypageCollider;
[SerializeField]
private MyPageMaintenanceNotification _maintenanceNotificationPrefab;
private MyPageMaintenanceNotification _maintenanceNotification;
private GameObject[] _pageInstance;
private MyPageItem[] _pageItem;
private int _currentIndex;
private List<string> _loadFileList = new List<string>();
private MyPageItemBattle _pageItemBattle;
private MyPageItemHome _pageItemHome;
private MyPageItemSoroPlay _pageItemSoroPlay;
private MyPageItemShop _pageItemShop;
private MyPageItemArena _pageItemArena;
private MyPageItemCard _pageItemCard;
private bool _isEnableRoomInvite;
private float _nameWindowDefaultX;
private bool _changeMenuCalled;
private bool _isSetupFinish;
private bool _isFirstLoad = true;
private Transform _firstGuidEffectParent;
private GameObject _boxOpenEffectObj;
private GameObject _treasureEffectObj;
private int _remakeCustomBgCount;
private bool _loadResourceFinish;
private bool _isFirstChangeMenuCall = true;
private bool _isStopMyPageRefreshOnce;
public static bool IsMyPageRequestEnd { get; set; }
public static MyPageMenu Instance => _instance;
public bool _treasureBoxCpRewardDialogClosed { get; private set; } = true;
public bool IsEnableRoomInvite => _isEnableRoomInvite;
public TopBar TopBar { get; set; }
public MyPageItemHome HomeMenu => _pageItemHome;
public MyPageItemBattle BattleMenu => _pageItemBattle;
public MyPageCustomBGControl CustomBGControl => _customBGControl;
public bool IsCardLoadFinish => _homeStatic.CardLoadFinish;
public bool IsFirstGuid => Data.Load.data._userTutorial.TutorialStep != 100;
public Effect FirstGuidEffect { get; private set; }
public bool IsEnableFooterCurrentMenu => _pageItem[_currentIndex].IsEnableFooterCurrentMenu;
public int currentIndex => _currentIndex;
public bool IsVisible => _myPageLayerRoot.activeInHierarchy;
public bool IsSetupComplete { get; private set; }
public bool IsFadeoutEnd { get; private set; }
public List<CampaignRewardInfo> WinnerRewardInfoCopy { get; private set; } = new List<CampaignRewardInfo>();
private void Awake()
{
_instance = this;
_pagePrefab = new GameObject[7];
_pagePrefab[0] = _pagePrefabHome;
_pagePrefab[1] = _pagePrefabSoroPlay;
_pagePrefab[2] = _pagePrefabBattle;
_pagePrefab[3] = _pagePrefabArena;
_pagePrefab[4] = _pagePrefabCard;
_pagePrefab[5] = _pagePrefabShop;
_pagePrefab[6] = _pagePrefabOther;
_pageInstance = new GameObject[_pagePrefab.Length];
_pageItem = new MyPageItem[_pagePrefab.Length];
TopBar = UIManager.GetInstance().CreateTopBar(base.gameObject, "");
UIManager.GetInstance().SetLayerRecursive(TopBar.transform, LayerMask.NameToLayer("MyPage"));
TopBar.BackButtonLabel.text = Data.SystemText.Get("Common_0137");
TopBar.transform.parent = _myPageLayerRoot.transform;
UIManager.SetObjectToGrey(TopBar.BuyCrystalButton.gameObject, b: true);
TopBar.BuyCrystalButton.isEnabled = false;
UIEventListener.Get(TopBar.NameWindowBg).onClick = delegate
{
OnClickNameWindow();
};
_nameWindowDefaultX = TopBar.NameWindowObject.transform.localPosition.x;
_customBGControlOriginal.gameObject.SetActive(value: false);
}
public override void onFirstStart()
{
_instance = this;
base.onFirstStart();
}
protected override void onOpen()
{
base.onOpen();
LocalLog.AddRoomCreateLog("onOpen ");
_myPageLayerRoot.SetActive(value: true);
if (!_isSetupFinish)
{
_isSetupFinish = true;
IsSetupComplete = false;
IsFadeoutEnd = false;
OpenSetup();
StartCoroutine(Setup());
CommonBackGround.Instance.ChangeMyPageBG();
assetSetting();
}
_notTouchMypageCollider.enabled = false;
}
protected override void onClose()
{
base.onClose();
_myPageLayerRoot.SetActive(value: false);
DestroyMyPageItem();
if (CommonBackGround.Instance != null)
{
CommonBackGround.Instance.EffectVisible = true;
}
_isSetupFinish = false;
}
public void OpenSetup()
{
CreateMyPageItem();
MyPageItem[] pageItem = _pageItem;
for (int i = 0; i < pageItem.Length; i++)
{
pageItem[i].AttachAtlas();
}
}
public static IEnumerator OnMyPageOpen(UIManager uiManager, UIManager.ChangeViewSceneParam param)
{
IsMyPageRequestEnd = false;
while (!IsMyPageRequestEnd)
{
yield return null;
}
if (Data.MyPage.CardUpdateFlag)
{
if (Instance != null)
{
Instance.ReloadCardCircle();
}
Data.MyPage.CardUpdateFlag = false;
}
if (Instance != null)
{
Instance.ChangeMenu(param.MyPageMenuIndex, param.IsCutCardMotion);
if (param.MyPageMenuIndex != 0 && Instance._customBGControl != null)
{
Instance._customBGControl.SetEnable(enable: false);
}
}
else
{
uiManager._Footer.UpdateCurrentIndex(param.MyPageMenuIndex);
}
}
private void CreateMyPageItem()
{
for (int i = 0; i < _pagePrefab.Length; i++)
{
if (!(_pageItem[i] != null))
{
_pageInstance[i] = UnityEngine.Object.Instantiate(_pagePrefab[i]);
_pageInstance[i].transform.parent = _myPageLayerRoot.transform;
_pageInstance[i].transform.localPosition = Vector3.zero;
_pageInstance[i].transform.localScale = Vector3.one;
_pageInstance[i].transform.localRotation = Quaternion.identity;
_pageItem[i] = _pageInstance[i].GetComponent<MyPageItem>();
_pageItem[i].Initialize(this);
_pageInstance[i].SetActive(value: false);
}
}
_pageItemHome = _pageInstance[0].GetComponent<MyPageItemHome>();
_pageItemBattle = _pageInstance[2].GetComponent<MyPageItemBattle>();
_pageItemShop = _pageInstance[5].GetComponent<MyPageItemShop>();
_pageItemArena = _pageInstance[3].GetComponent<MyPageItemArena>();
_pageItemCard = _pageInstance[4].GetComponent<MyPageItemCard>();
_pageItemSoroPlay = _pageInstance[1].GetComponent<MyPageItemSoroPlay>();
_pageItemHome.SetHomeStatic(_homeStatic);
if (_loadResourceFinish)
{
AttachCardPanelTexture();
}
}
public void ChangeMyPageBG(MyPageDetail.BGType type, string id)
{
if (type == MyPageDetail.BGType.Deck)
{
_pageItemHome.OnUpdateCustomMyPageEnable(isHomeActive: true);
if (_customBGControl != null)
{
_customBGControl.FadeOutDestroy();
_customBGControl = null;
_homeStatic.StartCardUpAnimation();
}
}
else
{
ChangeBGToCustomBG(id);
}
}
private void ChangeBGToCustomBG(string id)
{
string text = ((_customBGControl != null) ? _customBGControl.Id : string.Empty);
if (id == text)
{
return;
}
MyPageCustomBGControl oldControl = _customBGControl;
if (oldControl != null)
{
oldControl.FadeoutStandby();
}
_customBGControl = NGUITools.AddChild(_customBGControlOriginal.transform.parent.gameObject, _customBGControlOriginal.gameObject).GetComponent<MyPageCustomBGControl>();
_customBGControl.gameObject.SetActive(value: true);
_customBGControl.Load(id, isDisplaySoon: true, delegate
{
_pageItemHome.OnUpdateCustomMyPageEnable(isHomeActive: true);
if (oldControl != null)
{
oldControl.FadeOutDestroy();
}
OnRemakeCustomBg();
});
}
private void DestroyMyPageItem()
{
if (FirstGuidEffect != null)
{
FirstGuidEffect.transform.parent = _firstGuidEffectParent;
}
for (int i = 0; i < _pageItem.Length; i++)
{
if (_pageItem[i] != null)
{
_pageItem[i].OnClose();
UnityEngine.Object.Destroy(_pageItem[i].gameObject);
_pageItem[i] = null;
}
}
_pageItemHome = null;
_pageItemBattle = null;
_pageItemShop = null;
_pageItemArena = null;
_pageItemCard = null;
if (_customBGControl != null)
{
UnityEngine.Object.Destroy(_customBGControl.gameObject);
}
_customBGControl = null;
_remakeCustomBgCount = 0;
ReleaseMemory(runGCCollect: true);
}
private IEnumerator Setup()
{
LocalLog.AddRoomCreateLog("Setup1 ");
Offline.IsConventionMode = false;
if (UIManager.GetInstance() != null)
{
TopBar.SetBackButtonEnable(enable: true);
if (UIManager.GetInstance()._Footer != null)
{
UIManager.GetInstance()._Footer.ShowFooterMenu(isShow: true);
}
}
bool finishTutorialResouce = true;
if (Data.Load.data._userTutorial.TutorialStep != 100)
{
finishTutorialResouce = false;
_loadFileList.AddRange(GameMgr.GetIns().GetEffectMgr().InitCommonEffect("Json/EffectTutorialData", isBattle: true, isField: false, isBattleEffect: false, delegate
{
finishTutorialResouce = true;
FirstGuidEffect = GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_TUTORIAL_TAP_1, Vector3.zero, Quaternion.identity);
FirstGuidEffect.gameObject.SetActive(value: false);
}));
}
while (!finishTutorialResouce)
{
yield return null;
}
LocalLog.AddRoomCreateLog("Setup2 ");
GameMgr.GetIns().GetPrefabMgr().Load("Prefab/UI/Menu/CardPanelMaintenancePlate");
RefreshStaticData();
yield return StartCoroutine(GetMyPageInfo());
if (Data.MyPage.data.BGInfo.BGType != MyPageDetail.BGType.Deck)
{
_customBGControl = NGUITools.AddChild(_customBGControlOriginal.transform.parent.gameObject, _customBGControlOriginal.gameObject).GetComponent<MyPageCustomBGControl>();
_customBGControl.gameObject.SetActive(value: true);
CommonBackGround.Instance.EffectVisible = false;
if (!_customBGControl.IsLoadRequestEnd)
{
string id = Data.MyPage.data.BGInfo.Id;
if (Data.MyPage.data.BGInfo.BGType == MyPageDetail.BGType.RandomBG)
{
id = MyPageItemHome.DecideRandomBG(Data.MyPage.data.BGInfo.RandomIdList);
}
_customBGControl.Load(id, isDisplaySoon: false, null);
}
}
if (!_loadResourceFinish)
{
LoadResource();
}
while (!_loadResourceFinish || (_customBGControl != null && _customBGControl.IsLoading))
{
yield return null;
}
LocalLog.AddRoomCreateLog("Setup3 ");
if (Data.Load.data._userTutorial.TutorialStep == 31)
{
StartCoroutine(OpenFirstTipsAndGuid(FirstTips.TipsType.MyPage));
}
while (!IsCardLoadFinish)
{
yield return null;
}
while (!CommonBackGround.Instance.IsFinishLod)
{
yield return null;
}
LocalLog.AddRoomCreateLog("Setup4 ");
yield return StartCoroutine(SetupFinish());
}
private void RefreshStaticData()
{
GameMgr.GetIns().GetDataMgr().SetQuestBattleData(null);
PracticePuzzleUI.ClearInMyPageScene();
GameMgr.GetIns().GetDataMgr().QuestFirstSelectType = QuestSelectionPage.FirstSelectType.NONE;
Data.RedEtherCampaignResultData = null;
}
private IEnumerator SetupFinish()
{
LocalLog.AddRoomCreateLog("SetupFinish ");
if (_isFirstLoad)
{
_isFirstLoad = false;
GameMgr.GetIns().GetSoundMgr().Stop_Play_BGM(Bgm.BGM_TYPE.HOME, null, 0.5f);
ParticleSystem bgEffect = CommonBackGround.Instance.GetBgEffectNow(CommonBackGround.Instance.BGType);
while (!bgEffect.GetComponent<EffectSetUp>().isFinished)
{
yield return null;
}
UIManager.GetInstance().DestroyView(UIManager.ViewScene.Title);
if (0 == 0)
{
FadeOpen();
}
}
else
{
FadeOpen();
}
}
private void FadeOpen()
{
LocalLog.AddRoomCreateLog("FadeOpen ");
IsSetupComplete = true;
_pageItemHome.OnMyPageFadeOpen(_currentIndex == 0);
GameMgr.GetIns().GetSoundMgr().PlayBGM(Bgm.BGM_TYPE.HOME);
UIManager.GetInstance().OnReadyViewScene(isFadein: true, null, delegate
{
IsFadeoutEnd = true;
});
}
protected override void OnDestroy()
{
base.OnDestroy();
UnloadResource();
DestroyMyPageItem();
resetAssetBaundleSetting();
}
private void Update()
{
}
private void BackKeyCheck()
{
}
private IEnumerator OpenFirstTipsAndGuid(FirstTips.TipsType type)
{
SetTutorialMode();
_pageItemHome.SetGiftReceiveTutorialMode();
bool finishTips = false;
UIManager.GetInstance().StartFirstTips(type, delegate
{
finishTips = true;
});
while (!finishTips)
{
yield return null;
}
DialogBase dialogBase = CreateDialogForTutorial();
dialogBase.SetTitleLabel(Data.SystemText.Get("Dia_Home_001_Title"));
dialogBase.SetText(Data.SystemText.Get("Tutorial_0010"));
dialogBase.SetButtonLayout(DialogBase.ButtonLayout.OkBtn);
dialogBase.OnClose = delegate
{
_pageItemHome.SetGuideEffectToGiftButton();
};
SetGuideToOkOnlyDialog(dialogBase);
_pageItemHome.SetFirstTips();
}
private IEnumerator FirstGuideDelay(DialogBase dialog, float delayTime)
{
yield return new WaitForSeconds(delayTime);
if (dialog != null)
{
SetGuideToOkOnlyDialog(dialog);
}
}
public void SetGuideToOkOnlyDialog(DialogBase dialog)
{
SetGuideEffect(dialog.Btn1GameObject.transform, new Vector3(-95f, 0f, 0f), -90f);
dialog.OnCloseStart = (Action)Delegate.Combine(dialog.OnCloseStart, (Action)delegate
{
FirstGuidEffect.transform.parent = base.transform.parent;
FirstGuidEffect.gameObject.SetActive(value: false);
});
}
public void SetTutorialMode()
{
Footer footer = UIManager.GetInstance()._Footer;
for (int i = 0; i < footer._underButtons.Length; i++)
{
footer.SetButtonEnableColorChange(i, btnIsEnable: false);
}
UIManager.SetObjectToGrey(TopBar.BuyCrystalButton.gameObject, b: true);
TopBar.BuyCrystalButton.isEnabled = false;
_homeStatic.SetTutorialMode();
UIManager.GetInstance()._Footer.UpdateArenaBadgeIcon();
UIManager.GetInstance()._Footer.SoloPlayIconDisp(inDisp: false);
}
public void FinishTutorialMode()
{
_homeStatic.FinishFirstTips();
}
public static DialogBase CreateDialogForTutorial()
{
DialogBase dialogBase = UIManager.GetInstance().CreateDialogClose();
int num = LayerMask.NameToLayer(MYPAGE_LAYER_NAME);
dialogBase.SetPanelDepth(3000);
dialogBase.gameObject.SetLayer(num, isSetChildren: true);
dialogBase.SetBackViewLayer(num);
return dialogBase;
}
public void FinishFirstTips()
{
if (IsFirstGuid)
{
ResetFirstGuide();
Footer footer = UIManager.GetInstance()._Footer;
for (int i = 0; i < footer._underButtons.Length; i++)
{
footer.SetButtonEnableColorChange(i);
}
_pageItemHome.FinishFirstTips();
}
}
public void ResetFirstGuide()
{
if (FirstGuidEffect != null)
{
FirstGuidEffect.Stop();
FirstGuidEffect.transform.parent = _firstGuidEffectParent;
}
}
private IEnumerator GetMyPageInfo()
{
LocalLog.AddRoomCreateLog("GetMyPageInfo1 ");
while (Toolbox.NetworkManager == null && !Global.IS_LOAD_ALLDONE)
{
yield return null;
}
TopBar.NameLabel.text = PlayerStaticData.UserName;
TopBar.RupyLabel.gameObject.SetActive(value: false);
TopBar.CrystalLabel.gameObject.SetActive(value: false);
TopBar.RankTexture.gameObject.SetActive(value: false);
TopBar.SetActiveBattlePoint(isActive: false);
UIManager uiMgr = UIManager.GetInstance();
uiMgr.createInSceneCenterLoading();
if (TaskManager.GetInstance().IsMyPageSend())
{
LocalLog.SendLastTraceLog(null);
}
LocalLog.AddRoomCreateLog("GetMyPageInfo2 ");
yield return StartCoroutine(MasterResetMonthTask.MasterReset());
MyPageTask task = GameMgr.GetIns().GetMyPageTask();
task.SetParameter();
yield return StartCoroutine(Toolbox.NetworkManager.Connect(task, OnRequestMyPageLoad));
while (!task.isServerResultCodeOK() || task.IsResourceVersionUpError)
{
yield return null;
}
LocalLog.AddRoomCreateLog("GetMyPageInfo3 ");
WinnerRewardInfoCopy.Clear();
foreach (CampaignRewardInfo reward in Data.MyPageNotifications.data.CampaignBattleWin.RewardList)
{
WinnerRewardInfoCopy.Add(reward);
}
bool finishDeckInfoTask = false;
_homeStatic.CenterCardCreateStart(delegate
{
finishDeckInfoTask = true;
});
while (!finishDeckInfoTask)
{
yield return null;
}
yield return StartCoroutine(_pageItemShop.CrystalAppeal.Initialize(Data.MyPage.data.ServerUnixTime));
TopBar.RupyLabel.gameObject.SetActive(value: true);
TopBar.CrystalLabel.gameObject.SetActive(value: true);
LocalLog.AddRoomCreateLog("GetMyPageInfo4 ");
if (Data.MyPage.data.IsExistUnfinishedBattle)
{
DateTime startTime = DateTime.Now;
while ((DateTime.Now - startTime).TotalMilliseconds < (double)Data.MyPage.data.BattleFinishWaitTime)
{
yield return null;
}
MyPageFinishBattleTask myPageFinishBattleTask = new MyPageFinishBattleTask();
myPageFinishBattleTask.SetParameter();
if (Data.TreasureBoxCp.IsReceivable)
{
_treasureBoxCpRewardDialogClosed = false;
myPageFinishBattleTask.UnfinishedBattleDialogCloseCallBack = delegate
{
UIManager.GetInstance().StartCoroutine(OpenTreasureBoxCpTreasureBox());
};
}
yield return StartCoroutine(Toolbox.NetworkManager.Connect(myPageFinishBattleTask));
while (!task.isServerResultCodeOK())
{
yield return null;
}
}
else
{
_ = Data.MyPage.data.IsExistUnfinishedRoom;
}
if (Data.TreasureBoxCp.IsReceivable && !Data.MyPage.data.CanGiveDailyLoginBonus && !Data.MyPage.data.IsExistUnfinishedBattle)
{
_treasureBoxCpRewardDialogClosed = false;
UIManager.GetInstance().StartCoroutine(OpenTreasureBoxCpTreasureBox());
}
LocalLog.AddRoomCreateLog("GetMyPageInfo5 ");
uiMgr.closeInSceneCenterLoading();
TopBar.RankTexture.gameObject.SetActive(value: true);
TopBar.SetActiveBattlePoint(isActive: true);
Format inFormat = PlayerStaticData.HighRankFormat();
PlayerStaticData.LoadUserRankTexture(inFormat);
PlayerStaticData.AttachUserEmblemTexture(TopBar.EmblemTexture, PlayerStaticData.EmblemTexSize.M);
PlayerStaticData.AttachUserRankTexture(TopBar.RankTexture, PlayerStaticData.RankTexSize.S);
if (PlayerStaticData.IsMasterRank(inFormat))
{
TopBar.SetBattlePoint(PlayerStaticData.UserMasterPointHighAllFormat(), PlayerStaticData.IsMasterRank(inFormat));
}
else
{
TopBar.SetBattlePoint(PlayerStaticData.UserBattlePointHighFormat(), PlayerStaticData.IsMasterRank(inFormat));
}
while (!_changeMenuCalled)
{
yield return null;
}
_changeMenuCalled = false;
MyPageItem[] pageItem = _pageItem;
for (int num = 0; num < pageItem.Length; num++)
{
pageItem[num].OnMyPageInfoReceive();
}
}
private IEnumerator OpenTreasureBoxCpTreasureBox()
{
GameMgr.GetIns().GetInputMgr().isBackKeyEnable = false;
int rupyNumBeforeOpenTreasureBox = PlayerStaticData.UserRupyCount;
MypageTreasureBoxCpOpenTask treasureBoxCpOpentask = new MypageTreasureBoxCpOpenTask();
treasureBoxCpOpentask.SetParameter();
yield return StartCoroutine(Toolbox.NetworkManager.Connect(treasureBoxCpOpentask, delegate
{
string atlasName = UIManager.GetInstance().GetSceneAssetPath(UIAtlasManager.AssetBundleNames.Arena, null);
_loadFileList.Add(atlasName);
UIManager.GetInstance().StartCoroutine(Toolbox.ResourcesManager.LoadAssetAsync(atlasName, delegate
{
atlasName = UIManager.GetInstance().GetSceneAssetPath(UIAtlasManager.AssetBundleNames.Arena, null, isload: true);
UIAtlas component = Toolbox.ResourcesManager.LoadObject<GameObject>(atlasName).GetComponent<UIAtlas>();
UIManager.GetInstance().StartCoroutine(RunOpenBoxEffect(treasureBoxCpOpentask.Result, component, rupyNumBeforeOpenTreasureBox, delegate
{
CreateTreasureBoxCpRewardDialog(treasureBoxCpOpentask.Result, delegate
{
RunHideBoxEffect();
UIManager.GetInstance().UpDateRupyNum();
});
}));
}));
}));
}
private void OnRequestMyPageLoad(NetworkTask.ResultCode error)
{
if (Data.Load.data._receiveInviteCount > 0)
{
_isEnableRoomInvite = true;
}
else
{
_isEnableRoomInvite = false;
}
bool flag = false;
if (Data.MyPageNotifications.data.CampaignBattleWin.SpecialTreasureInfo != null)
{
flag = Data.MyPageNotifications.data.CampaignBattleWin.SpecialTreasureInfo.IsTreasureBoxReadyToOpen;
}
UIManager.GetInstance()._Footer.InviteIconDisp(_isEnableRoomInvite || flag);
UpdateCrystalCount();
UpdateRupyCount();
IsMyPageRequestEnd = true;
}
private void LoadResource()
{
UIManager uiManager = UIManager.GetInstance();
ResourcesManager resourceManager = Toolbox.ResourcesManager;
List<MyPageCardPanel> cardPanelList = new List<MyPageCardPanel>();
MyPageItem[] pageItem = _pageItem;
for (int i = 0; i < pageItem.Length; i++)
{
MyPageCardPanel[] cardPanelList2 = pageItem[i].CardPanelList;
foreach (MyPageCardPanel myPageCardPanel in cardPanelList2)
{
if (!string.IsNullOrEmpty(myPageCardPanel.FilePath) && !(myPageCardPanel.Texture == null))
{
string resourcePath = myPageCardPanel.GetResourcePath(isfetch: false);
_loadFileList.Add(resourcePath);
cardPanelList.Add(myPageCardPanel);
uiManager.Force_Increment_LockCountChangeView();
}
}
}
resourceManager.StartCoroutine_LoadAssetGroupSync(_loadFileList, delegate
{
_loadResourceFinish = true;
int k = 0;
for (int count = cardPanelList.Count; k < count; k++)
{
MyPageCardPanel myPageCardPanel2 = cardPanelList[k];
myPageCardPanel2.Texture.mainTexture = resourceManager.LoadObject(myPageCardPanel2.GetResourcePath(isfetch: true)) as Texture;
uiManager.Force_Decrement_LockCountChangeView();
}
});
}
private void AttachCardPanelTexture()
{
MyPageItem[] pageItem = _pageItem;
for (int i = 0; i < pageItem.Length; i++)
{
MyPageCardPanel[] cardPanelList = pageItem[i].CardPanelList;
foreach (MyPageCardPanel myPageCardPanel in cardPanelList)
{
if (!string.IsNullOrEmpty(myPageCardPanel.FilePath) && !(myPageCardPanel.Texture == null))
{
myPageCardPanel.AttachCardPanelTexture();
}
}
}
}
private void UnloadResource()
{
Toolbox.ResourcesManager.RemoveAssetGroup(_loadFileList);
_loadFileList.Clear();
}
public void ReloadCardCircle()
{
_homeStatic.ReloadCardCircle();
}
public static void SetEnableReloadCard()
{
if (!(Instance == null))
{
Data.MyPage.CardUpdateFlag = true;
}
}
public int GetDetailCardCount()
{
return _homeStatic.GetDetailCardCount();
}
private void HideNameWindow()
{
iTween.MoveTo(TopBar.NameWindowObject, iTween.Hash("x", TopBar.NameWindowObject.transform.localPosition.x - 450f, "time", 0.3f, "delay", 0f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo));
}
public void RemoveTween(GameObject obj)
{
iTween component = obj.GetComponent<iTween>();
if (component != null)
{
UnityEngine.Object.Destroy(component);
}
}
public void SetBackButtonEnable()
{
HideNameWindow();
TopBar.SetBackButtonActive(inActive: true);
RemoveTween(TopBar.TitleObject.gameObject);
RemoveTween(TopBar.BackButton.gameObject);
TopBar.RestorePosition();
iTween.MoveFrom(TopBar.TitleObject, iTween.Hash("y", TopBar.TitleObject.transform.localPosition.y + 500f, "time", 0.3f, "delay", 0.1f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo));
iTween.MoveFrom(TopBar.BackButton.gameObject, iTween.Hash("y", TopBar.BackButton.transform.localPosition.y + 500f, "time", 0.3f, "delay", 0.1f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo));
}
public void SetNameBarEnable()
{
iTween.MoveTo(TopBar.NameWindowObject, iTween.Hash("x", _nameWindowDefaultX, "time", 0.3f, "delay", 0, "islocal", true, "easetype", iTween.EaseType.easeOutExpo));
TopBar.SetBackButtonActive(inActive: false);
TopBar.ChangeNameWindowMode();
}
public void ChangeMenu(int index, bool isCutCardMotion = false)
{
UIManager.GetInstance()._Footer.UpdateCurrentIndex(index);
SetNameBarEnable();
SetDefaultBackButtonHandler();
if (!_isFirstChangeMenuCall && _currentIndex >= 0 && _currentIndex < _pageItem.Length)
{
_pageItem[_currentIndex].Hide();
if (_currentIndex == 0 && _currentIndex != index)
{
OnChangeFromHome();
}
}
_currentIndex = index;
if (index >= 0 && index < _pageItem.Length)
{
_pageItem[index].Show(isCutCardMotion);
}
bool flag = index == 0;
CommonBackGround.Instance.SetMagicCircle(!flag);
Offline.IsConventionMode = false;
_changeMenuCalled = true;
_isFirstChangeMenuCall = false;
}
private void OnChangeFromHome()
{
if (!(_customBGControl == null))
{
if (Data.MyPage.data.BGInfo.BGType == MyPageDetail.BGType.RandomBG)
{
RemakeCustomBgForRandom();
}
if (Data.MyPage.data.BGInfo.BGType == MyPageDetail.BGType.CustomBG)
{
_customBGControl.FadeOut();
}
CommonBackGround.Instance.EffectVisible = true;
}
}
private void OnRemakeCustomBg()
{
_remakeCustomBgCount++;
if (_remakeCustomBgCount >= 50)
{
_remakeCustomBgCount = 0;
ReleaseMemory(runGCCollect: true);
}
}
private static void ReleaseMemory(bool runGCCollect)
{
UIManager.GetInstance().StartCoroutine(ReleaseMemoryBody(runGCCollect));
}
private static IEnumerator ReleaseMemoryBody(bool runGCCollect)
{
yield return Resources.UnloadUnusedAssets();
if (runGCCollect)
{
GC.Collect();
}
}
private void RemakeCustomBgForRandom()
{
string text = MyPageItemHome.DecideRandomBG(Data.MyPage.data.BGInfo.RandomIdList);
if (_customBGControl != null && text == _customBGControl.Id)
{
_customBGControl.FadeOut();
return;
}
_customBGControl.FadeOutDestroy();
_customBGControl = null;
_customBGControl = NGUITools.AddChild(_customBGControlOriginal.transform.parent.gameObject, _customBGControlOriginal.gameObject).GetComponent<MyPageCustomBGControl>();
_customBGControl.gameObject.SetActive(value: true);
UIManager.GetInstance().OpenNotTouch();
_customBGControl.Load(text, isDisplaySoon: false, delegate
{
UIManager.GetInstance().offNotTouch();
OnRemakeCustomBg();
});
}
public void SetDefaultBackButtonHandler()
{
TopBar.SetBackButtonEvent(null, UIManager.ViewScene.None, new EventDelegate(delegate
{
_pageItem[_currentIndex].Show();
SetNameBarEnable();
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_SWITCH_MENU);
}));
}
public void GoToFreeMatch()
{
SetBackButtonEnable();
_pageItemBattle.GoToFreeMatch();
}
public void GoToRoomMatch()
{
SetBackButtonEnable();
_pageItemBattle.GoToRoomMatch();
}
public void SetAfterSpecialWinRewardOpened()
{
_pageItemBattle.SpecialWinRewardIconActive(active: false);
_pageItemBattle.RedrawBattleCampaign();
_pageItemArena.RedrawBattleCampaign();
}
public void GoToPracticeTypeSelect()
{
_pageItemSoroPlay.GotoPracticeTypeSelect();
}
public void GoToChallengeMenu()
{
_pageItemArena.GoToChallengeMenu();
}
public void GoToColosseum(bool isColosseumTask = true)
{
_pageItemArena.GoToColosseum(isColosseumTask);
}
public void GoToCompetition()
{
_pageItemArena.GoToCompetition();
}
public void GoToConventionListMenu()
{
_pageItemArena.GoToConventionListMenu();
}
public void GoToConventionActionMenu(ConventionInfo conventionInfo)
{
_pageItemArena.GoToConventionActionMenu(conventionInfo);
}
public void GoToGatheringActionMenu()
{
_pageItemArena.GoToGatheringMenu();
}
public void GoToShopSupply()
{
_pageItemShop.GoToShopSupply();
}
public void GoToShopCard()
{
_pageItemShop.GoToShopCard();
}
public void GoToCardDeck()
{
_pageItemCard.GoToCardDeck();
}
private static UIManager.ChangeViewSceneParam CreateMyPageChangeParam(int index, bool isCutCard)
{
return new UIManager.ChangeViewSceneParam
{
MyPageMenuIndex = index,
IsCutCardMotion = isCutCard,
IsUpdateFooterMenuTexture = true
};
}
public static void ChangeSceneAndBuyCard(Action onChange)
{
UIManager.ChangeViewSceneParam changeViewSceneParam = CreateMyPageChangeParam(5, isCutCard: true);
changeViewSceneParam.OnFinishChangeView = delegate
{
Instance.GoToShopCard();
onChange.Call();
};
UIManager.GetInstance().ChangeViewScene(UIManager.ViewScene.MyPage, changeViewSceneParam);
}
public static void ChangeSceneAndBuySupply(Action onChange)
{
UIManager.GetInstance()._Footer.UpdateCurrentIndex(5);
UIManager.ChangeViewSceneParam changeViewSceneParam = CreateMyPageChangeParam(5, isCutCard: true);
changeViewSceneParam.OnFinishChangeView = delegate
{
Instance.GoToShopSupply();
onChange.Call();
};
UIManager.GetInstance().ChangeViewScene(UIManager.ViewScene.MyPage, changeViewSceneParam);
}
public void ShowBanner()
{
if (_pageItemHome != null)
{
_pageItemHome.ShowBanner();
}
}
public void HideBanner()
{
if (_pageItemHome != null)
{
_pageItemHome.HideBanner();
}
}
public void RoomInviteClear()
{
_isEnableRoomInvite = false;
}
public void OnReadGift()
{
if (_pageItemHome != null)
{
_pageItemHome.OnReadGift();
}
}
private void OnClickCrystalBuyButton()
{
}
private void OnClickNameWindow()
{
if (!IsFirstGuid)
{
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_BTN_DECIDE);
UIManager.ChangeViewSceneParam changeViewSceneParam = new UIManager.ChangeViewSceneParam();
changeViewSceneParam.IsUpdateFooterMenuTexture = true;
changeViewSceneParam.OnChange = delegate
{
CommonBackGround.Instance.SetMagicCircle(isVisible: true);
};
UIManager.GetInstance().ChangeViewScene(UIManager.ViewScene.Profile, changeViewSceneParam);
}
}
public void UpdateCrystalCount()
{
UIManager.GetInstance().UpDateCrystalNum();
}
public void UpdateRupyCount()
{
UIManager.GetInstance().UpDateRupyNum();
}
public void UpdateMissionCount()
{
if (_pageItemHome != null)
{
_pageItemHome.UpdateMissionNumber();
}
}
public void ShowNotification(List<NotificatonAnimation.Param> notifications)
{
if (notifications.Count != 0)
{
if (_maintenanceNotification != null)
{
UnityEngine.Object.Destroy(_maintenanceNotification.gameObject);
_maintenanceNotification = null;
}
_maintenanceNotification = NGUITools.AddChild(base.gameObject, _maintenanceNotificationPrefab.gameObject).GetComponent<MyPageMaintenanceNotification>();
_maintenanceNotification.gameObject.layer = LayerMask.NameToLayer("SystemUI");
StartCoroutine(_maintenanceNotification.Show(notifications));
}
}
private IEnumerator RunOpenBoxEffect(MypageTreasureBoxCpOpenTask.MypageTreasureBoxCpOpenTaskData result, UIAtlas arenaAtlas, int rupyNumBeforeOpenTreasureBox, Action endAction)
{
UIManager.GetInstance().UpdateLastRupyNum(rupyNumBeforeOpenTreasureBox);
while (!IsFadeoutEnd)
{
yield return null;
}
UIManager.GetInstance().OpenNotTouch();
_notTouchMypageCollider.enabled = true;
yield return new WaitForSeconds(1f);
_boxOpenEffectObj = NGUITools.AddChild(base.gameObject, Resources.Load("UI/layoutParts/RankWinnerRewardResultPanel") as GameObject);
NguiObjs component = _boxOpenEffectObj.GetComponent<NguiObjs>();
UISprite bg = component.sprites[0];
UISprite window = component.sprites[1];
UISprite box = component.sprites[2];
box.atlas = arenaAtlas;
UILabel label = component.labels[0];
label.text = Data.SystemText.Get("TreasureBoxCp_0026");
UIPanel panel = _boxOpenEffectObj.GetComponent<UIPanel>();
panel.alpha = 0f;
box.spriteName = $"box_2pick_0{TreasureBoxCp.GRADE_TO_TREASURE_BOX_ID[result.Grade]}_close";
string loadEffectName = $"cmn_arena_treasure_{TreasureBoxCp.GRADE_TO_TREASURE_BOX_ID[result.Grade] + 1}";
List<string> list = new List<string>();
list.Add(Toolbox.ResourcesManager.GetAssetTypePath(loadEffectName, ResourcesManager.AssetLoadPathType.Effect2D));
yield return UIManager.GetInstance().StartCoroutine(Toolbox.ResourcesManager.LoadAssetGroupAsync(list, null));
_treasureEffectObj = UnityEngine.Object.Instantiate(Toolbox.ResourcesManager.LoadObject(Toolbox.ResourcesManager.GetAssetTypePath(loadEffectName, ResourcesManager.AssetLoadPathType.Effect2D, isfetch: true)) as GameObject);
_treasureEffectObj.transform.parent = _boxOpenEffectObj.transform;
GameMgr.GetIns().GetEffectMgr().SetUIParticleShader(_treasureEffectObj, null);
_boxOpenEffectObj.SetLayer(LayerMask.NameToLayer("SystemUI"), isSetChildren: true);
bg.alpha = 0f;
box.alpha = 0f;
label.alpha = 0f;
panel.alpha = 1f;
TweenAlpha.Begin(bg.gameObject, 0.5f, 0.65f);
TweenAlpha.Begin(label.gameObject, 0.5f, 1f);
TweenAlpha.Begin(box.gameObject, 0.5f, 1f);
label.transform.localPosition = new Vector3(100f, 0f, 0f);
window.transform.localScale = new Vector3(1f, 0.01f, 1f);
box.transform.localPosition = new Vector3(180f, 0f, 0f);
iTween.MoveTo(label.gameObject, iTween.Hash("x", 20f, "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo));
iTween.ScaleTo(window.gameObject, iTween.Hash("y", 1f, "time", 0.5f, "easetype", iTween.EaseType.easeInOutExpo));
iTween.MoveTo(box.gameObject, iTween.Hash("y", 20f, "time", 0.5f, "islocal", true, "easetype", iTween.EaseType.easeOutExpo));
yield return new WaitForSeconds(0.8f);
TweenAlpha.Begin(label.gameObject, 0.5f, 0f);
iTween.MoveTo(box.gameObject, iTween.Hash("x", 0f, "time", 0.7f, "islocal", true, "easetype", iTween.EaseType.easeInOutExpo));
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_2PICK_BOX_OPEN);
yield return new WaitForSeconds(1f);
_treasureEffectObj.transform.localPosition = box.transform.localPosition;
_treasureEffectObj.transform.localScale = Vector3.one * 320f * 1.75f;
_treasureEffectObj.SetActive(value: true);
box.gameObject.SetActive(value: false);
yield return new WaitForSeconds(1.2f);
endAction.Call();
}
private void CreateTreasureBoxCpRewardDialog(MypageTreasureBoxCpOpenTask.MypageTreasureBoxCpOpenTaskData result, Action endAction)
{
if (result == null || result.RewardDataList.Count() <= 0)
{
_treasureBoxCpRewardDialogClosed = true;
endAction.Call();
return;
}
UIManager.GetInstance().createInSceneCenterLoading();
DialogBase dialogBase = UIManager.GetInstance().CreateDialogClose();
dialogBase.SetSize(DialogBase.Size.M);
dialogBase.SetLayer("MyPage");
dialogBase.SetPanelDepth(1000, isSetBackViewDepthImmediately: true);
dialogBase.SetTitleLabel(Data.SystemText.Get("TreasureBoxCp_0001"));
dialogBase.SetButtonLayout(DialogBase.ButtonLayout.OkBtn);
dialogBase.SetPanelSortingOrder(37);
dialogBase.OnClose = (Action)Delegate.Combine(dialogBase.OnClose, (Action)delegate
{
_treasureBoxCpRewardDialogClosed = true;
});
RewardBase component = NGUITools.AddChild(dialogBase.gameObject, _rewardBase.gameObject).GetComponent<RewardBase>();
for (int num = 0; num < result.RewardDataList.Count; num++)
{
component.AddReward(result.RewardDataList[num]);
}
UIPanel component2 = component.gameObject.GetComponent<UIPanel>();
component2.sortingOrder = 37;
component2.depth = 1005;
component.EndCreate();
endAction.Call();
}
private void RunHideBoxEffect()
{
_treasureEffectObj.SetActive(value: false);
_boxOpenEffectObj.SetActive(value: false);
UnityEngine.Object.Destroy(_boxOpenEffectObj);
UnityEngine.Object.Destroy(_treasureEffectObj);
UIManager.GetInstance().offNotTouch();
_notTouchMypageCollider.enabled = false;
GameMgr.GetIns().GetInputMgr().isBackKeyEnable = true;
}
public static void SetMyPageRefreshDisableOnce()
{
if (!(Instance == null))
{
Instance._isStopMyPageRefreshOnce = true;
}
}
protected void OnApplicationFocus(bool focusStatus)
{
if (focusStatus && _isStopMyPageRefreshOnce)
{
_isStopMyPageRefreshOnce = false;
}
else if (!UIManager.GetInstance().IsCrystalDialogExe && UIManager.GetInstance().GetCurrentScene() == UIManager.ViewScene.MyPage && focusStatus && !BattleMenu.IsStopSendMyPageRefreshTask() && !Toolbox.NetworkManager.isConnect && !Toolbox.NetworkManager.isTimeOut && !Toolbox.NetworkManager.isError && Data.MyPage != null && Data.MyPage.data != null)
{
MyPageRefreshTask myPageRefreshTask = new MyPageRefreshTask();
myPageRefreshTask.SetParameter();
StartCoroutine(Toolbox.NetworkManager.Connect(myPageRefreshTask, delegate
{
RefreshInviteIcon();
RefreshGatheringNotification();
}));
}
}
private void RefreshInviteIcon()
{
bool isInvite = false;
if (Data.Load.data._receiveInviteCount > 0)
{
isInvite = true;
}
bool isTreasureBoxReadyToOpen = false;
if (Data.MyPageNotifications.data.CampaignBattleWin.SpecialTreasureInfo != null)
{
isTreasureBoxReadyToOpen = Data.MyPageNotifications.data.CampaignBattleWin.SpecialTreasureInfo.IsTreasureBoxReadyToOpen;
}
ReceivedInvite(isInvite, isTreasureBoxReadyToOpen);
}
private void RefreshGatheringNotification()
{
UIManager.GetInstance()._Footer.UpdateArenaBadgeIcon();
if (_pageItemArena != null)
{
_pageItemArena.ShowGatheringBadge();
}
}
public void ReceivedInvite(bool isInvite, bool isTreasureBoxReadyToOpen = false)
{
_isEnableRoomInvite = isInvite;
UIManager.GetInstance()._Footer.InviteIconDisp(isInvite || isTreasureBoxReadyToOpen);
}
public void SpecialWinRewardOpened()
{
bool isEnableRoomInvite = _isEnableRoomInvite;
UIManager.GetInstance()._Footer.InviteIconDisp(isEnableRoomInvite);
}
public BoxCollider GetNotTouchMypageCollider()
{
return _notTouchMypageCollider;
}
public void SetGatheringPush(bool isNotification)
{
Data.MyPageNotifications.data.GatheringMyPageInfo.IsMatchingNotification = isNotification;
UIManager.GetInstance()._Footer.UpdateArenaBadgeIcon();
}
public void SetGuideEffect(Transform parent, Vector3 localPosition, float rotation)
{
if (!(FirstGuidEffect == null))
{
FirstGuidEffect.gameObject.SetActive(value: true);
FirstGuidEffect.transform.parent = parent;
FirstGuidEffect.transform.localPosition = localPosition;
FirstGuidEffect.transform.localRotation = Quaternion.Euler(0f, 0f, rotation);
FirstGuidEffect.gameObject.SetLayer(parent.gameObject.layer, isSetChildren: true);
}
}
}