using System; using System.Numerics; using System.Runtime.CompilerServices; using System.Threading; using Dalamud.Game.Addon.Lifecycle; using Dalamud.Game.Addon.Lifecycle.AddonArgTypes; using Dalamud.Game.NativeWrapper; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Component.GUI; using LLib.GameUI; using LLib.Inventory; using LLib.Shop.Model; using Lumina.Excel; using Lumina.Excel.Sheets; namespace LLib.Shop; public class RegularShopBase : IDisposable { private readonly IShopWindow _parentWindow; private readonly string _addonName; private readonly IPluginLog _pluginLog; private readonly IGameGui _gameGui; private readonly IAddonLifecycle _addonLifecycle; private readonly ExcelSheet _itemSheet; private long _purchaseDeadlineMs; [CompilerGenerated] private EventHandler? m_PurchaseCompleted; private const int MaxPurchaseQuantity = 99; private const int MaxWaitMs = 3000; public ItemForSale? ItemForSale { get; set; } public PurchaseState? PurchaseState { get; private set; } public bool AutoBuyEnabled => PurchaseState != null; public bool IsAwaitingYesNo { get { return PurchaseState?.IsAwaitingYesNo ?? false; } set { int num = ((PurchaseState == null) ? (-314894367) : (-314894366)); while (true) { int num2 = num; int num3 = -314894368; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 0: num = -314894366; break; case 1: return; case 2: PurchaseState.IsAwaitingYesNo = value; num = -314894367; break; } } } } public event EventHandler? PurchaseCompleted { [CompilerGenerated] add { EventHandler eventHandler = this.m_PurchaseCompleted; int num = 660558086; while (true) { int num2 = num; int num3 = 660558087; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 2: return; case 1: { EventHandler eventHandler2 = eventHandler; EventHandler value2 = (EventHandler)_202E_202D_202E_200D_200B_206C_202C_200F_206C_200C_206B_202A_200B_202A_200D_206B_202B_206B_200F_200C_206C_206C_206B_202B_202C_200D_206B_202A_200E_206D_206B_200E_200E_206E_202D_206D_200F_206E_202C_206E_202E((Delegate)eventHandler2, (Delegate)value); eventHandler = Interlocked.CompareExchange(ref this.m_PurchaseCompleted, value2, eventHandler2); num = (((object)eventHandler != eventHandler2) ? 660558086 : 660558085); break; } case 0: num = 660558086; break; } } } [CompilerGenerated] remove { EventHandler eventHandler = this.m_PurchaseCompleted; int num = 1746183052; while (true) { int num2 = num; int num3 = 1746183053; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 0: num = 1746183052; break; case 2: return; case 1: { EventHandler eventHandler2 = eventHandler; EventHandler value2 = (EventHandler)_200B_206D_202C_206D_206C_200D_202B_200D_202A_202E_200E_200C_200E_206D_202B_206E_200F_206E_200E_200B_202C_206E_202C_206A_206B_206F_206B_200B_206D_202D_202C_202C_206D_202B_202D_206B_200D_200C_200C_202C_202E((Delegate)eventHandler2, (Delegate)value); eventHandler = Interlocked.CompareExchange(ref this.m_PurchaseCompleted, value2, eventHandler2); num = (((object)eventHandler != eventHandler2) ? 1746183052 : 1746183055); break; } } } } } [MethodImpl(MethodImplOptions.NoInlining)] public RegularShopBase(IShopWindow parentWindow, string addonName, IPluginLog pluginLog, IGameGui gameGui, IAddonLifecycle addonLifecycle, IDataManager dataManager) { _206B_206A_202C_200C_206E_200C_202C_206A_200D_202A_202D_206D_200E_200B_206E_206F_200B_206A_206F_202D_200F_202A_202C_200E_202C_202B_206A_202C_200F_202D_206D_202D_202A_206C_202C_206C_206B_200B_200D_200F_202E((object)parentWindow, global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E(1152352366)); _200F_206D_202A_206D_200C_206A_202D_200D_206E_200F_206E_206D_206F_202B_202C_202A_200E_202D_206C_202B_200E_202D_206F_206C_202B_202B_206F_206F_206D_202C_202B_202E_200D_202A_206D_206A_206C_200C_206F_200F_202E(addonName, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E(876094366)); _206B_206A_202C_200C_206E_200C_202C_206A_200D_202A_202D_206D_200E_200B_206E_206F_200B_206A_206F_202D_200F_202A_202C_200E_202C_202B_206A_202C_200F_202D_206D_202D_202A_206C_202C_206C_206B_200B_200D_200F_202E((object)pluginLog, global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E(-2117874046)); _206B_206A_202C_200C_206E_200C_202C_206A_200D_202A_202D_206D_200E_200B_206E_206F_200B_206A_206F_202D_200F_202A_202C_200E_202C_202B_206A_202C_200F_202D_206D_202D_202A_206C_202C_206C_206B_200B_200D_200F_202E((object)gameGui, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E(608358874)); _206B_206A_202C_200C_206E_200C_202C_206A_200D_202A_202D_206D_200E_200B_206E_206F_200B_206A_206F_202D_200F_202A_202C_200E_202C_202B_206A_202C_200F_202D_206D_202D_202A_206C_202C_206C_206B_200B_200D_200F_202E((object)addonLifecycle, global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E(1756451262)); _206B_206A_202C_200C_206E_200C_202C_206A_200D_202A_202D_206D_200E_200B_206E_206F_200B_206A_206F_202D_200F_202A_202C_200E_202C_202B_206A_202C_200F_202D_206D_202D_202A_206C_202C_206C_206B_200B_200D_200F_202E((object)dataManager, global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E(990210437)); _parentWindow = parentWindow; _addonName = addonName; _pluginLog = pluginLog; _gameGui = gameGui; _addonLifecycle = addonLifecycle; _itemSheet = dataManager.GetExcelSheet(); _202B_200B_206D_200B_206F_200C_200C_206E_200B_206E_206D_206B_206E_202A_200B_206F_202B_206F_206F_206E_200D_200F_206D_200E_202C_200D_206E_200C_200D_202A_202C_200B_202A_202E_202D_202E_202A_206B_206F_200C_202E(_addonLifecycle, AddonEvent.PostSetup, _addonName, (IAddonLifecycle.AddonEventDelegate)ShopPostSetup); _202B_200B_206D_200B_206F_200C_200C_206E_200B_206E_206D_206B_206E_202A_200B_206F_202B_206F_206F_206E_200D_200F_206D_200E_202C_200D_206E_200C_200D_202A_202C_200B_202A_202E_202D_202E_202A_206B_206F_200C_202E(_addonLifecycle, AddonEvent.PreFinalize, _addonName, (IAddonLifecycle.AddonEventDelegate)ShopPreFinalize); _202B_200B_206D_200B_206F_200C_200C_206E_200B_206E_206D_206B_206E_202A_200B_206F_202B_206F_206F_206E_200D_200F_206D_200E_202C_200D_206E_200C_200D_202A_202C_200B_202A_202E_202D_202E_202A_206B_206F_200C_202E(_addonLifecycle, AddonEvent.PostUpdate, _addonName, (IAddonLifecycle.AddonEventDelegate)ShopPostUpdate); } private unsafe void ShopPostSetup(AddonEvent type, AddonArgs args) { int num = (_parentWindow.IsEnabled ? (-1920873629) : (-1920873630)); while (true) { int num2 = num; int num3 = -1920873629; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 4: _parentWindow.IsOpen = true; num = -1920873632; break; case 0: _parentWindow.UpdateShopStock((AtkUnitBase*)_206F_200C_202D_200F_200F_206B_206F_200D_202B_206C_202E_206C_206F_200D_206F_206B_200C_200B_202E_200D_200B_200C_206B_200F_200B_202E_202C_202C_206A_200C_206D_200D_206D_200B_200E_202C_206D_200B_200C_202A_202E(args).Address); PostUpdateShopStock(); num = ((ItemForSale == null) ? (-1920873632) : (-1920873625)); break; case 3: return; case 2: num = -1920873630; break; case 1: ItemForSale = null; _parentWindow.IsOpen = false; return; } } } private void ShopPreFinalize(AddonEvent type, AddonArgs args) { int num = ((PurchaseState == null) ? (-1080756393) : (-1080756395)); while (true) { int num2 = num; int num3 = -1080756396; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 0: _parentWindow.IsOpen = false; return; case 1: num = ((ItemForSale == null) ? (-1080756393) : (-1080756400)); break; case 4: CompletePurchase(ItemForSale.ItemId, success: false); num = -1080756396; break; case 3: PurchaseState = null; _parentWindow.RestoreExternalPluginState(); num = -1080756396; break; case 2: num = -1080756395; break; } } } private unsafe void ShopPostUpdate(AddonEvent type, AddonArgs args) { int num = (_parentWindow.IsEnabled ? (-1011514953) : (-1011514956)); Vector2 valueOrDefault = default(Vector2); Vector2? position = default(Vector2?); short num6 = default(short); short num5 = default(short); while (true) { int num2 = num; int num3 = -1011514953; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 0: _parentWindow.UpdateShopStock((AtkUnitBase*)_206F_200C_202D_200F_200F_206B_206F_200D_202B_206C_202E_206C_206F_200D_206F_206B_200C_200B_202E_200D_200B_200C_206B_200F_200B_202E_202C_202C_206A_200C_206D_200D_206D_200B_200E_202C_206D_200B_200C_202A_202E(args).Address); PostUpdateShopStock(); num = ((ItemForSale == null) ? (-1011514945) : (-1011514954)); break; case 8: _parentWindow.IsOpen = false; return; case 6: valueOrDefault = position.GetValueOrDefault(); num = (((short)valueOrDefault.X != num6) ? (-1011514958) : (-1011514955)); break; case 7: num = -1011514956; break; case 4: _parentWindow.IsOpen = true; return; case 5: _parentWindow.Position = new Vector2(num6, num5); num = -1011514957; break; case 1: { AtkUnitBase* address = (AtkUnitBase*)_206F_200C_202D_200F_200F_206B_206F_200D_202B_206C_202E_206C_206F_200D_206F_206B_200C_200B_202E_200D_200B_200C_206B_200F_200B_202E_202C_202C_206A_200C_206D_200D_206D_200B_200E_202C_206D_200B_200C_202A_202E(args).Address; num6 = 0; num5 = 0; address->GetPosition(&num6, &num5); ushort num7 = 0; ushort num8 = 0; address->GetSize(&num7, &num8, scaled: true); num6 += (short)num7; position = _parentWindow.Position; num = ((!position.HasValue) ? (-1011514957) : (-1011514959)); break; } case 2: num = (((short)valueOrDefault.Y == num5) ? (-1011514957) : (-1011514958)); break; case 3: ItemForSale = null; _parentWindow.IsOpen = false; return; } } } private void PostUpdateShopStock() { int num = ((ItemForSale == null) ? 662202299 : 662202301); int ownedItems = default(int); while (true) { int num2 = num; int num3 = 662202297; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 3: ownedItems = (int)ItemForSale.OwnedItems; num = ((PurchaseState.OwnedItems == ownedItems) ? 662202299 : 662202296); break; case 2: return; case 0: num = 662202301; break; case 4: num = ((PurchaseState == null) ? 662202299 : 662202298); break; case 1: PurchaseState.OwnedItems = ownedItems; PurchaseState.NextStepMs = _202E_202E_202D_202D_202D_202D_206B_202B_200E_206D_206E_206C_206B_202C_200C_200D_206C_200E_200C_202E_200B_202D_206B_202C_200E_202E_202C_200C_200E_202A_206C_200C_206F_200D_200E_206D_202A_202E_206C_202E() + 250; num = 662202299; break; } } } public virtual int GetCurrencyCount(uint currencyItemId) { return InventoryHelper.GetItemCount(currencyItemId); } public int GetMaxItemsToPurchase() { int num = ((ItemForSale != null) ? (-1965181968) : (-1965181966)); int maxHoldableQuantity = default(int); while (true) { int num2 = num; int num3 = -1965181965; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 3: maxHoldableQuantity = InventoryHelper.GetMaxHoldableQuantity(ItemForSale.ItemId, _itemSheet); num = ((ItemForSale.Price != 0) ? (-1965181967) : (-1965181965)); break; case 2: return _200E_202C_200C_202A_206C_202C_206E_206F_206D_202C_202C_200C_200B_200E_206D_206E_202D_206A_202D_202D_202D_202A_202B_200C_206E_206E_206D_206A_206D_206C_200E_206A_202B_206C_200D_200C_206F_206D_200C_202D_202E((int)(GetCurrencyCount(ItemForSale.CurrencyItemId) / ItemForSale.Price), maxHoldableQuantity); case 4: num = -1965181966; break; case 1: return 0; case 0: return maxHoldableQuantity; } } } public void CancelAutoPurchase() { int num = ((ItemForSale == null) ? (-639138042) : (-639138043)); while (true) { int num2 = num; int num3 = -639138041; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 1: return; case 2: num = ((PurchaseState == null) ? (-639138042) : (-639138044)); break; case 0: num = -639138043; break; case 3: CompletePurchase(ItemForSale.ItemId, success: false); num = -639138042; break; } } } [MethodImpl(MethodImplOptions.NoInlining)] public void StartAutoPurchase(int toPurchase) { int num = ((ItemForSale != null) ? 547091109 : 547091110); while (true) { int num2 = num; int num3 = 547091111; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 0: goto IL_0046; case 1: throw _200D_200C_202A_202D_202C_206D_206F_202E_202A_206E_202B_200E_200C_200F_200C_206B_200E_202E_206E_202E_202B_206C_200E_200D_200C_206B_200D_200F_202D_206D_202E_206A_206B_200D_200E_200E_200F_202D_202A_202A_202E(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E(-1974882015)); case 2: PurchaseState = new PurchaseState((int)ItemForSale.OwnedItems + toPurchase, (int)ItemForSale.OwnedItems); _parentWindow.SaveExternalPluginState(); return; } continue; IL_0046: num = 547091110; } } [MethodImpl(MethodImplOptions.NoInlining)] public unsafe void HandleNextPurchaseStep() { int num = ((ItemForSale == null) ? (-1459965159) : (-1459965154)); int num7 = default(int); AtkUnitBase* addonPtr = default(AtkUnitBase*); while (true) { int num2 = num; int num3 = -1459965163; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 6: num = -1459965154; break; case 10: return; case 0: _206B_200E_206A_206A_202E_202E_202E_200F_206C_202B_206E_200C_202C_200F_202E_200E_206E_202E_202C_202C_206E_206B_206E_206C_200E_206F_202C_202B_202B_206E_202C_202C_202C_200F_202C_200C_206B_206D_200F_202B_202E(_pluginLog, _200E_206A_206B_200B_206E_200D_202B_200B_202C_200C_206A_202E_206F_202C_206E_200D_200B_200F_202D_202B_206A_202E_200D_206F_200B_206E_200F_202E_206D_200C_206C_200B_206F_202C_206E_200D_200C_202E_206D_202B_202E(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E(-1851945026), ItemForSale.ItemName), Array.Empty()); CompletePurchase(ItemForSale.ItemId, success: false); return; case 2: num = ((PurchaseState.NextStepMs != long.MaxValue) ? (-1459965153) : (-1459965155)); break; case 13: { IPluginLog pluginLog2 = _pluginLog; DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(45, 2); defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E(-1919731444)); defaultInterpolatedStringHandler2.AppendFormatted(PurchaseState.DesiredItems); defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E(-1891359698)); defaultInterpolatedStringHandler2.AppendFormatted(PurchaseState.OwnedItems); defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E(-542666901)); _202C_202E_200D_202B_202D_200B_200B_206E_202C_200D_202B_206E_206E_206B_202D_206B_202E_200D_202C_202D_206C_206E_202C_200C_206E_202B_202E_202A_202D_206F_200B_200D_206C_206C_200F_200B_206D_202D_202D_200E_202E(pluginLog2, defaultInterpolatedStringHandler2.ToStringAndClear(), Array.Empty()); CompletePurchase(ItemForSale.ItemId, success: true); return; } case 1: num = ((!PurchaseState.IsComplete) ? (-1459965168) : (-1459965160)); break; case 5: { int maxHoldableQuantity = InventoryHelper.GetMaxHoldableQuantity(ItemForSale.ItemId, _itemSheet); num7 = _200E_202C_200C_202A_206C_202C_206E_206F_206D_202C_202C_200C_200B_200E_206D_206E_202D_206A_202D_202D_202D_202A_202B_200C_206E_206E_206D_206A_206D_206C_200E_206A_202B_206C_200D_200C_206F_206D_200C_202D_202E(99, maxHoldableQuantity); num = ((num7 != 0) ? (-1459965167) : (-1459965163)); break; } case 3: num = ((!_gameGui.TryGetAddonByName(_addonName, out addonPtr)) ? (-1459965161) : (-1459965156)); break; case 4: num = ((_202E_202E_202D_202D_202D_202D_206B_202B_200E_206D_206E_206C_206B_202C_200C_200D_206C_200E_200C_202E_200B_202D_206B_202C_200E_202E_202C_200C_200E_202A_206C_200C_206F_200D_200E_206D_202A_202E_206C_202E() < PurchaseState.NextStepMs) ? (-1459965161) : (-1459965162)); break; case 9: { int num8 = _200E_202C_200C_202A_206C_202C_206E_206F_206D_202C_202C_200C_200B_200E_206D_206E_202D_206A_202D_202D_202D_202A_202B_200C_206E_206E_206D_206A_206D_206C_200E_206A_202B_206C_200D_200C_206F_206D_200C_202D_202E(PurchaseState.ItemsLeftToBuy, num7); IPluginLog pluginLog3 = _pluginLog; DefaultInterpolatedStringHandler defaultInterpolatedStringHandler3 = new DefaultInterpolatedStringHandler(9, 2); defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E(-2017196427)); defaultInterpolatedStringHandler3.AppendFormatted(num8); defaultInterpolatedStringHandler3.AppendLiteral(global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E(640094798)); defaultInterpolatedStringHandler3.AppendFormatted(ItemForSale.ItemName); _202C_202E_200D_202B_202D_200B_200B_206E_202C_200D_202B_206E_206E_206B_202D_206B_202E_200D_202C_202D_206C_206E_202C_200C_206E_202B_202E_202A_202D_206F_200B_200D_206C_206C_200F_200B_206D_202D_202D_200E_202E(pluginLog3, defaultInterpolatedStringHandler3.ToStringAndClear(), Array.Empty()); _parentWindow.TriggerPurchase(addonPtr, num8); PurchaseState.NextStepMs = long.MaxValue; _purchaseDeadlineMs = _202E_202E_202D_202D_202D_202D_206B_202B_200E_206D_206E_206C_206B_202C_200C_200D_206C_200E_200C_202E_200B_202D_206B_202C_200E_202E_202C_200C_200E_202A_206C_200C_206F_200D_200E_206D_202A_202E_206C_202E() + 3000; PurchaseState.IsAwaitingYesNo = true; return; } case 11: num = ((PurchaseState != null) ? (-1459965164) : (-1459965159)); break; case 8: num = ((_202E_202E_202D_202D_202D_202D_206B_202B_200E_206D_206E_206C_206B_202C_200C_200D_206C_200E_200C_202E_200B_202D_206B_202C_200E_202E_202C_200C_200E_202A_206C_200C_206F_200D_200E_206D_202A_202E_206C_202E() < _purchaseDeadlineMs) ? (-1459965153) : (-1459965166)); break; case 7: { IPluginLog pluginLog = _pluginLog; DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(51, 2); defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E(785267404)); defaultInterpolatedStringHandler.AppendFormatted(ItemForSale.ItemName); defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200E_206F_206C_206C_200E_202A_206D_206B_200B_202D_202B_200F_200F_206B_206C_206F_202D_206F_206A_202D_206A_200B_200B_202B_202D_202C_200F_200D_202E_200E_200D_202A_202B_206F_202E_200E_200B_206B_200E_202E_202E(-1250823657)); defaultInterpolatedStringHandler.AppendFormatted(3000); defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206E_202B_206C_202A_202A_200E_202B_202B_206D_200B_200C_206B_200B_206D_202E_202D_206C_202B_200B_206A_202D_206C_202A_200F_202D_200C_200B_200B_200B_200D_202C_206E_206D_202E_200C_206B_206A_206D_202D_202C_202E(1905813856)); _206B_200E_206A_206A_202E_202E_202E_200F_206C_202B_206E_200C_202C_200F_202E_200E_206E_202E_202C_202C_206E_206B_206E_206C_200E_206F_202C_202B_202B_206E_202C_202C_202C_200F_202C_200C_206B_206D_200F_202B_202E(pluginLog, defaultInterpolatedStringHandler.ToStringAndClear(), Array.Empty()); CompletePurchase(ItemForSale.ItemId, success: false); num = -1459965153; break; } case 12: return; } } } private void CompletePurchase(uint itemId, bool success) { int num = ((!success) ? (-1114779348) : (-1114779346)); while (true) { int num2 = num; int num3 = -1114779347; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; int num7; int quantityPurchased; switch (num5 - (num6 + num6)) { case 2: num7 = PurchaseState.OwnedItems - PurchaseState.InitialOwnedItems; goto IL_005e; case 3: num = ((PurchaseState != null) ? (-1114779345) : (-1114779348)); break; case 0: num = -1114779346; break; case 1: { num7 = 0; goto IL_005e; } IL_005e: quantityPurchased = num7; PurchaseState = null; _parentWindow.RestoreExternalPluginState(); this.PurchaseCompleted?.Invoke(this, new PurchaseCompletedEventArgs(itemId, success, quantityPurchased)); return; } } } protected virtual void Dispose(bool disposing) { int num = ((!disposing) ? 1043096164 : 1043096167); while (true) { int num2 = num; int num3 = 1043096165; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 0: num = 1043096167; break; case 2: _200E_202B_202D_200C_206B_200F_202E_202D_206D_206F_202C_202E_206A_202A_206D_200E_202D_200D_202B_206A_206F_202C_206D_206E_200B_200E_206B_200F_200F_202C_206A_200E_206A_200F_206B_200B_202B_202C_200F_200F_202E(_addonLifecycle, AddonEvent.PostSetup, _addonName, (IAddonLifecycle.AddonEventDelegate)ShopPostSetup); _200E_202B_202D_200C_206B_200F_202E_202D_206D_206F_202C_202E_206A_202A_206D_200E_202D_200D_202B_206A_206F_202C_206D_206E_200B_200E_206B_200F_200F_202C_206A_200E_206A_200F_206B_200B_202B_202C_200F_200F_202E(_addonLifecycle, AddonEvent.PreFinalize, _addonName, (IAddonLifecycle.AddonEventDelegate)ShopPreFinalize); _200E_202B_202D_200C_206B_200F_202E_202D_206D_206F_202C_202E_206A_202A_206D_200E_202D_200D_202B_206A_206F_202C_206D_206E_200B_200E_206B_200F_200F_202C_206A_200E_206A_200F_206B_200B_202B_202C_200F_200F_202E(_addonLifecycle, AddonEvent.PostUpdate, _addonName, (IAddonLifecycle.AddonEventDelegate)ShopPostUpdate); num = 1043096164; break; case 1: return; } } } public void Dispose() { Dispose(disposing: true); _200B_202C_202A_200E_200F_202E_202C_206C_206F_206B_206F_206C_206E_200B_200C_200F_202B_206D_206B_206E_202D_202E_200E_200E_206D_202E_200C_200B_202B_202D_200D_202A_206B_202C_200F_206B_202A_206C_206E_200F_202E((object)this); } void IDisposable.Dispose() { //ILSpy generated this explicit interface implementation from .override directive in Dispose this.Dispose(); } static void _206B_206A_202C_200C_206E_200C_202C_206A_200D_202A_202D_206D_200E_200B_206E_206F_200B_206A_206F_202D_200F_202A_202C_200E_202C_202B_206A_202C_200F_202D_206D_202D_202A_206C_202C_206C_206B_200B_200D_200F_202E(object P_0, string P_1) { ArgumentNullException.ThrowIfNull(P_0, P_1); } static void _200F_206D_202A_206D_200C_206A_202D_200D_206E_200F_206E_206D_206F_202B_202C_202A_200E_202D_206C_202B_200E_202D_206F_206C_202B_202B_206F_206F_206D_202C_202B_202E_200D_202A_206D_206A_206C_200C_206F_200F_202E(string P_0, string P_1) { ArgumentException.ThrowIfNullOrEmpty(P_0, P_1); } static void _202B_200B_206D_200B_206F_200C_200C_206E_200B_206E_206D_206B_206E_202A_200B_206F_202B_206F_206F_206E_200D_200F_206D_200E_202C_200D_206E_200C_200D_202A_202C_200B_202A_202E_202D_202E_202A_206B_206F_200C_202E(IAddonLifecycle P_0, AddonEvent P_1, string P_2, IAddonLifecycle.AddonEventDelegate P_3) { P_0.RegisterListener(P_1, P_2, P_3); } static Delegate _202E_202D_202E_200D_200B_206C_202C_200F_206C_200C_206B_202A_200B_202A_200D_206B_202B_206B_200F_200C_206C_206C_206B_202B_202C_200D_206B_202A_200E_206D_206B_200E_200E_206E_202D_206D_200F_206E_202C_206E_202E(Delegate P_0, Delegate P_1) { return Delegate.Combine(P_0, P_1); } static Delegate _200B_206D_202C_206D_206C_200D_202B_200D_202A_202E_200E_200C_200E_206D_202B_206E_200F_206E_200E_200B_202C_206E_202C_206A_206B_206F_206B_200B_206D_202D_202C_202C_206D_202B_202D_206B_200D_200C_200C_202C_202E(Delegate P_0, Delegate P_1) { return Delegate.Remove(P_0, P_1); } static AtkUnitBasePtr _206F_200C_202D_200F_200F_206B_206F_200D_202B_206C_202E_206C_206F_200D_206F_206B_200C_200B_202E_200D_200B_200C_206B_200F_200B_202E_202C_202C_206A_200C_206D_200D_206D_200B_200E_202C_206D_200B_200C_202A_202E(AddonArgs P_0) { return P_0.Addon; } static long _202E_202E_202D_202D_202D_202D_206B_202B_200E_206D_206E_206C_206B_202C_200C_200D_206C_200E_200C_202E_200B_202D_206B_202C_200E_202E_202C_200C_200E_202A_206C_200C_206F_200D_200E_206D_202A_202E_206C_202E() { return Environment.TickCount64; } static int _200E_202C_200C_202A_206C_202C_206E_206F_206D_202C_202C_200C_200B_200E_206D_206E_202D_206A_202D_202D_202D_202A_202B_200C_206E_206E_206D_206A_206D_206C_200E_206A_202B_206C_200D_200C_206F_206D_200C_202D_202E(int P_0, int P_1) { return Math.Min(P_0, P_1); } static InvalidOperationException _200D_200C_202A_202D_202C_206D_206F_202E_202A_206E_202B_200E_200C_200F_200C_206B_200E_202E_206E_202E_202B_206C_200E_200D_200C_206B_200D_200F_202D_206D_202E_206A_206B_200D_200E_200E_200F_202D_202A_202A_202E(string P_0) { return new InvalidOperationException(P_0); } static void _202C_202E_200D_202B_202D_200B_200B_206E_202C_200D_202B_206E_206E_206B_202D_206B_202E_200D_202C_202D_206C_206E_202C_200C_206E_202B_202E_202A_202D_206F_200B_200D_206C_206C_200F_200B_206D_202D_202D_200E_202E(IPluginLog P_0, string P_1, object[] P_2) { P_0.Information(P_1, P_2); } static string _200E_206A_206B_200B_206E_200D_202B_200B_202C_200C_206A_202E_206F_202C_206E_200D_200B_200F_202D_202B_206A_202E_200D_206F_200B_206E_200F_202E_206D_200C_206C_200B_206F_202C_206E_200D_200C_202E_206D_202B_202E(string P_0, string P_1) { return P_0 + P_1; } static void _206B_200E_206A_206A_202E_202E_202E_200F_206C_202B_206E_200C_202C_200F_202E_200E_206E_202E_202C_202C_206E_206B_206E_206C_200E_206F_202C_202B_202B_206E_202C_202C_202C_200F_202C_200C_206B_206D_200F_202B_202E(IPluginLog P_0, string P_1, object[] P_2) { P_0.Warning(P_1, P_2); } static void _200E_202B_202D_200C_206B_200F_202E_202D_206D_206F_202C_202E_206A_202A_206D_200E_202D_200D_202B_206A_206F_202C_206D_206E_200B_200E_206B_200F_200F_202C_206A_200E_206A_200F_206B_200B_202B_202C_200F_200F_202E(IAddonLifecycle P_0, AddonEvent P_1, string P_2, IAddonLifecycle.AddonEventDelegate P_3) { P_0.UnregisterListener(P_1, P_2, P_3); } static void _200B_202C_202A_200E_200F_202E_202C_206C_206F_206B_206F_206C_206E_200B_200C_200F_202B_206D_206B_206E_202D_202E_200E_200E_206D_202E_200C_200B_202B_202D_200D_202A_206B_202C_200F_206B_202A_206C_206E_200F_202E(object P_0) { GC.SuppressFinalize(P_0); } }