Merge pull request #87 from SpaceTradersAPI/sa/ship-condition

Ship Condition Update
This commit is contained in:
Joel Brubaker 2024-03-10 10:12:15 -07:00 committed by GitHub
commit c35fa54f66
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 396 additions and 12 deletions

View File

@ -0,0 +1,29 @@
{
"type": "object",
"properties": {
"waypointSymbol": {
"$ref": "./WaypointSymbol.json"
},
"shipSymbol": {
"type": "string",
"description": "The symbol of the ship."
},
"totalPrice": {
"type": "integer",
"description": "The total price of the transaction.",
"minimum": 0
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "The timestamp of the transaction."
}
},
"required": [
"waypointSymbol",
"shipSymbol",
"totalPrice",
"timestamp"
],
"description": "Result of a repair transaction."
}

View File

@ -0,0 +1,29 @@
{
"type": "object",
"properties": {
"waypointSymbol": {
"$ref": "./WaypointSymbol.json"
},
"shipSymbol": {
"type": "string",
"description": "The symbol of the ship."
},
"totalPrice": {
"type": "integer",
"description": "The total price of the transaction.",
"minimum": 0
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "The timestamp of the transaction."
}
},
"required": [
"waypointSymbol",
"shipSymbol",
"totalPrice",
"timestamp"
],
"description": "Result of a scrap transaction."
}

View File

@ -0,0 +1,7 @@
{
"type": "number",
"format": "double",
"description": "The repairable condition of a component. A value of 0 indicates the component needs significant repairs, while a value of 1 indicates the component is in near perfect condition. As the condition of a component is repaired, the overall integrity of the component decreases.",
"minimum": 0,
"maximum": 1
}

View File

@ -0,0 +1,7 @@
{
"type": "number",
"format": "double",
"description": "The overall integrity of the component, which determines the performance of the component. A value of 0 indicates that the component is almost completely degraded, while a value of 1 indicates that the component is in near perfect condition. The integrity of the component is non-repairable, and represents permanent wear over time.",
"minimum": 0,
"maximum": 1
}

View File

@ -1,6 +0,0 @@
{
"type": "integer",
"description": "Condition is a range of 0 to 100 where 0 is completely worn out and 100 is brand new.",
"minimum": 0,
"maximum": 100
}

View File

@ -0,0 +1,60 @@
{
"type": "object",
"description": "An event that represents damage or wear to a ship's reactor, frame, or engine, reducing the condition of the ship.",
"properties": {
"symbol": {
"type": "string",
"enum": [
"REACTOR_OVERLOAD",
"ENERGY_SPIKE_FROM_MINERAL",
"SOLAR_FLARE_INTERFERENCE",
"COOLANT_LEAK",
"POWER_DISTRIBUTION_FLUCTUATION",
"MAGNETIC_FIELD_DISRUPTION",
"HULL_MICROMETEORITE_STRIKES",
"STRUCTURAL_STRESS_FRACTURES",
"CORROSIVE_MINERAL_CONTAMINATION",
"THERMAL_EXPANSION_MISMATCH",
"VIBRATION_DAMAGE_FROM_DRILLING",
"ELECTROMAGNETIC_FIELD_INTERFERENCE",
"IMPACT_WITH_EXTRACTED_DEBRIS",
"FUEL_EFFICIENCY_DEGRADATION",
"COOLANT_SYSTEM_AGEING",
"DUST_MICROABRASIONS",
"THRUSTER_NOZZLE_WEAR",
"EXHAUST_PORT_CLOGGING",
"BEARING_LUBRICATION_FADE",
"SENSOR_CALIBRATION_DRIFT",
"HULL_MICROMETEORITE_DAMAGE",
"SPACE_DEBRIS_COLLISION",
"THERMAL_STRESS",
"VIBRATION_OVERLOAD",
"PRESSURE_DIFFERENTIAL_STRESS",
"ELECTROMAGNETIC_SURGE_EFFECTS",
"ATMOSPHERIC_ENTRY_HEAT"
]
},
"component": {
"type": "string",
"enum": [
"FRAME",
"REACTOR",
"ENGINE"
]
},
"name": {
"type": "string",
"description": "The name of the event."
},
"description": {
"type": "string",
"description": "A description of the event."
}
},
"required": [
"symbol",
"component",
"name",
"description"
]
}

View File

@ -21,7 +21,10 @@
"description": "The description of the engine."
},
"condition": {
"$ref": "./ShipCondition.json"
"$ref": "./ShipComponentCondition.json"
},
"integrity": {
"$ref": "./ShipComponentIntegrity.json"
},
"speed": {
"type": "integer",
@ -35,6 +38,8 @@
"required": [
"symbol",
"name",
"condition",
"performance",
"description",
"speed",
"requirements"

View File

@ -32,7 +32,10 @@
"description": "Description of the frame."
},
"condition": {
"$ref": "./ShipCondition.json"
"$ref": "./ShipComponentCondition.json"
},
"integrity": {
"$ref": "./ShipComponentIntegrity.json"
},
"moduleSlots": {
"type": "integer",
@ -56,6 +59,8 @@
"required": [
"symbol",
"name",
"condition",
"performance",
"description",
"moduleSlots",
"mountingPoints",

View File

@ -22,7 +22,10 @@
"description": "Description of the reactor."
},
"condition": {
"$ref": "./ShipCondition.json"
"$ref": "./ShipComponentCondition.json"
},
"integrity": {
"$ref": "./ShipComponentIntegrity.json"
},
"powerOutput": {
"type": "integer",
@ -36,6 +39,8 @@
"required": [
"symbol",
"name",
"condition",
"performance",
"description",
"powerOutput",
"requirements"

View File

@ -2196,12 +2196,23 @@
},
"cargo": {
"$ref": "../models/ShipCargo.json"
},
"events": {
"type": "array",
"items": {
"oneOf": [
{
"$ref": "../models/ShipConditionEvent.json"
}
]
}
}
},
"required": [
"extraction",
"cooldown",
"cargo"
"cargo",
"events"
],
"type": "object"
}
@ -2259,12 +2270,23 @@
},
"cargo": {
"$ref": "../models/ShipCargo.json"
},
"events": {
"type": "array",
"items": {
"oneOf": [
{
"$ref": "../models/ShipConditionEvent.json"
}
]
}
}
},
"required": [
"siphon",
"cooldown",
"cargo"
"cargo",
"events"
],
"type": "object"
}
@ -2573,11 +2595,22 @@
},
"nav": {
"$ref": "../models/ShipNav.json"
},
"events": {
"type": "array",
"items": {
"oneOf": [
{
"$ref": "../models/ShipConditionEvent.json"
}
]
}
}
},
"required": [
"nav",
"fuel"
"fuel",
"events"
],
"type": "object"
}
@ -3589,6 +3622,216 @@
"Fleet"
]
}
},
"/my/ships/{shipSymbol}/scrap": {
"parameters": [
{
"description": "The ship symbol.",
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
],
"get": {
"x-preview-feature": true,
"description": "Get the amount of value that will be returned when scrapping a ship.",
"operationId": "get-scrap-ship",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"properties": {
"transaction": {
"$ref": "../models/ScrapTransaction.json"
}
},
"required": [
"transaction"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "Successfully retrieved the amount of value that will be returned when scrapping a ship."
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Get Scrap Ship",
"tags": [
"Fleet"
]
},
"post": {
"x-preview-feature": true,
"description": "Scrap a ship, removing it from the game and returning a portion of the ship's value to the agent. The ship must be docked in a waypoint that has the `Shipyard` trait in order to use this function. To preview the amount of value that will be returned, use the Get Ship action.",
"operationId": "scrap-ship",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"properties": {
"agent": {
"$ref": "../models/Agent.json"
},
"transaction": {
"$ref": "../models/ScrapTransaction.json"
}
},
"required": [
"agent",
"transaction"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "Ship scrapped successfully."
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Scrap Ship",
"tags": [
"Fleet"
]
}
},
"/my/ships/{shipSymbol}/repair": {
"parameters": [
{
"description": "The ship symbol.",
"in": "path",
"name": "shipSymbol",
"required": true,
"schema": {
"type": "string"
}
}
],
"get": {
"x-preview-feature": true,
"description": "Get the cost of repairing a ship.",
"operationId": "get-repair-ship",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"properties": {
"transaction": {
"$ref": "../models/RepairTransaction.json"
}
},
"required": [
"transaction"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "Successfully retrieved the cost of repairing a ship."
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Get Repair Ship",
"tags": [
"Fleet"
]
},
"post": {
"x-preview-feature": true,
"description": "Repair a ship, restoring the ship to maximum condition. The ship must be docked at a waypoint that has the `Shipyard` trait in order to use this function. To preview the cost of repairing the ship, use the Get action.",
"operationId": "repair-ship",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"properties": {
"agent": {
"$ref": "../models/Agent.json"
},
"ship": {
"$ref": "../models/Ship.json"
},
"transaction": {
"$ref": "../models/RepairTransaction.json"
}
},
"required": [
"agent",
"ship",
"transaction"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "Ship repaired successfully."
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Repair Ship",
"tags": [
"Fleet"
]
}
}
}
}