1
0
Fork 0
forked from aly/qstbak

muffin v7.5.6

This commit is contained in:
alydev 2026-08-17 20:27:25 +10:00
parent 6266f9e6b7
commit addf2d530f
619 changed files with 264792 additions and 446022 deletions

View file

@ -1,16 +1,21 @@
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.Client.Game;
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
public class RegularShopBase : IDisposable
{
private readonly IShopWindow _parentWindow;
@ -22,6 +27,17 @@ public class RegularShopBase
private readonly IAddonLifecycle _addonLifecycle;
private readonly ExcelSheet<Item> _itemSheet;
private long _purchaseDeadlineMs;
[CompilerGenerated]
private EventHandler<PurchaseCompletedEventArgs>? m_PurchaseCompleted;
private const int MaxPurchaseQuantity = 99;
private const int MaxWaitMs = 3000;
public ItemForSale? ItemForSale { get; set; }
public PurchaseState? PurchaseState { get; private set; }
@ -36,240 +52,596 @@ public class RegularShopBase
}
set
{
PurchaseState.IsAwaitingYesNo = value;
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 RegularShopBase(IShopWindow parentWindow, string addonName, IPluginLog pluginLog, IGameGui gameGui, IAddonLifecycle addonLifecycle)
public event EventHandler<PurchaseCompletedEventArgs>? PurchaseCompleted
{
[CompilerGenerated]
add
{
EventHandler<PurchaseCompletedEventArgs> 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<PurchaseCompletedEventArgs> eventHandler2 = eventHandler;
EventHandler<PurchaseCompletedEventArgs> value2 = (EventHandler<PurchaseCompletedEventArgs>)_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<PurchaseCompletedEventArgs> 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<PurchaseCompletedEventArgs> eventHandler2 = eventHandler;
EventHandler<PurchaseCompletedEventArgs> value2 = (EventHandler<PurchaseCompletedEventArgs>)_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<string>(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<string>(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<string>(-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<string>(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<string>(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<string>(990210437));
_parentWindow = parentWindow;
_addonName = addonName;
_pluginLog = pluginLog;
_gameGui = gameGui;
_addonLifecycle = addonLifecycle;
_addonLifecycle.RegisterListener(AddonEvent.PostSetup, _addonName, ShopPostSetup);
_addonLifecycle.RegisterListener(AddonEvent.PreFinalize, _addonName, ShopPreFinalize);
_addonLifecycle.RegisterListener(AddonEvent.PostUpdate, _addonName, ShopPostUpdate);
_itemSheet = dataManager.GetExcelSheet<Item>();
_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)
{
if (!_parentWindow.IsEnabled)
int num = (_parentWindow.IsEnabled ? (-1920873629) : (-1920873630));
while (true)
{
ItemForSale = null;
_parentWindow.IsOpen = false;
return;
}
_parentWindow.UpdateShopStock((AtkUnitBase*)args.Addon.Address);
PostUpdateShopStock();
if (ItemForSale != null)
{
_parentWindow.IsOpen = 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)
{
PurchaseState = null;
_parentWindow.RestoreExternalPluginState();
_parentWindow.IsOpen = false;
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)
{
if (!_parentWindow.IsEnabled)
int num = (_parentWindow.IsEnabled ? (-1011514953) : (-1011514956));
Vector2 valueOrDefault = default(Vector2);
Vector2? position = default(Vector2?);
short num6 = default(short);
short num5 = default(short);
while (true)
{
ItemForSale = null;
_parentWindow.IsOpen = false;
return;
}
_parentWindow.UpdateShopStock((AtkUnitBase*)args.Addon.Address);
PostUpdateShopStock();
if (ItemForSale != null)
{
AtkUnitBase* address = (AtkUnitBase*)args.Addon.Address;
short num = 0;
short num2 = 0;
address->GetPosition(&num, &num2);
ushort num3 = 0;
ushort num4 = 0;
address->GetSize(&num3, &num4, scaled: true);
num += (short)num3;
Vector2? position = _parentWindow.Position;
if (position.HasValue)
int num2 = num;
int num3 = -1011514953;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
Vector2 valueOrDefault = position.GetValueOrDefault();
if ((short)valueOrDefault.X != num || (short)valueOrDefault.Y != num2)
{
_parentWindow.Position = new Vector2(num, num2);
}
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;
}
_parentWindow.IsOpen = true;
}
else
{
_parentWindow.IsOpen = false;
}
}
private void PostUpdateShopStock()
{
if (ItemForSale != null && PurchaseState != null)
int num = ((ItemForSale == null) ? 662202299 : 662202301);
int ownedItems = default(int);
while (true)
{
int ownedItems = (int)ItemForSale.OwnedItems;
if (PurchaseState.OwnedItems != ownedItems)
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.NextStep = DateTime.Now.AddSeconds(0.25);
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 unsafe int GetItemCount(uint itemId)
public virtual int GetCurrencyCount(uint currencyItemId)
{
return InventoryManager.Instance()->GetInventoryItemCount(itemId, isHq: false, checkEquipped: false, checkArmory: false, 0);
return InventoryHelper.GetItemCount(currencyItemId);
}
public int GetMaxItemsToPurchase()
{
if (ItemForSale == null)
int num = ((ItemForSale != null) ? (-1965181968) : (-1965181966));
int maxHoldableQuantity = default(int);
while (true)
{
return 0;
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;
}
}
return (int)(_parentWindow.GetCurrencyCount() / ItemForSale.Price);
}
public void CancelAutoPurchase()
{
PurchaseState = null;
_parentWindow.RestoreExternalPluginState();
}
public void StartAutoPurchase(int toPurchase)
{
PurchaseState = new PurchaseState((int)ItemForSale.OwnedItems + toPurchase, (int)ItemForSale.OwnedItems);
_parentWindow.SaveExternalPluginState();
}
public unsafe void HandleNextPurchaseStep()
{
if (ItemForSale == null || PurchaseState == null)
int num = ((ItemForSale == null) ? (-639138042) : (-639138043));
while (true)
{
return;
}
int num = DetermineMaxStackSize(ItemForSale.ItemId);
if (num == 0 && !HasFreeInventorySlot())
{
_pluginLog.Warning("No free inventory slots, can't buy more " + ItemForSale.ItemName);
PurchaseState = null;
_parentWindow.RestoreExternalPluginState();
}
else if (!PurchaseState.IsComplete)
{
if (PurchaseState.NextStep <= DateTime.Now && _gameGui.TryGetAddonByName<AtkUnitBase>(_addonName, out var addonPtr))
int num2 = num;
int num3 = -639138041;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
int num2 = Math.Min(PurchaseState.ItemsLeftToBuy, num);
_pluginLog.Information($"Buying {num2}x {ItemForSale.ItemName}");
_parentWindow.TriggerPurchase(addonPtr, num2);
PurchaseState.NextStep = DateTime.MaxValue;
PurchaseState.IsAwaitingYesNo = true;
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;
}
}
else
}
[MethodImpl(MethodImplOptions.NoInlining)]
public void StartAutoPurchase(int toPurchase)
{
int num = ((ItemForSale != null) ? 547091109 : 547091110);
while (true)
{
_pluginLog.Information($"Stopping item purchase (desired = {PurchaseState.DesiredItems}, owned = {PurchaseState.OwnedItems})");
PurchaseState = null;
_parentWindow.RestoreExternalPluginState();
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<string>(-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<string>(-1851945026), ItemForSale.ItemName), Array.Empty<object>());
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<string>(-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<string>(-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<string>(-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<object>());
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<AtkUnitBase>(_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<string>(-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<string>(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<object>());
_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<string>(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<string>(-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<string>(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<object>());
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()
{
_addonLifecycle.UnregisterListener(AddonEvent.PostSetup, _addonName, ShopPostSetup);
_addonLifecycle.UnregisterListener(AddonEvent.PreFinalize, _addonName, ShopPreFinalize);
_addonLifecycle.UnregisterListener(AddonEvent.PostUpdate, _addonName, ShopPostUpdate);
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);
}
public bool HasFreeInventorySlot()
void IDisposable.Dispose()
{
return CountFreeInventorySlots() > 0;
//ILSpy generated this explicit interface implementation from .override directive in Dispose
this.Dispose();
}
public unsafe int CountFreeInventorySlots()
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)
{
InventoryManager* ptr = InventoryManager.Instance();
if (ptr == null)
{
return 0;
}
int num = 0;
for (InventoryType inventoryType = InventoryType.Inventory1; inventoryType <= InventoryType.Inventory4; inventoryType++)
{
InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(inventoryType);
for (int i = 0; i < inventoryContainer->Size; i++)
{
InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(i);
if (inventorySlot == null || inventorySlot->ItemId == 0)
{
num++;
}
}
}
return num;
ArgumentNullException.ThrowIfNull(P_0, P_1);
}
private unsafe int DetermineMaxStackSize(uint itemId)
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)
{
InventoryManager* ptr = InventoryManager.Instance();
if (ptr == null)
{
return 0;
}
int num = 0;
for (InventoryType inventoryType = InventoryType.Inventory1; inventoryType <= InventoryType.Inventory4; inventoryType++)
{
InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(inventoryType);
for (int i = 0; i < inventoryContainer->Size; i++)
{
InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(i);
if (inventorySlot == null || inventorySlot->ItemId == 0)
{
return 99;
}
if (inventorySlot->ItemId == itemId)
{
num += 999 - inventorySlot->Quantity;
if (num >= 99)
{
break;
}
}
}
}
return Math.Min(99, num);
ArgumentException.ThrowIfNullOrEmpty(P_0, P_1);
}
public unsafe int CountInventorySlotsWithCondition(uint itemId, Predicate<int> predicate)
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)
{
ArgumentNullException.ThrowIfNull(predicate, "predicate");
InventoryManager* ptr = InventoryManager.Instance();
if (ptr == null)
{
return 0;
}
int num = 0;
for (InventoryType inventoryType = InventoryType.Inventory1; inventoryType <= InventoryType.Inventory4; inventoryType++)
{
InventoryContainer* inventoryContainer = ptr->GetInventoryContainer(inventoryType);
for (int i = 0; i < inventoryContainer->Size; i++)
{
InventoryItem* inventorySlot = inventoryContainer->GetInventorySlot(i);
if (inventorySlot != null && inventorySlot->ItemId != 0 && inventorySlot->ItemId == itemId && predicate(inventorySlot->Quantity))
{
num++;
}
}
}
return num;
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);
}
}