mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-07-21 16:47:42 +00:00
add GameConfig to Game
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user