/// <summary> /// Creates new structure according to def belonging to factory's faction /// </summary> /// <param name="def">Definition of structure to be created</param> /// <returns>Structure defined by Def belonging to factory's faction</returns> public IStructure <IStructureDef> CreateNewBuilding(IStructureDef def) { IStructure <IStructureDef> buildingController; switch (def) { case ResourceFactoryDef resourceFactoryDef: buildingController = new ResourceFactoryController(resourceFactoryDef, faction); break; case TrainingStructureDef trainingStructureDef: TrainingStructureController structureController = new TrainingStructureController(trainingStructureDef, game.Spawner); structureController.Faction = faction; GameActionFactory gameActionFactory = new GameActionFactory(game); foreach (ITrainableDef trainableDef in trainingStructureDef.TrainableDefs) { IGameAction gameAction = gameActionFactory.CreateTrainAction(trainableDef, structureController); structureController.GameActions.Add(gameAction); } buildingController = structureController; break; default: buildingController = new BuildingController((BuildingDef)def); buildingController.Faction = faction; break; } return(buildingController); }
public void Test_ShouldSetResourceType_WhenGivenDef(ResourceType resourceType) { // Arrange def.ResourceType = resourceType; // Act ResourceFactoryController resourceFactory = new ResourceFactoryController(def, faction); // Assert Assert.AreEqual(resourceType, resourceFactory.ResourceType); }