using System; using System.Collections; using System.Collections.Generic; using System.Runtime.CompilerServices; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game; using LLib.GameData; using LLib.Inventory; using LLib.Shop; using Lumina.Excel; using Lumina.Excel.Sheets; using Microsoft.Extensions.Logging; using Questionable.External; namespace Questionable.Controller.CustomDelivery; internal sealed class DeliveryPlannerService { private readonly SatisfactionSupplyHelper _supplyHelper; private readonly VendorResolverService _vendorResolver; private readonly DeliveryRewardCalculator _rewardCalculator; private readonly IDataManager _dataManager; private readonly Configuration _configuration; private readonly ILogger _logger; public DeliveryPlannerService(SatisfactionSupplyHelper supplyHelper, VendorResolverService vendorResolver, DeliveryRewardCalculator rewardCalculator, IDataManager dataManager, Configuration configuration, ILogger logger) { _supplyHelper = supplyHelper; _vendorResolver = vendorResolver; _rewardCalculator = rewardCalculator; _dataManager = dataManager; _configuration = configuration; _logger = logger; } [MethodImpl(MethodImplOptions.NoInlining)] public unsafe DeliveryPlan? CreatePlan(int npcIndex, EDeliverySlot slot) { int num = (_200D_206E_202C_202A_202A_202E_202E_206C_200D_200C_200E_200C_206B_206C_200D_200B_206B_206D_206C_202E_202A_206C_206E_200D_200B_206C_200D_200F_206B_202A_202C_202D_206A_206B_206F_200B_200F_202E_200F_200D_202E() ? (-1888935827) : (-1888935840)); uint rowId = default(uint); SatisfactionSupply subrow = default(SatisfactionSupply); Configuration.CustomDeliveryConfiguration.ECollectabilityTier collectabilityTier = default(Configuration.CustomDeliveryConfiguration.ECollectabilityTier); int num20 = default(int); int num21 = default(int); int num30 = default(int); SatisfactionSupplyActions.NpcState npcState = default(SatisfactionSupplyActions.NpcState); uint supplyIndex = default(uint); SatisfactionNpc row = default(SatisfactionNpc); uint num28 = default(uint); uint num29 = default(uint); Configuration.AchievementGoal value = default(Configuration.AchievementGoal); int num27 = default(int); int num9 = default(int); int num19 = default(int); VendorResolverService.RecipeInfo? recipe = default(VendorResolverService.RecipeInfo?); List list = default(List); ushort num7 = default(ushort); ushort num18 = default(ushort); ushort levelUnlock = default(ushort); int satisfactionRequired = default(int); int num26 = default(int); VendorResolverService.IngredientInfo current = default(VendorResolverService.IngredientInfo); int num15 = default(int); int count = default(int); int num14 = default(int); VendorResolverService.VendorInfo? vendor = default(VendorResolverService.VendorInfo?); while (true) { int num2 = num; int num3 = -1888935819; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { default: continue; case 14: rowId = subrow.Item.RowId; collectabilityTier = _configuration.CustomDeliveries.CollectabilityTier; num = ((collectabilityTier == Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Mid) ? (-1888935855) : (-1888935835)); continue; case 23: _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(-1441943308), new object[3] { npcIndex, num20, num21 }); return null; case 1: _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(-325747451), new object[1] { npcIndex }); return null; case 30: { uint rowId2 = subrow.Reward.RowId; bool isBonus = subrow.IsBonus; num30 = _rewardCalculator.MaxDeliveriesBeforeOvercap(rowId2, isBonus, _configuration.CustomDeliveries.CollectabilityTier); num = ((num30 > 0) ? (-1888935826) : (-1888935820)); continue; } case 39: _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(72727050), new object[1] { npcIndex }); return null; case 31: _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(350000111), new object[2] { npcIndex, npcState.Rank }); return null; case 40: supplyIndex = (uint)row.SatisfactionNpcParams[npcState.Rank].SupplyIndex; num28 = _202C_206E_206A_202A_206E_206D_206D_206C_200E_200C_206B_200C_202B_202E_200C_200B_206A_200D_202A_202D_202D_206D_206E_206A_206D_206F_200C_206C_206B_206B_202B_202E_206D_206A_206E_202A_202C_206F_200B_200E_202E(_supplyHelper, supplyIndex, num29)[(int)slot]; num = ((num28 != uint.MaxValue) ? (-1888935833) : (-1888935823)); continue; case 6: _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(1592384275), new object[3] { npcIndex, npcState.UsedDeliveries, value.TargetCount }); return null; case 18: num = (_dataManager.GetSubrowExcelSheet().TryGetSubrow(supplyIndex, (ushort)num28, out subrow) ? (-1888935813) : (-1888935852)); continue; case 29: num = ((num27 >= num9) ? (-1888935844) : (-1888935810)); continue; case 13: { ExcelSheet excelSheet = _dataManager.GetExcelSheet(); num3 = 1; num4 = npcIndex; int num22 = num4 ^ num3; int num23 = num4 & num3; num = (excelSheet.TryGetRow((uint)(num22 + (num23 + num23)), out row) ? (-1888935842) : (-1888935849)); continue; } case 35: num = ((_configuration.CustomDeliveries.ScripOvercapMode == Configuration.CustomDeliveryConfiguration.EScripOvercapMode.Ignore) ? (-1888935856) : (-1888935829)); continue; case 2: num19 = (int)value.TargetCount - npcState.UsedDeliveries; num = ((num19 <= 0) ? (-1888935821) : (-1888935836)); continue; case 16: num = ((collectabilityTier != Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Low) ? (-1888935824) : (-1888935818)); continue; case 37: recipe = null; list = new List(); if (slot == EDeliverySlot.Craft) { num = -1888935831; continue; } break; case 15: _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E(-349074918), Array.Empty()); return null; case 33: _206C_206F_206E_206A_206F_200F_202B_206D_206E_200D_202E_202D_206D_200B_200F_202B_202D_200F_200D_206C_202A_200C_200E_200E_206C_200D_206B_200F_206D_200E_202A_206C_200D_200B_202B_200B_202A_202C_202C_200F_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E(-583199100), new object[2] { supplyIndex, num28 }); return null; case 32: num7 = num18; num = ((rowId != 0) ? (-1888935837) : (-1888935811)); continue; case 36: num18 = subrow.CollectabilityMid; num = -1888935851; continue; case 19: _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(758096436), new object[3] { levelUnlock, slot, npcIndex }); return null; case 22: num20 = row.DeliveriesPerWeek - npcState.UsedDeliveries; num9 = _202E_200E_200B_202D_200C_200D_206B_202B_206F_202D_206F_200D_200E_200C_206B_202C_206A_202A_200F_206A_202A_200B_200B_202E_206F_202A_200C_200D_200D_200D_200D_206B_202E_202A_200B_206A_200C_206D_206D_200F_202E(num20, num21); num = ((num9 > 0) ? (-1888935822) : (-1888935838)); continue; case 17: num9 = _202E_200E_200B_202D_200C_200D_206B_202B_206F_202D_206F_200D_200E_200C_206B_202C_206A_202A_200F_206A_202A_200B_200B_202E_206F_202A_200C_200D_200D_200D_200D_206B_202E_202A_200B_206A_200C_206D_206D_200F_202E(num9, num19); num = -1888935850; continue; case 27: num = ((num30 >= num9) ? (-1888935856) : (-1888935812)); continue; case 9: _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(-252217524), new object[3] { num9, num30, npcIndex }); num9 = num30; num = -1888935856; continue; case 43: levelUnlock = row.LevelUnlock; num = (HasJobAtLevel(slot, levelUnlock) ? (-1888935843) : (-1888935834)); continue; case 8: _206C_206F_206E_206A_206F_200F_202B_206D_206E_200D_202E_202D_206D_200B_200F_202B_202D_200F_200D_206C_202A_200C_200E_200E_206C_200D_206B_200F_206D_200E_202A_206C_200D_200B_202B_200B_202A_202C_202C_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E(-1074922241), new object[2] { supplyIndex, num28 }); return null; case 12: npcState = _200F_206F_206A_200F_202C_206F_206E_200E_202B_200C_200B_200D_200B_202C_206D_202B_206E_200B_202C_202D_202D_200D_206D_202E_200B_206E_202A_202D_202A_206E_202D_200B_202E_202E_202A_200B_202B_202D_202E_206C_202E(npcIndex); num21 = _206F_206A_202D_202B_200F_206F_202E_206D_206F_200D_202D_206C_206C_206D_202C_206C_202B_202E_206D_202B_200D_202B_200D_200E_202E_206D_206B_206D_200E_202A_202A_206A_200C_202A_206F_202B_206C_206D_200E_200D_202E(); num29 = _200C_206C_200F_202B_206A_206F_200B_206C_202A_206F_206F_206C_206B_202B_200F_202A_206D_206A_200D_206E_202A_206A_206D_206C_206D_202C_206F_200D_202E_200D_200E_202D_200E_206F_202C_206E_202C_202E_202A_206F_202E(); num = ((npcState.Rank > 0) ? (-1888935853) : (-1888935830)); continue; case 10: num = -1888935840; continue; case 38: num = ((num21 > 0) ? (-1888935816) : (-1888935814)); continue; case 11: _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E(1847422502), new object[5] { num9, num27, npcState.SatisfactionCurrent, satisfactionRequired, num26 }); num9 = num27; num = -1888935844; continue; case 0: num27 = (satisfactionRequired - npcState.SatisfactionCurrent + num26 - 1) / num26; num = ((num27 <= 0) ? (-1888935844) : (-1888935832)); continue; case 34: _206C_206F_206E_206A_206F_200F_202B_206D_206E_200D_202E_202D_206D_200B_200F_202B_202D_200F_200D_206C_202A_200C_200E_200E_206C_200D_206B_200F_206D_200E_202A_206C_200D_200B_202B_200B_202A_202C_202C_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(-1005271434), new object[1] { npcIndex }); return null; case 28: recipe = _vendorResolver.ResolveRecipe(rowId); num = (recipe.HasValue ? (-1888935828) : (-1888935825)); continue; case 24: num = (IsNpcUnlocked(npcIndex) ? (-1888935815) : (-1888935854)); continue; case 42: { Configuration.CustomDeliveryConfiguration.ECollectabilityTier collectabilityTier2 = _configuration.CustomDeliveries.CollectabilityTier; num26 = _rewardCalculator.CalculateSatisfactionPerDelivery(subrow.Reward.RowId, subrow.IsBonus, collectabilityTier2); num = ((num26 <= 0) ? (-1888935844) : (-1888935819)); continue; } case 21: _206C_206F_206E_206A_206F_200F_202B_206D_206E_200D_202E_202D_206D_200B_200F_202B_202D_200F_200D_206C_202A_200C_200E_200E_206C_200D_206B_200F_206D_200E_202A_206C_200D_200B_202B_200B_202A_202C_202C_200F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E(929546920), Array.Empty()); return null; case 41: { num3 = 1; num4 = npcIndex; int num24 = num4 ^ num3; int num25 = num4 & num3; ushort key = (ushort)(num24 + (num25 + num25)); num = ((!_configuration.CustomDeliveries.AchievementGoals.TryGetValue(key, out value)) ? (-1888935850) : (-1888935839)); continue; } case 7: satisfactionRequired = row.SatisfactionNpcParams[npcState.Rank].SatisfactionRequired; num = ((satisfactionRequired <= 0) ? (-1888935844) : (-1888935841)); continue; case 26: _202E_202D_202C_206E_202C_206A_206E_202D_202E_202D_206C_200B_200E_202E_206C_200B_206A_202E_206B_206D_206B_200E_200B_200E_206B_206D_202A_206F_200C_202D_206E_206D_206C_206A_206B_200F_202E_200E_202B_200E_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E(-375018658), new object[1] { rowId }); return null; case 20: num = ((!value.Active) ? (-1888935850) : (-1888935817)); continue; case 3: num18 = subrow.CollectabilityLow; num = -1888935851; continue; case 5: num18 = subrow.CollectabilityHigh; num = -1888935851; continue; case 4: _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E(1585031772), new object[2] { npcIndex, slot }); return null; case 25: { int inventoryItemCount = InventoryManager.Instance()->GetInventoryItemCount(rowId, isHq: false, checkEquipped: true, checkArmory: true, (short)num7); int num8 = num9; num3 = inventoryItemCount; num4 = num8; int num10 = _200C_206C_200D_202C_202B_202C_206A_206E_200E_200E_202D_202A_202C_206D_206B_206D_206D_200B_202B_206A_206D_202D_206D_200C_206C_200D_200E_200D_200C_202C_206D_206F_206B_206D_202A_200C_202B_200B_200C_206A_202E(0, ~(~num4 + num3)); IEnumerator enumerator = recipe.Value.Ingredients.GetEnumerator(); try { num = -2147286294; while (true) { int num11 = num; num3 = -2147286291; num4 = num11; int num12 = num4 + num3; int num13 = num4 & num3; switch (num12 - (num13 + num13)) { case 2: num = -2147286294; break; case 1: { current = enumerator.Current; num15 = num10 * current.CountPerCraft; count = ((ItemHandle)current.ItemId).GetCount(); int num16 = num15; num3 = count; num4 = num16; num14 = _200C_206C_200D_202C_202B_202C_206A_206E_200E_200E_202D_202A_202C_206D_206B_206D_206D_200B_202B_206A_206D_202D_206D_200C_206C_200D_200E_200D_200C_202C_206D_206F_206B_206D_202A_200C_202B_200B_200C_206A_202E(0, ~(~num4 + num3)); vendor = null; num = ((num14 <= 0) ? (-2147286293) : (-2147286291)); break; } case 3: num = (vendor.HasValue ? (-2147286296) : (-2147286299)); break; case 6: num = ((num14 <= 0) ? (-2147286296) : (-2147286290)); break; case 7: num = (_202D_202B_206D_202B_202E_200E_200E_206F_202C_200E_200F_200E_200D_206B_202A_202C_206B_202E_202D_200F_200E_206C_200D_200D_202E_206C_202A_206A_200E_200D_202E_200E_206A_202E_206D_206D_206B_206B_202C_202B_202E((IEnumerator)enumerator) ? (-2147286292) : (-2147286295)); break; case 5: list.Add(new IngredientPlan { ItemId = current.ItemId, TotalNeeded = num15, InInventory = count, ToBuy = num14, Vendor = vendor }); num = -2147286294; break; case 0: vendor = _vendorResolver.ResolveVendor(current.ItemId); num = -2147286293; break; case 8: _206C_206F_206E_206A_206F_200F_202B_206D_206E_200D_202E_202D_206D_200B_200F_202B_202D_200F_200D_206C_202A_200C_200E_200E_206C_200D_206B_200F_206D_200E_202A_206C_200D_200B_202B_200B_202A_202C_202C_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E(1168604579), new object[3] { rowId, num14, current.ItemId }); return null; case 4: goto end_IL_097f; } continue; end_IL_097f: break; } } finally { num = ((enumerator == null) ? 903605072 : 903605073); while (true) { int num17 = num; num3 = 903605072; num4 = num17; switch ((num4 | num3) - (num4 & num3)) { case 2: num = 903605073; break; case 1: _206B_202C_200B_202D_202C_206A_202A_202E_200B_202D_200E_202B_202A_200D_206A_206E_202D_202A_202A_206D_200E_206D_202A_206B_206C_206A_200F_200E_206B_202E_200D_200E_206D_200D_206C_202E_202E_202D_206D_200C_202E((IDisposable)enumerator); num = 903605072; break; case 0: goto end_IL_0b81; } continue; end_IL_0b81: break; } } break; } } break; } DeliveryPlan result = new DeliveryPlan { NpcIndex = npcIndex, Slot = slot, ItemId = rowId, Collectability = num7, DeliveryCount = num9, Recipe = recipe, IngredientPlans = list }; int num31 = 0; using (List.Enumerator enumerator2 = list.GetEnumerator()) { num = -832133554; while (true) { int num32 = num; int num3 = -832133554; int num4 = num32; switch ((num4 | num3) - (num4 & num3)) { case 0: num = (enumerator2.MoveNext() ? (-832133553) : (-832133555)); break; case 1: { IngredientPlan current2 = enumerator2.Current; num31 += current2.ToBuy; num = -832133554; break; } case 2: num = -832133554; break; case 3: goto end_IL_0c22; } continue; end_IL_0c22: break; } } _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E(-251047374), new object[5] { npcIndex, slot, rowId, num9, num31 }); return result; } public bool IsNpcUnlocked(int npcIndex) { ExcelSheet excelSheet = _dataManager.GetExcelSheet(); int num = 1; int num2 = npcIndex; int num3 = num2 ^ num; int num4 = num2 & num; SatisfactionNpc row; int num5 = (excelSheet.TryGetRow((uint)(num3 + (num4 + num4)), out row) ? (-1323628219) : (-1323628220)); uint rowId = default(uint); while (true) { int num6 = num5; num = -1323628219; num2 = num6; int num7 = num2 + num; int num8 = num2 & num; switch (num7 - (num8 + num8)) { case 3: num5 = -1323628220; break; case 2: return true; case 0: rowId = row.QuestRequired.RowId; num5 = ((rowId != 0) ? (-1323628223) : (-1323628217)); break; case 1: return false; case 4: return QuestManager.IsQuestComplete((ushort)rowId); } } } private bool HasJobAtLevel(EDeliverySlot slot, ushort requiredLevel) { ExcelSheet excelSheet = _dataManager.GetExcelSheet(); int num; EClassJob[] array = default(EClassJob[]); int num8 = default(int); ClassJob row = default(ClassJob); EClassJob[] array2; switch (slot) { default: num = 208972121; goto IL_0034; case EDeliverySlot.Fish: array = new EClassJob[1] { EClassJob.Fisher }; num = 208972119; goto IL_0034; case EDeliverySlot.Gather: goto IL_00fb; case EDeliverySlot.Craft: goto IL_0192; IL_0034: while (true) { int num2 = num; int num3 = 208972117; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 4: goto IL_008a; case 12: num = 208972112; break; case 10: goto IL_00c2; case 7: goto end_IL_0034; case 6: goto IL_00fb; case 2: array = array; num8 = 0; num = 208972127; break; case 3: num = 208972121; break; case 1: { int num7 = num8; num3 = 1; num4 = num7; num8 = (num4 | num3) + (num4 & num3); num = 208972127; break; } case 11: return false; case 8: return true; case 5: array = Array.Empty(); num = 208972119; break; case 0: goto IL_0168; case 9: goto IL_0192; } continue; IL_0168: num = ((_202D_206B_206F_200C_200E_200F_202A_206D_202D_202D_202C_202D_206F_206F_202D_202E_202A_206B_202A_202D_206E_202D_200D_200D_202D_202A_200C_200B_200E_202E_200D_206A_206D_202B_206F_202D_200B_200E_206F_202A_202E((int)row.ExpArrayIndex) < requiredLevel) ? 208972116 : 208972125); continue; IL_00c2: num = ((num8 < array.Length) ? 208972113 : 208972126); continue; IL_008a: EClassJob rowId = array[num8]; num = ((!excelSheet.TryGetRow((uint)rowId, out row)) ? 208972116 : 208972117); continue; end_IL_0034: break; } goto case EDeliverySlot.Fish; IL_0192: array2 = new EClassJob[8]; _202A_200D_202C_202B_202D_202B_202B_202C_200F_202A_206F_200B_200D_202E_206E_202A_200B_200B_202D_206E_206B_202C_206C_200D_202A_206A_206F_200B_202E_202E_200E_200B_206A_200C_206F_206D_202B_202B_206C_206C_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); array = array2; num = 208972119; goto IL_0034; IL_00fb: array = new EClassJob[2] { EClassJob.Miner, EClassJob.Botanist }; num = 208972119; goto IL_0034; } } public EDeliverySlot? AutoSelectSlot(int npcIndex, ArtisanIpc artisanIpc, AutoHookIpc autoHookIpc) { int num = ((!artisanIpc.IsAvailable()) ? 1675924989 : 1675924988); while (true) { int num2 = num; int num3 = 1675924986; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 0: num = ((!autoHookIpc.IsAvailable()) ? 1675924990 : 1675924985); break; case 4: return null; case 1: return EDeliverySlot.Gather; case 2: num = 1675924988; break; case 8: return EDeliverySlot.Fish; case 3: num = ((CreatePlan(npcIndex, EDeliverySlot.Fish) == null) ? 1675924990 : 1675924978); break; case 7: num = ((CreatePlan(npcIndex, EDeliverySlot.Gather) == null) ? 1675924986 : 1675924987); break; case 5: return EDeliverySlot.Craft; case 6: num = ((CreatePlan(npcIndex, EDeliverySlot.Craft) == null) ? 1675924989 : 1675924991); break; } } } static bool _200D_206E_202C_202A_202A_202E_202E_206C_200D_200C_200E_200C_206B_206C_200D_200B_206B_206D_206C_202E_202A_206C_206E_200D_200B_206C_200D_200F_206B_202A_202C_202D_206A_206B_206F_200B_200F_202E_200F_200D_202E() { return InventoryHelper.HasFreeInventorySlot(); } static void _206C_206F_206E_206A_206F_200F_202B_206D_206E_200D_202E_202D_206D_200B_200F_202B_202D_200F_200D_206C_202A_200C_200E_200E_206C_200D_206B_200F_206D_200E_202A_206C_200D_200B_202B_200B_202A_202C_202C_200F_202E(ILogger P_0, string P_1, object[] P_2) { P_0.LogWarning(P_1, P_2); } static void _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E(ILogger P_0, string P_1, object[] P_2) { P_0.LogDebug(P_1, P_2); } static SatisfactionSupplyActions.NpcState _200F_206F_206A_200F_202C_206F_206E_200E_202B_200C_200B_200D_200B_202C_206D_202B_206E_200B_202C_202D_202D_200D_206D_202E_200B_206E_202A_202D_202A_206E_202D_200B_202E_202E_202A_200B_202B_202D_202E_206C_202E(int P_0) { return SatisfactionSupplyActions.GetNpcState(P_0); } static int _206F_206A_202D_202B_200F_206F_202E_206D_206F_200D_202D_206C_206C_206D_202C_206C_202B_202E_206D_202B_200D_202B_200D_200E_202E_206D_206B_206D_200E_202A_202A_206A_200C_202A_206F_202B_206C_206D_200E_200D_202E() { return SatisfactionSupplyActions.GetRemainingAllowances(); } static uint _200C_206C_200F_202B_206A_206F_200B_206C_202A_206F_206F_206C_206B_202B_200F_202A_206D_206A_200D_206E_202A_206A_206D_206C_206D_202C_206F_200D_202E_200D_200E_202D_200E_206F_202C_206E_202C_202E_202A_206F_202E() { return SatisfactionSupplyActions.GetSupplySeed(); } static uint[] _202C_206E_206A_202A_206E_206D_206D_206C_200E_200C_206B_200C_202B_202E_200C_200B_206A_200D_202A_202D_202D_206D_206E_206A_206D_206F_200C_206C_206B_206B_202B_202E_206D_206A_206E_202A_202C_206F_200B_200E_202E(SatisfactionSupplyHelper P_0, uint P_1, uint P_2) { return P_0.CalculateRequestedItems(P_1, P_2); } static int _202E_200E_200B_202D_200C_200D_206B_202B_206F_202D_206F_200D_200E_200C_206B_202C_206A_202A_200F_206A_202A_200B_200B_202E_206F_202A_200C_200D_200D_200D_200D_206B_202E_202A_200B_206A_200C_206D_206D_200F_202E(int P_0, int P_1) { return Math.Min(P_0, P_1); } static void _202E_202D_202C_206E_202C_206A_206E_202D_202E_202D_206C_200B_200E_202E_206C_200B_206A_202E_206B_206D_206B_200E_200B_200E_206B_206D_202A_206F_200C_202D_206E_206D_206C_206A_206B_200F_202E_200E_202B_200E_202E(ILogger P_0, string P_1, object[] P_2) { P_0.LogError(P_1, P_2); } static int _200C_206C_200D_202C_202B_202C_206A_206E_200E_200E_202D_202A_202C_206D_206B_206D_206D_200B_202B_206A_206D_202D_206D_200C_206C_200D_200E_200D_200C_202C_206D_206F_206B_206D_202A_200C_202B_200B_200C_206A_202E(int P_0, int P_1) { return Math.Max(P_0, P_1); } static bool _202D_202B_206D_202B_202E_200E_200E_206F_202C_200E_200F_200E_200D_206B_202A_202C_206B_202E_202D_200F_200E_206C_200D_200D_202E_206C_202A_206A_200E_200D_202E_200E_206A_202E_206D_206D_206B_206B_202C_202B_202E(IEnumerator P_0) { return P_0.MoveNext(); } static void _206B_202C_200B_202D_202C_206A_202A_202E_200B_202D_200E_202B_202A_200D_206A_206E_202D_202A_202A_206D_200E_206D_202A_206B_206C_206A_200F_200E_206B_202E_200D_200E_206D_200D_206C_202E_202E_202D_206D_200C_202E(IDisposable P_0) { P_0.Dispose(); } static void _202A_200D_202C_202B_202D_202B_202B_202C_200F_202A_206F_200B_200D_202E_206E_202A_200B_200B_202D_206E_206B_202C_206C_200D_202A_206A_206F_200B_202E_202E_200E_200B_206A_200C_206F_206D_202B_202B_206C_206C_202E(Array P_0, RuntimeFieldHandle P_1) { RuntimeHelpers.InitializeArray(P_0, P_1); } static short _202D_206B_206F_200C_200E_200F_202A_206D_202D_202D_202C_202D_206F_206F_202D_202E_202A_206B_202A_202D_206E_202D_200D_200D_202D_202A_200C_200B_200E_202E_200D_206A_206D_202B_206F_202D_200B_200E_206F_202A_202E(int P_0) { return PlayerStateHelper.GetClassJobLevel(P_0); } }