import "dota_commonmessages.proto";

option optimize_for = SPEED;
option cc_generic_services = false;

enum MLBot_MessageId {
	mlbot_MatchMetadata = 1;
	mlbot_TickBoundary = 2;
	mlbot_TeamState_Radiant = 3;
	mlbot_TeamState_Radiant_Delta = 4;
	mlbot_TeamState_Dire = 5;
	mlbot_TeamState_Dire_Delta = 6;
	mlbot_PlayerCommand = 7;
	mlbot_PlayerOrder = 8;
}

message CMsgMLBotMatchMetadata {
	message Player {
		optional int32 player_id = 1;
		optional int32 team_id = 2;
		optional int32 hero_id = 3;
		optional int32 rank = 4;
	}

	optional uint64 match_id = 1;
	optional uint64 lobby_id = 2;
	optional int32 lobby_type = 3 [default = -1];
	optional uint32 game_mode = 4;
	repeated .CMsgMLBotMatchMetadata.Player players = 5;
}

message CMsgMLBotTickBoundary {
	optional uint32 tick_number = 1;
}

message CMsgMLBot_PlayerOrder {
	optional int32 player_id = 1;
	optional int32 team_id = 2;
	optional int32 order_type = 3;
	repeated int32 selected_unit_handles = 4;
	optional int32 target_index = 5 [default = -1];
	optional int32 target_handle = 6 [default = -1];
	optional int32 ability_index = 7 [default = -1];
	optional int32 ability_handle = 8 [default = -1];
	optional float pos_x = 9;
	optional float pos_y = 10;
	optional float pos_z = 11;
	optional bool queue = 12;
}
