1
0
Fork 0
forked from aly/qstbak

muffin v7.5.6

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

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -17,19 +17,6 @@
"type": "integer",
"minimum": 1
},
"Aetheryte": {
"description": "Nearest aetheryte for teleporting",
"$ref": "https://github.com/WigglyMuffin/Questionable/raw/refs/heads/main/Questionable.Model/common-aetheryte.json"
},
"AethernetShortcut": {
"description": "Aethernet shortcut to use after teleporting",
"type": "array",
"items": {
"type": "string"
},
"minItems": 2,
"maxItems": 2
},
"NpcDataId": {
"description": "Data ID of the NPC to interact with",
"type": "integer",

View file

@ -1,97 +1,144 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Numerics;
using System.Runtime.InteropServices;
using Questionable.Model.Common;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security.Cryptography;
using System.Threading;
using Questionable.Model.IO;
using Questionable.Model.Questing;
namespace Questionable.SeasonalDutyPaths;
public static class AssemblySeasonalDutyDefinitionLoader
internal static class AssemblySeasonalDutyDefinitionLoader
{
private static Dictionary<ushort, SeasonalDutyDefinition>? _definitions;
private static readonly Lazy<IReadOnlyDictionary<ushort, SeasonalDutyDefinition>> Definitions = new Lazy<IReadOnlyDictionary<ushort, SeasonalDutyDefinition>>(LoadDefinitions, LazyThreadSafetyMode.ExecutionAndPublication);
public static Stream SeasonalDutyDefinitionSchema => typeof(AssemblySeasonalDutyDefinitionLoader).Assembly.GetManifestResourceStream("Questionable.SeasonalDutyPaths.SeasonalDutyDefinitionSchema");
internal static TimeSpan? DecodeDuration { get; private set; }
public static IReadOnlyDictionary<ushort, SeasonalDutyDefinition> GetDefinitions()
internal static Stream SeasonalDutyDefinitionSchema
{
if (_definitions == null)
[MethodImpl(MethodImplOptions.NoInlining)]
get
{
_definitions = new Dictionary<ushort, SeasonalDutyDefinition>();
LoadDefinitions();
return _206C_206D_202B_206E_202D_202D_200E_206D_206A_202D_206C_206C_206B_200F_202A_200D_206A_206B_206C_200D_202C_206C_200D_206F_206F_202B_202D_200C_206F_200D_200F_200F_206B_200D_206B_202E_206B_206E_202E_206F_202E(_200C_206C_200D_202D_202B_206D_206C_202C_202B_200F_206E_206E_202C_200F_200D_200D_206C_200C_206A_202A_206B_202A_200E_206A_200B_200C_202D_200C_200E_200C_202A_200F_202D_202C_200B_202C_206E_202C_206E_202A_202E(_206F_200B_200D_206F_200D_200C_202C_206F_200F_202A_206E_206F_202A_202A_206A_202C_202D_200F_202C_206B_202B_200E_206F_206B_202C_200E_202C_206C_202D_206C_206D_202D_202C_202C_200B_202B_206D_206E_200D_206F_202E(typeof(AssemblySeasonalDutyDefinitionLoader).TypeHandle)), global::_003CModule_003E._202C_206C_202B_200B_206A_206E_200C_202C_202D_206B_206D_206F_206F_206D_206E_200C_206A_206B_200F_200E_206A_202B_200B_200E_200C_202C_206A_206C_206B_202A_202C_202B_206A_206F_206D_200D_206D_202C_200D_200E_202E<string>(-1394732188));
}
return _definitions ?? throw new InvalidOperationException("seasonal duty definition data is not initialized");
}
private static void AddDefinition(ushort id, SeasonalDutyDefinition definition)
internal static IReadOnlyDictionary<ushort, SeasonalDutyDefinition> GetDefinitions()
{
_definitions[id] = definition;
return Definitions.Value;
}
private static void LoadDefinitions()
[MethodImpl(MethodImplOptions.NoInlining)]
private static IReadOnlyDictionary<ushort, SeasonalDutyDefinition> LoadDefinitions()
{
LoadDefinition0();
}
private static void LoadDefinition0()
{
SeasonalDutyDefinition obj = new SeasonalDutyDefinition
Stopwatch stopwatch = _206F_206A_206B_206D_206C_206B_202A_200E_206F_206E_200B_202C_200D_200D_202C_206B_202C_200B_202E_200B_200C_202E_202C_202B_200C_200C_200F_206D_206A_200E_206E_206D_206F_202C_200C_200B_206E_202B_206D_206A_202E();
Stream stream = _206C_206D_202B_206E_202D_202D_200E_206D_206A_202D_206C_206C_206B_200F_202A_200D_206A_206B_206C_200D_202C_206C_200D_206F_206F_202B_202D_200C_206F_200D_200F_200F_206B_200D_206B_202E_206B_206E_202E_206F_202E(_200C_206C_200D_202D_202B_206D_206C_202C_202B_200F_206E_206E_202C_200F_200D_200D_206C_200C_206A_202A_206B_202A_200E_206A_200B_200C_202D_200C_200E_200C_202A_200F_202D_202C_200B_202C_206E_202C_206E_202A_202E(_206F_200B_200D_206F_200D_200C_202C_206F_200F_202A_206E_206F_202A_202A_206A_202C_202D_200F_202C_206B_202B_200E_206F_206B_202C_200E_202C_206C_202D_206C_206D_202D_202C_202C_200B_202B_206D_206E_200D_206F_202E(typeof(AssemblySeasonalDutyDefinitionLoader).TypeHandle)), global::_003CModule_003E._202A_200F_206B_202B_206C_202D_206A_200F_200E_206B_202A_200D_202A_206C_202C_200C_202D_206E_206B_202B_206D_206F_200F_200B_200B_206E_200C_206D_200B_202B_206D_206E_200E_206F_206A_202E_200C_200C_202C_202E_202E<string>(-1684643272));
try
{
Name = "Hatching-tide (2026)",
TerritoryId = 133,
Aetheryte = EAetheryteLocation.Gridania,
AethernetShortcut = new AethernetShortcut
byte[] array = PathBundleSecret.Key();
List<KeyValuePair<string, SeasonalDutyDefinition>> list = PathBundle.Deserialize<SeasonalDutyDefinition>(stream, array);
_202D_200C_200B_202E_206E_206C_206E_200D_200D_200D_202B_200D_206E_200B_206D_206C_200C_206C_202B_200B_206A_206F_206E_206E_202E_202D_206D_200C_200F_202A_206B_206F_206F_202E_200E_202B_200B_206A_206E_200E_202E((Span<byte>)array);
Dictionary<ushort, SeasonalDutyDefinition> dictionary = new Dictionary<ushort, SeasonalDutyDefinition>(list.Count);
using (List<KeyValuePair<string, SeasonalDutyDefinition>>.Enumerator enumerator = list.GetEnumerator())
{
From = EAetheryteLocation.Gridania,
To = EAetheryteLocation.GridaniaAmphitheatre
},
NpcDataId = 1056067u,
NpcPosition = new Vector3(-54.551025f, 6.851239f, -110.948364f)
};
int num = 1;
List<DialogueChoice> list = new List<DialogueChoice>(num);
CollectionsMarshal.SetCount(list, num);
CollectionsMarshal.AsSpan(list)[0] = new DialogueChoice
int num = -221038175;
while (true)
{
int num2 = num;
int num3 = -221038175;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = (enumerator.MoveNext() ? (-221038176) : (-221038174));
break;
case 1:
var (s, value) = (KeyValuePair<string, SeasonalDutyDefinition>)(ref enumerator.Current);
dictionary[ushort.Parse(s, _206E_202B_200F_206F_206E_206F_206F_200C_202A_206B_206D_200B_206C_200C_202A_200E_200C_202B_200E_200F_202E_200E_202B_200C_206A_200F_202D_206D_202D_202E_200C_202E_206F_206A_202D_202D_200F_202A_206D_200F_202E())] = value;
num = -221038175;
break;
case 2:
num = -221038175;
break;
case 3:
goto end_IL_005c;
}
continue;
end_IL_005c:
break;
}
}
DecodeDuration = _206B_206F_206A_206A_206E_202E_206D_206B_202C_206C_202A_202D_200D_202A_206F_202E_202D_206B_202B_206F_202A_206D_202A_202A_206C_200B_202B_200C_206B_200F_202D_206D_206F_206A_206C_206B_202D_206C_206B_206A_202E(stopwatch);
return dictionary;
}
finally
{
Type = EDialogChoiceType.List,
ExcelSheet = "custom/009/FesEst2026Entrance_00960",
Prompt = new ExcelRef("TEXT_FESEST2026ENTRANCE_00960_Q1_000_000"),
Answer = new ExcelRef("TEXT_FESEST2026ENTRANCE_00960_A1_000_001"),
PromptIsRegularExpression = true
};
obj.DialogueChoices = list;
obj.DutyTerritoryId = 1336;
num = 8;
List<uint> list2 = new List<uint>(num);
CollectionsMarshal.SetCount(list2, num);
Span<uint> span = CollectionsMarshal.AsSpan(list2);
span[0] = 2015072u;
span[1] = 2015073u;
span[2] = 2015074u;
span[3] = 2015075u;
span[4] = 2015076u;
span[5] = 2015077u;
span[6] = 2015078u;
span[7] = 2015079u;
obj.DataIds = list2;
num = 9;
List<Vector3> list3 = new List<Vector3>(num);
CollectionsMarshal.SetCount(list3, num);
Span<Vector3> span2 = CollectionsMarshal.AsSpan(list3);
span2[0] = new Vector3(-700.0023f, -0.15729797f, -721.67926f);
span2[1] = new Vector3(-700.1704f, -0.0301615f, 77.54147f);
span2[2] = new Vector3(-699.9926f, -0.021064043f, 877.55304f);
span2[3] = new Vector3(99.99213f, -0.100738764f, -721.9226f);
span2[4] = new Vector3(99.92716f, 4.7683716E-07f, 77.599335f);
span2[5] = new Vector3(100.40486f, 0.20596194f, 877.50397f);
span2[6] = new Vector3(899.93384f, 0.03615737f, -722.4109f);
span2[7] = new Vector3(900.052f, 0.23717809f, 77.897415f);
span2[8] = new Vector3(900.26733f, -0.30200624f, 877.5144f);
obj.WaypointPositions = list3;
obj.Action = EAction.PruningPirouette;
obj.RequiredQuestId = (ushort)5425;
obj.EventExpiry = new DateTime(2026, 4, 6, 14, 59, 0, DateTimeKind.Utc);
AddDefinition(1, obj);
int num = ((stream == null) ? (-142648274) : (-142648275));
while (true)
{
int num5 = num;
int num3 = -142648273;
int num4 = num5;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = -142648275;
break;
case 2:
_200C_202D_202D_206C_200C_206D_206A_206E_200F_206B_202C_206D_206F_202C_202A_206E_206C_200B_202A_200E_202A_202A_200C_202B_202C_206B_202E_202A_206C_202E_202A_206E_200C_202C_202C_206E_202C_206A_200D_202A_202E((IDisposable)stream);
num = -142648274;
break;
case 1:
goto end_IL_0141;
}
continue;
end_IL_0141:
break;
}
}
}
static Type _206F_200B_200D_206F_200D_200C_202C_206F_200F_202A_206E_206F_202A_202A_206A_202C_202D_200F_202C_206B_202B_200E_206F_206B_202C_200E_202C_206C_202D_206C_206D_202D_202C_202C_200B_202B_206D_206E_200D_206F_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static Assembly _200C_206C_200D_202D_202B_206D_206C_202C_202B_200F_206E_206E_202C_200F_200D_200D_206C_200C_206A_202A_206B_202A_200E_206A_200B_200C_202D_200C_200E_200C_202A_200F_202D_202C_200B_202C_206E_202C_206E_202A_202E(Type P_0)
{
return P_0.Assembly;
}
static Stream _206C_206D_202B_206E_202D_202D_200E_206D_206A_202D_206C_206C_206B_200F_202A_200D_206A_206B_206C_200D_202C_206C_200D_206F_206F_202B_202D_200C_206F_200D_200F_200F_206B_200D_206B_202E_206B_206E_202E_206F_202E(Assembly P_0, string P_1)
{
return P_0.GetManifestResourceStream(P_1);
}
static Stopwatch _206F_206A_206B_206D_206C_206B_202A_200E_206F_206E_200B_202C_200D_200D_202C_206B_202C_200B_202E_200B_200C_202E_202C_202B_200C_200C_200F_206D_206A_200E_206E_206D_206F_202C_200C_200B_206E_202B_206D_206A_202E()
{
return Stopwatch.StartNew();
}
static void _202D_200C_200B_202E_206E_206C_206E_200D_200D_200D_202B_200D_206E_200B_206D_206C_200C_206C_202B_200B_206A_206F_206E_206E_202E_202D_206D_200C_200F_202A_206B_206F_206F_202E_200E_202B_200B_206A_206E_200E_202E(Span<byte> P_0)
{
CryptographicOperations.ZeroMemory(P_0);
}
static CultureInfo _206E_202B_200F_206F_206E_206F_206F_200C_202A_206B_206D_200B_206C_200C_202A_200E_200C_202B_200E_200F_202E_200E_202B_200C_206A_200F_202D_206D_202D_202E_200C_202E_206F_206A_202D_202D_200F_202A_206D_200F_202E()
{
return CultureInfo.InvariantCulture;
}
static TimeSpan _206B_206F_206A_206A_206E_202E_206D_206B_202C_206C_202A_202D_200D_202A_206F_202E_202D_206B_202B_206F_202A_206D_202A_202A_206C_200B_202B_200C_206B_200F_202D_206D_206F_206A_206C_206B_202D_206C_206B_206A_202E(Stopwatch P_0)
{
return P_0.Elapsed;
}
static void _200C_202D_202D_206C_200C_206D_206A_206E_200F_206B_202C_206D_206F_202C_202A_206E_206C_200B_202A_200E_202A_202A_200C_202B_202C_206B_202E_202A_206C_202E_202A_206E_200C_202C_202C_206E_202C_206A_200D_202A_202E(IDisposable P_0)
{
P_0.Dispose();
}
}

View file

@ -0,0 +1,66 @@
using System;
using System.Runtime.CompilerServices;
namespace Questionable.SeasonalDutyPaths;
internal static class PathBundleSecret
{
private static readonly byte[] A;
private static readonly byte[] B;
internal static byte[] Key()
{
byte[] array = new byte[A.Length];
int num = 0;
int num2 = 320407520;
while (true)
{
int num3 = num2;
int num4 = 320407521;
int num5 = num3;
switch ((num5 | num4) - (num5 & num4))
{
case 3:
num2 = 320407520;
break;
case 0:
return array;
case 2:
{
int num6 = num;
byte num7 = A[num];
num4 = B[num];
num5 = num7;
int num8 = num5 + num4;
int num9 = num5 & num4;
array[num6] = (byte)(num8 - (num9 + num9));
int num10 = num;
num4 = 1;
num5 = num10;
num = (num5 | num4) + (num5 & num4);
num2 = 320407520;
break;
}
case 1:
num2 = ((num < array.Length) ? 320407523 : 320407521);
break;
}
}
}
static PathBundleSecret()
{
byte[] array = new byte[32];
_206E_200C_200D_200F_202A_200D_206C_202E_200E_202C_202E_200D_202D_202C_200D_206D_202B_206A_206C_206F_200D_206C_202B_206B_200F_206B_200F_206D_206F_206B_200D_200E_200B_206E_202E_200B_200B_200C_202E_202A_202E((Array)array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
A = array;
byte[] array2 = new byte[32];
_206E_200C_200D_200F_202A_200D_206C_202E_200E_202C_202E_200D_202D_202C_200D_206D_202B_206A_206C_206F_200D_206C_202B_206B_200F_206B_200F_206D_206F_206B_200D_200E_200B_206E_202E_200B_200B_200C_202E_202A_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
B = array2;
}
static void _206E_200C_200D_200F_202A_200D_206C_202E_200E_202C_202E_200D_202D_202C_200D_206D_202B_206A_206C_206F_200D_206C_202B_206B_200F_206B_200F_206D_206F_206B_200D_200E_200B_206E_202E_200B_200B_200C_202E_202A_202E(Array P_0, RuntimeFieldHandle P_1)
{
RuntimeHelpers.InitializeArray(P_0, P_1);
}
}

View file

@ -14,7 +14,9 @@
</PropertyGroup>
<ItemGroup>
<None Remove="Questionable.SeasonalDutyPaths.SeasonalDutyDefinitionSchema" />
<None Remove="Questionable.SeasonalDutyPaths.SeasonalDutyBundle" />
<EmbeddedResource Include="Questionable.SeasonalDutyPaths.SeasonalDutyDefinitionSchema" LogicalName="Questionable.SeasonalDutyPaths.SeasonalDutyDefinitionSchema" />
<EmbeddedResource Include="Questionable.SeasonalDutyPaths.SeasonalDutyBundle" LogicalName="Questionable.SeasonalDutyPaths.SeasonalDutyBundle" />
</ItemGroup>
<ItemGroup>
<Reference Include="Questionable.Model">