public void initUpgrade(Upgrade upgrade) { this.upgrade = upgrade; this.upgradeActions = upgrade.actions; tooltip = gameObject.transform.Find("ToolTipCanvas").gameObject.transform.Find("ToolTip").gameObject; tooltip.SetActive(false); startingWorldPosition = tooltip.transform.position; TextMeshProUGUI textMesh = tooltip.GetComponentInChildren <TextMeshProUGUI>(); textMesh.text = upgrade.data.description; Image image = gameObject.GetComponentInChildren <Image>(); image.sprite = upgrade.data.sprite; }
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); }