Initial import
This commit is contained in:
commit
ab891a315c
773 changed files with 257255 additions and 0 deletions
88
content/schema/abilities.schema.json
Normal file
88
content/schema/abilities.schema.json
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "Ability Definitions",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["schemaVersion", "abilities"],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"abilities": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["id", "name", "targeting", "cost", "power", "statusEffectsOnHit"],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"targeting": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["mode", "range", "requiresLos"],
|
||||
"properties": {
|
||||
"mode": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"range": {
|
||||
"type": "number"
|
||||
},
|
||||
"requiresLos": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
"cost": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["mp", "ap"],
|
||||
"properties": {
|
||||
"mp": {
|
||||
"type": "number"
|
||||
},
|
||||
"ap": {
|
||||
"type": "number"
|
||||
}
|
||||
}
|
||||
},
|
||||
"power": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["formula", "base", "scalingStat", "scaling"],
|
||||
"properties": {
|
||||
"formula": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"base": {
|
||||
"type": "number"
|
||||
},
|
||||
"scalingStat": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"scaling": {
|
||||
"type": "number"
|
||||
}
|
||||
}
|
||||
},
|
||||
"statusEffectsOnHit": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
28
content/schema/dev_config.schema.json
Normal file
28
content/schema/dev_config.schema.json
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "Developer Config",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["autoReloadWatch", "watchIntervalMs", "debugInventoryItems", "debugFlags"],
|
||||
"properties": {
|
||||
"autoReloadWatch": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"watchIntervalMs": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"debugInventoryItems": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"debugFlags": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
130
content/schema/dialogues.schema.json
Normal file
130
content/schema/dialogues.schema.json
Normal file
|
|
@ -0,0 +1,130 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "Dialogue Definitions",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["schemaVersion", "dialogues"],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"dialogues": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["id", "name", "description", "dialogueNodes"],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"dialogueNodes": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["id", "conditions", "reactions", "choices", "order"],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"conditions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["text", "conditionType", "conditionValue", "conditionStepId", "conditionNot", "nextId"],
|
||||
"properties": {
|
||||
"text": {
|
||||
"type": "string"
|
||||
},
|
||||
"conditionType": {
|
||||
"type": "string"
|
||||
},
|
||||
"conditionValue": {
|
||||
"type": "string"
|
||||
},
|
||||
"conditionStepId": {
|
||||
"type": "string"
|
||||
},
|
||||
"conditionNot": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"nextId": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"reactions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["reactionType", "reactionValue"],
|
||||
"properties": {
|
||||
"reactionType": {
|
||||
"type": "string"
|
||||
},
|
||||
"reactionValue": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"choices": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["text", "nextId", "conditionType", "conditionValue", "conditionStepId", "conditionNot", "reactionType", "reactionValue"],
|
||||
"properties": {
|
||||
"text": {
|
||||
"type": "string"
|
||||
},
|
||||
"nextId": {
|
||||
"type": "string"
|
||||
},
|
||||
"conditionType": {
|
||||
"type": "string"
|
||||
},
|
||||
"conditionValue": {
|
||||
"type": "string"
|
||||
},
|
||||
"conditionStepId": {
|
||||
"type": "string"
|
||||
},
|
||||
"conditionNot": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"reactionType": {
|
||||
"type": "string"
|
||||
},
|
||||
"reactionValue": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"order": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
38
content/schema/factions.schema.json
Normal file
38
content/schema/factions.schema.json
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "Faction Definitions",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["schemaVersion", "factions"],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"factions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["id", "name", "description", "color"],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"color": {
|
||||
"type": "string",
|
||||
"pattern": "^#[0-9A-Fa-f]{6}$"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
119
content/schema/images.schema.json
Normal file
119
content/schema/images.schema.json
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "Image Catalog",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["schemaVersion", "images"],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"images": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"id",
|
||||
"name",
|
||||
"description",
|
||||
"width",
|
||||
"height",
|
||||
"pixelScale",
|
||||
"opacity",
|
||||
"tags",
|
||||
"roles",
|
||||
"tileSymbol",
|
||||
"frames",
|
||||
"defaultFrame",
|
||||
"speed",
|
||||
"playback"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"width": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"height": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"pixelScale": {
|
||||
"type": "number",
|
||||
"minimum": 1
|
||||
},
|
||||
"opacity": {
|
||||
"type": "number",
|
||||
"minimum": 0
|
||||
},
|
||||
"tags": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"roles": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"enum": ["tile", "sprite"]
|
||||
}
|
||||
},
|
||||
"tileSymbol": {
|
||||
"type": "string"
|
||||
},
|
||||
"frames": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["id", "rows", "enabled", "index"],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"rows": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"index": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"defaultFrame": {
|
||||
"type": "string"
|
||||
},
|
||||
"speed": {
|
||||
"type": "number",
|
||||
"minimum": 0
|
||||
},
|
||||
"playback": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
123
content/schema/items.schema.json
Normal file
123
content/schema/items.schema.json
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "Item Definitions",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["schemaVersion", "items"],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"items": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"id",
|
||||
"name",
|
||||
"type",
|
||||
"actionsList",
|
||||
"rarity",
|
||||
"maxStack",
|
||||
"value",
|
||||
"actions",
|
||||
"questItem",
|
||||
"destroyable",
|
||||
"sellable",
|
||||
"unique",
|
||||
"effects",
|
||||
"tags",
|
||||
"icon"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"type": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"actionsList": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"required": ["action", "effects"],
|
||||
"properties": {
|
||||
"action": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"effects": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"triggers": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"rarity": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"maxStack": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"value": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"actions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"questItem": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"destroyable": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"sellable": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"unique": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"effects": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": true
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"icon": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
61
content/schema/loot_tables.schema.json
Normal file
61
content/schema/loot_tables.schema.json
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "Loot Table Definitions",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["schemaVersion", "lootTables"],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"lootTables": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["id", "entries", "rollsMin", "rollsMax"],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"entries": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["itemId", "weight", "min", "max"],
|
||||
"properties": {
|
||||
"itemId": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"weight": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"min": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"max": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"rollsMin": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"rollsMax": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
94
content/schema/monsters.schema.json
Normal file
94
content/schema/monsters.schema.json
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "Monster Definitions",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["schemaVersion", "monsters"],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"monsters": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"id",
|
||||
"name",
|
||||
"level",
|
||||
"faction",
|
||||
"stats",
|
||||
"aiProfileId",
|
||||
"abilities",
|
||||
"lootTableId",
|
||||
"tags",
|
||||
"sprite"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"level": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"faction": {
|
||||
"type": "string"
|
||||
},
|
||||
"stats": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["maxHp", "maxMp", "attack", "defense", "speed"],
|
||||
"properties": {
|
||||
"maxHp": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"maxMp": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"attack": {
|
||||
"type": "integer"
|
||||
},
|
||||
"defense": {
|
||||
"type": "integer"
|
||||
},
|
||||
"speed": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"aiProfileId": {
|
||||
"type": "string"
|
||||
},
|
||||
"abilities": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"lootTableId": {
|
||||
"type": "string"
|
||||
},
|
||||
"tags": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"sprite": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
83
content/schema/npc_templates.schema.json
Normal file
83
content/schema/npc_templates.schema.json
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "NPC Template Definitions",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["schemaVersion", "npcTemplates"],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"npcTemplates": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"id",
|
||||
"name",
|
||||
"description",
|
||||
"title",
|
||||
"faction",
|
||||
"spriteId",
|
||||
"defaultDialogueId",
|
||||
"shopInventoryId",
|
||||
"lootTableId",
|
||||
"abilities",
|
||||
"passiveAbilities",
|
||||
"flags"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"faction": {
|
||||
"type": "string"
|
||||
},
|
||||
"spriteId": {
|
||||
"type": "string"
|
||||
},
|
||||
"defaultDialogueId": {
|
||||
"type": "string"
|
||||
},
|
||||
"shopInventoryId": {
|
||||
"type": "string"
|
||||
},
|
||||
"lootTableId": {
|
||||
"type": "string"
|
||||
},
|
||||
"abilities": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"passiveAbilities": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"flags": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
106
content/schema/npcs.schema.json
Normal file
106
content/schema/npcs.schema.json
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "NPC Instance Payload",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["schemaVersion", "npcs"],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"npcs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"required": ["id", "name", "position"],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"faction": {
|
||||
"type": "string"
|
||||
},
|
||||
"spriteId": {
|
||||
"type": "string"
|
||||
},
|
||||
"defaultDialogueId": {
|
||||
"type": "string"
|
||||
},
|
||||
"dialogueId": {
|
||||
"type": "string"
|
||||
},
|
||||
"shopInventoryId": {
|
||||
"type": "string"
|
||||
},
|
||||
"lootTableId": {
|
||||
"type": "string"
|
||||
},
|
||||
"abilities": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"passiveAbilities": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"flags": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"layer": {
|
||||
"type": "integer"
|
||||
},
|
||||
"enabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"mapId": {
|
||||
"type": "string"
|
||||
},
|
||||
"entityType": {
|
||||
"type": "string"
|
||||
},
|
||||
"dialogueNodes": {
|
||||
"type": "array"
|
||||
},
|
||||
"position": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["x", "y"],
|
||||
"properties": {
|
||||
"x": {
|
||||
"type": "integer"
|
||||
},
|
||||
"y": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
104
content/schema/quests.schema.json
Normal file
104
content/schema/quests.schema.json
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "Quest Definitions",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["schemaVersion", "quests"],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"quests": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["questId", "name", "steps", "requirements", "reward"],
|
||||
"properties": {
|
||||
"questId": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"currentStepId": {
|
||||
"type": "string"
|
||||
},
|
||||
"completionState": {
|
||||
"type": "string"
|
||||
},
|
||||
"steps": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["id", "name", "conditionType", "conditionValue"],
|
||||
"properties": {
|
||||
"stepID": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"conditionType": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"conditionValue": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["conditionType", "conditionValue"],
|
||||
"properties": {
|
||||
"conditionType": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"conditionValue": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"reward": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["xp", "gold", "enabledConditions"],
|
||||
"properties": {
|
||||
"xp": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"gold": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"enabledConditions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
41
content/schema/world-bookmarks.schema.json
Normal file
41
content/schema/world-bookmarks.schema.json
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "World Bookmarks",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["schemaVersion", "worldId", "bookmarks"],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"worldId": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"bookmarks": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["id", "label", "x", "y"],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"label": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"x": {
|
||||
"type": "integer"
|
||||
},
|
||||
"y": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
141
content/schema/world-chunk.schema.json
Normal file
141
content/schema/world-chunk.schema.json
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "World Chunk",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"schemaVersion",
|
||||
"worldId",
|
||||
"chunkX",
|
||||
"chunkY",
|
||||
"width",
|
||||
"height",
|
||||
"backgroundTileId",
|
||||
"roomLayers",
|
||||
"heightLayers",
|
||||
"instances"
|
||||
],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"worldId": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"chunkX": {
|
||||
"type": "integer"
|
||||
},
|
||||
"chunkY": {
|
||||
"type": "integer"
|
||||
},
|
||||
"width": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"height": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"backgroundTileId": {
|
||||
"type": "string"
|
||||
},
|
||||
"roomLayers": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["layer", "rows", "instanceIds"],
|
||||
"properties": {
|
||||
"layer": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"rows": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"instanceIds": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"heightLayers": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["id", "z", "x", "y", "rows"],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"z": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"x": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"y": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"rows": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"instances": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["id", "layer", "x", "y", "record"],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"templateId": {
|
||||
"type": "string"
|
||||
},
|
||||
"layer": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"x": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"y": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"record": {
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
73
content/schema/world.schema.json
Normal file
73
content/schema/world.schema.json
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "World Definition",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["schemaVersion", "id", "name", "chunkWidth", "chunkHeight", "tileSize", "defaultBackgroundTileId", "spawn"],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"chunkWidth": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"chunkHeight": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"tileSize": {
|
||||
"type": "number",
|
||||
"minimum": 8
|
||||
},
|
||||
"backgroundColor": {
|
||||
"type": "string",
|
||||
"pattern": "^#[0-9A-Fa-f]{6}$"
|
||||
},
|
||||
"defaultBackgroundTileId": {
|
||||
"type": "string"
|
||||
},
|
||||
"heightBlurStep": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 1
|
||||
},
|
||||
"editorUi": {
|
||||
"type": "object"
|
||||
},
|
||||
"spawn": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["x", "y"],
|
||||
"properties": {
|
||||
"x": {
|
||||
"type": "integer"
|
||||
},
|
||||
"y": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"editor": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"defaultZoom": {
|
||||
"type": "number"
|
||||
},
|
||||
"gridVisible": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
35
content/schema/worlds.schema.json
Normal file
35
content/schema/worlds.schema.json
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "World Index",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["schemaVersion", "worlds"],
|
||||
"properties": {
|
||||
"schemaVersion": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"worlds": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["id", "name", "worldDir"],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
},
|
||||
"worldDir": {
|
||||
"type": "string",
|
||||
"minLength": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue