Merge 0ebd1d7080
into 51bb80cb66
This commit is contained in:
commit
4df3dd6a6a
|
@ -220,6 +220,7 @@ export class TitlePhase extends Phase {
|
|||
|
||||
const modifiers: Modifier[] = Array(3).fill(null).map(() => modifierTypes.EXP_SHARE().withIdFromFunc(modifierTypes.EXP_SHARE).newModifier())
|
||||
.concat(Array(3).fill(null).map(() => modifierTypes.GOLDEN_EXP_CHARM().withIdFromFunc(modifierTypes.GOLDEN_EXP_CHARM).newModifier()))
|
||||
.concat([modifierTypes.MAP().withIdFromFunc(modifierTypes.MAP).newModifier()])
|
||||
.concat(getDailyRunStarterModifiers(party))
|
||||
.filter((m) => m !== null);
|
||||
|
||||
|
|
|
@ -22,6 +22,8 @@ export function applySessionDataPatches(data: SessionSaveData) {
|
|||
} else if (m.className === "PokemonResetNegativeStatStageModifier") {
|
||||
m.className = "ResetNegativeStatStageModifier";
|
||||
} else if (m.className === "TempBattleStatBoosterModifier") {
|
||||
// Dire Hit no longer a part of the TempBattleStatBoosterModifierTypeGenerator
|
||||
if (m.typeId !== "DIRE_HIT") {
|
||||
m.className = "TempStatStageBoosterModifier";
|
||||
m.typeId = "TEMP_STAT_STAGE_BOOSTER";
|
||||
|
||||
|
@ -31,6 +33,14 @@ export function applySessionDataPatches(data: SessionSaveData) {
|
|||
|
||||
// From [ stat, battlesLeft ] to [ stat, maxBattles, battleCount ]
|
||||
m.args = [ newStat, 5, m.args[1] ];
|
||||
} else {
|
||||
m.className = "TempCritBoosterModifier";
|
||||
m.typePregenArgs = [];
|
||||
|
||||
// From [ stat, battlesLeft ] to [ maxBattles, battleCount ]
|
||||
m.args = [ 5, m.args[1] ];
|
||||
}
|
||||
|
||||
} else if (m.className === "DoubleBattleChanceBoosterModifier" && m.args.length === 1) {
|
||||
let maxBattles: number;
|
||||
switch (m.typeId) {
|
||||
|
@ -73,7 +83,7 @@ export function applySystemDataPatches(data: SystemSaveData) {
|
|||
case "1.0.3":
|
||||
case "1.0.4":
|
||||
// --- LEGACY PATCHES ---
|
||||
if (data.starterData) {
|
||||
if (data.starterData && data.dexData) {
|
||||
// Migrate ability starter data if empty for caught species
|
||||
Object.keys(data.starterData).forEach(sd => {
|
||||
if (data.dexData[sd]?.caughtAttr && (data.starterData[sd] && !data.starterData[sd].abilityAttr)) {
|
||||
|
@ -104,6 +114,7 @@ export function applySystemDataPatches(data: SystemSaveData) {
|
|||
// --- PATCHES ---
|
||||
|
||||
// Fix Starter Data
|
||||
if (data.starterData && data.dexData) {
|
||||
for (const starterId of defaultStarterSpecies) {
|
||||
if (data.starterData[starterId]?.abilityAttr) {
|
||||
data.starterData[starterId].abilityAttr |= AbilityAttr.ABILITY_1;
|
||||
|
@ -113,6 +124,7 @@ export function applySystemDataPatches(data: SystemSaveData) {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
data.gameVersion = LATEST_VERSION;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest";
|
||||
import GameManager from "./utils/gameManager";
|
||||
import { MapModifier } from "#app/modifier/modifier";
|
||||
|
||||
describe("Daily Mode", () => {
|
||||
let phaserGame: Phaser.Game;
|
||||
|
@ -28,5 +29,6 @@ describe("Daily Mode", () => {
|
|||
expect(pkm.level).toBe(20);
|
||||
expect(pkm.moveset.length).toBeGreaterThan(0);
|
||||
});
|
||||
expect(game.scene.getModifiers(MapModifier).length).toBeGreaterThan(0);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
import { Species } from "#app/enums/species";
|
||||
import { GameModes } from "#app/game-mode";
|
||||
import OptionSelectUiHandler from "#app/ui/settings/option-select-ui-handler";
|
||||
import { Mode } from "#app/ui/ui";
|
||||
import { Biome } from "#enums/biome";
|
||||
import { Button } from "#enums/buttons";
|
||||
import { Moves } from "#enums/moves";
|
||||
import { Species } from "#enums/species";
|
||||
import GameManager from "#test/utils/gameManager";
|
||||
import { MockClock } from "#test/utils/mocks/mockClock";
|
||||
import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest";
|
||||
import { Moves } from "#app/enums/moves";
|
||||
import { Biome } from "#app/enums/biome";
|
||||
|
||||
describe("Reload", () => {
|
||||
let phaserGame: Phaser.Game;
|
||||
|
@ -50,6 +54,13 @@ describe("Reload", () => {
|
|||
game.move.select(Moves.KOWTOW_CLEAVE);
|
||||
await game.phaseInterceptor.to("DamagePhase");
|
||||
await game.doKillOpponents();
|
||||
game.onNextPrompt("SelectBiomePhase", Mode.OPTION_SELECT, () => {
|
||||
(game.scene.time as MockClock).overrideDelay = null;
|
||||
const optionSelectUiHandler = game.scene.ui.getHandler() as OptionSelectUiHandler;
|
||||
game.scene.time.delayedCall(1010, () => optionSelectUiHandler.processInput(Button.ACTION));
|
||||
game.endPhase();
|
||||
(game.scene.time as MockClock).overrideDelay = 1;
|
||||
});
|
||||
await game.toNextWave();
|
||||
expect(game.phaseInterceptor.log).toContain("NewBiomeEncounterPhase");
|
||||
|
||||
|
|
|
@ -52,6 +52,9 @@ import {
|
|||
} from "#app/phases/mystery-encounter-phases";
|
||||
import { ModifierRewardPhase } from "#app/phases/modifier-reward-phase";
|
||||
import { PartyExpPhase } from "#app/phases/party-exp-phase";
|
||||
import { ExpPhase } from "#app/phases/exp-phase";
|
||||
import { SelectBiomePhase } from "#app/phases/select-biome-phase";
|
||||
|
||||
|
||||
export interface PromptHandler {
|
||||
phaseTarget?: string;
|
||||
|
@ -60,7 +63,6 @@ export interface PromptHandler {
|
|||
expireFn?: () => void;
|
||||
awaitingActionInput?: boolean;
|
||||
}
|
||||
import { ExpPhase } from "#app/phases/exp-phase";
|
||||
|
||||
export default class PhaseInterceptor {
|
||||
public scene;
|
||||
|
@ -130,6 +132,7 @@ export default class PhaseInterceptor {
|
|||
[ModifierRewardPhase, this.startPhase],
|
||||
[PartyExpPhase, this.startPhase],
|
||||
[ExpPhase, this.startPhase],
|
||||
[SelectBiomePhase, this.startPhase],
|
||||
];
|
||||
|
||||
private endBySetMode = [
|
||||
|
|
Loading…
Reference in New Issue