Skip to content

Commit 987f9d4

Browse files
committed
Prefer precomputed largestClusterBoundingBox if available
1 parent 8ad9663 commit 987f9d4

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

src/core/execution/utils/BotBehavior.ts

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {
22
AllianceRequest,
3+
Cell,
34
Difficulty,
45
Game,
56
Player,
@@ -282,14 +283,21 @@ export class BotBehavior {
282283
});
283284

284285
if (filteredPlayers.length > 0) {
285-
const playerCenter = calculateBoundingBoxCenter(this.game, myBorder);
286+
// Prefer the player's precomputed largestClusterBoundingBox center if available
287+
const playerCenter = this.player.largestClusterBoundingBox
288+
? this.boundingBoxCenter(this.player.largestClusterBoundingBox)
289+
: calculateBoundingBoxCenter(this.game, myBorder);
286290

287291
const sortedPlayers = filteredPlayers
288292
.map((filteredPlayer) => {
289-
const filteredPlayerCenter = calculateBoundingBoxCenter(
290-
this.game,
291-
filteredPlayer.borderTiles(),
292-
);
293+
// Prefer filtered player's precomputed largestClusterBoundingBox center if available
294+
const filteredPlayerCenter = filteredPlayer.largestClusterBoundingBox
295+
? this.boundingBoxCenter(filteredPlayer.largestClusterBoundingBox)
296+
: calculateBoundingBoxCenter(
297+
this.game,
298+
filteredPlayer.borderTiles(),
299+
);
300+
293301
const playerCenterTile = this.game.ref(
294302
playerCenter.x,
295303
playerCenter.y,
@@ -321,6 +329,14 @@ export class BotBehavior {
321329
}
322330
}
323331

332+
// Compute the integer center cell of a bounding box { min: Cell, max: Cell }
333+
private boundingBoxCenter(box: { min: Cell; max: Cell }): Cell {
334+
return new Cell(
335+
box.min.x + Math.floor((box.max.x - box.min.x) / 2),
336+
box.min.y + Math.floor((box.max.y - box.min.y) / 2),
337+
);
338+
}
339+
324340
selectRandomEnemy(): Player | TerraNullius | null {
325341
if (this.enemy === null) {
326342
// Save up troops until we reach the trigger ratio

0 commit comments

Comments
 (0)