From cee06c82db3ed7f760d6918bd6283276ba660fc8 Mon Sep 17 00:00:00 2001 From: evan Date: Tue, 22 Apr 2025 08:15:21 -0700 Subject: [PATCH 1/3] bugfix: have radial menu check canBuild when checking if boating allowed --- src/client/graphics/layers/RadialMenu.ts | 3 ++- src/core/game/PlayerImpl.ts | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/client/graphics/layers/RadialMenu.ts b/src/client/graphics/layers/RadialMenu.ts index 474bfc932..92a6377b1 100644 --- a/src/client/graphics/layers/RadialMenu.ts +++ b/src/client/graphics/layers/RadialMenu.ts @@ -380,7 +380,8 @@ export class RadialMenu implements Layer { }); } if ( - actions.buildableUnits.some((bu) => bu.type == UnitType.TransportShip) + actions.buildableUnits.find((bu) => bu.type == UnitType.TransportShip) + ?.canBuild ) { this.activateMenuElement(Slot.Boat, "#3f6ab1", boatIcon, () => { // BestTransportShipSpawn is an expensive operation, so diff --git a/src/core/game/PlayerImpl.ts b/src/core/game/PlayerImpl.ts index 09892124f..b0f889671 100644 --- a/src/core/game/PlayerImpl.ts +++ b/src/core/game/PlayerImpl.ts @@ -43,7 +43,7 @@ import { andFN, manhattanDistFN, TileRef } from "./GameMap"; import { AttackUpdate, GameUpdateType, PlayerUpdate } from "./GameUpdates"; import { TerraNulliusImpl } from "./TerraNulliusImpl"; import { - bestShoreDeploymentSource as bestTranpsortShipSpawn, + bestShoreDeploymentSource, canBuildTransportShip, } from "./TransportShipUtils"; import { UnitImpl } from "./UnitImpl"; @@ -1017,7 +1017,7 @@ export class PlayerImpl implements Player { } bestTransportShipSpawn(targetTile: TileRef): TileRef | false { - return bestTranpsortShipSpawn(this.mg, this, targetTile); + return bestShoreDeploymentSource(this.mg, this, targetTile); } // It's a probability list, so if an element appears twice it's because it's From b816344e8ae83fcbe673cce0b171700f258f2f92 Mon Sep 17 00:00:00 2001 From: evan Date: Tue, 22 Apr 2025 09:10:26 -0700 Subject: [PATCH 2/3] bugfix: bestShoreDeploymentSource would return null if target was not a shore tile. call targetTransportTile to get a shore tile --- src/core/game/TransportShipUtils.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/core/game/TransportShipUtils.ts b/src/core/game/TransportShipUtils.ts index 2133f1083..2af76b56c 100644 --- a/src/core/game/TransportShipUtils.ts +++ b/src/core/game/TransportShipUtils.ts @@ -148,6 +148,10 @@ export function bestShoreDeploymentSource( player: Player, target: TileRef, ): TileRef | null { + target = targetTransportTile(gm, target); + if (target == null) { + return null; + } let closestManhattanDistance = Infinity; let minX = Infinity, minY = Infinity, From 367e196794c35b9897ad27419d724019a8865ee4 Mon Sep 17 00:00:00 2001 From: evan Date: Tue, 22 Apr 2025 19:42:16 -0700 Subject: [PATCH 3/3] reduce worker duration to 15 seconds --- src/core/configuration/DefaultConfig.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/configuration/DefaultConfig.ts b/src/core/configuration/DefaultConfig.ts index afaee99a6..06091b9b5 100644 --- a/src/core/configuration/DefaultConfig.ts +++ b/src/core/configuration/DefaultConfig.ts @@ -144,7 +144,7 @@ export class DefaultConfig implements Config { return 0.5; } traitorDuration(): number { - return 30 * 10; // 30 seconds + return 15 * 10; // 15 seconds } spawnImmunityDuration(): Tick { return 5 * 10;