diff --git a/src/items/all-rewards.ts b/src/items/all-rewards.ts index cfc1713684b..02ba21b4515 100644 --- a/src/items/all-rewards.ts +++ b/src/items/all-rewards.ts @@ -36,7 +36,7 @@ import { // TODO: Move to `reward-utils.ts` and un-exportt export const allRewards = { - [RewardId.NONE]: new NoneReward("", ""), + [RewardId.NONE]: new NoneReward(), // Pokeball rewards [RewardId.POKEBALL]: new AddPokeballReward("pb", PokeballType.POKEBALL, 5, RewardId.POKEBALL), diff --git a/src/items/reward-utils.ts b/src/items/reward-utils.ts index 65fd6a6079a..28c86aa3b82 100644 --- a/src/items/reward-utils.ts +++ b/src/items/reward-utils.ts @@ -7,6 +7,7 @@ import type { RewardPoolId, RewardSpecs } from "#types/rewards"; import { heldItemRarities } from "./held-item-default-tiers"; import { HeldItemReward, + NoneReward, type PokemonMoveReward, type RememberMoveReward, type Reward, @@ -45,7 +46,7 @@ export function generateRewardOptionFromId( cost = 0, tierOverride?: RarityTier, upgradeCount = 0, -): RewardOption | null { +): RewardOption { // Destructure specs into individual parameters const pregenArgs = typeof specs === "object" ? specs.args : undefined; const id: RewardPoolId = typeof specs === "object" ? specs.id : specs; @@ -62,13 +63,13 @@ export function generateRewardOptionFromId( return new RewardOption(reward, upgradeCount, tier, cost); } - const rewardFunc = allRewards[id] as Reward | RewardGenerator; - const reward = rewardFunc instanceof RewardGenerator ? rewardFunc.generateReward(pregenArgs) : rewardFunc; - if (reward) { - const tier = tierOverride ?? rewardRarities[id]; - return new RewardOption(reward, upgradeCount, tier, cost); + const tempReward = allRewards[id] as Reward | RewardGenerator; + let reward = tempReward instanceof RewardGenerator ? tempReward.generateReward(pregenArgs) : tempReward; + if (!reward) { + reward = new NoneReward(); } - return null; + const tier = tierOverride ?? rewardRarities[id]; + return new RewardOption(reward, upgradeCount, tier, cost); } export function getPlayerShopRewardOptionsForWave(waveIndex: number, baseCost: number): RewardOption[] { diff --git a/src/items/reward.ts b/src/items/reward.ts index 1637f059edb..9937a56c05f 100644 --- a/src/items/reward.ts +++ b/src/items/reward.ts @@ -1519,5 +1519,9 @@ export class RewardOption { } export class NoneReward extends Reward { + constructor() { + super("", ""); + } + override apply(): void {} }