merge up-to-date
1595
package-lock.json
generated
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "pokemon-rogue-battle",
|
||||
"private": true,
|
||||
"version": "1.7.7",
|
||||
"version": "1.8.1",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"start": "vite",
|
||||
@ -62,7 +62,7 @@
|
||||
"i18next-korean-postposition-processor": "^1.0.0",
|
||||
"json-stable-stringify": "^1.2.0",
|
||||
"jszip": "^3.10.1",
|
||||
"phaser": "^3.88.2",
|
||||
"phaser": "^3.70.0",
|
||||
"phaser3-rex-plugins": "^1.80.14"
|
||||
},
|
||||
"engines": {
|
||||
|
BIN
public/audio/bgm/battle_rival_3_afd.mp3
Normal file
BIN
public/audio/bgm/title_afd.mp3
Normal file
BIN
public/images/events/aprf25-de.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
public/images/events/aprf25-en.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
public/images/events/aprf25-es-ES.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
public/images/events/aprf25-es-MX.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
public/images/events/aprf25-fr.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
public/images/events/aprf25-it.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
public/images/events/aprf25-ja.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
public/images/events/aprf25-ko.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
public/images/events/aprf25-pt-BR.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
public/images/events/aprf25-zh-CN.png
Normal file
After Width: | Height: | Size: 32 KiB |
@ -1,755 +1,20 @@
|
||||
{
|
||||
"textures": [
|
||||
{
|
||||
"image": "890-eternamax.png",
|
||||
"format": "RGBA8888",
|
||||
"size": {
|
||||
"w": 579,
|
||||
"h": 579
|
||||
},
|
||||
"scale": 1,
|
||||
"frames": [
|
||||
{
|
||||
"filename": "0035.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 9,
|
||||
"w": 100,
|
||||
"h": 98
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 100,
|
||||
"h": 98
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0031.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 8,
|
||||
"w": 95,
|
||||
"h": 100
|
||||
},
|
||||
"frame": {
|
||||
"x": 100,
|
||||
"y": 0,
|
||||
"w": 95,
|
||||
"h": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0029.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 8,
|
||||
"w": 91,
|
||||
"h": 100
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 98,
|
||||
"w": 91,
|
||||
"h": 100
|
||||
}
|
||||
},
|
||||
{ "frames": [
|
||||
{
|
||||
"filename": "0001.png",
|
||||
"frame": { "x": 0, "y": 0, "w": 96, "h": 98 },
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 9,
|
||||
"w": 96,
|
||||
"h": 98
|
||||
},
|
||||
"frame": {
|
||||
"x": 91,
|
||||
"y": 100,
|
||||
"w": 96,
|
||||
"h": 98
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0032.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 9,
|
||||
"w": 95,
|
||||
"h": 99
|
||||
},
|
||||
"frame": {
|
||||
"x": 187,
|
||||
"y": 100,
|
||||
"w": 95,
|
||||
"h": 99
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0030.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 9,
|
||||
"y": 10,
|
||||
"w": 91,
|
||||
"h": 98
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 198,
|
||||
"w": 91,
|
||||
"h": 98
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0007.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 10,
|
||||
"w": 88,
|
||||
"h": 98
|
||||
},
|
||||
"frame": {
|
||||
"x": 91,
|
||||
"y": 198,
|
||||
"w": 88,
|
||||
"h": 98
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0002.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 10,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 195,
|
||||
"y": 0,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0003.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 11,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 179,
|
||||
"y": 199,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0004.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 11,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 274,
|
||||
"y": 199,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0033.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 11,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 290,
|
||||
"y": 0,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0034.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 11,
|
||||
"w": 94,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 282,
|
||||
"y": 97,
|
||||
"w": 94,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0028.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 11,
|
||||
"w": 90,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 369,
|
||||
"y": 193,
|
||||
"w": 90,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0005.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 13,
|
||||
"w": 93,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 385,
|
||||
"y": 0,
|
||||
"w": 93,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0017.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 13,
|
||||
"y": 9,
|
||||
"w": 91,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 385,
|
||||
"y": 95,
|
||||
"w": 91,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0008.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 87,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 369,
|
||||
"y": 290,
|
||||
"w": 87,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0009.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 12,
|
||||
"w": 90,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 456,
|
||||
"y": 290,
|
||||
"w": 90,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0015.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 8,
|
||||
"w": 90,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 459,
|
||||
"y": 191,
|
||||
"w": 90,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0016.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 13,
|
||||
"y": 8,
|
||||
"w": 90,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 476,
|
||||
"y": 95,
|
||||
"w": 90,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0014.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 89,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 478,
|
||||
"y": 0,
|
||||
"w": 89,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0027.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 12,
|
||||
"w": 89,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 456,
|
||||
"y": 386,
|
||||
"w": 89,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0025.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 11,
|
||||
"w": 89,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 296,
|
||||
"w": 89,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0006.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 9,
|
||||
"y": 14,
|
||||
"w": 89,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 89,
|
||||
"y": 296,
|
||||
"w": 89,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0011.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 88,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 178,
|
||||
"y": 296,
|
||||
"w": 88,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0023.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 87,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 89,
|
||||
"y": 390,
|
||||
"w": 87,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0013.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 12,
|
||||
"w": 89,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 391,
|
||||
"w": 89,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0012.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 14,
|
||||
"w": 89,
|
||||
"h": 93
|
||||
},
|
||||
"frame": {
|
||||
"x": 266,
|
||||
"y": 387,
|
||||
"w": 89,
|
||||
"h": 93
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0019.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 16,
|
||||
"y": 13,
|
||||
"w": 85,
|
||||
"h": 91
|
||||
},
|
||||
"frame": {
|
||||
"x": 266,
|
||||
"y": 296,
|
||||
"w": 85,
|
||||
"h": 91
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0024.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 13,
|
||||
"w": 88,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 176,
|
||||
"y": 391,
|
||||
"w": 88,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0010.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 13,
|
||||
"w": 87,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 355,
|
||||
"y": 387,
|
||||
"w": 87,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0018.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 16,
|
||||
"y": 11,
|
||||
"w": 87,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 264,
|
||||
"y": 480,
|
||||
"w": 87,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0026.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 14,
|
||||
"w": 89,
|
||||
"h": 93
|
||||
},
|
||||
"frame": {
|
||||
"x": 351,
|
||||
"y": 481,
|
||||
"w": 89,
|
||||
"h": 93
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0022.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 87,
|
||||
"h": 93
|
||||
},
|
||||
"frame": {
|
||||
"x": 440,
|
||||
"y": 482,
|
||||
"w": 87,
|
||||
"h": 93
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0021.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 13,
|
||||
"y": 10,
|
||||
"w": 86,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 485,
|
||||
"w": 86,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0020.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 13,
|
||||
"y": 14,
|
||||
"w": 85,
|
||||
"h": 91
|
||||
},
|
||||
"frame": {
|
||||
"x": 86,
|
||||
"y": 485,
|
||||
"w": 85,
|
||||
"h": 91
|
||||
}
|
||||
}
|
||||
]
|
||||
"trimmed": false,
|
||||
"spriteSourceSize": { "x": 0, "y": 0, "w": 96, "h": 98 },
|
||||
"sourceSize": { "w": 96, "h": 98 },
|
||||
"duration": 100
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"app": "https://www.codeandweb.com/texturepacker",
|
||||
"version": "3.0",
|
||||
"smartupdate": "$TexturePacker:SmartUpdate:8fd9e1830200ec8e4aac8571cc2d27a6:c966e3efce03c7bae43d7bca6d6dfa62:cedd2711a12bbacba5623505fe88bd92$"
|
||||
"app": "https://www.aseprite.org/",
|
||||
"version": "1.3.13-x64",
|
||||
"image": "890-eternamax.png",
|
||||
"format": "RGBA8888",
|
||||
"size": { "w": 96, "h": 98 },
|
||||
"scale": "1"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 5.0 KiB |
@ -1,755 +1,20 @@
|
||||
{
|
||||
"textures": [
|
||||
{
|
||||
"image": "890-eternamax.png",
|
||||
"format": "RGBA8888",
|
||||
"size": {
|
||||
"w": 579,
|
||||
"h": 579
|
||||
},
|
||||
"scale": 1,
|
||||
"frames": [
|
||||
{
|
||||
"filename": "0035.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 9,
|
||||
"w": 100,
|
||||
"h": 98
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 100,
|
||||
"h": 98
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0031.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 8,
|
||||
"w": 95,
|
||||
"h": 100
|
||||
},
|
||||
"frame": {
|
||||
"x": 100,
|
||||
"y": 0,
|
||||
"w": 95,
|
||||
"h": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0029.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 8,
|
||||
"w": 91,
|
||||
"h": 100
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 98,
|
||||
"w": 91,
|
||||
"h": 100
|
||||
}
|
||||
},
|
||||
{ "frames": [
|
||||
{
|
||||
"filename": "0001.png",
|
||||
"frame": { "x": 1, "y": 1, "w": 92, "h": 94 },
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 9,
|
||||
"w": 96,
|
||||
"h": 98
|
||||
},
|
||||
"frame": {
|
||||
"x": 91,
|
||||
"y": 100,
|
||||
"w": 96,
|
||||
"h": 98
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0032.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 9,
|
||||
"w": 95,
|
||||
"h": 99
|
||||
},
|
||||
"frame": {
|
||||
"x": 187,
|
||||
"y": 100,
|
||||
"w": 95,
|
||||
"h": 99
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0030.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 9,
|
||||
"y": 10,
|
||||
"w": 91,
|
||||
"h": 98
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 198,
|
||||
"w": 91,
|
||||
"h": 98
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0007.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 10,
|
||||
"w": 88,
|
||||
"h": 98
|
||||
},
|
||||
"frame": {
|
||||
"x": 91,
|
||||
"y": 198,
|
||||
"w": 88,
|
||||
"h": 98
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0002.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 10,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 195,
|
||||
"y": 0,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0003.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 11,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 179,
|
||||
"y": 199,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0004.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 11,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 274,
|
||||
"y": 199,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0033.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 11,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 290,
|
||||
"y": 0,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0034.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 11,
|
||||
"w": 94,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 282,
|
||||
"y": 97,
|
||||
"w": 94,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0028.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 11,
|
||||
"w": 90,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 369,
|
||||
"y": 193,
|
||||
"w": 90,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0005.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 13,
|
||||
"w": 93,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 385,
|
||||
"y": 0,
|
||||
"w": 93,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0017.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 13,
|
||||
"y": 9,
|
||||
"w": 91,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 385,
|
||||
"y": 95,
|
||||
"w": 91,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0008.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 87,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 369,
|
||||
"y": 290,
|
||||
"w": 87,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0009.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 12,
|
||||
"w": 90,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 456,
|
||||
"y": 290,
|
||||
"w": 90,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0015.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 8,
|
||||
"w": 90,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 459,
|
||||
"y": 191,
|
||||
"w": 90,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0016.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 13,
|
||||
"y": 8,
|
||||
"w": 90,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 476,
|
||||
"y": 95,
|
||||
"w": 90,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0014.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 89,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 478,
|
||||
"y": 0,
|
||||
"w": 89,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0027.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 12,
|
||||
"w": 89,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 456,
|
||||
"y": 386,
|
||||
"w": 89,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0025.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 11,
|
||||
"w": 89,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 296,
|
||||
"w": 89,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0006.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 9,
|
||||
"y": 14,
|
||||
"w": 89,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 89,
|
||||
"y": 296,
|
||||
"w": 89,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0011.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 88,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 178,
|
||||
"y": 296,
|
||||
"w": 88,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0023.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 87,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 89,
|
||||
"y": 390,
|
||||
"w": 87,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0013.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 12,
|
||||
"w": 89,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 391,
|
||||
"w": 89,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0012.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 14,
|
||||
"w": 89,
|
||||
"h": 93
|
||||
},
|
||||
"frame": {
|
||||
"x": 266,
|
||||
"y": 387,
|
||||
"w": 89,
|
||||
"h": 93
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0019.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 16,
|
||||
"y": 13,
|
||||
"w": 85,
|
||||
"h": 91
|
||||
},
|
||||
"frame": {
|
||||
"x": 266,
|
||||
"y": 296,
|
||||
"w": 85,
|
||||
"h": 91
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0024.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 13,
|
||||
"w": 88,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 176,
|
||||
"y": 391,
|
||||
"w": 88,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0010.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 13,
|
||||
"w": 87,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 355,
|
||||
"y": 387,
|
||||
"w": 87,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0018.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 16,
|
||||
"y": 11,
|
||||
"w": 87,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 264,
|
||||
"y": 480,
|
||||
"w": 87,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0026.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 14,
|
||||
"w": 89,
|
||||
"h": 93
|
||||
},
|
||||
"frame": {
|
||||
"x": 351,
|
||||
"y": 481,
|
||||
"w": 89,
|
||||
"h": 93
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0022.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 87,
|
||||
"h": 93
|
||||
},
|
||||
"frame": {
|
||||
"x": 440,
|
||||
"y": 482,
|
||||
"w": 87,
|
||||
"h": 93
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0021.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 13,
|
||||
"y": 10,
|
||||
"w": 86,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 485,
|
||||
"w": 86,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0020.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 13,
|
||||
"y": 14,
|
||||
"w": 85,
|
||||
"h": 91
|
||||
},
|
||||
"frame": {
|
||||
"x": 86,
|
||||
"y": 485,
|
||||
"w": 85,
|
||||
"h": 91
|
||||
}
|
||||
}
|
||||
]
|
||||
"spriteSourceSize": { "x": 3, "y": 1, "w": 92, "h": 94 },
|
||||
"sourceSize": { "w": 96, "h": 98 },
|
||||
"duration": 100
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"app": "https://www.codeandweb.com/texturepacker",
|
||||
"version": "3.0",
|
||||
"smartupdate": "$TexturePacker:SmartUpdate:1eb3f67ba4e434995b4589c97560f1be:539129d777c30d08fa799dcebaeb523e:cf277fd83435e8c90cd46073c543568b$"
|
||||
"app": "https://www.aseprite.org/",
|
||||
"version": "1.3.13-x64",
|
||||
"image": "890-eternamax.png",
|
||||
"format": "RGBA8888",
|
||||
"size": { "w": 94, "h": 96 },
|
||||
"scale": "1"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 5.0 KiB |
@ -1,755 +1,20 @@
|
||||
{
|
||||
"textures": [
|
||||
{
|
||||
"image": "890-eternamax_2.png",
|
||||
"format": "RGBA8888",
|
||||
"size": {
|
||||
"w": 579,
|
||||
"h": 579
|
||||
},
|
||||
"scale": 1,
|
||||
"frames": [
|
||||
{
|
||||
"filename": "0035.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 9,
|
||||
"w": 100,
|
||||
"h": 98
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 100,
|
||||
"h": 98
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0031.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 8,
|
||||
"w": 95,
|
||||
"h": 100
|
||||
},
|
||||
"frame": {
|
||||
"x": 100,
|
||||
"y": 0,
|
||||
"w": 95,
|
||||
"h": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0029.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 8,
|
||||
"w": 91,
|
||||
"h": 100
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 98,
|
||||
"w": 91,
|
||||
"h": 100
|
||||
}
|
||||
},
|
||||
{ "frames": [
|
||||
{
|
||||
"filename": "0001.png",
|
||||
"frame": { "x": 1, "y": 1, "w": 92, "h": 94 },
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 9,
|
||||
"w": 96,
|
||||
"h": 98
|
||||
},
|
||||
"frame": {
|
||||
"x": 91,
|
||||
"y": 100,
|
||||
"w": 96,
|
||||
"h": 98
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0032.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 9,
|
||||
"w": 95,
|
||||
"h": 99
|
||||
},
|
||||
"frame": {
|
||||
"x": 187,
|
||||
"y": 100,
|
||||
"w": 95,
|
||||
"h": 99
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0030.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 9,
|
||||
"y": 10,
|
||||
"w": 91,
|
||||
"h": 98
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 198,
|
||||
"w": 91,
|
||||
"h": 98
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0007.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 10,
|
||||
"w": 88,
|
||||
"h": 98
|
||||
},
|
||||
"frame": {
|
||||
"x": 91,
|
||||
"y": 198,
|
||||
"w": 88,
|
||||
"h": 98
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0002.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 10,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 195,
|
||||
"y": 0,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0003.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 11,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 179,
|
||||
"y": 199,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0004.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 11,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 274,
|
||||
"y": 199,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0033.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 11,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 290,
|
||||
"y": 0,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0034.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 11,
|
||||
"w": 94,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 282,
|
||||
"y": 97,
|
||||
"w": 94,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0028.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 11,
|
||||
"w": 90,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 369,
|
||||
"y": 193,
|
||||
"w": 90,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0005.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 13,
|
||||
"w": 93,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 385,
|
||||
"y": 0,
|
||||
"w": 93,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0017.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 13,
|
||||
"y": 9,
|
||||
"w": 91,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 385,
|
||||
"y": 95,
|
||||
"w": 91,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0008.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 87,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 369,
|
||||
"y": 290,
|
||||
"w": 87,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0009.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 12,
|
||||
"w": 90,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 456,
|
||||
"y": 290,
|
||||
"w": 90,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0015.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 8,
|
||||
"w": 90,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 459,
|
||||
"y": 191,
|
||||
"w": 90,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0016.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 13,
|
||||
"y": 8,
|
||||
"w": 90,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 476,
|
||||
"y": 95,
|
||||
"w": 90,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0014.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 89,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 478,
|
||||
"y": 0,
|
||||
"w": 89,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0027.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 12,
|
||||
"w": 89,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 456,
|
||||
"y": 386,
|
||||
"w": 89,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0025.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 11,
|
||||
"w": 89,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 296,
|
||||
"w": 89,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0006.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 9,
|
||||
"y": 14,
|
||||
"w": 89,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 89,
|
||||
"y": 296,
|
||||
"w": 89,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0011.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 88,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 178,
|
||||
"y": 296,
|
||||
"w": 88,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0023.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 87,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 89,
|
||||
"y": 390,
|
||||
"w": 87,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0013.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 12,
|
||||
"w": 89,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 391,
|
||||
"w": 89,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0012.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 14,
|
||||
"w": 89,
|
||||
"h": 93
|
||||
},
|
||||
"frame": {
|
||||
"x": 266,
|
||||
"y": 387,
|
||||
"w": 89,
|
||||
"h": 93
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0019.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 16,
|
||||
"y": 13,
|
||||
"w": 85,
|
||||
"h": 91
|
||||
},
|
||||
"frame": {
|
||||
"x": 266,
|
||||
"y": 296,
|
||||
"w": 85,
|
||||
"h": 91
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0024.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 13,
|
||||
"w": 88,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 176,
|
||||
"y": 391,
|
||||
"w": 88,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0010.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 13,
|
||||
"w": 87,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 355,
|
||||
"y": 387,
|
||||
"w": 87,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0018.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 16,
|
||||
"y": 11,
|
||||
"w": 87,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 264,
|
||||
"y": 480,
|
||||
"w": 87,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0026.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 14,
|
||||
"w": 89,
|
||||
"h": 93
|
||||
},
|
||||
"frame": {
|
||||
"x": 351,
|
||||
"y": 481,
|
||||
"w": 89,
|
||||
"h": 93
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0022.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 87,
|
||||
"h": 93
|
||||
},
|
||||
"frame": {
|
||||
"x": 440,
|
||||
"y": 482,
|
||||
"w": 87,
|
||||
"h": 93
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0021.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 13,
|
||||
"y": 10,
|
||||
"w": 86,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 485,
|
||||
"w": 86,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0020.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 13,
|
||||
"y": 14,
|
||||
"w": 85,
|
||||
"h": 91
|
||||
},
|
||||
"frame": {
|
||||
"x": 86,
|
||||
"y": 485,
|
||||
"w": 85,
|
||||
"h": 91
|
||||
}
|
||||
}
|
||||
]
|
||||
"spriteSourceSize": { "x": 3, "y": 1, "w": 92, "h": 94 },
|
||||
"sourceSize": { "w": 96, "h": 98 },
|
||||
"duration": 100
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"app": "https://www.codeandweb.com/texturepacker",
|
||||
"version": "3.0",
|
||||
"smartupdate": "$TexturePacker:SmartUpdate:8fd9e1830200ec8e4aac8571cc2d27a6:c966e3efce03c7bae43d7bca6d6dfa62:cedd2711a12bbacba5623505fe88bd92$"
|
||||
"app": "https://www.aseprite.org/",
|
||||
"version": "1.3.13-x64",
|
||||
"image": "890-eternamax_2.png",
|
||||
"format": "RGBA8888",
|
||||
"size": { "w": 94, "h": 96 },
|
||||
"scale": "1"
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 5.0 KiB |
@ -1,755 +1,20 @@
|
||||
{
|
||||
"textures": [
|
||||
{
|
||||
"image": "890-eternamax_3.png",
|
||||
"format": "RGBA8888",
|
||||
"size": {
|
||||
"w": 579,
|
||||
"h": 579
|
||||
},
|
||||
"scale": 1,
|
||||
"frames": [
|
||||
{
|
||||
"filename": "0035.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 9,
|
||||
"w": 100,
|
||||
"h": 98
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 100,
|
||||
"h": 98
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0031.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 8,
|
||||
"w": 95,
|
||||
"h": 100
|
||||
},
|
||||
"frame": {
|
||||
"x": 100,
|
||||
"y": 0,
|
||||
"w": 95,
|
||||
"h": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0029.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 8,
|
||||
"w": 91,
|
||||
"h": 100
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 98,
|
||||
"w": 91,
|
||||
"h": 100
|
||||
}
|
||||
},
|
||||
{ "frames": [
|
||||
{
|
||||
"filename": "0001.png",
|
||||
"frame": { "x": 1, "y": 1, "w": 96, "h": 98 },
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 9,
|
||||
"w": 96,
|
||||
"h": 98
|
||||
},
|
||||
"frame": {
|
||||
"x": 91,
|
||||
"y": 100,
|
||||
"w": 96,
|
||||
"h": 98
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0032.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 9,
|
||||
"w": 95,
|
||||
"h": 99
|
||||
},
|
||||
"frame": {
|
||||
"x": 187,
|
||||
"y": 100,
|
||||
"w": 95,
|
||||
"h": 99
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0030.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 9,
|
||||
"y": 10,
|
||||
"w": 91,
|
||||
"h": 98
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 198,
|
||||
"w": 91,
|
||||
"h": 98
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0007.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 10,
|
||||
"w": 88,
|
||||
"h": 98
|
||||
},
|
||||
"frame": {
|
||||
"x": 91,
|
||||
"y": 198,
|
||||
"w": 88,
|
||||
"h": 98
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0002.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 10,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 195,
|
||||
"y": 0,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0003.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 11,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 179,
|
||||
"y": 199,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0004.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 11,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 274,
|
||||
"y": 199,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0033.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 11,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 290,
|
||||
"y": 0,
|
||||
"w": 95,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0034.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 11,
|
||||
"w": 94,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 282,
|
||||
"y": 97,
|
||||
"w": 94,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0028.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 11,
|
||||
"w": 90,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 369,
|
||||
"y": 193,
|
||||
"w": 90,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0005.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 8,
|
||||
"y": 13,
|
||||
"w": 93,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 385,
|
||||
"y": 0,
|
||||
"w": 93,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0017.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 13,
|
||||
"y": 9,
|
||||
"w": 91,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 385,
|
||||
"y": 95,
|
||||
"w": 91,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0008.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 87,
|
||||
"h": 97
|
||||
},
|
||||
"frame": {
|
||||
"x": 369,
|
||||
"y": 290,
|
||||
"w": 87,
|
||||
"h": 97
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0009.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 12,
|
||||
"w": 90,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 456,
|
||||
"y": 290,
|
||||
"w": 90,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0015.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 8,
|
||||
"w": 90,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 459,
|
||||
"y": 191,
|
||||
"w": 90,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0016.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 13,
|
||||
"y": 8,
|
||||
"w": 90,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 476,
|
||||
"y": 95,
|
||||
"w": 90,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0014.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 89,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 478,
|
||||
"y": 0,
|
||||
"w": 89,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0027.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 12,
|
||||
"w": 89,
|
||||
"h": 96
|
||||
},
|
||||
"frame": {
|
||||
"x": 456,
|
||||
"y": 386,
|
||||
"w": 89,
|
||||
"h": 96
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0025.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 11,
|
||||
"w": 89,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 296,
|
||||
"w": 89,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0006.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 9,
|
||||
"y": 14,
|
||||
"w": 89,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 89,
|
||||
"y": 296,
|
||||
"w": 89,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0011.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 88,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 178,
|
||||
"y": 296,
|
||||
"w": 88,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0023.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 87,
|
||||
"h": 95
|
||||
},
|
||||
"frame": {
|
||||
"x": 89,
|
||||
"y": 390,
|
||||
"w": 87,
|
||||
"h": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0013.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 12,
|
||||
"w": 89,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 391,
|
||||
"w": 89,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0012.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 14,
|
||||
"w": 89,
|
||||
"h": 93
|
||||
},
|
||||
"frame": {
|
||||
"x": 266,
|
||||
"y": 387,
|
||||
"w": 89,
|
||||
"h": 93
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0019.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 16,
|
||||
"y": 13,
|
||||
"w": 85,
|
||||
"h": 91
|
||||
},
|
||||
"frame": {
|
||||
"x": 266,
|
||||
"y": 296,
|
||||
"w": 85,
|
||||
"h": 91
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0024.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 13,
|
||||
"w": 88,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 176,
|
||||
"y": 391,
|
||||
"w": 88,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0010.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 13,
|
||||
"w": 87,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 355,
|
||||
"y": 387,
|
||||
"w": 87,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0018.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 16,
|
||||
"y": 11,
|
||||
"w": 87,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 264,
|
||||
"y": 480,
|
||||
"w": 87,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0026.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 11,
|
||||
"y": 14,
|
||||
"w": 89,
|
||||
"h": 93
|
||||
},
|
||||
"frame": {
|
||||
"x": 351,
|
||||
"y": 481,
|
||||
"w": 89,
|
||||
"h": 93
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0022.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 12,
|
||||
"y": 11,
|
||||
"w": 87,
|
||||
"h": 93
|
||||
},
|
||||
"frame": {
|
||||
"x": 440,
|
||||
"y": 482,
|
||||
"w": 87,
|
||||
"h": 93
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0021.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 13,
|
||||
"y": 10,
|
||||
"w": 86,
|
||||
"h": 94
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 485,
|
||||
"w": 86,
|
||||
"h": 94
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "0020.png",
|
||||
"rotated": false,
|
||||
"trimmed": true,
|
||||
"sourceSize": {
|
||||
"w": 112,
|
||||
"h": 112
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 13,
|
||||
"y": 14,
|
||||
"w": 85,
|
||||
"h": 91
|
||||
},
|
||||
"frame": {
|
||||
"x": 86,
|
||||
"y": 485,
|
||||
"w": 85,
|
||||
"h": 91
|
||||
}
|
||||
}
|
||||
]
|
||||
"trimmed": false,
|
||||
"spriteSourceSize": { "x": 0, "y": 0, "w": 96, "h": 98 },
|
||||
"sourceSize": { "w": 96, "h": 98 },
|
||||
"duration": 100
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"app": "https://www.codeandweb.com/texturepacker",
|
||||
"version": "3.0",
|
||||
"smartupdate": "$TexturePacker:SmartUpdate:8fd9e1830200ec8e4aac8571cc2d27a6:c966e3efce03c7bae43d7bca6d6dfa62:cedd2711a12bbacba5623505fe88bd92$"
|
||||
"app": "https://www.aseprite.org/",
|
||||
"version": "1.3.13-x64",
|
||||
"image": "890-eternamax_3.png",
|
||||
"format": "RGBA8888",
|
||||
"size": { "w": 98, "h": 100 },
|
||||
"scale": "1"
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 5.1 KiB |
@ -719,7 +719,7 @@
|
||||
"888-crowned": [0, 1, 1],
|
||||
"889": [0, 1, 1],
|
||||
"889-crowned": [0, 1, 1],
|
||||
"890-eternamax": [0, 1, 1],
|
||||
"890-eternamax": [0, 2, 2],
|
||||
"890": [0, 1, 1],
|
||||
"891": [1, 1, 1],
|
||||
"892-gigantamax-rapid": [1, 2, 2],
|
||||
|
188
public/images/statuses_es-MX.json
Normal file
@ -0,0 +1,188 @@
|
||||
{
|
||||
"textures": [
|
||||
{
|
||||
"image": "statuses_es-MX.png",
|
||||
"format": "RGBA8888",
|
||||
"size": {
|
||||
"w": 22,
|
||||
"h": 64
|
||||
},
|
||||
"scale": 1,
|
||||
"frames": [
|
||||
{
|
||||
"filename": "pokerus",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 22,
|
||||
"h": 8
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 22,
|
||||
"h": 8
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 22,
|
||||
"h": 8
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "burn",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 20,
|
||||
"h": 8
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 20,
|
||||
"h": 8
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 8,
|
||||
"w": 20,
|
||||
"h": 8
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "faint",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 20,
|
||||
"h": 8
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 20,
|
||||
"h": 8
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 16,
|
||||
"w": 20,
|
||||
"h": 8
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "freeze",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 20,
|
||||
"h": 8
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 20,
|
||||
"h": 8
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 24,
|
||||
"w": 20,
|
||||
"h": 8
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "paralysis",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 20,
|
||||
"h": 8
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 20,
|
||||
"h": 8
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 32,
|
||||
"w": 20,
|
||||
"h": 8
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "poison",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 20,
|
||||
"h": 8
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 20,
|
||||
"h": 8
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 40,
|
||||
"w": 20,
|
||||
"h": 8
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "sleep",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 20,
|
||||
"h": 8
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 20,
|
||||
"h": 8
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 48,
|
||||
"w": 20,
|
||||
"h": 8
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "toxic",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 20,
|
||||
"h": 8
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 20,
|
||||
"h": 8
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 56,
|
||||
"w": 20,
|
||||
"h": 8
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"app": "https://www.codeandweb.com/texturepacker",
|
||||
"version": "3.0",
|
||||
"smartupdate": "$TexturePacker:SmartUpdate:37686e85605d17b806f22d43081c1139:70535ffee63ba61b3397d8470c2c8982:e6649238c018d3630e55681417c698ca$"
|
||||
}
|
||||
}
|
BIN
public/images/statuses_es-MX.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
440
public/images/types_es-MX.json
Normal file
@ -0,0 +1,440 @@
|
||||
{
|
||||
"textures": [
|
||||
{
|
||||
"image": "types_es-MX.png",
|
||||
"format": "RGBA8888",
|
||||
"size": {
|
||||
"w": 32,
|
||||
"h": 280
|
||||
},
|
||||
"scale": 1,
|
||||
"frames": [
|
||||
{
|
||||
"filename": "unknown",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "bug",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 14,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "dark",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 28,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "dragon",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 42,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "electric",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 56,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "fairy",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 70,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "fighting",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 84,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "fire",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 98,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "flying",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 112,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "ghost",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 126,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "grass",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 140,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "ground",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 154,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "ice",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 168,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "normal",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 182,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "poison",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 196,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "psychic",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 210,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "rock",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 224,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "steel",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 238,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "water",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 252,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"filename": "stellar",
|
||||
"rotated": false,
|
||||
"trimmed": false,
|
||||
"sourceSize": {
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"spriteSourceSize": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
},
|
||||
"frame": {
|
||||
"x": 0,
|
||||
"y": 266,
|
||||
"w": 32,
|
||||
"h": 14
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"app": "https://www.codeandweb.com/texturepacker",
|
||||
"version": "3.0",
|
||||
"smartupdate": "$TexturePacker:SmartUpdate:f14cf47d9a8f1d40c8e03aa6ba00fff3:6fc4227b57a95d429a1faad4280f7ec8:5961efbfbf4c56b8745347e7a663a32f$"
|
||||
}
|
||||
}
|
BIN
public/images/types_es-MX.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
@ -167,9 +167,10 @@ import { ExpGainsSpeed } from "#enums/exp-gains-speed";
|
||||
import { BattlerTagType } from "#enums/battler-tag-type";
|
||||
import { FRIENDSHIP_GAIN_FROM_BATTLE } from "#app/data/balance/starters";
|
||||
import { StatusEffect } from "#enums/status-effect";
|
||||
import { initGlobalScene } from "#app/global-scene";
|
||||
import { globalScene, initGlobalScene } from "#app/global-scene";
|
||||
import { ShowAbilityPhase } from "#app/phases/show-ability-phase";
|
||||
import { HideAbilityPhase } from "#app/phases/hide-ability-phase";
|
||||
import { timedEventManager } from "./global-event-manager";
|
||||
|
||||
export const bypassLogin = import.meta.env.VITE_BYPASS_LOGIN === "1";
|
||||
|
||||
@ -2280,6 +2281,9 @@ export default class BattleScene extends SceneBase {
|
||||
if (bgmName === undefined) {
|
||||
bgmName = this.currentBattle?.getBgmOverride() || this.arena?.bgm;
|
||||
}
|
||||
|
||||
bgmName = timedEventManager.getEventBgmReplacement(bgmName);
|
||||
|
||||
if (this.bgm && bgmName === this.bgm.key) {
|
||||
if (!this.bgm.isPlaying) {
|
||||
this.bgm.play({
|
||||
@ -2672,6 +2676,10 @@ export default class BattleScene extends SceneBase {
|
||||
return 41.42;
|
||||
case "mystery_encounter_delibirdy": // Firel Delibirdy
|
||||
return 82.28;
|
||||
case "title_afd": // Andr06 - PokéRogue Title Remix (AFD)
|
||||
return 47.660;
|
||||
case "battle_rival_3_afd": // Andr06 - Final N Battle Remix (AFD)
|
||||
return 49.147;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -2,7 +2,7 @@
|
||||
export const PLAYER_PARTY_MAX_SIZE: number = 6;
|
||||
|
||||
/** Whether to use seasonal splash messages in general */
|
||||
export const USE_SEASONAL_SPLASH_MESSAGES: boolean = false;
|
||||
export const USE_SEASONAL_SPLASH_MESSAGES: boolean = true;
|
||||
|
||||
/** Name of the session ID cookie */
|
||||
export const SESSION_ID_COOKIE_NAME: string = "pokerogue_sessionId";
|
||||
|
@ -2841,7 +2841,7 @@ export class PostSummonFormChangeByWeatherAbAttr extends PostSummonAbAttr {
|
||||
private ability: Abilities;
|
||||
|
||||
constructor(ability: Abilities) {
|
||||
super(false);
|
||||
super(true);
|
||||
|
||||
this.ability = ability;
|
||||
}
|
||||
@ -2865,7 +2865,6 @@ export class PostSummonFormChangeByWeatherAbAttr extends PostSummonAbAttr {
|
||||
if (!simulated) {
|
||||
globalScene.triggerPokemonFormChange(pokemon, SpeciesFormChangeWeatherTrigger);
|
||||
globalScene.triggerPokemonFormChange(pokemon, SpeciesFormChangeRevertWeatherFormTrigger);
|
||||
globalScene.queueAbilityDisplay(pokemon, passive, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -230,7 +230,7 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
|
||||
[Species.PINECO]: { 0: Abilities.ROUGH_SKIN },
|
||||
[Species.FORRETRESS]: { 0: Abilities.IRON_BARBS },
|
||||
[Species.DUNSPARCE]: { 0: Abilities.UNAWARE },
|
||||
[Species.DUDUNSPARCE]: { 0: Abilities.UNAWARE },
|
||||
[Species.DUDUNSPARCE]: { 0: Abilities.UNAWARE, 1: Abilities.UNAWARE },
|
||||
[Species.GLIGAR]: { 0: Abilities.POISON_TOUCH },
|
||||
[Species.GLISCOR]: { 0: Abilities.TOXIC_BOOST },
|
||||
[Species.SNUBBULL]: { 0: Abilities.PIXILATE },
|
||||
@ -276,7 +276,9 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
|
||||
[Species.RAIKOU]: { 0: Abilities.BEAST_BOOST },
|
||||
[Species.ENTEI]: { 0: Abilities.BEAST_BOOST },
|
||||
[Species.SUICUNE]: { 0: Abilities.BEAST_BOOST },
|
||||
[Species.LARVITAR]: { 0: Abilities.SOLID_ROCK, 1: Abilities.SOLID_ROCK },
|
||||
[Species.LARVITAR]: { 0: Abilities.SOLID_ROCK },
|
||||
[Species.PUPITAR]: { 0: Abilities.SOLID_ROCK },
|
||||
[Species.TYRANITAR]: { 0: Abilities.SOLID_ROCK, 1: Abilities.SOLID_ROCK },
|
||||
[Species.LUGIA]: { 0: Abilities.DELTA_STREAM },
|
||||
[Species.HO_OH]: { 0: Abilities.MAGIC_GUARD },
|
||||
[Species.CELEBI]: { 0: Abilities.PSYCHIC_SURGE },
|
||||
@ -431,7 +433,7 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
|
||||
[Species.PIPLUP]: { 0: Abilities.CUTE_CHARM },
|
||||
[Species.PRINPLUP]: { 0: Abilities.DRIZZLE },
|
||||
[Species.EMPOLEON]: { 0: Abilities.DRIZZLE },
|
||||
[Species.STARLY]: { 0: Abilities.ROCK_HEAD },
|
||||
[Species.STARLY]: { 0: Abilities.INTIMIDATE },
|
||||
[Species.STARAVIA]: { 0: Abilities.ROCK_HEAD },
|
||||
[Species.STARAPTOR]: { 0: Abilities.ROCK_HEAD },
|
||||
[Species.BIDOOF]: { 0: Abilities.SAP_SIPPER },
|
||||
@ -610,8 +612,8 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
|
||||
[Species.REUNICLUS]: { 0: Abilities.PSYCHIC_SURGE },
|
||||
[Species.DUCKLETT]: { 0: Abilities.DRIZZLE },
|
||||
[Species.SWANNA]: { 0: Abilities.DRIZZLE },
|
||||
[Species.VANILLITE]: { 0: Abilities.SLUSH_RUSH },
|
||||
[Species.VANILLISH]: { 0: Abilities.SLUSH_RUSH },
|
||||
[Species.VANILLITE]: { 0: Abilities.SNOW_WARNING },
|
||||
[Species.VANILLISH]: { 0: Abilities.SNOW_WARNING },
|
||||
[Species.VANILLUXE]: { 0: Abilities.SLUSH_RUSH },
|
||||
[Species.DEERLING]: { 0: Abilities.FLOWER_VEIL, 1: Abilities.CUD_CHEW, 2: Abilities.HARVEST, 3: Abilities.FUR_COAT },
|
||||
[Species.SAWSBUCK]: { 0: Abilities.FLOWER_VEIL, 1: Abilities.CUD_CHEW, 2: Abilities.HARVEST, 3: Abilities.FUR_COAT },
|
||||
@ -689,30 +691,30 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
|
||||
[Species.DELPHOX]: { 0: Abilities.PSYCHIC_SURGE },
|
||||
[Species.FROAKIE]: { 0: Abilities.STAKEOUT, 1: Abilities.STAKEOUT },
|
||||
[Species.FROGADIER]: { 0: Abilities.STAKEOUT, 1: Abilities.STAKEOUT },
|
||||
[Species.GRENINJA]: { 0: Abilities.STAKEOUT, 1: Abilities.STAKEOUT },
|
||||
[Species.GRENINJA]: { 0: Abilities.STAKEOUT, 1: Abilities.STAKEOUT, 2: Abilities.STAKEOUT },
|
||||
[Species.BUNNELBY]: { 0: Abilities.INNER_FOCUS },
|
||||
[Species.DIGGERSBY]: { 0: Abilities.THICK_FAT },
|
||||
[Species.FLETCHLING]: { 0: Abilities.FLAME_BODY },
|
||||
[Species.FLETCHINDER]: { 0: Abilities.MAGIC_GUARD },
|
||||
[Species.TALONFLAME]: { 0: Abilities.MAGIC_GUARD },
|
||||
[Species.SCATTERBUG]: { 0: Abilities.RUN_AWAY },
|
||||
[Species.SPEWPA]: { 0: Abilities.COMPOUND_EYES },
|
||||
[Species.VIVILLON]: { 0: Abilities.PRANKSTER },
|
||||
[Species.SCATTERBUG]: { 0: Abilities.RUN_AWAY, 1: Abilities.RUN_AWAY, 2: Abilities.RUN_AWAY, 3: Abilities.RUN_AWAY, 4: Abilities.RUN_AWAY, 5: Abilities.RUN_AWAY, 6: Abilities.RUN_AWAY, 7: Abilities.RUN_AWAY, 8: Abilities.RUN_AWAY, 9: Abilities.RUN_AWAY, 10: Abilities.RUN_AWAY, 11: Abilities.RUN_AWAY, 12: Abilities.RUN_AWAY, 13: Abilities.RUN_AWAY, 14: Abilities.RUN_AWAY, 15: Abilities.RUN_AWAY, 16: Abilities.RUN_AWAY, 17: Abilities.RUN_AWAY, 18: Abilities.RUN_AWAY, 19: Abilities.RUN_AWAY },
|
||||
[Species.SPEWPA]: { 0: Abilities.COMPOUND_EYES, 1: Abilities.COMPOUND_EYES, 2: Abilities.COMPOUND_EYES, 3: Abilities.COMPOUND_EYES, 4: Abilities.COMPOUND_EYES, 5: Abilities.COMPOUND_EYES, 6: Abilities.COMPOUND_EYES, 7: Abilities.COMPOUND_EYES, 8: Abilities.COMPOUND_EYES, 9: Abilities.COMPOUND_EYES, 10: Abilities.COMPOUND_EYES, 11: Abilities.COMPOUND_EYES, 12: Abilities.COMPOUND_EYES, 13: Abilities.COMPOUND_EYES, 14: Abilities.COMPOUND_EYES, 15: Abilities.COMPOUND_EYES, 16: Abilities.COMPOUND_EYES, 17: Abilities.COMPOUND_EYES, 18: Abilities.COMPOUND_EYES, 19: Abilities.COMPOUND_EYES },
|
||||
[Species.VIVILLON]: { 0: Abilities.PRANKSTER, 1: Abilities.PRANKSTER, 2: Abilities.PRANKSTER, 3: Abilities.PRANKSTER, 4: Abilities.PRANKSTER, 5: Abilities.PRANKSTER, 6: Abilities.PRANKSTER, 7: Abilities.PRANKSTER, 8: Abilities.PRANKSTER, 9: Abilities.PRANKSTER, 10: Abilities.PRANKSTER, 11: Abilities.PRANKSTER, 12: Abilities.PRANKSTER, 13: Abilities.PRANKSTER, 14: Abilities.PRANKSTER, 15: Abilities.PRANKSTER, 16: Abilities.PRANKSTER, 17: Abilities.PRANKSTER, 18: Abilities.PRANKSTER, 19: Abilities.PRANKSTER },
|
||||
[Species.LITLEO]: { 0: Abilities.BEAST_BOOST },
|
||||
[Species.PYROAR]: { 0: Abilities.BEAST_BOOST },
|
||||
[Species.FLABEBE]: { 0: Abilities.GRASSY_SURGE },
|
||||
[Species.FLOETTE]: { 0: Abilities.GRASSY_SURGE },
|
||||
[Species.FLORGES]: { 0: Abilities.GRASSY_SURGE },
|
||||
[Species.FLABEBE]: { 0: Abilities.GRASSY_SURGE, 1: Abilities.GRASSY_SURGE, 2: Abilities.GRASSY_SURGE, 3: Abilities.GRASSY_SURGE, 4: Abilities.GRASSY_SURGE },
|
||||
[Species.FLOETTE]: { 0: Abilities.GRASSY_SURGE, 1: Abilities.GRASSY_SURGE, 2: Abilities.GRASSY_SURGE, 3: Abilities.GRASSY_SURGE, 4: Abilities.GRASSY_SURGE },
|
||||
[Species.FLORGES]: { 0: Abilities.GRASSY_SURGE, 1: Abilities.GRASSY_SURGE, 2: Abilities.GRASSY_SURGE, 3: Abilities.GRASSY_SURGE, 4: Abilities.GRASSY_SURGE },
|
||||
[Species.SKIDDO]: { 0: Abilities.SEED_SOWER },
|
||||
[Species.GOGOAT]: { 0: Abilities.SEED_SOWER },
|
||||
[Species.PANCHAM]: { 0: Abilities.TECHNICIAN },
|
||||
[Species.PANGORO]: { 0: Abilities.FUR_COAT },
|
||||
[Species.FURFROU]: { 0: Abilities.FLUFFY },
|
||||
[Species.FURFROU]: { 0: Abilities.FLUFFY, 1: Abilities.FLUFFY, 2: Abilities.FLUFFY, 3: Abilities.FLUFFY, 4: Abilities.FLUFFY, 5: Abilities.FLUFFY, 6: Abilities.FLUFFY, 7: Abilities.FLUFFY, 8: Abilities.FLUFFY, 9: Abilities.FLUFFY },
|
||||
[Species.ESPURR]: { 0: Abilities.PRANKSTER },
|
||||
[Species.MEOWSTIC]: { 0: Abilities.FUR_COAT, 1: Abilities.NEUROFORCE },
|
||||
[Species.HONEDGE]: { 0: Abilities.SHARPNESS },
|
||||
[Species.DOUBLADE]: { 0: Abilities.SHARPNESS },
|
||||
[Species.AEGISLASH]: { 0: Abilities.SHARPNESS },
|
||||
[Species.AEGISLASH]: { 0: Abilities.SHARPNESS, 1: Abilities.SHARPNESS },
|
||||
[Species.SPRITZEE]: { 0: Abilities.FUR_COAT },
|
||||
[Species.AROMATISSE]: { 0: Abilities.FUR_COAT },
|
||||
[Species.SWIRLIX]: { 0: Abilities.RIPEN },
|
||||
@ -749,9 +751,9 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
|
||||
[Species.HISUI_AVALUGG]: { 0: Abilities.ICE_SCALES },
|
||||
[Species.NOIBAT]: { 0: Abilities.CHEEK_POUCH },
|
||||
[Species.NOIVERN]: { 0: Abilities.PUNK_ROCK },
|
||||
[Species.XERNEAS]: { 0: Abilities.HARVEST },
|
||||
[Species.XERNEAS]: { 0: Abilities.HARVEST, 1: Abilities.HARVEST },
|
||||
[Species.YVELTAL]: { 0: Abilities.SOUL_HEART },
|
||||
[Species.ZYGARDE]: { 0: Abilities.UNNERVE, 1: Abilities.MOXIE, 2: Abilities.UNNERVE, 3: Abilities.MOXIE, 4: Abilities.ADAPTABILITY },
|
||||
[Species.ZYGARDE]: { 0: Abilities.UNNERVE, 1: Abilities.MOXIE, 2: Abilities.UNNERVE, 3: Abilities.MOXIE, 4: Abilities.ADAPTABILITY, 5: Abilities.ADAPTABILITY },
|
||||
[Species.DIANCIE]: { 0: Abilities.SOLID_ROCK, 1: Abilities.PRISM_ARMOR },
|
||||
[Species.HOOPA]: { 0: Abilities.OPPORTUNIST, 1: Abilities.OPPORTUNIST },
|
||||
[Species.VOLCANION]: { 0: Abilities.NEUTRALIZING_GAS },
|
||||
@ -793,7 +795,7 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
|
||||
[Species.LURANTIS]: { 0: Abilities.SHARPNESS },
|
||||
[Species.MORELULL]: { 0: Abilities.TRIAGE },
|
||||
[Species.SHIINOTIC]: { 0: Abilities.TRIAGE },
|
||||
[Species.SALANDIT]: { 0: Abilities.DRAGONS_MAW },
|
||||
[Species.SALANDIT]: { 0: Abilities.PICKUP },
|
||||
[Species.SALAZZLE]: { 0: Abilities.DRAGONS_MAW },
|
||||
[Species.STUFFUL]: { 0: Abilities.SCRAPPY },
|
||||
[Species.BEWEAR]: { 0: Abilities.SCRAPPY },
|
||||
@ -849,6 +851,7 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
|
||||
[Species.ALOLA_RATTATA]: { 0: Abilities.ADAPTABILITY },
|
||||
[Species.ALOLA_RATICATE]: { 0: Abilities.ADAPTABILITY },
|
||||
[Species.ALOLA_SANDSHREW]: { 0: Abilities.ICE_SCALES },
|
||||
[Species.ALOLA_SANDSLASH]: { 0: Abilities.ICE_SCALES },
|
||||
[Species.ALOLA_VULPIX]: { 0: Abilities.ICE_BODY },
|
||||
[Species.ALOLA_NINETALES]: { 0: Abilities.ICE_BODY },
|
||||
[Species.ALOLA_DIGLETT]: { 0: Abilities.STURDY },
|
||||
@ -883,6 +886,7 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
|
||||
[Species.GOSSIFLEUR]: { 0: Abilities.SEED_SOWER },
|
||||
[Species.ELDEGOSS]: { 0: Abilities.GRASSY_SURGE },
|
||||
[Species.WOOLOO]: { 0: Abilities.SCRAPPY },
|
||||
[Species.DUBWOOL]: { 0: Abilities.SCRAPPY },
|
||||
[Species.CHEWTLE]: { 0: Abilities.SOLID_ROCK },
|
||||
[Species.DREDNAW]: { 0: Abilities.SOLID_ROCK, 1: Abilities.SOLID_ROCK },
|
||||
[Species.YAMPER]: { 0: Abilities.PICKUP },
|
||||
@ -915,7 +919,7 @@ export const starterPassiveAbilities: StarterPassiveAbilities = {
|
||||
[Species.MORGREM]: { 0: Abilities.INTIMIDATE },
|
||||
[Species.GRIMMSNARL]: { 0: Abilities.INTIMIDATE, 1: Abilities.INTIMIDATE },
|
||||
[Species.MILCERY]: { 0: Abilities.REGENERATOR },
|
||||
[Species.ALCREMIE]: { 0: Abilities.REGENERATOR },
|
||||
[Species.ALCREMIE]: { 0: Abilities.REGENERATOR, 1: Abilities.REGENERATOR, 2: Abilities.REGENERATOR, 3: Abilities.REGENERATOR, 4: Abilities.REGENERATOR, 5: Abilities.REGENERATOR, 6: Abilities.REGENERATOR, 7: Abilities.REGENERATOR, 8: Abilities.REGENERATOR, 9: Abilities.REGENERATOR },
|
||||
[Species.FALINKS]: { 0: Abilities.DAUNTLESS_SHIELD },
|
||||
[Species.PINCURCHIN]: { 0: Abilities.ELECTROMORPHOSIS },
|
||||
[Species.SNOM]: { 0: Abilities.SNOW_WARNING },
|
||||
|
@ -6715,6 +6715,8 @@ class CallMoveAttr extends OverrideMoveEffectAttr {
|
||||
const replaceMoveTarget = move.moveTarget === MoveTarget.NEAR_OTHER ? MoveTarget.NEAR_ENEMY : undefined;
|
||||
const moveTargets = getMoveTargets(user, move.id, replaceMoveTarget);
|
||||
if (moveTargets.targets.length === 0) {
|
||||
globalScene.queueMessage(i18next.t("battle:attackFailed"));
|
||||
console.log("CallMoveAttr failed due to no targets.");
|
||||
return false;
|
||||
}
|
||||
const targets = moveTargets.multiple || moveTargets.targets.length === 1
|
||||
|
@ -37,6 +37,7 @@ import { MysteryEncounterOptionMode } from "#enums/mystery-encounter-option-mode
|
||||
import { MysteryEncounterTier } from "#enums/mystery-encounter-tier";
|
||||
import { MysteryEncounterType } from "#enums/mystery-encounter-type";
|
||||
import { Species } from "#enums/species";
|
||||
import { timedEventManager } from "#app/global-event-manager";
|
||||
|
||||
/** the i18n namespace for this encounter */
|
||||
const namespace = "mysteryEncounters/delibirdy";
|
||||
@ -56,7 +57,7 @@ const OPTION_3_DISALLOWED_MODIFIERS = [
|
||||
const DELIBIRDY_MONEY_PRICE_MULTIPLIER = 2;
|
||||
|
||||
const doEventReward = () => {
|
||||
const event_buff = globalScene.eventManager.getDelibirdyBuff();
|
||||
const event_buff = timedEventManager.getDelibirdyBuff();
|
||||
if (event_buff.length > 0) {
|
||||
const candidates = event_buff.filter(c => {
|
||||
const mtype = generateModifierType(modifierTypes[c]);
|
||||
|
@ -46,6 +46,7 @@ import { addPokemonDataToDexAndValidateAchievements } from "#app/data/mystery-en
|
||||
import type { PokeballType } from "#enums/pokeball";
|
||||
import { doShinySparkleAnim } from "#app/field/anims";
|
||||
import { TrainerType } from "#enums/trainer-type";
|
||||
import { timedEventManager } from "#app/global-event-manager";
|
||||
|
||||
/** the i18n namespace for the encounter */
|
||||
const namespace = "mysteryEncounters/globalTradeSystem";
|
||||
@ -273,8 +274,8 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = MysteryEncounterBuil
|
||||
// Extra shiny roll at 1/128 odds (boosted by events and charms)
|
||||
if (!tradePokemon.shiny) {
|
||||
const shinyThreshold = new NumberHolder(WONDER_TRADE_SHINY_CHANCE);
|
||||
if (globalScene.eventManager.isEventActive()) {
|
||||
shinyThreshold.value *= globalScene.eventManager.getShinyMultiplier();
|
||||
if (timedEventManager.isEventActive()) {
|
||||
shinyThreshold.value *= timedEventManager.getShinyMultiplier();
|
||||
}
|
||||
globalScene.applyModifiers(ShinyRateBoosterModifier, true, shinyThreshold);
|
||||
|
||||
|
@ -93,7 +93,7 @@ export const TheStrongStuffEncounter: MysteryEncounter = MysteryEncounterBuilder
|
||||
bossSegments: 5,
|
||||
shiny: false, // Shiny lock because shiny is rolled only if the battle option is picked
|
||||
customPokemonData: new CustomPokemonData({ spriteScale: 1.25 }),
|
||||
nature: Nature.BOLD,
|
||||
nature: Nature.HARDY,
|
||||
moveSet: [Moves.INFESTATION, Moves.SALT_CURE, Moves.GASTRO_ACID, Moves.HEAL_ORDER],
|
||||
modifierConfigs: [
|
||||
{
|
||||
@ -117,7 +117,7 @@ export const TheStrongStuffEncounter: MysteryEncounter = MysteryEncounterBuilder
|
||||
mysteryEncounterBattleEffects: (pokemon: Pokemon) => {
|
||||
queueEncounterMessage(`${namespace}:option.2.stat_boost`);
|
||||
globalScene.unshiftPhase(
|
||||
new StatStageChangePhase(pokemon.getBattlerIndex(), true, [Stat.DEF, Stat.SPDEF], 2),
|
||||
new StatStageChangePhase(pokemon.getBattlerIndex(), true, [Stat.DEF, Stat.SPDEF], 1),
|
||||
);
|
||||
},
|
||||
},
|
||||
|
@ -27,6 +27,7 @@ import { Moves } from "#enums/moves";
|
||||
import { BattlerIndex } from "#app/battle";
|
||||
import { PokemonMove } from "#app/field/pokemon";
|
||||
import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode";
|
||||
import { randSeedInt } from "#app/utils";
|
||||
|
||||
/** the i18n namespace for this encounter */
|
||||
const namespace = "mysteryEncounters/trashToTreasure";
|
||||
@ -80,7 +81,43 @@ export const TrashToTreasureEncounter: MysteryEncounter = MysteryEncounterBuilde
|
||||
shiny: false, // Shiny lock because of custom intro sprite
|
||||
formIndex: 1, // Gmax
|
||||
bossSegmentModifier: 1, // +1 Segment from normal
|
||||
moveSet: [Moves.PAYBACK, Moves.GUNK_SHOT, Moves.STOMPING_TANTRUM, Moves.DRAIN_PUNCH],
|
||||
moveSet: [Moves.GUNK_SHOT, Moves.STOMPING_TANTRUM, Moves.HAMMER_ARM, Moves.PAYBACK],
|
||||
modifierConfigs: [
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.BERRY) as PokemonHeldItemModifierType,
|
||||
},
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.BERRY) as PokemonHeldItemModifierType,
|
||||
},
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.BERRY) as PokemonHeldItemModifierType,
|
||||
},
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.BERRY) as PokemonHeldItemModifierType,
|
||||
},
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.BASE_STAT_BOOSTER) as PokemonHeldItemModifierType,
|
||||
},
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.BASE_STAT_BOOSTER) as PokemonHeldItemModifierType,
|
||||
},
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.TOXIC_ORB) as PokemonHeldItemModifierType,
|
||||
stackCount: randSeedInt(2, 0),
|
||||
},
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.SOOTHE_BELL) as PokemonHeldItemModifierType,
|
||||
stackCount: randSeedInt(2, 1),
|
||||
},
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.LUCKY_EGG) as PokemonHeldItemModifierType,
|
||||
stackCount: randSeedInt(3, 1),
|
||||
},
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.GOLDEN_EGG) as PokemonHeldItemModifierType,
|
||||
stackCount: randSeedInt(2, 0),
|
||||
},
|
||||
],
|
||||
};
|
||||
const config: EnemyPartyConfig = {
|
||||
levelAdditiveModifier: 0.5,
|
||||
@ -90,7 +127,7 @@ export const TrashToTreasureEncounter: MysteryEncounter = MysteryEncounterBuilde
|
||||
encounter.enemyPartyConfigs = [config];
|
||||
|
||||
// Load animations/sfx for Garbodor fight start moves
|
||||
loadCustomMovesForEncounter([Moves.TOXIC, Moves.AMNESIA]);
|
||||
loadCustomMovesForEncounter([Moves.TOXIC, Moves.STOCKPILE]);
|
||||
|
||||
globalScene.loadSe("PRSFX- Dig2", "battle_anims", "PRSFX- Dig2.wav");
|
||||
globalScene.loadSe("PRSFX- Venom Drench", "battle_anims", "PRSFX- Venom Drench.wav");
|
||||
@ -115,7 +152,7 @@ export const TrashToTreasureEncounter: MysteryEncounter = MysteryEncounterBuilde
|
||||
doGarbageDig();
|
||||
})
|
||||
.withOptionPhase(async () => {
|
||||
// Gain 2 Leftovers and 2 Shell Bell
|
||||
// Gain 2 Leftovers and 1 Shell Bell
|
||||
await transitionMysteryEncounterIntroVisuals();
|
||||
await tryApplyDigRewardItems();
|
||||
|
||||
@ -175,7 +212,7 @@ export const TrashToTreasureEncounter: MysteryEncounter = MysteryEncounterBuilde
|
||||
{
|
||||
sourceBattlerIndex: BattlerIndex.ENEMY,
|
||||
targets: [BattlerIndex.ENEMY],
|
||||
move: new PokemonMove(Moves.AMNESIA),
|
||||
move: new PokemonMove(Moves.STOCKPILE),
|
||||
ignorePp: true,
|
||||
},
|
||||
);
|
||||
@ -231,21 +268,7 @@ async function tryApplyDigRewardItems() {
|
||||
true,
|
||||
);
|
||||
|
||||
// First Shell bell
|
||||
for (const pokemon of party) {
|
||||
const heldItems = globalScene.findModifiers(
|
||||
m => m instanceof PokemonHeldItemModifier && m.pokemonId === pokemon.id,
|
||||
true,
|
||||
) as PokemonHeldItemModifier[];
|
||||
const existingShellBell = heldItems.find(m => m instanceof HitHealModifier) as HitHealModifier;
|
||||
|
||||
if (!existingShellBell || existingShellBell.getStackCount() < existingShellBell.getMaxStackCount()) {
|
||||
await applyModifierTypeToPlayerPokemon(pokemon, shellBell);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Second Shell bell
|
||||
// Only Shell bell
|
||||
for (const pokemon of party) {
|
||||
const heldItems = globalScene.findModifiers(
|
||||
m => m instanceof PokemonHeldItemModifier && m.pokemonId === pokemon.id,
|
||||
@ -263,7 +286,7 @@ async function tryApplyDigRewardItems() {
|
||||
await showEncounterText(
|
||||
i18next.t("battle:rewardGainCount", {
|
||||
modifierName: shellBell.name,
|
||||
count: 2,
|
||||
count: 1,
|
||||
}),
|
||||
null,
|
||||
undefined,
|
||||
|
@ -65,6 +65,7 @@ import { getPokemonSpecies } from "#app/data/pokemon-species";
|
||||
import { PokemonType } from "#enums/pokemon-type";
|
||||
import { getNatureName } from "#app/data/nature";
|
||||
import { getPokemonNameWithAffix } from "#app/messages";
|
||||
import { timedEventManager } from "#app/global-event-manager";
|
||||
|
||||
/**
|
||||
* Animates exclamation sprite over trainer's head at start of encounter
|
||||
@ -1046,7 +1047,7 @@ export function handleMysteryEncounterTurnStartEffects(): boolean {
|
||||
export function getRandomEncounterSpecies(level: number, isBoss = false, rerollHidden = false): EnemyPokemon {
|
||||
let bossSpecies: PokemonSpecies;
|
||||
let isEventEncounter = false;
|
||||
const eventEncounters = globalScene.eventManager.getEventEncounters();
|
||||
const eventEncounters = timedEventManager.getEventEncounters();
|
||||
let formIndex: number | undefined;
|
||||
|
||||
if (eventEncounters.length > 0 && randSeedInt(2) === 1) {
|
||||
|
@ -3054,11 +3054,11 @@ export function initSpecies() {
|
||||
new PokemonSpecies(Species.DIPPLIN, 9, false, false, false, "Candy Apple Pokémon", PokemonType.GRASS, PokemonType.DRAGON, 0.4, 9.7, Abilities.SUPERSWEET_SYRUP, Abilities.GLUTTONY, Abilities.STICKY_HOLD, 485, 80, 80, 110, 95, 80, 40, 45, 50, 170, GrowthRate.ERRATIC, 50, false),
|
||||
new PokemonSpecies(Species.POLTCHAGEIST, 9, false, false, false, "Matcha Pokémon", PokemonType.GRASS, PokemonType.GHOST, 0.1, 1.1, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62, GrowthRate.SLOW, null, false, false,
|
||||
new PokemonForm("Counterfeit Form", "counterfeit", PokemonType.GRASS, PokemonType.GHOST, 0.1, 1.1, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62, false, null, true),
|
||||
new PokemonForm("Artisan Form", "artisan", PokemonType.GRASS, PokemonType.GHOST, 0.1, 1.1, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62, false, null, true),
|
||||
new PokemonForm("Artisan Form", "artisan", PokemonType.GRASS, PokemonType.GHOST, 0.1, 1.1, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 308, 40, 45, 45, 74, 54, 50, 120, 50, 62, false, null, false, true),
|
||||
),
|
||||
new PokemonSpecies(Species.SINISTCHA, 9, false, false, false, "Matcha Pokémon", PokemonType.GRASS, PokemonType.GHOST, 0.2, 2.2, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 508, 71, 60, 106, 121, 80, 70, 60, 50, 178, GrowthRate.SLOW, null, false, false,
|
||||
new PokemonForm("Unremarkable Form", "unremarkable", PokemonType.GRASS, PokemonType.GHOST, 0.2, 2.2, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 508, 71, 60, 106, 121, 80, 70, 60, 50, 178),
|
||||
new PokemonForm("Masterpiece Form", "masterpiece", PokemonType.GRASS, PokemonType.GHOST, 0.2, 2.2, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 508, 71, 60, 106, 121, 80, 70, 60, 50, 178),
|
||||
new PokemonForm("Masterpiece Form", "masterpiece", PokemonType.GRASS, PokemonType.GHOST, 0.2, 2.2, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 508, 71, 60, 106, 121, 80, 70, 60, 50, 178, false, null, false, true),
|
||||
),
|
||||
new PokemonSpecies(Species.OKIDOGI, 9, true, false, false, "Retainer Pokémon", PokemonType.POISON, PokemonType.FIGHTING, 1.8, 92.2, Abilities.TOXIC_CHAIN, Abilities.NONE, Abilities.GUARD_DOG, 555, 88, 128, 115, 58, 86, 80, 3, 0, 276, GrowthRate.SLOW, 100, false),
|
||||
new PokemonSpecies(Species.MUNKIDORI, 9, true, false, false, "Retainer Pokémon", PokemonType.POISON, PokemonType.PSYCHIC, 1, 12.2, Abilities.TOXIC_CHAIN, Abilities.NONE, Abilities.FRISK, 555, 88, 75, 66, 130, 90, 106, 3, 0, 276, GrowthRate.SLOW, 100, false),
|
||||
|
@ -32,6 +32,7 @@ import { TeraAIMode } from "#enums/tera-ai-mode";
|
||||
import { TrainerPoolTier } from "#enums/trainer-pool-tier";
|
||||
import { TrainerSlot } from "#enums/trainer-slot";
|
||||
import { TrainerType } from "#enums/trainer-type";
|
||||
import { timedEventManager } from "#app/global-event-manager";
|
||||
|
||||
// Type imports
|
||||
import type { PokemonSpeciesFilter } from "#app/data/pokemon-species";
|
||||
@ -516,13 +517,13 @@ export class TrainerConfig {
|
||||
// return ret;
|
||||
// }
|
||||
|
||||
setEventModifierRewardFuncs(...modifierTypeFuncs: (() => ModifierTypeFunc)[]): TrainerConfig {
|
||||
this.eventRewardFuncs = modifierTypeFuncs.map(func => () => {
|
||||
const modifierTypeFunc = func();
|
||||
const modifierType = modifierTypeFunc();
|
||||
modifierType.withIdFromFunc(modifierTypeFunc);
|
||||
return modifierType;
|
||||
});
|
||||
/**
|
||||
* Sets eventRewardFuncs to the active event rewards for the specified wave
|
||||
* @param wave Associated with {@linkcode getFixedBattleEventRewards}
|
||||
* @returns this
|
||||
*/
|
||||
setEventModifierRewardFuncs(wave: number): TrainerConfig {
|
||||
this.eventRewardFuncs = timedEventManager.getFixedBattleEventRewards(wave).map(r => modifierTypes[r]);
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -3696,11 +3697,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
() => modifierTypes.SUPER_EXP_CHARM,
|
||||
() => modifierTypes.EXP_SHARE,
|
||||
)
|
||||
.setEventModifierRewardFuncs(
|
||||
() => modifierTypes.SHINY_CHARM,
|
||||
() => modifierTypes.ABILITY_CHARM,
|
||||
() => modifierTypes.CATCHING_CHARM,
|
||||
)
|
||||
.setEventModifierRewardFuncs(8)
|
||||
.setPartyMemberFunc(
|
||||
0,
|
||||
getRandomPartyMemberFunc(
|
||||
@ -3768,7 +3765,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
.setMixedBattleBgm("battle_rival")
|
||||
.setPartyTemplates(trainerPartyTemplates.RIVAL_2)
|
||||
.setModifierRewardFuncs(() => modifierTypes.EXP_SHARE)
|
||||
.setEventModifierRewardFuncs(() => modifierTypes.SHINY_CHARM)
|
||||
.setEventModifierRewardFuncs(25)
|
||||
.setPartyMemberFunc(
|
||||
0,
|
||||
getRandomPartyMemberFunc(
|
||||
@ -4077,7 +4074,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
getRandomPartyMemberFunc([Species.RAYQUAZA], TrainerSlot.TRAINER, true, p => {
|
||||
p.setBoss(true, 3);
|
||||
p.pokeball = PokeballType.MASTER_BALL;
|
||||
p.shiny = true;
|
||||
p.shiny = timedEventManager.getClassicTrainerShinyChance() === 0;
|
||||
p.variant = 1;
|
||||
}),
|
||||
)
|
||||
@ -4174,7 +4171,7 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
p.setBoss();
|
||||
p.generateAndPopulateMoveset();
|
||||
p.pokeball = PokeballType.MASTER_BALL;
|
||||
p.shiny = true;
|
||||
p.shiny = timedEventManager.getClassicTrainerShinyChance() === 0;
|
||||
p.variant = 1;
|
||||
p.formIndex = 1; // Mega Rayquaza
|
||||
p.generateName();
|
||||
|
@ -11,6 +11,7 @@ import { TerrainType, getTerrainName } from "./terrain";
|
||||
import i18next from "i18next";
|
||||
import { globalScene } from "#app/global-scene";
|
||||
import type { Arena } from "#app/field/arena";
|
||||
import { timedEventManager } from "#app/global-event-manager";
|
||||
|
||||
export class Weather {
|
||||
public weatherType: WeatherType;
|
||||
@ -405,8 +406,8 @@ export function getRandomWeatherType(arena: Arena): WeatherType {
|
||||
break;
|
||||
}
|
||||
|
||||
if (arena.biomeType === Biome.TOWN && globalScene.eventManager.isEventActive()) {
|
||||
globalScene.eventManager.getWeather()?.map(w => weatherPool.push(w));
|
||||
if (arena.biomeType === Biome.TOWN && timedEventManager.isEventActive()) {
|
||||
timedEventManager.getWeather()?.map(w => weatherPool.push(w));
|
||||
}
|
||||
|
||||
if (weatherPool.length > 1) {
|
||||
|
@ -263,6 +263,7 @@ import { Nature } from "#enums/nature";
|
||||
import { StatusEffect } from "#enums/status-effect";
|
||||
import { doShinySparkleAnim } from "#app/field/anims";
|
||||
import { MoveFlags } from "#enums/MoveFlags";
|
||||
import { timedEventManager } from "#app/global-event-manager";
|
||||
|
||||
export enum LearnMoveSituation {
|
||||
MISC,
|
||||
@ -3160,8 +3161,12 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
|
||||
const shinyThreshold = new Utils.NumberHolder(BASE_SHINY_CHANCE);
|
||||
if (thresholdOverride === undefined) {
|
||||
if (globalScene.eventManager.isEventActive()) {
|
||||
shinyThreshold.value *= globalScene.eventManager.getShinyMultiplier();
|
||||
if (timedEventManager.isEventActive()) {
|
||||
const tchance = timedEventManager.getClassicTrainerShinyChance();
|
||||
shinyThreshold.value *= timedEventManager.getShinyMultiplier();
|
||||
if (this.hasTrainer() && tchance > 0) {
|
||||
shinyThreshold.value = Math.max(tchance, shinyThreshold.value); // Choose the higher boost
|
||||
}
|
||||
}
|
||||
if (!this.hasTrainer()) {
|
||||
globalScene.applyModifiers(
|
||||
@ -3202,8 +3207,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
||||
if (thresholdOverride !== undefined && applyModifiersToOverride) {
|
||||
shinyThreshold.value = thresholdOverride;
|
||||
}
|
||||
if (globalScene.eventManager.isEventActive()) {
|
||||
shinyThreshold.value *= globalScene.eventManager.getShinyMultiplier();
|
||||
if (timedEventManager.isEventActive()) {
|
||||
shinyThreshold.value *= timedEventManager.getShinyMultiplier();
|
||||
}
|
||||
if (!this.hasTrainer()) {
|
||||
globalScene.applyModifiers(
|
||||
@ -6648,10 +6653,10 @@ export class PlayerPokemon extends Pokemon {
|
||||
amount,
|
||||
);
|
||||
const candyFriendshipMultiplier = globalScene.gameMode.isClassic
|
||||
? globalScene.eventManager.getClassicFriendshipMultiplier()
|
||||
? timedEventManager.getClassicFriendshipMultiplier()
|
||||
: 1;
|
||||
const fusionReduction = fusionStarterSpeciesId
|
||||
? globalScene.eventManager.areFusionsBoosted()
|
||||
? timedEventManager.areFusionsBoosted()
|
||||
? 1.5 // Divide candy gain for fusions by 1.5 during events
|
||||
: 2 // 2 for fusions outside events
|
||||
: 1; // 1 for non-fused mons
|
||||
|
@ -68,6 +68,19 @@ export class GameMode implements GameModeConfig {
|
||||
this.battleConfig = battleConfig || {};
|
||||
}
|
||||
|
||||
/**
|
||||
* Enables challenges if they are disabled and sets the specified challenge's value
|
||||
* @param challenge The challenge to set
|
||||
* @param value The value to give the challenge. Impact depends on the specific challenge
|
||||
*/
|
||||
setChallengeValue(challenge: Challenges, value: number) {
|
||||
if (!this.isChallenge) {
|
||||
this.isChallenge = true;
|
||||
this.challenges = allChallenges.map(c => copyChallenge(c));
|
||||
}
|
||||
this.challenges.filter((chal: Challenge) => chal.id === challenge).map((chal: Challenge) => (chal.value = value));
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function to see if a GameMode has a specific challenge type
|
||||
* @param challenge the Challenges it looks for
|
||||
|
3
src/global-event-manager.ts
Normal file
@ -0,0 +1,3 @@
|
||||
import { TimedEventManager } from "./timed-event-manager";
|
||||
|
||||
export const timedEventManager = new TimedEventManager();
|
@ -20,6 +20,7 @@ import { initStatsKeys } from "#app/ui/game-stats-ui-handler";
|
||||
import { initVouchers } from "#app/system/voucher";
|
||||
import { Biome } from "#enums/biome";
|
||||
import { initMysteryEncounters } from "#app/data/mystery-encounters/mystery-encounters";
|
||||
import { timedEventManager } from "./global-event-manager";
|
||||
|
||||
export class LoadingScene extends SceneBase {
|
||||
public static readonly KEY = "loading";
|
||||
@ -250,11 +251,13 @@ export class LoadingScene extends SceneBase {
|
||||
this.loadAtlas("statuses", "");
|
||||
this.loadAtlas("types", "");
|
||||
}
|
||||
const availableLangs = ["en", "de", "it", "fr", "ja", "ko", "es-ES", "pt-BR", "zh-CN", "zh-TW", "ca-ES"];
|
||||
if (timedEventManager.activeEventHasBanner()) {
|
||||
const availableLangs = timedEventManager.getEventBannerLangs();
|
||||
if (lang && availableLangs.includes(lang)) {
|
||||
this.loadImage(`pkmnday2025event-${lang}`, "events");
|
||||
this.loadImage(`${timedEventManager.getEventBannerFilename()}-${lang}`, "events");
|
||||
} else {
|
||||
this.loadImage("pkmnday2025event-en", "events");
|
||||
this.loadImage(`${timedEventManager.getEventBannerFilename()}-en`, "events");
|
||||
}
|
||||
}
|
||||
|
||||
this.loadAtlas("statuses", "");
|
||||
|
@ -127,6 +127,7 @@ import type { PermanentStat, TempBattleStat } from "#enums/stat";
|
||||
import { getStatKey, Stat, TEMP_BATTLE_STATS } from "#enums/stat";
|
||||
import { StatusEffect } from "#enums/status-effect";
|
||||
import i18next from "i18next";
|
||||
import { timedEventManager } from "#app/global-event-manager";
|
||||
|
||||
const outputModifierData = false;
|
||||
const useMaxWeightForOutput = false;
|
||||
@ -2655,7 +2656,7 @@ const modifierPool: ModifierPool = {
|
||||
if (globalScene.gameMode.isSplicedOnly) {
|
||||
return 4;
|
||||
}
|
||||
if (globalScene.gameMode.isClassic && globalScene.eventManager.areFusionsBoosted()) {
|
||||
if (globalScene.gameMode.isClassic && timedEventManager.areFusionsBoosted()) {
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
@ -2939,7 +2940,7 @@ const modifierPool: ModifierPool = {
|
||||
new WeightedModifierType(
|
||||
modifierTypes.DNA_SPLICERS,
|
||||
(party: Pokemon[]) =>
|
||||
!(globalScene.gameMode.isClassic && globalScene.eventManager.areFusionsBoosted()) &&
|
||||
!(globalScene.gameMode.isClassic && timedEventManager.areFusionsBoosted()) &&
|
||||
!globalScene.gameMode.isSplicedOnly &&
|
||||
party.filter(p => !p.fusionSpecies).length > 1
|
||||
? 24
|
||||
@ -3703,7 +3704,7 @@ export function getPartyLuckValue(party: Pokemon[]): number {
|
||||
);
|
||||
return DailyLuck.value;
|
||||
}
|
||||
const eventSpecies = globalScene.eventManager.getEventLuckBoostedSpecies();
|
||||
const eventSpecies = timedEventManager.getEventLuckBoostedSpecies();
|
||||
const luck = Phaser.Math.Clamp(
|
||||
party
|
||||
.map(p => (p.isAllowedInBattle() ? p.getLuck() + (eventSpecies.includes(p.species.speciesId) ? 1 : 0) : 0))
|
||||
@ -3711,7 +3712,7 @@ export function getPartyLuckValue(party: Pokemon[]): number {
|
||||
0,
|
||||
14,
|
||||
);
|
||||
return Math.min(globalScene.eventManager.getEventLuckBoost() + (luck ?? 0), 14);
|
||||
return Math.min(timedEventManager.getEventLuckBoost() + (luck ?? 0), 14);
|
||||
}
|
||||
|
||||
export function getLuckString(luckValue: number): string {
|
||||
|
@ -212,6 +212,8 @@ export class TitlePhase extends Phase {
|
||||
|
||||
const generateDaily = (seed: string) => {
|
||||
globalScene.gameMode = getGameMode(GameModes.DAILY);
|
||||
// Daily runs don't support all challenges yet (starter select restrictions aren't considered)
|
||||
globalScene.eventManager.startEventChallenges();
|
||||
|
||||
globalScene.setSeed(seed);
|
||||
globalScene.resetSeed(0);
|
||||
|
@ -11,6 +11,7 @@ import { TrainerSlot } from "#enums/trainer-slot";
|
||||
import { globalScene } from "#app/global-scene";
|
||||
import { Biome } from "#app/enums/biome";
|
||||
import { achvs } from "#app/system/achv";
|
||||
import { timedEventManager } from "#app/global-event-manager";
|
||||
|
||||
export class TrainerVictoryPhase extends BattlePhase {
|
||||
constructor() {
|
||||
@ -29,7 +30,7 @@ export class TrainerVictoryPhase extends BattlePhase {
|
||||
globalScene.unshiftPhase(new ModifierRewardPhase(modifierRewardFunc));
|
||||
}
|
||||
|
||||
if (globalScene.eventManager.isEventActive()) {
|
||||
if (timedEventManager.isEventActive()) {
|
||||
for (const rewardFunc of globalScene.currentBattle.trainer?.config.eventRewardFuncs!) {
|
||||
globalScene.unshiftPhase(new ModifierRewardPhase(rewardFunc));
|
||||
}
|
||||
@ -42,7 +43,7 @@ export class TrainerVictoryPhase extends BattlePhase {
|
||||
!globalScene.validateVoucher(vouchers[TrainerType[trainerType]]) &&
|
||||
globalScene.currentBattle.trainer?.config.isBoss
|
||||
) {
|
||||
if (globalScene.eventManager.getUpgradeUnlockedVouchers()) {
|
||||
if (timedEventManager.getUpgradeUnlockedVouchers()) {
|
||||
globalScene.unshiftPhase(
|
||||
new ModifierRewardPhase(
|
||||
[
|
||||
|
@ -170,8 +170,11 @@ export async function initI18n(): Promise<void> {
|
||||
i18next.use(processor);
|
||||
i18next.use(new KoreanPostpositionProcessor());
|
||||
await i18next.init({
|
||||
fallbackLng: "en",
|
||||
supportedLngs: ["en", "es-ES", "fr", "it", "de", "zh-CN", "zh-TW", "pt-BR", "ko", "ja", "ca-ES"],
|
||||
fallbackLng: {
|
||||
"es-MX": ["es-ES", "en"],
|
||||
default: ["en"],
|
||||
},
|
||||
supportedLngs: ["en", "es-ES", "es-MX", "fr", "it", "de", "zh-CN", "zh-TW", "pt-BR", "ko", "ja", "ca-ES"],
|
||||
backend: {
|
||||
loadPath(lng: string, [ns]: string[]) {
|
||||
let fileName: string;
|
||||
|
@ -916,6 +916,10 @@ export function setSetting(setting: string, value: number): boolean {
|
||||
label: "Español (ES)",
|
||||
handler: () => changeLocaleHandler("es-ES"),
|
||||
},
|
||||
{
|
||||
label: "Español (LATAM)",
|
||||
handler: () => changeLocaleHandler("es-MX"),
|
||||
},
|
||||
{
|
||||
label: "Italiano",
|
||||
handler: () => changeLocaleHandler("it"),
|
||||
|
@ -9,6 +9,7 @@ import { WeatherType } from "#enums/weather-type";
|
||||
import { CLASSIC_CANDY_FRIENDSHIP_MULTIPLIER } from "./data/balance/starters";
|
||||
import { MysteryEncounterType } from "./enums/mystery-encounter-type";
|
||||
import { MysteryEncounterTier } from "./enums/mystery-encounter-tier";
|
||||
import { Challenges } from "#enums/challenges";
|
||||
|
||||
export enum EventType {
|
||||
SHINY,
|
||||
@ -36,6 +37,18 @@ interface EventMysteryEncounterTier {
|
||||
disable?: boolean;
|
||||
}
|
||||
|
||||
interface EventWaveReward {
|
||||
wave: number;
|
||||
type: string;
|
||||
}
|
||||
|
||||
type EventMusicReplacement = [string, string];
|
||||
|
||||
interface EventChallenge {
|
||||
challenge: Challenges;
|
||||
value: number;
|
||||
}
|
||||
|
||||
interface TimedEvent extends EventBanner {
|
||||
name: string;
|
||||
eventType: EventType;
|
||||
@ -51,6 +64,10 @@ interface TimedEvent extends EventBanner {
|
||||
mysteryEncounterTierChanges?: EventMysteryEncounterTier[];
|
||||
luckBoostedSpecies?: Species[];
|
||||
boostFusions?: boolean; //MODIFIER REWORK PLEASE
|
||||
classicWaveRewards?: EventWaveReward[]; // Rival battle rewards
|
||||
trainerShinyChance?: number; // Odds over 65536 of trainer mon generating as shiny
|
||||
music?: EventMusicReplacement[];
|
||||
dailyRunChallenges?: EventChallenge[];
|
||||
}
|
||||
|
||||
const timedEvents: TimedEvent[] = [
|
||||
@ -61,7 +78,7 @@ const timedEvents: TimedEvent[] = [
|
||||
upgradeUnlockedVouchers: true,
|
||||
startDate: new Date(Date.UTC(2024, 11, 21, 0)),
|
||||
endDate: new Date(Date.UTC(2025, 0, 4, 0)),
|
||||
bannerKey: "winter_holidays2024-event-",
|
||||
bannerKey: "winter_holidays2024-event",
|
||||
scale: 0.21,
|
||||
availableLangs: ["en", "de", "it", "fr", "ja", "ko", "es-ES", "pt-BR", "zh-CN"],
|
||||
eventEncounters: [
|
||||
@ -104,6 +121,12 @@ const timedEvents: TimedEvent[] = [
|
||||
disable: true,
|
||||
},
|
||||
],
|
||||
classicWaveRewards: [
|
||||
{ wave: 8, type: "SHINY_CHARM" },
|
||||
{ wave: 8, type: "ABILITY_CHARM" },
|
||||
{ wave: 8, type: "CATCHING_CHARM" },
|
||||
{ wave: 25, type: "SHINY_CHARM" },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Year of the Snake",
|
||||
@ -111,7 +134,7 @@ const timedEvents: TimedEvent[] = [
|
||||
luckBoost: 1,
|
||||
startDate: new Date(Date.UTC(2025, 0, 29, 0)),
|
||||
endDate: new Date(Date.UTC(2025, 1, 3, 0)),
|
||||
bannerKey: "yearofthesnakeevent-",
|
||||
bannerKey: "yearofthesnakeevent",
|
||||
scale: 0.21,
|
||||
availableLangs: ["en", "de", "it", "fr", "ja", "ko", "es-ES", "pt-BR", "zh-CN"],
|
||||
eventEncounters: [
|
||||
@ -169,6 +192,12 @@ const timedEvents: TimedEvent[] = [
|
||||
Species.ROARING_MOON,
|
||||
Species.BLOODMOON_URSALUNA,
|
||||
],
|
||||
classicWaveRewards: [
|
||||
{ wave: 8, type: "SHINY_CHARM" },
|
||||
{ wave: 8, type: "ABILITY_CHARM" },
|
||||
{ wave: 8, type: "CATCHING_CHARM" },
|
||||
{ wave: 25, type: "SHINY_CHARM" },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Valentine",
|
||||
@ -177,7 +206,7 @@ const timedEvents: TimedEvent[] = [
|
||||
endDate: new Date(Date.UTC(2025, 1, 21)),
|
||||
boostFusions: true,
|
||||
shinyMultiplier: 2,
|
||||
bannerKey: "valentines2025event-",
|
||||
bannerKey: "valentines2025event",
|
||||
scale: 0.21,
|
||||
availableLangs: ["en", "de", "it", "fr", "ja", "ko", "es-ES", "pt-BR", "zh-CN"],
|
||||
eventEncounters: [
|
||||
@ -203,6 +232,12 @@ const timedEvents: TimedEvent[] = [
|
||||
{ species: Species.ENAMORUS },
|
||||
],
|
||||
luckBoostedSpecies: [Species.LUVDISC],
|
||||
classicWaveRewards: [
|
||||
{ wave: 8, type: "SHINY_CHARM" },
|
||||
{ wave: 8, type: "ABILITY_CHARM" },
|
||||
{ wave: 8, type: "CATCHING_CHARM" },
|
||||
{ wave: 25, type: "SHINY_CHARM" },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "PKMNDAY2025",
|
||||
@ -210,7 +245,7 @@ const timedEvents: TimedEvent[] = [
|
||||
startDate: new Date(Date.UTC(2025, 1, 27)),
|
||||
endDate: new Date(Date.UTC(2025, 2, 4)),
|
||||
classicFriendshipMultiplier: 4,
|
||||
bannerKey: "pkmnday2025event-",
|
||||
bannerKey: "pkmnday2025event",
|
||||
scale: 0.21,
|
||||
availableLangs: ["en", "de", "it", "fr", "ja", "ko", "es-ES", "pt-BR", "zh-CN"],
|
||||
eventEncounters: [
|
||||
@ -248,6 +283,32 @@ const timedEvents: TimedEvent[] = [
|
||||
Species.ZYGARDE,
|
||||
Species.ETERNAL_FLOETTE,
|
||||
],
|
||||
classicWaveRewards: [
|
||||
{ wave: 8, type: "SHINY_CHARM" },
|
||||
{ wave: 8, type: "ABILITY_CHARM" },
|
||||
{ wave: 8, type: "CATCHING_CHARM" },
|
||||
{ wave: 25, type: "SHINY_CHARM" },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "April Fools 2025",
|
||||
eventType: EventType.LUCK,
|
||||
startDate: new Date(Date.UTC(2025, 2, 31)),
|
||||
endDate: new Date(Date.UTC(2025, 3, 3)),
|
||||
bannerKey: "aprf25",
|
||||
scale: 0.21,
|
||||
availableLangs: ["en", "de", "it", "fr", "ja", "ko", "es-ES", "es-MX", "pt-BR", "zh-CN"],
|
||||
trainerShinyChance: 13107, // 13107/65536 = 1/5
|
||||
music: [
|
||||
["title", "title_afd"],
|
||||
["battle_rival_3", "battle_rival_3_afd"],
|
||||
],
|
||||
dailyRunChallenges: [
|
||||
{
|
||||
challenge: Challenges.INVERSE_BATTLE,
|
||||
value: 1,
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
@ -265,7 +326,7 @@ export class TimedEventManager {
|
||||
}
|
||||
|
||||
activeEventHasBanner(): boolean {
|
||||
const activeEvents = timedEvents.filter(te => this.isActive(te) && te.hasOwnProperty("bannerFilename"));
|
||||
const activeEvents = timedEvents.filter(te => this.isActive(te) && te.hasOwnProperty("bannerKey"));
|
||||
return activeEvents.length > 0;
|
||||
}
|
||||
|
||||
@ -283,6 +344,12 @@ export class TimedEventManager {
|
||||
return timedEvents.find((te: TimedEvent) => this.isActive(te))?.bannerKey ?? "";
|
||||
}
|
||||
|
||||
getEventBannerLangs(): string[] {
|
||||
const ret: string[] = [];
|
||||
ret.push(...timedEvents.find(te => this.isActive(te) && !isNullOrUndefined(te.availableLangs))?.availableLangs!);
|
||||
return ret;
|
||||
}
|
||||
|
||||
getEventEncounters(): EventEncounter[] {
|
||||
const ret: EventEncounter[] = [];
|
||||
timedEvents
|
||||
@ -417,6 +484,55 @@ export class TimedEventManager {
|
||||
areFusionsBoosted(): boolean {
|
||||
return timedEvents.some(te => this.isActive(te) && te.boostFusions);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all the modifier types associated with a certain wave during an event
|
||||
* @see EventWaveReward
|
||||
* @param wave the wave to check for associated rewards
|
||||
* @returns array of strings of the event modifier reward types
|
||||
*/
|
||||
getFixedBattleEventRewards(wave: number): string[] {
|
||||
const ret: string[] = [];
|
||||
timedEvents
|
||||
.filter(te => this.isActive(te) && !isNullOrUndefined(te.classicWaveRewards))
|
||||
.map(te => {
|
||||
ret.push(...te.classicWaveRewards!.filter(cwr => cwr.wave === wave).map(cwr => cwr.type));
|
||||
});
|
||||
return ret;
|
||||
}
|
||||
|
||||
// Gets the extra shiny chance for trainers due to event (odds/65536)
|
||||
getClassicTrainerShinyChance(): number {
|
||||
let ret = 0;
|
||||
const tsEvents = timedEvents.filter(te => this.isActive(te) && !isNullOrUndefined(te.trainerShinyChance));
|
||||
tsEvents.map(t => (ret += t.trainerShinyChance!));
|
||||
return ret;
|
||||
}
|
||||
|
||||
getEventBgmReplacement(bgm: string): string {
|
||||
let ret = bgm;
|
||||
timedEvents.map(te => {
|
||||
if (this.isActive(te) && !isNullOrUndefined(te.music)) {
|
||||
te.music.map(mr => {
|
||||
if (mr[0] === bgm) {
|
||||
console.log(`it is ${te.name} so instead of ${mr[0]} we play ${mr[1]}`);
|
||||
ret = mr[1];
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Activates any challenges on {@linkcode globalScene.gameMode} for the currently active event
|
||||
*/
|
||||
startEventChallenges(): void {
|
||||
const challenges = this.activeEvent()?.dailyRunChallenges;
|
||||
challenges?.forEach((eventChal: EventChallenge) =>
|
||||
globalScene.gameMode.setChallengeValue(eventChal.challenge, eventChal.value),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export class TimedEventDisplay extends Phaser.GameObjects.Container {
|
||||
@ -456,11 +572,12 @@ export class TimedEventDisplay extends Phaser.GameObjects.Container {
|
||||
let key = this.event.bannerKey;
|
||||
if (lang && this.event.availableLangs && this.event.availableLangs.length > 0) {
|
||||
if (this.event.availableLangs.includes(lang)) {
|
||||
key += lang;
|
||||
key += "-" + lang;
|
||||
} else {
|
||||
key += "en";
|
||||
key += "-en";
|
||||
}
|
||||
}
|
||||
console.log(key);
|
||||
console.log(this.event.bannerKey);
|
||||
const padding = 5;
|
||||
const showTimer = this.event.eventType !== EventType.NO_TIMER_DISPLAY;
|
||||
|
@ -33,6 +33,12 @@ export default class SettingsDisplayUiHandler extends AbstractSettingsUiHandler
|
||||
label: "Español (ES)",
|
||||
};
|
||||
break;
|
||||
case "es-MX":
|
||||
this.settings[languageIndex].options[0] = {
|
||||
value: "Español (LATAM)",
|
||||
label: "Español (LATAM)",
|
||||
};
|
||||
break;
|
||||
case "it":
|
||||
this.settings[languageIndex].options[0] = {
|
||||
value: "Italiano",
|
||||
|
@ -117,6 +117,10 @@ const languageSettings: { [key: string]: LanguageSetting } = {
|
||||
starterInfoTextSize: "52px",
|
||||
instructionTextSize: "35px",
|
||||
},
|
||||
"es-MX": {
|
||||
starterInfoTextSize: "52px",
|
||||
instructionTextSize: "35px",
|
||||
},
|
||||
fr: {
|
||||
starterInfoTextSize: "54px",
|
||||
instructionTextSize: "38px",
|
||||
|
@ -11,6 +11,7 @@ import { globalScene } from "#app/global-scene";
|
||||
import type { Species } from "#enums/species";
|
||||
import { getPokemonSpecies } from "#app/data/pokemon-species";
|
||||
import { PlayerGender } from "#enums/player-gender";
|
||||
import { timedEventManager } from "#app/global-event-manager";
|
||||
|
||||
export default class TitleUiHandler extends OptionSelectUiHandler {
|
||||
/** If the stats can not be retrieved, use this fallback value */
|
||||
@ -43,8 +44,8 @@ export default class TitleUiHandler extends OptionSelectUiHandler {
|
||||
logo.setOrigin(0.5, 0);
|
||||
this.titleContainer.add(logo);
|
||||
|
||||
if (globalScene.eventManager.isEventActive()) {
|
||||
this.eventDisplay = new TimedEventDisplay(0, 0, globalScene.eventManager.activeEvent());
|
||||
if (timedEventManager.isEventActive()) {
|
||||
this.eventDisplay = new TimedEventDisplay(0, 0, timedEventManager.activeEvent());
|
||||
this.eventDisplay.setup();
|
||||
this.titleContainer.add(this.eventDisplay);
|
||||
}
|
||||
@ -142,7 +143,7 @@ export default class TitleUiHandler extends OptionSelectUiHandler {
|
||||
|
||||
const ui = this.getUi();
|
||||
|
||||
if (globalScene.eventManager.isEventActive()) {
|
||||
if (timedEventManager.isEventActive()) {
|
||||
this.eventDisplay.setWidth(globalScene.scaledCanvas.width - this.optionSelectBg.width - this.optionSelectBg.x);
|
||||
this.eventDisplay.show();
|
||||
}
|
||||
|
@ -456,6 +456,7 @@ export function hasAllLocalizedSprites(lang?: string): boolean {
|
||||
|
||||
switch (lang) {
|
||||
case "es-ES":
|
||||
case "es-MX":
|
||||
case "fr":
|
||||
case "de":
|
||||
case "it":
|
||||
|
@ -114,7 +114,7 @@ describe("The Strong Stuff - Mystery Encounter", () => {
|
||||
bossSegments: 5,
|
||||
shiny: false,
|
||||
customPokemonData: new CustomPokemonData({ spriteScale: 1.25 }),
|
||||
nature: Nature.BOLD,
|
||||
nature: Nature.HARDY,
|
||||
moveSet: [Moves.INFESTATION, Moves.SALT_CURE, Moves.GASTRO_ACID, Moves.HEAL_ORDER],
|
||||
modifierConfigs: expect.any(Array),
|
||||
tags: [BattlerTagType.MYSTERY_ENCOUNTER_POST_SUMMON],
|
||||
@ -198,7 +198,7 @@ describe("The Strong Stuff - Mystery Encounter", () => {
|
||||
expect(scene.getCurrentPhase()?.constructor.name).toBe(CommandPhase.name);
|
||||
expect(enemyField.length).toBe(1);
|
||||
expect(enemyField[0].species.speciesId).toBe(Species.SHUCKLE);
|
||||
expect(enemyField[0].summonData.statStages).toEqual([0, 2, 0, 2, 0, 0, 0]);
|
||||
expect(enemyField[0].summonData.statStages).toEqual([0, 1, 0, 1, 0, 0, 0]);
|
||||
const shuckleItems = enemyField[0].getHeldItems();
|
||||
expect(shuckleItems.length).toBe(5);
|
||||
expect(shuckleItems.find(m => m instanceof BerryModifier && m.berryType === BerryType.SITRUS)?.stackCount).toBe(
|
||||
|
@ -1,30 +1,37 @@
|
||||
import type BattleScene from "#app/battle-scene";
|
||||
import * as BattleAnims from "#app/data/battle-anims";
|
||||
import { TrashToTreasureEncounter } from "#app/data/mystery-encounters/encounters/trash-to-treasure-encounter";
|
||||
import * as MysteryEncounters from "#app/data/mystery-encounters/mystery-encounters";
|
||||
import * as EncounterPhaseUtils from "#app/data/mystery-encounters/utils/encounter-phase-utils";
|
||||
import {
|
||||
type EnemyPartyConfig,
|
||||
type EnemyPokemonConfig,
|
||||
generateModifierType,
|
||||
} from "#app/data/mystery-encounters/utils/encounter-phase-utils";
|
||||
import { getPokemonSpecies } from "#app/data/pokemon-species";
|
||||
import { Biome } from "#app/enums/biome";
|
||||
import { MysteryEncounterType } from "#app/enums/mystery-encounter-type";
|
||||
import { Species } from "#app/enums/species";
|
||||
import GameManager from "#test/testUtils/gameManager";
|
||||
import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { getPokemonSpecies } from "#app/data/pokemon-species";
|
||||
import * as BattleAnims from "#app/data/battle-anims";
|
||||
import * as EncounterPhaseUtils from "#app/data/mystery-encounters/utils/encounter-phase-utils";
|
||||
import { PokemonMove } from "#app/field/pokemon";
|
||||
import { HealShopCostModifier, HitHealModifier, TurnHealModifier } from "#app/modifier/modifier";
|
||||
import { ModifierTier } from "#app/modifier/modifier-tier";
|
||||
import { modifierTypes, type PokemonHeldItemModifierType } from "#app/modifier/modifier-type";
|
||||
import { CommandPhase } from "#app/phases/command-phase";
|
||||
import { MovePhase } from "#app/phases/move-phase";
|
||||
import { SelectModifierPhase } from "#app/phases/select-modifier-phase";
|
||||
import ModifierSelectUiHandler from "#app/ui/modifier-select-ui-handler";
|
||||
import { Mode } from "#app/ui/ui";
|
||||
import * as Utils from "#app/utils";
|
||||
import { Moves } from "#enums/moves";
|
||||
import { MysteryEncounterOptionMode } from "#enums/mystery-encounter-option-mode";
|
||||
import { MysteryEncounterTier } from "#enums/mystery-encounter-tier";
|
||||
import {
|
||||
runMysteryEncounterToEnd,
|
||||
skipBattleRunMysteryEncounterRewardsPhase,
|
||||
} from "#test/mystery-encounter/encounter-test-utils";
|
||||
import { Moves } from "#enums/moves";
|
||||
import type BattleScene from "#app/battle-scene";
|
||||
import { PokemonMove } from "#app/field/pokemon";
|
||||
import { Mode } from "#app/ui/ui";
|
||||
import ModifierSelectUiHandler from "#app/ui/modifier-select-ui-handler";
|
||||
import { HitHealModifier, HealShopCostModifier, TurnHealModifier } from "#app/modifier/modifier";
|
||||
import { MysteryEncounterOptionMode } from "#enums/mystery-encounter-option-mode";
|
||||
import { MysteryEncounterTier } from "#enums/mystery-encounter-tier";
|
||||
import GameManager from "#test/testUtils/gameManager";
|
||||
import { initSceneWithoutEncounterPhase } from "#test/testUtils/gameManagerUtils";
|
||||
import { TrashToTreasureEncounter } from "#app/data/mystery-encounters/encounters/trash-to-treasure-encounter";
|
||||
import { ModifierTier } from "#app/modifier/modifier-tier";
|
||||
import { SelectModifierPhase } from "#app/phases/select-modifier-phase";
|
||||
import { CommandPhase } from "#app/phases/command-phase";
|
||||
import { MovePhase } from "#app/phases/move-phase";
|
||||
import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
|
||||
const namespace = "mysteryEncounters/trashToTreasure";
|
||||
const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA];
|
||||
@ -73,6 +80,7 @@ describe("Trash to Treasure - Mystery Encounter", () => {
|
||||
});
|
||||
|
||||
it("should initialize fully", async () => {
|
||||
vi.spyOn(Utils, "randSeedInt").mockImplementation((range, min = 0) => min + range - 1);
|
||||
initSceneWithoutEncounterPhase(scene, defaultParty);
|
||||
scene.currentBattle.mysteryEncounter = TrashToTreasureEncounter;
|
||||
const moveInitSpy = vi.spyOn(BattleAnims, "initMoveAnim");
|
||||
@ -85,22 +93,61 @@ describe("Trash to Treasure - Mystery Encounter", () => {
|
||||
TrashToTreasureEncounter.populateDialogueTokensFromRequirements();
|
||||
const onInitResult = onInit!();
|
||||
|
||||
expect(TrashToTreasureEncounter.enemyPartyConfigs).toEqual([
|
||||
{
|
||||
levelAdditiveModifier: 0.5,
|
||||
disableSwitch: true,
|
||||
pokemonConfigs: [
|
||||
{
|
||||
species: getPokemonSpecies(Species.GARBODOR),
|
||||
const bossSpecies = getPokemonSpecies(Species.GARBODOR);
|
||||
const pokemonConfig: EnemyPokemonConfig = {
|
||||
species: bossSpecies,
|
||||
isBoss: true,
|
||||
shiny: false,
|
||||
formIndex: 1,
|
||||
bossSegmentModifier: 1,
|
||||
moveSet: [Moves.PAYBACK, Moves.GUNK_SHOT, Moves.STOMPING_TANTRUM, Moves.DRAIN_PUNCH],
|
||||
shiny: false, // Shiny lock because of custom intro sprite
|
||||
formIndex: 1, // Gmax
|
||||
bossSegmentModifier: 1, // +1 Segment from normal
|
||||
moveSet: [Moves.GUNK_SHOT, Moves.STOMPING_TANTRUM, Moves.HAMMER_ARM, Moves.PAYBACK],
|
||||
modifierConfigs: [
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.BERRY) as PokemonHeldItemModifierType,
|
||||
},
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.BERRY) as PokemonHeldItemModifierType,
|
||||
},
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.BERRY) as PokemonHeldItemModifierType,
|
||||
},
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.BERRY) as PokemonHeldItemModifierType,
|
||||
},
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.BASE_STAT_BOOSTER) as PokemonHeldItemModifierType,
|
||||
},
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.BASE_STAT_BOOSTER) as PokemonHeldItemModifierType,
|
||||
},
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.TOXIC_ORB) as PokemonHeldItemModifierType,
|
||||
stackCount: Utils.randSeedInt(2, 0),
|
||||
},
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.SOOTHE_BELL) as PokemonHeldItemModifierType,
|
||||
stackCount: Utils.randSeedInt(2, 1),
|
||||
},
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.LUCKY_EGG) as PokemonHeldItemModifierType,
|
||||
stackCount: Utils.randSeedInt(3, 1),
|
||||
},
|
||||
{
|
||||
modifier: generateModifierType(modifierTypes.GOLDEN_EGG) as PokemonHeldItemModifierType,
|
||||
stackCount: Utils.randSeedInt(2, 0),
|
||||
},
|
||||
],
|
||||
},
|
||||
]);
|
||||
};
|
||||
const config: EnemyPartyConfig = {
|
||||
levelAdditiveModifier: 0.5,
|
||||
pokemonConfigs: [pokemonConfig],
|
||||
disableSwitch: true,
|
||||
};
|
||||
const enemyPartyConfigs = [config];
|
||||
|
||||
expect(JSON.stringify(TrashToTreasureEncounter.enemyPartyConfigs, undefined, 2)).toEqual(
|
||||
JSON.stringify(enemyPartyConfigs, undefined, 2),
|
||||
);
|
||||
await vi.waitFor(() => expect(moveInitSpy).toHaveBeenCalled());
|
||||
await vi.waitFor(() => expect(moveLoadSpy).toHaveBeenCalled());
|
||||
expect(onInitResult).toBe(true);
|
||||
@ -122,7 +169,7 @@ describe("Trash to Treasure - Mystery Encounter", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("should give 2 Leftovers, 2 Shell Bell, and Black Sludge", async () => {
|
||||
it("should give 2 Leftovers, 1 Shell Bell, and Black Sludge", async () => {
|
||||
await game.runToMysteryEncounter(MysteryEncounterType.TRASH_TO_TREASURE, defaultParty);
|
||||
await runMysteryEncounterToEnd(game, 1);
|
||||
await game.phaseInterceptor.to(SelectModifierPhase, false);
|
||||
@ -134,7 +181,7 @@ describe("Trash to Treasure - Mystery Encounter", () => {
|
||||
|
||||
const shellBell = scene.findModifier(m => m instanceof HitHealModifier) as HitHealModifier;
|
||||
expect(shellBell).toBeDefined();
|
||||
expect(shellBell?.stackCount).toBe(2);
|
||||
expect(shellBell?.stackCount).toBe(1);
|
||||
|
||||
const blackSludge = scene.findModifier(m => m instanceof HealShopCostModifier) as HealShopCostModifier;
|
||||
expect(blackSludge).toBeDefined();
|
||||
@ -178,17 +225,17 @@ describe("Trash to Treasure - Mystery Encounter", () => {
|
||||
expect(enemyField.length).toBe(1);
|
||||
expect(enemyField[0].species.speciesId).toBe(Species.GARBODOR);
|
||||
expect(enemyField[0].moveset).toEqual([
|
||||
new PokemonMove(Moves.PAYBACK),
|
||||
new PokemonMove(Moves.GUNK_SHOT),
|
||||
new PokemonMove(Moves.STOMPING_TANTRUM),
|
||||
new PokemonMove(Moves.DRAIN_PUNCH),
|
||||
new PokemonMove(Moves.HAMMER_ARM),
|
||||
new PokemonMove(Moves.PAYBACK),
|
||||
]);
|
||||
|
||||
// Should have used moves pre-battle
|
||||
const movePhases = phaseSpy.mock.calls.filter(p => p[0] instanceof MovePhase).map(p => p[0]);
|
||||
expect(movePhases.length).toBe(2);
|
||||
expect(movePhases.filter(p => (p as MovePhase).move.moveId === Moves.TOXIC).length).toBe(1);
|
||||
expect(movePhases.filter(p => (p as MovePhase).move.moveId === Moves.AMNESIA).length).toBe(1);
|
||||
expect(movePhases.filter(p => (p as MovePhase).move.moveId === Moves.STOCKPILE).length).toBe(1);
|
||||
});
|
||||
|
||||
it("should have 2 Rogue, 1 Ultra, 1 Great in rewards", async () => {
|
||||
|