From 1813009443e1632c0b5d5c9e9573b1bec7d2b42c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Ricardo?= Date: Fri, 23 Aug 2024 22:28:47 -0300 Subject: [PATCH] candy upgrade (#3720) --- src/ui/starter-select-ui-handler.ts | 30 ++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index 97064cd9061..250f097c2fc 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -131,6 +131,8 @@ const starterCandyCosts: { passive: integer, costReduction: [integer, integer], { passive: 10, costReduction: [5, 15], egg: 10 }, // 10 Cost ]; +const valueReductionMax = 2; + // Position of UI elements const filterBarHeight = 17; const speciesContainerX = 109; // if team on the RIGHT: 109 / if on the LEFT: 143 @@ -1009,11 +1011,11 @@ export default class StarterSelectUiHandler extends MessageUiHandler { const starterData = this.scene.gameData.starterData[speciesId]; return starterData.candyCount >= getValueReductionCandyCounts(speciesStarters[speciesId])[starterData.valueReduction] - && starterData.valueReduction < 2; + && starterData.valueReduction < valueReductionMax; } /** - * Determines if an same species egg can be baught for the given species ID + * Determines if an same species egg can be bought for the given species ID * @param speciesId The ID of the species to check the value reduction of * @returns true if the user has enough candies */ @@ -1062,15 +1064,18 @@ export default class StarterSelectUiHandler extends MessageUiHandler { } ],}; - const passiveAvailable = this.isPassiveAvailable(species.speciesId); - // 'Only Passives' mode + const isPassiveAvailable = this.isPassiveAvailable(species.speciesId); + const isValueReductionAvailable = this.isValueReductionAvailable(species.speciesId); + const isSameSpeciesEggAvailable = this.isSameSpeciesEggAvailable(species.speciesId); + + // 'Passives Only' mode if (this.scene.candyUpgradeNotification === 1) { - if (passiveAvailable) { + if (isPassiveAvailable) { this.scene.tweens.chain(tweenChain).paused = startPaused; } // 'On' mode } else if (this.scene.candyUpgradeNotification === 2) { - if (passiveAvailable || this.isValueReductionAvailable(species.speciesId)) { + if (isPassiveAvailable || isValueReductionAvailable || isSameSpeciesEggAvailable) { this.scene.tweens.chain(tweenChain).paused = startPaused; } } @@ -1089,16 +1094,19 @@ export default class StarterSelectUiHandler extends MessageUiHandler { return; } - const passiveAvailable = this.isPassiveAvailable(species.speciesId); - // 'Only Passive Unlocks' mode + const isPassiveAvailable = this.isPassiveAvailable(species.speciesId); + const isValueReductionAvailable = this.isValueReductionAvailable(species.speciesId); + const isSameSpeciesEggAvailable = this.isSameSpeciesEggAvailable(species.speciesId); + + // 'Passive Only' mode if (this.scene.candyUpgradeNotification === 1) { - starter.candyUpgradeIcon.setVisible(slotVisible && passiveAvailable); + starter.candyUpgradeIcon.setVisible(slotVisible && isPassiveAvailable); starter.candyUpgradeOverlayIcon.setVisible(slotVisible && starter.candyUpgradeIcon.visible); // 'On' mode } else if (this.scene.candyUpgradeNotification === 2) { starter.candyUpgradeIcon.setVisible( - slotVisible && ( passiveAvailable || this.isValueReductionAvailable(species.speciesId))); + slotVisible && ( isPassiveAvailable || isValueReductionAvailable || isSameSpeciesEggAvailable )); starter.candyUpgradeOverlayIcon.setVisible(slotVisible && starter.candyUpgradeIcon.visible); } } @@ -1630,7 +1638,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { }); } const valueReduction = starterData.valueReduction; - if (valueReduction < 2) { + if (valueReduction < valueReductionMax) { const reductionCost = getValueReductionCandyCounts(speciesStarters[this.lastSpecies.speciesId])[valueReduction]; options.push({ label: `x${reductionCost} ${i18next.t("starterSelectUiHandler:reduceCost")}`,