mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-08-09 08:59:29 +02:00
Removed rewardInitObj
This commit is contained in:
parent
93ea5749c7
commit
be017438ff
@ -17,7 +17,7 @@ import { HeldItemId } from "#enums/held-item-id";
|
|||||||
import { LearnMoveType } from "#enums/learn-move-type";
|
import { LearnMoveType } from "#enums/learn-move-type";
|
||||||
import { MoveId } from "#enums/move-id";
|
import { MoveId } from "#enums/move-id";
|
||||||
import { Nature } from "#enums/nature";
|
import { Nature } from "#enums/nature";
|
||||||
import { PokeballType } from "#enums/pokeball";
|
import type { PokeballType } from "#enums/pokeball";
|
||||||
import { PokemonType } from "#enums/pokemon-type";
|
import { PokemonType } from "#enums/pokemon-type";
|
||||||
import { RewardId } from "#enums/reward-id";
|
import { RewardId } from "#enums/reward-id";
|
||||||
import { RarityTier } from "#enums/reward-tier";
|
import { RarityTier } from "#enums/reward-tier";
|
||||||
@ -32,14 +32,10 @@ import { permanentStatToHeldItem, statBoostItems } from "#items/base-stat-booste
|
|||||||
import { berryTypeToHeldItem } from "#items/berry";
|
import { berryTypeToHeldItem } from "#items/berry";
|
||||||
import { getNewAttackTypeBoosterHeldItem, getNewBerryHeldItem, getNewVitaminHeldItem } from "#items/held-item-pool";
|
import { getNewAttackTypeBoosterHeldItem, getNewBerryHeldItem, getNewVitaminHeldItem } from "#items/held-item-pool";
|
||||||
import { formChangeItemName } from "#items/item-utility";
|
import { formChangeItemName } from "#items/item-utility";
|
||||||
import {
|
import { SPECIES_STAT_BOOSTER_ITEMS, type SpeciesStatBoostHeldItem } from "#items/stat-booster";
|
||||||
SPECIES_STAT_BOOSTER_ITEMS,
|
|
||||||
type SpeciesStatBoosterItemId,
|
|
||||||
type SpeciesStatBoostHeldItem,
|
|
||||||
} from "#items/stat-booster";
|
|
||||||
import { TrainerItemEffect, tempStatToTrainerItem } from "#items/trainer-item";
|
import { TrainerItemEffect, tempStatToTrainerItem } from "#items/trainer-item";
|
||||||
import type { PokemonMove } from "#moves/pokemon-move";
|
import type { PokemonMove } from "#moves/pokemon-move";
|
||||||
import { getVoucherTypeIcon, getVoucherTypeName, VoucherType } from "#system/voucher";
|
import { getVoucherTypeIcon, getVoucherTypeName, type VoucherType } from "#system/voucher";
|
||||||
import type { RewardFunc, WeightedRewardWeightFunc } from "#types/rewards";
|
import type { RewardFunc, WeightedRewardWeightFunc } from "#types/rewards";
|
||||||
import type { Exact } from "#types/type-helpers";
|
import type { Exact } from "#types/type-helpers";
|
||||||
import type { PokemonMoveSelectFilter, PokemonSelectFilter } from "#ui/party-ui-handler";
|
import type { PokemonMoveSelectFilter, PokemonSelectFilter } from "#ui/party-ui-handler";
|
||||||
@ -1528,289 +1524,6 @@ export class WeightedReward {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type BaseRewardOverride = {
|
|
||||||
name: Exclude<RewardKeys, GeneratorRewardOverride["name"]>;
|
|
||||||
count?: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
/** Type for modifiers and held items that are constructed via {@linkcode RewardGenerator}. */
|
|
||||||
export type GeneratorRewardOverride = {
|
|
||||||
count?: number;
|
|
||||||
} & (
|
|
||||||
| {
|
|
||||||
name: keyof Pick<typeof rewardInitObj, "SPECIES_STAT_BOOSTER" | "RARE_SPECIES_STAT_BOOSTER">;
|
|
||||||
type?: SpeciesStatBoosterItemId;
|
|
||||||
}
|
|
||||||
| {
|
|
||||||
name: keyof Pick<typeof rewardInitObj, "TEMP_STAT_STAGE_BOOSTER">;
|
|
||||||
type?: TempBattleStat;
|
|
||||||
}
|
|
||||||
| {
|
|
||||||
name: keyof Pick<typeof rewardInitObj, "BASE_STAT_BOOSTER">;
|
|
||||||
type?: Stat;
|
|
||||||
}
|
|
||||||
| {
|
|
||||||
name: keyof Pick<typeof rewardInitObj, "MINT">;
|
|
||||||
type?: Nature;
|
|
||||||
}
|
|
||||||
| {
|
|
||||||
name: keyof Pick<typeof rewardInitObj, "ATTACK_TYPE_BOOSTER" | "TERA_SHARD">;
|
|
||||||
type?: PokemonType;
|
|
||||||
}
|
|
||||||
| {
|
|
||||||
name: keyof Pick<typeof rewardInitObj, "BERRY">;
|
|
||||||
type?: BerryType;
|
|
||||||
}
|
|
||||||
| {
|
|
||||||
name: keyof Pick<typeof rewardInitObj, "EVOLUTION_ITEM" | "RARE_EVOLUTION_ITEM">;
|
|
||||||
type?: EvolutionItem;
|
|
||||||
}
|
|
||||||
| {
|
|
||||||
name: keyof Pick<typeof rewardInitObj, "FORM_CHANGE_ITEM" | "RARE_FORM_CHANGE_ITEM">;
|
|
||||||
type?: FormChangeItem;
|
|
||||||
}
|
|
||||||
| {
|
|
||||||
name: keyof Pick<typeof rewardInitObj, "TM_COMMON" | "TM_GREAT" | "TM_ULTRA">;
|
|
||||||
type?: MoveId;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
/** Type used to construct modifiers and held items for overriding purposes. */
|
|
||||||
export type RewardOverride = GeneratorRewardOverride | BaseRewardOverride;
|
|
||||||
|
|
||||||
const rewardInitObj = Object.freeze({
|
|
||||||
// Pokeball rewards
|
|
||||||
POKEBALL: () => new AddPokeballReward("pb", PokeballType.POKEBALL, 5, RewardId.POKEBALL),
|
|
||||||
GREAT_BALL: () => new AddPokeballReward("gb", PokeballType.GREAT_BALL, 5, RewardId.GREAT_BALL),
|
|
||||||
ULTRA_BALL: () => new AddPokeballReward("ub", PokeballType.ULTRA_BALL, 5, RewardId.ULTRA_BALL),
|
|
||||||
ROGUE_BALL: () => new AddPokeballReward("rb", PokeballType.ROGUE_BALL, 5, RewardId.ROGUE_BALL),
|
|
||||||
MASTER_BALL: () => new AddPokeballReward("mb", PokeballType.MASTER_BALL, 1, RewardId.MASTER_BALL),
|
|
||||||
|
|
||||||
// Voucher rewards
|
|
||||||
VOUCHER: () => new AddVoucherReward(VoucherType.REGULAR, 1, RewardId.VOUCHER),
|
|
||||||
VOUCHER_PLUS: () => new AddVoucherReward(VoucherType.PLUS, 1, RewardId.VOUCHER_PLUS),
|
|
||||||
VOUCHER_PREMIUM: () => new AddVoucherReward(VoucherType.PREMIUM, 1, RewardId.VOUCHER_PREMIUM),
|
|
||||||
|
|
||||||
// Money rewards
|
|
||||||
NUGGET: () =>
|
|
||||||
new AddMoneyReward(
|
|
||||||
"modifierType:ModifierType.NUGGET",
|
|
||||||
"nugget",
|
|
||||||
1,
|
|
||||||
"modifierType:ModifierType.MoneyRewardModifierType.extra.small",
|
|
||||||
RewardId.NUGGET,
|
|
||||||
),
|
|
||||||
BIG_NUGGET: () =>
|
|
||||||
new AddMoneyReward(
|
|
||||||
"modifierType:ModifierType.BIG_NUGGET",
|
|
||||||
"big_nugget",
|
|
||||||
2.5,
|
|
||||||
"modifierType:ModifierType.MoneyRewardModifierType.extra.moderate",
|
|
||||||
RewardId.BIG_NUGGET,
|
|
||||||
),
|
|
||||||
RELIC_GOLD: () =>
|
|
||||||
new AddMoneyReward(
|
|
||||||
"modifierType:ModifierType.RELIC_GOLD",
|
|
||||||
"relic_gold",
|
|
||||||
10,
|
|
||||||
"modifierType:ModifierType.MoneyRewardModifierType.extra.large",
|
|
||||||
RewardId.RELIC_GOLD,
|
|
||||||
),
|
|
||||||
|
|
||||||
// Party-wide consumables
|
|
||||||
RARER_CANDY: () => new AllPokemonLevelIncrementReward("modifierType:ModifierType.RARER_CANDY", "rarer_candy"),
|
|
||||||
SACRED_ASH: () => new AllPokemonFullReviveReward("modifierType:ModifierType.SACRED_ASH", "sacred_ash"),
|
|
||||||
|
|
||||||
// Pokemon consumables
|
|
||||||
RARE_CANDY: () => new PokemonLevelIncrementReward("modifierType:ModifierType.RARE_CANDY", "rare_candy"),
|
|
||||||
|
|
||||||
EVOLUTION_ITEM: () => new EvolutionItemRewardGenerator(false, RewardId.EVOLUTION_ITEM),
|
|
||||||
RARE_EVOLUTION_ITEM: () => new EvolutionItemRewardGenerator(true, RewardId.RARE_EVOLUTION_ITEM),
|
|
||||||
|
|
||||||
POTION: () => new PokemonHpRestoreReward("modifierType:ModifierType.POTION", "potion", RewardId.POTION, 20, 10),
|
|
||||||
SUPER_POTION: () =>
|
|
||||||
new PokemonHpRestoreReward("modifierType:ModifierType.SUPER_POTION", "super_potion", RewardId.SUPER_POTION, 50, 25),
|
|
||||||
HYPER_POTION: () =>
|
|
||||||
new PokemonHpRestoreReward(
|
|
||||||
"modifierType:ModifierType.HYPER_POTION",
|
|
||||||
"hyper_potion",
|
|
||||||
RewardId.HYPER_POTION,
|
|
||||||
200,
|
|
||||||
50,
|
|
||||||
),
|
|
||||||
MAX_POTION: () =>
|
|
||||||
new PokemonHpRestoreReward("modifierType:ModifierType.MAX_POTION", "max_potion", RewardId.MAX_POTION, 0, 100),
|
|
||||||
FULL_RESTORE: () =>
|
|
||||||
new PokemonHpRestoreReward(
|
|
||||||
"modifierType:ModifierType.FULL_RESTORE",
|
|
||||||
"full_restore",
|
|
||||||
RewardId.FULL_RESTORE,
|
|
||||||
0,
|
|
||||||
100,
|
|
||||||
true,
|
|
||||||
),
|
|
||||||
|
|
||||||
REVIVE: () => new PokemonReviveReward("modifierType:ModifierType.REVIVE", "revive", RewardId.REVIVE, 50),
|
|
||||||
MAX_REVIVE: () =>
|
|
||||||
new PokemonReviveReward("modifierType:ModifierType.MAX_REVIVE", "max_revive", RewardId.MAX_REVIVE, 100),
|
|
||||||
|
|
||||||
FULL_HEAL: () => new PokemonStatusHealReward("modifierType:ModifierType.FULL_HEAL", "full_heal"),
|
|
||||||
|
|
||||||
ETHER: () => new PokemonPpRestoreReward("modifierType:ModifierType.ETHER", "ether", RewardId.ETHER, 10),
|
|
||||||
MAX_ETHER: () =>
|
|
||||||
new PokemonPpRestoreReward("modifierType:ModifierType.MAX_ETHER", "max_ether", RewardId.MAX_ETHER, -1),
|
|
||||||
|
|
||||||
ELIXIR: () => new PokemonAllMovePpRestoreReward("modifierType:ModifierType.ELIXIR", "elixir", RewardId.ELIXIR, 10),
|
|
||||||
MAX_ELIXIR: () =>
|
|
||||||
new PokemonAllMovePpRestoreReward("modifierType:ModifierType.MAX_ELIXIR", "max_elixir", RewardId.MAX_ELIXIR, -1),
|
|
||||||
|
|
||||||
PP_UP: () => new PokemonPpUpReward("modifierType:ModifierType.PP_UP", "pp_up", RewardId.PP_UP, 1),
|
|
||||||
PP_MAX: () => new PokemonPpUpReward("modifierType:ModifierType.PP_MAX", "pp_max", RewardId.PP_MAX, 3),
|
|
||||||
|
|
||||||
/*REPEL: () => new DoubleBattleChanceBoosterReward('Repel', 5),
|
|
||||||
SUPER_REPEL: () => new DoubleBattleChanceBoosterReward('Super Repel', 10),
|
|
||||||
MAX_REPEL: () => new DoubleBattleChanceBoosterReward('Max Repel', 25),*/
|
|
||||||
|
|
||||||
MINT: () => new MintRewardGenerator(),
|
|
||||||
|
|
||||||
TERA_SHARD: () => new TeraTypeRewardGenerator(),
|
|
||||||
|
|
||||||
TM_COMMON: () => new TmRewardGenerator(RarityTier.COMMON),
|
|
||||||
TM_GREAT: () => new TmRewardGenerator(RarityTier.GREAT),
|
|
||||||
TM_ULTRA: () => new TmRewardGenerator(RarityTier.ULTRA),
|
|
||||||
|
|
||||||
MEMORY_MUSHROOM: () => new RememberMoveReward("modifierType:ModifierType.MEMORY_MUSHROOM", "big_mushroom"),
|
|
||||||
|
|
||||||
DNA_SPLICERS: () => new FusePokemonReward("modifierType:ModifierType.DNA_SPLICERS", "dna_splicers"),
|
|
||||||
|
|
||||||
// Form change items
|
|
||||||
FORM_CHANGE_ITEM: () => new FormChangeItemRewardGenerator(false, RewardId.FORM_CHANGE_ITEM),
|
|
||||||
RARE_FORM_CHANGE_ITEM: () => new FormChangeItemRewardGenerator(true, RewardId.RARE_FORM_CHANGE_ITEM),
|
|
||||||
|
|
||||||
// Held items
|
|
||||||
REVIVER_SEED: () => new HeldItemReward(HeldItemId.REVIVER_SEED),
|
|
||||||
|
|
||||||
WHITE_HERB: () => new HeldItemReward(HeldItemId.WHITE_HERB),
|
|
||||||
|
|
||||||
SPECIES_STAT_BOOSTER: () => new SpeciesStatBoosterRewardGenerator(false),
|
|
||||||
RARE_SPECIES_STAT_BOOSTER: () => new SpeciesStatBoosterRewardGenerator(true),
|
|
||||||
|
|
||||||
BASE_STAT_BOOSTER: () => new BaseStatBoosterRewardGenerator(),
|
|
||||||
|
|
||||||
ATTACK_TYPE_BOOSTER: () => new AttackTypeBoosterRewardGenerator(),
|
|
||||||
|
|
||||||
MYSTICAL_ROCK: () => new HeldItemReward(HeldItemId.MYSTICAL_ROCK),
|
|
||||||
|
|
||||||
BERRY: () => new BerryRewardGenerator(),
|
|
||||||
|
|
||||||
LUCKY_EGG: () => new HeldItemReward(HeldItemId.LUCKY_EGG),
|
|
||||||
GOLDEN_EGG: () => new HeldItemReward(HeldItemId.GOLDEN_EGG),
|
|
||||||
|
|
||||||
SOOTHE_BELL: () => new HeldItemReward(HeldItemId.SOOTHE_BELL),
|
|
||||||
|
|
||||||
SCOPE_LENS: () => new HeldItemReward(HeldItemId.SCOPE_LENS),
|
|
||||||
LEEK: () => new HeldItemReward(HeldItemId.LEEK),
|
|
||||||
|
|
||||||
EVIOLITE: () => new HeldItemReward(HeldItemId.EVIOLITE),
|
|
||||||
|
|
||||||
SOUL_DEW: () => new HeldItemReward(HeldItemId.SOUL_DEW),
|
|
||||||
|
|
||||||
GOLDEN_PUNCH: () => new HeldItemReward(HeldItemId.GOLDEN_PUNCH),
|
|
||||||
|
|
||||||
GRIP_CLAW: () => new HeldItemReward(HeldItemId.GRIP_CLAW),
|
|
||||||
WIDE_LENS: () => new HeldItemReward(HeldItemId.WIDE_LENS),
|
|
||||||
|
|
||||||
MULTI_LENS: () => new HeldItemReward(HeldItemId.MULTI_LENS),
|
|
||||||
|
|
||||||
FOCUS_BAND: () => new HeldItemReward(HeldItemId.FOCUS_BAND),
|
|
||||||
|
|
||||||
QUICK_CLAW: () => new HeldItemReward(HeldItemId.QUICK_CLAW),
|
|
||||||
|
|
||||||
KINGS_ROCK: () => new HeldItemReward(HeldItemId.KINGS_ROCK),
|
|
||||||
|
|
||||||
LEFTOVERS: () => new HeldItemReward(HeldItemId.LEFTOVERS),
|
|
||||||
|
|
||||||
SHELL_BELL: () => new HeldItemReward(HeldItemId.SHELL_BELL),
|
|
||||||
|
|
||||||
TOXIC_ORB: () => new HeldItemReward(HeldItemId.TOXIC_ORB),
|
|
||||||
|
|
||||||
FLAME_ORB: () => new HeldItemReward(HeldItemId.FLAME_ORB),
|
|
||||||
|
|
||||||
BATON: () => new HeldItemReward(HeldItemId.BATON),
|
|
||||||
|
|
||||||
MINI_BLACK_HOLE: () => new HeldItemReward(HeldItemId.MINI_BLACK_HOLE),
|
|
||||||
|
|
||||||
// Trainer items
|
|
||||||
MEGA_BRACELET: () => new TrainerItemReward(TrainerItemId.MEGA_BRACELET),
|
|
||||||
DYNAMAX_BAND: () => new TrainerItemReward(TrainerItemId.DYNAMAX_BAND),
|
|
||||||
TERA_ORB: () => new TrainerItemReward(TrainerItemId.TERA_ORB),
|
|
||||||
|
|
||||||
MAP: () => new TrainerItemReward(TrainerItemId.MAP),
|
|
||||||
|
|
||||||
LURE: () => new LapsingTrainerItemReward(TrainerItemId.LURE, RewardId.LURE),
|
|
||||||
SUPER_LURE: () => new LapsingTrainerItemReward(TrainerItemId.SUPER_LURE, RewardId.SUPER_LURE),
|
|
||||||
MAX_LURE: () => new LapsingTrainerItemReward(TrainerItemId.MAX_LURE, RewardId.MAX_LURE),
|
|
||||||
|
|
||||||
TEMP_STAT_STAGE_BOOSTER: () => new TempStatStageBoosterRewardGenerator(),
|
|
||||||
|
|
||||||
DIRE_HIT: () => new LapsingTrainerItemReward(TrainerItemId.DIRE_HIT, RewardId.TEMP_STAT_STAGE_BOOSTER),
|
|
||||||
|
|
||||||
EXP_SHARE: () => new TrainerItemReward(TrainerItemId.EXP_SHARE),
|
|
||||||
EXP_BALANCE: () => new TrainerItemReward(TrainerItemId.EXP_BALANCE),
|
|
||||||
|
|
||||||
OVAL_CHARM: () => new TrainerItemReward(TrainerItemId.OVAL_CHARM),
|
|
||||||
|
|
||||||
EXP_CHARM: () => new TrainerItemReward(TrainerItemId.EXP_CHARM),
|
|
||||||
SUPER_EXP_CHARM: () => new TrainerItemReward(TrainerItemId.SUPER_EXP_CHARM),
|
|
||||||
|
|
||||||
AMULET_COIN: () => new TrainerItemReward(TrainerItemId.AMULET_COIN),
|
|
||||||
|
|
||||||
LOCK_CAPSULE: () => new TrainerItemReward(TrainerItemId.LOCK_CAPSULE),
|
|
||||||
|
|
||||||
HEALING_CHARM: () => new TrainerItemReward(TrainerItemId.HEALING_CHARM),
|
|
||||||
CANDY_JAR: () => new TrainerItemReward(TrainerItemId.CANDY_JAR),
|
|
||||||
|
|
||||||
BERRY_POUCH: () => new TrainerItemReward(TrainerItemId.BERRY_POUCH),
|
|
||||||
|
|
||||||
SHINY_CHARM: () => new TrainerItemReward(TrainerItemId.SHINY_CHARM),
|
|
||||||
ABILITY_CHARM: () => new TrainerItemReward(TrainerItemId.ABILITY_CHARM),
|
|
||||||
CATCHING_CHARM: () => new TrainerItemReward(TrainerItemId.CATCHING_CHARM),
|
|
||||||
|
|
||||||
IV_SCANNER: () => new TrainerItemReward(TrainerItemId.IV_SCANNER),
|
|
||||||
|
|
||||||
GOLDEN_POKEBALL: () => new TrainerItemReward(TrainerItemId.GOLDEN_POKEBALL),
|
|
||||||
|
|
||||||
// Tokens //TODO: do we even need them here?
|
|
||||||
ENEMY_DAMAGE_BOOSTER: () => new TrainerItemReward(TrainerItemId.ENEMY_DAMAGE_BOOSTER),
|
|
||||||
ENEMY_DAMAGE_REDUCTION: () => new TrainerItemReward(TrainerItemId.ENEMY_DAMAGE_REDUCTION),
|
|
||||||
//ENEMY_SUPER_EFFECT_BOOSTER: () => new Reward('Type Advantage Token', 'Increases damage of super effective attacks by 30%', (type, _args) => new EnemySuperEffectiveDamageBoosterModifier(type, 30), 'wl_custom_super_effective'),
|
|
||||||
ENEMY_HEAL: () => new TrainerItemReward(TrainerItemId.ENEMY_HEAL),
|
|
||||||
ENEMY_ATTACK_POISON_CHANCE: () => new TrainerItemReward(TrainerItemId.ENEMY_ATTACK_POISON_CHANCE),
|
|
||||||
ENEMY_ATTACK_PARALYZE_CHANCE: () => new TrainerItemReward(TrainerItemId.ENEMY_ATTACK_PARALYZE_CHANCE),
|
|
||||||
ENEMY_ATTACK_BURN_CHANCE: () => new TrainerItemReward(TrainerItemId.ENEMY_ATTACK_BURN_CHANCE),
|
|
||||||
ENEMY_STATUS_EFFECT_HEAL_CHANCE: () => new TrainerItemReward(TrainerItemId.ENEMY_STATUS_EFFECT_HEAL_CHANCE),
|
|
||||||
ENEMY_ENDURE_CHANCE: () => new TrainerItemReward(TrainerItemId.ENEMY_ENDURE_CHANCE),
|
|
||||||
ENEMY_FUSED_CHANCE: () => new TrainerItemReward(TrainerItemId.ENEMY_FUSED_CHANCE),
|
|
||||||
|
|
||||||
// Items from mystery encounters
|
|
||||||
MYSTERY_ENCOUNTER_SHUCKLE_JUICE_GOOD: () => new HeldItemReward(HeldItemId.SHUCKLE_JUICE_GOOD),
|
|
||||||
MYSTERY_ENCOUNTER_SHUCKLE_JUICE_BAD: () => new HeldItemReward(HeldItemId.SHUCKLE_JUICE_BAD),
|
|
||||||
|
|
||||||
MYSTERY_ENCOUNTER_OLD_GATEAU: () => new HeldItemReward(HeldItemId.OLD_GATEAU),
|
|
||||||
|
|
||||||
MYSTERY_ENCOUNTER_BLACK_SLUDGE: () => new TrainerItemReward(TrainerItemId.BLACK_SLUDGE),
|
|
||||||
|
|
||||||
MYSTERY_ENCOUNTER_MACHO_BRACE: () => new HeldItemReward(HeldItemId.MACHO_BRACE),
|
|
||||||
|
|
||||||
MYSTERY_ENCOUNTER_GOLDEN_BUG_NET: () => new TrainerItemReward(TrainerItemId.GOLDEN_BUG_NET),
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The initial set of modifier types, used to generate the modifier pool.
|
|
||||||
*/
|
|
||||||
export type Rewards = typeof rewardInitObj;
|
|
||||||
export type RewardKeys = keyof typeof rewardInitObj;
|
|
||||||
|
|
||||||
export class RewardOption {
|
export class RewardOption {
|
||||||
public type: Reward;
|
public type: Reward;
|
||||||
public upgradeCount: number;
|
public upgradeCount: number;
|
||||||
|
Loading…
Reference in New Issue
Block a user