feat(battle-engine): M1 auto-copy closure (782 battle-logic files)
Compile-driven bulk-copy loop (tools/engine-port/m1_copy_loop.py) pulled the precise reference closure of the battle-core roots, stopping at the classify god-object/View-VFX-UI boundary. 782 files; no re-explosion (M0 had estimated ~order 1000). Residual frontier = 52 shim-classified + 80 external (Unity/BCL) types to author next.
This commit is contained in:
881
SVSim.BattleEngine/Engine/Wizard/GachaPackAreaLayout.cs
Normal file
881
SVSim.BattleEngine/Engine/Wizard/GachaPackAreaLayout.cs
Normal file
@@ -0,0 +1,881 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Cute;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Wizard;
|
||||
|
||||
public class GachaPackAreaLayout : MonoBehaviour
|
||||
{
|
||||
private const int TICKET_BUTTON_TUTORIAL_GUIDE_ROTATION = -45;
|
||||
|
||||
private readonly Vector3 DEFAULT_PACK_TICKET_POSITION = new Vector3(7f, 40.6f, 0f);
|
||||
|
||||
private readonly Vector3 LEGEND_PACK_TICKET_POSITION = new Vector3(7f, -179.6f, 0f);
|
||||
|
||||
private const string REPLACE_REMAIN = "{remaining_purchase_time}";
|
||||
|
||||
private const int SECONDS_PER_DAY = 86400;
|
||||
|
||||
private const int SECONDS_PER_HOUR = 3600;
|
||||
|
||||
private const int SECONDS_PER_MINUTE = 60;
|
||||
|
||||
private const int DEPTH_BANNER_DIALOG = 610;
|
||||
|
||||
private const string LAYER_DIALOG_PURCHASE_REWARD = "MyPage";
|
||||
|
||||
private const int DEPTH_DIALOG_PURCHASE_REWARD = 140;
|
||||
|
||||
private const int SORTODER_DIALOG_PURCHASE_REWARD = 2;
|
||||
|
||||
[SerializeField]
|
||||
private UITexture _packTitleTexture;
|
||||
|
||||
[SerializeField]
|
||||
private UIButton _rateButton;
|
||||
|
||||
[SerializeField]
|
||||
private UITexture _packPosterTexture;
|
||||
|
||||
[SerializeField]
|
||||
private UITexture _packPosterLegendPack;
|
||||
|
||||
[SerializeField]
|
||||
private UILabel _labelPackDescription;
|
||||
|
||||
[SerializeField]
|
||||
private UILabel _labelSpecialPackDescription;
|
||||
|
||||
[SerializeField]
|
||||
private GachaLayoutPurchaseButton _layoutPurchaseTicketButton;
|
||||
|
||||
[SerializeField]
|
||||
private GachaLayoutPurchaseButton _layoutPurchaseRupyButton;
|
||||
|
||||
[SerializeField]
|
||||
private GachaLayoutPurchaseButton _layoutPurchaseCrystalButton;
|
||||
|
||||
[SerializeField]
|
||||
private GachaLayoutPurchaseButton _layoutPurchaseDailyButton;
|
||||
|
||||
[SerializeField]
|
||||
private GachaLayoutPurchaseButton _layoutPurchaseFree10PacksButton;
|
||||
|
||||
[SerializeField]
|
||||
private GachaLayoutPurchaseButton _layoutPurchaseStepupButton;
|
||||
|
||||
[SerializeField]
|
||||
private GachaLayoutEffect _free10PackEffect;
|
||||
|
||||
[SerializeField]
|
||||
private CenteringUIWidget _free10PackCentering;
|
||||
|
||||
[SerializeField]
|
||||
private UITexture _headLineTicketTexture;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _objPrereleaseLayoutRoot;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _noLimitPrereleaseRoot;
|
||||
|
||||
[SerializeField]
|
||||
private UIButton _btnPrereleasePurchaseRewards;
|
||||
|
||||
[SerializeField]
|
||||
private UILabel _labelPrereleaseRemainTime;
|
||||
|
||||
[SerializeField]
|
||||
private UILabel _labelPrereleasePurchaseCount;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _prereleaseRemainTimeRoot;
|
||||
|
||||
[SerializeField]
|
||||
private GachaPackPointLayout _packPointLayout;
|
||||
|
||||
[SerializeField]
|
||||
private UIButton _btnSpecialPackReward;
|
||||
|
||||
[SerializeField]
|
||||
private BannerDialog _prefabDialogPackBanner;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _objUnrestrictedPrereleaseLayoutRoot;
|
||||
|
||||
[SerializeField]
|
||||
private UIButton _btnUnrestrictedPrereleasePurchaseRewards;
|
||||
|
||||
[SerializeField]
|
||||
private UILabel _labelUnrestrictedPrereleaseRemainTime;
|
||||
|
||||
[SerializeField]
|
||||
private UILabel _labelUnrestrictedPrereleasePurchaseCount;
|
||||
|
||||
[SerializeField]
|
||||
private UITexture _bonusPosterTexture;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _preReleasePointRoot;
|
||||
|
||||
[SerializeField]
|
||||
private UIGauge _preReleasePointGauge;
|
||||
|
||||
[SerializeField]
|
||||
private UILabel _preReleasePointLabel;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _appealImage;
|
||||
|
||||
[SerializeField]
|
||||
private UITexture _appealTexture;
|
||||
|
||||
private DialogBase _dialogPackBanner;
|
||||
|
||||
private CardDetailUI _cardDetail;
|
||||
|
||||
private TimerMgr _timerManager;
|
||||
|
||||
private RepeatTimer _currentTimer;
|
||||
|
||||
private Action<PackConfig, PackChildGachaInfo> _onClickPurchaseButton;
|
||||
|
||||
private Action<PackConfig> _onClickExchangePackPoint;
|
||||
|
||||
private List<string> _packBannerResources = new List<string>();
|
||||
|
||||
public void SetTimer(TimerMgr timer)
|
||||
{
|
||||
_timerManager = timer;
|
||||
}
|
||||
|
||||
public void SetCardDetailDialog(CardDetailUI cardDetail)
|
||||
{
|
||||
_cardDetail = cardDetail;
|
||||
}
|
||||
|
||||
public void SetOnClickPurchaseButton(Action<PackConfig, PackChildGachaInfo> onClickPurchase)
|
||||
{
|
||||
_onClickPurchaseButton = onClickPurchase;
|
||||
}
|
||||
|
||||
public void SetOnClickExchangePackPoint(Action<PackConfig> onClickExchange)
|
||||
{
|
||||
_onClickExchangePackPoint = onClickExchange;
|
||||
}
|
||||
|
||||
public void SetToGrayRateButton(bool isGary)
|
||||
{
|
||||
UIManager.SetObjectToGrey(_rateButton.gameObject, isGary);
|
||||
}
|
||||
|
||||
public void SetTutorialTicketPurchasebutton()
|
||||
{
|
||||
MyPageMenu.Instance.SetGuideEffect(_layoutPurchaseTicketButton.PurchaseButtonTransform, Vector3.zero, -45f);
|
||||
}
|
||||
|
||||
public void UpdateRupyCount(int rupyCount)
|
||||
{
|
||||
_layoutPurchaseRupyButton.SetHaveItemLabel(rupyCount);
|
||||
}
|
||||
|
||||
public void UpdateCrystalCount(int crystalCount)
|
||||
{
|
||||
_layoutPurchaseCrystalButton.SetHaveItemLabel(crystalCount);
|
||||
}
|
||||
|
||||
public void ShowPackLayout(PackConfig packConfig, List<string> resourceList)
|
||||
{
|
||||
HidePackLayoutObject(packConfig.IsUseLongPoster);
|
||||
SetPackLayoutTexture(packConfig);
|
||||
SetEventPackInfo(packConfig);
|
||||
if (packConfig.IsPrerelease)
|
||||
{
|
||||
ShowPrereleaseLayout(packConfig);
|
||||
return;
|
||||
}
|
||||
if (packConfig.IsLegendCardPack)
|
||||
{
|
||||
ShowLegendLayout(packConfig, resourceList);
|
||||
return;
|
||||
}
|
||||
if (packConfig.IsSpecialCardPack)
|
||||
{
|
||||
ShowSpecialLayout(packConfig);
|
||||
return;
|
||||
}
|
||||
if (packConfig.IsRotationStarterCardPack)
|
||||
{
|
||||
ShowRotationStarterLayout(packConfig, resourceList);
|
||||
return;
|
||||
}
|
||||
ShowStandardLayout(packConfig, resourceList);
|
||||
if (packConfig.IsNeedRemainTime)
|
||||
{
|
||||
UpdateDetailString(packConfig);
|
||||
}
|
||||
if (packConfig.IsShowAppealImage)
|
||||
{
|
||||
_appealImage.SetActive(value: true);
|
||||
ResourcesManager resourcesManager = Toolbox.ResourcesManager;
|
||||
string path = $"card_pack_{packConfig.PackId}_poster_sub";
|
||||
string assetTypePath = resourcesManager.GetAssetTypePath(path, ResourcesManager.AssetLoadPathType.ShopCardPack, isfetch: true);
|
||||
_appealTexture.mainTexture = resourcesManager.LoadObject(assetTypePath) as Texture;
|
||||
}
|
||||
}
|
||||
|
||||
private void HidePackLayoutObject(bool isLongPoster)
|
||||
{
|
||||
_labelPackDescription.gameObject.SetActive(value: false);
|
||||
_labelSpecialPackDescription.gameObject.SetActive(value: false);
|
||||
_packPosterTexture.gameObject.SetActive(!isLongPoster);
|
||||
_packPosterLegendPack.gameObject.SetActive(isLongPoster);
|
||||
_layoutPurchaseRupyButton.SetActiveLayout(isActive: false);
|
||||
_layoutPurchaseTicketButton.SetActiveLayout(isActive: false);
|
||||
_layoutPurchaseDailyButton.SetActivePurchaseButton(isActive: false);
|
||||
_layoutPurchaseDailyButton.SetRibbonActive(active: false);
|
||||
_layoutPurchaseCrystalButton.SetActiveLayout(isActive: false);
|
||||
_layoutPurchaseCrystalButton.SetRibbonActive(active: false);
|
||||
_layoutPurchaseFree10PacksButton.SetActiveLayout(isActive: false);
|
||||
_layoutPurchaseFree10PacksButton.SetIconActive(active: false, string.Empty);
|
||||
_layoutPurchaseFree10PacksButton.SetRemainCountRootVisible(visible: true);
|
||||
_layoutPurchaseFree10PacksButton.SetFreePackApealTextVisible(visible: false);
|
||||
_layoutPurchaseStepupButton.SetActivePurchaseButton(isActive: false);
|
||||
_bonusPosterTexture.gameObject.SetActive(value: false);
|
||||
_layoutPurchaseCrystalButton.SetPurchasedVisible(visible: false);
|
||||
_layoutPurchaseRupyButton.SetPurchasedVisible(visible: false);
|
||||
_layoutPurchaseTicketButton.SetPurchasedVisible(visible: false);
|
||||
_layoutPurchaseCrystalButton.SetPurchasedLabel("Shop_0100");
|
||||
_layoutPurchaseRupyButton.SetPurchasedLabel("Shop_0100");
|
||||
_layoutPurchaseTicketButton.SetPurchasedLabel("Shop_0100");
|
||||
_objPrereleaseLayoutRoot.SetActive(value: false);
|
||||
_objUnrestrictedPrereleaseLayoutRoot.SetActive(value: false);
|
||||
_preReleasePointRoot.SetActive(value: false);
|
||||
_packPointLayout.SetActivePackPointLayout(isActive: false);
|
||||
_btnSpecialPackReward.gameObject.SetActive(value: false);
|
||||
_appealImage.SetActive(value: false);
|
||||
}
|
||||
|
||||
private void SetEventPackInfo(PackConfig packConfig)
|
||||
{
|
||||
_rateButton.onClick.Clear();
|
||||
_rateButton.onClick.Add(new EventDelegate(delegate
|
||||
{
|
||||
OnBtnShowGachaRate(packConfig);
|
||||
}));
|
||||
UIEventListener.Get(_labelSpecialPackDescription.gameObject).onClick = delegate
|
||||
{
|
||||
OpenPackBannerDialog(packConfig);
|
||||
};
|
||||
if (_currentTimer != null)
|
||||
{
|
||||
_timerManager.Remove(_currentTimer);
|
||||
}
|
||||
UIEventListener.Get(_packPosterLegendPack.gameObject).onClick = delegate
|
||||
{
|
||||
OpenPackBannerDialog(packConfig);
|
||||
};
|
||||
UIEventListener.Get(_packPosterTexture.gameObject).onClick = delegate
|
||||
{
|
||||
OpenPackBannerDialog(packConfig);
|
||||
};
|
||||
}
|
||||
|
||||
private void SetPackLayoutTexture(PackConfig packConfig)
|
||||
{
|
||||
ResourcesManager resourcesManager = Toolbox.ResourcesManager;
|
||||
if (packConfig.IsSpecialLayout || packConfig.IsPrerelease)
|
||||
{
|
||||
if (packConfig.IsUseLongPoster)
|
||||
{
|
||||
_packPosterLegendPack.mainTexture = resourcesManager.LoadObject(packConfig.GetPackPosterTexturePath(isFetch: true)) as Texture;
|
||||
}
|
||||
else
|
||||
{
|
||||
_packPosterTexture.mainTexture = resourcesManager.LoadObject(packConfig.GetPackPosterTexturePath(isFetch: true)) as Texture;
|
||||
_bonusPosterTexture.mainTexture = resourcesManager.LoadObject(packConfig.GetPackBounsPosterTexturePath(isFetch: true)) as Texture;
|
||||
_bonusPosterTexture.gameObject.SetActive(value: true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_packPosterTexture.mainTexture = resourcesManager.LoadObject(packConfig.GetPackPosterTexturePath(isFetch: true)) as Texture;
|
||||
}
|
||||
_packTitleTexture.mainTexture = resourcesManager.LoadObject(packConfig.GetPackTitleLogoTexturePath(isFetch: true)) as Texture;
|
||||
if (!packConfig.IsSpecialCardPack)
|
||||
{
|
||||
_headLineTicketTexture.mainTexture = resourcesManager.LoadObject(packConfig.GetPackIconTexturePath(isFetch: true)) as Texture;
|
||||
}
|
||||
}
|
||||
|
||||
private void OpenPackBannerDialog(PackConfig packConfig)
|
||||
{
|
||||
List<string> packBannerResources = GetPackBannerResources(packConfig);
|
||||
if (packBannerResources.Count > 0)
|
||||
{
|
||||
UIManager.GetInstance().createInSceneCenterLoading();
|
||||
Toolbox.ResourcesManager.StartCoroutine_LoadAssetGroupAsync(packBannerResources, delegate
|
||||
{
|
||||
CreatePackBannerDialog(packConfig);
|
||||
UIManager.GetInstance().closeInSceneCenterLoading();
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
CreatePackBannerDialog(packConfig);
|
||||
}
|
||||
}
|
||||
|
||||
private List<string> GetPackBannerResources(PackConfig packConfig)
|
||||
{
|
||||
ResourcesManager resourcesManager = Toolbox.ResourcesManager;
|
||||
List<PackBannerData> listPackBanner = packConfig.ListPackBanner;
|
||||
List<string> list = new List<string>();
|
||||
for (int i = 0; i < listPackBanner.Count; i++)
|
||||
{
|
||||
string assetTypePath = resourcesManager.GetAssetTypePath(listPackBanner[i].BannerFileName, ResourcesManager.AssetLoadPathType.ShopCardPack);
|
||||
if (!_packBannerResources.Contains(assetTypePath))
|
||||
{
|
||||
list.Add(assetTypePath);
|
||||
}
|
||||
}
|
||||
_packBannerResources.AddRange(list);
|
||||
return list;
|
||||
}
|
||||
|
||||
private void CreatePackBannerDialog(PackConfig packConfig)
|
||||
{
|
||||
List<PackBannerData> listPackBanner = packConfig.ListPackBanner;
|
||||
if (listPackBanner.Count <= 0 || Data.Load.data._userTutorial.TutorialStep == 41 || _dialogPackBanner != null || packConfig.IsSpecialCardPack)
|
||||
{
|
||||
return;
|
||||
}
|
||||
List<string> list = new List<string>();
|
||||
foreach (PackBannerData item in listPackBanner)
|
||||
{
|
||||
list.Add(item.BannerTitle);
|
||||
}
|
||||
_dialogPackBanner = UIManager.GetInstance().CreateDialogClose();
|
||||
_dialogPackBanner.SetSize(DialogBase.Size.M);
|
||||
_dialogPackBanner.SetButtonLayout(DialogBase.ButtonLayout.OkBtn);
|
||||
_dialogPackBanner.SetPanelDepth(610);
|
||||
BannerDialog bannerDialog = UnityEngine.Object.Instantiate(_prefabDialogPackBanner);
|
||||
_dialogPackBanner.SetObj(bannerDialog.gameObject);
|
||||
List<Texture> list2 = new List<Texture>();
|
||||
for (int i = 0; i < listPackBanner.Count; i++)
|
||||
{
|
||||
list2.Add(Toolbox.ResourcesManager.LoadObject(Toolbox.ResourcesManager.GetAssetTypePath(listPackBanner[i].BannerFileName, ResourcesManager.AssetLoadPathType.ShopCardPack, isfetch: true)) as Texture);
|
||||
}
|
||||
bannerDialog.Init(list2, list, _dialogPackBanner);
|
||||
}
|
||||
|
||||
public void ClearPackBannerResources()
|
||||
{
|
||||
Toolbox.ResourcesManager.RemoveAssetGroup(_packBannerResources);
|
||||
_packBannerResources.Clear();
|
||||
}
|
||||
|
||||
private void OnBtnShowGachaRate(PackConfig packConfig)
|
||||
{
|
||||
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_COMMON_BUTTON);
|
||||
CheckTimeSlipRotationPeriodTask task = new CheckTimeSlipRotationPeriodTask();
|
||||
StartCoroutine(Toolbox.NetworkManager.Connect(task, delegate
|
||||
{
|
||||
UIManager.GetInstance().WebViewHelper.OpenGachaRateWebView(packConfig.PackId, (int)packConfig.Category);
|
||||
}));
|
||||
}
|
||||
|
||||
private void ShowPurchaseRewardDialog(List<PurchaseRewardInfo> purchaseRewardList)
|
||||
{
|
||||
_cardDetail.IsShowFlavorTextButton = false;
|
||||
_cardDetail.IsShowVoiceButton = false;
|
||||
_cardDetail.IsShowEvolutionButton = false;
|
||||
DialogBase dialogBase = PurchaseRewardDialog.Create(purchaseRewardList, _cardDetail, useLargeDetailDialog: true, PurchaseRewardDialog.Layout.NORMAL, null, null, isPaging: true);
|
||||
dialogBase.OnClose = (Action)Delegate.Combine(dialogBase.OnClose, (Action)delegate
|
||||
{
|
||||
_cardDetail.IsShowFlavorTextButton = true;
|
||||
_cardDetail.IsShowVoiceButton = true;
|
||||
_cardDetail.IsShowEvolutionButton = true;
|
||||
});
|
||||
dialogBase.SetLayer("MyPage");
|
||||
dialogBase.SetDepthAndSortingOrder(140, 2);
|
||||
}
|
||||
|
||||
private void ShowStandardLayout(PackConfig packConfig, List<string> resourceList)
|
||||
{
|
||||
SetStanderdInfoText(packConfig.Description);
|
||||
bool flag = false;
|
||||
for (int i = 0; i < packConfig.ChildGachaInfoList.Count; i++)
|
||||
{
|
||||
PackChildGachaInfo gachaInfo = packConfig.ChildGachaInfoList[i];
|
||||
switch (gachaInfo.PackType)
|
||||
{
|
||||
case GachaUI.CardPackType.DAILY:
|
||||
if (flag)
|
||||
{
|
||||
break;
|
||||
}
|
||||
_layoutPurchaseCrystalButton.SetActiveLayout(isActive: true);
|
||||
if (!gachaInfo.IsDailySingle)
|
||||
{
|
||||
_layoutPurchaseDailyButton.SetActivePurchaseButton(isActive: false);
|
||||
_layoutPurchaseCrystalButton.SetActivePurchaseButton(isActive: true);
|
||||
if (packConfig.GachaPointData != null && gachaInfo.OverrideIncreaseGachaPoint > packConfig.GachaPointData.IncreaseGachaPoint)
|
||||
{
|
||||
_layoutPurchaseCrystalButton.SetRibbonActive(active: true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
_layoutPurchaseDailyButton.SetBuyCostLabel(gachaInfo.Cost);
|
||||
_layoutPurchaseDailyButton.SetActivePurchaseButton(isActive: true);
|
||||
_layoutPurchaseDailyButton.SetToGrayPurchaseButton(isDisable: false);
|
||||
_layoutPurchaseDailyButton.SetOnClickPurchaseButton(delegate
|
||||
{
|
||||
_onClickPurchaseButton(packConfig, gachaInfo);
|
||||
});
|
||||
_layoutPurchaseCrystalButton.SetActivePurchaseButton(isActive: false);
|
||||
if (packConfig.GachaPointData != null && gachaInfo.OverrideIncreaseGachaPoint > packConfig.GachaPointData.IncreaseGachaPoint)
|
||||
{
|
||||
_layoutPurchaseDailyButton.SetRibbonActive(active: true);
|
||||
}
|
||||
break;
|
||||
case GachaUI.CardPackType.CRYSTAL_MULTI:
|
||||
if (!flag)
|
||||
{
|
||||
_layoutPurchaseCrystalButton.SetActiveLayout(isActive: true);
|
||||
_layoutPurchaseCrystalButton.SetBuyCostLabel(gachaInfo.Cost, "Shop_0058");
|
||||
_layoutPurchaseCrystalButton.SetToGrayPurchaseButton(isDisable: false);
|
||||
_layoutPurchaseCrystalButton.SetOnClickPurchaseButton(delegate
|
||||
{
|
||||
_onClickPurchaseButton(packConfig, gachaInfo);
|
||||
});
|
||||
}
|
||||
break;
|
||||
case GachaUI.CardPackType.TICKET_MULTI:
|
||||
_layoutPurchaseTicketButton.SetActiveLayout(isActive: true);
|
||||
_layoutPurchaseTicketButton.SetActivePurchaseButton(isActive: true);
|
||||
_layoutPurchaseTicketButton.LayoutLocalPosition = DEFAULT_PACK_TICKET_POSITION;
|
||||
_layoutPurchaseTicketButton.SetHaveItemLabel(gachaInfo.CostGoodsCount);
|
||||
_layoutPurchaseTicketButton.SetBuyCostLabel(gachaInfo.Cost, "Shop_0057");
|
||||
if (gachaInfo.CostGoodsCount >= gachaInfo.Cost)
|
||||
{
|
||||
_layoutPurchaseTicketButton.SetToGrayPurchaseButton(isDisable: false);
|
||||
_layoutPurchaseTicketButton.SetOnClickPurchaseButton(delegate
|
||||
{
|
||||
_onClickPurchaseButton(packConfig, gachaInfo);
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
_layoutPurchaseTicketButton.SetToGrayPurchaseButton(isDisable: true);
|
||||
}
|
||||
break;
|
||||
case GachaUI.CardPackType.RUPY_MULTI:
|
||||
_layoutPurchaseRupyButton.SetActiveLayout(isActive: true);
|
||||
_layoutPurchaseRupyButton.SetActivePurchaseButton(isActive: true);
|
||||
_layoutPurchaseRupyButton.SetBuyCostLabel(gachaInfo.Cost, "Shop_0059");
|
||||
if (PlayerStaticData.UserRupyCount >= gachaInfo.Cost)
|
||||
{
|
||||
_layoutPurchaseRupyButton.SetToGrayPurchaseButton(isDisable: false);
|
||||
_layoutPurchaseRupyButton.SetOnClickPurchaseButton(delegate
|
||||
{
|
||||
_onClickPurchaseButton(packConfig, gachaInfo);
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
_layoutPurchaseRupyButton.SetToGrayPurchaseButton(isDisable: true);
|
||||
}
|
||||
break;
|
||||
case GachaUI.CardPackType.FREE_PACKS:
|
||||
case GachaUI.CardPackType.FREE_PACK_WITH_SKIN:
|
||||
{
|
||||
flag = true;
|
||||
_layoutPurchaseCrystalButton.SetActiveLayout(isActive: false);
|
||||
_layoutPurchaseDailyButton.SetActivePurchaseButton(isActive: false);
|
||||
_layoutPurchaseFree10PacksButton.SetActiveLayout(isActive: true);
|
||||
_layoutPurchaseFree10PacksButton.SetActivePurchaseButton(isActive: true);
|
||||
_layoutPurchaseFree10PacksButton.SetToGrayPurchaseButton(isDisable: false);
|
||||
_layoutPurchaseFree10PacksButton.SetOnClickPurchaseButton(delegate
|
||||
{
|
||||
_onClickPurchaseButton(packConfig, gachaInfo);
|
||||
});
|
||||
_layoutPurchaseFree10PacksButton.SetHaveItemLabel(gachaInfo.AvailableCount / gachaInfo.PackCountBuyPer);
|
||||
_layoutPurchaseFree10PacksButton.SetBuyCostLabel(gachaInfo.PackCountBuyPer, (gachaInfo.PackCountBuyPer == 1) ? "Shop_0222" : "Shop_0233");
|
||||
bool flag2 = packConfig.Category == PackCategory.FreePackLeaderSkin || packConfig.Category == PackCategory.LeaderSkinPack || packConfig.Category == PackCategory.LegendAndLeaderSkinSinglePack;
|
||||
_layoutPurchaseFree10PacksButton.SetRemainLabelVisible(!flag2);
|
||||
_layoutPurchaseFree10PacksButton.SetFreePackLeaderSkinVisible(flag2);
|
||||
if (packConfig.Category == PackCategory.LeaderSkinPack)
|
||||
{
|
||||
string freePackLeaderSkinText = Data.SystemText.Get("Shop_0251");
|
||||
_layoutPurchaseFree10PacksButton.SetFreePackLeaderSkinText(freePackLeaderSkinText);
|
||||
}
|
||||
else if (packConfig.Category == PackCategory.LegendAndLeaderSkinSinglePack)
|
||||
{
|
||||
string freePackLeaderSkinText2 = Data.SystemText.Get("Shop_0252");
|
||||
_layoutPurchaseFree10PacksButton.SetFreePackLeaderSkinText(freePackLeaderSkinText2);
|
||||
}
|
||||
_layoutPurchaseFree10PacksButton.SetIconActive(gachaInfo.IsShowAnniversaryIcon, gachaInfo.AnniversaryIconSpriteName);
|
||||
_layoutPurchaseFree10PacksButton.SetPinkRibbon(gachaInfo.IsShowPinkRibbon);
|
||||
_layoutPurchaseFree10PacksButton.SetWinterSprite(gachaInfo.IsShowWinterUI);
|
||||
_free10PackCentering.Reposition();
|
||||
_free10PackEffect.Setup("cmn_frame_glow_1", 0, resourceList);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (packConfig.IsUsePackPointLayout)
|
||||
{
|
||||
_packPointLayout.SetPackPointLayout(packConfig, delegate
|
||||
{
|
||||
_onClickExchangePackPoint(packConfig);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void SetStanderdInfoText(string packDescription)
|
||||
{
|
||||
_labelPackDescription.gameObject.SetActive(value: true);
|
||||
_labelPackDescription.text = packDescription;
|
||||
}
|
||||
|
||||
private void ShowPrereleaseLayout(PackConfig packConfig)
|
||||
{
|
||||
PrereleasePurchaseInfo prereleasePurchaseInfo = packConfig.PrereleasePurchaseInfo;
|
||||
_preReleasePointRoot.SetActive(value: true);
|
||||
_ = packConfig.GachaPointData;
|
||||
_preReleasePointGauge.Value = (float)prereleasePurchaseInfo.PreReleasePointCurent / (float)prereleasePurchaseInfo.PreReleasePointLimit;
|
||||
_preReleasePointLabel.text = prereleasePurchaseInfo.PreReleasePointCurent + "/" + prereleasePurchaseInfo.PreReleasePointLimit;
|
||||
_noLimitPrereleaseRoot.SetActive(!prereleasePurchaseInfo.IsCountLimitedPrerelease);
|
||||
if (prereleasePurchaseInfo.IsCountLimitedPrerelease)
|
||||
{
|
||||
_objPrereleaseLayoutRoot.SetActive(value: true);
|
||||
}
|
||||
else
|
||||
{
|
||||
_objUnrestrictedPrereleaseLayoutRoot.SetActive(value: true);
|
||||
if (packConfig.IsUsePackPointLayout)
|
||||
{
|
||||
_packPointLayout.SetPackPointLayout(packConfig, delegate
|
||||
{
|
||||
_onClickExchangePackPoint(packConfig);
|
||||
});
|
||||
}
|
||||
}
|
||||
SetPrereleasePurchaseButton(packConfig, prereleasePurchaseInfo, packConfig.ChildGachaInfoList[0]);
|
||||
SetPrereleasePurchaseRewards(prereleasePurchaseInfo);
|
||||
SetPrereleaseInfoText(prereleasePurchaseInfo, packConfig.Description);
|
||||
}
|
||||
|
||||
private void SetPrereleasePurchaseButton(PackConfig packConfig, PrereleasePurchaseInfo purchaseInfo, PackChildGachaInfo gachaInfo)
|
||||
{
|
||||
_layoutPurchaseCrystalButton.SetActiveLayout(isActive: true);
|
||||
_layoutPurchaseCrystalButton.SetBuyCostLabel(gachaInfo.Cost, "Shop_0058");
|
||||
ShowStandardLayout(packConfig, null);
|
||||
_layoutPurchaseCrystalButton.SetPurchasedLabel("Shop_0206");
|
||||
_layoutPurchaseRupyButton.SetPurchasedLabel("Shop_0206");
|
||||
_layoutPurchaseTicketButton.SetPurchasedLabel("Shop_0206");
|
||||
if (purchaseInfo.TicketRupyCountRemain == 0)
|
||||
{
|
||||
_layoutPurchaseRupyButton.SetPurchasedMode(isPurchased: true);
|
||||
_layoutPurchaseTicketButton.SetPurchasedMode(isPurchased: true);
|
||||
}
|
||||
else
|
||||
{
|
||||
_layoutPurchaseRupyButton.SetPurchasedMode(isPurchased: false);
|
||||
_layoutPurchaseTicketButton.SetPurchasedMode(isPurchased: false);
|
||||
}
|
||||
if (!purchaseInfo.IsCountLimitedPrerelease || purchaseInfo.GetAbleBuyPackNum() > 0)
|
||||
{
|
||||
_layoutPurchaseCrystalButton.SetPurchasedMode(isPurchased: false);
|
||||
_layoutPurchaseCrystalButton.SetToGrayPurchaseButton(isDisable: false);
|
||||
_layoutPurchaseCrystalButton.SetOnClickPurchaseButton(delegate
|
||||
{
|
||||
_onClickPurchaseButton(packConfig, gachaInfo);
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
_layoutPurchaseCrystalButton.SetPurchasedMode(isPurchased: true);
|
||||
}
|
||||
}
|
||||
|
||||
private void SetPrereleasePurchaseRewards(PrereleasePurchaseInfo purchaseInfo)
|
||||
{
|
||||
UIButton uIButton = (purchaseInfo.IsCountLimitedPrerelease ? _btnPrereleasePurchaseRewards : _btnUnrestrictedPrereleasePurchaseRewards);
|
||||
if (purchaseInfo.RewardsList.Count == 0)
|
||||
{
|
||||
uIButton.gameObject.SetActive(value: false);
|
||||
return;
|
||||
}
|
||||
uIButton.onClick.Clear();
|
||||
uIButton.onClick.Add(new EventDelegate(delegate
|
||||
{
|
||||
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_COMMON_BUTTON);
|
||||
ShowPurchaseRewardDialog(purchaseInfo.RewardsList);
|
||||
}));
|
||||
}
|
||||
|
||||
private void SetPrereleaseInfoText(PrereleasePurchaseInfo purchaseInfo, string packDescription)
|
||||
{
|
||||
UILabel obj = (purchaseInfo.IsCountLimitedPrerelease ? _labelPrereleaseRemainTime : _labelUnrestrictedPrereleaseRemainTime);
|
||||
UILabel uILabel = (purchaseInfo.IsCountLimitedPrerelease ? _labelPrereleasePurchaseCount : _labelUnrestrictedPrereleasePurchaseCount);
|
||||
string showText = purchaseInfo.RemainTime.GetShowText("Shop_0179", "Shop_0178", "Shop_0177");
|
||||
_labelPackDescription.gameObject.SetActive(value: true);
|
||||
_labelPackDescription.text = packDescription.Replace("{remaining_purchase_time}", showText);
|
||||
obj.text = purchaseInfo.RemainTime.GetShowText("Shop_0179", "Shop_0178", "Shop_0177");
|
||||
if (purchaseInfo.IsCountLimitedPrerelease)
|
||||
{
|
||||
uILabel.text = Data.SystemText.Get("Shop_0181", purchaseInfo.CurrentCount.ToString(), purchaseInfo.LimitCount.ToString());
|
||||
_prereleaseRemainTimeRoot.SetActive(value: false);
|
||||
}
|
||||
else
|
||||
{
|
||||
uILabel.text = Data.SystemText.Get("Shop_0046", purchaseInfo.CurrentCount.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
private void ShowSpecialLayout(PackConfig packConfig)
|
||||
{
|
||||
UpdateDetailString(packConfig);
|
||||
SetSpecialPurchaseButton(packConfig, packConfig.ChildGachaInfoList[0], packConfig.OpenCountLimit > packConfig.OpenCount);
|
||||
SetSpecialPurchaseRewards(packConfig);
|
||||
}
|
||||
|
||||
private static string ReplaceDetailString(PackConfig packConfig)
|
||||
{
|
||||
string description = packConfig.Description;
|
||||
if (!packConfig.IsNeedRemainTime)
|
||||
{
|
||||
return description;
|
||||
}
|
||||
int second = packConfig.RemainTime.Second;
|
||||
string newValue;
|
||||
if (second < 3600)
|
||||
{
|
||||
int num = ((second > 0) ? (second / 60 + 1) : 0);
|
||||
newValue = Data.SystemText.Get("Shop_0147", num.ToString());
|
||||
}
|
||||
else if (second < 86400)
|
||||
{
|
||||
int num2 = second / 3600;
|
||||
newValue = Data.SystemText.Get("Shop_0146", num2.ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
int num3 = second / 86400;
|
||||
newValue = Data.SystemText.Get("Shop_0145", num3.ToString());
|
||||
}
|
||||
description = description.Replace("{remaining_purchase_time}", newValue);
|
||||
int num4 = (packConfig.OpenCountLimit - packConfig.OpenCount) / 10;
|
||||
if (GachaUI.IsTsStepupPackId(packConfig.PackId))
|
||||
{
|
||||
num4 = packConfig.RemainStepupOpenCount;
|
||||
}
|
||||
return string.Format(description, num4);
|
||||
}
|
||||
|
||||
private void UpdateDetailString(PackConfig packConfig)
|
||||
{
|
||||
if (_currentTimer != null)
|
||||
{
|
||||
_timerManager.Remove(_currentTimer);
|
||||
}
|
||||
RepeatTimer repeatTimer = new RepeatTimer((float)(60.0 - packConfig.RemainTime.NowUnixTime % 60.0), delegate
|
||||
{
|
||||
UpdateDetailString(packConfig);
|
||||
});
|
||||
_timerManager.Add(repeatTimer);
|
||||
_currentTimer = repeatTimer;
|
||||
if (packConfig.Category == PackCategory.LeaderSkinPack)
|
||||
{
|
||||
_labelPackDescription.gameObject.SetActive(value: true);
|
||||
_labelSpecialPackDescription.gameObject.SetActive(value: false);
|
||||
_labelPackDescription.text = ReplaceDetailString(packConfig);
|
||||
}
|
||||
else
|
||||
{
|
||||
_labelSpecialPackDescription.gameObject.SetActive(value: true);
|
||||
_labelPackDescription.gameObject.SetActive(value: false);
|
||||
_labelSpecialPackDescription.text = ReplaceDetailString(packConfig);
|
||||
}
|
||||
}
|
||||
|
||||
private void SetSpecialPurchaseButton(PackConfig packConfig, PackChildGachaInfo gachaInfo, bool isPurchasable)
|
||||
{
|
||||
_layoutPurchaseCrystalButton.SetActiveLayout(isActive: true);
|
||||
if (isPurchasable)
|
||||
{
|
||||
if (GachaUI.IsTsStepupPackId(packConfig.PackId))
|
||||
{
|
||||
_layoutPurchaseCrystalButton.SetActivePurchaseButton(isActive: false);
|
||||
_layoutPurchaseStepupButton.SetActivePurchaseButton(isActive: true);
|
||||
_layoutPurchaseStepupButton.SetToGrayPurchaseButton(isDisable: false);
|
||||
_layoutPurchaseStepupButton.SetOnClickPurchaseButton(delegate
|
||||
{
|
||||
_onClickPurchaseButton(packConfig, gachaInfo);
|
||||
});
|
||||
int num = packConfig.TotalStepupOpenCount - packConfig.RemainStepupOpenCount + 1;
|
||||
_layoutPurchaseStepupButton.SetInButtonText(Data.SystemText.Get("Shop_0186", num.ToString()));
|
||||
}
|
||||
else
|
||||
{
|
||||
_layoutPurchaseCrystalButton.SetActivePurchaseButton(isActive: true);
|
||||
_layoutPurchaseCrystalButton.SetToGrayPurchaseButton(isDisable: false);
|
||||
_layoutPurchaseCrystalButton.SetOnClickPurchaseButton(delegate
|
||||
{
|
||||
_onClickPurchaseButton(packConfig, gachaInfo);
|
||||
});
|
||||
_layoutPurchaseStepupButton.SetActivePurchaseButton(isActive: false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_layoutPurchaseCrystalButton.SetPurchasedVisible(visible: true);
|
||||
_layoutPurchaseCrystalButton.SetActivePurchaseButton(isActive: false);
|
||||
_layoutPurchaseStepupButton.SetActivePurchaseButton(isActive: false);
|
||||
}
|
||||
int cost = gachaInfo.Cost * 10;
|
||||
_layoutPurchaseCrystalButton.SetBuyCostLabel(cost, "Shop_0112");
|
||||
}
|
||||
|
||||
private void SetSpecialPurchaseRewards(PackConfig packConfig)
|
||||
{
|
||||
if (packConfig.IsExistSpecialPackPurchaseRewards && packConfig.SpecialPackRewardsList.Count != 0)
|
||||
{
|
||||
_btnSpecialPackReward.gameObject.SetActive(value: true);
|
||||
_btnSpecialPackReward.onClick.Clear();
|
||||
_btnSpecialPackReward.onClick.Add(new EventDelegate(delegate
|
||||
{
|
||||
GameMgr.GetIns().GetSoundMgr().PlaySe(Se.TYPE.SYS_COMMON_BUTTON);
|
||||
ShowPurchaseRewardDialog(packConfig.SpecialPackRewardsList);
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
private void ShowLegendLayout(PackConfig packConfig, List<string> resourceList)
|
||||
{
|
||||
SetLegendInfoText(packConfig.Description);
|
||||
PackChildGachaInfo packChildGachaInfo = packConfig.CanFreeBuyInfo();
|
||||
if (packChildGachaInfo != null)
|
||||
{
|
||||
SetFreeLegendTicketButton(packConfig, packChildGachaInfo, resourceList);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetLegendPurchaseButton(packConfig, packConfig.ChildGachaInfoList[0]);
|
||||
}
|
||||
}
|
||||
|
||||
private void SetLegendPurchaseButton(PackConfig packConfig, PackChildGachaInfo gachaInfo)
|
||||
{
|
||||
_layoutPurchaseFree10PacksButton.SetActiveLayout(isActive: false);
|
||||
_layoutPurchaseTicketButton.SetActiveLayout(isActive: true);
|
||||
_layoutPurchaseTicketButton.SetPurchasedMode(isPurchased: false);
|
||||
_layoutPurchaseTicketButton.LayoutLocalPosition = LEGEND_PACK_TICKET_POSITION;
|
||||
_layoutPurchaseTicketButton.SetHaveItemLabel(gachaInfo.CostGoodsCount);
|
||||
_layoutPurchaseTicketButton.SetBuyCostLabel(gachaInfo.Cost, "Shop_0057");
|
||||
if (gachaInfo.CostGoodsCount >= gachaInfo.Cost)
|
||||
{
|
||||
_layoutPurchaseTicketButton.SetToGrayPurchaseButton(isDisable: false);
|
||||
_layoutPurchaseTicketButton.SetOnClickPurchaseButton(delegate
|
||||
{
|
||||
_onClickPurchaseButton(packConfig, gachaInfo);
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
_layoutPurchaseTicketButton.SetToGrayPurchaseButton(isDisable: true);
|
||||
}
|
||||
}
|
||||
|
||||
private void SetFreeLegendTicketButton(PackConfig packConfig, PackChildGachaInfo gachaInfo, List<string> resourceList)
|
||||
{
|
||||
_layoutPurchaseTicketButton.SetActiveLayout(isActive: false);
|
||||
_layoutPurchaseFree10PacksButton.SetActiveLayout(isActive: true);
|
||||
_layoutPurchaseFree10PacksButton.SetRemainCountRootVisible(visible: false);
|
||||
_layoutPurchaseFree10PacksButton.SetPinkRibbon(gachaInfo.IsShowPinkRibbon);
|
||||
_layoutPurchaseFree10PacksButton.SetActivePurchaseButton(isActive: true);
|
||||
_layoutPurchaseFree10PacksButton.SetToGrayPurchaseButton(isDisable: false);
|
||||
_layoutPurchaseFree10PacksButton.SetOnClickPurchaseButton(delegate
|
||||
{
|
||||
_onClickPurchaseButton(packConfig, gachaInfo);
|
||||
});
|
||||
_layoutPurchaseFree10PacksButton.SetFreePackLeaderSkinVisible(visible: false);
|
||||
_layoutPurchaseFree10PacksButton.SetRemainLabelVisible(visible: true);
|
||||
_layoutPurchaseFree10PacksButton.SetHaveItemLabel(gachaInfo.AvailableCount / gachaInfo.PackCountBuyPer);
|
||||
_layoutPurchaseFree10PacksButton.SetBuyCostLabel(gachaInfo.PackCountBuyPer, (gachaInfo.PackCountBuyPer == 1) ? "Shop_0222" : "Shop_0233");
|
||||
_layoutPurchaseFree10PacksButton.SetIconActive(gachaInfo.IsShowAnniversaryIcon, gachaInfo.AnniversaryIconSpriteName);
|
||||
_free10PackCentering.Reposition();
|
||||
_free10PackEffect.Setup("cmn_frame_glow_1", 0, resourceList);
|
||||
}
|
||||
|
||||
private void SetLegendInfoText(string packDescription)
|
||||
{
|
||||
_labelSpecialPackDescription.gameObject.SetActive(value: true);
|
||||
_labelSpecialPackDescription.text = packDescription;
|
||||
}
|
||||
|
||||
private void ShowRotationStarterLayout(PackConfig packConfig, List<string> resourceList)
|
||||
{
|
||||
PackChildGachaInfo packChildGachaInfo = packConfig.CanFreeBuyInfo();
|
||||
_layoutPurchaseFree10PacksButton.SetActiveLayout(isActive: false);
|
||||
_layoutPurchaseFree10PacksButton.SetPinkRibbon(packConfig.ChildGachaInfoList[0].IsShowPinkRibbon);
|
||||
if (packChildGachaInfo == null)
|
||||
{
|
||||
SetRotationStarterButton(packConfig, packConfig.ChildGachaInfoList[0], packConfig.OpenCountLimit > packConfig.OpenCount);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetFreeRotationStarter(packConfig, packChildGachaInfo, resourceList);
|
||||
}
|
||||
SetRotationStarterInfoText(packConfig);
|
||||
}
|
||||
|
||||
private void SetRotationStarterInfoText(PackConfig packConfig)
|
||||
{
|
||||
_labelSpecialPackDescription.gameObject.SetActive(value: true);
|
||||
int num = (packConfig.OpenCountLimit - packConfig.OpenCount) / 10;
|
||||
_labelSpecialPackDescription.text = string.Format(packConfig.Description, num);
|
||||
}
|
||||
|
||||
private void SetFreeRotationStarter(PackConfig packConfig, PackChildGachaInfo gachaInfo, List<string> resourceList)
|
||||
{
|
||||
_layoutPurchaseCrystalButton.SetActiveLayout(isActive: false);
|
||||
_layoutPurchaseFree10PacksButton.SetActiveLayout(isActive: true);
|
||||
_layoutPurchaseFree10PacksButton.SetRemainCountRootVisible(visible: false);
|
||||
_layoutPurchaseFree10PacksButton.SetActivePurchaseButton(isActive: true);
|
||||
_layoutPurchaseFree10PacksButton.SetToGrayPurchaseButton(isDisable: false);
|
||||
_layoutPurchaseFree10PacksButton.SetOnClickPurchaseButton(delegate
|
||||
{
|
||||
_onClickPurchaseButton(packConfig, gachaInfo);
|
||||
});
|
||||
_layoutPurchaseFree10PacksButton.SetFreePackLeaderSkinVisible(visible: false);
|
||||
_layoutPurchaseFree10PacksButton.SetFreePackApealTextVisible(visible: true);
|
||||
_layoutPurchaseFree10PacksButton.SetFreePackApealText(Data.SystemText.Get("Shop_0255", gachaInfo.PackCountBuyPer.ToString()));
|
||||
_layoutPurchaseFree10PacksButton.SetBuyCostLabel(gachaInfo.PackCountBuyPer, (gachaInfo.PackCountBuyPer == 1) ? "Shop_0222" : "Shop_0233");
|
||||
_free10PackEffect.Setup("cmn_frame_glow_1", 0, resourceList);
|
||||
}
|
||||
|
||||
private void SetRotationStarterButton(PackConfig packConfig, PackChildGachaInfo gachaInfo, bool isPurchasable)
|
||||
{
|
||||
_layoutPurchaseCrystalButton.SetActiveLayout(isActive: true);
|
||||
if (isPurchasable)
|
||||
{
|
||||
_layoutPurchaseCrystalButton.SetActivePurchaseButton(isActive: true);
|
||||
_layoutPurchaseCrystalButton.SetToGrayPurchaseButton(isDisable: false);
|
||||
_layoutPurchaseCrystalButton.SetOnClickPurchaseButton(delegate
|
||||
{
|
||||
_onClickPurchaseButton(packConfig, gachaInfo);
|
||||
});
|
||||
int cost = gachaInfo.Cost * 10;
|
||||
_layoutPurchaseCrystalButton.SetBuyCostLabel(cost, "Shop_0112");
|
||||
}
|
||||
else
|
||||
{
|
||||
_layoutPurchaseCrystalButton.SetPurchasedVisible(visible: true);
|
||||
_layoutPurchaseCrystalButton.SetActivePurchaseButton(isActive: false);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user