void Update() { if (initialized) { enemyHealthBar.updateHealthBar(enemy.data.healthBarData); if (enemy.data.healthBarData.currHealth <= 0) { gameObject.SetActive(false); EnemyManagerService.getInstance().onEnemyDefeat(this); } if (attacking) { this.attackAnimationAction(); } Card enemyTurn = enemy.data.enemyTurnData.currEnemyTurn; if (enemyTurn != null) { double weakModifier = StatusUtils.getAppliedStatusCount(StatusTypes.StatusEnum.weak, this.statusesObject.activeStatuses) > 0 ? enemy.data.weakMultiplier : 1.0; enemyBlockIntent.text = "Block: " + enemyTurn.data.defend.ToString(); enemyAttackIntent.text = "Attack: " + ((int)(weakModifier * enemyTurn.data.attack)).ToString(); if (enemyTurn.data.attackMultiplier > 1) { enemyAttackIntent.text += " x " + enemyTurn.data.attackMultiplier.ToString(); } otherIntent.text = ""; if (enemyTurn.data.cardToAddToPlayersDecks != null && enemyTurn.data.cardToAddToPlayersDecks.Count > 0) { otherIntent.text = "Add " + enemyTurn.data.cardToAddToPlayersDecks.Count + " cards to players deck"; } } } }
public CardService( EnemyManagerService enemyManagerService, PlayerService playerService, AudioState audioState, DeckService deckService, EnemyService enemyService) { this.enemyManagerService = enemyManagerService; this.playerService = playerService; this.audioState = audioState; this.deckService = deckService; this.enemyService = enemyService; }
public FightManagerService( SceneUiManager sceneUiManager, CardUiManager cardUiManager, PlayerService playerService, UpgradeUiManager upgradeUiManager, DeckService deckService, CampService campService, UpgradeService upgradeService, EnemyManagerService enemyManagerService, EventManagerService eventManagerService) { this.sceneUiManager = sceneUiManager; this.cardUiManager = cardUiManager; this.playerService = playerService; this.deckService = deckService; this.campService = campService; this.upgradeService = upgradeService; this.enemyManagerService = enemyManagerService; this.eventManagerService = eventManagerService; }
public Upgrade getUpgradeFromEnum(UpgradeEnum upgradeEnum) { Upgrade upgrade = new Upgrade(upgradeEnum); UpgradeData data = new UpgradeData(); UpgradeActions actions = new UpgradeActions(); if (upgradeEnum == UpgradeEnum.apple) { int healthIncrease = 5; data.sprite = Resources.Load <Sprite>(spritePath + "Apple"); data.description = "Increase max HP by 10"; data.name = "Apple"; actions.onPickupAction = () => { playerService.playerData.healthBarData.maxHealth += healthIncrease; playerService.playerData.healthBarData.currHealth += healthIncrease; }; actions.onRemoveAction = () => { playerService.playerData.healthBarData.maxHealth -= healthIncrease; }; } else if (upgradeEnum == UpgradeEnum.banana) { int energyIncrease = 1; data.sprite = Resources.Load <Sprite>(spritePath + "Bananas"); data.description = "Inrease max energy by " + energyIncrease; data.name = "Banana"; actions.onPickupAction = () => { playerService.playerData.maxEnergy += energyIncrease; playerService.playerData.currEnergy += energyIncrease; }; actions.onRemoveAction = () => { playerService.playerData.maxEnergy -= energyIncrease; playerService.playerData.currEnergy -= energyIncrease; }; } else if (upgradeEnum == UpgradeEnum.cherries) { int firstTurnDamage = 6; data.sprite = Resources.Load <Sprite>(spritePath + "Cherries"); data.description = "At the start of combat, deal " + firstTurnDamage + " damage to all enemies"; data.name = "Cherries"; actions.onCombatStartAction = () => { EnemyManagerService.getInstance().damageAllEnemy(firstTurnDamage, 1); }; } else if (upgradeEnum == UpgradeEnum.kiwi) { int firstTurnBlock = 10; data.sprite = Resources.Load <Sprite>(spritePath + "Kiwi"); data.description = "At the start of combat, gain " + firstTurnBlock + " block"; data.name = "Kiwi"; actions.onCombatStartAction = () => { playerService.addPlayerBlock(firstTurnBlock); }; } else if (upgradeEnum == UpgradeEnum.kiwi1) { int blockThreashold = 5; data.sprite = Resources.Load <Sprite>(spritePath + "Kiwi"); data.description = "At the start of your turn, lose " + blockThreashold + " instead of all block."; data.name = "Kiwi-Alt"; actions.onPickupAction = () => { playerService.playerData.blockToLoseEachTurn = blockThreashold; }; actions.onRemoveAction = () => { playerService.playerData.blockToLoseEachTurn = -1; }; } else if (upgradeEnum == UpgradeEnum.cherries1) { int extraDrawCount = 2; data.sprite = Resources.Load <Sprite>(spritePath + "Cherries"); data.description = "At the start of combat, draw " + extraDrawCount + " extra cards"; data.name = "Cherries-Alt"; actions.onCombatStartAction = () => { for (int i = 0; i < extraDrawCount; i++) { GameData.getInstance().deckService.drawCard(); } }; } else if (upgradeEnum == UpgradeEnum.banana1) { int healAmount = 6; data.sprite = Resources.Load <Sprite>(spritePath + "Bananas"); data.description = "At the end of combat, heal " + healAmount + "."; data.name = "Bananas-Alt"; actions.onCombatEndAction = () => { GameData.getInstance().playerService.heal(healAmount); }; } else if (upgradeEnum == UpgradeEnum.apple1) { int firstAttackExtraDamage = 8; bool usedUp = false; data.sprite = Resources.Load <Sprite>(spritePath + "Apple"); data.description = "The first card played each combat deals " + firstAttackExtraDamage + " extra damage."; data.name = "Apple-Alt"; actions.onCombatStartAction = () => { usedUp = false; GameData.getInstance().playerGameObject.playerData.nextAttackBonusDamage += firstAttackExtraDamage; }; actions.onCardPlayedAction = (Card card) => { if (!usedUp) { if (card.data.attack > 0) { GameData.getInstance().playerGameObject.playerData.nextAttackBonusDamage -= firstAttackExtraDamage; usedUp = true; } } }; actions.onCombatEndAction = () => { if (!usedUp) { GameData.getInstance().playerGameObject.playerData.nextAttackBonusDamage -= firstAttackExtraDamage; usedUp = true; } }; } else { throw new System.Exception("invalid status enum provided: " + upgradeEnum); } upgrade.data = data; upgrade.actions = actions; return(upgrade); }
public void initialize(EnemyManagerService enemyManagerService) { this.enemyManagerService = enemyManagerService; }
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); }
public static void setInstance(EnemyManagerService instance) { enemyManagerService = instance; }