mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-06-30 21:42:20 +02:00
Changed held-items.ts to held-item-id.ts and renamed id object accoridngly
This commit is contained in:
parent
e98004cefa
commit
d109bc202f
@ -1,4 +1,4 @@
|
|||||||
export const HeldItems = {
|
export const HeldItemId = {
|
||||||
NONE: 0x0000,
|
NONE: 0x0000,
|
||||||
|
|
||||||
// Berries
|
// Berries
|
||||||
@ -84,13 +84,13 @@ export const HeldItems = {
|
|||||||
CARBOS: 0x0906,
|
CARBOS: 0x0906,
|
||||||
};
|
};
|
||||||
|
|
||||||
export type HeldItems = (typeof HeldItems)[keyof typeof HeldItems];
|
export type HeldItemId = (typeof HeldItemId)[keyof typeof HeldItemId];
|
||||||
|
|
||||||
type HeldItemName = keyof typeof HeldItems;
|
type HeldItemName = keyof typeof HeldItemId;
|
||||||
type HeldItemValue = typeof HeldItems[HeldItemName];
|
type HeldItemValue = typeof HeldItemId[HeldItemName];
|
||||||
|
|
||||||
// Use a type-safe reducer to force number keys and values
|
// Use a type-safe reducer to force number keys and values
|
||||||
export const HeldItemNames: Record<HeldItemValue, HeldItemName> = Object.entries(HeldItems).reduce(
|
export const HeldItemNames: Record<HeldItemValue, HeldItemName> = Object.entries(HeldItemId).reduce(
|
||||||
(acc, [key, value]) => {
|
(acc, [key, value]) => {
|
||||||
acc[value as HeldItemValue] = key as HeldItemName;
|
acc[value as HeldItemValue] = key as HeldItemName;
|
||||||
return acc;
|
return acc;
|
@ -1,5 +1,5 @@
|
|||||||
import { allHeldItems } from "#app/items/all-held-items";
|
import { allHeldItems } from "#app/items/all-held-items";
|
||||||
import type { HeldItems } from "#app/enums/held-items";
|
import type { HeldItemId } from "#app/enums/held-item-id";
|
||||||
|
|
||||||
interface HeldItemProperties {
|
interface HeldItemProperties {
|
||||||
stack: number;
|
stack: number;
|
||||||
@ -8,7 +8,7 @@ interface HeldItemProperties {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type HeldItemPropertyMap = {
|
type HeldItemPropertyMap = {
|
||||||
[key in HeldItems]: HeldItemProperties;
|
[key in HeldItemId]: HeldItemProperties;
|
||||||
};
|
};
|
||||||
|
|
||||||
export class PokemonItemManager {
|
export class PokemonItemManager {
|
||||||
@ -22,20 +22,20 @@ export class PokemonItemManager {
|
|||||||
return Object.keys(this.heldItems).map(k => Number(k));
|
return Object.keys(this.heldItems).map(k => Number(k));
|
||||||
}
|
}
|
||||||
|
|
||||||
hasItem(itemType: HeldItems): boolean {
|
hasItem(itemType: HeldItemId): boolean {
|
||||||
return itemType in this.heldItems;
|
return itemType in this.heldItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
getItem(itemType: HeldItems): HeldItemProperties {
|
getItem(itemType: HeldItemId): HeldItemProperties {
|
||||||
// TODO: Not very safe
|
// TODO: Not very safe
|
||||||
return this.heldItems[itemType];
|
return this.heldItems[itemType];
|
||||||
}
|
}
|
||||||
|
|
||||||
getStack(itemType: HeldItems): number {
|
getStack(itemType: HeldItemId): number {
|
||||||
return itemType in this.heldItems ? this.heldItems[itemType].stack : 0;
|
return itemType in this.heldItems ? this.heldItems[itemType].stack : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
add(itemType: HeldItems, addStack = 1) {
|
add(itemType: HeldItemId, addStack = 1) {
|
||||||
const maxStack = allHeldItems[itemType].getMaxStackCount();
|
const maxStack = allHeldItems[itemType].getMaxStackCount();
|
||||||
|
|
||||||
if (this.hasItem(itemType)) {
|
if (this.hasItem(itemType)) {
|
||||||
@ -46,7 +46,7 @@ export class PokemonItemManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
remove(itemType: HeldItems, removeStack = 1) {
|
remove(itemType: HeldItemId, removeStack = 1) {
|
||||||
this.heldItems[itemType].stack -= removeStack;
|
this.heldItems[itemType].stack -= removeStack;
|
||||||
|
|
||||||
if (this.heldItems[itemType].stack <= 0) {
|
if (this.heldItems[itemType].stack <= 0) {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { getEnumValues } from "#app/utils/common";
|
import { getEnumValues } from "#app/utils/common";
|
||||||
import { BerryType } from "#enums/berry-type";
|
import { BerryType } from "#enums/berry-type";
|
||||||
import { HeldItems } from "#enums/held-items";
|
import { HeldItemId } from "#enums/held-item-id";
|
||||||
import type { PokemonType } from "#enums/pokemon-type";
|
import type { PokemonType } from "#enums/pokemon-type";
|
||||||
import type { PermanentStat } from "#enums/stat";
|
import type { PermanentStat } from "#enums/stat";
|
||||||
import { ITEM_EFFECT } from "./held-item";
|
import { ITEM_EFFECT } from "./held-item";
|
||||||
@ -36,11 +36,11 @@ export function initHeldItems() {
|
|||||||
allHeldItems[heldItemType] = new BaseStatBoosterHeldItem(heldItemType, 10, stat);
|
allHeldItems[heldItemType] = new BaseStatBoosterHeldItem(heldItemType, 10, stat);
|
||||||
}
|
}
|
||||||
|
|
||||||
allHeldItems[HeldItems.LEFTOVERS] = new TurnEndHealHeldItem(HeldItems.LEFTOVERS, 4);
|
allHeldItems[HeldItemId.LEFTOVERS] = new TurnEndHealHeldItem(HeldItemId.LEFTOVERS, 4);
|
||||||
allHeldItems[HeldItems.SHELL_BELL] = new HitHealHeldItem(HeldItems.SHELL_BELL, 4);
|
allHeldItems[HeldItemId.SHELL_BELL] = new HitHealHeldItem(HeldItemId.SHELL_BELL, 4);
|
||||||
|
|
||||||
allHeldItems[HeldItems.LUCKY_EGG] = new ExpBoosterHeldItem(HeldItems.LUCKY_EGG, 99, 40);
|
allHeldItems[HeldItemId.LUCKY_EGG] = new ExpBoosterHeldItem(HeldItemId.LUCKY_EGG, 99, 40);
|
||||||
allHeldItems[HeldItems.GOLDEN_EGG] = new ExpBoosterHeldItem(HeldItems.GOLDEN_EGG, 99, 100);
|
allHeldItems[HeldItemId.GOLDEN_EGG] = new ExpBoosterHeldItem(HeldItemId.GOLDEN_EGG, 99, 100);
|
||||||
|
|
||||||
for (const berry of getEnumValues(BerryType)) {
|
for (const berry of getEnumValues(BerryType)) {
|
||||||
let maxStackCount: number;
|
let maxStackCount: number;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { applyPostItemLostAbAttrs, PostItemLostAbAttr } from "#app/data/abilities/ability";
|
import { applyPostItemLostAbAttrs, PostItemLostAbAttr } from "#app/data/abilities/ability";
|
||||||
import type Pokemon from "#app/field/pokemon";
|
import type Pokemon from "#app/field/pokemon";
|
||||||
import { globalScene } from "#app/global-scene";
|
import { globalScene } from "#app/global-scene";
|
||||||
import type { HeldItems } from "#enums/held-items";
|
import type { HeldItemId } from "#enums/held-item-id";
|
||||||
|
|
||||||
export const ITEM_EFFECT = {
|
export const ITEM_EFFECT = {
|
||||||
ATTACK_TYPE_BOOST: 1,
|
ATTACK_TYPE_BOOST: 1,
|
||||||
@ -18,13 +18,13 @@ export type ITEM_EFFECT = (typeof ITEM_EFFECT)[keyof typeof ITEM_EFFECT];
|
|||||||
|
|
||||||
export class HeldItem {
|
export class HeldItem {
|
||||||
// public pokemonId: number;
|
// public pokemonId: number;
|
||||||
public type: HeldItems;
|
public type: HeldItemId;
|
||||||
public maxStackCount: number;
|
public maxStackCount: number;
|
||||||
public isTransferable = true;
|
public isTransferable = true;
|
||||||
public isStealable = true;
|
public isStealable = true;
|
||||||
public isSuppressable = true;
|
public isSuppressable = true;
|
||||||
|
|
||||||
constructor(type: HeldItems, maxStackCount = 1) {
|
constructor(type: HeldItemId, maxStackCount = 1) {
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.maxStackCount = maxStackCount;
|
this.maxStackCount = maxStackCount;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { HeldItemNames, HeldItems } from "#enums/held-items";
|
import { HeldItemNames, HeldItemId } from "#enums/held-item-id";
|
||||||
import { PokemonType } from "#enums/pokemon-type";
|
import { PokemonType } from "#enums/pokemon-type";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
import type { NumberHolder } from "#app/utils/common";
|
import type { NumberHolder } from "#app/utils/common";
|
||||||
@ -15,28 +15,28 @@ export interface ATTACK_TYPE_BOOST_PARAMS {
|
|||||||
}
|
}
|
||||||
|
|
||||||
interface AttackTypeToHeldItemMap {
|
interface AttackTypeToHeldItemMap {
|
||||||
[key: number]: HeldItems;
|
[key: number]: HeldItemId;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const attackTypeToHeldItem: AttackTypeToHeldItemMap = {
|
export const attackTypeToHeldItem: AttackTypeToHeldItemMap = {
|
||||||
[PokemonType.NORMAL]: HeldItems.SILK_SCARF,
|
[PokemonType.NORMAL]: HeldItemId.SILK_SCARF,
|
||||||
[PokemonType.FIGHTING]: HeldItems.BLACK_BELT,
|
[PokemonType.FIGHTING]: HeldItemId.BLACK_BELT,
|
||||||
[PokemonType.FLYING]: HeldItems.SHARP_BEAK,
|
[PokemonType.FLYING]: HeldItemId.SHARP_BEAK,
|
||||||
[PokemonType.POISON]: HeldItems.POISON_BARB,
|
[PokemonType.POISON]: HeldItemId.POISON_BARB,
|
||||||
[PokemonType.GROUND]: HeldItems.SOFT_SAND,
|
[PokemonType.GROUND]: HeldItemId.SOFT_SAND,
|
||||||
[PokemonType.ROCK]: HeldItems.HARD_STONE,
|
[PokemonType.ROCK]: HeldItemId.HARD_STONE,
|
||||||
[PokemonType.BUG]: HeldItems.SILVER_POWDER,
|
[PokemonType.BUG]: HeldItemId.SILVER_POWDER,
|
||||||
[PokemonType.GHOST]: HeldItems.SPELL_TAG,
|
[PokemonType.GHOST]: HeldItemId.SPELL_TAG,
|
||||||
[PokemonType.STEEL]: HeldItems.METAL_COAT,
|
[PokemonType.STEEL]: HeldItemId.METAL_COAT,
|
||||||
[PokemonType.FIRE]: HeldItems.CHARCOAL,
|
[PokemonType.FIRE]: HeldItemId.CHARCOAL,
|
||||||
[PokemonType.WATER]: HeldItems.MYSTIC_WATER,
|
[PokemonType.WATER]: HeldItemId.MYSTIC_WATER,
|
||||||
[PokemonType.GRASS]: HeldItems.MIRACLE_SEED,
|
[PokemonType.GRASS]: HeldItemId.MIRACLE_SEED,
|
||||||
[PokemonType.ELECTRIC]: HeldItems.MAGNET,
|
[PokemonType.ELECTRIC]: HeldItemId.MAGNET,
|
||||||
[PokemonType.PSYCHIC]: HeldItems.TWISTED_SPOON,
|
[PokemonType.PSYCHIC]: HeldItemId.TWISTED_SPOON,
|
||||||
[PokemonType.ICE]: HeldItems.NEVER_MELT_ICE,
|
[PokemonType.ICE]: HeldItemId.NEVER_MELT_ICE,
|
||||||
[PokemonType.DRAGON]: HeldItems.DRAGON_FANG,
|
[PokemonType.DRAGON]: HeldItemId.DRAGON_FANG,
|
||||||
[PokemonType.DARK]: HeldItems.BLACK_GLASSES,
|
[PokemonType.DARK]: HeldItemId.BLACK_GLASSES,
|
||||||
[PokemonType.FAIRY]: HeldItems.FAIRY_FEATHER,
|
[PokemonType.FAIRY]: HeldItemId.FAIRY_FEATHER,
|
||||||
};
|
};
|
||||||
|
|
||||||
export class AttackTypeBoosterHeldItem extends HeldItem {
|
export class AttackTypeBoosterHeldItem extends HeldItem {
|
||||||
@ -45,7 +45,7 @@ export class AttackTypeBoosterHeldItem extends HeldItem {
|
|||||||
public powerBoost: number;
|
public powerBoost: number;
|
||||||
|
|
||||||
// This constructor may need a revision
|
// This constructor may need a revision
|
||||||
constructor(type: HeldItems, maxStackCount = 1, moveType: PokemonType, powerBoost: number) {
|
constructor(type: HeldItemId, maxStackCount = 1, moveType: PokemonType, powerBoost: number) {
|
||||||
super(type, maxStackCount);
|
super(type, maxStackCount);
|
||||||
this.moveType = moveType;
|
this.moveType = moveType;
|
||||||
this.powerBoost = powerBoost;
|
this.powerBoost = powerBoost;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import type Pokemon from "#app/field/pokemon";
|
import type Pokemon from "#app/field/pokemon";
|
||||||
import { HeldItems } from "#enums/held-items";
|
import { HeldItemId } from "#enums/held-item-id";
|
||||||
import { getStatKey, type PermanentStat, Stat } from "#enums/stat";
|
import { getStatKey, type PermanentStat, Stat } from "#enums/stat";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
import { HeldItem, ITEM_EFFECT } from "../held-item";
|
import { HeldItem, ITEM_EFFECT } from "../held-item";
|
||||||
@ -11,16 +11,16 @@ export interface BASE_STAT_BOOSTER_PARAMS {
|
|||||||
}
|
}
|
||||||
|
|
||||||
interface PermanentStatToHeldItemMap {
|
interface PermanentStatToHeldItemMap {
|
||||||
[key: number]: HeldItems;
|
[key: number]: HeldItemId;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const permanentStatToHeldItem: PermanentStatToHeldItemMap = {
|
export const permanentStatToHeldItem: PermanentStatToHeldItemMap = {
|
||||||
[Stat.HP]: HeldItems.HP_UP,
|
[Stat.HP]: HeldItemId.HP_UP,
|
||||||
[Stat.ATK]: HeldItems.PROTEIN,
|
[Stat.ATK]: HeldItemId.PROTEIN,
|
||||||
[Stat.DEF]: HeldItems.IRON,
|
[Stat.DEF]: HeldItemId.IRON,
|
||||||
[Stat.SPATK]: HeldItems.CALCIUM,
|
[Stat.SPATK]: HeldItemId.CALCIUM,
|
||||||
[Stat.SPDEF]: HeldItems.ZINC,
|
[Stat.SPDEF]: HeldItemId.ZINC,
|
||||||
[Stat.SPD]: HeldItems.CARBOS,
|
[Stat.SPD]: HeldItemId.CARBOS,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const statBoostItems: Record<PermanentStat, string> = {
|
export const statBoostItems: Record<PermanentStat, string> = {
|
||||||
@ -36,7 +36,7 @@ export class BaseStatBoosterHeldItem extends HeldItem {
|
|||||||
public effects: ITEM_EFFECT[] = [ITEM_EFFECT.BASE_STAT_BOOSTER];
|
public effects: ITEM_EFFECT[] = [ITEM_EFFECT.BASE_STAT_BOOSTER];
|
||||||
public stat: PermanentStat;
|
public stat: PermanentStat;
|
||||||
|
|
||||||
constructor(type: HeldItems, maxStackCount = 1, stat: PermanentStat) {
|
constructor(type: HeldItemId, maxStackCount = 1, stat: PermanentStat) {
|
||||||
super(type, maxStackCount);
|
super(type, maxStackCount);
|
||||||
this.stat = stat;
|
this.stat = stat;
|
||||||
}
|
}
|
||||||
|
@ -5,24 +5,24 @@ import { ConsumableHeldItem, ITEM_EFFECT } from "#app/items/held-item";
|
|||||||
import { PreserveBerryModifier } from "#app/modifier/modifier";
|
import { PreserveBerryModifier } from "#app/modifier/modifier";
|
||||||
import { BooleanHolder } from "#app/utils/common";
|
import { BooleanHolder } from "#app/utils/common";
|
||||||
import { BerryType } from "#enums/berry-type";
|
import { BerryType } from "#enums/berry-type";
|
||||||
import { HeldItems } from "#enums/held-items";
|
import { HeldItemId } from "#enums/held-item-id";
|
||||||
|
|
||||||
interface BerryTypeToHeldItemMap {
|
interface BerryTypeToHeldItemMap {
|
||||||
[key: number]: HeldItems;
|
[key: number]: HeldItemId;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const berryTypeToHeldItem: BerryTypeToHeldItemMap = {
|
export const berryTypeToHeldItem: BerryTypeToHeldItemMap = {
|
||||||
[BerryType.SITRUS]: HeldItems.SITRUS_BERRY,
|
[BerryType.SITRUS]: HeldItemId.SITRUS_BERRY,
|
||||||
[BerryType.LUM]: HeldItems.LUM_BERRY,
|
[BerryType.LUM]: HeldItemId.LUM_BERRY,
|
||||||
[BerryType.ENIGMA]: HeldItems.ENIGMA_BERRY,
|
[BerryType.ENIGMA]: HeldItemId.ENIGMA_BERRY,
|
||||||
[BerryType.LIECHI]: HeldItems.LIECHI_BERRY,
|
[BerryType.LIECHI]: HeldItemId.LIECHI_BERRY,
|
||||||
[BerryType.GANLON]: HeldItems.GANLON_BERRY,
|
[BerryType.GANLON]: HeldItemId.GANLON_BERRY,
|
||||||
[BerryType.PETAYA]: HeldItems.PETAYA_BERRY,
|
[BerryType.PETAYA]: HeldItemId.PETAYA_BERRY,
|
||||||
[BerryType.APICOT]: HeldItems.APICOT_BERRY,
|
[BerryType.APICOT]: HeldItemId.APICOT_BERRY,
|
||||||
[BerryType.SALAC]: HeldItems.SALAC_BERRY,
|
[BerryType.SALAC]: HeldItemId.SALAC_BERRY,
|
||||||
[BerryType.LANSAT]: HeldItems.LANSAT_BERRY,
|
[BerryType.LANSAT]: HeldItemId.LANSAT_BERRY,
|
||||||
[BerryType.STARF]: HeldItems.STARF_BERRY,
|
[BerryType.STARF]: HeldItemId.STARF_BERRY,
|
||||||
[BerryType.LEPPA]: HeldItems.LEPPA_BERRY,
|
[BerryType.LEPPA]: HeldItemId.LEPPA_BERRY,
|
||||||
};
|
};
|
||||||
|
|
||||||
export interface BERRY_PARAMS {
|
export interface BERRY_PARAMS {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import type Pokemon from "#app/field/pokemon";
|
import type Pokemon from "#app/field/pokemon";
|
||||||
import type { NumberHolder } from "#app/utils/common";
|
import type { NumberHolder } from "#app/utils/common";
|
||||||
import { HeldItems } from "#enums/held-items";
|
import { HeldItemId } from "#enums/held-item-id";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
import { HeldItem, ITEM_EFFECT } from "../held-item";
|
import { HeldItem, ITEM_EFFECT } from "../held-item";
|
||||||
|
|
||||||
@ -15,25 +15,25 @@ export class ExpBoosterHeldItem extends HeldItem {
|
|||||||
public effects: ITEM_EFFECT[] = [ITEM_EFFECT.EXP_BOOSTER];
|
public effects: ITEM_EFFECT[] = [ITEM_EFFECT.EXP_BOOSTER];
|
||||||
private boostMultiplier: number;
|
private boostMultiplier: number;
|
||||||
|
|
||||||
constructor(type: HeldItems, maxStackCount = 1, boostPercent: number) {
|
constructor(type: HeldItemId, maxStackCount = 1, boostPercent: number) {
|
||||||
super(type, maxStackCount);
|
super(type, maxStackCount);
|
||||||
this.boostMultiplier = boostPercent * 0.01;
|
this.boostMultiplier = boostPercent * 0.01;
|
||||||
}
|
}
|
||||||
|
|
||||||
get name(): string {
|
get name(): string {
|
||||||
return this.type === HeldItems.LUCKY_EGG
|
return this.type === HeldItemId.LUCKY_EGG
|
||||||
? i18next.t("modifierType:ModifierType.LUCKY_EGG.name")
|
? i18next.t("modifierType:ModifierType.LUCKY_EGG.name")
|
||||||
: i18next.t("modifierType:ModifierType.GOLDEN_EGG.name");
|
: i18next.t("modifierType:ModifierType.GOLDEN_EGG.name");
|
||||||
}
|
}
|
||||||
|
|
||||||
get description(): string {
|
get description(): string {
|
||||||
return this.type === HeldItems.LUCKY_EGG
|
return this.type === HeldItemId.LUCKY_EGG
|
||||||
? i18next.t("modifierType:ModifierType.LUCKY_EGG.description")
|
? i18next.t("modifierType:ModifierType.LUCKY_EGG.description")
|
||||||
: i18next.t("modifierType:ModifierType.GOLDEN_EGG.description");
|
: i18next.t("modifierType:ModifierType.GOLDEN_EGG.description");
|
||||||
}
|
}
|
||||||
|
|
||||||
get icon(): string {
|
get icon(): string {
|
||||||
return this.type === HeldItems.LUCKY_EGG ? "lucky_egg" : "golden_egg";
|
return this.type === HeldItemId.LUCKY_EGG ? "lucky_egg" : "golden_egg";
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: What do we do with this? Need to look up all the shouldApply
|
// TODO: What do we do with this? Need to look up all the shouldApply
|
||||||
|
@ -129,7 +129,7 @@ import { getStatKey, Stat, TEMP_BATTLE_STATS } from "#enums/stat";
|
|||||||
import { StatusEffect } from "#enums/status-effect";
|
import { StatusEffect } from "#enums/status-effect";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
import { timedEventManager } from "#app/global-event-manager";
|
import { timedEventManager } from "#app/global-event-manager";
|
||||||
import { HeldItems } from "#enums/held-items";
|
import { HeldItemId } from "#enums/held-item-id";
|
||||||
import { allHeldItems } from "#app/items/all-held-items";
|
import { allHeldItems } from "#app/items/all-held-items";
|
||||||
import { TYPE_BOOST_ITEM_BOOST_PERCENT } from "#app/constants";
|
import { TYPE_BOOST_ITEM_BOOST_PERCENT } from "#app/constants";
|
||||||
import { attackTypeToHeldItem } from "#app/items/held-items/attack-type-booster";
|
import { attackTypeToHeldItem } from "#app/items/held-items/attack-type-booster";
|
||||||
@ -429,8 +429,8 @@ export class PokemonHeldItemModifierType extends PokemonModifierType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class PokemonHeldItemReward extends PokemonModifierType {
|
export class PokemonHeldItemReward extends PokemonModifierType {
|
||||||
public itemId: HeldItems;
|
public itemId: HeldItemId;
|
||||||
constructor(itemId: HeldItems, newModifierFunc: NewModifierFunc, group?: string, soundName?: string) {
|
constructor(itemId: HeldItemId, newModifierFunc: NewModifierFunc, group?: string, soundName?: string) {
|
||||||
super(
|
super(
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
@ -2153,7 +2153,7 @@ export const modifierTypes = {
|
|||||||
|
|
||||||
WHITE_HERB_REWARD: () =>
|
WHITE_HERB_REWARD: () =>
|
||||||
new PokemonHeldItemReward(
|
new PokemonHeldItemReward(
|
||||||
HeldItems.WHITE_HERB,
|
HeldItemId.WHITE_HERB,
|
||||||
(type, args) => new ResetNegativeStatStageModifier(type, (args[0] as Pokemon).id),
|
(type, args) => new ResetNegativeStatStageModifier(type, (args[0] as Pokemon).id),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -2316,12 +2316,12 @@ export const modifierTypes = {
|
|||||||
|
|
||||||
LUCKY_EGG_REWARD: () =>
|
LUCKY_EGG_REWARD: () =>
|
||||||
new PokemonHeldItemReward(
|
new PokemonHeldItemReward(
|
||||||
HeldItems.LUCKY_EGG,
|
HeldItemId.LUCKY_EGG,
|
||||||
(type, args) => new ExpBoosterModifier(type, (args[0] as Pokemon).id),
|
(type, args) => new ExpBoosterModifier(type, (args[0] as Pokemon).id),
|
||||||
),
|
),
|
||||||
GOLDEN_EGG_REWARD: () =>
|
GOLDEN_EGG_REWARD: () =>
|
||||||
new PokemonHeldItemReward(
|
new PokemonHeldItemReward(
|
||||||
HeldItems.GOLDEN_EGG,
|
HeldItemId.GOLDEN_EGG,
|
||||||
(type, args) => new ExpBoosterModifier(type, (args[0] as Pokemon).id),
|
(type, args) => new ExpBoosterModifier(type, (args[0] as Pokemon).id),
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -2459,10 +2459,16 @@ export const modifierTypes = {
|
|||||||
),
|
),
|
||||||
|
|
||||||
LEFTOVERS_REWARD: () =>
|
LEFTOVERS_REWARD: () =>
|
||||||
new PokemonHeldItemReward(HeldItems.LEFTOVERS, (type, args) => new TurnHealModifier(type, (args[0] as Pokemon).id)),
|
new PokemonHeldItemReward(
|
||||||
|
HeldItemId.LEFTOVERS,
|
||||||
|
(type, args) => new TurnHealModifier(type, (args[0] as Pokemon).id),
|
||||||
|
),
|
||||||
|
|
||||||
SHELL_BELL_REWARD: () =>
|
SHELL_BELL_REWARD: () =>
|
||||||
new PokemonHeldItemReward(HeldItems.SHELL_BELL, (type, args) => new HitHealModifier(type, (args[0] as Pokemon).id)),
|
new PokemonHeldItemReward(
|
||||||
|
HeldItemId.SHELL_BELL,
|
||||||
|
(type, args) => new HitHealModifier(type, (args[0] as Pokemon).id),
|
||||||
|
),
|
||||||
|
|
||||||
LEFTOVERS: () =>
|
LEFTOVERS: () =>
|
||||||
new PokemonHeldItemModifierType(
|
new PokemonHeldItemModifierType(
|
||||||
@ -3778,14 +3784,14 @@ export function getEnemyModifierTypesForWave(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Add proper documentation to this function (once it fully works...)
|
// TODO: Add proper documentation to this function (once it fully works...)
|
||||||
// TODO: Convert trainer pool to HeldItems too
|
// TODO: Convert trainer pool to HeldItemId too
|
||||||
export function getEnemyHeldItemsForWave(
|
export function getEnemyHeldItemsForWave(
|
||||||
waveIndex: number,
|
waveIndex: number,
|
||||||
count: number,
|
count: number,
|
||||||
party: EnemyPokemon[],
|
party: EnemyPokemon[],
|
||||||
poolType: ModifierPoolType.WILD | ModifierPoolType.TRAINER,
|
poolType: ModifierPoolType.WILD | ModifierPoolType.TRAINER,
|
||||||
upgradeChance = 0,
|
upgradeChance = 0,
|
||||||
): HeldItems[] {
|
): HeldItemId[] {
|
||||||
const ret = new Array(count).fill(0).map(() => {
|
const ret = new Array(count).fill(0).map(() => {
|
||||||
const reward = getNewModifierTypeOption(
|
const reward = getNewModifierTypeOption(
|
||||||
party,
|
party,
|
||||||
@ -3797,7 +3803,7 @@ export function getEnemyHeldItemsForWave(
|
|||||||
});
|
});
|
||||||
if (!(waveIndex % 1000)) {
|
if (!(waveIndex % 1000)) {
|
||||||
// TODO: Change this line with the actual held item when implemented
|
// TODO: Change this line with the actual held item when implemented
|
||||||
ret.push(HeldItems.MINI_BLACK_HOLE);
|
ret.push(HeldItemId.MINI_BLACK_HOLE);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user