1
0
Fork 0
forked from aly/qstbak

muffin v7.5.11

This commit is contained in:
alydev 2026-08-17 20:29:32 +10:00
parent addf2d530f
commit 3102923ce2
522 changed files with 41082 additions and 211592 deletions

View file

@ -1,20 +1,15 @@
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;
@ -58,230 +53,6 @@ internal sealed class DutyUnlockData
public const byte Alliance = 4;
}
[CompilerGenerated]
private sealed class _003CGetDutiesUnlockedByQuest_003Ed__30 : IEnumerable<DutyInfo>, IEnumerable, IEnumerator<DutyInfo>, 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<uint>.Enumerator _003C_003E7__wrap1;
DutyInfo IEnumerator<DutyInfo>.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<uint>.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<uint> value2 = default(ImmutableList<uint>);
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<uint>.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<DutyInfo> IEnumerable<DutyInfo>.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<DutyInfo>)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<uint, DutyInfo> _duties;
private readonly ImmutableDictionary<QuestId, ImmutableList<uint>> _questToDuties;
@ -290,396 +61,173 @@ internal sealed class DutyUnlockData
private readonly ILogger<DutyUnlockData> _logger;
[MethodImpl(MethodImplOptions.NoInlining)]
public DutyUnlockData(IDataManager dataManager, ILogger<DutyUnlockData> logger)
{
_logger = logger;
ExcelSheet<ContentFinderCondition> excelSheet = dataManager.GetExcelSheet<ContentFinderCondition>();
ExcelSheet<Quest> excelSheet2 = dataManager.GetExcelSheet<Quest>();
ImmutableDictionary<uint, uint> 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;
}
}
})
ImmutableDictionary<uint, uint> immutableDictionary = (from c in excelSheet
where c.RowId != 0 && c.Content.RowId != 0 && c.ContentLinkType == 1
group c by c.Content.RowId).ToImmutableDictionary((IGrouping<uint, ContentFinderCondition> g) => g.Key, (IGrouping<uint, ContentFinderCondition> g) => g.First().RowId);
Dictionary<QuestId, List<uint>> dictionary = new Dictionary<QuestId, List<uint>>();
Dictionary<uint, List<QuestId>> dictionary2 = new Dictionary<uint, List<QuestId>>();
IEnumerator<Quest> enumerator = excelSheet2.Where((Quest q) => q.RowId != 0).GetEnumerator();
try
foreach (Quest item in excelSheet2.Where((Quest q) => q.RowId != 0))
{
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))
uint rowId = item.InstanceContentUnlock.RowId;
if (rowId != 0 && immutableDictionary.TryGetValue(rowId, out var value))
{
Quest current = enumerator.Current;
uint rowId = current.InstanceContentUnlock.RowId;
if (rowId != 0 && immutableDictionary.TryGetValue(rowId, out var value))
QuestId questId = QuestId.FromRowId(item.RowId);
if (!dictionary.ContainsKey(questId))
{
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<uint>();
}
dictionary[questId].Add(value);
if (!dictionary2.ContainsKey(value))
{
dictionary2[value] = new List<QuestId>();
}
dictionary2[value].Add(questId);
dictionary[questId] = new List<uint>();
}
}
}
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);
dictionary[questId].Add(value);
if (!dictionary2.ContainsKey(value))
{
dictionary2[value] = new List<QuestId>();
}
dictionary2[value].Add(questId);
}
}
_questToDuties = dictionary.ToImmutableDictionary((KeyValuePair<QuestId, List<uint>> x) => x.Key, (KeyValuePair<QuestId, List<uint>> x) => x.Value.ToImmutableList());
_dutyToQuests = dictionary2.ToImmutableDictionary((KeyValuePair<uint, List<QuestId>> x) => x.Key, (KeyValuePair<uint, List<QuestId>> x) => x.Value.ToImmutableList());
Dictionary<uint, DutyInfo> dictionary3 = new Dictionary<uint, DutyInfo>();
ExcelSheet<ContentFinderCondition> excelSheet3 = dataManager.GetExcelSheet<ContentFinderCondition>(ClientLanguage.English);
IEnumerator<ContentFinderCondition> enumerator2 = excelSheet.Where(delegate(ContentFinderCondition x)
foreach (ContentFinderCondition item2 in excelSheet.Where((ContentFinderCondition x) => x.RowId != 0 && x.Content.RowId != 0))
{
int num3 = ((x.RowId == 0) ? (-494713515) : (-494713514));
while (true)
if (item2.ContentLinkType != 1)
{
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))
ContentType? valueNullable = item2.ContentType.ValueNullable;
if (!valueNullable.HasValue)
{
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<QuestId> value2;
ImmutableList<QuestId> unlockQuests = (dictionary2.TryGetValue(current2.RowId, out value2) ? value2.ToImmutableList() : ImmutableList<QuestId>.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;
}
}
continue;
}
}
finally
{
if (enumerator2 != null)
uint rowId2 = valueNullable.Value.RowId;
if (rowId2 - 6 <= 1)
{
_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);
continue;
}
string text = FixName(item2.Name.ToDalamudString().ToString(), dataManager.Language);
if (!string.IsNullOrWhiteSpace(text) && !IsExcludedContent(text, item2.RowId))
{
List<QuestId> value2;
ImmutableList<QuestId> unlockQuests = (dictionary2.TryGetValue(item2.RowId, out value2) ? value2.ToImmutableList() : ImmutableList<QuestId>.Empty);
uint rowId3 = item2.ContentMemberType.RowId;
string name = excelSheet3.GetRowOrDefault(item2.RowId)?.Name.ToDalamudString().ToString() ?? text;
EDutyCategory? eDutyCategory = DetermineDutyCategory(rowId2, name, item2.HighEndDuty, item2.RowId, (byte)rowId3, item2.ContentLinkType);
if (eDutyCategory.HasValue)
{
DutyInfo value3 = new DutyInfo(item2.RowId, item2.Content.RowId, text, rowId2, valueNullable.Value.Name.ToDalamudString().ToString(), item2.ClassJobLevelRequired, item2.ItemLevelRequired, unlockQuests, item2.HighEndDuty, eDutyCategory.Value);
dictionary3[item2.RowId] = value3;
}
}
}
_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<string>(-947520940), new object[2]
{
_duties.Count,
_questToDuties.Values.Sum((ImmutableList<uint> x) => x.Count)
});
_logger.LogDebug("Loaded {DutyCount} duties with {QuestMappings} quest unlock mappings", _duties.Count, _questToDuties.Values.Sum((ImmutableList<uint> 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)
if (cfcId - 69 <= 2)
{
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;
}
return true;
}
return false;
}
[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<string>(-1946947024), StringComparison.OrdinalIgnoreCase)) ? 1981410498 : 1981410526);
while (true)
if (name.EndsWith("(Chaotic)", StringComparison.OrdinalIgnoreCase))
{
int num2 = num;
int num3 = 1981410514;
int num4 = num2;
int num5;
switch ((num4 | num3) - (num4 & num3))
return EDutyCategory.ChaoticAllianceRaid;
}
switch (contentTypeId)
{
case 2u:
if (name.EndsWith("(Hard)", StringComparison.OrdinalIgnoreCase))
{
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<string>(-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<string>(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<string>(-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<string>(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<string>(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<string>(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<string>(-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<string>(-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.Dungeon;
case 3u:
return EDutyCategory.Guildhest;
case 4u:
if (name.EndsWith("(Unreal)", StringComparison.OrdinalIgnoreCase))
{
return EDutyCategory.UnrealTrial;
}
if (name.EndsWith("(Extreme)", StringComparison.OrdinalIgnoreCase) || name.StartsWith("The Minstrel's Ballad:", StringComparison.OrdinalIgnoreCase) || isHighEndDuty)
{
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<string>(-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:
}
if (name.EndsWith("(Hard)", StringComparison.OrdinalIgnoreCase))
{
return EDutyCategory.HardTrial;
}
return EDutyCategory.Trial;
case 5u:
if (contentMemberType == 4)
{
if (isHighEndDuty)
{
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<string>(-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<string>(-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<string>(-1526728021), StringComparison.OrdinalIgnoreCase)) ? 1981410508 : 1981410504);
break;
IL_02d5:
num = 1981410544;
break;
IL_0179:
num = ((!isHighEndDuty) ? 1981410515 : 1981410545);
break;
return EDutyCategory.AllianceRaid;
}
if (name.EndsWith("(Savage)", StringComparison.OrdinalIgnoreCase) || isHighEndDuty)
{
return EDutyCategory.SavageRaid;
}
return EDutyCategory.NormalRaid;
case 21u:
if (name.Contains("Quantum", StringComparison.OrdinalIgnoreCase))
{
return EDutyCategory.QuantumBattle;
}
return EDutyCategory.DeepDungeon;
case 26u:
if (isHighEndDuty)
{
return EDutyCategory.ChaoticAllianceRaid;
}
return EDutyCategory.AllianceRaid;
case 28u:
return EDutyCategory.Ultimate;
case 29u:
case 30u:
if (name.EndsWith("(Savage)", StringComparison.OrdinalIgnoreCase))
{
return EDutyCategory.CriterionSavage;
}
if (name.StartsWith("Another", StringComparison.OrdinalIgnoreCase))
{
return EDutyCategory.CriterionDungeon;
}
return EDutyCategory.VariantDungeon;
case 31u:
return EDutyCategory.CriterionSavage;
default:
if (name.EndsWith("(Savage)", StringComparison.OrdinalIgnoreCase))
{
return EDutyCategory.SavageRaid;
}
if (name.EndsWith("(Extreme)", StringComparison.OrdinalIgnoreCase) || name.StartsWith("The Minstrel's Ballad:", StringComparison.OrdinalIgnoreCase))
{
return EDutyCategory.ExtremeTrial;
}
return null;
}
}
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)
if (string.IsNullOrEmpty(name) || language != ClientLanguage.English)
{
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;
}
return name;
}
return string.Concat(name[0].ToString().ToUpper(CultureInfo.InvariantCulture).AsSpan(), name.AsSpan(1));
}
public IEnumerable<DutyInfo> GetAllDuties()
@ -782,65 +330,37 @@ internal sealed class DutyUnlockData
return GetDutiesByCategory(EDutyCategory.QuantumBattle);
}
[IteratorStateMachine(typeof(_003CGetDutiesUnlockedByQuest_003Ed__30))]
public IEnumerable<DutyInfo> GetDutiesUnlockedByQuest(QuestId questId)
{
//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
return new _003CGetDutiesUnlockedByQuest_003Ed__30(-2)
if (!_questToDuties.TryGetValue(questId, out ImmutableList<uint> value))
{
_003C_003E4__this = this,
_003C_003E3__questId = questId
};
yield break;
}
foreach (uint item in value)
{
if (_duties.TryGetValue(item, out DutyInfo value2))
{
yield return value2;
}
}
}
public IEnumerable<QuestId> GetUnlockQuestsForDuty(uint cfcId)
{
ImmutableList<QuestId> value;
int num = ((!_dutyToQuests.TryGetValue(cfcId, out value)) ? (-140897364) : (-140897363));
while (true)
if (_dutyToQuests.TryGetValue(cfcId, out ImmutableList<QuestId> value))
{
int num2 = num;
int num3 = -140897364;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
return Array.Empty<QuestId>();
case 1:
return value;
case 2:
goto IL_0056;
}
continue;
IL_0056:
num = -140897363;
return value;
}
return Array.Empty<QuestId>();
}
public bool IsDutyUnlocked(uint cfcId)
{
DutyInfo value;
int num = (_duties.TryGetValue(cfcId, out value) ? (-1021007209) : (-1021007212));
while (true)
if (!_duties.TryGetValue(cfcId, out DutyInfo value))
{
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;
return false;
}
return UIState.IsInstanceContentUnlocked(value.ContentId);
}
public static bool IsContentUnlocked(uint contentId)
@ -872,94 +392,4 @@ internal sealed class DutyUnlockData
{
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<char> _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<char> _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<char> P_0, ReadOnlySpan<char> P_1)
{
return string.Concat(P_0, P_1);
}
}