Initial import

This commit is contained in:
Andraxion 2026-06-26 18:18:14 -04:00
commit ab891a315c
773 changed files with 257255 additions and 0 deletions

View 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"
}
}
}
}
}
}
}

View 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"
}
}
}
}

View 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
}
}
}
}
}
}
}
}
}

View 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}$"
}
}
}
}
}
}

View 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"
}
}
}
}
}
}

View 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"
}
}
}
}
}
}

View 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
}
}
}
}
}
}

View 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"
}
}
}
}
}
}

View 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"
}
}
}
}
}
}
}

View 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"
}
}
}
}
}
}
}
}

View 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"
}
}
}
}
}
}
}
}
}

View 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"
}
}
}
}
}
}

View 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"
}
}
}
}
}
}

View 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"
}
}
}
}
}

View 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
}
}
}
}
}
}