Compare commits

...

3 Commits

Author SHA1 Message Date
SmhMyHead
0475f664e1
Merge c54e7e935c into 907e3c8208 2025-08-12 16:57:12 -05:00
Blitzy
907e3c8208
[Balance] Updates to Twins Trainer Class Pool (#6239)
* Update trainer-config.ts

* Update trainer-config.ts

* Update trainer-config.ts

* Update trainer-config.ts

---------

Co-authored-by: damocleas <damocleas25@gmail.com>
2025-08-12 01:10:35 -04:00
SmhMyHead
c54e7e935c [UI/UIX] Dex unseen species filter 2025-05-31 04:38:50 +02:00
2 changed files with 60 additions and 15 deletions

View File

@ -1865,27 +1865,43 @@ export const trainerConfigs: TrainerConfigs = {
.setPartyMemberFunc( .setPartyMemberFunc(
0, 0,
getRandomPartyMemberFunc([ getRandomPartyMemberFunc([
SpeciesId.METAPOD,
SpeciesId.LEDYBA,
SpeciesId.CLEFFA,
SpeciesId.WOOPER,
SpeciesId.TEDDIURSA,
SpeciesId.REMORAID,
SpeciesId.HOUNDOUR,
SpeciesId.SILCOON,
SpeciesId.PLUSLE, SpeciesId.PLUSLE,
SpeciesId.VOLBEAT, SpeciesId.VOLBEAT,
SpeciesId.PACHIRISU, SpeciesId.SPINDA,
SpeciesId.SILCOON, SpeciesId.BONSLY,
SpeciesId.METAPOD,
SpeciesId.IGGLYBUFF,
SpeciesId.PETILIL, SpeciesId.PETILIL,
SpeciesId.EEVEE, SpeciesId.SPRITZEE,
SpeciesId.MILCERY,
SpeciesId.PICHU,
]), ]),
) )
.setPartyMemberFunc( .setPartyMemberFunc(
1, 1,
getRandomPartyMemberFunc( getRandomPartyMemberFunc(
[ [
SpeciesId.KAKUNA,
SpeciesId.SPINARAK,
SpeciesId.IGGLYBUFF,
SpeciesId.PALDEA_WOOPER,
SpeciesId.PHANPY,
SpeciesId.MANTYKE,
SpeciesId.ELECTRIKE,
SpeciesId.CASCOON,
SpeciesId.MINUN, SpeciesId.MINUN,
SpeciesId.ILLUMISE, SpeciesId.ILLUMISE,
SpeciesId.EMOLGA, SpeciesId.SPINDA,
SpeciesId.CASCOON, SpeciesId.MIME_JR,
SpeciesId.KAKUNA,
SpeciesId.CLEFFA,
SpeciesId.COTTONEE, SpeciesId.COTTONEE,
SpeciesId.SWIRLIX,
SpeciesId.FIDOUGH,
SpeciesId.EEVEE, SpeciesId.EEVEE,
], ],
TrainerSlot.TRAINER_PARTNER, TrainerSlot.TRAINER_PARTNER,

View File

@ -235,6 +235,9 @@ export class PokedexUiHandler extends MessageUiHandler {
private canShowFormTray: boolean; private canShowFormTray: boolean;
private filteredIndices: SpeciesId[]; private filteredIndices: SpeciesId[];
// Custom tint for unseen species filter
private customTintSeenFilter = false;
constructor() { constructor() {
super(UiMode.POKEDEX); super(UiMode.POKEDEX);
} }
@ -410,6 +413,11 @@ export class PokedexUiHandler extends MessageUiHandler {
new DropDownLabel(i18next.t("filterBar:hasHiddenAbility"), undefined, DropDownState.ON), new DropDownLabel(i18next.t("filterBar:hasHiddenAbility"), undefined, DropDownState.ON),
new DropDownLabel(i18next.t("filterBar:noHiddenAbility"), undefined, DropDownState.EXCLUDE), new DropDownLabel(i18next.t("filterBar:noHiddenAbility"), undefined, DropDownState.EXCLUDE),
]; ];
const seenSpeciesLabels = [
new DropDownLabel(i18next.t("filterBar:seenSpecies"), undefined, DropDownState.OFF),
new DropDownLabel(i18next.t("filterBar:isSeen"), undefined, DropDownState.ON),
new DropDownLabel(i18next.t("filterBar:isUnseen"), undefined, DropDownState.EXCLUDE),
];
const eggLabels = [ const eggLabels = [
new DropDownLabel(i18next.t("filterBar:egg"), undefined, DropDownState.OFF), new DropDownLabel(i18next.t("filterBar:egg"), undefined, DropDownState.OFF),
new DropDownLabel(i18next.t("filterBar:eggPurchasable"), undefined, DropDownState.ON), new DropDownLabel(i18next.t("filterBar:eggPurchasable"), undefined, DropDownState.ON),
@ -423,6 +431,7 @@ export class PokedexUiHandler extends MessageUiHandler {
new DropDownOption("FAVORITE", favoriteLabels), new DropDownOption("FAVORITE", favoriteLabels),
new DropDownOption("WIN", winLabels), new DropDownOption("WIN", winLabels),
new DropDownOption("HIDDEN_ABILITY", hiddenAbilityLabels), new DropDownOption("HIDDEN_ABILITY", hiddenAbilityLabels),
new DropDownOption("SEEN_SPECIES", seenSpeciesLabels),
new DropDownOption("EGG", eggLabels), new DropDownOption("EGG", eggLabels),
new DropDownOption("POKERUS", pokerusLabels), new DropDownOption("POKERUS", pokerusLabels),
]; ];
@ -792,13 +801,15 @@ export class PokedexUiHandler extends MessageUiHandler {
this.starterSelectMessageBoxContainer.setVisible(!!text?.length); this.starterSelectMessageBoxContainer.setVisible(!!text?.length);
} }
isSeen(species: PokemonSpecies, dexEntry: DexEntry): boolean { isSeen(species: PokemonSpecies, dexEntry: DexEntry, seenFilter?: boolean): boolean {
if (dexEntry?.seenAttr) { if (dexEntry?.seenAttr) {
return true; return true;
} }
if (!seenFilter) {
const starterDexEntry = globalScene.gameData.dexData[this.getStarterSpeciesId(species.speciesId)]; const starterDexEntry = globalScene.gameData.dexData[this.getStarterSpeciesId(species.speciesId)];
return !!starterDexEntry?.caughtAttr; return !!starterDexEntry?.caughtAttr;
}
return false;
} }
/** /**
@ -1617,6 +1628,23 @@ export class PokedexUiHandler extends MessageUiHandler {
} }
}); });
// Seen Filter
const dexEntry = globalScene.gameData.dexData[species.speciesId];
const isItSeen = this.isSeen(species, dexEntry, true);
const fitsSeen = this.filterBar.getVals(DropDownColumn.MISC).some(misc => {
if (misc.val === "SEEN_SPECIES" && misc.state === DropDownState.ON) {
return isItSeen;
}
if (misc.val === "SEEN_SPECIES" && misc.state === DropDownState.EXCLUDE) {
this.customTintSeenFilter = true;
return !isItSeen;
}
if (misc.val === "SEEN_SPECIES" && misc.state === DropDownState.OFF) {
this.customTintSeenFilter = false;
return true;
}
});
// Egg Purchasable Filter // Egg Purchasable Filter
const isEggPurchasable = this.isSameSpeciesEggAvailable(species.speciesId); const isEggPurchasable = this.isSameSpeciesEggAvailable(species.speciesId);
const fitsEgg = this.filterBar.getVals(DropDownColumn.MISC).some(misc => { const fitsEgg = this.filterBar.getVals(DropDownColumn.MISC).some(misc => {
@ -1658,6 +1686,7 @@ export class PokedexUiHandler extends MessageUiHandler {
fitsFavorite && fitsFavorite &&
fitsWin && fitsWin &&
fitsHA && fitsHA &&
fitsSeen &&
fitsEgg && fitsEgg &&
fitsPokerus fitsPokerus
) { ) {
@ -1753,9 +1782,9 @@ export class PokedexUiHandler extends MessageUiHandler {
globalScene.gameData.dexData[this.getStarterSpeciesId(speciesId)].caughtAttr & globalScene.gameData.dexData[this.getStarterSpeciesId(speciesId)].caughtAttr &
data.species.getFullUnlocksData(); data.species.getFullUnlocksData();
if (caughtAttr & data.species.getFullUnlocksData() || globalScene.dexForDevs) { if ((caughtAttr & data.species.getFullUnlocksData() && !this.customTintSeenFilter) || globalScene.dexForDevs) {
container.icon.clearTint(); container.icon.clearTint();
} else if (this.isSeen(data.species, dexEntry)) { } else if (this.isSeen(data.species, dexEntry) || this.customTintSeenFilter) {
container.icon.setTint(0x808080); container.icon.setTint(0x808080);
} else { } else {
container.icon.setTint(0); container.icon.setTint(0);