mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-08-09 00:49:27 +02:00
Added generateRewardOptionFromId function
This commit is contained in:
parent
b293b9063e
commit
49092aad55
@ -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();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user