public Battle(BattleParams param) { this._data = ModelFactory.GetMapData(Utils.GetIDFromRID(param.id)); this._random = new FPseudoRandom(param.rndSeed); this._buffManager = new BuffManager(this); this._entityManager = new EntityManager(this); this._context = new UpdateContext(); this._startCountDown = new StartCountDown(this, this._data.startCountDown); this._maze = new Maze(this._random, this._data.scale, this._data.offset, this._data.row, this._data.col, this._data.startIndex, this._data.endIndex, this._data.startPointPlace); SyncEvent.GenMaze(this._maze.walkables, this._maze.startIndex, this._maze.endIndex); this.CreateRails(); this.CreateTerminus(); this.CreatePlayers(param.players); this._entityManager.SupplyItems(); }