Files
galaxy-game/pkg/schema/fbs/order.fbs
T
2026-03-31 19:16:34 +02:00

202 lines
3.1 KiB
Plaintext

// order reflects model/order/Order data object
namespace order;
enum Relation : byte {
UNKNOWN = 0,
WAR = 1,
PEACE = 2
}
enum ShipGroupCargo : byte {
UNKNOWN = 0,
COL = 1,
MAT = 2,
CAP = 3
}
enum ShipGroupUpgradeTech : byte {
UNKNOWN = 0,
ALL = 1,
DRIVE = 2,
WEAPONS = 3,
SHIELDS = 4,
CARGO = 5
}
enum PlanetProduction : byte {
UNKNOWN = 0,
MAT = 1,
CAP = 2,
DRIVE = 3,
WEAPONS = 4,
SHIELDS = 5,
CARGO = 6,
SCIENCE = 7,
SHIP = 8
}
enum PlanetRouteLoadType : byte {
UNKNOWN = 0,
MAT = 1,
CAP = 2,
COL = 3,
EMP = 4
}
table CommandRaceQuit {}
table CommandRaceVote {
acceptor: string;
}
table CommandRaceRelation {
acceptor: string;
relation: Relation = UNKNOWN;
}
table CommandShipClassCreate {
name: string;
drive: float64;
armament: int64;
weapons: float64;
shields: float64;
cargo: float64;
}
table CommandShipClassMerge {
name: string;
target: string;
}
table CommandShipClassRemove {
name: string;
}
table CommandShipGroupBreak {
id: string;
new_id: string;
quantity: int64;
}
table CommandShipGroupLoad {
id: string;
cargo: ShipGroupCargo = UNKNOWN;
quantity: float64;
}
table CommandShipGroupUnload {
id: string;
quantity: float64;
}
table CommandShipGroupSend {
id: string;
destination: int64;
}
table CommandShipGroupUpgrade {
id: string;
tech: ShipGroupUpgradeTech = UNKNOWN;
level: float64;
}
table CommandShipGroupMerge {}
table CommandShipGroupDismantle {
id: string;
}
table CommandShipGroupTransfer {
id: string;
acceptor: string;
}
table CommandShipGroupJoinFleet {
id: string;
name: string;
}
table CommandFleetMerge {
name: string;
target: string;
}
table CommandFleetSend {
name: string;
destination: int64;
}
table CommandScienceCreate {
name: string;
drive: float64;
weapons: float64;
shields: float64;
cargo: float64;
}
table CommandScienceRemove {
name: string;
}
table CommandPlanetRename {
number: int64;
name: string;
}
table CommandPlanetProduce {
number: int64;
production: PlanetProduction = UNKNOWN;
subject: string;
}
table CommandPlanetRouteSet {
origin: int64;
destination: int64;
load_type: PlanetRouteLoadType = UNKNOWN;
}
table CommandPlanetRouteRemove {
origin: int64;
load_type: PlanetRouteLoadType = UNKNOWN;
}
union CommandPayload {
CommandRaceQuit,
CommandRaceVote,
CommandRaceRelation,
CommandShipClassCreate,
CommandShipClassMerge,
CommandShipClassRemove,
CommandShipGroupBreak,
CommandShipGroupLoad,
CommandShipGroupUnload,
CommandShipGroupSend,
CommandShipGroupUpgrade,
CommandShipGroupMerge,
CommandShipGroupDismantle,
CommandShipGroupTransfer,
CommandShipGroupJoinFleet,
CommandFleetMerge,
CommandFleetSend,
CommandScienceCreate,
CommandScienceRemove,
CommandPlanetRename,
CommandPlanetProduce,
CommandPlanetRouteSet,
CommandPlanetRouteRemove
}
table CommandItem {
cmd_id: string;
cmd_applied: bool = null;
cmd_error_code: int64 = null;
payload: CommandPayload (required);
}
table Order {
updated_at: int64;
commands: [CommandItem];
}
root_type Order;