syntax = "proto3"; package dcs.coalition.v0; import "dcs/common/v0/common.proto"; option csharp_namespace = "RurouniJones.Dcs.Grpc.V0.Coalition"; option go_package = "github.com/DCS-gRPC/go-bindings/dcs/v0/coalition"; // https://wiki.hoggitworld.com/view/DCS_singleton_coalition service CoalitionService { // https://wiki.hoggitworld.com/view/DCS_func_addGroup rpc AddGroup(AddGroupRequest) returns (AddGroupResponse) {} // https://wiki.hoggitworld.com/view/DCS_func_getStaticObjects rpc GetStaticObjects(GetStaticObjectsRequest) returns (GetStaticObjectsResponse) {} // Focussed on statics (linked statics - see `AddLinkedStatic`) // https://wiki.hoggitworld.com/view/DCS_func_addStaticObject rpc AddStaticObject(AddStaticObjectRequest) returns (AddStaticObjectResponse) {} // Focussed on properties relevant to linked static objects // https://wiki.hoggitworld.com/view/DCS_func_addStaticObject rpc AddLinkedStatic(AddLinkedStaticRequest) returns (AddLinkedStaticResponse) {} // https://wiki.hoggitworld.com/view/DCS_func_getGroups rpc GetGroups(GetGroupsRequest) returns (GetGroupsResponse) {} /* * Get the Bullseye for the coalition * * This position is set at mission start and does not change for the duration * of the mission. * * See https://wiki.hoggitworld.com/view/DCS_func_getMainRefPoint for more * details */ rpc GetBullseye(GetBullseyeRequest) returns (GetBullseyeResponse) {} // https://wiki.hoggitworld.com/view/DCS_func_getPlayers rpc GetPlayerUnits(GetPlayerUnitsRequest) returns (GetPlayerUnitsResponse) {} } message AddGroupRequest { // The coalition is determined by the provided Country // and the coalition setup of the mission dcs.common.v0.Country country = 2; dcs.common.v0.GroupCategory group_category = 3; oneof template { GroundGroupTemplate ground_template = 4; ShipGroupTemplate ship_template = 5; HelicopterGroupTemplate helicopter_template = 6; PlaneGroupTemplate plane_template = 7; } message GroundGroupTemplate { optional uint32 group_id = 1; bool hidden = 2; bool late_activation = 3; string name = 4; dcs.common.v0.InputPosition position = 5; repeated Point waypoints = 6; uint32 start_time = 7; string task = 8; bool task_selected = 9; repeated Task tasks = 10; bool uncontrollable = 11; repeated GroundUnitTemplate units = 12; bool visible = 13; } message GroundUnitTemplate { string name = 1; string type = 2; dcs.common.v0.InputPosition position = 3; optional uint32 unit_id = 4; optional uint32 heading = 5; Skill skill = 6; } message ShipGroupTemplate { } message ShipUnitTemplate { } message HelicopterGroupTemplate { } message HelicopterUnitTemplate { } message PlaneGroupTemplate { } message PlaneUnitTemplate { } message Point { enum AltitudeType { ALTITUDE_TYPE_UNSPECIFIED = 0; ALTITUDE_TYPE_BAROMETRIC = 1; ALTITUDE_TYPE_RADIO = 2; } enum PointType { // protolint:disable:next ENUM_FIELD_NAMES_ZERO_VALUE_END_WITH POINT_TYPE_RANDOM = 0; POINT_TYPE_TAKEOFF = 1; POINT_TYPE_TAKEOFF_PARKING = 2; POINT_TYPE_TURNING_POINT = 3; POINT_TYPE_TAKEOFF_PARKING_HOT = 4; POINT_TYPE_LAND = 5; } dcs.common.v0.InputPosition position = 1; AltitudeType altitude_type = 2; PointType type = 3; string action = 4; string form = 5; double speed = 6; } enum Skill { // protolint:disable:next ENUM_FIELD_NAMES_ZERO_VALUE_END_WITH SKILL_RANDOM = 0; SKILL_AVERAGE = 1; SKILL_GOOD = 2; SKILL_HIGH = 3; SKILL_EXCELLENT = 4; SKILL_PLAYER = 5; } message Task { } } message AddGroupResponse { dcs.common.v0.Group group = 1; } message GetStaticObjectsRequest { // the coalition which the statics belong to dcs.common.v0.Coalition coalition = 1; } message GetStaticObjectsResponse { // the list of statics repeated dcs.common.v0.Static statics = 1; } message AddStaticObjectRequest { // the name of the static; must be unique or would destroy previous object string name = 1; // country the unit belongs to dcs.common.v0.Country country = 2; // type of the static object (e.g. "Farm A", "AS32-31A") string type = 3; // string name of the livery for the aircraft string livery = 4; // boolean for whether or not the object will appear as a wreck bool dead = 5; // number value for the "score" of the object when it is killed optional uint32 rate = 6; double heading = 7; dcs.common.v0.InputPosition position = 8; // cargo mass in kilograms uint32 cargo_mass = 9; } message AddStaticObjectResponse { string name = 1; } message AddLinkedStaticRequest { // the name of the static; must be unique or would destroy previous object string name = 1; // country the unit belongs to dcs.common.v0.Country country = 2; // type of the static object (e.g. "Farm A", "AS32-31A") string type = 3; // string name of the livery for the aircraft string livery = 4; // boolean for whether or not the object will appear as a wreck bool dead = 5; // number value for the "score" of the object when it is killed optional uint32 rate = 6; // the name of the unit to offset from string unit = 7; // the angle to relative to the linked unit, in a clockwise direction. // negative values are anti-clockwise double angle = 8; // x offset from linked unit center (positive is forward; negative is aft) double x = 9; // y offset from linked unit center (positive is starboard-side; // negative is port-side) double y = 10; } message AddLinkedStaticResponse { string name = 1; } message GetGroupsRequest { dcs.common.v0.Coalition coalition = 1; dcs.common.v0.GroupCategory category = 2; } message GetGroupsResponse { repeated dcs.common.v0.Group groups = 1; } message GetBullseyeRequest { // A specific coalition must be used for this API call. Do not use // `COALITION_ALL` dcs.common.v0.Coalition coalition = 1; } message GetBullseyeResponse { dcs.common.v0.Position position = 1; } message GetPlayerUnitsRequest { dcs.common.v0.Coalition coalition = 1; } message GetPlayerUnitsResponse { repeated dcs.common.v0.Unit units = 1; }