From 8f9440bf1a9f82d024dd67123fa15f816eb7e35a Mon Sep 17 00:00:00 2001 From: Ben C Date: Sat, 15 Feb 2025 03:38:18 +0000 Subject: [PATCH] Updated Schemas --- .../Schemas/addon_manifest_schema.json | 81 +++++++++++++++++++ NewHorizons/Schemas/body_schema.json | 45 ++++++----- 2 files changed, 104 insertions(+), 22 deletions(-) diff --git a/NewHorizons/Schemas/addon_manifest_schema.json b/NewHorizons/Schemas/addon_manifest_schema.json index a1e1d34a..d68f545c 100644 --- a/NewHorizons/Schemas/addon_manifest_schema.json +++ b/NewHorizons/Schemas/addon_manifest_schema.json @@ -38,6 +38,13 @@ "type": "string", "description": "The path to the addons subtitle for the main menu.\nDefaults to \"subtitle.png\".\nThe dimensions of the Echoes of the Eye subtitle is 669 x 67, so aim for that size" }, + "gameOver": { + "type": "array", + "description": "Custom game over messages for this mod. This can either display a title card before looping like in EOTE, or show a message and roll credits like the various time loop escape endings.\nYou must set a dialogue condition for the game over sequence to run.", + "items": { + "$ref": "#/definitions/GameOverModule" + } + }, "$schema": { "type": "string", "description": "The schema to validate with" @@ -79,6 +86,80 @@ } } } + }, + "GameOverModule": { + "type": "object", + "additionalProperties": false, + "properties": { + "text": { + "type": "string", + "description": "Text displayed in orange on game over. For localization, put translations under UI." + }, + "colour": { + "description": "Change the colour of the game over text. Leave empty to use the default orange.", + "$ref": "#/definitions/MColor" + }, + "condition": { + "type": "string", + "description": "Condition that must be true for this game over to trigger. If this is on a LoadCreditsVolume, leave empty to always trigger this game over.\nNote this is a regular dialogue condition, not a persistent condition." + }, + "creditsType": { + "description": "The type of credits that will run after the game over message is shown", + "default": "fast", + "$ref": "#/definitions/NHCreditsType" + } + } + }, + "MColor": { + "type": "object", + "additionalProperties": false, + "properties": { + "r": { + "type": "integer", + "description": "The red component of this colour from 0-255, higher values will make the colour glow if applicable.", + "format": "int32", + "maximum": 2147483647.0, + "minimum": 0.0 + }, + "g": { + "type": "integer", + "description": "The green component of this colour from 0-255, higher values will make the colour glow if applicable.", + "format": "int32", + "maximum": 2147483647.0, + "minimum": 0.0 + }, + "b": { + "type": "integer", + "description": "The blue component of this colour from 0-255, higher values will make the colour glow if applicable.", + "format": "int32", + "maximum": 2147483647.0, + "minimum": 0.0 + }, + "a": { + "type": "integer", + "description": "The alpha (opacity) component of this colour", + "format": "int32", + "default": 255, + "maximum": 255.0, + "minimum": 0.0 + } + } + }, + "NHCreditsType": { + "type": "string", + "description": "", + "x-enumNames": [ + "Fast", + "Final", + "Kazoo", + "None" + ], + "enum": [ + "fast", + "final", + "kazoo", + "none" + ] } }, "$docs": { diff --git a/NewHorizons/Schemas/body_schema.json b/NewHorizons/Schemas/body_schema.json index c7ccace0..c811e967 100644 --- a/NewHorizons/Schemas/body_schema.json +++ b/NewHorizons/Schemas/body_schema.json @@ -6391,10 +6391,6 @@ "type": "string", "description": "An optional rename of this object" }, - "creditsType": { - "default": "none", - "$ref": "#/definitions/NHCreditsType" - }, "deathType": { "description": "The type of death the player will have if they enter this volume. Don't set to have the camera just fade out.", "default": "default", @@ -6413,6 +6409,29 @@ } } }, + "GameOverModule": { + "type": "object", + "additionalProperties": false, + "properties": { + "text": { + "type": "string", + "description": "Text displayed in orange on game over. For localization, put translations under UI." + }, + "colour": { + "description": "Change the colour of the game over text. Leave empty to use the default orange.", + "$ref": "#/definitions/MColor" + }, + "condition": { + "type": "string", + "description": "Condition that must be true for this game over to trigger. If this is on a LoadCreditsVolume, leave empty to always trigger this game over.\nNote this is a regular dialogue condition, not a persistent condition." + }, + "creditsType": { + "description": "The type of credits that will run after the game over message is shown", + "default": "fast", + "$ref": "#/definitions/NHCreditsType" + } + } + }, "NHCreditsType": { "type": "string", "description": "", @@ -6429,24 +6448,6 @@ "none" ] }, - "GameOverModule": { - "type": "object", - "additionalProperties": false, - "properties": { - "text": { - "type": "string", - "description": "Text displayed in orange on game over. For localization, put translations under UI." - }, - "colour": { - "description": "Change the colour of the game over text. Leave empty to use the default orange.", - "$ref": "#/definitions/MColor" - }, - "condition": { - "type": "string", - "description": "Condition that must be true for this game over to trigger. Leave empty to always trigger this game over.\nNote this is a regular dialogue condition, not a persistent condition." - } - } - }, "CometTailModule": { "type": "object", "additionalProperties": false,