Fix namebox not updating with theme
Fix namebox not updating with theme; ban certain species from being used by trainerspull/34/head
parent
3e99ed6bb6
commit
4f0b1fdcfb
|
@ -167,6 +167,10 @@ export abstract class PokemonSpeciesForm {
|
||||||
return this.getRegion() > Region.NORMAL;
|
return this.getRegion() > Region.NORMAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isTrainerForbidden(): boolean {
|
||||||
|
return [ Species.ETERNAL_FLOETTE, Species.BLOODMOON_URSALUNA ].includes(this.speciesId);
|
||||||
|
}
|
||||||
|
|
||||||
isRareRegional(): boolean {
|
isRareRegional(): boolean {
|
||||||
switch (this.getRegion()) {
|
switch (this.getRegion()) {
|
||||||
case Region.HISUI:
|
case Region.HISUI:
|
||||||
|
@ -613,7 +617,8 @@ export default class PokemonSpecies extends PokemonSpeciesForm {
|
||||||
&& pokemonPrevolutions.hasOwnProperty(species.speciesId) === hasPrevolution
|
&& pokemonPrevolutions.hasOwnProperty(species.speciesId) === hasPrevolution
|
||||||
&& species.pseudoLegendary === pseudoLegendary
|
&& species.pseudoLegendary === pseudoLegendary
|
||||||
&& species.legendary === legendary
|
&& species.legendary === legendary
|
||||||
&& species.mythical === mythical;
|
&& species.mythical === mythical
|
||||||
|
&& (this.isTrainerForbidden() || !species.isTrainerForbidden());
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -212,7 +212,7 @@ export class TrainerConfig {
|
||||||
this.battleBgm = 'battle_trainer';
|
this.battleBgm = 'battle_trainer';
|
||||||
this.victoryBgm = 'victory_trainer';
|
this.victoryBgm = 'victory_trainer';
|
||||||
this.partyTemplates = [ trainerPartyTemplates.TWO_AVG ];
|
this.partyTemplates = [ trainerPartyTemplates.TWO_AVG ];
|
||||||
this.speciesFilter = species => allowLegendaries || (!species.legendary && !species.pseudoLegendary && !species.mythical);
|
this.speciesFilter = species => (allowLegendaries || (!species.legendary && !species.pseudoLegendary && !species.mythical)) && !species.isTrainerForbidden();
|
||||||
}
|
}
|
||||||
|
|
||||||
getKey(): string {
|
getKey(): string {
|
||||||
|
@ -509,7 +509,7 @@ function getRandomPartyMemberFunc(speciesPool: Species[], trainerSlot: TrainerSl
|
||||||
|
|
||||||
function getSpeciesFilterRandomPartyMemberFunc(speciesFilter: PokemonSpeciesFilter, trainerSlot: TrainerSlot = TrainerSlot.TRAINER, allowLegendaries?: boolean, postProcess?: (EnemyPokemon: EnemyPokemon) => void): PartyMemberFunc {
|
function getSpeciesFilterRandomPartyMemberFunc(speciesFilter: PokemonSpeciesFilter, trainerSlot: TrainerSlot = TrainerSlot.TRAINER, allowLegendaries?: boolean, postProcess?: (EnemyPokemon: EnemyPokemon) => void): PartyMemberFunc {
|
||||||
const originalSpeciesFilter = speciesFilter;
|
const originalSpeciesFilter = speciesFilter;
|
||||||
speciesFilter = (species: PokemonSpecies) => allowLegendaries || (!species.legendary && !species.pseudoLegendary && !species.mythical) && originalSpeciesFilter(species);
|
speciesFilter = (species: PokemonSpecies) => (allowLegendaries || (!species.legendary && !species.pseudoLegendary && !species.mythical)) && !species.isTrainerForbidden() && originalSpeciesFilter(species);
|
||||||
return (scene: BattleScene, level: integer, strength: PartyMemberStrength) => {
|
return (scene: BattleScene, level: integer, strength: PartyMemberStrength) => {
|
||||||
const ret = scene.addEnemyPokemon(getPokemonSpecies(scene.randomSpecies(scene.currentBattle.waveIndex, level, false, speciesFilter).getTrainerSpeciesForLevel(level, true, strength)), level, trainerSlot, undefined, undefined, postProcess);
|
const ret = scene.addEnemyPokemon(getPokemonSpecies(scene.randomSpecies(scene.currentBattle.waveIndex, level, false, speciesFilter).getTrainerSpeciesForLevel(level, true, strength)), level, trainerSlot, undefined, undefined, postProcess);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -878,6 +878,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||||
&& !species.pseudoLegendary
|
&& !species.pseudoLegendary
|
||||||
&& !species.legendary
|
&& !species.legendary
|
||||||
&& !species.mythical
|
&& !species.mythical
|
||||||
|
&& !species.isTrainerForbidden()
|
||||||
&& species.speciesId !== this.species.speciesId
|
&& species.speciesId !== this.species.speciesId
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,7 @@ export function addWindow(scene: BattleScene, x: number, y: number, width: numbe
|
||||||
|
|
||||||
export function updateWindowType(scene: BattleScene, windowTypeIndex: integer): void {
|
export function updateWindowType(scene: BattleScene, windowTypeIndex: integer): void {
|
||||||
const windowObjects: [Phaser.GameObjects.NineSlice, WindowVariant][] = [];
|
const windowObjects: [Phaser.GameObjects.NineSlice, WindowVariant][] = [];
|
||||||
const themedObjects: Phaser.GameObjects.Image[] = [];
|
const themedObjects: (Phaser.GameObjects.Image | Phaser.GameObjects.NineSlice)[] = [];
|
||||||
const traverse = (object: any) => {
|
const traverse = (object: any) => {
|
||||||
if (object.hasOwnProperty('children') && object.children instanceof Phaser.GameObjects.DisplayList) {
|
if (object.hasOwnProperty('children') && object.children instanceof Phaser.GameObjects.DisplayList) {
|
||||||
const children = object.children as Phaser.GameObjects.DisplayList;
|
const children = object.children as Phaser.GameObjects.DisplayList;
|
||||||
|
@ -71,8 +71,10 @@ export function updateWindowType(scene: BattleScene, windowTypeIndex: integer):
|
||||||
} else if (object instanceof Phaser.GameObjects.NineSlice) {
|
} else if (object instanceof Phaser.GameObjects.NineSlice) {
|
||||||
if (object.texture.key.startsWith('window_'))
|
if (object.texture.key.startsWith('window_'))
|
||||||
windowObjects.push([ object, object.texture.key.endsWith(getWindowVariantSuffix(WindowVariant.XTHIN)) ? WindowVariant.XTHIN : object.texture.key.endsWith(getWindowVariantSuffix(WindowVariant.THIN)) ? WindowVariant.THIN : WindowVariant.NORMAL ]);
|
windowObjects.push([ object, object.texture.key.endsWith(getWindowVariantSuffix(WindowVariant.XTHIN)) ? WindowVariant.XTHIN : object.texture.key.endsWith(getWindowVariantSuffix(WindowVariant.THIN)) ? WindowVariant.THIN : WindowVariant.NORMAL ]);
|
||||||
|
else if (object.texture?.key === 'namebox')
|
||||||
|
themedObjects.push(object);
|
||||||
} else if (object instanceof Phaser.GameObjects.Sprite) {
|
} else if (object instanceof Phaser.GameObjects.Sprite) {
|
||||||
if ([ 'bg', 'namebox' ].includes(object.texture?.key))
|
if (object.texture?.key === 'bg')
|
||||||
themedObjects.push(object);
|
themedObjects.push(object);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue