breaking: jump gates and construction

This commit is contained in:
SpaceAdmiral 2023-10-04 13:46:37 -07:00
parent 3463a3593a
commit 3e19fc085a
6 changed files with 203 additions and 23 deletions

26
models/Construction.json Normal file
View File

@ -0,0 +1,26 @@
{
"type": "object",
"description": "The construction details of a waypoint.",
"properties": {
"symbol": {
"type": "string",
"description": "The symbol of the waypoint."
},
"materials": {
"type": "array",
"description": "The materials required to construct the waypoint.",
"items": {
"$ref": "./ConstructionMaterial.json"
}
},
"isComplete": {
"type": "boolean",
"description": "Whether the waypoint has been constructed."
}
},
"required": [
"symbol",
"materials",
"isComplete"
]
}

View File

@ -0,0 +1,22 @@
{
"description": "The details of the required construction materials for a given waypoint under construction.",
"type": "object",
"properties": {
"tradeSymbol": {
"$ref": "./TradeSymbol.json"
},
"required": {
"type": "integer",
"description": "The number of units required."
},
"fulfilled": {
"type": "integer",
"description": "The number of units fulfilled toward the required amount."
}
},
"required": [
"tradeSymbol",
"required",
"fulfilled"
]
}

View File

@ -2,24 +2,16 @@
"type": "object", "type": "object",
"description": "", "description": "",
"properties": { "properties": {
"jumpRange": { "connections": {
"type": "number",
"description": "The maximum jump range of the gate."
},
"factionSymbol": {
"type": "string",
"description": "The symbol of the faction that owns the gate."
},
"connectedSystems": {
"type": "array", "type": "array",
"description": "The systems within range of the gate that have a corresponding gate.", "description": "All the gates that are connected to this waypoint.",
"items": { "items": {
"$ref": "./ConnectedSystem.json" "type": "string",
"description": "The symbol of the waypoint that has a corresponding gate."
} }
} }
}, },
"required": [ "required": [
"jumpRange", "connections"
"connectedSystems"
] ]
} }

View File

@ -51,6 +51,7 @@
"CLOTHING", "CLOTHING",
"MICROPROCESSORS", "MICROPROCESSORS",
"PLASTICS", "PLASTICS",
"QUANTUM_STABILIZERS",
"POLYNUCLEOTIDES", "POLYNUCLEOTIDES",
"BIOCOMPOSITES", "BIOCOMPOSITES",
"NANOBOTS", "NANOBOTS",

View File

@ -54,6 +54,10 @@
}, },
"chart": { "chart": {
"$ref": "./Chart.json" "$ref": "./Chart.json"
},
"isUnderConstruction": {
"type": "boolean",
"description": "True if the waypoint is under construction."
} }
}, },
"required": [ "required": [
@ -63,6 +67,7 @@
"x", "x",
"y", "y",
"orbitals", "orbitals",
"traits" "traits",
"isUnderConstruction"
] ]
} }

View File

@ -695,7 +695,7 @@
}, },
"/systems/{systemSymbol}/waypoints/{waypointSymbol}/jump-gate": { "/systems/{systemSymbol}/waypoints/{waypointSymbol}/jump-gate": {
"get": { "get": {
"description": "Get jump gate details for a waypoint. Requires a waypoint of type `JUMP_GATE` to use.\n\nThe response will return all systems that are have a Jump Gate in range of this Jump Gate. Those systems can be jumped to from this Jump Gate.", "description": "Get jump gate details for a waypoint. Requires a waypoint of type `JUMP_GATE` to use.\n\nWaypoints connected to this jump gate can be ",
"operationId": "get-jump-gate", "operationId": "get-jump-gate",
"responses": { "responses": {
"200": { "200": {
@ -750,6 +750,140 @@
} }
] ]
}, },
"/systems/{systemSymbol}/waypoints/{waypointSymbol}/construction": {
"get": {
"description": "Get construction details for a waypoint. Requires a waypoint with a property of `isUnderConstruction` to be true.",
"operationId": "get-construction",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"$ref": "../models/Construction.json"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "Successfully fetched construction site."
}
},
"security": [
{},
{
"AgentToken": []
}
],
"summary": "Get Construction Site",
"tags": [
"Systems"
]
}
},
"/systems/{systemSymbol}/waypoints/{waypointSymbol}/construction/supply": {
"post": {
"description": "Supply a construction site with the specified good. Requires a waypoint with a property of `isUnderConstruction` to be true.\n\nThe good must be in your ship's cargo. The good will be removed from your ship's cargo and added to the construction site's materials.",
"operationId": "supply-construction",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"shipSymbol": {
"type": "string",
"description": "Symbol of the ship to use."
},
"tradeSymbol": {
"type": "string",
"description": "The symbol of the good to supply."
},
"units": {
"type": "integer",
"description": "Amount of units to supply."
}
},
"required": [
"shipSymbol",
"tradeSymbol",
"units"
],
"type": "object"
}
}
},
"description": ""
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"description": "",
"properties": {
"data": {
"properties": {
"construction": {
"$ref": "../models/Construction.json"
},
"cargo": {
"$ref": "../models/ShipCargo.json"
}
},
"required": [
"construction",
"cargo"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
}
}
},
"description": "Successfully supplied construction site."
}
},
"security": [
{
"AgentToken": []
}
],
"summary": "Supply Construction Site",
"tags": [
"Systems"
]
},
"parameters": [
{
"description": "The system symbol",
"in": "path",
"name": "systemSymbol",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The waypoint symbol",
"in": "path",
"name": "waypointSymbol",
"required": true,
"schema": {
"type": "string"
}
}
]
},
"/factions": { "/factions": {
"get": { "get": {
"description": "Return a paginated list of all the factions in the game.", "description": "Return a paginated list of all the factions in the game.",
@ -2211,20 +2345,20 @@
} }
], ],
"post": { "post": {
"description": "Jump your ship instantly to a target system. The ship must be in orbit to use this function. When used while in orbit of a Jump Gate waypoint, any ship can use this command, jumping to the target system's Jump Gate waypoint.\n\nWhen used elsewhere, jumping requires the ship to have a `Jump Drive` module installed and consumes a unit of antimatter from the ship's cargo. The command will fail if there is no antimatter to consume. When jumping via the `Jump Drive` module, the ship ends up at its largest source of energy in the system, such as a gas planet or a jump gate.", "description": "Jump your ship instantly to a target connected waypoint. The ship must be in orbit to execute a jump.\n\nA unit of antimatter is purchased and consumed from the market when jumping. The price of antimatter is determined by the market and is subject to change. A ship can only jump to connected waypoints",
"operationId": "jump-ship", "operationId": "jump-ship",
"requestBody": { "requestBody": {
"content": { "content": {
"application/json": { "application/json": {
"schema": { "schema": {
"properties": { "properties": {
"systemSymbol": { "waypointSymbol": {
"description": "The system symbol to jump to.", "description": "The symbol of the waypoint to jump to. The destination must be a connected waypoint.",
"type": "string" "type": "string"
} }
}, },
"required": [ "required": [
"systemSymbol" "waypointSymbol"
], ],
"type": "object" "type": "object"
} }
@ -2240,16 +2374,16 @@
"properties": { "properties": {
"data": { "data": {
"properties": { "properties": {
"cooldown": {
"$ref": "../models/Cooldown.json"
},
"nav": { "nav": {
"$ref": "../models/ShipNav.json" "$ref": "../models/ShipNav.json"
},
"transaction": {
"$ref": "../models/MarketTransaction.json"
} }
}, },
"required": [ "required": [
"nav", "nav",
"cooldown" "transaction"
], ],
"type": "object" "type": "object"
} }