Moved sort function in the modifier bar

This commit is contained in:
Wlowscha 2025-05-29 16:14:44 +02:00
parent 604c216e12
commit 50372df550
No known key found for this signature in database
GPG Key ID: 3C8F1AD330565D04
4 changed files with 30 additions and 28 deletions

View File

@ -1986,27 +1986,3 @@ export function overrideHeldItems(pokemon: Pokemon, isPlayer = true): void {
}
}
}
export const modifierSortFunc = (a: Modifier, b: Modifier): number => {
const itemNameMatch = a.type.name.localeCompare(b.type.name);
const typeNameMatch = a.constructor.name.localeCompare(b.constructor.name);
const aId = a instanceof PokemonHeldItemModifier && a.pokemonId ? a.pokemonId : 4294967295;
const bId = b instanceof PokemonHeldItemModifier && b.pokemonId ? b.pokemonId : 4294967295;
//First sort by pokemonID
if (aId < bId) {
return 1;
}
if (aId > bId) {
return -1;
}
if (aId === bId) {
//Then sort by item type
if (typeNameMatch === 0) {
return itemNameMatch;
//Finally sort by item name
}
return typeNameMatch;
}
return 0;
};

View File

@ -1,6 +1,6 @@
import { globalScene } from "#app/global-scene";
import { modifierSortFunc, type PokemonHeldItemModifier } from "./held-item-modifier";
import type { PersistentModifier } from "./modifier";
import { PokemonHeldItemModifier } from "./held-item-modifier";
import type { Modifier, PersistentModifier } from "./modifier";
const iconOverflowIndex = 24;
@ -80,3 +80,27 @@ export class ModifierBar extends Phaser.GameObjects.Container {
icon.setPosition(this.player ? x : -x, y);
}
}
export const modifierSortFunc = (a: Modifier, b: Modifier): number => {
const itemNameMatch = a.type.name.localeCompare(b.type.name);
const typeNameMatch = a.constructor.name.localeCompare(b.constructor.name);
const aId = a instanceof PokemonHeldItemModifier && a.pokemonId ? a.pokemonId : 4294967295;
const bId = b instanceof PokemonHeldItemModifier && b.pokemonId ? b.pokemonId : 4294967295;
//First sort by pokemonID
if (aId < bId) {
return 1;
}
if (aId > bId) {
return -1;
}
if (aId === bId) {
//Then sort by item type
if (typeNameMatch === 0) {
return itemNameMatch;
//Finally sort by item name
}
return typeNameMatch;
}
return 0;
};

View File

@ -27,7 +27,8 @@ import { SettingKeyboard } from "#app/system/settings/settings-keyboard";
import { getBiomeName } from "#app/data/balance/biomes";
import type { MysteryEncounterType } from "#enums/mystery-encounter-type";
import { globalScene } from "#app/global-scene";
import { modifierSortFunc, PokemonHeldItemModifier } from "#app/modifier/held-item-modifier";
import { PokemonHeldItemModifier } from "#app/modifier/held-item-modifier";
import { modifierSortFunc } from "#app/modifier/modifier-bar";
/**
* RunInfoUiMode indicates possible overlays of RunInfoUiHandler.

View File

@ -37,7 +37,8 @@ import { PlayerGender } from "#enums/player-gender";
import { Stat, PERMANENT_STATS, getStatKey } from "#enums/stat";
import { Nature } from "#enums/nature";
import { achvs } from "#app/system/achv";
import { modifierSortFunc, PokemonHeldItemModifier } from "#app/modifier/held-item-modifier";
import { PokemonHeldItemModifier } from "#app/modifier/held-item-modifier";
import { modifierSortFunc } from "#app/modifier/modifier-bar";
enum Page {
PROFILE,