sc2ai 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/data/sc2ai/protocol/common.proto +5 -5
- data/data/sc2ai/protocol/data.proto +22 -22
- data/data/sc2ai/protocol/debug.proto +24 -24
- data/data/sc2ai/protocol/error.proto +216 -215
- data/data/sc2ai/protocol/raw.proto +20 -20
- data/data/sc2ai/protocol/sc2api.proto +111 -111
- data/data/sc2ai/protocol/score.proto +3 -3
- data/data/sc2ai/protocol/spatial.proto +5 -5
- data/data/sc2ai/protocol/ui.proto +16 -16
- data/exe/sc2ai +0 -3
- data/lib/docker_build/Dockerfile.ruby +2 -2
- data/lib/sc2ai/api/data.rb +3 -3
- data/lib/sc2ai/connection/connection_listener.rb +3 -3
- data/lib/sc2ai/connection/requests.rb +31 -35
- data/lib/sc2ai/connection/status_listener.rb +1 -1
- data/lib/sc2ai/connection.rb +2 -3
- data/lib/sc2ai/local_play/client/configurable_options.rb +6 -7
- data/lib/sc2ai/local_play/client.rb +3 -3
- data/lib/sc2ai/local_play/match.rb +7 -2
- data/lib/sc2ai/paths.rb +12 -2
- data/lib/sc2ai/player/actions.rb +54 -35
- data/lib/sc2ai/player/debug.rb +21 -21
- data/lib/sc2ai/player/game_state.rb +11 -18
- data/lib/sc2ai/player/geo.rb +54 -64
- data/lib/sc2ai/player/units.rb +16 -16
- data/lib/sc2ai/player.rb +103 -41
- data/lib/sc2ai/ports.rb +1 -1
- data/lib/sc2ai/protocol/_meta_documentation.rb +265 -265
- data/lib/sc2ai/protocol/common_pb.rb +3865 -15
- data/lib/sc2ai/protocol/data_pb.rb +9109 -18
- data/lib/sc2ai/protocol/debug_pb.rb +10437 -26
- data/lib/sc2ai/protocol/error_pb.rb +1086 -10
- data/lib/sc2ai/protocol/extensions/ability_remapable.rb +9 -9
- data/lib/sc2ai/protocol/extensions/action.rb +60 -0
- data/lib/sc2ai/protocol/extensions/point_2_d.rb +5 -0
- data/lib/sc2ai/protocol/extensions/position.rb +10 -35
- data/lib/sc2ai/protocol/extensions/power_source.rb +3 -0
- data/lib/sc2ai/protocol/extensions/unit.rb +19 -35
- data/lib/sc2ai/protocol/query_pb.rb +5025 -17
- data/lib/sc2ai/protocol/raw_pb.rb +18350 -27
- data/lib/sc2ai/protocol/sc2api_pb.rb +48420 -93
- data/lib/sc2ai/protocol/score_pb.rb +5968 -12
- data/lib/sc2ai/protocol/spatial_pb.rb +11944 -18
- data/lib/sc2ai/protocol/ui_pb.rb +12927 -28
- data/lib/sc2ai/unit_group/action_ext.rb +0 -2
- data/lib/sc2ai/unit_group/filter_ext.rb +10 -9
- data/lib/sc2ai/unit_group/geo_ext.rb +0 -2
- data/lib/sc2ai/unit_group.rb +1 -1
- data/lib/sc2ai/version.rb +2 -3
- data/lib/sc2ai.rb +10 -11
- data/lib/templates/ladderzip/bin/ladder.tt +0 -3
- data/lib/templates/new/api/common.proto +6 -6
- data/lib/templates/new/api/data.proto +23 -20
- data/lib/templates/new/api/debug.proto +25 -21
- data/lib/templates/new/api/error.proto +217 -215
- data/lib/templates/new/api/query.proto +1 -1
- data/lib/templates/new/api/raw.proto +16 -14
- data/lib/templates/new/api/sc2api.proto +108 -94
- data/lib/templates/new/api/score.proto +4 -3
- data/lib/templates/new/api/spatial.proto +6 -5
- data/lib/templates/new/api/ui.proto +17 -14
- data/lib/templates/new/boot.rb.tt +1 -1
- data/lib/templates/new/my_bot.rb.tt +1 -1
- data/lib/templates/new/run_example_match.rb.tt +2 -2
- data/sig/sc2ai.rbs +11008 -1929
- metadata +25 -36
- data/lib/sc2ai/overrides/kernel.rb +0 -33
- data/sig/minaswan.rbs +0 -10323
@@ -10,12 +10,12 @@ import "sc2ai/protocol/common.proto";
|
|
10
10
|
//
|
11
11
|
|
12
12
|
message StartRaw {
|
13
|
-
optional Size2DI map_size = 1
|
13
|
+
optional Size2DI map_size = 1; // Width and height of the map.
|
14
14
|
optional ImageData pathing_grid = 2; // 1 bit bitmap of the pathing grid.
|
15
|
-
optional ImageData terrain_height = 3
|
16
|
-
optional ImageData placement_grid = 4
|
17
|
-
optional RectangleI playable_area = 5
|
18
|
-
repeated Point2D start_locations = 6
|
15
|
+
optional ImageData terrain_height = 3; // 1 byte bitmap of the terrain height.
|
16
|
+
optional ImageData placement_grid = 4; // 1 bit bitmap of the building placement grid.
|
17
|
+
optional RectangleI playable_area = 5; // The playable cells.
|
18
|
+
repeated Point2D start_locations = 6; // Possible start locations for players.
|
19
19
|
}
|
20
20
|
|
21
21
|
|
@@ -59,27 +59,27 @@ message UnitOrder {
|
|
59
59
|
}
|
60
60
|
|
61
61
|
enum DisplayType {
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
62
|
+
ENUM_DISPLAY_TYPE_UNSET = 0; // PROTO3 COMPAT
|
63
|
+
VISIBLE = 1; // FULLY VISIBLE
|
64
|
+
SNAPSHOT = 2; // DIMMED VERSION OF UNIT LEFT BEHIND AFTER ENTERING FOG OF WAR
|
65
|
+
HIDDEN = 3; // FULLY HIDDEN
|
66
|
+
PLACEHOLDER = 4; // BUILDING THAT HASN'T STARTED CONSTRUCTION.
|
67
67
|
}
|
68
68
|
|
69
69
|
enum Alliance {
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
70
|
+
ENUM_ALLIANCE_UNSET = 0; // PROTO3 COMPAT
|
71
|
+
SELF = 1;
|
72
|
+
ALLY = 2;
|
73
|
+
NEUTRAL = 3;
|
74
|
+
ENEMY = 4;
|
75
75
|
}
|
76
76
|
|
77
77
|
enum CloakState {
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
78
|
+
CLOAKED_UNKNOWN = 0; // UNDER THE FOG, SO UNKNOWN WHETHER IT'S CLOAKED OR NOT.
|
79
|
+
CLOAKED = 1;
|
80
|
+
CLOAKED_DETECTED = 2;
|
81
|
+
NOT_CLOAKED = 3;
|
82
|
+
CLOAKED_ALLIED = 4;
|
83
83
|
}
|
84
84
|
|
85
85
|
message PassengerUnit {
|
@@ -155,14 +155,14 @@ message Response {
|
|
155
155
|
}
|
156
156
|
|
157
157
|
enum Status {
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
158
|
+
ENUM_STATUS_UNSET = 0; // PROTO3 COMPAT
|
159
|
+
LAUNCHED = 1; // GAME HAS BEEN LAUNCH AND IS NOT YET DOING ANYTHING.
|
160
|
+
INIT_GAME = 2; // CREATE GAME HAS BEEN CALLED, AND THE HOST IS AWAITING PLAYERS.
|
161
|
+
IN_GAME = 3; // IN A SINGLE OR MULTIPLAYER GAME.
|
162
|
+
IN_REPLAY = 4; // IN A REPLAY.
|
163
|
+
ENDED = 5; // GAME HAS ENDED, CAN STILL REQUEST GAME INFO, BUT READY FOR A NEW GAME.
|
164
|
+
QUIT = 6; // APPLICATION IS SHUTTING DOWN.
|
165
|
+
UNKNOWN = 99; // SHOULD NOT HAPPEN, BUT INDICATES AN ERROR IF IT OCCURS.
|
166
166
|
}
|
167
167
|
|
168
168
|
//-----------------------------------------------------------------------------
|
@@ -192,15 +192,15 @@ message LocalMap {
|
|
192
192
|
|
193
193
|
message ResponseCreateGame {
|
194
194
|
enum Error {
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
195
|
+
ENUM_RESPONSE_CREATE_GAME_ERROR_UNSET = 0; // PROTO3 COMPAT
|
196
|
+
MISSING_MAP = 1;
|
197
|
+
INVALID_MAP_PATH = 2;
|
198
|
+
INVALID_MAP_DATA = 3;
|
199
|
+
INVALID_MAP_NAME = 4;
|
200
|
+
INVALID_MAP_HANDLE = 5;
|
201
|
+
MISSING_PLAYER_SETUP = 6;
|
202
|
+
INVALID_PLAYER_SETUP = 7;
|
203
|
+
MULTIPLAYER_UNSUPPORTED = 8; // MULTIPLAYER IS NOT SUPPORTED IN THE CURRENT BUILD.
|
204
204
|
}
|
205
205
|
optional Error error = 1;
|
206
206
|
optional string error_details = 2;
|
@@ -233,22 +233,22 @@ message ResponseJoinGame {
|
|
233
233
|
optional uint32 player_id = 1;
|
234
234
|
|
235
235
|
enum Error {
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
//
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
236
|
+
ENUM_RESPONSE_JOIN_GAME_ERROR_UNSET = 0; // PROTO3 COMPAT
|
237
|
+
MISSING_PARTICIPATION = 1;
|
238
|
+
INVALID_OBSERVED_PLAYER_ID = 2;
|
239
|
+
MISSING_OPTIONS = 3;
|
240
|
+
MISSING_PORTS = 4;
|
241
|
+
GAME_FULL = 5;
|
242
|
+
LAUNCH_ERROR = 6;
|
243
|
+
|
244
|
+
// MULTIPLAYER SPECIFIC.
|
245
|
+
FEATURE_UNSUPPORTED = 7; // MULTIPLAYER IS NOT SUPPORTED IN THE CURRENT BUILD FOR THE REQUESTED FEATURES.
|
246
|
+
NO_SPACE_FOR_USER = 8;
|
247
|
+
MAP_DOES_NOT_EXIST = 9;
|
248
|
+
CANNOT_OPEN_MAP = 10;
|
249
|
+
CHECKSUM_ERROR = 11;
|
250
|
+
NETWORK_ERROR = 12;
|
251
|
+
OTHER_ERROR = 13;
|
252
252
|
}
|
253
253
|
optional Error error = 2;
|
254
254
|
optional string error_details = 3;
|
@@ -261,8 +261,8 @@ message RequestRestartGame {
|
|
261
261
|
// The defaultRestartGameLoops is specified to be (1<<18) by default
|
262
262
|
message ResponseRestartGame {
|
263
263
|
enum Error {
|
264
|
-
|
265
|
-
|
264
|
+
ENUM_RESPONSE_RESTART_GAME_ERROR_UNSET = 0; // PROTO3 COMPAT
|
265
|
+
LAUNCH_ERROR = 1;
|
266
266
|
}
|
267
267
|
optional Error error = 1;
|
268
268
|
optional string error_details = 2;
|
@@ -286,14 +286,14 @@ message RequestStartReplay {
|
|
286
286
|
|
287
287
|
message ResponseStartReplay {
|
288
288
|
enum Error {
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
289
|
+
ENUM_RESPONSE_START_REPLAY_ERROR_UNSET = 0; // PROTO3 COMPAT
|
290
|
+
MISSING_REPLAY = 1;
|
291
|
+
INVALID_REPLAY_PATH = 2;
|
292
|
+
INVALID_REPLAY_DATA = 3;
|
293
|
+
INVALID_MAP_DATA = 4;
|
294
|
+
INVALID_OBSERVED_PLAYER_ID = 5;
|
295
|
+
MISSING_OPTIONS = 6;
|
296
|
+
LAUNCH_ERROR = 7;
|
297
297
|
}
|
298
298
|
optional Error error = 1;
|
299
299
|
optional string error_details = 2;
|
@@ -306,8 +306,8 @@ message RequestMapCommand {
|
|
306
306
|
|
307
307
|
message ResponseMapCommand {
|
308
308
|
enum Error {
|
309
|
-
|
310
|
-
|
309
|
+
ENUM_RESPONSE_MAP_COMMAND_ERROR_UNSET = 0; // PROTO3 COMPAT
|
310
|
+
NO_TRIGGER_ERROR = 1;
|
311
311
|
}
|
312
312
|
optional Error error = 1;
|
313
313
|
optional string error_details = 2;
|
@@ -350,9 +350,9 @@ message RequestGameInfo {
|
|
350
350
|
message ResponseGameInfo {
|
351
351
|
optional string map_name = 1;
|
352
352
|
optional string local_map_path = 2;
|
353
|
-
repeated PlayerInfo player_info = 3
|
353
|
+
repeated PlayerInfo player_info = 3;
|
354
354
|
optional StartRaw start_raw = 4; // Populated if Raw interface is enabled.
|
355
|
-
optional InterfaceOptions options = 5
|
355
|
+
optional InterfaceOptions options = 5;
|
356
356
|
repeated string mod_names = 6;
|
357
357
|
}
|
358
358
|
|
@@ -366,7 +366,7 @@ message ResponseObservation {
|
|
366
366
|
repeated Action actions = 1; // Actions this player did since the last Observation.
|
367
367
|
repeated ActionError action_errors = 2; // Equivalent of UI "red text" errors.
|
368
368
|
optional Observation observation = 3;
|
369
|
-
repeated PlayerResult player_result = 4
|
369
|
+
repeated PlayerResult player_result = 4; // Only populated if the game ended during this step.
|
370
370
|
repeated ChatReceived chat = 5;
|
371
371
|
}
|
372
372
|
|
@@ -459,12 +459,12 @@ message ResponseReplayInfo {
|
|
459
459
|
optional uint32 base_build = 8;
|
460
460
|
|
461
461
|
enum Error {
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
462
|
+
ENUM_RESPONSE_REPLAY_INFO_ERROR_UNSET = 0; // PROTO3 COMPAT
|
463
|
+
MISSING_REPLAY = 1;
|
464
|
+
INVALID_REPLAY_PATH = 2;
|
465
|
+
INVALID_REPLAY_DATA = 3;
|
466
|
+
PARSING_ERROR = 4;
|
467
|
+
DOWNLOAD_ERROR = 5;
|
468
468
|
}
|
469
469
|
optional Error error = 9;
|
470
470
|
optional string error_details = 10;
|
@@ -491,8 +491,8 @@ message RequestSaveMap {
|
|
491
491
|
|
492
492
|
message ResponseSaveMap {
|
493
493
|
enum Error {
|
494
|
-
|
495
|
-
|
494
|
+
ENUM_RESPONSE_SAVE_MAP_ERROR_UNSET = 0; // PROTO3 COMPAT
|
495
|
+
INVALID_MAP_DATA = 1;
|
496
496
|
}
|
497
497
|
optional Error error = 1;
|
498
498
|
}
|
@@ -522,34 +522,34 @@ message ResponseDebug {
|
|
522
522
|
//
|
523
523
|
|
524
524
|
enum Difficulty {
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
525
|
+
ENUM_DIFFICULTY_UNSET = 0; // PROTO3 COMPAT
|
526
|
+
VERY_EASY = 1;
|
527
|
+
EASY = 2;
|
528
|
+
MEDIUM = 3;
|
529
|
+
MEDIUM_HARD = 4;
|
530
|
+
HARD = 5;
|
531
|
+
HARDER = 6;
|
532
|
+
VERY_HARD = 7;
|
533
|
+
CHEAT_VISION = 8;
|
534
|
+
CHEAT_MONEY = 9;
|
535
|
+
CHEAT_INSANE = 10;
|
536
536
|
}
|
537
537
|
|
538
538
|
enum PlayerType {
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
539
|
+
ENUM_PLAYER_TYPE_UNSET = 0; // PROTO3 COMPAT
|
540
|
+
PARTICIPANT = 1;
|
541
|
+
COMPUTER = 2;
|
542
|
+
OBSERVER = 3;
|
543
543
|
}
|
544
544
|
|
545
545
|
enum AIBuild {
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
546
|
+
ENUM_AI_BUILD_UNSET = 0; // PROTO3 COMPAT
|
547
|
+
RANDOM_BUILD = 1;
|
548
|
+
RUSH = 2;
|
549
|
+
TIMING = 3;
|
550
|
+
POWER = 4;
|
551
|
+
MACRO = 5;
|
552
|
+
AIR = 6;
|
553
553
|
}
|
554
554
|
|
555
555
|
message PlayerSetup {
|
@@ -630,11 +630,11 @@ message Observation {
|
|
630
630
|
optional PlayerCommon player_common = 1;
|
631
631
|
repeated Alert alerts = 10;
|
632
632
|
repeated AvailableAbility abilities = 3; // Abilities available in the selection. Enabled if in this list, disabled otherwise.
|
633
|
-
optional Score score = 4
|
633
|
+
optional Score score = 4;
|
634
634
|
|
635
635
|
optional ObservationRaw raw_data = 5; // Populated if Raw interface is enabled.
|
636
636
|
optional ObservationFeatureLayer feature_layer_data = 6; // Populated if Feature Layer interface is enabled.
|
637
|
-
optional ObservationRender render_data = 7
|
637
|
+
optional ObservationRender render_data = 7; // Populated if Render interface is enabled.
|
638
638
|
optional ObservationUI ui_data = 8; // Populated if Feature Layer or Render interface is enabled.
|
639
639
|
}
|
640
640
|
|
@@ -649,9 +649,9 @@ message Action {
|
|
649
649
|
|
650
650
|
message ActionChat {
|
651
651
|
enum Channel {
|
652
|
-
|
653
|
-
|
654
|
-
|
652
|
+
ENUM_CHANNEL_UNSET = 0; // PROTO3 COMPAT
|
653
|
+
BROADCAST = 1;
|
654
|
+
TEAM = 2;
|
655
655
|
}
|
656
656
|
optional Channel channel = 1;
|
657
657
|
optional string message = 2;
|
@@ -693,37 +693,37 @@ message ActionObserverCameraFollowUnits {
|
|
693
693
|
}
|
694
694
|
|
695
695
|
enum Alert {
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
696
|
+
ENUM_ALERT_UNSET = 0; // PROTO3 COMPAT
|
697
|
+
ALERT_ERROR = 3;
|
698
|
+
ADD_ON_COMPLETE = 4;
|
699
|
+
BUILDING_COMPLETE = 5;
|
700
|
+
BUILDING_UNDER_ATTACK = 6;
|
701
|
+
LARVA_HATCHED = 7;
|
702
|
+
MERGE_COMPLETE = 8;
|
703
|
+
MINERALS_EXHAUSTED = 9;
|
704
|
+
MORPH_COMPLETE = 10;
|
705
|
+
MOTHERSHIP_COMPLETE = 11;
|
706
|
+
MULE_EXPIRED = 12;
|
707
|
+
NUCLEAR_LAUNCH_DETECTED = 1;
|
708
|
+
NUKE_COMPLETE = 13;
|
709
|
+
NYDUS_WORM_DETECTED = 2;
|
710
|
+
RESEARCH_COMPLETE = 14;
|
711
|
+
TRAIN_ERROR = 15;
|
712
|
+
TRAIN_UNIT_COMPLETE = 16;
|
713
|
+
TRAIN_WORKER_COMPLETE = 17;
|
714
|
+
TRANSFORMATION_COMPLETE = 18;
|
715
|
+
UNIT_UNDER_ATTACK = 19;
|
716
|
+
UPGRADE_COMPLETE = 20;
|
717
|
+
VESPENE_EXHAUSTED = 21;
|
718
|
+
WARP_IN_COMPLETE = 22;
|
719
719
|
}
|
720
720
|
|
721
721
|
enum Result {
|
722
|
-
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
|
722
|
+
ENUM_RESULT_UNSET = 0; // PROTO3 COMPAT
|
723
|
+
VICTORY = 1;
|
724
|
+
DEFEAT = 2;
|
725
|
+
TIE = 3;
|
726
|
+
UNDECIDED = 4;
|
727
727
|
}
|
728
728
|
|
729
729
|
message PlayerResult {
|
@@ -5,9 +5,9 @@ package Api;
|
|
5
5
|
|
6
6
|
message Score {
|
7
7
|
enum ScoreType {
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
ENUM_SCORE_TYPE_UNSET = 0; // PROTO3 COMPAT
|
9
|
+
CURRICULUM = 1; // MAP GENERATED SCORE (FROM CURRICULUM MAPS WITH SPECIAL SCORING)
|
10
|
+
MELEE = 2; // SUMMATION OF IN_PROGRESS AND CURRENT UNITS/BUILDINGS VALUE + MINERALS + VESPENE
|
11
11
|
}
|
12
12
|
|
13
13
|
optional ScoreType score_type = 6;
|
@@ -101,11 +101,11 @@ message ActionSpatialCameraMove {
|
|
101
101
|
message ActionSpatialUnitSelectionPoint {
|
102
102
|
optional PointI selection_screen_coord = 1;
|
103
103
|
enum Type {
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
104
|
+
ENUM_ACTION_SPATIAL_UNIT_SELECTION_POINT_TYPE_UNSET = 0; // PROTO3 COMPAT
|
105
|
+
SELECT = 1; // EQUIVALENT TO NORMAL CLICK. CHANGES SELECTION TO UNIT.
|
106
|
+
TOGGLE = 2; // EQUIVALENT TO SHIFT+CLICK. TOGGLE SELECTION OF UNIT.
|
107
|
+
ALL_TYPE = 3; // EQUIVALENT TO CONTROL+CLICK. SELECTS ALL UNITS OF A GIVEN TYPE.
|
108
|
+
ADD_ALL_TYPE = 4; // EQUIVALENT TO SHIFT+CONTROL+CLICK. SELECTS ALL UNITS OF A GIVEN TYPE.
|
109
109
|
}
|
110
110
|
optional Type type = 2;
|
111
111
|
}
|
@@ -90,12 +90,12 @@ message ActionUI {
|
|
90
90
|
|
91
91
|
message ActionControlGroup {
|
92
92
|
enum ControlGroupAction {
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
93
|
+
ENUM_CONTROL_GROUP_ACTION_UNSET = 0; // PROTO3 COMPAT
|
94
|
+
RECALL = 1; // EQUIVALENT TO NUMBER HOTKEY. REPLACES CURRENT SELECTION WITH CONTROL GROUP.
|
95
|
+
SET = 2; // EQUIVALENT TO CONTROL + NUMBER HOTKEY. SETS CONTROL GROUP TO CURRENT SELECTION.
|
96
|
+
APPEND = 3; // EQUIVALENT TO SHIFT + NUMBER HOTKEY. ADDS CURRENT SELECTION INTO CONTROL GROUP.
|
97
|
+
SET_AND_STEAL = 4; // EQUIVALENT TO CONTROL + ALT + NUMBER HOTKEY. SETS CONTROL GROUP TO CURRENT SELECTION. UNITS ARE REMOVED FROM OTHER CONTROL GROUPS.
|
98
|
+
APPEND_AND_STEAL = 5; // EQUIVALENT TO SHIFT + ALT + NUMBER HOTKEY. ADDS CURRENT SELECTION INTO CONTROL GROUP. UNITS ARE REMOVED FROM OTHER CONTROL GROUPS.
|
99
99
|
}
|
100
100
|
optional ControlGroupAction action = 1;
|
101
101
|
optional uint32 control_group_index = 2;
|
@@ -114,22 +114,22 @@ message ActionSelectLarva {
|
|
114
114
|
|
115
115
|
message ActionSelectIdleWorker {
|
116
116
|
enum Type {
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
117
|
+
ENUM_ACTION_SELECT_IDLE_WORKER_TYPE_UNSET = 0; // PROTO3 COMPAT
|
118
|
+
SET = 1; // EQUIVALENT TO CLICK WITH NO MODIFIERS. REPLACES SELECTION WITH SINGLE IDLE WORKER.
|
119
|
+
ADD = 2; // EQUIVALENT TO SHIFT+CLICK. ADDS SINGLE IDLE WORKER TO CURRENT SELECTION.
|
120
|
+
ALL = 3; // EQUIVALENT TO CONTROL+CLICK. SELECTS ALL IDLE WORKERS.
|
121
|
+
ADD_ALL = 4; // EQUIVALENT TO SHIFT+CONTROL+CLICK. ADDS ALL IDLE WORKERS TO CURRENT SELECTION.
|
122
122
|
}
|
123
123
|
optional Type type = 1;
|
124
124
|
}
|
125
125
|
|
126
126
|
message ActionMultiPanel {
|
127
127
|
enum Type {
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
128
|
+
ENUM_ACTION_MULTI_PANEL_TYPE_UNSET = 0; // PROTO3 COMPAT
|
129
|
+
SINGLE_SELECT = 1; // CLICK ON ICON
|
130
|
+
DESELECT_UNIT = 2; // SHIFT CLICK ON ICON
|
131
|
+
SELECT_ALL_OF_TYPE = 3; // CONTROL CLICK ON ICON.
|
132
|
+
DESELECT_ALL_OF_TYPE = 4; // CONTROL+SHIFT CLICK ON ICON.
|
133
133
|
}
|
134
134
|
optional Type type = 1;
|
135
135
|
optional int32 unit_index = 2;
|
data/exe/sc2ai
CHANGED
@@ -4,7 +4,7 @@ LABEL service="bot-ruby-local"
|
|
4
4
|
USER root
|
5
5
|
WORKDIR /root/ruby-builder
|
6
6
|
|
7
|
-
ARG RUBY_VERSION=3.
|
7
|
+
ARG RUBY_VERSION=3.4.1
|
8
8
|
ARG DEBIAN_DISABLE_RUBYGEMS_INTEGRATION=true
|
9
9
|
|
10
10
|
# Deps - Ruby build
|
@@ -17,7 +17,7 @@ RUN tar -zxf yaml-0.2.5.tar.gz
|
|
17
17
|
|
18
18
|
# Ruby
|
19
19
|
RUN mkdir -p /root/ruby-builder/.ruby
|
20
|
-
RUN curl https://cache.ruby-lang.org/pub/ruby/3.
|
20
|
+
RUN curl https://cache.ruby-lang.org/pub/ruby/3.4/ruby-$RUBY_VERSION.tar.gz -o ruby-$RUBY_VERSION.tar.gz
|
21
21
|
RUN tar -zxf ruby-$RUBY_VERSION.tar.gz
|
22
22
|
RUN mkdir ruby-$RUBY_VERSION/build
|
23
23
|
WORKDIR /root/ruby-builder/ruby-$RUBY_VERSION/build
|
data/lib/sc2ai/api/data.rb
CHANGED
@@ -46,7 +46,7 @@ module Sc2
|
|
46
46
|
|
47
47
|
# Indexes ability data by ability id
|
48
48
|
# @param abilities [Array<Api::AbilityData>]
|
49
|
-
# @return [Hash<Integer, Api::AbilityData] indexed data
|
49
|
+
# @return [Hash<Integer, Api::AbilityData>] indexed data
|
50
50
|
def abilities_from_proto(abilities)
|
51
51
|
result = {}
|
52
52
|
|
@@ -75,7 +75,7 @@ module Sc2
|
|
75
75
|
|
76
76
|
# Indexes upgrades data by id
|
77
77
|
# @param upgrades [Array<Api::UpgradeData>]
|
78
|
-
# @return [Hash<Integer, Api::UpgradeData] indexed data
|
78
|
+
# @return [Hash<Integer, Api::UpgradeData>] indexed data
|
79
79
|
def upgrades_from_proto(upgrades)
|
80
80
|
result = {}
|
81
81
|
upgrades.each do |u|
|
@@ -247,7 +247,7 @@ module Sc2
|
|
247
247
|
unit_data.mineral_cost_sum += units[Api::UnitTypeId::GATEWAY].mineral_cost
|
248
248
|
unit_data.vespene_cost_sum += units[Api::UnitTypeId::GATEWAY].vespene_cost
|
249
249
|
else
|
250
|
-
if unit_data.race == Api::Race::
|
250
|
+
if unit_data.race == Api::Race::ZERG && unit_data.attributes.include?(Api::Attribute::STRUCTURE)
|
251
251
|
unit_data.mineral_cost_sum += units[Api::UnitTypeId::DRONE].mineral_cost
|
252
252
|
end
|
253
253
|
end
|
@@ -6,21 +6,21 @@ module Sc2
|
|
6
6
|
# noinspection RubyUnusedLocalVariable
|
7
7
|
module ConnectionListener
|
8
8
|
# Called when connection established to application
|
9
|
-
# @param connection [
|
9
|
+
# @param connection [Sc2::Connection]
|
10
10
|
# noinspection
|
11
11
|
def on_connected(connection)
|
12
12
|
Sc2.logger.debug { "#{self.class}.#{__method__} #{connection}" }
|
13
13
|
end
|
14
14
|
|
15
15
|
# Called while waiting on connection to application
|
16
|
-
# @param connection [
|
16
|
+
# @param connection [Sc2::Connection]
|
17
17
|
# noinspection Lint/UnusedMethodArgument
|
18
18
|
def on_connection_waiting(connection)
|
19
19
|
Sc2.logger.debug { "#{self.class}.#{__method__} #{connection}" }
|
20
20
|
end
|
21
21
|
|
22
22
|
# Called when disconnected from application
|
23
|
-
# @param connection [
|
23
|
+
# @param connection [Sc2::Connection]
|
24
24
|
# noinspection Lint/UnusedMethodArgument
|
25
25
|
def on_disconnect(connection)
|
26
26
|
Sc2.logger.debug { "#{self.class}.#{__method__} #{connection}" }
|