Merge branch 'beta' into tera-fight-indicator
BIN
public/images/events/pkmnday2025event-de.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
public/images/events/pkmnday2025event-en.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
public/images/events/pkmnday2025event-es-ES.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
public/images/events/pkmnday2025event-fr.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
public/images/events/pkmnday2025event-it.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
public/images/events/pkmnday2025event-ja.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
public/images/events/pkmnday2025event-ko.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
public/images/events/pkmnday2025event-pt-BR.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
public/images/events/pkmnday2025event-zh-CN.png
Normal file
After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 507 B After Width: | Height: | Size: 528 B |
@ -3,12 +3,12 @@
|
|||||||
"838394": "4d7dc5",
|
"838394": "4d7dc5",
|
||||||
"62ace6": "8363af",
|
"62ace6": "8363af",
|
||||||
"7bcdff": "9c75c2",
|
"7bcdff": "9c75c2",
|
||||||
"ffec8c": "ddfff9",
|
"fdea88": "ddfff9",
|
||||||
"a1a1c4": "7ab7ec",
|
"a1a1c4": "7ab7ec",
|
||||||
"c9b241": "97d6e2",
|
"c9b241": "97d6e2",
|
||||||
"dfcf77": "bae7e8",
|
"ccbd70": "bae7e8",
|
||||||
"174592": "37408c",
|
"174592": "37408c",
|
||||||
"fdfdfd": "b1e5ff",
|
"f8f8f8": "b1e5ff",
|
||||||
"9c9cc5": "5385c7",
|
"9c9cc5": "5385c7",
|
||||||
"cdcde6": "7eb7e8",
|
"cdcde6": "7eb7e8",
|
||||||
"396a83": "362864",
|
"396a83": "362864",
|
||||||
@ -18,12 +18,12 @@
|
|||||||
"838394": "cc6845",
|
"838394": "cc6845",
|
||||||
"62ace6": "c44848",
|
"62ace6": "c44848",
|
||||||
"7bcdff": "dd6155",
|
"7bcdff": "dd6155",
|
||||||
"ffec8c": "ddfff9",
|
"fdea88": "ddfff9",
|
||||||
"a1a1c4": "f7c685",
|
"a1a1c4": "f7c685",
|
||||||
"c9b241": "97d6e2",
|
"c9b241": "97d6e2",
|
||||||
"dfcf77": "bae7e8",
|
"ccbd70": "bae7e8",
|
||||||
"174592": "198158",
|
"174592": "198158",
|
||||||
"fdfdfd": "fff4bd",
|
"f8f8f8": "fff4bd",
|
||||||
"9c9cc5": "c96a48",
|
"9c9cc5": "c96a48",
|
||||||
"cdcde6": "f7b785",
|
"cdcde6": "f7b785",
|
||||||
"396a83": "5c0d33",
|
"396a83": "5c0d33",
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
{
|
{
|
||||||
"1": {
|
"1": {
|
||||||
"838394": "4d7dc5",
|
"848496": "4d7dc5",
|
||||||
"7bcdff": "9c75c2",
|
"7bcdff": "9c75c2",
|
||||||
"62ace6": "8363af",
|
"62ace6": "8363af",
|
||||||
"ffffff": "b1e5ff",
|
"ffffff": "b1e5ff",
|
||||||
"396a83": "362864",
|
"396a83": "362864",
|
||||||
"9c9cc5": "5385c7",
|
"9c9cc5": "5385c7",
|
||||||
"cdcde6": "7eb7e8",
|
"cdcde6": "7eb7e8",
|
||||||
"174592": "198158",
|
"174592": "37408c",
|
||||||
"5a94cd": "7054a4"
|
"5a94cd": "7054a4"
|
||||||
},
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"838394": "cc6845",
|
"848496": "cc6845",
|
||||||
"7bcdff": "dd6155",
|
"7bcdff": "dd6155",
|
||||||
"62ace6": "c44848",
|
"62ace6": "c44848",
|
||||||
"ffffff": "fff4bd",
|
"ffffff": "fff4bd",
|
||||||
|
@ -461,7 +461,7 @@ export const speciesStarterCosts = {
|
|||||||
[Species.GUZZLORD]: 6,
|
[Species.GUZZLORD]: 6,
|
||||||
[Species.NECROZMA]: 8,
|
[Species.NECROZMA]: 8,
|
||||||
[Species.MAGEARNA]: 7,
|
[Species.MAGEARNA]: 7,
|
||||||
[Species.MARSHADOW]: 7,
|
[Species.MARSHADOW]: 8,
|
||||||
[Species.POIPOLE]: 8,
|
[Species.POIPOLE]: 8,
|
||||||
[Species.STAKATAKA]: 6,
|
[Species.STAKATAKA]: 6,
|
||||||
[Species.BLACEPHALON]: 7,
|
[Species.BLACEPHALON]: 7,
|
||||||
|
@ -251,9 +251,9 @@ export class LoadingScene extends SceneBase {
|
|||||||
}
|
}
|
||||||
const availableLangs = [ "en", "de", "it", "fr", "ja", "ko", "es-ES", "pt-BR", "zh-CN" ];
|
const availableLangs = [ "en", "de", "it", "fr", "ja", "ko", "es-ES", "pt-BR", "zh-CN" ];
|
||||||
if (lang && availableLangs.includes(lang)) {
|
if (lang && availableLangs.includes(lang)) {
|
||||||
this.loadImage("valentines2025event-" + lang, "events");
|
this.loadImage("pkmnday2025event-" + lang, "events");
|
||||||
} else {
|
} else {
|
||||||
this.loadImage("valentines2025event-en", "events");
|
this.loadImage("pkmnday2025event-en", "events");
|
||||||
}
|
}
|
||||||
|
|
||||||
this.loadAtlas("statuses", "");
|
this.loadAtlas("statuses", "");
|
||||||
|
@ -2554,7 +2554,7 @@ export function getPartyLuckValue(party: Pokemon[]): number {
|
|||||||
return DailyLuck.value;
|
return DailyLuck.value;
|
||||||
}
|
}
|
||||||
const eventSpecies = globalScene.eventManager.getEventLuckBoostedSpecies();
|
const eventSpecies = globalScene.eventManager.getEventLuckBoostedSpecies();
|
||||||
const luck = Phaser.Math.Clamp(party.map(p => p.isAllowedInBattle() ? p.getLuck() + (eventSpecies.includes(p.species.speciesId) ? 3 : 0) : 0)
|
const luck = Phaser.Math.Clamp(party.map(p => p.isAllowedInBattle() ? p.getLuck() + (eventSpecies.includes(p.species.speciesId) ? 1 : 0) : 0)
|
||||||
.reduce((total: number, value: number) => total += value, 0), 0, 14);
|
.reduce((total: number, value: number) => total += value, 0), 0, 14);
|
||||||
return Math.min(globalScene.eventManager.getEventLuckBoost() + (luck ?? 0), 14);
|
return Math.min(globalScene.eventManager.getEventLuckBoost() + (luck ?? 0), 14);
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,29 @@
|
|||||||
import { getPokemonSpeciesForm } from "#app/data/pokemon-species";
|
import { getPokemonSpecies, getPokemonSpeciesForm } from "#app/data/pokemon-species";
|
||||||
import type { SessionSaveData } from "#app/system/game-data";
|
import { globalScene } from "#app/global-scene";
|
||||||
|
import { DexAttr, type SessionSaveData, type SystemSaveData } from "#app/system/game-data";
|
||||||
import * as Utils from "#app/utils";
|
import * as Utils from "#app/utils";
|
||||||
|
|
||||||
export const systemMigrators = [] as const;
|
export const systemMigrators = [
|
||||||
|
/**
|
||||||
|
* If a starter is caught, but the only forms registered as caught are not starterSelectable,
|
||||||
|
* unlock the default form.
|
||||||
|
* @param data {@linkcode SystemSaveData}
|
||||||
|
*/
|
||||||
|
function migrateUnselectableForms(data: SystemSaveData) {
|
||||||
|
if (data.starterData && data.dexData) {
|
||||||
|
Object.keys(data.starterData).forEach(sd => {
|
||||||
|
const caughtAttr = data.dexData[sd]?.caughtAttr;
|
||||||
|
const species = getPokemonSpecies(Number(sd));
|
||||||
|
if (caughtAttr && species.forms?.length > 1) {
|
||||||
|
const selectableForms = species.forms.filter((form, formIndex) => form.isStarterSelectable && (caughtAttr & globalScene.gameData.getFormAttr(formIndex)));
|
||||||
|
if (selectableForms.length === 0) {
|
||||||
|
data.dexData[sd].caughtAttr += DexAttr.DEFAULT_FORM;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
] as const;
|
||||||
|
|
||||||
export const settingsMigrators = [] as const;
|
export const settingsMigrators = [] as const;
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@ const timedEvents: TimedEvent[] = [
|
|||||||
{ species: Species.WOOBAT },
|
{ species: Species.WOOBAT },
|
||||||
{ species: Species.FRILLISH },
|
{ species: Species.FRILLISH },
|
||||||
{ species: Species.ALOMOMOLA },
|
{ species: Species.ALOMOMOLA },
|
||||||
{ species: Species.FURFROU, formIndex: 1 }, // Heart trim
|
{ species: Species.FURFROU, formIndex: 1 }, // Heart Trim
|
||||||
{ species: Species.ESPURR },
|
{ species: Species.ESPURR },
|
||||||
{ species: Species.SPRITZEE },
|
{ species: Species.SPRITZEE },
|
||||||
{ species: Species.SWIRLIX },
|
{ species: Species.SWIRLIX },
|
||||||
@ -180,6 +180,33 @@ const timedEvents: TimedEvent[] = [
|
|||||||
{ species: Species.ENAMORUS }
|
{ species: Species.ENAMORUS }
|
||||||
],
|
],
|
||||||
luckBoostedSpecies: [ Species.LUVDISC ]
|
luckBoostedSpecies: [ Species.LUVDISC ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "PKMNDAY2025",
|
||||||
|
eventType: EventType.LUCK,
|
||||||
|
startDate: new Date(Date.UTC(2025, 1, 27)),
|
||||||
|
endDate: new Date(Date.UTC(2025, 2, 4)),
|
||||||
|
classicFriendshipMultiplier: 4,
|
||||||
|
bannerKey: "pkmnday2025event-",
|
||||||
|
scale: 0.21,
|
||||||
|
availableLangs: [ "en", "de", "it", "fr", "ja", "ko", "es-ES", "pt-BR", "zh-CN" ],
|
||||||
|
eventEncounters: [
|
||||||
|
{ species: Species.PIKACHU, formIndex: 1, blockEvolution: true }, // Partner Form
|
||||||
|
{ species: Species.EEVEE, formIndex: 1, blockEvolution: true }, // Partner Form
|
||||||
|
{ species: Species.CHIKORITA },
|
||||||
|
{ species: Species.TOTODILE },
|
||||||
|
{ species: Species.TEPIG }
|
||||||
|
],
|
||||||
|
luckBoostedSpecies: [
|
||||||
|
Species.PICHU, Species.PIKACHU, Species.RAICHU, Species.ALOLA_RAICHU,
|
||||||
|
Species.PSYDUCK, Species.GOLDUCK,
|
||||||
|
Species.EEVEE, Species.FLAREON, Species.JOLTEON, Species.VAPOREON, Species.ESPEON, Species.UMBREON, Species.LEAFEON, Species.GLACEON, Species.SYLVEON,
|
||||||
|
Species.CHIKORITA, Species.BAYLEEF, Species.MEGANIUM,
|
||||||
|
Species.TOTODILE, Species.CROCONAW, Species.FERALIGATR,
|
||||||
|
Species.TEPIG, Species.PIGNITE, Species.EMBOAR,
|
||||||
|
Species.ZYGARDE,
|
||||||
|
Species.ETERNAL_FLOETTE
|
||||||
|
]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|