mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-06-30 21:42:20 +02:00
Add enumValueToKey
utility function
This commit is contained in:
parent
5632ad70bd
commit
4920d006e8
@ -29,7 +29,7 @@ import { MoveResult } from "#enums/move-result";
|
|||||||
import { getPokemonNameWithAffix } from "#app/messages";
|
import { getPokemonNameWithAffix } from "#app/messages";
|
||||||
import Overrides from "#app/overrides";
|
import Overrides from "#app/overrides";
|
||||||
import { BattlePhase } from "#app/phases/battle-phase";
|
import { BattlePhase } from "#app/phases/battle-phase";
|
||||||
import { NumberHolder } from "#app/utils/common";
|
import { enumValueToKey, NumberHolder } from "#app/utils/common";
|
||||||
import { AbilityId } from "#enums/ability-id";
|
import { AbilityId } from "#enums/ability-id";
|
||||||
import { ArenaTagType } from "#enums/arena-tag-type";
|
import { ArenaTagType } from "#enums/arena-tag-type";
|
||||||
import { BattlerTagType } from "#enums/battler-tag-type";
|
import { BattlerTagType } from "#enums/battler-tag-type";
|
||||||
@ -129,7 +129,7 @@ export class MovePhase extends BattlePhase {
|
|||||||
public start(): void {
|
public start(): void {
|
||||||
super.start();
|
super.start();
|
||||||
|
|
||||||
console.log(MoveId[this.move.moveId], MoveUseMode[this.useMode]);
|
console.log(MoveId[this.move.moveId], enumValueToKey(MoveUseMode, this.useMode));
|
||||||
|
|
||||||
// Check if move is unusable (e.g. running out of PP due to a mid-turn Spite
|
// Check if move is unusable (e.g. running out of PP due to a mid-turn Spite
|
||||||
// or the user no longer being on field), ending the phase early if not.
|
// or the user no longer being on field), ending the phase early if not.
|
||||||
|
@ -611,3 +611,25 @@ export function getShinyDescriptor(variant: Variant): string {
|
|||||||
return i18next.t("common:commonShiny");
|
return i18next.t("common:commonShiny");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the name of the key that matches the enum [object] value.
|
||||||
|
* @param input - The enum [object] to check
|
||||||
|
* @param val - The value to get the key of
|
||||||
|
* @returns The name of the key with the specified value
|
||||||
|
* @example
|
||||||
|
* const thing = {
|
||||||
|
* one: 1,
|
||||||
|
* two: 2,
|
||||||
|
* } as const;
|
||||||
|
* console.log(enumValueToKey(thing, thing.two)); // output: "two"
|
||||||
|
* @throws An `Error` if an invalid enum value is passed to the function
|
||||||
|
*/
|
||||||
|
export function enumValueToKey<T extends Record<string, string | number>>(input: T, val: T[keyof T]): keyof T {
|
||||||
|
for (const [key, value] of Object.entries(input)) {
|
||||||
|
if (val === value) {
|
||||||
|
return key as keyof T;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new Error(`Invalid value passed to \`enumValueToKey\`! Value: ${val}`);
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user