Merge pull request #5329 from pagefaultgames/main

Main (1.6.4) -> Beta
This commit is contained in:
NightKev 2025-02-15 17:26:53 -08:00 committed by GitHub
commit 8f496ee226
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 33 additions and 48 deletions

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "pokemon-rogue-battle",
"version": "1.6.0",
"version": "1.6.4",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "pokemon-rogue-battle",
"version": "1.5.4",
"version": "1.6.4",
"hasInstallScript": true,
"dependencies": {
"@material/material-color-utilities": "^0.2.7",

View File

@ -1,7 +1,7 @@
{
"name": "pokemon-rogue-battle",
"private": true,
"version": "1.6.0",
"version": "1.6.4",
"type": "module",
"scripts": {
"start": "vite",

View File

@ -1,41 +0,0 @@
{
"textures": [
{
"image": "668-female.png",
"format": "RGBA8888",
"size": {
"w": 72,
"h": 72
},
"scale": 1,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 63,
"h": 72
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 63,
"h": 72
},
"frame": {
"x": 0,
"y": 0,
"w": 63,
"h": 72
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:3f88e039152d4a967a218cb721938610:e6991ce9c3bad348cbc05ebf9b440302:d99ed0e84a0695b54e479aa98271aba1$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 898 B

@ -1 +1 @@
Subproject commit f917baa1bb2fc5071587b7894ce7b4898cc64f36
Subproject commit 58dda14ee834204c4bd5ece47694a3c068df4b0e

View File

@ -1051,7 +1051,11 @@ export default class PokemonSpecies extends PokemonSpeciesForm implements Locali
caughtAttr += DexAttr.VARIANT_2;
caughtAttr += DexAttr.VARIANT_3;
}
caughtAttr += DexAttr.DEFAULT_FORM;
// Summing successive bigints for each obtainable form
caughtAttr += this?.forms?.length > 1 ?
this.forms.map((f, index) => f.isUnobtainable ? 0n : 128n * 2n ** BigInt(index)).reduce((acc, val) => acc + val, 0n) :
DexAttr.DEFAULT_FORM;
return caughtAttr;
}

View File

@ -1322,6 +1322,12 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
} else if (fusionType1 !== types[0]) {
secondType = fusionType1;
}
if (secondType === Type.UNKNOWN && Utils.isNullOrUndefined(fusionType2)) { // If second pokemon was monotype and shared its primary type
secondType = (customTypes && this.customPokemonData.types.length > 1 && this.customPokemonData.types[1] !== Type.UNKNOWN)
? this.customPokemonData.types[1] : (speciesForm.type2 ?? Type.UNKNOWN);
}
} else {
// If not a fusion, just get the second type from the species, checking for permanent changes from ME
secondType = (customTypes && this.customPokemonData.types.length > 1 && this.customPokemonData.types[1] !== Type.UNKNOWN)
@ -4036,6 +4042,11 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
}
}
if (fusionPixelColors.length === 0) { // ERROR HANDLING IS NOT OPTIONAL BUDDY
console.log("Failed to create fusion palette");
return;
}
let paletteColors: Map<number, number>;
let fusionPaletteColors: Map<number, number>;
@ -4049,8 +4060,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
Math.random = originalRandom;
paletteColors = paletteColors!; // tell TS compiler that paletteColors is defined!
fusionPaletteColors = fusionPaletteColors!; // TS compiler that fusionPaletteColors is defined!
paletteColors = paletteColors!; // erroneously tell TS compiler that paletteColors is defined!
fusionPaletteColors = fusionPaletteColors!; // mischievously misinform TS compiler that fusionPaletteColors is defined!
const [ palette, fusionPalette ] = [ paletteColors, fusionPaletteColors ]
.map(paletteColors => {
let keys = Array.from(paletteColors.keys()).sort((a: number, b: number) => paletteColors.get(a)! < paletteColors.get(b)! ? 1 : -1);

View File

@ -150,6 +150,17 @@ describe("Spec - Pokemon", () => {
expect(types[1]).toBe(Type.DARK);
});
it("Fusing mons with two and one types", async () => {
game.override.starterSpecies(Species.NUMEL);
game.override.starterFusionSpecies(Species.CHARMANDER);
await game.classicMode.startBattle();
const pokemon = scene.getPlayerParty()[0];
const types = pokemon.getTypes();
expect(types[0]).toBe(Type.FIRE);
expect(types[1]).toBe(Type.GROUND);
});
it("Fusing two mons with two types", async () => {
game.override.starterSpecies(Species.NATU);
game.override.starterFusionSpecies(Species.HOUNDOUR);