Files
OpenFrontIO/tests/util/utils.ts
T
2025-03-21 10:17:33 -07:00

27 lines
1023 B
TypeScript

// Either someone can straight up call player.buildUnit. It's simpler and immediate (no tick required)
// Either someone can straight up call player.buildUnit. It's simpler and immediate (no tick required)
// However buildUnit do not create executions (e.g.: WarshipExecution)
// If you also need execution use function below. Does not work with things not
import { ConstructionExecution } from "../../src/core/execution/ConstructionExecution";
import { Game, PlayerID, UnitType } from "../../src/core/game/Game";
// built via UI (e.g.: trade ships)
export function constructionExecution(
game: Game,
playerID: PlayerID,
x: number,
y: number,
unit: UnitType,
) {
game.addExecution(new ConstructionExecution(playerID, game.ref(x, y), unit));
// Init exec
game.executeNextTick();
// Exec construction execution
game.executeNextTick();
// Add the execution related to the building
game.executeNextTick();
// First tick of the execution of the constructed structure/unit
game.executeNextTick();
}