public EnemyManagerService( GameObject enemyObjectPrefab, GameObject enemyContainer, PlayerService playerService, EnemyService enemyService, EnemyTurnService enemyTurnService, StatusService statusService, DeckService deckService, EnemyTypes enemyTypes, CardUiManager cardUiManager, CardGeneratorService cardGeneratorService, SceneUiManager sceneUiManager, UpgradeUiManager upgradeUiManager, UpgradeService upgradeService ) { this.enemyObjectPrefab = enemyObjectPrefab; this.enemyContainer = enemyContainer; this.enemyService = enemyService; this.enemyTurnService = enemyTurnService; this.statusService = statusService; this.playerService = playerService; this.deckService = deckService; this.enemyTypes = enemyTypes; this.cardUiManager = cardUiManager; this.cardGeneratorService = cardGeneratorService; this.sceneUiManager = sceneUiManager; this.upgradeUiManager = upgradeUiManager; this.upgradeService = upgradeService; }
public EnemyService(EnemyTurnService enemyTurnService, StatusService statusService) { this.enemyTurnService = enemyTurnService; this.statusService = statusService; }
void Start() { //Get references to GameObjects from scene takeObjectsFromScene(); //prefabs. no dependencies. GameObject upgradePrefab = Resources.Load(FilePathUtils.prefabPath + "upgradeObject") as GameObject; GameObject cardPrefab = Resources.Load(FilePathUtils.prefabPath + "cardObject") as GameObject; GameObject campContractPrefab = Resources.Load(FilePathUtils.prefabPath + "campContractObject") as GameObject; GameObject healthBarPrefab = Resources.Load(FilePathUtils.prefabPath + "healthBarObject") as GameObject; GameObject enemyPrefab = Resources.Load(FilePathUtils.prefabPath + "enemyObject") as GameObject; GameObject eventButtonPrefab = Resources.Load(FilePathUtils.prefabPath + "eventButtonObject") as GameObject; //Data classes. no dependencies GameData gameData = new GameData(); GameData.setInstance(gameData); //Ui manager, only dependencies are GameObjects CardUiManager cardUiManager = new CardUiManager( cardPrefab, playerHandObject, cardListGrid, cardListScene, cardSelectUi ); SceneUiManager sceneUiManager = new SceneUiManager( startScene, gameOverScene, victoryScene, cardListScene, fightSceneObject, campScene, eventScene ); UpgradeUiManager upgradeUiManager = new UpgradeUiManager( upgradeSelect, upgradePrefab, upgradeList ); CampContractUiManager campContractUiManager = new CampContractUiManager( campContractPrefab, campContracts ); //Types StatusTypes statusTypes = new StatusTypes(); EnemyTypes enemyTypes = new EnemyTypes(enemyPrefab); CardTypes cardTypes = new CardTypes(); cardTypes.initialize(statusTypes); //GameObjects PlayerGameObject playerGameObject = playerObject.GetComponent <PlayerGameObject>(); playerGameObject.initalize(playerObject); gameData.playerGameObject = playerGameObject; FightSceneGameObject fightSceneGameObject = fightSceneObject.GetComponent <FightSceneGameObject>(); fightSceneGameObject.initalize(fightSceneObject); //Services UpgradeService upgradeService = new UpgradeService(); EnemyTurnService enemyTurnService = new EnemyTurnService(); StatusService statusService = new StatusService(statusTypes); EnemyService enemyService = new EnemyService(enemyTurnService, statusService); CardGeneratorService cardGeneratorService = new CardGeneratorService(cardTypes); PlayerService playerService = new PlayerService(sceneUiManager, statusService, playerGameObject); DeckService deckService = new DeckService(cardUiManager, playerService); CampContractService campContractService = new CampContractService(campContractUiManager); EnemyManagerService enemyManagerService = new EnemyManagerService( enemyPrefab, enemyContainer, playerService, enemyService, enemyTurnService, statusService, deckService, enemyTypes, cardUiManager, cardGeneratorService, sceneUiManager, upgradeUiManager, upgradeService ); CardService cardService = new CardService(enemyManagerService, playerService, new AudioState(), deckService, enemyService); CampService campService = new CampService(campScene, campSelectionScene, campContractService, cardTypes); CardActionsService cardActionsService = new CardActionsService(deckService, playerService, cardService); EnemyManagerService.setInstance(enemyManagerService); UpgradeTypes upgradeTypes = new UpgradeTypes(playerService); EventManagerService eventManagerService = new EventManagerService( eventBoard, eventBoardButtons, eventButtonPrefab, campTitleText, campText ); FightManagerService fightManagerService = new FightManagerService( sceneUiManager, cardUiManager, playerService, upgradeUiManager, deckService, campService, upgradeService, enemyManagerService, eventManagerService ); eventManagerService.setFightService(fightManagerService); cardUiManager.initialize(cardActionsService); upgradeUiManager.initialize(upgradeService); deckService.initialize(enemyManagerService); //Initialize game data class gameData.deckService = deckService; gameData.playerService = playerService; gameData.upgradeService = upgradeService; gameData.enemyTypes = enemyTypes; //init scene buttons + add click events startNewRunButton.onClick.AddListener(() => fightManagerService.startNewRun(upgradeTypes, cardTypes)); runItBackButton.onClick.AddListener(() => fightManagerService.startNewRun(upgradeTypes, cardTypes)); nextFightButton.onClick.AddListener(fightManagerService.startFight); closeCardListButton.onClick.AddListener(cardUiManager.hideCardPile); closeCampListButton.onClick.AddListener(() => campService.hideCampFightList()); leaveCampButton.onClick.AddListener(() => fightManagerService.confirmCampEvents()); DeckData deckData = gameData.deckData; addEventTrigger(showDeckObject).callback.AddListener((data) => cardUiManager.showCardPile(deckData.deckCards)); addEventTrigger(showDiscardObject).callback.AddListener((data) => cardUiManager.showCardPile(deckData.discardCards)); addEventTrigger(showTrashObject).callback.AddListener((data) => cardUiManager.showCardPile(deckData.trash)); addEventTrigger(endTurnObject).callback.AddListener((data) => fightManagerService.endTurn()); addEventTrigger(extraDrawObject).callback.AddListener((data) => deckService.extraDraw()); addEventTrigger(wellGameObject).callback.AddListener((data) => campService.showCampFightList()); addEventTrigger(shopGameObject).callback.AddListener((data) => campService.showCampFightList()); //hide well/shop buttons wellGameObject.SetActive(false); shopGameObject.SetActive(false); }