This commit is contained in:
takeyourt1me 2024-04-30 15:28:54 -07:00
commit a82f5a3fcc
52 changed files with 560 additions and 895 deletions

13
package-lock.json generated
View File

@ -1,16 +1,17 @@
{
"name": "pokemon-rogue-battle",
"version": "1.0.1",
"version": "1.0.4",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "pokemon-rogue-battle",
"version": "1.0.1",
"version": "1.0.4",
"dependencies": {
"@material/material-color-utilities": "^0.2.7",
"crypto-js": "^4.2.0",
"i18next": "^23.11.1",
"i18next-browser-languagedetector": "^7.2.1",
"json-stable-stringify": "^1.1.0",
"phaser": "^3.70.0",
"phaser3-rex-plugins": "^1.1.84"
@ -2772,6 +2773,14 @@
"@babel/runtime": "^7.23.2"
}
},
"node_modules/i18next-browser-languagedetector": {
"version": "7.2.1",
"resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.2.1.tgz",
"integrity": "sha512-h/pM34bcH6tbz8WgGXcmWauNpQupCGr25XPp9cZwZInR9XHSjIFDYp1SIok7zSPsTOMxdvuLyu86V+g2Kycnfw==",
"dependencies": {
"@babel/runtime": "^7.23.2"
}
},
"node_modules/i18next-http-backend": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-2.5.0.tgz",

View File

@ -31,6 +31,7 @@
"@material/material-color-utilities": "^0.2.7",
"crypto-js": "^4.2.0",
"i18next": "^23.11.1",
"i18next-browser-languagedetector": "^7.2.1",
"json-stable-stringify": "^1.1.0",
"phaser": "^3.70.0",
"phaser3-rex-plugins": "^1.1.84"

View File

@ -4,30 +4,30 @@
"image": "676-dandy.png",
"format": "RGBA8888",
"size": {
"w": 72,
"h": 72
"w": 66,
"h": 66
},
"scale": 1,
"scale": 0.333,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 62,
"h": 72
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 62,
"h": 72
"x": 20,
"y": 14,
"w": 56,
"h": 66
},
"frame": {
"x": 0,
"y": 0,
"w": 62,
"h": 72
"w": 56,
"h": 66
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:9a72775f436bbda574bf3721630310fb:f01538e7a19ca3d0d2fea48cd27d8a4c:b5a287256e260744fe6660dc2ceefd11$"
"smartupdate": "$TexturePacker:SmartUpdate:30c2972a226f8e360e323bea40a8005e:232a9bbcc4dba00a033204f1ec06cffd:b5a287256e260744fe6660dc2ceefd11$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 711 B

View File

@ -4,30 +4,30 @@
"image": "676-debutante.png",
"format": "RGBA8888",
"size": {
"w": 68,
"h": 68
"w": 62,
"h": 62
},
"scale": 1,
"scale": 0.333,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 57,
"h": 68
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 57,
"h": 68
"x": 25,
"y": 18,
"w": 51,
"h": 62
},
"frame": {
"x": 0,
"y": 0,
"w": 57,
"h": 68
"w": 51,
"h": 62
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:6d038d8d188d6e545741353c2dd5b812:6f39eb82deb32d251df708f5d4edc9f1:bf2f862a1c8881133f9f3ffbf44602fa$"
"smartupdate": "$TexturePacker:SmartUpdate:5a68081e37dfebc3935ecf4a4fbee3ad:71cbee6966c08512b0617eba3ce34a49:bf2f862a1c8881133f9f3ffbf44602fa$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 775 B

View File

@ -4,30 +4,30 @@
"image": "676-diamond.png",
"format": "RGBA8888",
"size": {
"w": 74,
"h": 74
"w": 68,
"h": 68
},
"scale": 1,
"scale": 0.333,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 51,
"h": 74
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 51,
"h": 74
"x": 27,
"y": 12,
"w": 45,
"h": 68
},
"frame": {
"x": 0,
"y": 0,
"w": 51,
"h": 74
"w": 45,
"h": 68
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:6e2189160ebb9fff02e9a051ee296d91:47037a1746645a551e31781cb8262e1f:88c467fc09249b0d2f579d44eacd528d$"
"smartupdate": "$TexturePacker:SmartUpdate:2d32af44d56592301808b561e6fa22f6:c70b6710f9c7ebb5268979a777193386:88c467fc09249b0d2f579d44eacd528d$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 693 B

View File

@ -4,30 +4,30 @@
"image": "676-heart.png",
"format": "RGBA8888",
"size": {
"w": 71,
"h": 71
"w": 65,
"h": 65
},
"scale": 1,
"scale": 0.333,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 52,
"h": 71
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 52,
"h": 71
"x": 26,
"y": 15,
"w": 46,
"h": 65
},
"frame": {
"x": 0,
"y": 0,
"w": 52,
"h": 71
"w": 46,
"h": 65
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:bd54cfc49b95a12709696441044b115c:dce25f0e6474cad17709f18c96ffb3e5:e11d4dd16bff2ef69bc5ca683c44ca7c$"
"smartupdate": "$TexturePacker:SmartUpdate:e936d451ba0b36434d6444cb1b80f4d9:0b0d0b49e11fcc790a20130e3ab18ca5:e11d4dd16bff2ef69bc5ca683c44ca7c$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 717 B

View File

@ -4,30 +4,30 @@
"image": "676-kabuki.png",
"format": "RGBA8888",
"size": {
"w": 71,
"h": 71
"w": 65,
"h": 65
},
"scale": 1,
"scale": 0.333,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 55,
"h": 71
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 55,
"h": 71
"x": 23,
"y": 15,
"w": 49,
"h": 65
},
"frame": {
"x": 0,
"y": 0,
"w": 55,
"h": 71
"w": 49,
"h": 65
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:5bd5ad9678c59b2b1d85a6af103ba1ba:2f6c7f2792f64728b478333fc2c65138:c3cad56aa65d2ee971ceebc435a14ee6$"
"smartupdate": "$TexturePacker:SmartUpdate:517d96cd6baa5b7616a51e8c4fed7a55:0a0f239ab3df60459410fab5eba8a4e6:c3cad56aa65d2ee971ceebc435a14ee6$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 731 B

View File

@ -4,30 +4,30 @@
"image": "676-la-reine.png",
"format": "RGBA8888",
"size": {
"w": 69,
"h": 69
"w": 63,
"h": 63
},
"scale": 1,
"scale": 0.333,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 54,
"h": 69
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 54,
"h": 69
"x": 24,
"y": 17,
"w": 48,
"h": 63
},
"frame": {
"x": 0,
"y": 0,
"w": 54,
"h": 69
"w": 48,
"h": 63
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:e01297ffc2dd40460e87b64750997ca6:3261fa54b4c9574937d670de782ca3e8:b99821e87dffda3297dd25a224a9029f$"
"smartupdate": "$TexturePacker:SmartUpdate:e2179e3c9dfa079f84af302283187a80:518e57f1e0614d1aedad1d9826def3d4:b99821e87dffda3297dd25a224a9029f$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 660 B

View File

@ -4,30 +4,30 @@
"image": "676-matron.png",
"format": "RGBA8888",
"size": {
"w": 68,
"h": 68
"w": 62,
"h": 62
},
"scale": 1,
"scale": 0.333,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 53,
"h": 68
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 53,
"h": 68
"x": 26,
"y": 18,
"w": 47,
"h": 62
},
"frame": {
"x": 0,
"y": 0,
"w": 53,
"h": 68
"w": 47,
"h": 62
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:262f28877dc9ef9e7920282c4b36b8dd:18b55adc9c377d1b24d6b236e1f39177:020798583d07c479020bb0af34cf8bb6$"
"smartupdate": "$TexturePacker:SmartUpdate:6c9b45763eb4fedb5ec7099762f23606:884e9813686e91cf2a2cd9f51652a875:020798583d07c479020bb0af34cf8bb6$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 734 B

View File

@ -4,30 +4,30 @@
"image": "676-pharaoh.png",
"format": "RGBA8888",
"size": {
"w": 70,
"h": 70
"w": 64,
"h": 64
},
"scale": 1,
"scale": 0.333,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 53,
"h": 70
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 53,
"h": 70
"x": 25,
"y": 16,
"w": 47,
"h": 64
},
"frame": {
"x": 0,
"y": 0,
"w": 53,
"h": 70
"w": 47,
"h": 64
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:a5d56fc494b2194036a8d6d1d876a296:6260eeb9aa48a1047c8ec12842ac28c6:904b7ab6f57249c96beea4b5f72deb53$"
"smartupdate": "$TexturePacker:SmartUpdate:5143f43786377eae745a9355e5e1cc24:158aa35a349be4cf7c56820170aa4546:904b7ab6f57249c96beea4b5f72deb53$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 726 B

View File

@ -4,30 +4,30 @@
"image": "676-star.png",
"format": "RGBA8888",
"size": {
"w": 72,
"h": 72
"w": 66,
"h": 66
},
"scale": 1,
"scale": 0.333,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 54,
"h": 72
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 54,
"h": 72
"x": 24,
"y": 14,
"w": 48,
"h": 66
},
"frame": {
"x": 0,
"y": 0,
"w": 54,
"h": 72
"w": 48,
"h": 66
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:6be66775c485bf44d69f7cd44e346324:c9e3d3db02b6ea0720a20b9bbd159d79:dd7fedf66b493b0bbdef5d25e0041dd8$"
"smartupdate": "$TexturePacker:SmartUpdate:d9af00245cb6498c9dec7508ed563454:12f19bad174b64678e8b8be8455f2b5a:dd7fedf66b493b0bbdef5d25e0041dd8$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 734 B

View File

@ -4,219 +4,30 @@
"image": "678.png",
"format": "RGBA8888",
"size": {
"w": 157,
"h": 157
"w": 55,
"h": 55
},
"scale": 1,
"scale": 0.333,
"frames": [
{
"filename": "0005.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 25,
"y": 16,
"w": 54,
"h": 60
},
"frame": {
"x": 0,
"y": 0,
"w": 54,
"h": 60
}
},
{
"filename": "0007.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 25,
"y": 16,
"w": 54,
"h": 60
},
"frame": {
"x": 0,
"y": 0,
"w": 54,
"h": 60
}
},
{
"filename": "0004.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 25,
"y": 15,
"w": 53,
"h": 61
},
"frame": {
"x": 54,
"y": 0,
"w": 53,
"h": 61
}
},
{
"filename": "0008.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 25,
"y": 15,
"w": 53,
"h": 61
},
"frame": {
"x": 54,
"y": 0,
"w": 53,
"h": 61
}
},
{
"filename": "0003.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 24,
"y": 15,
"w": 52,
"h": 61
},
"frame": {
"x": 0,
"y": 60,
"w": 52,
"h": 61
}
},
{
"filename": "0009.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 24,
"y": 15,
"w": 52,
"h": 61
},
"frame": {
"x": 0,
"y": 60,
"w": 52,
"h": 61
}
},
{
"filename": "0006.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 26,
"y": 16,
"w": 54,
"h": 60
},
"frame": {
"x": 52,
"y": 61,
"w": 54,
"h": 60
}
},
{
"filename": "0002.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 24,
"y": 17,
"w": 51,
"h": 59
},
"frame": {
"x": 106,
"y": 61,
"w": 51,
"h": 59
}
},
{
"filename": "0010.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 24,
"y": 17,
"w": 51,
"h": 59
},
"frame": {
"x": 106,
"y": 61,
"w": 51,
"h": 59
}
},
{
"filename": "0001.png",
"rotated": false,
"trimmed": true,
"trimmed": false,
"sourceSize": {
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 23,
"y": 19,
"w": 50,
"h": 57
"x": 25,
"y": 20,
"w": 46,
"h": 55
},
"frame": {
"x": 107,
"x": 0,
"y": 0,
"w": 50,
"h": 57
"w": 46,
"h": 55
}
}
]
@ -225,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:ab77ad452685ab677c7e5e70a386e880:27bb9b07316cb5c401e67e15e2b0f06a:887aa14e4a3a3e9141c6ae460f968db1$"
"smartupdate": "$TexturePacker:SmartUpdate:7b46b2656390e5ddac94370837e7cdaa:7f76286d5acb65066eff0c2532fa7fea:887aa14e4a3a3e9141c6ae460f968db1$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 589 B

View File

@ -4,30 +4,30 @@
"image": "676-dandy.png",
"format": "RGBA8888",
"size": {
"w": 71,
"h": 71
"w": 65,
"h": 65
},
"scale": 1,
"scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 56,
"h": 71
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 56,
"h": 71
"x": 22,
"y": 15,
"w": 50,
"h": 65
},
"frame": {
"x": 0,
"y": 0,
"w": 56,
"h": 71
"w": 50,
"h": 65
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:cd88917bff3fae3d6ff808096f539d70:17a1912fd81d23ce8a7209e27ad3e9ed:b5a287256e260744fe6660dc2ceefd11$"
"smartupdate": "$TexturePacker:SmartUpdate:30639f5b87709c77f1b970be4078abf4:7b6183e776852f811a1e5c3fa15805fc:b5a287256e260744fe6660dc2ceefd11$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 759 B

View File

@ -4,30 +4,30 @@
"image": "676-debutante.png",
"format": "RGBA8888",
"size": {
"w": 67,
"h": 67
"w": 61,
"h": 61
},
"scale": 1,
"scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 56,
"h": 67
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 56,
"h": 67
"x": 20,
"y": 19,
"w": 50,
"h": 61
},
"frame": {
"x": 0,
"y": 0,
"w": 56,
"h": 67
"w": 50,
"h": 61
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:68f3a2720b7b1e5e59f628f021cac698:07d06d321fff31976e1b993edb972e4f:bf2f862a1c8881133f9f3ffbf44602fa$"
"smartupdate": "$TexturePacker:SmartUpdate:2ccaadba59ae7a3f23287601b725067d:18ae045d433354fd8b461b528bba113d:bf2f862a1c8881133f9f3ffbf44602fa$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 794 B

View File

@ -4,30 +4,30 @@
"image": "676-diamond.png",
"format": "RGBA8888",
"size": {
"w": 74,
"h": 74
"w": 68,
"h": 68
},
"scale": 1,
"scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 53,
"h": 74
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 53,
"h": 74
"x": 24,
"y": 12,
"w": 47,
"h": 68
},
"frame": {
"x": 0,
"y": 0,
"w": 53,
"h": 74
"w": 47,
"h": 68
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:e054ccb4d021c87a6a02c6728403d87a:c7e104da9393ec52b9e6d37f92fc20d9:88c467fc09249b0d2f579d44eacd528d$"
"smartupdate": "$TexturePacker:SmartUpdate:bd55e138e32873b99b7a1a2e237d5278:befb394d45c46c22e2711f4c6d5d9623:88c467fc09249b0d2f579d44eacd528d$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 806 B

View File

@ -4,30 +4,30 @@
"image": "676-heart.png",
"format": "RGBA8888",
"size": {
"w": 72,
"h": 72
"w": 66,
"h": 66
},
"scale": 1,
"scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 54,
"h": 72
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 54,
"h": 72
"x": 24,
"y": 14,
"w": 48,
"h": 66
},
"frame": {
"x": 0,
"y": 0,
"w": 54,
"h": 72
"w": 48,
"h": 66
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:adb921bf32ae497738fbecc12e2aab07:421a40542b16cdb2cc154c85e963b40d:e11d4dd16bff2ef69bc5ca683c44ca7c$"
"smartupdate": "$TexturePacker:SmartUpdate:6a000209d8789ed27cdd0700711ccc27:75157608bd339b63c9a7ce68e259b3b7:e11d4dd16bff2ef69bc5ca683c44ca7c$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 814 B

View File

@ -4,30 +4,30 @@
"image": "676-kabuki.png",
"format": "RGBA8888",
"size": {
"w": 70,
"h": 70
"w": 64,
"h": 64
},
"scale": 1,
"scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 58,
"h": 70
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 58,
"h": 70
"x": 22,
"y": 16,
"w": 52,
"h": 64
},
"frame": {
"x": 0,
"y": 0,
"w": 58,
"h": 70
"w": 52,
"h": 64
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:ef8ecfc1b406aa668e3f8daf0dfbaae7:08eecd31f557298e1570ec3490acffe2:c3cad56aa65d2ee971ceebc435a14ee6$"
"smartupdate": "$TexturePacker:SmartUpdate:cd44f74e9b1dc4a581bd72f235552344:1404c36e03543b4eb1d1a4d5916a6652:c3cad56aa65d2ee971ceebc435a14ee6$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 837 B

View File

@ -4,30 +4,30 @@
"image": "676-la-reine.png",
"format": "RGBA8888",
"size": {
"w": 69,
"h": 69
"w": 63,
"h": 63
},
"scale": 1,
"scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 55,
"h": 69
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 55,
"h": 69
"x": 23,
"y": 17,
"w": 49,
"h": 63
},
"frame": {
"x": 0,
"y": 0,
"w": 55,
"h": 69
"w": 49,
"h": 63
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:6ba780e3e4c772966f8fa209410a9370:c56ae957d7acb10c7373b842af3a8786:b99821e87dffda3297dd25a224a9029f$"
"smartupdate": "$TexturePacker:SmartUpdate:1982df9d4acf87f005bb76829bd78a65:e3590ee437367a91742856b3887339a8:b99821e87dffda3297dd25a224a9029f$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 711 B

View File

@ -4,30 +4,30 @@
"image": "676-matron.png",
"format": "RGBA8888",
"size": {
"w": 68,
"h": 68
"w": 62,
"h": 62
},
"scale": 1,
"scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 52,
"h": 68
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 52,
"h": 68
"x": 23,
"y": 18,
"w": 46,
"h": 62
},
"frame": {
"x": 0,
"y": 0,
"w": 52,
"h": 68
"w": 46,
"h": 62
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:89ab717076c514df8295db07981b18e9:72a9977db421d061829c639e3b50a617:020798583d07c479020bb0af34cf8bb6$"
"smartupdate": "$TexturePacker:SmartUpdate:e2bcb6e27807980dfb68c17e65a7e8bd:d2409a3631a4a2263717bf5aa7e273b2:020798583d07c479020bb0af34cf8bb6$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 782 B

View File

@ -4,30 +4,30 @@
"image": "676-pharaoh.png",
"format": "RGBA8888",
"size": {
"w": 69,
"h": 69
"w": 63,
"h": 63
},
"scale": 1,
"scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 52,
"h": 69
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 52,
"h": 69
"x": 25,
"y": 17,
"w": 46,
"h": 63
},
"frame": {
"x": 0,
"y": 0,
"w": 52,
"h": 69
"w": 46,
"h": 63
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:85c709f8538d07088a17e53a7c85afa0:623b4bc6698ef1a984b6bad42e68115b:904b7ab6f57249c96beea4b5f72deb53$"
"smartupdate": "$TexturePacker:SmartUpdate:bdf2959fe7e2556fe6d031d7de04fc6c:fbff7f59a6ed25ee3eef955cbb3b9a56:904b7ab6f57249c96beea4b5f72deb53$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 768 B

View File

@ -4,30 +4,30 @@
"image": "676-star.png",
"format": "RGBA8888",
"size": {
"w": 72,
"h": 72
"w": 66,
"h": 66
},
"scale": 1,
"scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 56,
"h": 72
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 56,
"h": 72
"x": 24,
"y": 14,
"w": 50,
"h": 66
},
"frame": {
"x": 0,
"y": 0,
"w": 56,
"h": 72
"w": 50,
"h": 66
}
}
]
@ -36,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:56c2df4ee634b690a816b79120bc3600:d7eefc05e299310d05d389e05997e449:dd7fedf66b493b0bbdef5d25e0041dd8$"
"smartupdate": "$TexturePacker:SmartUpdate:a3f92eef83bcae7716ee78c669738785:156a85da733d2e878a00be0efc1c4d38:dd7fedf66b493b0bbdef5d25e0041dd8$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 838 B

View File

@ -4,240 +4,30 @@
"image": "678.png",
"format": "RGBA8888",
"size": {
"w": 130,
"h": 130
"w": 56,
"h": 56
},
"scale": 1,
"scale": 0.5,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": true,
"trimmed": false,
"sourceSize": {
"w": 80,
"h": 80
"w": 96,
"h": 96
},
"spriteSourceSize": {
"x": 18,
"y": 11,
"w": 44,
"h": 57
"x": 25,
"y": 20,
"w": 45,
"h": 56
},
"frame": {
"x": 0,
"y": 0,
"w": 44,
"h": 57
}
},
{
"filename": "0002.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 18,
"y": 11,
"w": 44,
"h": 57
},
"frame": {
"x": 0,
"y": 57,
"w": 44,
"h": 57
}
},
{
"filename": "0011.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 18,
"y": 11,
"w": 44,
"h": 57
},
"frame": {
"x": 0,
"y": 57,
"w": 44,
"h": 57
}
},
{
"filename": "0006.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 21,
"y": 15,
"w": 44,
"h": 53
},
"frame": {
"x": 44,
"y": 0,
"w": 44,
"h": 53
}
},
{
"filename": "0007.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 21,
"y": 15,
"w": 44,
"h": 53
},
"frame": {
"x": 44,
"y": 0,
"w": 44,
"h": 53
}
},
{
"filename": "0004.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 24,
"y": 12,
"w": 42,
"w": 45,
"h": 56
},
"frame": {
"x": 88,
"y": 0,
"w": 42,
"h": 56
}
},
{
"filename": "0009.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 24,
"y": 12,
"w": 42,
"h": 56
},
"frame": {
"x": 88,
"y": 0,
"w": 42,
"h": 56
}
},
{
"filename": "0003.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 20,
"y": 11,
"w": 43,
"h": 57
},
"frame": {
"x": 44,
"y": 53,
"w": 43,
"h": 57
}
},
{
"filename": "0010.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 20,
"y": 11,
"w": 43,
"h": 57
},
"frame": {
"x": 44,
"y": 53,
"w": 43,
"h": 57
}
},
{
"filename": "0005.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 22,
"y": 13,
"w": 43,
"h": 55
},
"frame": {
"x": 87,
"y": 56,
"w": 43,
"h": 55
}
},
{
"filename": "0008.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 22,
"y": 13,
"w": 43,
"h": 55
},
"frame": {
"x": 87,
"y": 56,
"w": 43,
"h": 55
}
}
]
@ -246,6 +36,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:9579cbb834c4127f905679ba92633a05:64ed3d991add5e47034b1ca9aad80a4c:887aa14e4a3a3e9141c6ae460f968db1$"
"smartupdate": "$TexturePacker:SmartUpdate:ee6cbb7807c28f4b3f12e8dcf4da4888:77056356d7cbf2a4fb20508f50dbd3ce:887aa14e4a3a3e9141c6ae460f968db1$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 746 B

View File

@ -1,10 +1,10 @@
import { Arena } from "../field/arena";
import { Type } from "./type";
import * as Utils from "../utils";
import { MoveCategory, StatChangeAttr, allMoves } from "./move";
import { MoveCategory, allMoves } from "./move";
import { getPokemonMessage } from "../messages";
import Pokemon, { HitResult, PokemonMove } from "../field/pokemon";
import { MoveEffectPhase, StatChangePhase } from "../phases";
import { MoveEffectPhase, PokemonHealPhase, StatChangePhase} from "../phases";
import { StatusEffect } from "./status-effect";
import { BattlerIndex } from "../battle";
import { Moves } from "./enums/moves";
@ -146,6 +146,31 @@ class AuroraVeilTag extends WeakenMoveScreenTag {
}
}
class WishTag extends ArenaTag {
private battlerIndex: BattlerIndex;
private triggerMessage: string;
private healHp: number;
constructor(turnCount: integer, sourceId: integer, side: ArenaTagSide) {
super(ArenaTagType.WISH, turnCount, Moves.WISH, sourceId, side);
}
onAdd(arena: Arena): void {
const user = arena.scene.getPokemonById(this.sourceId);
this.battlerIndex = user.getBattlerIndex();
this.triggerMessage = getPokemonMessage(user, '\'s wish\ncame true!');
this.healHp = Math.max(Math.floor(user.getMaxHp() / 2), 1);
}
onRemove(arena: Arena): void {
const target = arena.scene.getField()[this.battlerIndex];
if (target?.isActive(true)) {
arena.scene.queueMessage(this.triggerMessage);
arena.scene.unshiftPhase(new PokemonHealPhase(target.scene, target.getBattlerIndex(), this.healHp, null, true, false));
}
}
}
export class WeakenMoveTypeTag extends ArenaTag {
private weakenedType: Type;
@ -472,6 +497,8 @@ export function getArenaTag(tagType: ArenaTagType, turnCount: integer, sourceMov
case ArenaTagType.FUTURE_SIGHT:
case ArenaTagType.DOOM_DESIRE:
return new DelayedAttackTag(tagType, sourceMove, sourceId, targetIndex);
case ArenaTagType.WISH:
return new WishTag(turnCount, sourceId, side);
case ArenaTagType.STEALTH_ROCK:
return new StealthRockTag(sourceId, side);
case ArenaTagType.STICKY_WEB:

View File

@ -8,6 +8,7 @@ export enum ArenaTagType {
MIST = "MIST",
FUTURE_SIGHT = "FUTURE_SIGHT",
DOOM_DESIRE = "DOOM_DESIRE",
WISH = "WISH",
STEALTH_ROCK = "STEALTH_ROCK",
STICKY_WEB = "STICKY_WEB",
TRICK_ROOM = "TRICK_ROOM",

View File

@ -4493,7 +4493,7 @@ export function initMoves() {
.attr(AbilityCopyAttr),
new SelfStatusMove(Moves.WISH, Type.NORMAL, -1, 10, -1, 0, 3)
.triageMove()
.unimplemented(),
.attr(AddArenaTagAttr, ArenaTagType.WISH, 2, true),
new SelfStatusMove(Moves.ASSIST, Type.NORMAL, -1, 20, -1, 0, 3)
.attr(RandomMovesetMoveAttr, true)
.ignoresVirtual(),

View File

@ -387,102 +387,102 @@ export const pokemon: SimpleTranslationEntries = {
"rayquaza": "Rayquaza",
"jirachi": "Jirachi",
"deoxys": "Deoxys",
"turtwig": "Turtwig",
"grotle": "Grotle",
"torterra": "Torterra",
"chimchar": "Chimchar",
"monferno": "Monferno",
"infernape": "Infernape",
"piplup": "Piplup",
"prinplup": "Prinplup",
"empoleon": "Empoleon",
"starly": "Starly",
"turtwig": "Chelast",
"grotle": "Chelcarain",
"torterra": "Chelterrar",
"chimchar": "Panflam",
"monferno": "Panpyro",
"infernape": "Panferno",
"piplup": "Plinfa",
"prinplup": "Pilprin",
"empoleon": "Impoleon",
"starly": "Staralili",
"staravia": "Staravia",
"staraptor": "Staraptor",
"bidoof": "Bidoof",
"bibarel": "Bibarel",
"kricketot": "Kricketot",
"kricketune": "Kricketune",
"shinx": "Shinx",
"bidoof": "Bidiza",
"bibarel": "Bidifas",
"kricketot": "Zirpurze",
"kricketune": "Zirpeise",
"shinx": "Sheinux",
"luxio": "Luxio",
"luxray": "Luxray",
"budew": "Budew",
"budew": "Knospi",
"roserade": "Roserade",
"cranidos": "Cranidos",
"rampardos": "Rampardos",
"shieldon": "Shieldon",
"bastiodon": "Bastiodon",
"cranidos": "Koknodon",
"rampardos": "Rameidon",
"shieldon": "Schilterus",
"bastiodon": "Bollterus",
"burmy": "Burmy",
"wormadam": "Wormadam",
"mothim": "Mothim",
"combee": "Combee",
"vespiquen": "Vespiquen",
"wormadam": "Burmadame",
"mothim": "Moterpel",
"combee": "Wadribie",
"vespiquen": "Hornwiesel",
"pachirisu": "Pachirisu",
"buizel": "Buizel",
"floatzel": "Floatzel",
"cherubi": "Cherubi",
"cherrim": "Cherrim",
"shellos": "Shellos",
"buizel": "Bamelin",
"floatzel": "Bojelin",
"cherubi": "Kikugi",
"cherrim": "Kinoso",
"shellos": "Schalellos",
"gastrodon": "Gastrodon",
"ambipom": "Ambipom",
"drifloon": "Drifloon",
"drifblim": "Drifblim",
"buneary": "Buneary",
"lopunny": "Lopunny",
"mismagius": "Mismagius",
"honchkrow": "Honchkrow",
"glameow": "Glameow",
"purugly": "Purugly",
"chingling": "Chingling",
"stunky": "Stunky",
"ambipom": "Ambidifel",
"drifloon": "Driftlon",
"drifblim": "Drifzepeli",
"buneary": "Haspiror",
"lopunny": "Schlapor",
"mismagius": "Traunmagil",
"honchkrow": "Kramshef",
"glameow": "Charmian",
"purugly": "Shnurgarst",
"chingling": "Klingplim",
"stunky": "Skunkapuh",
"skuntank": "Skuntank",
"bronzor": "Bronzor",
"bronzor": "Bronzel",
"bronzong": "Bronzong",
"bonsly": "Bonsly",
"mime_jr": "Mime Jr.",
"happiny": "Happiny",
"chatot": "Chatot",
"spiritomb": "Spiritomb",
"gible": "Gible",
"gabite": "Gabite",
"garchomp": "Garchomp",
"munchlax": "Munchlax",
"bonsly": "Mobai",
"mime_jr": "Pantimimi",
"happiny": "Wonneira",
"chatot": "Plaudagei",
"spiritomb": "Kryppuk",
"gible": "Kaumalat",
"gabite": "Knarksel",
"garchomp": "Knackrack",
"munchlax": "Mampfaxo",
"riolu": "Riolu",
"lucario": "Lucario",
"hippopotas": "Hippopotas",
"hippowdon": "Hippowdon",
"skorupi": "Skorupi",
"drapion": "Drapion",
"croagunk": "Croagunk",
"toxicroak": "Toxicroak",
"carnivine": "Carnivine",
"hippowdon": "Hippoterus",
"skorupi": "Pionskora",
"drapion": "Piondragi",
"croagunk": "Glibunkel",
"toxicroak": "Toxiquak",
"carnivine": "Venuflibis",
"finneon": "Finneon",
"lumineon": "Lumineon",
"mantyke": "Mantyke",
"snover": "Snover",
"abomasnow": "Abomasnow",
"weavile": "Weavile",
"mantyke": "Mantirps",
"snover": "Shnebedeck",
"abomasnow": "Rexblisar",
"weavile": "Snibunna",
"magnezone": "Magnezone",
"lickilicky": "Lickilicky",
"rhyperior": "Rhyperior",
"tangrowth": "Tangrowth",
"electivire": "Electivire",
"magmortar": "Magmortar",
"lickilicky": "Schlurplek",
"rhyperior": "Rihornior",
"tangrowth": "Tangoloss",
"electivire": "Elevoltek",
"magmortar": "Magbrant",
"togekiss": "Togekiss",
"yanmega": "Yanmega",
"leafeon": "Leafeon",
"glaceon": "Glaceon",
"gliscor": "Gliscor",
"mamoswine": "Mamoswine",
"leafeon": "Folipurba",
"glaceon": "Glaziola",
"gliscor": "Skorgro",
"mamoswine": "Mamutel",
"porygon_z": "Porygon-Z",
"gallade": "Gallade",
"probopass": "Probopass",
"dusknoir": "Dusknoir",
"froslass": "Froslass",
"gallade": "Galagladi",
"probopass": "Voluminas",
"dusknoir": "Zwirrfinst",
"froslass": "Frosdedje",
"rotom": "Rotom",
"uxie": "Uxie",
"mesprit": "Mesprit",
"azelf": "Azelf",
"uxie": "Selfe",
"mesprit": "Vesprit",
"azelf": "Tobutz",
"dialga": "Dialga",
"palkia": "Palkia",
"heatran": "Heatran",
@ -495,116 +495,116 @@ export const pokemon: SimpleTranslationEntries = {
"shaymin": "Shaymin",
"arceus": "Arceus",
"victini": "Victini",
"snivy": "Snivy",
"servine": "Servine",
"serperior": "Serperior",
"tepig": "Tepig",
"pignite": "Pignite",
"emboar": "Emboar",
"oshawott": "Oshawott",
"dewott": "Dewott",
"samurott": "Samurott",
"patrat": "Patrat",
"watchog": "Watchog",
"lillipup": "Lillipup",
"herdier": "Herdier",
"stoutland": "Stoutland",
"purrloin": "Purrloin",
"liepard": "Liepard",
"pansage": "Pansage",
"simisage": "Simisage",
"pansear": "Pansear",
"simisear": "Simisear",
"panpour": "Panpour",
"simipour": "Simipour",
"munna": "Munna",
"musharna": "Musharna",
"pidove": "Pidove",
"tranquill": "Tranquill",
"unfezant": "Unfezant",
"blitzle": "Blitzle",
"zebstrika": "Zebstrika",
"roggenrola": "Roggenrola",
"boldore": "Boldore",
"gigalith": "Gigalith",
"woobat": "Woobat",
"swoobat": "Swoobat",
"drilbur": "Drilbur",
"excadrill": "Excadrill",
"audino": "Audino",
"timburr": "Timburr",
"gurdurr": "Gurdurr",
"conkeldurr": "Conkeldurr",
"tympole": "Tympole",
"palpitoad": "Palpitoad",
"seismitoad": "Seismitoad",
"throh": "Throh",
"sawk": "Sawk",
"sewaddle": "Sewaddle",
"swadloon": "Swadloon",
"leavanny": "Leavanny",
"venipede": "Venipede",
"whirlipede": "Whirlipede",
"scolipede": "Scolipede",
"cottonee": "Cottonee",
"whimsicott": "Whimsicott",
"petilil": "Petilil",
"lilligant": "Lilligant",
"basculin": "Basculin",
"sandile": "Sandile",
"krokorok": "Krokorok",
"krookodile": "Krookodile",
"darumaka": "Darumaka",
"darmanitan": "Darmanitan",
"maractus": "Maractus",
"dwebble": "Dwebble",
"crustle": "Crustle",
"scraggy": "Scraggy",
"scrafty": "Scrafty",
"sigilyph": "Sigilyph",
"yamask": "Yamask",
"cofagrigus": "Cofagrigus",
"tirtouga": "Tirtouga",
"carracosta": "Carracosta",
"archen": "Archen",
"archeops": "Archeops",
"trubbish": "Trubbish",
"garbodor": "Garbodor",
"snivy": "Serpifeu",
"servine": "Efoserp",
"serperior": "Serpiroyal",
"tepig": "Floink",
"pignite": "Ferkokel",
"emboar": "Flambirex",
"oshawott": "Ottaro",
"dewott": "Zwottronin",
"samurott": "Admurai",
"patrat": "Nagelotz",
"watchog": "Kukmarda",
"lillipup": "Yorkleff",
"herdier": "Terribark",
"stoutland": "Bissbark",
"purrloin": "Felilou",
"liepard": "Kleoparda",
"pansage": "Vegimak",
"simisage": "Vegichita",
"pansear": "Grillmak",
"simisear": "Grillchita",
"panpour": "Sodamak",
"simipour": "Sodachita",
"munna": "Somniam",
"musharna": "Somnivora",
"pidove": "Dusslgurr",
"tranquill": "Navitaub",
"unfezant": "Fasasnob",
"blitzle": "Elezeba",
"zebstrika": "Zebritz",
"roggenrola": "Kiesling",
"boldore": "Sedimantur",
"gigalith": "Brockoloss",
"woobat": "Fleknoil",
"swoobat": "Fletiamo",
"drilbur": "Rotomurf",
"excadrill": "Stalobor",
"audino": "Ohrdoch",
"timburr": "Praktibalk",
"gurdurr": "Strepoli",
"conkeldurr": "Meistagriff",
"tympole": "Schallquap",
"palpitoad": "Membrana",
"seismitoad": "Branawarz",
"throh": "Juitesto",
"sawk": "Karadonis",
"sewaddle": "Strawickl",
"swadloon": "Folikon",
"leavanny": "Matrifol",
"venipede": "Toxiped",
"whirlipede": "Rollum",
"scolipede": "Cerapendra",
"cottonee": "Waumboll",
"whimsicott": "Elfun",
"petilil": "Lilminip",
"lilligant": "Dressella",
"basculin": "Barschuft",
"sandile": "Ganovil",
"krokorok": "Rokkaiman",
"krookodile": "Rabigator",
"darumaka": "Flampion",
"darmanitan": "Flampavian",
"maractus": "Maracamba",
"dwebble": "Lithomith",
"crustle": "Castellith",
"scraggy": "Zurrokex",
"scrafty": "Irokex",
"sigilyph": "Symvolara",
"yamask": "Makabaja",
"cofagrigus": "Echnatoll",
"tirtouga": "Galapaflos",
"carracosta": "Karippas",
"archen": "Flapteryx",
"archeops": "Aeropteryx",
"trubbish": "Unratütox",
"garbodor": "Deponitox",
"zorua": "Zorua",
"zoroark": "Zoroark",
"minccino": "Minccino",
"cinccino": "Cinccino",
"gothita": "Gothita",
"gothorita": "Gothorita",
"gothitelle": "Gothitelle",
"solosis": "Solosis",
"duosion": "Duosion",
"reuniclus": "Reuniclus",
"ducklett": "Ducklett",
"swanna": "Swanna",
"vanillite": "Vanillite",
"vanillish": "Vanillish",
"vanilluxe": "Vanilluxe",
"deerling": "Deerling",
"sawsbuck": "Sawsbuck",
"minccino": "Picochilla",
"cinccino": "Chillabell",
"gothita": "Mollimorba",
"gothorita": "Hypnomorba",
"gothitelle": "Morbitesse",
"solosis": "Monozyto",
"duosion": "Mitodos",
"reuniclus": "Zytomega",
"ducklett": "Piccolente",
"swanna": "Swaroness",
"vanillite": "Gelatini",
"vanillish": "Gelatroppo",
"vanilluxe": "Gelatwino",
"deerling": "Sesokitz",
"sawsbuck": "Kronjuwild",
"emolga": "Emolga",
"karrablast": "Karrablast",
"escavalier": "Escavalier",
"foongus": "Foongus",
"amoonguss": "Amoonguss",
"frillish": "Frillish",
"jellicent": "Jellicent",
"alomomola": "Alomomola",
"joltik": "Joltik",
"galvantula": "Galvantula",
"ferroseed": "Ferroseed",
"ferrothorn": "Ferrothorn",
"klink": "Klink",
"klang": "Klang",
"klinklang": "Klinklang",
"tynamo": "Tynamo",
"eelektrik": "Eelektrik",
"eelektross": "Eelektross",
"karrablast": "Laukaps",
"escavalier": "Cavalanzas",
"foongus": "Tarnpignon",
"amoonguss": "Hutsassa",
"frillish": "Quabbel",
"jellicent": "Apoquallyp",
"alomomola": "Mamolida",
"joltik": "Wattzapf",
"galvantula": "Voltula",
"ferroseed": "Kastadur",
"ferrothorn": "Tentantel",
"klink": "Klikk",
"klang": "Kliklak",
"klinklang": "Klikdiklak",
"tynamo": "Zapplardin",
"eelektrik": "Zapplalek",
"eelektross": "Zapplarang",
"elgyem": "Elgyem",
"beheeyem": "Beheeyem",
"litwick": "Litwick",

View File

@ -73,9 +73,9 @@ export const menu: SimpleTranslationEntries = {
"skipItemQuestion": "Êtes-vous sûr·e de ne pas vouloir prendre dobjet ?",
"eggHatching": "Oh ?",
"ivScannerUseQuestion": "Utiliser le Scanner dIV sur {{pokemonName}} ?",
"rankings": "Rankings",
"dailyRankings": "Daily Rankings",
"noRankings": "No Rankings",
"loading": "Loading…",
"playersOnline": "Players Online"
"rankings": "Classement",
"dailyRankings": "Classement du Jour",
"noRankings": "Pas de Classement",
"loading": "Chargement…",
"playersOnline": "Joueurs Connectés"
} as const;

View File

@ -1,38 +1,43 @@
import { SimpleTranslationEntries } from "#app/plugins/i18n";
export const tutorial: SimpleTranslationEntries = {
"intro": `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements.
$This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used.
$The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community.
$If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`,
"accessMenu": `To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.`,
"menu": `From this menu you can access the settings.
$From the settings you can change game speed, window style, and other options.
$There are also various other features here, so be sure to check them all!`,
"intro": `Bienvenue dans PokéRogue, un fangame axé sur les combats Pokémon avec des éléments roguelite !
$Ce jeu nest pas monétisé et nous ne prétendons pas à la propriété de Pokémon, ni des éléments sous copyright
$utilisés.
$Ce jeu est toujours en développement, mais entièrement jouable.
$Tout signalement de bugs passe par le serveur Discord.
$Si le jeu est lent, vérifiez que lAccélération Matérielle est activée dans les paramètres du navigateur.`,
"starterSelect": `From this screen, you can select your starters.\nThese are your initial party members.
$Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10.
$You can also select gender, ability, and form depending on\nthe variants you've caught or hatched.
$The IVs for a species are also the best of every one you've\ncaught or hatched, so try to get lots of the same species!`,
"accessMenu": `Accédez au menu avec M ou Échap lors de l'attente dune\naction.
$Il contient les paramètres et diverses fonctionnalités`,
"pokerus": `A daily random 3 selectable starters have a purple border.
$If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`,
"menu": `Vous pouvez accéder aux paramètres depuis ce menu.
$Vous pouvez entre autres y changer la vitesse du jeu ou le style de fenêtre.
$Il y a également toute une variété dautres fonctionnalités,
$jetez-y un œil !`,
"selectItem": `After every battle, you are given a choice of 3 random items.\nYou may only pick one.
$These range from consumables, to Pokémon held items, to passive permanent items.
$Most non-consumable item effects will stack in various ways.
$Some items will only show up if they can be used, such as evolution items.
$You can also transfer held items between Pokémon using the transfer option.
$The transfer option will appear in the bottom right once you have obtained a held item.
$You may purchase consumable items with money, and a larger variety will be available the further you get.
$Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`,
"starterSelect": `Choisissez vos starters depuis cet écran.\nIls formeront votre équipe de départ.
$Chacun possède une valeur. Votre équipe peut avoir jusquà\n6 membres, tant que vous ne dépassez pas un coût de 10.
$Vous pouvez aussi choisir le sexe, le talent et la forme en\nfonction des variants déjà capturés ou éclos.
$Les IVs dun starter sont les meilleurs de tous ceux de son\nespèce déjà obtenus. Essayez donc den obtenir plusieurs !`,
"eggGacha": `From this screen, you can redeem your vouchers for\nPokémon eggs.
$Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch.
$Hatched Pokémon also won't be added to your party, they will\nbe added to your starters.
$Pokémon hatched from eggs generally have better IVs than\nwild Pokémon.
$Some Pokémon can only even be obtained from eggs.
$There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`,
"pokerus": `Chaque jour, 3 starters tirés aléatoirement ont un contour
$violet. Si un starter que vous possédez la, essayez de
$ lajouter à votre équipe. Vérifiez bien son résumé !`,
"selectItem": `Après chaque combat, vous avez le choix entre 3 objets\ntirés au sort. Vous ne pouvez en prendre quun.
$Cela peut être des objets consommables, des objets à\nfaire tenir, ou des objets passifs aux effets permanents.
$La plupart des effets des objets non-consommables se cumuleront de diverses manières.
$Certains objets apparaîtront sils peuvent être utilisés, comme les objets dévolution.
$Vous pouvez aussi transférer des objets tenus entre Pokémon en utilisant loption de transfert.
$Loption de transfert apparaît en bas à droite dès que vous avez obtenu un objet à faire tenir.
$Vous pouvez acheter des consommables avec de largent.\nPlus vous progressez, plus le choix sera varié.
$Choisir un des objets gratuits déclenchera le prochain combat, donc faites bien tous vos achats avant.`,
"eggGacha": `Depuis cet écran, vous pouvez échanger vos coupons\ncontre des Œufs de Pokémon.
$Les Œufs éclosent après avoir remporté un certain nombre\nde combats. Les plus rares mettent plus de temps.
$Les Pokémon éclos ne rejoindront pas votre équipe,\nmais seront ajoutés à vos starters.
$Les Pokémon issus dŒufs ont généralement de\nmeilleurs IVs que les Pokémon sauvages.
$Certains Pokémon ne peuvent être obtenus\nque dans des Œufs.
$Il y a 3 différentes machines à actionner avec différents\nbonus, prenez celle qui vous convient le mieux !`,
} as const;

View File

@ -1,4 +1,6 @@
import i18next from 'i18next';
import LanguageDetector from 'i18next-browser-languagedetector';
import { menu as enMenu } from '../locales/en/menu';
import { menu as esMenu } from '../locales/es/menu';
import { menu as itMenu } from '../locales/it/menu';
@ -55,7 +57,6 @@ export interface SimpleTranslationEntries {
[key: string]: string
}
export interface MoveTranslationEntry {
name: string,
effect: string
@ -78,10 +79,8 @@ export interface Localizable {
localize(): void;
}
const DEFAULT_LANGUAGE_OVERRIDE = '';
export function initI18n(): void {
let lang = 'en';
let lang = '';
if (localStorage.getItem('prLang'))
lang = localStorage.getItem('prLang');
@ -92,18 +91,20 @@ export function initI18n(): void {
* Q: How do I add a new language?
* A: To add a new language, create a new folder in the locales directory with the language code.
* Each language folder should contain a file for each namespace (ex. menu.ts) with the translations.
* Don't forget to declare new language in `supportedLngs` i18next initializer
*
* Q: How do I add a new namespace?
* A: To add a new namespace, create a new file in each language folder with the translations.
* Then update the `resources` field in the init() call and the CustomTypeOptions interface.
*
*
* Q: How do I make a language selectable in the settings?
* A: In src/system/settings.ts, add a new case to the Setting.Language switch statement.
*/
i18next.init({
lng: DEFAULT_LANGUAGE_OVERRIDE ? DEFAULT_LANGUAGE_OVERRIDE : lang,
i18next.use(LanguageDetector).init({
lng: lang,
fallbackLng: 'en',
supportedLngs: ['en', 'es', 'fr', 'it', 'de'],
debug: true,
interpolation: {
escapeValue: false,

View File

@ -383,6 +383,7 @@ export default class PartyUiHandler extends MessageUiHandler {
}
const slotCount = this.partySlots.length;
const battlerCount = this.scene.currentBattle.getBattlerCount();
switch (button) {
case Button.UP:
@ -392,14 +393,20 @@ export default class PartyUiHandler extends MessageUiHandler {
success = this.setCursor(this.cursor < 6 ? this.cursor < slotCount - 1 ? this.cursor + 1 : 6 : 0);
break;
case Button.LEFT:
if (this.cursor >= this.scene.currentBattle.getBattlerCount() && this.cursor < 6)
if (this.cursor >= battlerCount && this.cursor <= 6)
success = this.setCursor(0);
break;
case Button.RIGHT:
const battlerCount = this.scene.currentBattle.getBattlerCount();
if (slotCount > battlerCount && this.cursor < battlerCount)
success = this.setCursor(this.lastCursor < 6 ? this.lastCursor || battlerCount : battlerCount);
if (slotCount === battlerCount){
success = this.setCursor(6);
break;
} else if (battlerCount >= 2 && slotCount > battlerCount && this.getCursor() === 0 && this.lastCursor === 1){
success = this.setCursor(2);
break;
} else if (slotCount > battlerCount && this.cursor < battlerCount){
success = this.setCursor(this.lastCursor < 6 ? this.lastCursor || battlerCount : battlerCount);
break;
}
}
}

View File

@ -203,7 +203,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.starterSelectContainer.add(this.shinyOverlay);
const starterContainerWindow = addWindow(this.scene, 141, 1, 178, 178);
this.starterSelectContainer.add(addWindow(this.scene, 107, 1, 34, 58));
this.starterSelectContainer.add(addWindow(this.scene, 107, 59, 34, 91));
this.starterSelectContainer.add(addWindow(this.scene, 107, 145, 34, 34, true));
@ -318,7 +318,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.genCursorObj.setVisible(false);
this.genCursorObj.setOrigin(0, 0);
this.starterSelectContainer.add(this.genCursorObj);
this.valueLimitLabel = addTextObject(this.scene, 124, 150, '0/10', TextStyle.TOOLTIP_CONTENT);
this.valueLimitLabel.setOrigin(0.5, 0);
this.starterSelectContainer.add(this.valueLimitLabel);
@ -333,7 +333,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.starterSelectContainer.add(this.startCursorObj);
const starterSpecies: Species[] = [];
for (let g = 0; g < this.starterSelectGenIconContainers.length; g++) {
let s = 0;
this.genSpecies.push([]);
@ -498,7 +498,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
const eggMovesLabel = addTextObject(this.scene, -46, 0, 'Egg Moves', TextStyle.WINDOW_ALT);
eggMovesLabel.setOrigin(0.5, 0);
this.pokemonEggMovesContainer.add(eggMovesLabel);
for (let m = 0; m < 4; m++) {
@ -552,7 +552,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
species = getPokemonSpecies(randomSpeciesId);
pokerusCursor = this.genSpecies[species.generation - 1].indexOf(species);
};
let dupe = false;
do {
@ -1049,7 +1049,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
}
}
}
if (success)
ui.playSelect();
else if (error)
@ -1086,7 +1086,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.scene.gameData.starterData[speciesId].moveset = this.starterMoveset.slice(0) as StarterMoveset;
this.setSpeciesDetails(this.lastSpecies, undefined, undefined, undefined, undefined, undefined, undefined, false);
}
updateInstructions(): void {
let instructionLines = [ ];
let cycleInstructionLines = [];
@ -1212,7 +1212,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
setGenMode(genMode: boolean): boolean {
this.genCursorObj.setVisible(genMode && !this.startCursorObj.visible);
this.cursorObj.setVisible(!genMode && !this.startCursorObj.visible);
if (genMode !== this.genMode) {
this.genMode = genMode;
@ -1311,7 +1311,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
const defaultAbilityIndex = this.scene.gameData.getStarterSpeciesDefaultAbilityIndex(species);
const defaultNature = this.scene.gameData.getSpeciesDefaultNature(species);
props = this.scene.gameData.getSpeciesDexAttrProps(species, defaultDexAttr);
this.setSpeciesDetails(species, props.shiny, props.formIndex, props.female, props.variant, defaultAbilityIndex, defaultNature);
}
@ -1319,7 +1319,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.setTypeIcons(speciesForm.type1, speciesForm.type2);
this.pokemonSprite.clearTint();
if (this.pokerusCursors.find((cursor: integer, i: integer) => cursor === this.cursor && this.pokerusGens[i] === this.genCursor))
if (this.pokerusCursors.find((cursor: integer, i: integer) => cursor === this.cursor && this.pokerusGens[i] === this.getGenCursorWithScroll()))
handleTutorial(this.scene, Tutorial.Pokerus);
} else {
this.pokemonGrowthRateText.setText('');
@ -1341,7 +1341,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
const defaultAbilityIndex = this.scene.gameData.getStarterSpeciesDefaultAbilityIndex(species);
const defaultNature = this.scene.gameData.getSpeciesDefaultNature(species);
const props = this.scene.gameData.getSpeciesDexAttrProps(species, defaultDexAttr);
this.setSpeciesDetails(species, props.shiny, props.formIndex, props.female, props.variant, defaultAbilityIndex, defaultNature, true);
this.pokemonSprite.setTint(0x808080);
}
@ -1507,7 +1507,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.speciesStarterMoves.push(speciesEggMoves[species.speciesId][em]);
}
}
const speciesMoveData = this.scene.gameData.starterData[species.speciesId].moveset;
let moveData: StarterMoveset = speciesMoveData
? Array.isArray(speciesMoveData)
@ -1696,7 +1696,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.statsContainer.updateIvs(null);
}
}
showStats(): void {
if (!this.speciesStarterDexEntry)
return;

View File

@ -364,9 +364,16 @@ export default class SummaryUiHandler extends UiHandler {
case Button.LEFT:
this.moveSelect = false;
this.setCursor(Page.STATS);
this.hideMoveEffect();
success = true;
break;
if (this.summaryUiMode === SummaryUiMode.LEARN_MOVE){
this.hideMoveEffect();
this.destroyBlinkCursor();
success = true;
break;
} else {
this.hideMoveSelect();
success = true;
break;
}
}
}
} else {
@ -426,11 +433,9 @@ export default class SummaryUiHandler extends UiHandler {
}
setCursor(cursor: integer, overrideChanged: boolean = false): boolean {
let changed: boolean;
let changed: boolean = overrideChanged || this.moveCursor !== cursor;
if (this.moveSelect) {
changed = overrideChanged || this.moveCursor !== cursor;
if (changed) {
this.moveCursor = cursor;
const selectedMove = this.getSelectedMove();
@ -462,7 +467,6 @@ export default class SummaryUiHandler extends UiHandler {
y: `-=${14.83 * (moveDescriptionLineCount - 3)}`
});
}
}
if (!this.moveCursorObj) {
this.moveCursorObj = this.scene.add.sprite(-2, 0, 'summary_moves_cursor', 'highlight');
@ -527,6 +531,11 @@ export default class SummaryUiHandler extends UiHandler {
this.setCursor(0, true);
this.showMoveEffect();
}
else if (this.cursor===Page.MOVES) {
this.moveCursorObj = null;
this.showMoveSelect();
this.showMoveEffect();
}
}
else
this.summaryPageTransitionContainer.x -= 214;
@ -871,6 +880,12 @@ export default class SummaryUiHandler extends UiHandler {
this.moveSelect = false;
this.extraMoveRowContainer.setVisible(false);
this.moveDescriptionText.setText('');
this.destroyBlinkCursor();
this.hideMoveEffect();
}
destroyBlinkCursor(){
if (this.moveCursorBlinkTimer) {
this.moveCursorBlinkTimer.destroy();
this.moveCursorBlinkTimer = null;
@ -883,8 +898,6 @@ export default class SummaryUiHandler extends UiHandler {
this.selectedMoveCursorObj.destroy();
this.selectedMoveCursorObj = null;
}
this.hideMoveEffect();
}
showMoveEffect(instant?: boolean) {