public TestGame() { LoggerFactory = new Microsoft.Extensions.Logging.Abstractions.NullLoggerFactory(); WorldStateFactory = new TestWorldStateFactory(); World = WorldStateFactory.CreateDevWorldState().ToMutable(); GameDef = new TestGameDefFactory().CreateGameDef(); ScoreRepository = new ScoreRepository(GameDef, World); PlayerRepository = new PlayerRepository(World, ScoreRepository); PlayerRepositoryWrite = new PlayerRepositoryWrite(World); ResourceRepository = new ResourceRepository(World, GameDef); ResourceRepositoryWrite = new ResourceRepositoryWrite(World, ResourceRepository); ActionQueueRepository = new ActionQueueRepository(World); AssetRepository = new AssetRepository(World, PlayerRepository, ActionQueueRepository); AssetRepositoryWrite = new AssetRepositoryWrite(LoggerFactory.CreateLogger <AssetRepositoryWrite>(), World, AssetRepository, ResourceRepository, ResourceRepositoryWrite, ActionQueueRepository, GameDef); UnitRepository = new UnitRepository(World, GameDef, PlayerRepository, AssetRepository); BattleBehavior = new BattleBehaviorScoOriginal(LoggerFactory.CreateLogger <IBattleBehavior>()); UnitRepositoryWrite = new UnitRepositoryWrite(LoggerFactory.CreateLogger <UnitRepositoryWrite>(), World, GameDef, UnitRepository, ResourceRepositoryWrite, PlayerRepository, BattleBehavior); var services = new ServiceCollection(); services.AddSingleton <IGameTickModule>(new ActionQueueExecutor(AssetRepositoryWrite)); services.AddSingleton <IGameTickModule>(new ResourceGrowthSco(LoggerFactory.CreateLogger <ResourceGrowthSco>(), GameDef, ResourceRepository, ResourceRepositoryWrite, AssetRepository, UnitRepository)); GameTickModuleRegistry = new GameTickModuleRegistry(LoggerFactory.CreateLogger <GameTickModuleRegistry>(), services.BuildServiceProvider(), GameDef); TickEngine = new GameTickEngine(LoggerFactory.CreateLogger <GameTickEngine>(), World, GameDef, GameTickModuleRegistry, PlayerRepositoryWrite); }
public ResourceGrowthSco(ILogger <ResourceGrowthSco> logger , GameDef gameDef , ResourceRepository resourceRepository , ResourceRepositoryWrite resourceRepositoryWrite , AssetRepository assetRepository , UnitRepository unitRepository ) { this.logger = logger; this.gameDef = gameDef; this.resourceRepository = resourceRepository; this.resourceRepositoryWrite = resourceRepositoryWrite; this.assetRepository = assetRepository; this.unitRepository = unitRepository; }