Skip to content

Commit dff1f75

Browse files
committed
Merge remote-tracking branch 'origin/master' into schema
2 parents 8ceb7a9 + 0b3a03d commit dff1f75

66 files changed

Lines changed: 801 additions & 1390 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/release-engine.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ env:
1414
RELEASE_ARTIFACT_ID: battlecode26
1515

1616
# IS_PUBLIC is whether to release deployments publicly. Set to exactly the text "YES" to do so.
17-
IS_PUBLIC: NO
17+
IS_PUBLIC: YES
1818

1919
jobs:
2020
release-java:

engine/src/crossplay_python/battlecode26/classes.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -189,18 +189,16 @@ def __repr__(self) -> str:
189189

190190

191191
class TrapType(_Enum):
192-
RAT_TRAP = (30, 50, 20, 25, 15, 0, 25, 2)
193-
CAT_TRAP = (10, 100, 20, 5, 10, 0, 10, 2)
194-
NONE = (0, 0, 0, 0, 0, 0, 0, 0)
192+
RAT_TRAP = (30, 50, 20, 15, 25, 2)
193+
CAT_TRAP = (10, 100, 20, 10, 10, 2)
194+
NONE = (0, 0, 0, 0, 0, 0)
195195

196-
def __init__(self, build_cost: int, damage: int, stun_time: int, trap_limit: int,
197-
action_cooldown: int, spawn_cheese_amount: int, max_count: int, trigger_radius_squared: int):
196+
def __init__(self, build_cost: int, damage: int, stun_time: int,
197+
action_cooldown: int, max_count: int, trigger_radius_squared: int):
198198
self.build_cost = build_cost
199199
self.damage = damage
200200
self.stun_time = stun_time
201-
self.trap_limit = trap_limit
202201
self.action_cooldown = action_cooldown
203-
self.spawn_cheese_amount = spawn_cheese_amount
204202
self.max_count = max_count
205203
self.trigger_radius_squared = trigger_radius_squared
206204

@@ -281,6 +279,8 @@ class GameConstants:
281279
EXCEPTION_BYTECODE_PENALTY = 500
282280
INITIAL_TEAM_CHEESE = 2500
283281
MAX_NUMBER_OF_RAT_KINGS = 5
282+
MAX_NUMBER_OF_RAT_KINGS_AFTER_CUTOFF = 2
283+
RAT_KING_CUTOFF_ROUND = 1200
284284
MAX_TEAM_EXECUTION_TIME = 1200000000000
285285
MOVE_STRAFE_COOLDOWN = 18
286286
CHEESE_COOLDOWN_PENALTY = 0.01
@@ -297,6 +297,8 @@ class GameConstants:
297297
BUILD_ROBOT_COST_INCREASE = 10
298298
NUM_ROBOTS_FOR_COST_INCREASE = 4
299299
BUILD_DISTANCE_SQUARED = 2
300+
RAT_KING_BUILD_DISTANCE_SQUARED = 8
301+
ATTACK_DISTANCE_SQUARED = 2
300302
RAT_KING_ATTACK_DISTANCE_SQUARED = 8
301303
MESSAGE_ROUND_DURATION = 5
302304
MAX_MESSAGES_SENT_ROBOT = 1
@@ -309,8 +311,8 @@ class GameConstants:
309311
CAT_DIG_ADDITIONAL_COOLDOWN = 5
310312
HEALTH_GRAB_THRESHOLD = 0
311313
RAT_KING_UPGRADE_CHEESE_COST = 50
312-
DIG_DIRT_CHEESE_COST = 10
313-
PLACE_DIRT_CHEESE_COST = 10
314+
DIG_DIRT_CHEESE_COST = 5
315+
PLACE_DIRT_CHEESE_COST = 3
314316
SHARED_ARRAY_SIZE = 64
315317
COMM_ARRAY_MAX_VALUE = 1023
316318
COOLDOWN_LIMIT = 10
@@ -322,6 +324,7 @@ class GameConstants:
322324
CARRY_COOLDOWN_MULTIPLIER = 1.5
323325
MAX_CARRY_TOWER_HEIGHT = 2
324326
MAX_CARRY_DURATION = 10
327+
SAME_ROBOT_CARRY_COOLDOWN_TURNS = 2
325328
THROW_DURATION = 4
326329
HIT_GROUND_COOLDOWN = 10
327330
HIT_TARGET_COOLDOWN = 30

engine/src/crossplay_python/battlecode26/crossplay.py

Lines changed: 106 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -23,108 +23,112 @@ def __init__(self, message):
2323
class CrossPlayMethod(Enum):
2424
INVALID = 0
2525
END_TURN = 1
26-
RC_GET_ROUND_NUM = 2
27-
RC_GET_MAP_WIDTH = 3
28-
RC_GET_MAP_HEIGHT = 4
29-
RC_IS_COOPERATION = 5
30-
RC_GET_ID = 6
31-
RC_GET_TEAM = 7
32-
RC_GET_LOCATION = 8
33-
RC_GET_ALL_PART_LOCATIONS = 9
34-
RC_GET_DIRECTION = 10
35-
RC_GET_HEALTH = 11
36-
RC_GET_RAW_CHEESE = 12
37-
RC_GET_GLOBAL_CHEESE = 13
38-
RC_GET_ALL_CHEESE = 14
39-
RC_GET_DIRT = 15
40-
RC_GET_TYPE = 16
41-
RC_GET_CARRYING = 17
42-
RC_IS_BEING_THROWN = 18
43-
RC_IS_BEING_CARRIED = 19
44-
RC_ON_THE_MAP = 20
45-
RC_CAN_SENSE_LOCATION = 21
46-
RC_IS_LOCATION_OCCUPIED = 22
47-
RC_CAN_SENSE_ROBOT_AT_LOCATION = 23
48-
RC_SENSE_ROBOT_AT_LOCATION = 24
49-
RC_CAN_SENSE_ROBOT = 25
50-
RC_SENSE_ROBOT = 26
51-
RC_SENSE_NEARBY_ROBOTS = 27
52-
RC_SENSE_NEARBY_ROBOTS__INT = 28
53-
RC_SENSE_NEARBY_ROBOTS__INT_TEAM = 29
54-
RC_SENSE_NEARBY_ROBOTS__LOC_INT_TEAM = 30
55-
RC_SENSE_PASSABILITY = 31
56-
RC_SENSE_MAP_INFO = 32
57-
RC_SENSE_NEARBY_MAP_INFOS = 33
58-
RC_SENSE_NEARBY_MAP_INFOS__INT = 34
59-
RC_SENSE_NEARBY_MAP_INFOS__LOC = 35
60-
RC_SENSE_NEARBY_MAP_INFOS__LOC_INT = 36
61-
RC_ADJACENT_LOCATION = 37
62-
RC_GET_ALL_LOCATIONS_WITHIN_RADIUS_SQUARED = 38
63-
RC_IS_ACTION_READY = 39
64-
RC_GET_ACTION_COOLDOWN_TURNS = 40
65-
RC_IS_MOVEMENT_READY = 41
66-
RC_IS_TURNING_READY = 42
67-
RC_GET_MOVEMENT_COOLDOWN_TURNS = 43
68-
RC_GET_TURNING_COOLDOWN_TURNS = 44
69-
RC_CAN_MOVE_FORWARD = 45
70-
RC_CAN_MOVE = 46
71-
RC_MOVE_FORWARD = 47
72-
RC_MOVE = 48
73-
RC_CAN_TURN = 49
74-
RC_TURN = 50
75-
RC_GET_CURRENT_RAT_COST = 51
76-
RC_CAN_BUILD_RAT = 52
77-
RC_BUILD_RAT = 53
78-
RC_CAN_BECOME_RAT_KING = 54
79-
RC_BECOME_RAT_KING = 55
80-
RC_CAN_PLACE_DIRT = 56
81-
RC_PLACE_DIRT = 57
82-
RC_CAN_REMOVE_DIRT = 58
83-
RC_REMOVE_DIRT = 59
84-
RC_CAN_PLACE_RAT_TRAP = 60
85-
RC_PLACE_RAT_TRAP = 61
86-
RC_CAN_REMOVE_RAT_TRAP = 62
87-
RC_REMOVE_RAT_TRAP = 63
88-
RC_CAN_PLACE_CAT_TRAP = 64
89-
RC_PLACE_CAT_TRAP = 65
90-
RC_CAN_REMOVE_CAT_TRAP = 66
91-
RC_REMOVE_CAT_TRAP = 67
92-
RC_CAN_PICK_UP_CHEESE = 68
93-
RC_PICK_UP_CHEESE = 69
94-
RC_CAN_ATTACK = 70
95-
RC_CAN_ATTACK__LOC_INT = 71
96-
RC_ATTACK = 72
97-
RC_ATTACK__LOC_INT = 73
98-
RC_SQUEAK = 74
99-
RC_READ_SQUEAKS = 75
100-
RC_WRITE_SHARED_ARRAY = 76
101-
RC_READ_SHARED_ARRAY = 77
102-
RC_CAN_TRANSFER_CHEESE = 78
103-
RC_TRANSFER_CHEESE = 79
104-
RC_THROW_RAT = 80
105-
RC_CAN_THROW_RAT = 81
106-
RC_DROP_RAT = 82
107-
RC_CAN_DROP_RAT = 83
108-
RC_CAN_CARRY_RAT = 84
109-
RC_CARRY_RAT = 85
110-
RC_DISINTEGRATE = 86
111-
RC_RESIGN = 87
112-
RC_SET_INDICATOR_STRING = 88
113-
RC_SET_INDICATOR_DOT = 89
114-
RC_SET_INDICATOR_LINE = 90
115-
RC_SET_TIMELINE_MARKER = 91
116-
RC_CAN_TURN__DIR = 92
117-
ML_DISTANCE_SQUARED_TO = 93
118-
ML_BOTTOM_LEFT_DISTANCE_SQUARED_TO = 94
119-
ML_IS_WITHIN_DISTANCE_SQUARED = 95
120-
ML_IS_WITHIN_DISTANCE_SQUARED__LOC_INT_DIR_DOUBLE = 96
121-
ML_IS_WITHIN_DISTANCE_SQUARED__LOC_INT_DIR_DOUBLE_BOOLEAN = 97
122-
ML_IS_ADJACENT_TO = 98
123-
ML_DIRECTION_TO = 99
124-
UT_GET_ALL_TYPE_LOCATIONS = 100
125-
LOG = 101
126-
THROW_GAME_ACTION_EXCEPTION = 102
127-
THROW_EXCEPTION = 103
26+
ML_DISTANCE_SQUARED_TO = 2
27+
ML_BOTTOM_LEFT_DISTANCE_SQUARED_TO = 3
28+
ML_IS_WITHIN_DISTANCE_SQUARED = 4
29+
ML_IS_WITHIN_DISTANCE_SQUARED__LOC_INT_DIR_DOUBLE = 5
30+
ML_IS_WITHIN_DISTANCE_SQUARED__LOC_INT_DIR_DOUBLE_BOOLEAN = 6
31+
ML_IS_ADJACENT_TO = 7
32+
ML_DIRECTION_TO = 8
33+
UT_GET_ALL_TYPE_LOCATIONS = 9
34+
LOG = 10
35+
THROW_GAME_ACTION_EXCEPTION = 11
36+
THROW_EXCEPTION = 12
37+
RC_GET_ROUND_NUM = 13
38+
RC_GET_MAP_WIDTH = 14
39+
RC_GET_MAP_HEIGHT = 15
40+
RC_IS_COOPERATION = 16
41+
RC_GET_ID = 17
42+
RC_GET_TEAM = 18
43+
RC_GET_LOCATION = 19
44+
RC_GET_ALL_PART_LOCATIONS = 20
45+
RC_GET_DIRECTION = 21
46+
RC_GET_HEALTH = 22
47+
RC_GET_RAW_CHEESE = 23
48+
RC_GET_GLOBAL_CHEESE = 24
49+
RC_GET_ALL_CHEESE = 25
50+
RC_GET_DIRT = 26
51+
RC_GET_TYPE = 27
52+
RC_GET_CARRYING = 28
53+
RC_IS_BEING_THROWN = 29
54+
RC_IS_BEING_CARRIED = 30
55+
RC_ON_THE_MAP = 31
56+
RC_CAN_SENSE_LOCATION = 32
57+
RC_IS_LOCATION_OCCUPIED = 33
58+
RC_CAN_SENSE_ROBOT_AT_LOCATION = 34
59+
RC_SENSE_ROBOT_AT_LOCATION = 35
60+
RC_CAN_SENSE_ROBOT = 36
61+
RC_SENSE_ROBOT = 37
62+
RC_SENSE_NEARBY_ROBOTS = 38
63+
RC_SENSE_NEARBY_ROBOTS__INT = 39
64+
RC_SENSE_NEARBY_ROBOTS__INT_TEAM = 40
65+
RC_SENSE_NEARBY_ROBOTS__LOC_INT_TEAM = 41
66+
RC_SENSE_PASSABILITY = 42
67+
RC_SENSE_MAP_INFO = 43
68+
RC_SENSE_NEARBY_MAP_INFOS = 44
69+
RC_SENSE_NEARBY_MAP_INFOS__INT = 45
70+
RC_SENSE_NEARBY_MAP_INFOS__LOC = 46
71+
RC_SENSE_NEARBY_MAP_INFOS__LOC_INT = 47
72+
RC_ADJACENT_LOCATION = 48
73+
RC_GET_ALL_LOCATIONS_WITHIN_RADIUS_SQUARED = 49
74+
RC_IS_ACTION_READY = 50
75+
RC_GET_ACTION_COOLDOWN_TURNS = 51
76+
RC_IS_MOVEMENT_READY = 52
77+
RC_IS_TURNING_READY = 53
78+
RC_GET_MOVEMENT_COOLDOWN_TURNS = 54
79+
RC_GET_TURNING_COOLDOWN_TURNS = 55
80+
RC_CAN_MOVE_FORWARD = 56
81+
RC_CAN_MOVE = 57
82+
RC_MOVE_FORWARD = 58
83+
RC_MOVE = 59
84+
RC_CAN_TURN = 60
85+
RC_TURN = 61
86+
RC_GET_CURRENT_RAT_COST = 62
87+
RC_CAN_BUILD_RAT = 63
88+
RC_BUILD_RAT = 64
89+
RC_CAN_BECOME_RAT_KING = 65
90+
RC_BECOME_RAT_KING = 66
91+
RC_CAN_PLACE_DIRT = 67
92+
RC_PLACE_DIRT = 68
93+
RC_CAN_REMOVE_DIRT = 69
94+
RC_REMOVE_DIRT = 70
95+
RC_CAN_PLACE_RAT_TRAP = 71
96+
RC_PLACE_RAT_TRAP = 72
97+
RC_CAN_REMOVE_RAT_TRAP = 73
98+
RC_REMOVE_RAT_TRAP = 74
99+
RC_CAN_PLACE_CAT_TRAP = 75
100+
RC_PLACE_CAT_TRAP = 76
101+
RC_CAN_REMOVE_CAT_TRAP = 77
102+
RC_REMOVE_CAT_TRAP = 78
103+
RC_CAN_PICK_UP_CHEESE = 79
104+
RC_PICK_UP_CHEESE = 80
105+
RC_PICK_UP_CHEESE__LOC_INT = 81
106+
RC_CAN_ATTACK = 82
107+
RC_CAN_ATTACK__LOC_INT = 83
108+
RC_ATTACK = 84
109+
RC_ATTACK__LOC_INT = 85
110+
RC_SQUEAK = 86
111+
RC_READ_SQUEAKS = 87
112+
RC_WRITE_SHARED_ARRAY = 88
113+
RC_READ_SHARED_ARRAY = 89
114+
RC_CAN_TRANSFER_CHEESE = 90
115+
RC_TRANSFER_CHEESE = 91
116+
RC_THROW_RAT = 92
117+
RC_CAN_THROW_RAT = 93
118+
RC_DROP_RAT = 94
119+
RC_CAN_DROP_RAT = 95
120+
RC_CAN_CARRY_RAT = 96
121+
RC_CARRY_RAT = 97
122+
RC_DISINTEGRATE = 98
123+
RC_RESIGN = 99
124+
RC_SET_INDICATOR_STRING = 100
125+
RC_SET_INDICATOR_DOT = 101
126+
RC_SET_INDICATOR_LINE = 102
127+
RC_SET_TIMELINE_MARKER = 103
128+
RC_CAN_TURN__DIR = 104
129+
RC_GET_BACKSTABBING_TEAM = 105
130+
RC_GET_NUMBER_RAT_TRAPS = 106
131+
RC_GET_NUMBER_CAT_TRAPS = 107
128132

129133

130134
class CrossPlayObjectType(Enum):

engine/src/crossplay_python/battlecode26/wrappers.py

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,11 @@ def get_all_locations_within_radius_squared(center: MapLocation, radius_squared:
149149
@staticmethod
150150
def get_all_part_locations() -> list[MapLocation]:
151151
return _wait(_m.RC_GET_ALL_PART_LOCATIONS)
152-
152+
153+
@staticmethod
154+
def get_backstabbing_team() -> Team:
155+
return _wait(_m.RC_GET_BACKSTABBING_TEAM)
156+
153157
@staticmethod
154158
def get_carrying() -> RobotInfo:
155159
return _wait(_m.RC_GET_CARRYING)
@@ -185,7 +189,15 @@ def get_location() -> MapLocation:
185189
@staticmethod
186190
def get_movement_cooldown_turns() -> int:
187191
return _wait(_m.RC_GET_MOVEMENT_COOLDOWN_TURNS)
188-
192+
193+
@staticmethod
194+
def get_number_rat_traps() -> int:
195+
return _wait(_m.RC_GET_NUMBER_RAT_TRAPS)
196+
197+
@staticmethod
198+
def get_number_cat_traps() -> int:
199+
return _wait(_m.RC_GET_NUMBER_CAT_TRAPS)
200+
189201
@staticmethod
190202
def get_raw_cheese() -> int:
191203
return _wait(_m.RC_GET_RAW_CHEESE)
@@ -243,8 +255,11 @@ def on_the_map(loc: MapLocation) -> bool:
243255
return _wait(_m.RC_ON_THE_MAP, [loc])
244256

245257
@staticmethod
246-
def pick_up_cheese(loc: MapLocation) -> None:
247-
_wait(_m.RC_PICK_UP_CHEESE, [loc])
258+
def pick_up_cheese(loc: MapLocation, amount: int = ...) -> None:
259+
if amount is ...:
260+
_wait(_m.RC_PICK_UP_CHEESE, [loc])
261+
else:
262+
_wait(_m.RC_PICK_UP_CHEESE__LOC_INT, [loc, amount])
248263

249264
@staticmethod
250265
def place_cat_trap(loc: MapLocation) -> None:
@@ -341,11 +356,15 @@ def sense_robot_at_location(loc: MapLocation) -> RobotInfo:
341356
@staticmethod
342357
def set_indicator_dot(loc: MapLocation, r: int, g: int, b: int) -> None:
343358
_wait(_m.RC_SET_INDICATOR_DOT, [loc, r, g, b])
344-
359+
345360
@staticmethod
346361
def set_indicator_string(text: str) -> None:
347362
_wait(_m.RC_SET_INDICATOR_STRING, [text])
348-
363+
364+
@staticmethod
365+
def set_indicator_line(startLoc: MapLocation, endLoc: MapLocation, r: int, g: int, b: int) -> None:
366+
_wait(_m.RC_SET_INDICATOR_LINE, [startLoc, endLoc, r, g, b])
367+
349368
@staticmethod
350369
def set_timeline_marker(text: str, r: int, g: int, b: int) -> None:
351370
_wait(_m.RC_SET_TIMELINE_MARKER, [text, r, g, b])

0 commit comments

Comments
 (0)