fix bad tile crash (#1237)

## Description:

Sending invalid coords can cause game to crash. Make sure to validate
tile ref.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:
evan
This commit is contained in:
evanpelle
2025-06-20 09:49:55 -07:00
committed by GitHub
parent 0cd663df02
commit 9ae544595b
11 changed files with 57 additions and 54 deletions
@@ -48,13 +48,13 @@ export class PlayerActionHandler {
handleBoatAttack(
player: PlayerView,
targetId: PlayerID | null,
targetCell: Cell,
spawnTile: Cell | null,
targetTile: TileRef,
spawnTile: TileRef | null,
) {
this.eventBus.emit(
new SendBoatAttackIntentEvent(
targetId,
targetCell,
targetTile,
this.uiState.attackRatio * player.troops(),
spawnTile,
),
@@ -1,6 +1,5 @@
import {
AllPlayers,
Cell,
PlayerActions,
TerraNullius,
UnitType,
@@ -378,16 +377,11 @@ export const boatMenuElement: MenuElement = {
params.tile,
);
let spawnTile: Cell | null = null;
if (spawn !== false) {
spawnTile = new Cell(params.game.x(spawn), params.game.y(spawn));
}
params.playerActionHandler.handleBoatAttack(
params.myPlayer,
params.selected?.id() || null,
new Cell(params.game.x(params.tile), params.game.y(params.tile)),
spawnTile,
params.tile,
spawn !== false ? spawn : null,
);
params.closeMenu();