using System; using System.Collections; using System.Collections.Generic; using System.Collections.Immutable; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Runtime.CompilerServices; using Dalamud.Game; using Dalamud.Game.Text.SeStringHandling; using Dalamud.Plugin.Services; using Dalamud.Utility; using FFXIVClientStructs.FFXIV.Client.Game.UI; using Lumina.Excel; using Lumina.Excel.Sheets; using Lumina.Text.ReadOnly; using Microsoft.Extensions.Logging; using Questionable.Model.Questing; namespace Questionable.Data; internal sealed class DutyUnlockData { private static class ContentTypeIds { public const uint Dungeon = 2u; public const uint Guildhest = 3u; public const uint Trial = 4u; public const uint Raid = 5u; public const uint PvP = 6u; public const uint QuestBattle = 7u; public const uint DeepDungeon = 21u; public const uint AllianceRaid = 26u; public const uint Ultimate = 28u; public const uint VCDungeonFinder = 29u; public const uint Criterion = 30u; public const uint CriterionSavage = 31u; } private static class ContentMemberTypeIds { public const byte LightParty = 2; public const byte FullParty = 3; public const byte Alliance = 4; } [CompilerGenerated] private sealed class _003CGetDutiesUnlockedByQuest_003Ed__30 : IEnumerable, IEnumerable, IEnumerator, IEnumerator, IDisposable { private int _003C_003E1__state; private DutyInfo _003C_003E2__current; private int _003C_003El__initialThreadId; public DutyUnlockData _003C_003E4__this; private QuestId questId; public QuestId _003C_003E3__questId; private ImmutableList.Enumerator _003C_003E7__wrap1; DutyInfo IEnumerator.Current { [DebuggerHidden] get { return _003C_003E2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return _003C_003E2__current; } } [DebuggerHidden] public _003CGetDutiesUnlockedByQuest_003Ed__30(int _003C_003E1__state) { this._003C_003E1__state = _003C_003E1__state; _003C_003El__initialThreadId = _200F_200B_202A_202A_206B_202C_200C_206A_200B_206B_206E_202B_206C_206A_202E_200C_202E_206B_200F_202E_206F_200B_200C_202B_206B_200B_200B_206B_202A_200D_200E_206B_206E_202D_202E_206F_202A_206E_202D_206E_202E(); } [DebuggerHidden] void IDisposable.Dispose() { int num = _003C_003E1__state; int num2 = ((num == -3) ? 1836799872 : 1836799875); while (true) { int num3 = num2; int num4 = 1836799874; int num5 = num3; switch ((num5 | num4) - (num5 & num4)) { default: continue; case 0: num2 = 1836799875; continue; case 1: if (num == 1) { num2 = 1836799872; continue; } break; case 2: try { } finally { _003C_003Em__Finally1(); } break; } break; } _003C_003E7__wrap1 = default(ImmutableList.Enumerator); _003C_003E1__state = -2; } private bool MoveNext() { try { int num = _003C_003E1__state; DutyUnlockData dutyUnlockData = _003C_003E4__this; int num2 = ((num == 0) ? (-1847566198) : (-1847566200)); ImmutableList value2 = default(ImmutableList); DutyInfo value = default(DutyInfo); while (true) { int num3 = num2; int num4 = -1847566194; int num5 = num3; int num6 = num5 + num4; int num7 = num5 & num4; switch (num6 - (num7 + num7)) { case 1: return false; case 4: _003C_003E1__state = -1; num2 = ((!dutyUnlockData._questToDuties.TryGetValue(questId, out value2)) ? (-1847566197) : (-1847566196)); break; case 0: num2 = -1847566200; break; case 7: _003C_003E1__state = -3; num2 = -1847566201; break; case 2: _003C_003E7__wrap1 = value2.GetEnumerator(); _003C_003E1__state = -3; num2 = -1847566201; break; case 6: num2 = ((num == 1) ? (-1847566199) : (-1847566193)); break; case 10: _003C_003Em__Finally1(); _003C_003E7__wrap1 = default(ImmutableList.Enumerator); num2 = -1847566197; break; case 3: _003C_003E2__current = value; _003C_003E1__state = 1; return true; case 9: num2 = (_003C_003E7__wrap1.MoveNext() ? (-1847566202) : (-1847566204)); break; case 8: { uint current = _003C_003E7__wrap1.Current; num2 = ((!dutyUnlockData._duties.TryGetValue(current, out value)) ? (-1847566201) : (-1847566195)); break; } case 5: return false; } } } catch { //try-fault ((IDisposable)this).Dispose(); throw; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } private void _003C_003Em__Finally1() { _003C_003E1__state = -1; ((IDisposable)_003C_003E7__wrap1/*cast due to .constrained prefix*/).Dispose(); } [DebuggerHidden] void IEnumerator.Reset() { throw _200E_202E_206F_200C_200B_200F_200E_206C_206C_200B_202A_200B_202D_200C_200B_206C_202C_206E_200E_202A_200F_206A_202C_206F_206C_206B_206D_206D_200D_202B_202C_200F_200B_206C_200E_206E_200B_206E_206C_202D_202E(); } [DebuggerHidden] IEnumerator IEnumerable.GetEnumerator() { int num = ((_003C_003E1__state != -2) ? 240060194 : 240060192); _003CGetDutiesUnlockedByQuest_003Ed__30 _003CGetDutiesUnlockedByQuest_003Ed__ = default(_003CGetDutiesUnlockedByQuest_003Ed__30); while (true) { int num2 = num; int num3 = 240060194; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 3: _003CGetDutiesUnlockedByQuest_003Ed__.questId = _003C_003E3__questId; return _003CGetDutiesUnlockedByQuest_003Ed__; case 0: _003CGetDutiesUnlockedByQuest_003Ed__ = new _003CGetDutiesUnlockedByQuest_003Ed__30(0) { _003C_003E4__this = _003C_003E4__this }; num = 240060193; break; case 1: _003C_003E1__state = 0; _003CGetDutiesUnlockedByQuest_003Ed__ = this; num = 240060193; break; case 2: num = ((_003C_003El__initialThreadId != _200F_200B_202A_202A_206B_202C_200C_206A_200B_206B_206E_202B_206C_206A_202E_200C_202E_206B_200F_202E_206F_200B_200C_202B_206B_200B_200B_206B_202A_200D_200E_206B_206E_202D_202E_206F_202A_206E_202D_206E_202E()) ? 240060194 : 240060195); break; case 4: num = 240060192; break; } } } [DebuggerHidden] IEnumerator IEnumerable.GetEnumerator() { return ((IEnumerable)this).GetEnumerator(); } static int _200F_200B_202A_202A_206B_202C_200C_206A_200B_206B_206E_202B_206C_206A_202E_200C_202E_206B_200F_202E_206F_200B_200C_202B_206B_200B_200B_206B_202A_200D_200E_206B_206E_202D_202E_206F_202A_206E_202D_206E_202E() { return Environment.CurrentManagedThreadId; } static NotSupportedException _200E_202E_206F_200C_200B_200F_200E_206C_206C_200B_202A_200B_202D_200C_200B_206C_202C_206E_200E_202A_200F_206A_202C_206F_206C_206B_206D_206D_200D_202B_202C_200F_200B_206C_200E_206E_200B_206E_206C_202D_202E() { return new NotSupportedException(); } } private readonly ImmutableDictionary _duties; private readonly ImmutableDictionary> _questToDuties; private readonly ImmutableDictionary> _dutyToQuests; private readonly ILogger _logger; [MethodImpl(MethodImplOptions.NoInlining)] public DutyUnlockData(IDataManager dataManager, ILogger logger) { _logger = logger; ExcelSheet excelSheet = dataManager.GetExcelSheet(); ExcelSheet excelSheet2 = dataManager.GetExcelSheet(); ImmutableDictionary immutableDictionary = (from c in excelSheet.Where(delegate(ContentFinderCondition c) { int num3 = ((c.RowId == 0) ? 1025245727 : 1025245725); while (true) { int num4 = num3; int num5 = 1025245727; int num6 = num4; switch ((num6 | num5) - (num6 & num5)) { case 3: num3 = 1025245725; break; case 2: num3 = ((c.Content.RowId == 0) ? 1025245727 : 1025245726); break; case 0: return false; case 1: return c.ContentLinkType == 1; } } }) group c by c.Content.RowId).ToImmutableDictionary((IGrouping g) => g.Key, (IGrouping g) => g.First().RowId); Dictionary> dictionary = new Dictionary>(); Dictionary> dictionary2 = new Dictionary>(); IEnumerator enumerator = excelSheet2.Where((Quest q) => q.RowId != 0).GetEnumerator(); try { while (_202D_202A_202C_202E_200B_200F_206B_202D_200C_202A_206C_206B_202E_202B_200B_206A_200D_206C_206C_200C_202E_206E_206B_206A_200B_200C_200C_202D_206E_206C_202C_206A_202B_202A_202E_202B_200E_202D_200C_200C_202E((IEnumerator)enumerator)) { Quest current = enumerator.Current; uint rowId = current.InstanceContentUnlock.RowId; if (rowId != 0 && immutableDictionary.TryGetValue(rowId, out var value)) { QuestId questId = _206F_206A_206B_200D_202D_206F_206C_206A_206E_200F_202A_202D_200F_200E_206F_206C_202E_206E_200B_206A_206C_206A_202D_200F_200F_200B_200E_202A_200D_200F_206B_202E_202D_206F_206D_200D_206C_200B_206F_206C_202E(current.RowId); if (!dictionary.ContainsKey(questId)) { dictionary[questId] = new List(); } dictionary[questId].Add(value); if (!dictionary2.ContainsKey(value)) { dictionary2[value] = new List(); } dictionary2[value].Add(questId); } } } finally { if (enumerator != null) { _206E_206D_206E_202E_202C_202E_202B_206F_206F_200C_200B_206B_206E_206C_200B_206B_202B_206D_202C_200E_202B_202A_202E_200B_200F_202C_202B_206A_200F_202B_200F_206A_206D_202D_200F_202B_206A_206D_206F_206C_202E((IDisposable)enumerator); } } _questToDuties = dictionary.ToImmutableDictionary((KeyValuePair> x) => x.Key, (KeyValuePair> x) => x.Value.ToImmutableList()); _dutyToQuests = dictionary2.ToImmutableDictionary((KeyValuePair> x) => x.Key, (KeyValuePair> x) => x.Value.ToImmutableList()); Dictionary dictionary3 = new Dictionary(); ExcelSheet excelSheet3 = dataManager.GetExcelSheet(ClientLanguage.English); IEnumerator enumerator2 = excelSheet.Where(delegate(ContentFinderCondition x) { int num3 = ((x.RowId == 0) ? (-494713515) : (-494713514)); while (true) { int num4 = num3; int num5 = -494713516; int num6 = num4; int num7 = num6 + num5; int num8 = num6 & num5; switch (num7 - (num8 + num8)) { case 0: goto IL_004a; case 2: return x.Content.RowId != 0; case 1: return false; } continue; IL_004a: num3 = -494713514; } }).GetEnumerator(); try { while (_202D_202A_202C_202E_200B_200F_206B_202D_200C_202A_206C_206B_202E_202B_200B_206A_200D_206C_206C_200C_202E_206E_206B_206A_200B_200C_200C_202D_206E_206C_202C_206A_202B_202A_202E_202B_200E_202D_200C_200C_202E((IEnumerator)enumerator2)) { ContentFinderCondition current2 = enumerator2.Current; if (current2.ContentLinkType != 1) { continue; } ContentType? valueNullable = current2.ContentType.ValueNullable; if (!valueNullable.HasValue) { continue; } uint rowId2 = valueNullable.Value.RowId; int num = 6; int num2 = (int)rowId2; if ((uint)(~(~num2 + num)) <= 1u) { continue; } string text = FixName(_200B_202B_202C_202C_202A_206D_206A_200E_206D_206F_206B_200D_202D_206F_202D_206E_202A_202B_200C_202A_200D_202D_206F_200B_206F_200F_206D_206D_202E_206C_200C_202E_206E_200C_202C_200F_206B_200C_206B_206B_202E((object)_202A_200C_200E_200E_202A_206B_200E_200D_200B_200F_200C_202A_200E_202C_206D_206C_206E_200F_206C_206B_202D_202D_200F_206A_206C_206C_206F_202B_206C_200E_206A_206E_202D_200F_200C_206B_206A_202D_200D_202E_202E(current2.Name)), _202E_200C_206B_200F_200B_200B_200B_200E_206F_200F_202E_206F_206D_206F_200C_200B_202C_206D_200F_202D_206B_200C_200E_202D_202C_202B_202A_200B_202E_202A_200D_206A_200E_202A_200C_206D_200C_206D_206F_200C_202E(dataManager)); if (!_202D_206F_206E_206F_206C_206C_206A_206E_202B_206D_200C_202E_206C_200F_200E_200B_200E_200F_200F_200F_206E_206B_200E_206E_206D_206C_200F_206D_206E_206A_200B_206E_202C_206B_202C_206E_206C_200E_206A_202D_202E(text) && !IsExcludedContent(text, current2.RowId)) { List value2; ImmutableList unlockQuests = (dictionary2.TryGetValue(current2.RowId, out value2) ? value2.ToImmutableList() : ImmutableList.Empty); uint rowId3 = current2.ContentMemberType.RowId; ContentFinderCondition? rowOrDefault = excelSheet3.GetRowOrDefault(current2.RowId); string name = (rowOrDefault.HasValue ? _200B_202B_202C_202C_202A_206D_206A_200E_206D_206F_206B_200D_202D_206F_202D_206E_202A_202B_200C_202A_200D_202D_206F_200B_206F_200F_206D_206D_202E_206C_200C_202E_206E_200C_202C_200F_206B_200C_206B_206B_202E((object)_202A_200C_200E_200E_202A_206B_200E_200D_200B_200F_200C_202A_200E_202C_206D_206C_206E_200F_206C_206B_202D_202D_200F_206A_206C_206C_206F_202B_206C_200E_206A_206E_202D_200F_200C_206B_206A_202D_200D_202E_202E(rowOrDefault.GetValueOrDefault().Name)) : null) ?? text; EDutyCategory? eDutyCategory = DetermineDutyCategory(rowId2, name, current2.HighEndDuty, current2.RowId, (byte)rowId3, current2.ContentLinkType); if (eDutyCategory.HasValue) { DutyInfo value3 = new DutyInfo(current2.RowId, current2.Content.RowId, text, rowId2, _200B_202B_202C_202C_202A_206D_206A_200E_206D_206F_206B_200D_202D_206F_202D_206E_202A_202B_200C_202A_200D_202D_206F_200B_206F_200F_206D_206D_202E_206C_200C_202E_206E_200C_202C_200F_206B_200C_206B_206B_202E((object)_202A_200C_200E_200E_202A_206B_200E_200D_200B_200F_200C_202A_200E_202C_206D_206C_206E_200F_206C_206B_202D_202D_200F_206A_206C_206C_206F_202B_206C_200E_206A_206E_202D_200F_200C_206B_206A_202D_200D_202E_202E(valueNullable.Value.Name)), current2.ClassJobLevelRequired, current2.ItemLevelRequired, unlockQuests, current2.HighEndDuty, eDutyCategory.Value); dictionary3[current2.RowId] = value3; } } } } finally { if (enumerator2 != null) { _206E_206D_206E_202E_202C_202E_202B_206F_206F_200C_200B_206B_206E_206C_200B_206B_202B_206D_202C_200E_202B_202A_202E_200B_200F_202C_202B_206A_200F_202B_200F_206A_206D_202D_200F_202B_206A_206D_206F_206C_202E((IDisposable)enumerator2); } } _duties = dictionary3.ToImmutableDictionary(); _206C_206C_206E_206B_206D_200D_206C_200B_206D_206F_206F_200D_202D_206C_200D_202C_206C_206F_202A_200F_202D_206F_206B_200C_202C_206A_206C_200F_200B_202E_206F_202A_202D_206C_200F_200E_206E_200C_206E_200F_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(-947520940), new object[2] { _duties.Count, _questToDuties.Values.Sum((ImmutableList x) => x.Count) }); } private static bool IsExcludedContent(string name, uint cfcId) { int num = 69; int num2 = (int)cfcId; int num3 = (((uint)(~(~num2 + num)) > 2u) ? (-657110077) : (-657110076)); bool flag = default(bool); while (true) { int num4 = num3; num = -657110080; num2 = num4; switch ((num2 | num) - (num2 & num)) { case 2: return true; case 4: flag = true; num3 = -657110079; break; case 5: return false; case 1: num3 = ((!flag) ? (-657110075) : (-657110078)); break; case 0: num3 = -657110076; break; case 3: flag = false; num3 = -657110079; break; } } } [MethodImpl(MethodImplOptions.NoInlining)] private static EDutyCategory? DetermineDutyCategory(uint contentTypeId, string name, bool isHighEndDuty, uint cfcId, byte contentMemberType, byte contentLinkType) { int num = ((!_206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(name, 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(-1946947024), StringComparison.OrdinalIgnoreCase)) ? 1981410498 : 1981410526); while (true) { int num2 = num; int num3 = 1981410514; int num4 = num2; int num5; switch ((num4 | num3) - (num4 & num3)) { case 14: return EDutyCategory.ExtremeTrial; case 0: return EDutyCategory.SavageRaid; case 2: num = ((!_206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(name, 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(-829560876), StringComparison.OrdinalIgnoreCase)) ? 1981410511 : 1981410523); break; case 4: num = ((!_206B_206B_206D_202A_200E_200F_200C_200D_206D_202D_200D_202D_200F_206A_200C_200F_202E_206A_206B_206D_202B_200F_202E_202E_202C_206F_202C_202A_200F_202C_200C_202B_200E_200B_200D_200D_202B_202B_200B_202C_202E(name, 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(576666474), StringComparison.OrdinalIgnoreCase)) ? 1981410519 : 1981410505); break; case 38: return EDutyCategory.NormalRaid; case 42: goto IL_0162; case 32: goto IL_016a; case 13: return EDutyCategory.UnrealTrial; case 37: goto IL_0179; case 5: return EDutyCategory.DeepDungeon; case 31: num = ((!isHighEndDuty) ? 1981410499 : 1981410516); break; case 9: return EDutyCategory.HardDungeon; case 18: goto IL_01c0; case 33: return null; case 22: num = ((!(_206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(name, 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(-805469566), StringComparison.OrdinalIgnoreCase) || isHighEndDuty)) ? 1981410548 : 1981410517); break; case 26: return EDutyCategory.CriterionSavage; case 24: return EDutyCategory.CriterionDungeon; case 20: return EDutyCategory.HardTrial; case 15: num = (_206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(name, 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(2100853888), StringComparison.OrdinalIgnoreCase) ? 1981410524 : 1981410521); break; case 29: return EDutyCategory.Dungeon; case 23: num = ((!_206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(name, 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(2079680527), StringComparison.OrdinalIgnoreCase)) ? 1981410520 : 1981410502); break; case 3: num3 = 21; num4 = (int)contentTypeId; switch (~(~num4 + num3)) { case 0: break; case 10: goto IL_0162; case 7: goto IL_016a; case 5: goto IL_0179; case 1: case 2: case 3: case 4: case 6: goto IL_01c0; default: goto IL_02d5; case 8: case 9: goto IL_0301; } goto case 4; case 28: num5 = (_206D_206D_200E_206C_206F_206B_206E_206A_202D_202A_206E_206E_206C_200D_206C_202C_206E_202C_206F_202B_200B_206B_200E_202E_200C_206E_200F_206C_200E_206C_200C_200C_202E_206B_200E_200E_200E_202A_202B_202B_202E(name, 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(1784613949), StringComparison.OrdinalIgnoreCase) ? 1 : 0); goto IL_0335; case 40: goto IL_0301; case 7: return EDutyCategory.SavageRaid; case 43: num5 = 1; goto IL_0335; case 11: num = ((!_206D_206D_200E_206C_206F_206B_206E_206A_202D_202A_206E_206E_206C_200D_206C_202C_206E_202C_206F_202B_200B_206B_200E_202E_200C_206E_200F_206C_200E_206C_200C_200C_202E_206B_200E_200E_200E_202A_202B_202B_202E(name, 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(-707311042), StringComparison.OrdinalIgnoreCase)) ? 1981410547 : 1981410524); break; case 25: num = (_206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(name, 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(-1824697190), StringComparison.OrdinalIgnoreCase) ? 1981410553 : 1981410510); break; case 16: num3 = 2; num4 = (int)contentTypeId; switch (~(~num4 + num3)) { case 0: break; default: goto IL_03c8; case 2: goto IL_03db; case 1: goto IL_0407; case 3: goto IL_0425; } goto case 2; case 12: return EDutyCategory.ChaoticAllianceRaid; case 8: goto IL_03db; case 36: goto IL_0407; case 21: return EDutyCategory.ExtremeTrial; case 27: return EDutyCategory.QuantumBattle; case 6: return EDutyCategory.ChaoticAllianceRaid; case 39: goto IL_0425; case 19: num = 1981410526; break; case 30: num = ((!_206D_206D_200E_206C_206F_206B_206E_206A_202D_202A_206E_206E_206C_200D_206C_202C_206E_202C_206F_202B_200B_206B_200E_202E_200C_206E_200F_206C_200E_206C_200C_200C_202E_206B_200E_200E_200E_202A_202B_202B_202E(name, 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(-85328213), StringComparison.OrdinalIgnoreCase)) ? 1981410555 : 1981410506); break; case 10: return EDutyCategory.Trial; case 1: return EDutyCategory.AllianceRaid; case 34: num = 1981410496; break; case 17: return EDutyCategory.AllianceRaid; case 41: return EDutyCategory.VariantDungeon; case 35: { return EDutyCategory.ChaoticAllianceRaid; } IL_0425: num = ((contentMemberType != 4) ? 1981410500 : 1981410509); break; IL_0407: return EDutyCategory.Guildhest; IL_03db: num = ((!_206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(name, 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(-1732316761), StringComparison.OrdinalIgnoreCase)) ? 1981410507 : 1981410527); break; IL_016a: return EDutyCategory.Ultimate; IL_03c8: num = 1981410513; break; IL_01c0: num = ((!_206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(name, 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(-805469566), StringComparison.OrdinalIgnoreCase)) ? 1981410525 : 1981410514); break; IL_0162: return EDutyCategory.CriterionSavage; IL_0335: num = ((((uint)num5 | (isHighEndDuty ? 1u : 0u)) == 0) ? 1981410501 : 1981410503); break; IL_0301: num = ((!_206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(name, 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(-1526728021), StringComparison.OrdinalIgnoreCase)) ? 1981410508 : 1981410504); break; IL_02d5: num = 1981410544; break; IL_0179: num = ((!isHighEndDuty) ? 1981410515 : 1981410545); break; } } } private static string FixName(string name, ClientLanguage language) { int num = (_200F_200C_202B_206C_200D_200B_200B_206C_206E_200F_200F_206D_200B_200B_200D_202C_202C_206F_206B_200F_200E_202A_206A_200D_202C_206A_202B_206B_200B_202C_200E_202B_202C_206B_202A_202D_200C_202C_206C_202E(name) ? (-948301931) : (-948301932)); while (true) { int num2 = num; int num3 = -948301931; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 2: return _202E_206C_200C_206A_202E_202B_200F_206A_202C_202A_200B_202E_206C_206B_202E_200F_202A_202A_202C_202E_206F_206A_206A_206F_202A_206B_202A_200B_206B_200D_206E_206D_200C_206A_206D_202C_202C_202D_202C_206D_202E(_206D_200D_200B_206B_200C_202C_202D_206B_206C_200B_200B_206D_206E_200F_206D_202D_202A_206B_202A_206D_206A_202B_206D_206F_206B_206E_206A_206A_202A_202B_202D_206B_200E_206C_202C_206F_200F_206F_202D_206E_202E(_200D_202A_206D_206D_200D_206F_206A_206D_202B_200F_202E_200F_202C_202E_200B_202E_200B_200B_200B_206A_206B_206F_206A_200E_206B_202A_200E_206A_202D_200E_206D_206B_202C_202C_206D_200E_202A_206A_200F_206D_202E(_206A_206A_200E_202B_206A_202A_200E_206E_202D_202A_202B_206B_206B_202C_200D_202A_206B_206B_206E_200C_200C_206F_202E_202C_206A_202A_206A_206E_200F_206A_200C_202B_202A_200C_202A_206D_200F_206B_206A_206F_202E(name, 0).ToString(), _202D_200E_200E_200D_206F_200D_200C_200F_200D_200E_206A_200C_202E_206E_200D_202B_206B_200B_200C_202A_200F_206E_200C_206E_200B_202A_202C_206F_206A_200D_200E_202D_200C_206E_206F_202E_200E_200C_202A_206B_202E())), _206B_202A_202A_206C_200C_200F_202C_206F_202A_202D_200F_200E_200B_206E_202B_200C_202E_206F_206E_202D_200F_202C_200C_202B_206F_206F_206C_202C_206A_202B_206A_206D_202B_202D_206E_200B_206F_202E_200C_202E(name, 1)); case 1: num = ((language == ClientLanguage.English) ? (-948301929) : (-948301931)); break; case 3: num = -948301932; break; case 0: return name; } } } public IEnumerable GetAllDuties() { return _duties.Values; } public IEnumerable GetDutiesByContentType(uint contentTypeId) { return _duties.Values.Where((DutyInfo d) => d.ContentTypeId == contentTypeId); } public IEnumerable GetDutiesByCategory(EDutyCategory category) { return _duties.Values.Where((DutyInfo d) => d.DutyCategory == category); } public IEnumerable GetDungeons() { return GetDutiesByCategory(EDutyCategory.Dungeon); } public IEnumerable GetHardDungeons() { return GetDutiesByCategory(EDutyCategory.HardDungeon); } public IEnumerable GetGuildhests() { return GetDutiesByCategory(EDutyCategory.Guildhest); } public IEnumerable GetTrials() { return GetDutiesByCategory(EDutyCategory.Trial); } public IEnumerable GetHardTrials() { return GetDutiesByCategory(EDutyCategory.HardTrial); } public IEnumerable GetExtremeTrials() { return GetDutiesByCategory(EDutyCategory.ExtremeTrial); } public IEnumerable GetUnrealTrials() { return GetDutiesByCategory(EDutyCategory.UnrealTrial); } public IEnumerable GetNormalRaids() { return GetDutiesByCategory(EDutyCategory.NormalRaid); } public IEnumerable GetSavageRaids() { return GetDutiesByCategory(EDutyCategory.SavageRaid); } public IEnumerable GetUltimateRaids() { return GetDutiesByCategory(EDutyCategory.Ultimate); } public IEnumerable GetAllianceRaids() { return GetDutiesByCategory(EDutyCategory.AllianceRaid); } public IEnumerable GetChaoticAllianceRaids() { return GetDutiesByCategory(EDutyCategory.ChaoticAllianceRaid); } public IEnumerable GetDeepDungeons() { return GetDutiesByCategory(EDutyCategory.DeepDungeon); } public IEnumerable GetVariantDungeons() { return GetDutiesByCategory(EDutyCategory.VariantDungeon); } public IEnumerable GetCriterionDungeons() { return GetDutiesByCategory(EDutyCategory.CriterionDungeon); } public IEnumerable GetCriterionSavageDungeons() { return GetDutiesByCategory(EDutyCategory.CriterionSavage); } public IEnumerable GetQuantumBattles() { return GetDutiesByCategory(EDutyCategory.QuantumBattle); } [IteratorStateMachine(typeof(_003CGetDutiesUnlockedByQuest_003Ed__30))] public IEnumerable GetDutiesUnlockedByQuest(QuestId questId) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new _003CGetDutiesUnlockedByQuest_003Ed__30(-2) { _003C_003E4__this = this, _003C_003E3__questId = questId }; } public IEnumerable GetUnlockQuestsForDuty(uint cfcId) { ImmutableList value; int num = ((!_dutyToQuests.TryGetValue(cfcId, out value)) ? (-140897364) : (-140897363)); while (true) { int num2 = num; int num3 = -140897364; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 0: return Array.Empty(); case 1: return value; case 2: goto IL_0056; } continue; IL_0056: num = -140897363; } } public bool IsDutyUnlocked(uint cfcId) { DutyInfo value; int num = (_duties.TryGetValue(cfcId, out value) ? (-1021007209) : (-1021007212)); while (true) { int num2 = num; int num3 = -1021007211; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 2: return UIState.IsInstanceContentUnlocked(value.ContentId); case 1: return false; case 0: goto IL_005e; } continue; IL_005e: num = -1021007212; } } public static bool IsContentUnlocked(uint contentId) { return UIState.IsInstanceContentUnlocked(contentId); } public bool TryGetDuty(uint cfcId, [NotNullWhen(true)] out DutyInfo? duty) { return _duties.TryGetValue(cfcId, out duty); } public DutyInfo? GetDuty(uint cfcId) { return _duties.GetValueOrDefault(cfcId); } public IEnumerable GetUnlockedDuties() { return _duties.Values.Where((DutyInfo d) => UIState.IsInstanceContentUnlocked(d.ContentId)); } public IEnumerable GetLockedDuties() { return _duties.Values.Where((DutyInfo d) => !UIState.IsInstanceContentUnlocked(d.ContentId)); } public IEnumerable GetDutiesWithUnlockQuests() { return _duties.Values.Where((DutyInfo d) => d.UnlockQuests.Count > 0); } static QuestId _206F_206A_206B_200D_202D_206F_206C_206A_206E_200F_202A_202D_200F_200E_206F_206C_202E_206E_200B_206A_206C_206A_202D_200F_200F_200B_200E_202A_200D_200F_206B_202E_202D_206F_206D_200D_206C_200B_206F_206C_202E(uint P_0) { return QuestId.FromRowId(P_0); } static bool _202D_202A_202C_202E_200B_200F_206B_202D_200C_202A_206C_206B_202E_202B_200B_206A_200D_206C_206C_200C_202E_206E_206B_206A_200B_200C_200C_202D_206E_206C_202C_206A_202B_202A_202E_202B_200E_202D_200C_200C_202E(IEnumerator P_0) { return P_0.MoveNext(); } static void _206E_206D_206E_202E_202C_202E_202B_206F_206F_200C_200B_206B_206E_206C_200B_206B_202B_206D_202C_200E_202B_202A_202E_200B_200F_202C_202B_206A_200F_202B_200F_206A_206D_202D_200F_202B_206A_206D_206F_206C_202E(IDisposable P_0) { P_0.Dispose(); } static SeString _202A_200C_200E_200E_202A_206B_200E_200D_200B_200F_200C_202A_200E_202C_206D_206C_206E_200F_206C_206B_202D_202D_200F_206A_206C_206C_206F_202B_206C_200E_206A_206E_202D_200F_200C_206B_206A_202D_200D_202E_202E(ReadOnlySeString P_0) { return P_0.ToDalamudString(); } static string _200B_202B_202C_202C_202A_206D_206A_200E_206D_206F_206B_200D_202D_206F_202D_206E_202A_202B_200C_202A_200D_202D_206F_200B_206F_200F_206D_206D_202E_206C_200C_202E_206E_200C_202C_200F_206B_200C_206B_206B_202E(object P_0) { return P_0.ToString(); } static ClientLanguage _202E_200C_206B_200F_200B_200B_200B_200E_206F_200F_202E_206F_206D_206F_200C_200B_202C_206D_200F_202D_206B_200C_200E_202D_202C_202B_202A_200B_202E_202A_200D_206A_200E_202A_200C_206D_200C_206D_206F_200C_202E(IDataManager P_0) { return P_0.Language; } static bool _202D_206F_206E_206F_206C_206C_206A_206E_202B_206D_200C_202E_206C_200F_200E_200B_200E_200F_200F_200F_206E_206B_200E_206E_206D_206C_200F_206D_206E_206A_200B_206E_202C_206B_202C_206E_206C_200E_206A_202D_202E(string P_0) { return string.IsNullOrWhiteSpace(P_0); } static void _206C_206C_206E_206B_206D_200D_206C_200B_206D_206F_206F_200D_202D_206C_200D_202C_206C_206F_202A_200F_202D_206F_206B_200C_202C_206A_206C_200F_200B_202E_206F_202A_202D_206C_200F_200E_206E_200C_206E_200F_202E(ILogger P_0, string P_1, object[] P_2) { P_0.LogDebug(P_1, P_2); } static bool _206E_200B_202B_202A_202D_202C_200D_202A_206F_206D_202D_202E_200F_200F_206D_200C_206B_202D_200F_202D_200E_200F_206D_206A_200D_202E_202D_200C_200F_200D_206C_206A_206B_206D_206B_200F_202A_206C_202B_202C_202E(string P_0, string P_1, StringComparison P_2) { return P_0.EndsWith(P_1, P_2); } static bool _206D_206D_200E_206C_206F_206B_206E_206A_202D_202A_206E_206E_206C_200D_206C_202C_206E_202C_206F_202B_200B_206B_200E_202E_200C_206E_200F_206C_200E_206C_200C_200C_202E_206B_200E_200E_200E_202A_202B_202B_202E(string P_0, string P_1, StringComparison P_2) { return P_0.StartsWith(P_1, P_2); } static bool _206B_206B_206D_202A_200E_200F_200C_200D_206D_202D_200D_202D_200F_206A_200C_200F_202E_206A_206B_206D_202B_200F_202E_202E_202C_206F_202C_202A_200F_202C_200C_202B_200E_200B_200D_200D_202B_202B_200B_202C_202E(string P_0, string P_1, StringComparison P_2) { return P_0.Contains(P_1, P_2); } static bool _200F_200C_202B_206C_200D_200B_200B_206C_206E_200F_200F_206D_200B_200B_200D_202C_202C_206F_206B_200F_200E_202A_206A_200D_202C_206A_202B_206B_200B_202C_200E_202B_202C_206B_202A_202D_200C_202C_206C_202E(string P_0) { return string.IsNullOrEmpty(P_0); } static char _206A_206A_200E_202B_206A_202A_200E_206E_202D_202A_202B_206B_206B_202C_200D_202A_206B_206B_206E_200C_200C_206F_202E_202C_206A_202A_206A_206E_200F_206A_200C_202B_202A_200C_202A_206D_200F_206B_206A_206F_202E(string P_0, int P_1) { return P_0[P_1]; } static CultureInfo _202D_200E_200E_200D_206F_200D_200C_200F_200D_200E_206A_200C_202E_206E_200D_202B_206B_200B_200C_202A_200F_206E_200C_206E_200B_202A_202C_206F_206A_200D_200E_202D_200C_206E_206F_202E_200E_200C_202A_206B_202E() { return CultureInfo.InvariantCulture; } static string _200D_202A_206D_206D_200D_206F_206A_206D_202B_200F_202E_200F_202C_202E_200B_202E_200B_200B_200B_206A_206B_206F_206A_200E_206B_202A_200E_206A_202D_200E_206D_206B_202C_202C_206D_200E_202A_206A_200F_206D_202E(string P_0, CultureInfo P_1) { return P_0.ToUpper(P_1); } static ReadOnlySpan _206D_200D_200B_206B_200C_202C_202D_206B_206C_200B_200B_206D_206E_200F_206D_202D_202A_206B_202A_206D_206A_202B_206D_206F_206B_206E_206A_206A_202A_202B_202D_206B_200E_206C_202C_206F_200F_206F_202D_206E_202E(string P_0) { return P_0.AsSpan(); } static ReadOnlySpan _206B_202A_202A_206C_200C_200F_202C_206F_202A_202D_200F_200E_200B_206E_202B_200C_202E_206F_206E_202D_200F_202C_200C_202B_206F_206F_206C_202C_206A_202B_206A_206D_202B_202D_206E_200B_206F_202E_200C_202E(string P_0, int P_1) { return P_0.AsSpan(P_1); } static string _202E_206C_200C_206A_202E_202B_200F_206A_202C_202A_200B_202E_206C_206B_202E_200F_202A_202A_202C_202E_206F_206A_206A_206F_202A_206B_202A_200B_206B_200D_206E_206D_200C_206A_206D_202C_202C_202D_202C_206D_202E(ReadOnlySpan P_0, ReadOnlySpan P_1) { return string.Concat(P_0, P_1); } }