WIP some IDE test
This commit is contained in:
parent
ceae3d5d21
commit
82abbfa535
@ -23,7 +23,11 @@
|
|||||||
<LogicalName>Questionable.GatheringPaths.GatheringLocationSchema</LogicalName>
|
<LogicalName>Questionable.GatheringPaths.GatheringLocationSchema</LogicalName>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<AdditionalFiles Include="gatheringlocation-v1.json" />
|
<AdditionalFiles Include="gatheringlocation-v1.json" />
|
||||||
<AdditionalFiles Include="..\Questionable.Model\common-schema.json" />
|
<AdditionalFiles Include="..\Questionable.Model\common-aethernetshard.json" />
|
||||||
|
<AdditionalFiles Include="..\Questionable.Model\common-aetheryte.json" />
|
||||||
|
<AdditionalFiles Include="..\Questionable.Model\common-classjob.json" />
|
||||||
|
<AdditionalFiles Include="..\Questionable.Model\common-completionflags.json" />
|
||||||
|
<AdditionalFiles Include="..\Questionable.Model\common-vector3.json" />
|
||||||
<AdditionalFiles Include="..\QuestPaths\quest-v1.json" />
|
<AdditionalFiles Include="..\QuestPaths\quest-v1.json" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"Position": {
|
"Position": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/Vector3"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-vector3.json"
|
||||||
},
|
},
|
||||||
"MinimumAngle": {
|
"MinimumAngle": {
|
||||||
"type": "number",
|
"type": "number",
|
||||||
|
@ -16,14 +16,38 @@ public static class Utils
|
|||||||
{
|
{
|
||||||
public static List<AdditionalText> RegisterSchemas(GeneratorExecutionContext context)
|
public static List<AdditionalText> RegisterSchemas(GeneratorExecutionContext context)
|
||||||
{
|
{
|
||||||
var commonSchemaFile = context.AdditionalFiles.Single(x => Path.GetFileName(x.Path) == "common-schema.json");
|
var commonAethernetShardFile =
|
||||||
|
context.AdditionalFiles.Single(x => Path.GetFileName(x.Path) == "common-aethernetshard.json");
|
||||||
|
var commonAetheryteFile =
|
||||||
|
context.AdditionalFiles.Single(x => Path.GetFileName(x.Path) == "common-aetheryte.json");
|
||||||
|
var commonClassJobFile =
|
||||||
|
context.AdditionalFiles.Single(x => Path.GetFileName(x.Path) == "common-classjob.json");
|
||||||
|
var commonCompletionFlagsFile =
|
||||||
|
context.AdditionalFiles.Single(x => Path.GetFileName(x.Path) == "common-completionflags.json");
|
||||||
|
var commonVector3File = context.AdditionalFiles.Single(x => Path.GetFileName(x.Path) == "common-vector3.json");
|
||||||
var gatheringSchemaFile =
|
var gatheringSchemaFile =
|
||||||
context.AdditionalFiles.SingleOrDefault(x => Path.GetFileName(x.Path) == "gatheringlocation-v1.json");
|
context.AdditionalFiles.SingleOrDefault(x => Path.GetFileName(x.Path) == "gatheringlocation-v1.json");
|
||||||
var questSchemaFile = context.AdditionalFiles.SingleOrDefault(x => Path.GetFileName(x.Path) == "quest-v1.json");
|
var questSchemaFile = context.AdditionalFiles.SingleOrDefault(x => Path.GetFileName(x.Path) == "quest-v1.json");
|
||||||
|
|
||||||
SchemaRegistry.Global.Register(
|
SchemaRegistry.Global.Register(
|
||||||
new Uri("https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json"),
|
new Uri(
|
||||||
JsonSchema.FromText(commonSchemaFile.GetText()!.ToString()));
|
"https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-aethernetshard.json"),
|
||||||
|
JsonSchema.FromText(commonAethernetShardFile.GetText()!.ToString()));
|
||||||
|
SchemaRegistry.Global.Register(
|
||||||
|
new Uri(
|
||||||
|
"https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-aetheryte.json"),
|
||||||
|
JsonSchema.FromText(commonAetheryteFile.GetText()!.ToString()));
|
||||||
|
SchemaRegistry.Global.Register(
|
||||||
|
new Uri(
|
||||||
|
"https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-classjob.json"),
|
||||||
|
JsonSchema.FromText(commonClassJobFile.GetText()!.ToString()));
|
||||||
|
SchemaRegistry.Global.Register(
|
||||||
|
new Uri(
|
||||||
|
"https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-completionflags.json"),
|
||||||
|
JsonSchema.FromText(commonCompletionFlagsFile.GetText()!.ToString()));
|
||||||
|
SchemaRegistry.Global.Register(
|
||||||
|
new Uri("https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-vector3.json"),
|
||||||
|
JsonSchema.FromText(commonVector3File.GetText()!.ToString()));
|
||||||
|
|
||||||
if (gatheringSchemaFile != null)
|
if (gatheringSchemaFile != null)
|
||||||
{
|
{
|
||||||
@ -40,7 +64,16 @@ public static class Utils
|
|||||||
JsonSchema.FromText(questSchemaFile.GetText()!.ToString()));
|
JsonSchema.FromText(questSchemaFile.GetText()!.ToString()));
|
||||||
}
|
}
|
||||||
|
|
||||||
List<AdditionalText?> jsonSchemaFiles = [commonSchemaFile, gatheringSchemaFile, questSchemaFile];
|
List<AdditionalText?> jsonSchemaFiles =
|
||||||
|
[
|
||||||
|
commonAethernetShardFile,
|
||||||
|
commonAetheryteFile,
|
||||||
|
commonClassJobFile,
|
||||||
|
commonCompletionFlagsFile,
|
||||||
|
commonVector3File,
|
||||||
|
gatheringSchemaFile,
|
||||||
|
questSchemaFile
|
||||||
|
];
|
||||||
return jsonSchemaFiles.Where(x => x != null).Cast<AdditionalText>().ToList();
|
return jsonSchemaFiles.Where(x => x != null).Cast<AdditionalText>().ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +24,11 @@
|
|||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<AdditionalFiles Include="4.x - Stormblood\Class Quests\BTN\2623_The White Death.json" />
|
<AdditionalFiles Include="4.x - Stormblood\Class Quests\BTN\2623_The White Death.json" />
|
||||||
<AdditionalFiles Include="quest-v1.json" />
|
<AdditionalFiles Include="quest-v1.json" />
|
||||||
<AdditionalFiles Include="..\Questionable.Model\common-schema.json" />
|
<AdditionalFiles Include="..\Questionable.Model\common-aethernetshard.json" />
|
||||||
|
<AdditionalFiles Include="..\Questionable.Model\common-aetheryte.json" />
|
||||||
|
<AdditionalFiles Include="..\Questionable.Model\common-classjob.json" />
|
||||||
|
<AdditionalFiles Include="..\Questionable.Model\common-completionflags.json" />
|
||||||
|
<AdditionalFiles Include="..\Questionable.Model\common-vector3.json" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="'$(Configuration)' == 'Release'">
|
<ItemGroup Condition="'$(Configuration)' == 'Release'">
|
||||||
|
@ -76,7 +76,7 @@
|
|||||||
"exclusiveMinimum": 0
|
"exclusiveMinimum": 0
|
||||||
},
|
},
|
||||||
"Position": {
|
"Position": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/Vector3"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-vector3.json"
|
||||||
},
|
},
|
||||||
"StopDistance": {
|
"StopDistance": {
|
||||||
"type": [
|
"type": [
|
||||||
@ -170,7 +170,7 @@
|
|||||||
},
|
},
|
||||||
"AetheryteShortcut": {
|
"AetheryteShortcut": {
|
||||||
"description": "The Aetheryte to teleport to (before moving)",
|
"description": "The Aetheryte to teleport to (before moving)",
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/Aetheryte"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-aetheryte.json"
|
||||||
},
|
},
|
||||||
"AethernetShortcut": {
|
"AethernetShortcut": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
@ -178,7 +178,7 @@
|
|||||||
"minItems": 2,
|
"minItems": 2,
|
||||||
"maxItems": 2,
|
"maxItems": 2,
|
||||||
"items": {
|
"items": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/AethernetShard"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-aethernetshard.json"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ItemId": {
|
"ItemId": {
|
||||||
@ -200,7 +200,7 @@
|
|||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"CompletionQuestVariablesFlags": {
|
"CompletionQuestVariablesFlags": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/CompletionFlags"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-completionflags.json"
|
||||||
},
|
},
|
||||||
"Flying": {
|
"Flying": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
@ -270,16 +270,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"AetheryteLocked": {
|
"AetheryteLocked": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/Aetheryte"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-aetheryte.json"
|
||||||
},
|
},
|
||||||
"AetheryteUnlocked": {
|
"AetheryteUnlocked": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/Aetheryte"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-aetheryte.json"
|
||||||
},
|
},
|
||||||
"NearPosition": {
|
"NearPosition": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"Position": {
|
"Position": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/Vector3"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-vector3.json"
|
||||||
},
|
},
|
||||||
"MaximumDistance": {
|
"MaximumDistance": {
|
||||||
"type": "number"
|
"type": "number"
|
||||||
@ -342,10 +342,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"AetheryteLocked": {
|
"AetheryteLocked": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/Aetheryte"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-aetheryte.json"
|
||||||
},
|
},
|
||||||
"AetheryteUnlocked": {
|
"AetheryteUnlocked": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/Aetheryte"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-aetheryte.json"
|
||||||
},
|
},
|
||||||
"RequiredQuestVariablesNotMet": {
|
"RequiredQuestVariablesNotMet": {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
@ -354,7 +354,7 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"Position": {
|
"Position": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/Vector3"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-vector3.json"
|
||||||
},
|
},
|
||||||
"MaximumDistance": {
|
"MaximumDistance": {
|
||||||
"type": "number"
|
"type": "number"
|
||||||
@ -383,10 +383,10 @@
|
|||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"AetheryteLocked": {
|
"AetheryteLocked": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/Aetheryte"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-aetheryte.json"
|
||||||
},
|
},
|
||||||
"AetheryteUnlocked": {
|
"AetheryteUnlocked": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/Aetheryte"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-aetheryte.json"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"additionalProperties": false
|
"additionalProperties": false
|
||||||
@ -395,7 +395,7 @@
|
|||||||
"additionalProperties": false
|
"additionalProperties": false
|
||||||
},
|
},
|
||||||
"CompletionQuestVariablesFlags": {
|
"CompletionQuestVariablesFlags": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/CompletionFlags"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-completionflags.json"
|
||||||
},
|
},
|
||||||
"RequiredQuestVariables": {
|
"RequiredQuestVariables": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
@ -439,14 +439,14 @@
|
|||||||
"description": "Which class or job you are using whenever this step gets executed",
|
"description": "Which class or job you are using whenever this step gets executed",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/ClassJob"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-classjob.json"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"RequiredQuestAcceptedJob": {
|
"RequiredQuestAcceptedJob": {
|
||||||
"description": "Which class or job you were using when accepting this quest (e.g. for beast tribes)",
|
"description": "Which class or job you were using when accepting this quest (e.g. for beast tribes)",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/ClassJob"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-classjob.json"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"DelaySecondsAtStart": {
|
"DelaySecondsAtStart": {
|
||||||
@ -509,7 +509,7 @@
|
|||||||
"then": {
|
"then": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"Aetheryte": {
|
"Aetheryte": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/Aetheryte"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-aetheryte.json"
|
||||||
},
|
},
|
||||||
"DataId": {
|
"DataId": {
|
||||||
"type": "null"
|
"type": "null"
|
||||||
@ -541,7 +541,7 @@
|
|||||||
"then": {
|
"then": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"AethernetShard": {
|
"AethernetShard": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/AethernetShard"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-aethernetshard.json"
|
||||||
},
|
},
|
||||||
"DataId": {
|
"DataId": {
|
||||||
"type": "null"
|
"type": "null"
|
||||||
@ -641,7 +641,7 @@
|
|||||||
"type": "integer"
|
"type": "integer"
|
||||||
},
|
},
|
||||||
"CompletionQuestVariablesFlags": {
|
"CompletionQuestVariablesFlags": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/CompletionFlags"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-completionflags.json"
|
||||||
},
|
},
|
||||||
"IgnoreQuestMarker": {
|
"IgnoreQuestMarker": {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
@ -1054,7 +1054,7 @@
|
|||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"Position": {
|
"Position": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/Vector3"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-vector3.json"
|
||||||
},
|
},
|
||||||
"StopDistance": {
|
"StopDistance": {
|
||||||
"type": [
|
"type": [
|
||||||
@ -1424,7 +1424,7 @@
|
|||||||
"then": {
|
"then": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"TargetClass": {
|
"TargetClass": {
|
||||||
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json#/$defs/ClassJob"
|
"$ref": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-classjob.json"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": [
|
"required": [
|
||||||
|
@ -4,6 +4,14 @@ namespace Questionable.Model;
|
|||||||
|
|
||||||
public static class AssemblyModelLoader
|
public static class AssemblyModelLoader
|
||||||
{
|
{
|
||||||
public static Stream CommonSchema =>
|
public static Stream CommonAetheryte =>
|
||||||
typeof(AssemblyModelLoader).Assembly.GetManifestResourceStream("Questionable.Model.CommonSchema")!;
|
typeof(AssemblyModelLoader).Assembly.GetManifestResourceStream("Questionable.Model.CommonAetheryte")!;
|
||||||
|
public static Stream CommonAethernetShard =>
|
||||||
|
typeof(AssemblyModelLoader).Assembly.GetManifestResourceStream("Questionable.Model.CommonAethernetShard")!;
|
||||||
|
public static Stream CommonClassJob =>
|
||||||
|
typeof(AssemblyModelLoader).Assembly.GetManifestResourceStream("Questionable.Model.CommonClassJob")!;
|
||||||
|
public static Stream CommonCompletionFlags =>
|
||||||
|
typeof(AssemblyModelLoader).Assembly.GetManifestResourceStream("Questionable.Model.CommonCompletionFlags")!;
|
||||||
|
public static Stream CommonVector3 =>
|
||||||
|
typeof(AssemblyModelLoader).Assembly.GetManifestResourceStream("Questionable.Model.CommonVector3")!;
|
||||||
}
|
}
|
||||||
|
@ -16,9 +16,25 @@
|
|||||||
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Remove="common-schema.json" />
|
<None Remove="common-aethernetshard.json" />
|
||||||
<EmbeddedResource Include="common-schema.json">
|
<None Remove="common-aetheryte.json" />
|
||||||
<LogicalName>Questionable.Model.CommonSchema</LogicalName>
|
<None Remove="common-classjob.json" />
|
||||||
|
<None Remove="common-completionflags.json" />
|
||||||
|
<None Remove="common-vector3.json" />
|
||||||
|
<EmbeddedResource Include="common-aethernetshard.json">
|
||||||
|
<LogicalName>Questionable.Model.CommonAethernetShard</LogicalName>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="common-aetheryte.json">
|
||||||
|
<LogicalName>Questionable.Model.CommonAetheryte</LogicalName>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="common-classjob.json">
|
||||||
|
<LogicalName>Questionable.Model.CommonClassJob</LogicalName>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="common-completionflags.json">
|
||||||
|
<LogicalName>Questionable.Model.CommonCompletionFlags</LogicalName>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="common-vector3.json">
|
||||||
|
<LogicalName>Questionable.Model.CommonVector3</LogicalName>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
151
Questionable.Model/common-aethernetshard.json
Normal file
151
Questionable.Model/common-aethernetshard.json
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
|
"$id": "/liza/Questionable/raw/branch/master/Questionable.Model/common-aethernetshard.json",
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"[Gridania] Aetheryte Plaza",
|
||||||
|
"[Gridania] Archers' Guild",
|
||||||
|
"[Gridania] Leatherworkers' Guild & Shaded Bower",
|
||||||
|
"[Gridania] Lancers' Guild",
|
||||||
|
"[Gridania] Conjurers' Guild",
|
||||||
|
"[Gridania] Botanists' Guild",
|
||||||
|
"[Gridania] Mih Khetto's Amphitheatre",
|
||||||
|
"[Gridania] Blue Badger Gate (Central Shroud)",
|
||||||
|
"[Gridania] Yellow Serpent Gate (North Shroud)",
|
||||||
|
"[Gridania] White Wolf Gate (Central Shroud)",
|
||||||
|
"[Gridania] Airship Landing",
|
||||||
|
"[Ul'dah] Aetheryte Plaza",
|
||||||
|
"[Ul'dah] Adventurers' Guild",
|
||||||
|
"[Ul'dah] Thaumaturges' Guild",
|
||||||
|
"[Ul'dah] Gladiators' Guild",
|
||||||
|
"[Ul'dah] Miners' Guild",
|
||||||
|
"[Ul'dah] Weavers' Guild",
|
||||||
|
"[Ul'dah] Goldsmiths' Guild",
|
||||||
|
"[Ul'dah] Sapphire Avenue Exchange",
|
||||||
|
"[Ul'dah] Alchemists' Guild",
|
||||||
|
"[Ul'dah] Gate of the Sultana (Western Thanalan)",
|
||||||
|
"[Ul'dah] Gate of Nald (Central Thanalan)",
|
||||||
|
"[Ul'dah] Gate of Thal (Central Thanalan)",
|
||||||
|
"[Ul'dah] The Chamber of Rule",
|
||||||
|
"[Ul'dah] Airship Landing",
|
||||||
|
"[Limsa Lominsa] Aetheryte Plaza",
|
||||||
|
"[Limsa Lominsa] Arcanists' Guild",
|
||||||
|
"[Limsa Lominsa] Fishermens' Guild",
|
||||||
|
"[Limsa Lominsa] Hawkers' Alley",
|
||||||
|
"[Limsa Lominsa] The Aftcastle",
|
||||||
|
"[Limsa Lominsa] Culinarians' Guild",
|
||||||
|
"[Limsa Lominsa] Marauders' Guild",
|
||||||
|
"[Limsa Lominsa] Zephyr Gate (Middle La Noscea)",
|
||||||
|
"[Limsa Lominsa] Tempest Gate (Lower La Noscea)",
|
||||||
|
"[Limsa Lominsa] Airship Landing",
|
||||||
|
"[Gold Saucer] Aetheryte Plaza",
|
||||||
|
"[Gold Saucer] Entrance & Card Squares",
|
||||||
|
"[Gold Saucer] Wonder Square East",
|
||||||
|
"[Gold Saucer] Wonder Square West",
|
||||||
|
"[Gold Saucer] Event Square",
|
||||||
|
"[Gold Saucer] Cactpot Board",
|
||||||
|
"[Gold Saucer] Round Square",
|
||||||
|
"[Gold Saucer] Chocobo Square",
|
||||||
|
"[Gold Saucer] Minion Square",
|
||||||
|
"[Ishgard] Aetheryte Plaza",
|
||||||
|
"[Ishgard] The Forgotten Knight",
|
||||||
|
"[Ishgard] Skysteel Manufactory",
|
||||||
|
"[Ishgard] The Brume",
|
||||||
|
"[Ishgard] Athenaeum Astrologicum",
|
||||||
|
"[Ishgard] The Jeweled Crozier",
|
||||||
|
"[Ishgard] Saint Reymanaud's Cathedral",
|
||||||
|
"[Ishgard] The Tribunal",
|
||||||
|
"[Ishgard] The Last Vigil",
|
||||||
|
"[Ishgard] The Gates of Judgement (Coerthas Central Highlands)",
|
||||||
|
"[Ishgard] Firmament",
|
||||||
|
"[Firmament] The Mendicant's Court",
|
||||||
|
"[Firmament] The Mattock",
|
||||||
|
"[Firmament] The New Nest",
|
||||||
|
"[Firmament] Saint Roelle's Dais",
|
||||||
|
"[Firmament] Featherfall",
|
||||||
|
"[Firmament] Hoarfrost Hall",
|
||||||
|
"[Firmament] Western Risensong Quarter",
|
||||||
|
"[Firmament] Eastern Risensong Quarter",
|
||||||
|
"[Idyllshire] Aetheryte Plaza",
|
||||||
|
"[Idyllshire] West Idyllshire",
|
||||||
|
"[Idyllshire] Prologue Gate (Western Hinterlands)",
|
||||||
|
"[Idyllshire] Epilogue Gate (Eastern Hinterlands)",
|
||||||
|
"[Rhalgr's Reach] Aetheryte Plaza",
|
||||||
|
"[Rhalgr's Reach] Western Rhalgr's Reach",
|
||||||
|
"[Rhalgr's Reach] Northeastern Rhalgr's Reach",
|
||||||
|
"[Rhalgr's Reach] Fringes Gate",
|
||||||
|
"[Rhalgr's Reach] Peaks Gate",
|
||||||
|
"[Kugane] Aetheryte Plaza",
|
||||||
|
"[Kugane] Shiokaze Hostelry",
|
||||||
|
"[Kugane] Pier #1",
|
||||||
|
"[Kugane] Thavnairian Consulate",
|
||||||
|
"[Kugane] Kogane Dori Markets",
|
||||||
|
"[Kugane] Bokairo Inn",
|
||||||
|
"[Kugane] The Ruby Bazaar",
|
||||||
|
"[Kugane] Sekiseigumi Barracks",
|
||||||
|
"[Kugane] Rakuza District",
|
||||||
|
"[Kugane] The Ruby Price",
|
||||||
|
"[Kugane] Airship Landing",
|
||||||
|
"[Doman Enclave] Aetheryte Plaza",
|
||||||
|
"[Doman Enclave] The Northern Enclave",
|
||||||
|
"[Doman Enclave] The Southern Enclave",
|
||||||
|
"[Doman Enclave] Ferry Docks",
|
||||||
|
"[Doman Enclave] The One River",
|
||||||
|
"[Doman Enclave] Gangos",
|
||||||
|
"[Crystarium] Aetheryte Plaza",
|
||||||
|
"[Crystarium] Musica Universalis Markets",
|
||||||
|
"[Crystarium] Temenos Rookery",
|
||||||
|
"[Crystarium] The Dossal Gate",
|
||||||
|
"[Crystarium] The Pendants",
|
||||||
|
"[Crystarium] The Amaro Launch",
|
||||||
|
"[Crystarium] The Crystalline Mean",
|
||||||
|
"[Crystarium] The Cabinet of Curiosity",
|
||||||
|
"[Crystarium] Tessellation (Lakeland)",
|
||||||
|
"[Eulmore] Aetheryte Plaza",
|
||||||
|
"[Eulmore] Southeast Derelicts",
|
||||||
|
"[Eulmore] Nightsoil Pots",
|
||||||
|
"[Eulmore] The Glory Gate",
|
||||||
|
"[Eulmore] The Mainstay",
|
||||||
|
"[Eulmore] The Path to Glory (Kholusia)",
|
||||||
|
"[Old Sharlayan] Aetheryte Plaza",
|
||||||
|
"[Old Sharlayan] The Studium",
|
||||||
|
"[Old Sharlayan] The Baldesion Annex",
|
||||||
|
"[Old Sharlayan] The Rostra",
|
||||||
|
"[Old Sharlayan] The Leveilleur Estate",
|
||||||
|
"[Old Sharlayan] Journey's End",
|
||||||
|
"[Old Sharlayan] Scholar's Harbor",
|
||||||
|
"[Old Sharlayan] The Hall of Artifice (Labyrinthos)",
|
||||||
|
"[Radz-at-Han] Aetheryte Plaza",
|
||||||
|
"[Radz-at-Han] Meghaduta",
|
||||||
|
"[Radz-at-Han] Ruveydah Fibers",
|
||||||
|
"[Radz-at-Han] Airship Landing",
|
||||||
|
"[Radz-at-Han] Alzadaal's Peace",
|
||||||
|
"[Radz-at-Han] Hall of the Radiant Host",
|
||||||
|
"[Radz-at-Han] Mehryde's Meyhane",
|
||||||
|
"[Radz-at-Han] Kama",
|
||||||
|
"[Radz-at-Han] The High Crucible of Al-Kimiya",
|
||||||
|
"[Radz-at-Han] The Gate of First Sight (Thavnair)",
|
||||||
|
"[Tuliyollal] Aetheryte Plaza",
|
||||||
|
"[Tuliyollal] Dirigible Landing",
|
||||||
|
"[Tuliyollal] The Resplendent Quarter",
|
||||||
|
"[Tuliyollal] The For'ard Cabins",
|
||||||
|
"[Tuliyollal] Bayside Bevy Marketplace",
|
||||||
|
"[Tuliyollal] Vollok Shoonsa",
|
||||||
|
"[Tuliyollal] Wachumeqimeqi",
|
||||||
|
"[Tuliyollal] Brightploom Post",
|
||||||
|
"[Tuliyollal] Arch of the Dawn (Urqopacha)",
|
||||||
|
"[Tuliyollal] Arch of the Dawn (Kozama'uka)",
|
||||||
|
"[Tuliyollal] Ihuykatumu (Kozama'uka)",
|
||||||
|
"[Tuliyollal] Dirigible Landing (Yak T'el)",
|
||||||
|
"[Tuliyollal] Xak Tural Skygate (Shaaloani)",
|
||||||
|
"[Solution Nine] Aetheryte Plaza",
|
||||||
|
"[Solution Nine] Information Center",
|
||||||
|
"[Solution Nine] True Vue",
|
||||||
|
"[Solution Nine] Neon Stein",
|
||||||
|
"[Solution Nine] The Arcadion",
|
||||||
|
"[Solution Nine] Resolution",
|
||||||
|
"[Solution Nine] Nexus Arcade",
|
||||||
|
"[Solution Nine] Residential Sector",
|
||||||
|
"[Solution Nine] Scanning Port Nine (Heritage Found)"
|
||||||
|
]
|
||||||
|
}
|
114
Questionable.Model/common-aetheryte.json
Normal file
114
Questionable.Model/common-aetheryte.json
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
|
"$id": "/liza/Questionable/raw/branch/master/Questionable.Model/common-aetheryte.json",
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"Gridania",
|
||||||
|
"Central Shroud - Bentbranch Meadows",
|
||||||
|
"East Shroud - Hawthorne Hut",
|
||||||
|
"South Shroud - Quarrymill",
|
||||||
|
"South Shroud - Camp Tranquil",
|
||||||
|
"North Shroud - Fallgourd Float",
|
||||||
|
"Ul'dah",
|
||||||
|
"Western Thanalan - Horizon",
|
||||||
|
"Central Thanalan - Black Brush Station",
|
||||||
|
"Eastern Thanalan - Camp Drybone",
|
||||||
|
"Southern Thanalan - Little Ala Mhigo",
|
||||||
|
"Southern Thanalan - Forgotten Springs",
|
||||||
|
"Northern Thanalan - Camp Bluefog",
|
||||||
|
"Northern Thanalan - Ceruleum Processing Plant",
|
||||||
|
"Limsa Lominsa",
|
||||||
|
"Middle La Noscea - Summerford Farms",
|
||||||
|
"Lower La Noscea - Moraby Drydocks",
|
||||||
|
"Eastern La Noscea - Costa Del Sol",
|
||||||
|
"Eastern La Noscea - Wineport",
|
||||||
|
"Western La Noscea - Swiftperch",
|
||||||
|
"Western La Noscea - Aleport",
|
||||||
|
"Upper La Noscea - Camp Bronze Lake",
|
||||||
|
"Outer La Noscea - Camp Overlook",
|
||||||
|
"Coerthas Central Highlands - Camp Dragonhead",
|
||||||
|
"Mor Dhona",
|
||||||
|
"Wolves' Den Pier",
|
||||||
|
"Gold Saucer",
|
||||||
|
"Ishgard",
|
||||||
|
"Idyllshire",
|
||||||
|
"Coerthas Western Highlands - Falcon's Nest",
|
||||||
|
"The Sea of Clouds - Camp Cloudtop",
|
||||||
|
"The Sea of Clouds - Ok' Zundu",
|
||||||
|
"Azys Lla - Helix",
|
||||||
|
"The Dravanian Forelands - Tailfeather",
|
||||||
|
"The Dravanian Forelands - Anyx Trine",
|
||||||
|
"The Churning Mists - Moghome",
|
||||||
|
"The Churning Mists - Zenith",
|
||||||
|
"Rhalgr's Reach",
|
||||||
|
"Fringes - Castrum Oriens",
|
||||||
|
"Fringes - Peering Stones",
|
||||||
|
"Peaks - Ala Gannha",
|
||||||
|
"Peaks - Ala Ghiri",
|
||||||
|
"Lochs - Porta Praetoria",
|
||||||
|
"Lochs - Ala Mhigan Quarter",
|
||||||
|
"Kugane",
|
||||||
|
"Ruby Sea - Tamamizu",
|
||||||
|
"Ruby Sea - Onokoro",
|
||||||
|
"Yanxia - Namai",
|
||||||
|
"Yanxia - House of the Fierce",
|
||||||
|
"Azim Steppe - Reunion",
|
||||||
|
"Azim Steppe - Dawn Throne",
|
||||||
|
"Azim Steppe - Dhoro Iloh",
|
||||||
|
"Doman Enclave",
|
||||||
|
"Crystarium",
|
||||||
|
"Eulmore",
|
||||||
|
"Lakeland - Fort Jobb",
|
||||||
|
"Lakeland - Ostall Imperative",
|
||||||
|
"Kholusia - Stilltide",
|
||||||
|
"Kholusia - Wright",
|
||||||
|
"Kholusia - Tomra",
|
||||||
|
"Amh Araeng - Mord Souq",
|
||||||
|
"Amh Araeng - Inn at Journey's Head",
|
||||||
|
"Amh Araeng - Twine",
|
||||||
|
"Rak'tika - Slitherbough",
|
||||||
|
"Rak'tika - Fanow",
|
||||||
|
"Il Mheg - Lydha Lran",
|
||||||
|
"Il Mheg - Pla Enni",
|
||||||
|
"Il Mheg - Wolekdorf",
|
||||||
|
"Tempest - Ondo Cups",
|
||||||
|
"Tempest - Macarenses Angle",
|
||||||
|
"Old Sharlayan",
|
||||||
|
"Radz-at-Han",
|
||||||
|
"Labyrinthos - Archeion",
|
||||||
|
"Labyrinthos - Sharlayan Hamlet",
|
||||||
|
"Labyrinthos - Aporia",
|
||||||
|
"Thavnair - Yedlihmad",
|
||||||
|
"Thavnair - Great Work",
|
||||||
|
"Thavnair - Palaka's Stand",
|
||||||
|
"Garlemald - Camp Broken Glass",
|
||||||
|
"Garlemald - Tertium",
|
||||||
|
"Mare Lamentorum - Sinus Lacrimarum",
|
||||||
|
"Mare Lamentorum - Bestways Burrow",
|
||||||
|
"Elpis - Anagnorisis",
|
||||||
|
"Elpis - Twelve Wonders",
|
||||||
|
"Elpis - Poieten Oikos",
|
||||||
|
"Ultima Thule - Reah Tahra",
|
||||||
|
"Ultima Thule - Abode of the Ea",
|
||||||
|
"Ultima Thule - Base Omicron",
|
||||||
|
"Tuliyollal",
|
||||||
|
"Solution Nine",
|
||||||
|
"Urqopacha - Wachunpelo",
|
||||||
|
"Urqopacha - Worlar's Echo",
|
||||||
|
"Kozama'uka - Ok'hanu",
|
||||||
|
"Kozama'uka - Many Fires",
|
||||||
|
"Kozama'uka - Earthenshire",
|
||||||
|
"Kozama'uka - Dock Poga",
|
||||||
|
"Yak T'el - Iq Br'aax",
|
||||||
|
"Yak T'el - Mamook",
|
||||||
|
"Shaaloani - Hhusatahwi",
|
||||||
|
"Shaaloani - Sheshenewezi Springs",
|
||||||
|
"Shaaloani - Mehwahhetsoan",
|
||||||
|
"Heritage Found - Yyasulani Station",
|
||||||
|
"Heritage Found - The Outskirts",
|
||||||
|
"Heritage Found - Electrope Strike",
|
||||||
|
"Living Memory - Leynode Mnemo",
|
||||||
|
"Living Memory - Leynode Pyro",
|
||||||
|
"Living Memory - Leynode Aero"
|
||||||
|
]
|
||||||
|
}
|
53
Questionable.Model/common-classjob.json
Normal file
53
Questionable.Model/common-classjob.json
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
|
"$id": "/liza/Questionable/raw/branch/master/Questionable.Model/common-classjob.json",
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"Gladiator",
|
||||||
|
"Pugilist",
|
||||||
|
"Marauder",
|
||||||
|
"Lancer",
|
||||||
|
"Archer",
|
||||||
|
"Conjurer",
|
||||||
|
"Thaumaturge",
|
||||||
|
"Carpenter",
|
||||||
|
"Blacksmith",
|
||||||
|
"Armorer",
|
||||||
|
"Goldsmith",
|
||||||
|
"Leatherworker",
|
||||||
|
"Weaver",
|
||||||
|
"Alchemist",
|
||||||
|
"Culinarian",
|
||||||
|
"Miner",
|
||||||
|
"Botanist",
|
||||||
|
"Fisher",
|
||||||
|
"Paladin",
|
||||||
|
"Monk",
|
||||||
|
"Warrior",
|
||||||
|
"Dragoon",
|
||||||
|
"Bard",
|
||||||
|
"White Mage",
|
||||||
|
"Black Mage",
|
||||||
|
"Arcanist",
|
||||||
|
"Summoner",
|
||||||
|
"Scholar",
|
||||||
|
"Rogue",
|
||||||
|
"Ninja",
|
||||||
|
"Machinist",
|
||||||
|
"Dark Knight",
|
||||||
|
"Astrologian",
|
||||||
|
"Samurai",
|
||||||
|
"Red Mage",
|
||||||
|
"Blue Mage",
|
||||||
|
"Gunbreaker",
|
||||||
|
"Dancer",
|
||||||
|
"Reaper",
|
||||||
|
"Sage",
|
||||||
|
"Viper",
|
||||||
|
"Pictomancer",
|
||||||
|
"DoW",
|
||||||
|
"DoM",
|
||||||
|
"DoH",
|
||||||
|
"DoL"
|
||||||
|
]
|
||||||
|
}
|
59
Questionable.Model/common-completionflags.json
Normal file
59
Questionable.Model/common-completionflags.json
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
|
"$id": "/liza/Questionable/raw/branch/master/Questionable.Model/common-completionflags.json",
|
||||||
|
"type": "array",
|
||||||
|
"description": "Quest Variables that dictate whether or not this step is skipped: null is don't check, positive values need to be set, negative values need to be unset",
|
||||||
|
"items": {
|
||||||
|
"oneOf": [
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"High": {
|
||||||
|
"type": [
|
||||||
|
"number",
|
||||||
|
"null"
|
||||||
|
],
|
||||||
|
"minimum": 0,
|
||||||
|
"maximum": 15
|
||||||
|
},
|
||||||
|
"Low": {
|
||||||
|
"type": [
|
||||||
|
"number",
|
||||||
|
"null"
|
||||||
|
],
|
||||||
|
"minimum": 0,
|
||||||
|
"maximum": 15
|
||||||
|
},
|
||||||
|
"Negative": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"Mode": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"Bitwise",
|
||||||
|
"Exact"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"enum": [
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
4,
|
||||||
|
8,
|
||||||
|
16,
|
||||||
|
32,
|
||||||
|
64,
|
||||||
|
128
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "null"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"minItems": 6,
|
||||||
|
"maxItems": 6
|
||||||
|
}
|
@ -1,395 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json",
|
|
||||||
"$defs": {
|
|
||||||
"Vector3": {
|
|
||||||
"type": "object",
|
|
||||||
"description": "Position to try reaching after the jump",
|
|
||||||
"properties": {
|
|
||||||
"X": {
|
|
||||||
"type": "number"
|
|
||||||
},
|
|
||||||
"Y": {
|
|
||||||
"type": "number"
|
|
||||||
},
|
|
||||||
"Z": {
|
|
||||||
"type": "number"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"X",
|
|
||||||
"Y",
|
|
||||||
"Z"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"Aetheryte": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"Gridania",
|
|
||||||
"Central Shroud - Bentbranch Meadows",
|
|
||||||
"East Shroud - Hawthorne Hut",
|
|
||||||
"South Shroud - Quarrymill",
|
|
||||||
"South Shroud - Camp Tranquil",
|
|
||||||
"North Shroud - Fallgourd Float",
|
|
||||||
"Ul'dah",
|
|
||||||
"Western Thanalan - Horizon",
|
|
||||||
"Central Thanalan - Black Brush Station",
|
|
||||||
"Eastern Thanalan - Camp Drybone",
|
|
||||||
"Southern Thanalan - Little Ala Mhigo",
|
|
||||||
"Southern Thanalan - Forgotten Springs",
|
|
||||||
"Northern Thanalan - Camp Bluefog",
|
|
||||||
"Northern Thanalan - Ceruleum Processing Plant",
|
|
||||||
"Limsa Lominsa",
|
|
||||||
"Middle La Noscea - Summerford Farms",
|
|
||||||
"Lower La Noscea - Moraby Drydocks",
|
|
||||||
"Eastern La Noscea - Costa Del Sol",
|
|
||||||
"Eastern La Noscea - Wineport",
|
|
||||||
"Western La Noscea - Swiftperch",
|
|
||||||
"Western La Noscea - Aleport",
|
|
||||||
"Upper La Noscea - Camp Bronze Lake",
|
|
||||||
"Outer La Noscea - Camp Overlook",
|
|
||||||
"Coerthas Central Highlands - Camp Dragonhead",
|
|
||||||
"Mor Dhona",
|
|
||||||
"Wolves' Den Pier",
|
|
||||||
"Gold Saucer",
|
|
||||||
"Ishgard",
|
|
||||||
"Idyllshire",
|
|
||||||
"Coerthas Western Highlands - Falcon's Nest",
|
|
||||||
"The Sea of Clouds - Camp Cloudtop",
|
|
||||||
"The Sea of Clouds - Ok' Zundu",
|
|
||||||
"Azys Lla - Helix",
|
|
||||||
"The Dravanian Forelands - Tailfeather",
|
|
||||||
"The Dravanian Forelands - Anyx Trine",
|
|
||||||
"The Churning Mists - Moghome",
|
|
||||||
"The Churning Mists - Zenith",
|
|
||||||
"Rhalgr's Reach",
|
|
||||||
"Fringes - Castrum Oriens",
|
|
||||||
"Fringes - Peering Stones",
|
|
||||||
"Peaks - Ala Gannha",
|
|
||||||
"Peaks - Ala Ghiri",
|
|
||||||
"Lochs - Porta Praetoria",
|
|
||||||
"Lochs - Ala Mhigan Quarter",
|
|
||||||
"Kugane",
|
|
||||||
"Ruby Sea - Tamamizu",
|
|
||||||
"Ruby Sea - Onokoro",
|
|
||||||
"Yanxia - Namai",
|
|
||||||
"Yanxia - House of the Fierce",
|
|
||||||
"Azim Steppe - Reunion",
|
|
||||||
"Azim Steppe - Dawn Throne",
|
|
||||||
"Azim Steppe - Dhoro Iloh",
|
|
||||||
"Doman Enclave",
|
|
||||||
"Crystarium",
|
|
||||||
"Eulmore",
|
|
||||||
"Lakeland - Fort Jobb",
|
|
||||||
"Lakeland - Ostall Imperative",
|
|
||||||
"Kholusia - Stilltide",
|
|
||||||
"Kholusia - Wright",
|
|
||||||
"Kholusia - Tomra",
|
|
||||||
"Amh Araeng - Mord Souq",
|
|
||||||
"Amh Araeng - Inn at Journey's Head",
|
|
||||||
"Amh Araeng - Twine",
|
|
||||||
"Rak'tika - Slitherbough",
|
|
||||||
"Rak'tika - Fanow",
|
|
||||||
"Il Mheg - Lydha Lran",
|
|
||||||
"Il Mheg - Pla Enni",
|
|
||||||
"Il Mheg - Wolekdorf",
|
|
||||||
"Tempest - Ondo Cups",
|
|
||||||
"Tempest - Macarenses Angle",
|
|
||||||
"Old Sharlayan",
|
|
||||||
"Radz-at-Han",
|
|
||||||
"Labyrinthos - Archeion",
|
|
||||||
"Labyrinthos - Sharlayan Hamlet",
|
|
||||||
"Labyrinthos - Aporia",
|
|
||||||
"Thavnair - Yedlihmad",
|
|
||||||
"Thavnair - Great Work",
|
|
||||||
"Thavnair - Palaka's Stand",
|
|
||||||
"Garlemald - Camp Broken Glass",
|
|
||||||
"Garlemald - Tertium",
|
|
||||||
"Mare Lamentorum - Sinus Lacrimarum",
|
|
||||||
"Mare Lamentorum - Bestways Burrow",
|
|
||||||
"Elpis - Anagnorisis",
|
|
||||||
"Elpis - Twelve Wonders",
|
|
||||||
"Elpis - Poieten Oikos",
|
|
||||||
"Ultima Thule - Reah Tahra",
|
|
||||||
"Ultima Thule - Abode of the Ea",
|
|
||||||
"Ultima Thule - Base Omicron",
|
|
||||||
"Tuliyollal",
|
|
||||||
"Solution Nine",
|
|
||||||
"Urqopacha - Wachunpelo",
|
|
||||||
"Urqopacha - Worlar's Echo",
|
|
||||||
"Kozama'uka - Ok'hanu",
|
|
||||||
"Kozama'uka - Many Fires",
|
|
||||||
"Kozama'uka - Earthenshire",
|
|
||||||
"Kozama'uka - Dock Poga",
|
|
||||||
"Yak T'el - Iq Br'aax",
|
|
||||||
"Yak T'el - Mamook",
|
|
||||||
"Shaaloani - Hhusatahwi",
|
|
||||||
"Shaaloani - Sheshenewezi Springs",
|
|
||||||
"Shaaloani - Mehwahhetsoan",
|
|
||||||
"Heritage Found - Yyasulani Station",
|
|
||||||
"Heritage Found - The Outskirts",
|
|
||||||
"Heritage Found - Electrope Strike",
|
|
||||||
"Living Memory - Leynode Mnemo",
|
|
||||||
"Living Memory - Leynode Pyro",
|
|
||||||
"Living Memory - Leynode Aero"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"AethernetShard": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"[Gridania] Aetheryte Plaza",
|
|
||||||
"[Gridania] Archers' Guild",
|
|
||||||
"[Gridania] Leatherworkers' Guild & Shaded Bower",
|
|
||||||
"[Gridania] Lancers' Guild",
|
|
||||||
"[Gridania] Conjurers' Guild",
|
|
||||||
"[Gridania] Botanists' Guild",
|
|
||||||
"[Gridania] Mih Khetto's Amphitheatre",
|
|
||||||
"[Gridania] Blue Badger Gate (Central Shroud)",
|
|
||||||
"[Gridania] Yellow Serpent Gate (North Shroud)",
|
|
||||||
"[Gridania] White Wolf Gate (Central Shroud)",
|
|
||||||
"[Gridania] Airship Landing",
|
|
||||||
"[Ul'dah] Aetheryte Plaza",
|
|
||||||
"[Ul'dah] Adventurers' Guild",
|
|
||||||
"[Ul'dah] Thaumaturges' Guild",
|
|
||||||
"[Ul'dah] Gladiators' Guild",
|
|
||||||
"[Ul'dah] Miners' Guild",
|
|
||||||
"[Ul'dah] Weavers' Guild",
|
|
||||||
"[Ul'dah] Goldsmiths' Guild",
|
|
||||||
"[Ul'dah] Sapphire Avenue Exchange",
|
|
||||||
"[Ul'dah] Alchemists' Guild",
|
|
||||||
"[Ul'dah] Gate of the Sultana (Western Thanalan)",
|
|
||||||
"[Ul'dah] Gate of Nald (Central Thanalan)",
|
|
||||||
"[Ul'dah] Gate of Thal (Central Thanalan)",
|
|
||||||
"[Ul'dah] The Chamber of Rule",
|
|
||||||
"[Ul'dah] Airship Landing",
|
|
||||||
"[Limsa Lominsa] Aetheryte Plaza",
|
|
||||||
"[Limsa Lominsa] Arcanists' Guild",
|
|
||||||
"[Limsa Lominsa] Fishermens' Guild",
|
|
||||||
"[Limsa Lominsa] Hawkers' Alley",
|
|
||||||
"[Limsa Lominsa] The Aftcastle",
|
|
||||||
"[Limsa Lominsa] Culinarians' Guild",
|
|
||||||
"[Limsa Lominsa] Marauders' Guild",
|
|
||||||
"[Limsa Lominsa] Zephyr Gate (Middle La Noscea)",
|
|
||||||
"[Limsa Lominsa] Tempest Gate (Lower La Noscea)",
|
|
||||||
"[Limsa Lominsa] Airship Landing",
|
|
||||||
"[Gold Saucer] Aetheryte Plaza",
|
|
||||||
"[Gold Saucer] Entrance & Card Squares",
|
|
||||||
"[Gold Saucer] Wonder Square East",
|
|
||||||
"[Gold Saucer] Wonder Square West",
|
|
||||||
"[Gold Saucer] Event Square",
|
|
||||||
"[Gold Saucer] Cactpot Board",
|
|
||||||
"[Gold Saucer] Round Square",
|
|
||||||
"[Gold Saucer] Chocobo Square",
|
|
||||||
"[Gold Saucer] Minion Square",
|
|
||||||
"[Ishgard] Aetheryte Plaza",
|
|
||||||
"[Ishgard] The Forgotten Knight",
|
|
||||||
"[Ishgard] Skysteel Manufactory",
|
|
||||||
"[Ishgard] The Brume",
|
|
||||||
"[Ishgard] Athenaeum Astrologicum",
|
|
||||||
"[Ishgard] The Jeweled Crozier",
|
|
||||||
"[Ishgard] Saint Reymanaud's Cathedral",
|
|
||||||
"[Ishgard] The Tribunal",
|
|
||||||
"[Ishgard] The Last Vigil",
|
|
||||||
"[Ishgard] The Gates of Judgement (Coerthas Central Highlands)",
|
|
||||||
"[Ishgard] Firmament",
|
|
||||||
"[Firmament] The Mendicant's Court",
|
|
||||||
"[Firmament] The Mattock",
|
|
||||||
"[Firmament] The New Nest",
|
|
||||||
"[Firmament] Saint Roelle's Dais",
|
|
||||||
"[Firmament] Featherfall",
|
|
||||||
"[Firmament] Hoarfrost Hall",
|
|
||||||
"[Firmament] Western Risensong Quarter",
|
|
||||||
"[Firmament] Eastern Risensong Quarter",
|
|
||||||
"[Idyllshire] Aetheryte Plaza",
|
|
||||||
"[Idyllshire] West Idyllshire",
|
|
||||||
"[Idyllshire] Prologue Gate (Western Hinterlands)",
|
|
||||||
"[Idyllshire] Epilogue Gate (Eastern Hinterlands)",
|
|
||||||
"[Rhalgr's Reach] Aetheryte Plaza",
|
|
||||||
"[Rhalgr's Reach] Western Rhalgr's Reach",
|
|
||||||
"[Rhalgr's Reach] Northeastern Rhalgr's Reach",
|
|
||||||
"[Rhalgr's Reach] Fringes Gate",
|
|
||||||
"[Rhalgr's Reach] Peaks Gate",
|
|
||||||
"[Kugane] Aetheryte Plaza",
|
|
||||||
"[Kugane] Shiokaze Hostelry",
|
|
||||||
"[Kugane] Pier #1",
|
|
||||||
"[Kugane] Thavnairian Consulate",
|
|
||||||
"[Kugane] Kogane Dori Markets",
|
|
||||||
"[Kugane] Bokairo Inn",
|
|
||||||
"[Kugane] The Ruby Bazaar",
|
|
||||||
"[Kugane] Sekiseigumi Barracks",
|
|
||||||
"[Kugane] Rakuza District",
|
|
||||||
"[Kugane] The Ruby Price",
|
|
||||||
"[Kugane] Airship Landing",
|
|
||||||
"[Doman Enclave] Aetheryte Plaza",
|
|
||||||
"[Doman Enclave] The Northern Enclave",
|
|
||||||
"[Doman Enclave] The Southern Enclave",
|
|
||||||
"[Doman Enclave] Ferry Docks",
|
|
||||||
"[Doman Enclave] The One River",
|
|
||||||
"[Doman Enclave] Gangos",
|
|
||||||
"[Crystarium] Aetheryte Plaza",
|
|
||||||
"[Crystarium] Musica Universalis Markets",
|
|
||||||
"[Crystarium] Temenos Rookery",
|
|
||||||
"[Crystarium] The Dossal Gate",
|
|
||||||
"[Crystarium] The Pendants",
|
|
||||||
"[Crystarium] The Amaro Launch",
|
|
||||||
"[Crystarium] The Crystalline Mean",
|
|
||||||
"[Crystarium] The Cabinet of Curiosity",
|
|
||||||
"[Crystarium] Tessellation (Lakeland)",
|
|
||||||
"[Eulmore] Aetheryte Plaza",
|
|
||||||
"[Eulmore] Southeast Derelicts",
|
|
||||||
"[Eulmore] Nightsoil Pots",
|
|
||||||
"[Eulmore] The Glory Gate",
|
|
||||||
"[Eulmore] The Mainstay",
|
|
||||||
"[Eulmore] The Path to Glory (Kholusia)",
|
|
||||||
"[Old Sharlayan] Aetheryte Plaza",
|
|
||||||
"[Old Sharlayan] The Studium",
|
|
||||||
"[Old Sharlayan] The Baldesion Annex",
|
|
||||||
"[Old Sharlayan] The Rostra",
|
|
||||||
"[Old Sharlayan] The Leveilleur Estate",
|
|
||||||
"[Old Sharlayan] Journey's End",
|
|
||||||
"[Old Sharlayan] Scholar's Harbor",
|
|
||||||
"[Old Sharlayan] The Hall of Artifice (Labyrinthos)",
|
|
||||||
"[Radz-at-Han] Aetheryte Plaza",
|
|
||||||
"[Radz-at-Han] Meghaduta",
|
|
||||||
"[Radz-at-Han] Ruveydah Fibers",
|
|
||||||
"[Radz-at-Han] Airship Landing",
|
|
||||||
"[Radz-at-Han] Alzadaal's Peace",
|
|
||||||
"[Radz-at-Han] Hall of the Radiant Host",
|
|
||||||
"[Radz-at-Han] Mehryde's Meyhane",
|
|
||||||
"[Radz-at-Han] Kama",
|
|
||||||
"[Radz-at-Han] The High Crucible of Al-Kimiya",
|
|
||||||
"[Radz-at-Han] The Gate of First Sight (Thavnair)",
|
|
||||||
"[Tuliyollal] Aetheryte Plaza",
|
|
||||||
"[Tuliyollal] Dirigible Landing",
|
|
||||||
"[Tuliyollal] The Resplendent Quarter",
|
|
||||||
"[Tuliyollal] The For'ard Cabins",
|
|
||||||
"[Tuliyollal] Bayside Bevy Marketplace",
|
|
||||||
"[Tuliyollal] Vollok Shoonsa",
|
|
||||||
"[Tuliyollal] Wachumeqimeqi",
|
|
||||||
"[Tuliyollal] Brightploom Post",
|
|
||||||
"[Tuliyollal] Arch of the Dawn (Urqopacha)",
|
|
||||||
"[Tuliyollal] Arch of the Dawn (Kozama'uka)",
|
|
||||||
"[Tuliyollal] Ihuykatumu (Kozama'uka)",
|
|
||||||
"[Tuliyollal] Dirigible Landing (Yak T'el)",
|
|
||||||
"[Tuliyollal] Xak Tural Skygate (Shaaloani)",
|
|
||||||
"[Solution Nine] Aetheryte Plaza",
|
|
||||||
"[Solution Nine] Information Center",
|
|
||||||
"[Solution Nine] True Vue",
|
|
||||||
"[Solution Nine] Neon Stein",
|
|
||||||
"[Solution Nine] The Arcadion",
|
|
||||||
"[Solution Nine] Resolution",
|
|
||||||
"[Solution Nine] Nexus Arcade",
|
|
||||||
"[Solution Nine] Residential Sector",
|
|
||||||
"[Solution Nine] Scanning Port Nine (Heritage Found)"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ClassJob": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"Gladiator",
|
|
||||||
"Pugilist",
|
|
||||||
"Marauder",
|
|
||||||
"Lancer",
|
|
||||||
"Archer",
|
|
||||||
"Conjurer",
|
|
||||||
"Thaumaturge",
|
|
||||||
"Carpenter",
|
|
||||||
"Blacksmith",
|
|
||||||
"Armorer",
|
|
||||||
"Goldsmith",
|
|
||||||
"Leatherworker",
|
|
||||||
"Weaver",
|
|
||||||
"Alchemist",
|
|
||||||
"Culinarian",
|
|
||||||
"Miner",
|
|
||||||
"Botanist",
|
|
||||||
"Fisher",
|
|
||||||
"Paladin",
|
|
||||||
"Monk",
|
|
||||||
"Warrior",
|
|
||||||
"Dragoon",
|
|
||||||
"Bard",
|
|
||||||
"White Mage",
|
|
||||||
"Black Mage",
|
|
||||||
"Arcanist",
|
|
||||||
"Summoner",
|
|
||||||
"Scholar",
|
|
||||||
"Rogue",
|
|
||||||
"Ninja",
|
|
||||||
"Machinist",
|
|
||||||
"Dark Knight",
|
|
||||||
"Astrologian",
|
|
||||||
"Samurai",
|
|
||||||
"Red Mage",
|
|
||||||
"Blue Mage",
|
|
||||||
"Gunbreaker",
|
|
||||||
"Dancer",
|
|
||||||
"Reaper",
|
|
||||||
"Sage",
|
|
||||||
"Viper",
|
|
||||||
"Pictomancer",
|
|
||||||
"DoW",
|
|
||||||
"DoM",
|
|
||||||
"DoH",
|
|
||||||
"DoL"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"CompletionFlags": {
|
|
||||||
"type": "array",
|
|
||||||
"description": "Quest Variables that dictate whether or not this step is skipped: null is don't check, positive values need to be set, negative values need to be unset",
|
|
||||||
"items": {
|
|
||||||
"oneOf": [
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"High": {
|
|
||||||
"type": [
|
|
||||||
"number",
|
|
||||||
"null"
|
|
||||||
],
|
|
||||||
"minimum": 0,
|
|
||||||
"maximum": 15
|
|
||||||
},
|
|
||||||
"Low": {
|
|
||||||
"type": [
|
|
||||||
"number",
|
|
||||||
"null"
|
|
||||||
],
|
|
||||||
"minimum": 0,
|
|
||||||
"maximum": 15
|
|
||||||
},
|
|
||||||
"Negative": {
|
|
||||||
"type": "boolean"
|
|
||||||
},
|
|
||||||
"Mode": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"Bitwise",
|
|
||||||
"Exact"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "number",
|
|
||||||
"enum": [
|
|
||||||
1,
|
|
||||||
2,
|
|
||||||
4,
|
|
||||||
8,
|
|
||||||
16,
|
|
||||||
32,
|
|
||||||
64,
|
|
||||||
128
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "null"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"minItems": 6,
|
|
||||||
"maxItems": 6
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
22
Questionable.Model/common-vector3.json
Normal file
22
Questionable.Model/common-vector3.json
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
|
"$id": "/liza/Questionable/raw/branch/master/Questionable.Model/common-vector3.json",
|
||||||
|
"type": "object",
|
||||||
|
"description": "Position in the world",
|
||||||
|
"properties": {
|
||||||
|
"X": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"Y": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"Z": {
|
||||||
|
"type": "number"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"X",
|
||||||
|
"Y",
|
||||||
|
"Z"
|
||||||
|
]
|
||||||
|
}
|
@ -17,8 +17,20 @@ internal sealed class JsonSchemaValidator : IQuestValidator
|
|||||||
public JsonSchemaValidator()
|
public JsonSchemaValidator()
|
||||||
{
|
{
|
||||||
SchemaRegistry.Global.Register(
|
SchemaRegistry.Global.Register(
|
||||||
new Uri("https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-schema.json"),
|
new Uri("https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-aethernetshard.json"),
|
||||||
JsonSchema.FromStream(AssemblyModelLoader.CommonSchema).AsTask().Result);
|
JsonSchema.FromStream(AssemblyModelLoader.CommonAethernetShard).AsTask().Result);
|
||||||
|
SchemaRegistry.Global.Register(
|
||||||
|
new Uri("https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-aetheryte.json"),
|
||||||
|
JsonSchema.FromStream(AssemblyModelLoader.CommonAetheryte).AsTask().Result);
|
||||||
|
SchemaRegistry.Global.Register(
|
||||||
|
new Uri("https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-classjob.json"),
|
||||||
|
JsonSchema.FromStream(AssemblyModelLoader.CommonClassJob).AsTask().Result);
|
||||||
|
SchemaRegistry.Global.Register(
|
||||||
|
new Uri("https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-completionflags.json"),
|
||||||
|
JsonSchema.FromStream(AssemblyModelLoader.CommonCompletionFlags).AsTask().Result);
|
||||||
|
SchemaRegistry.Global.Register(
|
||||||
|
new Uri("https://git.carvel.li/liza/Questionable/raw/branch/master/Questionable.Model/common-vector3.json"),
|
||||||
|
JsonSchema.FromStream(AssemblyModelLoader.CommonVector3).AsTask().Result);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<ValidationIssue> Validate(Quest quest)
|
public IEnumerable<ValidationIssue> Validate(Quest quest)
|
||||||
|
Loading…
Reference in New Issue
Block a user