add GameConfig to Game

This commit is contained in:
Evan
2024-12-07 09:45:39 -08:00
parent 60ccf2ba36
commit 2d2df14ae3
16 changed files with 77 additions and 79 deletions
+2 -1
View File
@@ -1,6 +1,6 @@
import { Config } from "../configuration/Config"
import { GameEvent } from "../EventBus"
import { ClientID, GameID } from "../Schemas"
import { ClientID, GameConfig, GameID } from "../Schemas"
import { MessageType } from "../../client/graphics/layers/EventsDisplay"
import { SearchNode } from "../pathfinding/AStar"
@@ -306,6 +306,7 @@ export interface Game {
addExecution(...exec: Execution[]): void
nations(): Nation[]
config(): Config
gameConfig(): GameConfig
displayMessage(message: string, type: MessageType, playerID: PlayerID | null): void
units(...types: UnitType[]): Unit[]
unitInfo(type: UnitType): UnitInfo
+14 -5
View File
@@ -8,12 +8,12 @@ import { TerraNulliusImpl } from "./TerraNulliusImpl";
import { TileImpl } from "./TileImpl";
import { AllianceRequestImpl } from "./AllianceRequestImpl";
import { AllianceImpl } from "./AllianceImpl";
import { ClientID } from "../Schemas";
import { ClientID, GameConfig } from "../Schemas";
import { DisplayMessageEvent, MessageType } from "../../client/graphics/layers/EventsDisplay";
import { UnitImpl } from "./UnitImpl";
export function createGame(terrainMap: TerrainMapImpl, eventBus: EventBus, config: Config): Game {
return new GameImpl(terrainMap, eventBus, config)
export function createGame(terrainMap: TerrainMapImpl, eventBus: EventBus, config: Config, gameConfig: GameConfig): Game {
return new GameImpl(terrainMap, eventBus, config, gameConfig)
}
export type CellString = string
@@ -40,7 +40,12 @@ export class GameImpl implements MutableGame {
private _terrainMiniMap: TerrainMap = null
constructor(private _terrainMap: TerrainMapImpl, public eventBus: EventBus, private _config: Config) {
constructor(
private _terrainMap: TerrainMapImpl,
public eventBus: EventBus,
private _config: Config,
private _gameConfig: GameConfig,
) {
this._terraNullius = new TerraNulliusImpl(this)
this._width = _terrainMap.width();
this._height = _terrainMap.height();
@@ -65,6 +70,10 @@ export class GameImpl implements MutableGame {
})
}
gameConfig(): GameConfig {
return this._gameConfig
}
addFallout(tile: Tile) {
const ti = tile as TileImpl
if (tile.hasOwner()) {
@@ -143,7 +152,7 @@ export class GameImpl implements MutableGame {
}
inSpawnPhase(): boolean {
return this._ticks <= this.config().numSpawnPhaseTurns()
return this._ticks <= this.config().numSpawnPhaseTurns(this._gameConfig.gameType)
}
ticks(): number {