mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-11 10:52:17 +02:00
better code positioning
This commit is contained in:
parent
557c21fd25
commit
3689e316ae
@ -615,6 +615,16 @@ export default class BattleScene extends SceneBase {
|
||||
if (OPP_SPECIES_OVERRIDE)
|
||||
species = getPokemonSpecies(OPP_SPECIES_OVERRIDE);
|
||||
const pokemon = new EnemyPokemon(this, species, level, trainerSlot, boss, dataSource);
|
||||
// we get the modifiers override for the opponent
|
||||
const modifiersOverride = this.getEnemyModifiersOverride();
|
||||
// if we have some modifiers override, apply them to the opponent
|
||||
if (modifiersOverride?.length) {
|
||||
// we delete all previous modifiers to avoid stack of override
|
||||
this.enemyModifiers = [];
|
||||
for (const m of modifiersOverride) {
|
||||
this.addEnemyModifier(getModifierType(modifierTypes[m]).newModifier(pokemon) as PersistentModifier, true, true);
|
||||
}
|
||||
}
|
||||
if (boss && !dataSource) {
|
||||
const secondaryIvs = Utils.getIvsFromId(Utils.randSeedInt(4294967295));
|
||||
|
||||
@ -1760,17 +1770,6 @@ export default class BattleScene extends SceneBase {
|
||||
}
|
||||
|
||||
party.forEach((enemyPokemon: EnemyPokemon, i: integer) => {
|
||||
// we get the modifiers override for the opponent
|
||||
const modifiersOverride = this.getEnemyModifiersOverride();
|
||||
// if we have some modifiers override, apply them to the opponent
|
||||
if (modifiersOverride?.length) {
|
||||
// we delete all previous modifiers to avoid stack of override
|
||||
this.clearEnemyModifiers();
|
||||
for (const m of modifiersOverride) {
|
||||
this.addEnemyModifier(getModifierType(modifierTypes[m]).newModifier(enemyPokemon) as PersistentModifier, true, true);
|
||||
}
|
||||
this.updateModifiers(false).then(() => resolve());
|
||||
}
|
||||
const isBoss = enemyPokemon.isBoss() || (this.currentBattle.battleType === BattleType.TRAINER && this.currentBattle.trainer.config.isBoss);
|
||||
let upgradeChance = 32;
|
||||
if (isBoss)
|
||||
@ -1796,12 +1795,6 @@ export default class BattleScene extends SceneBase {
|
||||
});
|
||||
}
|
||||
|
||||
clearEnemyModifiers(): void {
|
||||
for (let m of this.enemyModifiers)
|
||||
this.enemyModifiers.splice(this.enemyModifiers.indexOf(m), 1);
|
||||
this.updateModifiers(false).then(() => this.updateUIPositions());
|
||||
}
|
||||
|
||||
clearEnemyHeldItemModifiers(): void {
|
||||
const modifiersToRemove = this.enemyModifiers.filter(m => m instanceof PokemonHeldItemModifier);
|
||||
for (let m of modifiersToRemove)
|
||||
|
@ -5,9 +5,7 @@ import { Species } from "./data/enums/species";
|
||||
import PokemonSpecies, { allSpecies } from "./data/pokemon-species";
|
||||
import { Arena } from "./field/arena";
|
||||
import * as Utils from "./utils";
|
||||
import { STARTING_BIOME_OVERRIDE, STARTING_LEVEL_OVERRIDE, STARTING_MODIFIER_OVERRIDE, STARTING_MODIFIER_QTY_OVERRIDE, STARTING_MONEY_OVERRIDE } from './overrides';
|
||||
import { Modifier } from "./modifier/modifier";
|
||||
import { modifierTypes } from "./modifier/modifier-type";
|
||||
import { STARTING_BIOME_OVERRIDE, STARTING_LEVEL_OVERRIDE, STARTING_MONEY_OVERRIDE } from './overrides';
|
||||
|
||||
export enum GameModes {
|
||||
CLASSIC,
|
||||
@ -62,25 +60,6 @@ export class GameMode implements GameModeConfig {
|
||||
return STARTING_MONEY_OVERRIDE || 1000;
|
||||
}
|
||||
|
||||
getModifierOverride(): Modifier[] {
|
||||
// if no override, do nothing
|
||||
const modifiers: Modifier[] = new Array();
|
||||
if (!STARTING_MODIFIER_OVERRIDE || STARTING_MODIFIER_OVERRIDE.length === 0) return modifiers;
|
||||
// we loop through all the modifier name given in the override file
|
||||
for (const [index, modifierName] of STARTING_MODIFIER_OVERRIDE.entries()) {
|
||||
// if the modifier does not exist, we skip it
|
||||
if (!modifierTypes.hasOwnProperty(modifierName)) continue;
|
||||
const modifierType = modifierTypes[modifierName]();
|
||||
// We get how many modifiers, if none given, default to 1
|
||||
const qty = STARTING_MODIFIER_QTY_OVERRIDE[index] || 1
|
||||
for (const i of [...Array(qty).keys()]) {
|
||||
// for example, if qty is 2, we create an array of size 2 with the modifier on each slot
|
||||
modifiers.push(modifierType.withIdFromFunc(modifierTypes[modifierName]).newModifier());
|
||||
}
|
||||
}
|
||||
return modifiers;
|
||||
}
|
||||
|
||||
getStartingBiome(scene: BattleScene): Biome {
|
||||
switch (this.modeId) {
|
||||
case GameModes.DAILY:
|
||||
|
@ -20,6 +20,8 @@ import { PreventBerryUseAbAttr, applyAbAttrs } from '../data/ability';
|
||||
import { FormChangeItem, SpeciesFormChangeItemTrigger } from '../data/pokemon-forms';
|
||||
import { Nature } from '#app/data/nature';
|
||||
import { BattlerTagType } from '#app/data/enums/battler-tag-type';
|
||||
import { STARTING_MODIFIER_OVERRIDE, STARTING_MODIFIER_QTY_OVERRIDE } from "../overrides";
|
||||
import { modifierTypes } from "./modifier-type";
|
||||
|
||||
type ModifierType = ModifierTypes.ModifierType;
|
||||
export type ModifierPredicate = (modifier: Modifier) => boolean;
|
||||
@ -2169,4 +2171,23 @@ export class EnemyFusionChanceModifier extends EnemyPersistentModifier {
|
||||
getMaxStackCount(scene: BattleScene): integer {
|
||||
return 10;
|
||||
}
|
||||
}
|
||||
|
||||
export function getModifierOverride(): Modifier[] {
|
||||
// if no override, do nothing
|
||||
const modifiers: Modifier[] = new Array();
|
||||
if (!STARTING_MODIFIER_OVERRIDE || STARTING_MODIFIER_OVERRIDE.length === 0) return modifiers;
|
||||
// we loop through all the modifier name given in the override file
|
||||
for (const [index, modifierName] of STARTING_MODIFIER_OVERRIDE.entries()) {
|
||||
// if the modifier does not exist, we skip it
|
||||
if (!modifierTypes.hasOwnProperty(modifierName)) continue;
|
||||
const modifierType = modifierTypes[modifierName]();
|
||||
// We get how many modifiers, if none given, default to 1
|
||||
const qty = STARTING_MODIFIER_QTY_OVERRIDE[index] || 1
|
||||
for (const i of [...Array(qty).keys()]) {
|
||||
// for example, if qty is 2, we create an array of size 2 with the modifier on each slot
|
||||
modifiers.push(modifierType.withIdFromFunc(modifierTypes[modifierName]).newModifier());
|
||||
}
|
||||
}
|
||||
return modifiers;
|
||||
}
|
@ -6,7 +6,7 @@ import { allMoves, applyMoveAttrs, BypassSleepAttr, ChargeAttr, applyFilteredMov
|
||||
import { Mode } from './ui/ui';
|
||||
import { Command } from "./ui/command-ui-handler";
|
||||
import { Stat } from "./data/pokemon-stat";
|
||||
import { BerryModifier, ContactHeldItemTransferChanceModifier, EnemyAttackStatusEffectChanceModifier, EnemyPersistentModifier, EnemyStatusEffectHealChanceModifier, EnemyTurnHealModifier, ExpBalanceModifier, ExpBoosterModifier, ExpShareModifier, ExtraModifierModifier, FlinchChanceModifier, FusePokemonModifier, HealingBoosterModifier, HitHealModifier, LapsingPersistentModifier, MapModifier, Modifier, MultipleParticipantExpBonusModifier, PersistentModifier, PokemonExpBoosterModifier, PokemonHeldItemModifier, PokemonInstantReviveModifier, SwitchEffectTransferModifier, TempBattleStatBoosterModifier, TurnHealModifier, TurnHeldItemTransferModifier, MoneyMultiplierModifier, MoneyInterestModifier, IvScannerModifier, LapsingPokemonHeldItemModifier, PokemonMultiHitModifier, PokemonMoveAccuracyBoosterModifier } from "./modifier/modifier";
|
||||
import { BerryModifier, ContactHeldItemTransferChanceModifier, EnemyAttackStatusEffectChanceModifier, EnemyPersistentModifier, EnemyStatusEffectHealChanceModifier, EnemyTurnHealModifier, ExpBalanceModifier, ExpBoosterModifier, ExpShareModifier, ExtraModifierModifier, FlinchChanceModifier, FusePokemonModifier, HealingBoosterModifier, HitHealModifier, LapsingPersistentModifier, MapModifier, Modifier, MultipleParticipantExpBonusModifier, PersistentModifier, PokemonExpBoosterModifier, PokemonHeldItemModifier, PokemonInstantReviveModifier, SwitchEffectTransferModifier, TempBattleStatBoosterModifier, TurnHealModifier, TurnHeldItemTransferModifier, MoneyMultiplierModifier, MoneyInterestModifier, IvScannerModifier, LapsingPokemonHeldItemModifier, PokemonMultiHitModifier, PokemonMoveAccuracyBoosterModifier, getModifierOverride } from "./modifier/modifier";
|
||||
import PartyUiHandler, { PartyOption, PartyUiMode } from "./ui/party-ui-handler";
|
||||
import { doPokeballBounceAnim, getPokeballAtlasKey, getPokeballCatchMultiplier, getPokeballTintColor, PokeballType } from "./data/pokeball";
|
||||
import { CommonAnim, CommonBattleAnim, MoveAnim, initMoveAnim, loadMoveAnimAssets } from "./data/battle-anims";
|
||||
@ -510,6 +510,15 @@ export class SelectStarterPhase extends Phase {
|
||||
party.push(starterPokemon);
|
||||
loadPokemonAssets.push(starterPokemon.loadAssets());
|
||||
});
|
||||
// we get the modifiers override
|
||||
const modifiersOverride = getModifierOverride();
|
||||
// if we have some modifiers override, apply them to the player
|
||||
if (modifiersOverride?.length) {
|
||||
for (const m of modifiersOverride) {
|
||||
this.scene.addModifier(m, true, false, false, true);
|
||||
}
|
||||
this.scene.updateModifiers(true, true);
|
||||
}
|
||||
Promise.all(loadPokemonAssets).then(() => {
|
||||
SoundFade.fadeOut(this.scene, this.scene.sound.get('menu'), 500, true);
|
||||
this.scene.time.delayedCall(500, () => this.scene.playBgm());
|
||||
|
@ -1702,15 +1702,6 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
|
||||
const startRun = (gameMode: GameModes) => {
|
||||
this.scene.gameMode = gameModes[gameMode];
|
||||
this.scene.money = this.scene.gameMode.getStartingMoney();
|
||||
// we get the modifiers override
|
||||
const modifiersOverride = this.scene.gameMode.getModifierOverride();
|
||||
// if we have some modifiers override, apply them to the player
|
||||
if (modifiersOverride?.length) {
|
||||
for (const m of modifiersOverride) {
|
||||
this.scene.addModifier(m, true, false, false, true);
|
||||
}
|
||||
this.scene.updateModifiers(true, true);
|
||||
}
|
||||
ui.setMode(Mode.STARTER_SELECT);
|
||||
const thisObj = this;
|
||||
const originalStarterSelectCallback = this.starterSelectCallback;
|
||||
|
Loading…
Reference in New Issue
Block a user