From 49092aad55979b4b97e23c6f5fb304179ea9aad8 Mon Sep 17 00:00:00 2001 From: Wlowscha <54003515+Wlowscha@users.noreply.github.com> Date: Mon, 4 Aug 2025 00:21:14 +0200 Subject: [PATCH] Added generateRewardOptionFromId function --- src/items/reward-utils.ts | 45 ++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 27 deletions(-) diff --git a/src/items/reward-utils.ts b/src/items/reward-utils.ts index ae4ddccbf41..ef49049e8ce 100644 --- a/src/items/reward-utils.ts +++ b/src/items/reward-utils.ts @@ -42,37 +42,28 @@ export function generateReward(rewardFunc: RewardFunc, pregenArgs?: any[]): Rewa } /** - * Generates a Reward Option from a given function + * Generates a Reward Option from a given id * @param rewardFunc * @param pregenArgs - can specify BerryType for berries, TM for TMs, AttackBoostType for item, etc. */ -export function generateRewardOption(rewardFunc: RewardFunc, pregenArgs?: any[]): RewardOption | null { - const reward = generateReward(rewardFunc, pregenArgs); - if (reward) { - const tier = getRewardDefaultTier(reward); - return new RewardOption(reward, 0, tier); - } - return null; -} - -export function generateRewardOptionFromId(id: RewardPoolId, pregenArgs?: any[]): RewardOption | null { +export function generateRewardOptionFromId(id: RewardPoolId, cost = 0, pregenArgs?: any[]): RewardOption | null { if (isHeldItemId(id)) { const reward = new HeldItemReward(id); const tier = heldItemRarities[id]; - return new RewardOption(reward, 0, tier); + return new RewardOption(reward, 0, tier, cost); } if (isTrainerItemId(id)) { const reward = new TrainerItemReward(id); const tier = trainerItemRarities[id]; - return new RewardOption(reward, 0, tier); + return new RewardOption(reward, 0, tier, cost); } const rewardFunc = allRewards[id]; const reward = generateReward(rewardFunc, pregenArgs); if (reward) { const tier = rewardRarities[id]; - return new RewardOption(reward, 0, tier); + return new RewardOption(reward, 0, tier, cost); } return null; } @@ -84,26 +75,26 @@ export function getPlayerShopRewardOptionsForWave(waveIndex: number, baseCost: n const options = [ [ - new RewardOption(allRewards.POTION(), 0, baseCost * 0.2), - new RewardOption(allRewards.ETHER(), 0, baseCost * 0.4), - new RewardOption(allRewards.REVIVE(), 0, baseCost * 2), + generateRewardOptionFromId(RewardId.POTION, baseCost * 0.2), + generateRewardOptionFromId(RewardId.ETHER, baseCost * 0.4), + generateRewardOptionFromId(RewardId.REVIVE, baseCost * 2), ], [ - new RewardOption(allRewards.SUPER_POTION(), 0, baseCost * 0.45), - new RewardOption(allRewards.FULL_HEAL(), 0, baseCost), + generateRewardOptionFromId(RewardId.SUPER_POTION, baseCost * 0.45), + generateRewardOptionFromId(RewardId.FULL_HEAL, baseCost), ], - [new RewardOption(allRewards.ELIXIR(), 0, baseCost), new RewardOption(allRewards.MAX_ETHER(), 0, baseCost)], + [generateRewardOptionFromId(RewardId.ELIXIR, baseCost), generateRewardOptionFromId(RewardId.MAX_ETHER, baseCost)], [ - new RewardOption(allRewards.HYPER_POTION(), 0, baseCost * 0.8), - new RewardOption(allRewards.MAX_REVIVE(), 0, baseCost * 2.75), - new RewardOption(allRewards.MEMORY_MUSHROOM(), 0, baseCost * 4), + generateRewardOptionFromId(RewardId.HYPER_POTION, baseCost * 0.8), + generateRewardOptionFromId(RewardId.MAX_REVIVE, baseCost * 2.75), + generateRewardOptionFromId(RewardId.MEMORY_MUSHROOM, baseCost * 4), ], [ - new RewardOption(allRewards.MAX_POTION(), 0, baseCost * 1.5), - new RewardOption(allRewards.MAX_ELIXIR(), 0, baseCost * 2.5), + generateRewardOptionFromId(RewardId.MAX_POTION, baseCost * 1.5), + generateRewardOptionFromId(RewardId.MAX_ELIXIR, baseCost * 2.5), ], - [new RewardOption(allRewards.FULL_RESTORE(), 0, baseCost * 2.25)], - [new RewardOption(allRewards.SACRED_ASH(), 0, baseCost * 10)], + [generateRewardOptionFromId(RewardId.FULL_RESTORE, baseCost * 2.25)], + [generateRewardOptionFromId(RewardId.SACRED_ASH, baseCost * 10)], ]; return options.slice(0, Math.ceil(Math.max(waveIndex + 10, 0) / 30)).flat(); }