Compare commits
16 Commits
300aa1163a
...
8a6f87cfea
Author | SHA1 | Date | |
---|---|---|---|
|
8a6f87cfea | ||
|
6059f0ee33 | ||
|
88f725e15a | ||
|
d23d835687 | ||
|
b768362090 | ||
|
2edec7f95b | ||
|
fc9186e0af | ||
|
6d2b8ef2d1 | ||
|
da5370cbd5 | ||
|
7ea8e48a4e | ||
|
a0fdb8c07b | ||
|
a1d57fc888 | ||
|
ac2f7755c2 | ||
|
bfe018ef65 | ||
|
4c443e7760 | ||
|
35cb04fae1 |
440
public/images/types_de.json
Normal file
@ -0,0 +1,440 @@
|
||||
{
|
||||
"textures": [
|
||||
{
|
||||
"image": "types_de.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_de.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
440
public/images/types_es.json
Normal file
@ -0,0 +1,440 @@
|
||||
{
|
||||
"textures": [
|
||||
{
|
||||
"image": "types_es.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.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
440
public/images/types_fr.json
Normal file
@ -0,0 +1,440 @@
|
||||
{
|
||||
"textures": [
|
||||
{
|
||||
"image": "types_fr.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_fr.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
440
public/images/types_it.json
Normal file
@ -0,0 +1,440 @@
|
||||
{
|
||||
"textures": [
|
||||
{
|
||||
"image": "types_it.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_it.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
440
public/images/types_pt_BR.json
Normal file
@ -0,0 +1,440 @@
|
||||
{
|
||||
"textures": [
|
||||
{
|
||||
"image": "types_pt_BR.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_pt_BR.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
440
public/images/types_zh_CN.json
Normal file
@ -0,0 +1,440 @@
|
||||
{
|
||||
"textures": [
|
||||
{
|
||||
"image": "types_zh_CN.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_zh_CN.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
440
public/images/types_zh_TW.json
Normal file
@ -0,0 +1,440 @@
|
||||
{
|
||||
"textures": [
|
||||
{
|
||||
"image": "types_zh_TW.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_zh_TW.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
@ -1264,7 +1264,7 @@ export default class BattleScene extends SceneBase {
|
||||
}
|
||||
|
||||
updateMoneyText(): void {
|
||||
this.moneyText.setText(`₽${Utils.formatLargeNumber(this.money, 1000)}`);
|
||||
this.moneyText.setText(`₽${Utils.formatFancyLargeNumber(this.money, 3)}`);
|
||||
this.moneyText.setVisible(true);
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,7 @@ import { getPokemonMessage, getPokemonPrefix } from "../messages";
|
||||
import { Weather, WeatherType } from "./weather";
|
||||
import { BattlerTag } from "./battler-tags";
|
||||
import { BattlerTagType } from "./enums/battler-tag-type";
|
||||
import { StatusEffect, getStatusEffectDescriptor, getStatusEffectHealText } from "./status-effect";
|
||||
import { StatusEffect, getNonVolatileStatusEffects, getStatusEffectDescriptor, getStatusEffectHealText } from "./status-effect";
|
||||
import { Gender } from "./gender";
|
||||
import Move, { AttackMove, MoveCategory, MoveFlags, MoveTarget, StatusMoveTypeImmunityAttr, FlinchAttr, OneHitKOAttr, HitHealAttr, StrengthSapHealAttr, allMoves, StatusMove, SelfStatusMove, VariablePowerAttr, applyMoveAttrs, IncrementMovePriorityAttr } from "./move";
|
||||
import { ArenaTagSide, ArenaTrapTag } from "./arena-tag";
|
||||
@ -2449,7 +2449,7 @@ export class PostTurnHurtIfSleepingAbAttr extends PostTurnAbAttr {
|
||||
applyPostTurn(pokemon: Pokemon, passive: boolean, args: any[]): boolean | Promise<boolean> {
|
||||
let hadEffect: boolean = false;
|
||||
for (const opp of pokemon.getOpponents()) {
|
||||
if (opp.status !== undefined && opp.status.effect === StatusEffect.SLEEP) {
|
||||
if (opp.status?.effect === StatusEffect.SLEEP || opp.hasAbility(Abilities.COMATOSE)) {
|
||||
opp.damageAndUpdate(Math.floor(Math.max(1, opp.getMaxHp() / 8)), HitResult.OTHER);
|
||||
pokemon.scene.queueMessage(i18next.t("abilityTriggers:badDreams", {pokemonName: `${getPokemonPrefix(opp)}${opp.name}`}));
|
||||
hadEffect = true;
|
||||
@ -3886,7 +3886,8 @@ export function initAbilities() {
|
||||
.attr(UncopiableAbilityAbAttr)
|
||||
.attr(UnswappableAbilityAbAttr)
|
||||
.attr(UnsuppressableAbilityAbAttr)
|
||||
.unimplemented(),
|
||||
.attr(StatusEffectImmunityAbAttr, ...getNonVolatileStatusEffects())
|
||||
.attr(BattlerTagImmunityAbAttr, BattlerTagType.DROWSY),
|
||||
new Ability(Abilities.QUEENLY_MAJESTY, 7)
|
||||
.attr(FieldPriorityMoveImmunityAbAttr)
|
||||
.ignorable(),
|
||||
@ -4008,7 +4009,8 @@ export function initAbilities() {
|
||||
new Ability(Abilities.SCREEN_CLEANER, 8)
|
||||
.unimplemented(),
|
||||
new Ability(Abilities.STEELY_SPIRIT, 8)
|
||||
.unimplemented(),
|
||||
.attr(MoveTypePowerBoostAbAttr, Type.STEEL)
|
||||
.partial(),
|
||||
new Ability(Abilities.PERISH_BODY, 8)
|
||||
.unimplemented(),
|
||||
new Ability(Abilities.WANDERING_SPIRIT, 8)
|
||||
|
1952
src/data/dialogue.ts
@ -4823,6 +4823,10 @@ const failIfDampCondition: MoveConditionFunc = (user, target, move) => {
|
||||
return !cancelled.value;
|
||||
};
|
||||
|
||||
const userSleptOrComatoseCondition: MoveConditionFunc = (user: Pokemon, target: Pokemon, move: Move) => user.status?.effect === StatusEffect.SLEEP || user.hasAbility(Abilities.COMATOSE);
|
||||
|
||||
const targetSleptOrComatoseCondition: MoveConditionFunc = (user: Pokemon, target: Pokemon, move: Move) => target.status?.effect === StatusEffect.SLEEP || target.hasAbility(Abilities.COMATOSE);
|
||||
|
||||
export type MoveAttrFilter = (attr: MoveAttr) => boolean;
|
||||
|
||||
function applyMoveAttrsInternal(attrFilter: MoveAttrFilter, user: Pokemon, target: Pokemon, move: Move, args: any[]): Promise<void> {
|
||||
@ -5317,7 +5321,7 @@ export function initMoves() {
|
||||
.attr(StatusEffectAttr, StatusEffect.PARALYSIS),
|
||||
new AttackMove(Moves.DREAM_EATER, Type.PSYCHIC, MoveCategory.SPECIAL, 100, 100, 15, -1, 0, 1)
|
||||
.attr(HitHealAttr)
|
||||
.condition((user, target, move) => target.status?.effect === StatusEffect.SLEEP)
|
||||
.condition(targetSleptOrComatoseCondition)
|
||||
.triageMove(),
|
||||
new StatusMove(Moves.POISON_GAS, Type.POISON, 90, 40, -1, 0, 1)
|
||||
.attr(StatusEffectAttr, StatusEffect.POISON)
|
||||
@ -5418,14 +5422,14 @@ export function initMoves() {
|
||||
.attr(IgnoreAccuracyAttr),
|
||||
new StatusMove(Moves.NIGHTMARE, Type.GHOST, 100, 15, -1, 0, 2)
|
||||
.attr(AddBattlerTagAttr, BattlerTagType.NIGHTMARE)
|
||||
.condition((user, target, move) => target.status?.effect === StatusEffect.SLEEP),
|
||||
.condition(targetSleptOrComatoseCondition),
|
||||
new AttackMove(Moves.FLAME_WHEEL, Type.FIRE, MoveCategory.PHYSICAL, 60, 100, 25, 10, 0, 2)
|
||||
.attr(HealStatusEffectAttr, true, StatusEffect.FREEZE)
|
||||
.attr(StatusEffectAttr, StatusEffect.BURN),
|
||||
new AttackMove(Moves.SNORE, Type.NORMAL, MoveCategory.SPECIAL, 50, 100, 15, 30, 0, 2)
|
||||
.attr(BypassSleepAttr)
|
||||
.attr(FlinchAttr)
|
||||
.condition((user, target, move) => user.status?.effect === StatusEffect.SLEEP)
|
||||
.condition(userSleptOrComatoseCondition)
|
||||
.soundBased(),
|
||||
new StatusMove(Moves.CURSE, Type.GHOST, -1, 10, -1, 0, 2)
|
||||
.attr(CurseAttr)
|
||||
@ -5534,7 +5538,7 @@ export function initMoves() {
|
||||
new SelfStatusMove(Moves.SLEEP_TALK, Type.NORMAL, -1, 10, -1, 0, 2)
|
||||
.attr(BypassSleepAttr)
|
||||
.attr(RandomMovesetMoveAttr)
|
||||
.condition((user, target, move) => user.status?.effect === StatusEffect.SLEEP)
|
||||
.condition(userSleptOrComatoseCondition)
|
||||
.ignoresVirtual(),
|
||||
new StatusMove(Moves.HEAL_BELL, Type.NORMAL, -1, 5, -1, 0, 2)
|
||||
.attr(PartyStatusCureAttr, "A bell chimed!", Abilities.SOUNDPROOF)
|
||||
@ -5936,7 +5940,7 @@ export function initMoves() {
|
||||
new StatusMove(Moves.MIRACLE_EYE, Type.PSYCHIC, -1, 40, -1, 0, 4)
|
||||
.unimplemented(),
|
||||
new AttackMove(Moves.WAKE_UP_SLAP, Type.FIGHTING, MoveCategory.PHYSICAL, 70, 100, 10, -1, 0, 4)
|
||||
.attr(MovePowerMultiplierAttr, (user, target, move) => target.status?.effect === StatusEffect.SLEEP ? 2 : 1)
|
||||
.attr(MovePowerMultiplierAttr, (user, target, move) => targetSleptOrComatoseCondition(user, target, move) ? 2 : 1)
|
||||
.attr(HealStatusEffectAttr, false, StatusEffect.SLEEP),
|
||||
new AttackMove(Moves.HAMMER_ARM, Type.FIGHTING, MoveCategory.PHYSICAL, 100, 90, 10, 100, 0, 4)
|
||||
.attr(StatChangeAttr, BattleStat.SPD, -1, true)
|
||||
@ -6348,7 +6352,9 @@ export function initMoves() {
|
||||
.pulseMove()
|
||||
.triageMove(),
|
||||
new AttackMove(Moves.HEX, Type.GHOST, MoveCategory.SPECIAL, 65, 100, 10, -1, 0, 5)
|
||||
.attr(MovePowerMultiplierAttr, (user, target, move) => target.status ? 2 : 1),
|
||||
.attr(
|
||||
MovePowerMultiplierAttr,
|
||||
(user, target, move) => target.status || target.hasAbility(Abilities.COMATOSE)? 2 : 1),
|
||||
new AttackMove(Moves.SKY_DROP, Type.FLYING, MoveCategory.PHYSICAL, 60, 100, 10, -1, 0, 5)
|
||||
.attr(ChargeAttr, ChargeAnim.SKY_DROP_CHARGING, "took {TARGET}\ninto the sky!", BattlerTagType.FLYING) // TODO: Add 2nd turn message
|
||||
.condition(failOnGravityCondition)
|
||||
|
@ -14,25 +14,25 @@ import {doubleBattleDialogue} from "./dialogue";
|
||||
import {PersistentModifier} from "../modifier/modifier";
|
||||
import {TrainerVariant} from "../field/trainer";
|
||||
import {PartyMemberStrength} from "./enums/party-member-strength";
|
||||
import i18next from "i18next";
|
||||
import {getIsInitialized, initI18n} from "#app/plugins/i18n";
|
||||
import i18next from "i18next";
|
||||
|
||||
export enum TrainerPoolTier {
|
||||
COMMON,
|
||||
UNCOMMON,
|
||||
RARE,
|
||||
SUPER_RARE,
|
||||
ULTRA_RARE
|
||||
COMMON,
|
||||
UNCOMMON,
|
||||
RARE,
|
||||
SUPER_RARE,
|
||||
ULTRA_RARE
|
||||
}
|
||||
|
||||
export interface TrainerTierPools {
|
||||
[key: integer]: Species[]
|
||||
[key: integer]: Species[]
|
||||
}
|
||||
|
||||
export enum TrainerSlot {
|
||||
NONE,
|
||||
TRAINER,
|
||||
TRAINER_PARTNER
|
||||
NONE,
|
||||
TRAINER,
|
||||
TRAINER_PARTNER
|
||||
}
|
||||
|
||||
export class TrainerPartyTemplate {
|
||||
@ -168,7 +168,7 @@ type PartyMemberFunc = (scene: BattleScene, level: integer, strength: PartyMembe
|
||||
type GenModifiersFunc = (party: EnemyPokemon[]) => PersistentModifier[];
|
||||
|
||||
export interface PartyMemberFuncs {
|
||||
[key: integer]: PartyMemberFunc
|
||||
[key: integer]: PartyMemberFunc
|
||||
}
|
||||
|
||||
export class TrainerConfig {
|
||||
@ -381,6 +381,7 @@ export class TrainerConfig {
|
||||
// Set encounter and victory messages for double trainers
|
||||
this.doubleEncounterMessages = doubleBattleDialogue[nameDouble].encounter;
|
||||
this.doubleVictoryMessages = doubleBattleDialogue[nameDouble].victory;
|
||||
this.doubleDefeatMessages = doubleBattleDialogue[nameDouble].defeat;
|
||||
}
|
||||
}
|
||||
|
||||
@ -499,9 +500,10 @@ export class TrainerConfig {
|
||||
* Initializes the trainer configuration for a Gym Leader.
|
||||
* @param {Species | Species[]} signatureSpecies - The signature species for the Gym Leader.
|
||||
* @param {Type[]} specialtyTypes - The specialty types for the Gym Leader.
|
||||
* @param isMale - Whether the Gym Leader is Male or Not (for localization of the title).
|
||||
* @returns {TrainerConfig} - The updated TrainerConfig instance.
|
||||
* **/
|
||||
initForGymLeader(signatureSpecies: (Species | Species[])[], ...specialtyTypes: Type[]): TrainerConfig {
|
||||
initForGymLeader(signatureSpecies: (Species | Species[])[],isMale:boolean, ...specialtyTypes: Type[]): TrainerConfig {
|
||||
// Check if the internationalization (i18n) system is initialized.
|
||||
if (!getIsInitialized()) {
|
||||
initI18n();
|
||||
@ -532,6 +534,9 @@ export class TrainerConfig {
|
||||
|
||||
// Set the title to "gym_leader". (this is the key in the i18n file)
|
||||
this.setTitle("gym_leader");
|
||||
if (!isMale) {
|
||||
this.setTitle("gym_leader_female");
|
||||
}
|
||||
|
||||
// Configure various properties for the Gym Leader.
|
||||
this.setMoneyMultiplier(2.5);
|
||||
@ -551,9 +556,10 @@ export class TrainerConfig {
|
||||
* Initializes the trainer configuration for an Elite Four member.
|
||||
* @param {Species | Species[]} signatureSpecies - The signature species for the Elite Four member.
|
||||
* @param {Type[]} specialtyTypes - The specialty types for the Elite Four member.
|
||||
* @param isMale - Whether the Elite Four Member is Male or Female (for localization of the title).
|
||||
* @returns {TrainerConfig} - The updated TrainerConfig instance.
|
||||
**/
|
||||
initForEliteFour(signatureSpecies: (Species | Species[])[], ...specialtyTypes: Type[]): TrainerConfig {
|
||||
initForEliteFour(signatureSpecies: (Species | Species[])[],isMale: boolean, ...specialtyTypes: Type[]): TrainerConfig {
|
||||
// Check if the internationalization (i18n) system is initialized.
|
||||
if (!getIsInitialized()) {
|
||||
initI18n();
|
||||
@ -586,6 +592,9 @@ export class TrainerConfig {
|
||||
|
||||
// Set the title to "elite_four". (this is the key in the i18n file)
|
||||
this.setTitle("elite_four");
|
||||
if (!isMale) {
|
||||
this.setTitle("elite_four_female");
|
||||
}
|
||||
|
||||
// Configure various properties for the Elite Four member.
|
||||
this.setMoneyMultiplier(3.25);
|
||||
@ -601,9 +610,10 @@ export class TrainerConfig {
|
||||
/**
|
||||
* Initializes the trainer configuration for a Champion.
|
||||
* @param {Species | Species[]} signatureSpecies - The signature species for the Champion.
|
||||
* @param isMale - Whether the Champion is Male or Female (for localization of the title).
|
||||
* @returns {TrainerConfig} - The updated TrainerConfig instance.
|
||||
**/
|
||||
initForChampion(signatureSpecies: (Species | Species[])[]): TrainerConfig {
|
||||
initForChampion(signatureSpecies: (Species | Species[])[],isMale: boolean): TrainerConfig {
|
||||
// Check if the internationalization (i18n) system is initialized.
|
||||
if (!getIsInitialized()) {
|
||||
initI18n();
|
||||
@ -631,6 +641,9 @@ export class TrainerConfig {
|
||||
|
||||
// Set the title to "champion". (this is the key in the i18n file)
|
||||
this.setTitle("champion");
|
||||
if (!isMale) {
|
||||
this.setTitle("champion_female");
|
||||
}
|
||||
|
||||
|
||||
// Configure various properties for the Champion.
|
||||
@ -674,11 +687,11 @@ export class TrainerConfig {
|
||||
}
|
||||
// Check if the female version exists in the i18n file
|
||||
if (i18next.exists(`trainerClasses:${this.name.toLowerCase().replace()}`)) {
|
||||
// If it does, return
|
||||
// If it does, return
|
||||
return ret + "_female";
|
||||
} else {
|
||||
// If it doesn't, we do not do anything and go to the normal return
|
||||
// This is to prevent the game from displaying an error if a female version of the trainer does not exist in the localization
|
||||
// If it doesn't, we do not do anything and go to the normal return
|
||||
// This is to prevent the game from displaying an error if a female version of the trainer does not exist in the localization
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -733,7 +746,7 @@ export class TrainerConfig {
|
||||
let t = 0;
|
||||
|
||||
interface TrainerConfigs {
|
||||
[key: integer]: TrainerConfig
|
||||
[key: integer]: TrainerConfig
|
||||
}
|
||||
|
||||
function getWavePartyTemplate(scene: BattleScene, ...templates: TrainerPartyTemplate[]) {
|
||||
@ -775,7 +788,7 @@ function getRandomTeraModifiers(party: EnemyPokemon[], count: integer, types?: T
|
||||
}
|
||||
|
||||
type SignatureSpecies = {
|
||||
[key in string]: (Species | Species[])[];
|
||||
[key in string]: (Species | Species[])[];
|
||||
};
|
||||
|
||||
/*
|
||||
@ -1075,137 +1088,138 @@ export const trainerConfigs: TrainerConfigs = {
|
||||
.setSpeciesPools(
|
||||
[Species.CATERPIE, Species.WEEDLE, Species.RATTATA, Species.SENTRET, Species.POOCHYENA, Species.ZIGZAGOON, Species.WURMPLE, Species.BIDOOF, Species.PATRAT, Species.LILLIPUP]
|
||||
),
|
||||
[TrainerType.BROCK]: new TrainerConfig((t = TrainerType.BROCK)).initForGymLeader(signatureSpecies["BROCK"], Type.ROCK).setBattleBgm("battle_kanto_gym"),
|
||||
[TrainerType.MISTY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MISTY"], Type.WATER).setBattleBgm("battle_kanto_gym"),
|
||||
[TrainerType.LT_SURGE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["LT_SURGE"], Type.ELECTRIC).setBattleBgm("battle_kanto_gym"),
|
||||
[TrainerType.ERIKA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ERIKA"], Type.GRASS).setBattleBgm("battle_kanto_gym"),
|
||||
[TrainerType.JANINE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["JANINE"], Type.POISON).setBattleBgm("battle_kanto_gym"),
|
||||
[TrainerType.SABRINA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["SABRINA"], Type.PSYCHIC).setBattleBgm("battle_kanto_gym"),
|
||||
[TrainerType.BLAINE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BLAINE"], Type.FIRE).setBattleBgm("battle_kanto_gym"),
|
||||
[TrainerType.GIOVANNI]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GIOVANNI"], Type.DARK).setBattleBgm("battle_kanto_gym"),
|
||||
[TrainerType.FALKNER]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["FALKNER"], Type.FLYING).setBattleBgm("battle_johto_gym"),
|
||||
[TrainerType.BUGSY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BUGSY"], Type.BUG).setBattleBgm("battle_johto_gym"),
|
||||
[TrainerType.WHITNEY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WHITNEY"], Type.NORMAL).setBattleBgm("battle_johto_gym"),
|
||||
[TrainerType.MORTY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MORTY"], Type.GHOST).setBattleBgm("battle_johto_gym"),
|
||||
[TrainerType.CHUCK]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CHUCK"], Type.FIGHTING).setBattleBgm("battle_johto_gym"),
|
||||
[TrainerType.JASMINE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["JASMINE"], Type.STEEL).setBattleBgm("battle_johto_gym"),
|
||||
[TrainerType.PRYCE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["PRYCE"], Type.ICE).setBattleBgm("battle_johto_gym"),
|
||||
[TrainerType.CLAIR]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CLAIR"], Type.DRAGON).setBattleBgm("battle_johto_gym"),
|
||||
[TrainerType.ROXANNE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ROXANNE"], Type.ROCK).setBattleBgm("battle_hoenn_gym"),
|
||||
[TrainerType.BRAWLY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BRAWLY"], Type.FIGHTING).setBattleBgm("battle_hoenn_gym"),
|
||||
[TrainerType.WATTSON]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WATTSON"], Type.ELECTRIC).setBattleBgm("battle_hoenn_gym"),
|
||||
[TrainerType.FLANNERY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["FLANNERY"], Type.FIRE).setBattleBgm("battle_hoenn_gym"),
|
||||
[TrainerType.NORMAN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["NORMAN"], Type.NORMAL).setBattleBgm("battle_hoenn_gym"),
|
||||
[TrainerType.WINONA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WINONA"], Type.FLYING).setBattleBgm("battle_hoenn_gym"),
|
||||
[TrainerType.TATE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["TATE"], Type.PSYCHIC).setBattleBgm("battle_hoenn_gym").setHasDouble("tate_liza_double").setDoubleTrainerType(TrainerType.LIZA).setDoubleTitle("gym_leader_double"),
|
||||
[TrainerType.LIZA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["LIZA"], Type.PSYCHIC).setBattleBgm("battle_hoenn_gym").setHasDouble("liza_tate_double").setDoubleTrainerType(TrainerType.TATE).setDoubleTitle("gym_leader_double"),
|
||||
[TrainerType.JUAN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["JUAN"], Type.WATER).setBattleBgm("battle_hoenn_gym"),
|
||||
[TrainerType.ROARK]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ROARK"], Type.ROCK).setBattleBgm("battle_sinnoh_gym"),
|
||||
[TrainerType.GARDENIA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GARDENIA"], Type.GRASS).setBattleBgm("battle_sinnoh_gym"),
|
||||
[TrainerType.MAYLENE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MAYLENE"], Type.FIGHTING).setBattleBgm("battle_sinnoh_gym"),
|
||||
[TrainerType.CRASHER_WAKE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CRASHER_WAKE"], Type.WATER).setBattleBgm("battle_sinnoh_gym"),
|
||||
[TrainerType.FANTINA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["FANTINA"], Type.GHOST).setBattleBgm("battle_sinnoh_gym"),
|
||||
[TrainerType.BYRON]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BYRON"], Type.STEEL).setBattleBgm("battle_sinnoh_gym"),
|
||||
[TrainerType.CANDICE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CANDICE"], Type.ICE).setBattleBgm("battle_sinnoh_gym"),
|
||||
[TrainerType.VOLKNER]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["VOLKNER"], Type.ELECTRIC).setBattleBgm("battle_sinnoh_gym"),
|
||||
[TrainerType.CILAN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CILAN"], Type.GRASS),
|
||||
[TrainerType.CHILI]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CHILI"], Type.FIRE),
|
||||
[TrainerType.CRESS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CRESS"], Type.WATER),
|
||||
[TrainerType.CHEREN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CHEREN"], Type.NORMAL),
|
||||
[TrainerType.LENORA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["LENORA"], Type.NORMAL),
|
||||
[TrainerType.ROXIE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ROXIE"], Type.POISON),
|
||||
[TrainerType.BURGH]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BURGH"], Type.BUG),
|
||||
[TrainerType.ELESA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ELESA"], Type.ELECTRIC),
|
||||
[TrainerType.CLAY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CLAY"], Type.GROUND),
|
||||
[TrainerType.SKYLA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["SKYLA"], Type.FLYING),
|
||||
[TrainerType.BRYCEN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BRYCEN"], Type.ICE),
|
||||
[TrainerType.DRAYDEN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["DRAYDEN"], Type.DRAGON),
|
||||
[TrainerType.MARLON]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MARLON"], Type.WATER),
|
||||
[TrainerType.VIOLA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["VIOLA"], Type.BUG),
|
||||
[TrainerType.GRANT]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GRANT"], Type.ROCK),
|
||||
[TrainerType.KORRINA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KORRINA"], Type.FIGHTING),
|
||||
[TrainerType.RAMOS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["RAMOS"], Type.GRASS),
|
||||
[TrainerType.CLEMONT]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CLEMONT"], Type.ELECTRIC),
|
||||
[TrainerType.VALERIE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["VALERIE"], Type.FAIRY),
|
||||
[TrainerType.OLYMPIA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["OLYMPIA"], Type.PSYCHIC),
|
||||
[TrainerType.WULFRIC]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WULFRIC"], Type.ICE),
|
||||
[TrainerType.MILO]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MILO"], Type.GRASS),
|
||||
[TrainerType.NESSA]: new TrainerConfig(++t).setName("Nessa").initForGymLeader(signatureSpecies["NESSA"], Type.WATER),
|
||||
[TrainerType.KABU]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KABU"], Type.FIRE),
|
||||
[TrainerType.BEA]: new TrainerConfig(++t).setName("Bea").initForGymLeader(signatureSpecies["BEA"], Type.FIGHTING),
|
||||
[TrainerType.ALLISTER]: new TrainerConfig(++t).setName("Allister").initForGymLeader(signatureSpecies["ALLISTER"], Type.GHOST),
|
||||
[TrainerType.OPAL]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["OPAL"], Type.FAIRY),
|
||||
[TrainerType.BEDE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BEDE"], Type.FAIRY),
|
||||
[TrainerType.GORDIE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GORDIE"], Type.ROCK),
|
||||
[TrainerType.MELONY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MELONY"], Type.ICE),
|
||||
[TrainerType.PIERS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["PIERS"], Type.DARK).setHasDouble("piers_marnie_double").setDoubleTrainerType(TrainerType.MARNIE).setDoubleTitle("gym_leader_double"),
|
||||
[TrainerType.MARNIE]: new TrainerConfig(++t).setName("Marnie").initForGymLeader(signatureSpecies["MARNIE"], Type.DARK).setHasDouble("marnie_piers_double").setDoubleTrainerType(TrainerType.PIERS).setDoubleTitle("gym_leader_double"),
|
||||
[TrainerType.RAIHAN]: new TrainerConfig(++t).setName("Raihan").initForGymLeader(signatureSpecies["RAIHAN"], Type.DRAGON),
|
||||
[TrainerType.KATY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KATY"], Type.BUG),
|
||||
[TrainerType.BRASSIUS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BRASSIUS"], Type.GRASS),
|
||||
[TrainerType.IONO]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["IONO"], Type.ELECTRIC),
|
||||
[TrainerType.KOFU]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KOFU"], Type.WATER),
|
||||
[TrainerType.LARRY]: new TrainerConfig(++t).setName("Larry").initForGymLeader(signatureSpecies["LARRY"], Type.NORMAL),
|
||||
[TrainerType.RYME]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["RYME"], Type.GHOST),
|
||||
[TrainerType.TULIP]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["TULIP"], Type.PSYCHIC),
|
||||
[TrainerType.GRUSHA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GRUSHA"], Type.ICE),
|
||||
[TrainerType.BROCK]: new TrainerConfig((t = TrainerType.BROCK)).initForGymLeader(signatureSpecies["BROCK"],true, Type.ROCK).setBattleBgm("battle_kanto_gym"),
|
||||
[TrainerType.MISTY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MISTY"],false, Type.WATER).setBattleBgm("battle_kanto_gym"),
|
||||
[TrainerType.LT_SURGE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["LT_SURGE"],true, Type.ELECTRIC).setBattleBgm("battle_kanto_gym"),
|
||||
[TrainerType.ERIKA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ERIKA"],false, Type.GRASS).setBattleBgm("battle_kanto_gym"),
|
||||
[TrainerType.JANINE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["JANINE"],false, Type.POISON).setBattleBgm("battle_kanto_gym"),
|
||||
[TrainerType.SABRINA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["SABRINA"],false, Type.PSYCHIC).setBattleBgm("battle_kanto_gym"),
|
||||
[TrainerType.BLAINE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BLAINE"],true, Type.FIRE).setBattleBgm("battle_kanto_gym"),
|
||||
[TrainerType.GIOVANNI]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GIOVANNI"],true, Type.DARK).setBattleBgm("battle_kanto_gym"),
|
||||
[TrainerType.FALKNER]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["FALKNER"],true, Type.FLYING).setBattleBgm("battle_johto_gym"),
|
||||
[TrainerType.BUGSY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BUGSY"],true, Type.BUG).setBattleBgm("battle_johto_gym"),
|
||||
[TrainerType.WHITNEY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WHITNEY"],false, Type.NORMAL).setBattleBgm("battle_johto_gym"),
|
||||
[TrainerType.MORTY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MORTY"],true, Type.GHOST).setBattleBgm("battle_johto_gym"),
|
||||
[TrainerType.CHUCK]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CHUCK"],true, Type.FIGHTING).setBattleBgm("battle_johto_gym"),
|
||||
[TrainerType.JASMINE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["JASMINE"],false, Type.STEEL).setBattleBgm("battle_johto_gym"),
|
||||
[TrainerType.PRYCE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["PRYCE"],true, Type.ICE).setBattleBgm("battle_johto_gym"),
|
||||
[TrainerType.CLAIR]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CLAIR"],false, Type.DRAGON).setBattleBgm("battle_johto_gym"),
|
||||
[TrainerType.ROXANNE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ROXANNE"],false, Type.ROCK).setBattleBgm("battle_hoenn_gym"),
|
||||
[TrainerType.BRAWLY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BRAWLY"],true, Type.FIGHTING).setBattleBgm("battle_hoenn_gym"),
|
||||
[TrainerType.WATTSON]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WATTSON"],true, Type.ELECTRIC).setBattleBgm("battle_hoenn_gym"),
|
||||
[TrainerType.FLANNERY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["FLANNERY"],false, Type.FIRE).setBattleBgm("battle_hoenn_gym"),
|
||||
[TrainerType.NORMAN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["NORMAN"],true, Type.NORMAL).setBattleBgm("battle_hoenn_gym"),
|
||||
[TrainerType.WINONA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WINONA"],false, Type.FLYING).setBattleBgm("battle_hoenn_gym"),
|
||||
[TrainerType.TATE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["TATE"],true, Type.PSYCHIC).setBattleBgm("battle_hoenn_gym").setHasDouble("tate_liza_double").setDoubleTrainerType(TrainerType.LIZA).setDoubleTitle("gym_leader_double"),
|
||||
[TrainerType.LIZA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["LIZA"],false, Type.PSYCHIC).setBattleBgm("battle_hoenn_gym").setHasDouble("liza_tate_double").setDoubleTrainerType(TrainerType.TATE).setDoubleTitle("gym_leader_double"),
|
||||
[TrainerType.JUAN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["JUAN"],true, Type.WATER).setBattleBgm("battle_hoenn_gym"),
|
||||
[TrainerType.ROARK]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ROARK"],true, Type.ROCK).setBattleBgm("battle_sinnoh_gym"),
|
||||
[TrainerType.GARDENIA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GARDENIA"],false, Type.GRASS).setBattleBgm("battle_sinnoh_gym"),
|
||||
[TrainerType.MAYLENE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MAYLENE"],false, Type.FIGHTING).setBattleBgm("battle_sinnoh_gym"),
|
||||
[TrainerType.CRASHER_WAKE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CRASHER_WAKE"],true, Type.WATER).setBattleBgm("battle_sinnoh_gym"),
|
||||
[TrainerType.FANTINA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["FANTINA"],false, Type.GHOST).setBattleBgm("battle_sinnoh_gym"),
|
||||
[TrainerType.BYRON]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BYRON"],true, Type.STEEL).setBattleBgm("battle_sinnoh_gym"),
|
||||
[TrainerType.CANDICE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CANDICE"],false, Type.ICE).setBattleBgm("battle_sinnoh_gym"),
|
||||
[TrainerType.VOLKNER]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["VOLKNER"],true, Type.ELECTRIC).setBattleBgm("battle_sinnoh_gym"),
|
||||
[TrainerType.CILAN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CILAN"],true, Type.GRASS),
|
||||
[TrainerType.CHILI]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CHILI"],true, Type.FIRE),
|
||||
[TrainerType.CRESS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CRESS"],true, Type.WATER),
|
||||
[TrainerType.CHEREN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CHEREN"],true, Type.NORMAL),
|
||||
[TrainerType.LENORA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["LENORA"],false, Type.NORMAL),
|
||||
[TrainerType.ROXIE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ROXIE"],false, Type.POISON),
|
||||
[TrainerType.BURGH]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BURGH"],true, Type.BUG),
|
||||
[TrainerType.ELESA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["ELESA"],false, Type.ELECTRIC),
|
||||
[TrainerType.CLAY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CLAY"],true, Type.GROUND),
|
||||
[TrainerType.SKYLA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["SKYLA"],false, Type.FLYING),
|
||||
[TrainerType.BRYCEN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BRYCEN"],true, Type.ICE),
|
||||
[TrainerType.DRAYDEN]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["DRAYDEN"],true, Type.DRAGON),
|
||||
[TrainerType.MARLON]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MARLON"],true, Type.WATER),
|
||||
[TrainerType.VIOLA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["VIOLA"],false, Type.BUG),
|
||||
[TrainerType.GRANT]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GRANT"],true, Type.ROCK),
|
||||
[TrainerType.KORRINA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KORRINA"],false, Type.FIGHTING),
|
||||
[TrainerType.RAMOS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["RAMOS"],true, Type.GRASS),
|
||||
[TrainerType.CLEMONT]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["CLEMONT"],true, Type.ELECTRIC),
|
||||
[TrainerType.VALERIE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["VALERIE"],false, Type.FAIRY),
|
||||
[TrainerType.OLYMPIA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["OLYMPIA"],false, Type.PSYCHIC),
|
||||
[TrainerType.WULFRIC]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["WULFRIC"],true, Type.ICE),
|
||||
[TrainerType.MILO]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MILO"],true, Type.GRASS),
|
||||
[TrainerType.NESSA]: new TrainerConfig(++t).setName("Nessa").initForGymLeader(signatureSpecies["NESSA"],false, Type.WATER),
|
||||
[TrainerType.KABU]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KABU"],true, Type.FIRE),
|
||||
[TrainerType.BEA]: new TrainerConfig(++t).setName("Bea").initForGymLeader(signatureSpecies["BEA"],false, Type.FIGHTING),
|
||||
[TrainerType.ALLISTER]: new TrainerConfig(++t).setName("Allister").initForGymLeader(signatureSpecies["ALLISTER"],true, Type.GHOST),
|
||||
[TrainerType.OPAL]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["OPAL"],false, Type.FAIRY),
|
||||
[TrainerType.BEDE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BEDE"],true, Type.FAIRY),
|
||||
[TrainerType.GORDIE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GORDIE"],true, Type.ROCK),
|
||||
[TrainerType.MELONY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MELONY"],false, Type.ICE),
|
||||
[TrainerType.PIERS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["PIERS"],true, Type.DARK).setHasDouble("piers_marnie_double").setDoubleTrainerType(TrainerType.MARNIE).setDoubleTitle("gym_leader_double"),
|
||||
[TrainerType.MARNIE]: new TrainerConfig(++t).setName("Marnie").initForGymLeader(signatureSpecies["MARNIE"],false, Type.DARK).setHasDouble("marnie_piers_double").setDoubleTrainerType(TrainerType.PIERS).setDoubleTitle("gym_leader_double"),
|
||||
[TrainerType.RAIHAN]: new TrainerConfig(++t).setName("Raihan").initForGymLeader(signatureSpecies["RAIHAN"],true, Type.DRAGON),
|
||||
[TrainerType.KATY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KATY"],false, Type.BUG),
|
||||
[TrainerType.BRASSIUS]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["BRASSIUS"],true, Type.GRASS),
|
||||
[TrainerType.IONO]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["IONO"],false, Type.ELECTRIC),
|
||||
[TrainerType.KOFU]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["KOFU"],true, Type.WATER),
|
||||
[TrainerType.LARRY]: new TrainerConfig(++t).setName("Larry").initForGymLeader(signatureSpecies["LARRY"],true, Type.NORMAL),
|
||||
[TrainerType.RYME]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["RYME"],false, Type.GHOST),
|
||||
[TrainerType.TULIP]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["TULIP"],false, Type.PSYCHIC),
|
||||
[TrainerType.GRUSHA]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["GRUSHA"],true, Type.ICE),
|
||||
|
||||
[TrainerType.LORELEI]: new TrainerConfig((t = TrainerType.LORELEI)).initForEliteFour(signatureSpecies["LORELEI"], Type.ICE),
|
||||
[TrainerType.BRUNO]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["BRUNO"], Type.FIGHTING),
|
||||
[TrainerType.AGATHA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["AGATHA"], Type.GHOST),
|
||||
[TrainerType.LANCE]: new TrainerConfig(++t).setName("Lance").initForEliteFour(signatureSpecies["LANCE"], Type.DRAGON),
|
||||
[TrainerType.WILL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["WILL"], Type.PSYCHIC),
|
||||
[TrainerType.KOGA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["KOGA"], Type.POISON),
|
||||
[TrainerType.KAREN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["KAREN"], Type.DARK),
|
||||
[TrainerType.SIDNEY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["SIDNEY"], Type.DARK),
|
||||
[TrainerType.PHOEBE]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["PHOEBE"], Type.GHOST),
|
||||
[TrainerType.GLACIA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["GLACIA"], Type.ICE),
|
||||
[TrainerType.DRAKE]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["DRAKE"], Type.DRAGON),
|
||||
[TrainerType.AARON]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["AARON"], Type.BUG),
|
||||
[TrainerType.BERTHA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["BERTHA"], Type.GROUND),
|
||||
[TrainerType.FLINT]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["FLINT"], Type.FIRE),
|
||||
[TrainerType.LUCIAN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["LUCIAN"], Type.PSYCHIC),
|
||||
[TrainerType.SHAUNTAL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["SHAUNTAL"], Type.GHOST),
|
||||
[TrainerType.MARSHAL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["MARSHAL"], Type.FIGHTING),
|
||||
[TrainerType.GRIMSLEY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["GRIMSLEY"], Type.DARK),
|
||||
[TrainerType.CAITLIN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["CAITLIN"], Type.PSYCHIC),
|
||||
[TrainerType.MALVA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["MALVA"], Type.FIRE),
|
||||
[TrainerType.SIEBOLD]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["SIEBOLD"], Type.WATER),
|
||||
[TrainerType.WIKSTROM]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["WIKSTROM"], Type.STEEL),
|
||||
[TrainerType.DRASNA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["DRASNA"], Type.DRAGON),
|
||||
[TrainerType.HALA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["HALA"], Type.FIGHTING),
|
||||
[TrainerType.MOLAYNE]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["MOLAYNE"], Type.STEEL),
|
||||
[TrainerType.OLIVIA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["OLIVIA"], Type.ROCK),
|
||||
[TrainerType.ACEROLA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["ACEROLA"], Type.GHOST),
|
||||
[TrainerType.KAHILI]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["KAHILI"], Type.FLYING),
|
||||
[TrainerType.MARNIE_ELITE]: new TrainerConfig(++t).setName("Marnie").initForEliteFour(signatureSpecies["MARNIE_ELITE"], Type.DARK),
|
||||
[TrainerType.NESSA_ELITE]: new TrainerConfig(++t).setName("Nessa").initForEliteFour(signatureSpecies["NESSA_ELITE"], Type.WATER),
|
||||
[TrainerType.BEA_ELITE]: new TrainerConfig(++t).setName("Bea").initForEliteFour(signatureSpecies["BEA_ELITE"], Type.FIGHTING),
|
||||
[TrainerType.ALLISTER_ELITE]: new TrainerConfig(++t).setName("Allister").initForEliteFour(signatureSpecies["ALLISTER_ELITE"], Type.GHOST),
|
||||
[TrainerType.RAIHAN_ELITE]: new TrainerConfig(++t).setName("Raihan").initForEliteFour(signatureSpecies["RAIHAN_ELITE"], Type.DRAGON),
|
||||
[TrainerType.RIKA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["RIKA"], Type.GROUND),
|
||||
[TrainerType.POPPY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["POPPY"], Type.STEEL),
|
||||
[TrainerType.LARRY_ELITE]: new TrainerConfig(++t).setName("Larry").initForEliteFour(signatureSpecies["LARRY_ELITE"], Type.NORMAL, Type.FLYING),
|
||||
[TrainerType.HASSEL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["HASSEL"], Type.DRAGON),
|
||||
[TrainerType.CRISPIN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["CRISPIN"], Type.FIRE),
|
||||
[TrainerType.AMARYS]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["AMARYS"], Type.STEEL),
|
||||
[TrainerType.LACEY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["LACEY"], Type.FAIRY),
|
||||
[TrainerType.DRAYTON]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["DRAYTON"], Type.DRAGON),
|
||||
[TrainerType.LORELEI]: new TrainerConfig((t = TrainerType.LORELEI)).initForEliteFour(signatureSpecies["LORELEI"],false, Type.ICE),
|
||||
[TrainerType.BRUNO]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["BRUNO"], true, Type.FIGHTING),
|
||||
[TrainerType.AGATHA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["AGATHA"], false,Type.GHOST),
|
||||
[TrainerType.LANCE]: new TrainerConfig(++t).setName("Lance").initForEliteFour(signatureSpecies["LANCE"],true, Type.DRAGON),
|
||||
[TrainerType.WILL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["WILL"],true, Type.PSYCHIC),
|
||||
[TrainerType.KOGA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["KOGA"], true, Type.POISON),
|
||||
[TrainerType.KAREN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["KAREN"],false, Type.DARK),
|
||||
[TrainerType.SIDNEY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["SIDNEY"],true, Type.DARK),
|
||||
[TrainerType.PHOEBE]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["PHOEBE"],false, Type.GHOST),
|
||||
[TrainerType.GLACIA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["GLACIA"],false, Type.ICE),
|
||||
[TrainerType.DRAKE]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["DRAKE"],true, Type.DRAGON),
|
||||
[TrainerType.AARON]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["AARON"],true, Type.BUG),
|
||||
[TrainerType.BERTHA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["BERTHA"],false, Type.GROUND),
|
||||
[TrainerType.FLINT]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["FLINT"],true, Type.FIRE),
|
||||
[TrainerType.LUCIAN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["LUCIAN"], true,Type.PSYCHIC),
|
||||
[TrainerType.SHAUNTAL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["SHAUNTAL"],false, Type.GHOST),
|
||||
[TrainerType.MARSHAL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["MARSHAL"],true, Type.FIGHTING),
|
||||
[TrainerType.GRIMSLEY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["GRIMSLEY"],true, Type.DARK),
|
||||
[TrainerType.CAITLIN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["CAITLIN"],false, Type.PSYCHIC),
|
||||
[TrainerType.MALVA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["MALVA"], false,Type.FIRE),
|
||||
[TrainerType.SIEBOLD]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["SIEBOLD"], true,Type.WATER),
|
||||
[TrainerType.WIKSTROM]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["WIKSTROM"],true, Type.STEEL),
|
||||
[TrainerType.DRASNA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["DRASNA"],false, Type.DRAGON),
|
||||
[TrainerType.HALA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["HALA"],true, Type.FIGHTING),
|
||||
[TrainerType.MOLAYNE]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["MOLAYNE"],true, Type.STEEL),
|
||||
[TrainerType.OLIVIA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["OLIVIA"],false, Type.ROCK),
|
||||
[TrainerType.ACEROLA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["ACEROLA"],false, Type.GHOST),
|
||||
[TrainerType.KAHILI]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["KAHILI"],false, Type.FLYING),
|
||||
[TrainerType.MARNIE_ELITE]: new TrainerConfig(++t).setName("Marnie").initForEliteFour(signatureSpecies["MARNIE_ELITE"],false, Type.DARK),
|
||||
[TrainerType.NESSA_ELITE]: new TrainerConfig(++t).setName("Nessa").initForEliteFour(signatureSpecies["NESSA_ELITE"],false, Type.WATER),
|
||||
[TrainerType.BEA_ELITE]: new TrainerConfig(++t).setName("Bea").initForEliteFour(signatureSpecies["BEA_ELITE"],false, Type.FIGHTING),
|
||||
[TrainerType.ALLISTER_ELITE]: new TrainerConfig(++t).setName("Allister").initForEliteFour(signatureSpecies["ALLISTER_ELITE"],true, Type.GHOST),
|
||||
[TrainerType.RAIHAN_ELITE]: new TrainerConfig(++t).setName("Raihan").initForEliteFour(signatureSpecies["RAIHAN_ELITE"],true, Type.DRAGON),
|
||||
[TrainerType.RIKA]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["RIKA"],false, Type.GROUND),
|
||||
[TrainerType.POPPY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["POPPY"],false, Type.STEEL),
|
||||
[TrainerType.LARRY_ELITE]: new TrainerConfig(++t).setName("Larry").initForEliteFour(signatureSpecies["LARRY_ELITE"],true, Type.NORMAL, Type.FLYING),
|
||||
[TrainerType.HASSEL]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["HASSEL"],true, Type.DRAGON),
|
||||
[TrainerType.CRISPIN]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["CRISPIN"],true, Type.FIRE),
|
||||
[TrainerType.AMARYS]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["AMARYS"],false, Type.STEEL),
|
||||
[TrainerType.LACEY]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["LACEY"],false, Type.FAIRY),
|
||||
[TrainerType.DRAYTON]: new TrainerConfig(++t).initForEliteFour(signatureSpecies["DRAYTON"],true, Type.DRAGON),
|
||||
|
||||
[TrainerType.BLUE]: new TrainerConfig((t = TrainerType.BLUE)).initForChampion(signatureSpecies["BLUE"],true).setBattleBgm("battle_kanto_champion").setHasDouble("blue_red_double").setDoubleTrainerType(TrainerType.RED).setDoubleTitle("champion_double"),
|
||||
[TrainerType.RED]: new TrainerConfig(++t).initForChampion(signatureSpecies["RED"],true).setBattleBgm("battle_johto_champion").setHasDouble("red_blue_double").setDoubleTrainerType(TrainerType.BLUE).setDoubleTitle("champion_double"),
|
||||
[TrainerType.LANCE_CHAMPION]: new TrainerConfig(++t).setName("Lance").initForChampion(signatureSpecies["LANCE_CHAMPION"],true).setBattleBgm("battle_johto_champion"),
|
||||
[TrainerType.STEVEN]: new TrainerConfig(++t).initForChampion(signatureSpecies["STEVEN"],true).setBattleBgm("battle_hoenn_champion").setHasDouble("steven_wallace_double").setDoubleTrainerType(TrainerType.WALLACE).setDoubleTitle("champion_double"),
|
||||
[TrainerType.WALLACE]: new TrainerConfig(++t).initForChampion(signatureSpecies["WALLACE"],true).setBattleBgm("battle_hoenn_champion").setHasDouble("wallace_steven_double").setDoubleTrainerType(TrainerType.STEVEN).setDoubleTitle("champion_double"),
|
||||
[TrainerType.CYNTHIA]: new TrainerConfig(++t).initForChampion(signatureSpecies["CYNTHIA"],false).setBattleBgm("battle_sinnoh_champion"),
|
||||
[TrainerType.ALDER]: new TrainerConfig(++t).initForChampion(signatureSpecies["ALDER"],true).setHasDouble("alder_iris_double").setDoubleTrainerType(TrainerType.IRIS).setDoubleTitle("champion_double").setBattleBgm("battle_champion_alder"),
|
||||
[TrainerType.IRIS]: new TrainerConfig(++t).initForChampion(signatureSpecies["IRIS"],false).setBattleBgm("battle_champion_iris").setHasDouble("iris_alder_double").setDoubleTrainerType(TrainerType.ALDER).setDoubleTitle("champion_double"),
|
||||
[TrainerType.DIANTHA]: new TrainerConfig(++t).initForChampion(signatureSpecies["DIANTHA"],false),
|
||||
[TrainerType.HAU]: new TrainerConfig(++t).initForChampion(signatureSpecies["HAU"],true),
|
||||
[TrainerType.LEON]: new TrainerConfig(++t).initForChampion(signatureSpecies["LEON"],true),
|
||||
[TrainerType.GEETA]: new TrainerConfig(++t).initForChampion(signatureSpecies["GEETA"],false),
|
||||
[TrainerType.NEMONA]: new TrainerConfig(++t).initForChampion(signatureSpecies["NEMONA"],false),
|
||||
[TrainerType.KIERAN]: new TrainerConfig(++t).initForChampion(signatureSpecies["KIERAN"],true),
|
||||
|
||||
[TrainerType.BLUE]: new TrainerConfig((t = TrainerType.BLUE)).initForChampion(signatureSpecies["BLUE"]).setBattleBgm("battle_kanto_champion").setHasDouble("blue_red_double").setDoubleTrainerType(TrainerType.RED).setDoubleTitle("champion_double"),
|
||||
[TrainerType.RED]: new TrainerConfig(++t).initForChampion(signatureSpecies["RED"]).setBattleBgm("battle_johto_champion").setHasDouble("red_blue_double").setDoubleTrainerType(TrainerType.BLUE).setDoubleTitle("champion_double"),
|
||||
[TrainerType.LANCE_CHAMPION]: new TrainerConfig(++t).setName("Lance").initForChampion(signatureSpecies["LANCE_CHAMPION"]).setBattleBgm("battle_johto_champion"),
|
||||
[TrainerType.STEVEN]: new TrainerConfig(++t).initForChampion(signatureSpecies["STEVEN"]).setBattleBgm("battle_hoenn_champion").setHasDouble("steven_wallace_double").setDoubleTrainerType(TrainerType.WALLACE).setDoubleTitle("champion_double"),
|
||||
[TrainerType.WALLACE]: new TrainerConfig(++t).initForChampion(signatureSpecies["WALLACE"]).setBattleBgm("battle_hoenn_champion").setHasDouble("wallace_steven_double").setDoubleTrainerType(TrainerType.STEVEN).setDoubleTitle("champion_double"),
|
||||
[TrainerType.CYNTHIA]: new TrainerConfig(++t).initForChampion(signatureSpecies["CYNTHIA"]).setBattleBgm("battle_sinnoh_champion"),
|
||||
[TrainerType.ALDER]: new TrainerConfig(++t).initForChampion(signatureSpecies["ALDER"]).setHasDouble("alder_iris_double").setDoubleTrainerType(TrainerType.IRIS).setDoubleTitle("champion_double").setBattleBgm("battle_champion_alder"),
|
||||
[TrainerType.IRIS]: new TrainerConfig(++t).initForChampion(signatureSpecies["IRIS"]).setBattleBgm("battle_champion_iris").setHasDouble("iris_alder_double").setDoubleTrainerType(TrainerType.ALDER).setDoubleTitle("champion_double"),
|
||||
[TrainerType.DIANTHA]: new TrainerConfig(++t).initForChampion(signatureSpecies["DIANTHA"]),
|
||||
[TrainerType.HAU]: new TrainerConfig(++t).initForChampion(signatureSpecies["HAU"]),
|
||||
[TrainerType.LEON]: new TrainerConfig(++t).initForChampion(signatureSpecies["LEON"]),
|
||||
[TrainerType.GEETA]: new TrainerConfig(++t).initForChampion(signatureSpecies["GEETA"]),
|
||||
[TrainerType.NEMONA]: new TrainerConfig(++t).initForChampion(signatureSpecies["NEMONA"]),
|
||||
[TrainerType.KIERAN]: new TrainerConfig(++t).initForChampion(signatureSpecies["KIERAN"]),
|
||||
|
||||
[TrainerType.RIVAL]: new TrainerConfig((t = TrainerType.RIVAL)).setName("Finn").setHasGenders("Ivy").setHasCharSprite().setTitle("Rival").setStaticParty().setEncounterBgm(TrainerType.RIVAL).setBattleBgm("battle_rival").setPartyTemplates(trainerPartyTemplates.RIVAL)
|
||||
.setModifierRewardFuncs(() => modifierTypes.SUPER_EXP_CHARM, () => modifierTypes.EXP_SHARE)
|
||||
|
@ -9,7 +9,6 @@ import { WindowVariant, getWindowVariantSuffix } from "./ui/ui-theme";
|
||||
import { isMobile } from "./touch-controls";
|
||||
import * as Utils from "./utils";
|
||||
import { initI18n } from "./plugins/i18n";
|
||||
import {initStatsKeys} from "#app/ui/game-stats-ui-handler";
|
||||
import {initPokemonPrevolutions} from "#app/data/pokemon-evolutions";
|
||||
import {initBiomes} from "#app/data/biomes";
|
||||
import {initEggMoves} from "#app/data/egg-moves";
|
||||
@ -18,6 +17,7 @@ import {initSpecies} from "#app/data/pokemon-species";
|
||||
import {initMoves} from "#app/data/move";
|
||||
import {initAbilities} from "#app/data/ability";
|
||||
import {initTrainerTypeDialogue} from "#app/data/dialogue";
|
||||
import i18next from "i18next";
|
||||
|
||||
export class LoadingScene extends SceneBase {
|
||||
constructor() {
|
||||
@ -205,6 +205,21 @@ export class LoadingScene extends SceneBase {
|
||||
this.loadAtlas("pb", "");
|
||||
this.loadAtlas("items", "");
|
||||
this.loadAtlas("types", "");
|
||||
|
||||
// Get current lang and load the types atlas for it. English will only load types while all other languages will load types and types_<lang>
|
||||
const lang = i18next.language;
|
||||
if (lang !== "en") {
|
||||
if (Utils.verifyLang(lang)) {
|
||||
this.loadAtlas(`types_${lang}`, "");
|
||||
} else {
|
||||
// Fallback to English
|
||||
this.loadAtlas("types", "");
|
||||
}
|
||||
} else {
|
||||
this.loadAtlas("types", "");
|
||||
}
|
||||
|
||||
|
||||
this.loadAtlas("statuses", "");
|
||||
this.loadAtlas("categories", "");
|
||||
|
||||
@ -294,7 +309,6 @@ export class LoadingScene extends SceneBase {
|
||||
|
||||
this.loadLoadingScreen();
|
||||
|
||||
initStatsKeys();
|
||||
initPokemonPrevolutions();
|
||||
initBiomes();
|
||||
initEggMoves();
|
||||
|
@ -20,7 +20,16 @@ import { tutorial } from "./tutorial";
|
||||
import { weather } from "./weather";
|
||||
import { battleMessageUiHandler } from "./battle-message-ui-handler";
|
||||
import { berry } from "./berry";
|
||||
import { gameStatsUiHandler } from "./game-stats-ui-handler";
|
||||
import { voucher } from "./voucher";
|
||||
import {
|
||||
PGMdialogue,
|
||||
PGFdialogue,
|
||||
PGMbattleSpecDialogue,
|
||||
PGFbattleSpecDialogue,
|
||||
PGMmiscDialogue,
|
||||
PGFmiscDialogue, PGMdoubleBattleDialogue, PGFdoubleBattleDialogue
|
||||
} from "./dialogue";
|
||||
import { biome } from "./biome";
|
||||
|
||||
export const deConfig = {
|
||||
@ -48,6 +57,15 @@ export const deConfig = {
|
||||
weather: weather,
|
||||
battleMessageUiHandler: battleMessageUiHandler,
|
||||
berry: berry,
|
||||
gameStatsUiHandler: gameStatsUiHandler,
|
||||
voucher: voucher,
|
||||
biome: biome,
|
||||
PGMdialogue: PGMdialogue,
|
||||
PGFdialogue: PGFdialogue,
|
||||
PGMbattleSpecDialogue: PGMbattleSpecDialogue,
|
||||
PGFbattleSpecDialogue: PGFbattleSpecDialogue,
|
||||
PGMmiscDialogue: PGMmiscDialogue,
|
||||
PGFmiscDialogue: PGFmiscDialogue,
|
||||
PGMdoubleBattleDialogue: PGMdoubleBattleDialogue,
|
||||
PGFdoubleBattleDialogue: PGFdoubleBattleDialogue
|
||||
};
|
||||
|
2511
src/locales/de/dialogue.ts
Normal file
44
src/locales/de/game-stats-ui-handler.ts
Normal file
@ -0,0 +1,44 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const gameStatsUiHandler: SimpleTranslationEntries = {
|
||||
"stats": "Statistiken",
|
||||
"playTime": "Spielzeit",
|
||||
"totalBattles": "Kämpfe insgesamt",
|
||||
"starters": "Starter",
|
||||
"shinyStarters": "Schillernde Starter",
|
||||
"speciesSeen": "Gesehene Arten",
|
||||
"speciesCaught": "Gefangene Arten",
|
||||
"ribbonsOwned": "Bänder im Besitz",
|
||||
"classicRuns": "Klassik-Modus Versuche",
|
||||
"classicWins": "Klassik-Modus Siege",
|
||||
"dailyRunAttempts": "Täglicher-Modus Versuche",
|
||||
"dailyRunWins": "Täglicher-Modus Siege",
|
||||
"endlessRuns": "Endlos-Modus Versuche",
|
||||
"highestWaveEndless": "Höchste Welle (Endlos)",
|
||||
"highestMoney": "Max. Geld im Besitz",
|
||||
"highestDamage": "Höchster Schaden",
|
||||
"highestHPHealed": "Höchste Heilung",
|
||||
"pokemonEncountered": "Getroffene Pokémon",
|
||||
"pokemonDefeated": "Besiegte Pokémon",
|
||||
"pokemonCaught": "Gefangene Pokémon",
|
||||
"eggsHatched": "Ausgebrütete Eier",
|
||||
"subLegendsSeen": "Getroffene Sub-Legenden",
|
||||
"subLegendsCaught": "Gefangene Sub-Legenden",
|
||||
"subLegendsHatched": "Ausgebrütete Sub-Legenden",
|
||||
"legendsSeen": "Getroffene Legenden",
|
||||
"legendsCaught": "Gefangene Legenden",
|
||||
"legendsHatched": "Ausgebrütete Legenden",
|
||||
"mythicalsSeen": "Getroffene Mythische",
|
||||
"mythicalsCaught": "Gefangene Mythische",
|
||||
"mythicalsHatched": "Ausgebrütete Mythische",
|
||||
"shiniesSeen": "Getroffene Schillernde",
|
||||
"shiniesCaught": "Gefangene Schillernde",
|
||||
"shiniesHatched": "Ausgebrütete Schillernde",
|
||||
"pokemonFused": "Pokémon fusioniert",
|
||||
"trainersDefeated": "Besiegte Trainer",
|
||||
"eggsPulled": "Gezogene Eier",
|
||||
"rareEggsPulled": "Seltene Eier Gezogen",
|
||||
"epicEggsPulled": "Epische Eier Gezogen",
|
||||
"legendaryEggsPulled": "Legendäre Eier Gezogen",
|
||||
"manaphyEggsPulled": "Manaphy Eier Gezogen",
|
||||
} as const;
|
@ -3,10 +3,12 @@ import {SimpleTranslationEntries} from "#app/plugins/i18n";
|
||||
// Titles of special trainers like gym leaders, elite four, and the champion
|
||||
export const titles: SimpleTranslationEntries = {
|
||||
"elite_four": "Top Vier",
|
||||
"elite_four_female": "Top Vier",
|
||||
"gym_leader": "Arenaleiter",
|
||||
"gym_leader_female": "Arenaleiterin",
|
||||
"gym_leader_double": "Arenaleiter-Duo",
|
||||
"champion": "Champion",
|
||||
"champion_female": "Champion",
|
||||
"champion_double": "Champion-Duo",
|
||||
"rival": "Rivale",
|
||||
"professor": "Professor",
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const voucher: SimpleTranslationEntries = {
|
||||
"vouchers": "Gutschein",
|
||||
"vouchers": "Gutscheine",
|
||||
"eggVoucher": "Ei-Gutschein",
|
||||
"eggVoucherPlus": "Ei-Gutschein Plus",
|
||||
"eggVoucherPremium": "Ei-Gutschein Premium",
|
||||
|
@ -20,7 +20,16 @@ import { tutorial } from "./tutorial";
|
||||
import { weather } from "./weather";
|
||||
import { battleMessageUiHandler } from "./battle-message-ui-handler";
|
||||
import { berry } from "./berry";
|
||||
import { gameStatsUiHandler } from "./game-stats-ui-handler";
|
||||
import { voucher } from "./voucher";
|
||||
import {
|
||||
PGMdialogue,
|
||||
PGFdialogue,
|
||||
PGMbattleSpecDialogue,
|
||||
PGFbattleSpecDialogue,
|
||||
PGMmiscDialogue,
|
||||
PGFmiscDialogue, PGMdoubleBattleDialogue, PGFdoubleBattleDialogue
|
||||
} from "./dialogue";
|
||||
import { biome } from "./biome";
|
||||
|
||||
export const enConfig = {
|
||||
@ -48,6 +57,15 @@ export const enConfig = {
|
||||
weather: weather,
|
||||
battleMessageUiHandler: battleMessageUiHandler,
|
||||
berry: berry,
|
||||
gameStatsUiHandler: gameStatsUiHandler,
|
||||
voucher: voucher,
|
||||
biome: biome,
|
||||
PGMdialogue: PGMdialogue,
|
||||
PGFdialogue: PGFdialogue,
|
||||
PGMbattleSpecDialogue: PGMbattleSpecDialogue,
|
||||
PGFbattleSpecDialogue: PGFbattleSpecDialogue,
|
||||
PGMmiscDialogue: PGMmiscDialogue,
|
||||
PGFmiscDialogue: PGFmiscDialogue,
|
||||
PGMdoubleBattleDialogue: PGMdoubleBattleDialogue,
|
||||
PGFdoubleBattleDialogue: PGFdoubleBattleDialogue
|
||||
};
|
||||
|
2440
src/locales/en/dialogue.ts
Normal file
44
src/locales/en/game-stats-ui-handler.ts
Normal file
@ -0,0 +1,44 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const gameStatsUiHandler: SimpleTranslationEntries = {
|
||||
"stats": "Stats",
|
||||
"playTime": "Play Time",
|
||||
"totalBattles": "Total Battles",
|
||||
"starters": "Starters",
|
||||
"shinyStarters": "Shiny Starters",
|
||||
"speciesSeen": "Species Seen",
|
||||
"speciesCaught": "Species Caught",
|
||||
"ribbonsOwned": "Ribbons Owned",
|
||||
"classicRuns": "Classic Runs",
|
||||
"classicWins": "Classic Wins",
|
||||
"dailyRunAttempts": "Daily Run Attempts",
|
||||
"dailyRunWins": "Daily Run Wins",
|
||||
"endlessRuns": "Endless Runs",
|
||||
"highestWaveEndless": "Highest Wave (Endless)",
|
||||
"highestMoney": "Highest Money",
|
||||
"highestDamage": "Highest Damage",
|
||||
"highestHPHealed": "Highest HP Healed",
|
||||
"pokemonEncountered": "Pokémon Encountered",
|
||||
"pokemonDefeated": "Pokémon Defeated",
|
||||
"pokemonCaught": "Pokémon Caught",
|
||||
"eggsHatched": "Eggs Hatched",
|
||||
"subLegendsSeen": "Sub-Legends Seen",
|
||||
"subLegendsCaught": "Sub-Legends Caught",
|
||||
"subLegendsHatched": "Sub-Legends Hatched",
|
||||
"legendsSeen": "Legends Seen",
|
||||
"legendsCaught": "Legends Caught",
|
||||
"legendsHatched": "Legends Hatched",
|
||||
"mythicalsSeen": "Mythicals Seen",
|
||||
"mythicalsCaught": "Mythicals Caught",
|
||||
"mythicalsHatched": "Mythicals Hatched",
|
||||
"shiniesSeen": "Shinies Seen",
|
||||
"shiniesCaught": "Shinies Caught",
|
||||
"shiniesHatched": "Shinies Hatched",
|
||||
"pokemonFused": "Pokémon Fused",
|
||||
"trainersDefeated": "Trainers Defeated",
|
||||
"eggsPulled": "Eggs Pulled",
|
||||
"rareEggsPulled": "Rare Eggs Pulled",
|
||||
"epicEggsPulled": "Epic Eggs Pulled",
|
||||
"legendaryEggsPulled": "Legendary Eggs Pulled",
|
||||
"manaphyEggsPulled": "Manaphy Eggs Pulled",
|
||||
} as const;
|
@ -3,10 +3,12 @@ import {SimpleTranslationEntries} from "#app/plugins/i18n";
|
||||
// Titles of special trainers like gym leaders, elite four, and the champion
|
||||
export const titles: SimpleTranslationEntries = {
|
||||
"elite_four": "Elite Four",
|
||||
"elite_four_female": "Elite Four",
|
||||
"gym_leader": "Gym Leader",
|
||||
"gym_leader_female": "Gym Leader",
|
||||
"gym_leader_double": "Gym Leader Duo",
|
||||
"champion": "Champion",
|
||||
"champion_female": "Champion",
|
||||
"champion_double": "Champion Duo",
|
||||
"rival": "Rival",
|
||||
"professor": "Professor",
|
||||
|
@ -20,7 +20,16 @@ import { tutorial } from "./tutorial";
|
||||
import { weather } from "./weather";
|
||||
import { battleMessageUiHandler } from "./battle-message-ui-handler";
|
||||
import { berry } from "./berry";
|
||||
import { gameStatsUiHandler } from "./game-stats-ui-handler";
|
||||
import { voucher } from "./voucher";
|
||||
import {
|
||||
PGMdialogue,
|
||||
PGFdialogue,
|
||||
PGMbattleSpecDialogue,
|
||||
PGFbattleSpecDialogue,
|
||||
PGMmiscDialogue,
|
||||
PGFmiscDialogue, PGMdoubleBattleDialogue, PGFdoubleBattleDialogue
|
||||
} from "./dialogue";
|
||||
import { biome } from "./biome";
|
||||
|
||||
export const esConfig = {
|
||||
@ -48,6 +57,15 @@ export const esConfig = {
|
||||
weather: weather,
|
||||
battleMessageUiHandler: battleMessageUiHandler,
|
||||
berry: berry,
|
||||
gameStatsUiHandler: gameStatsUiHandler,
|
||||
voucher: voucher,
|
||||
biome: biome,
|
||||
PGMdialogue: PGMdialogue,
|
||||
PGFdialogue: PGFdialogue,
|
||||
PGMbattleSpecDialogue: PGMbattleSpecDialogue,
|
||||
PGFbattleSpecDialogue: PGFbattleSpecDialogue,
|
||||
PGMmiscDialogue: PGMmiscDialogue,
|
||||
PGFmiscDialogue: PGFmiscDialogue,
|
||||
PGMdoubleBattleDialogue: PGMdoubleBattleDialogue,
|
||||
PGFdoubleBattleDialogue: PGFdoubleBattleDialogue
|
||||
};
|
||||
|
2440
src/locales/es/dialogue.ts
Normal file
44
src/locales/es/game-stats-ui-handler.ts
Normal file
@ -0,0 +1,44 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const gameStatsUiHandler: SimpleTranslationEntries = {
|
||||
"stats": "Stats",
|
||||
"playTime": "Play Time",
|
||||
"totalBattles": "Total Battles",
|
||||
"starters": "Starters",
|
||||
"shinyStarters": "Shiny Starters",
|
||||
"speciesSeen": "Species Seen",
|
||||
"speciesCaught": "Species Caught",
|
||||
"ribbonsOwned": "Ribbons Owned",
|
||||
"classicRuns": "Classic Runs",
|
||||
"classicWins": "Classic Wins",
|
||||
"dailyRunAttempts": "Daily Run Attempts",
|
||||
"dailyRunWins": "Daily Run Wins",
|
||||
"endlessRuns": "Endless Runs",
|
||||
"highestWaveEndless": "Highest Wave (Endless)",
|
||||
"highestMoney": "Highest Money",
|
||||
"highestDamage": "Highest Damage",
|
||||
"highestHPHealed": "Highest HP Healed",
|
||||
"pokemonEncountered": "Pokémon Encountered",
|
||||
"pokemonDefeated": "Pokémon Defeated",
|
||||
"pokemonCaught": "Pokémon Caught",
|
||||
"eggsHatched": "Eggs Hatched",
|
||||
"subLegendsSeen": "Sub-Legends Seen",
|
||||
"subLegendsCaught": "Sub-Legends Caught",
|
||||
"subLegendsHatched": "Sub-Legends Hatched",
|
||||
"legendsSeen": "Legends Seen",
|
||||
"legendsCaught": "Legends Caught",
|
||||
"legendsHatched": "Legends Hatched",
|
||||
"mythicalsSeen": "Mythicals Seen",
|
||||
"mythicalsCaught": "Mythicals Caught",
|
||||
"mythicalsHatched": "Mythicals Hatched",
|
||||
"shiniesSeen": "Shinies Seen",
|
||||
"shiniesCaught": "Shinies Caught",
|
||||
"shiniesHatched": "Shinies Hatched",
|
||||
"pokemonFused": "Pokémon Fused",
|
||||
"trainersDefeated": "Trainers Defeated",
|
||||
"eggsPulled": "Eggs Pulled",
|
||||
"rareEggsPulled": "Rare Eggs Pulled",
|
||||
"epicEggsPulled": "Epic Eggs Pulled",
|
||||
"legendaryEggsPulled": "Legendary Eggs Pulled",
|
||||
"manaphyEggsPulled": "Manaphy Eggs Pulled",
|
||||
} as const;
|
@ -3,10 +3,12 @@ import {SimpleTranslationEntries} from "#app/plugins/i18n";
|
||||
// Titles of special trainers like gym leaders, elite four, and the champion
|
||||
export const titles: SimpleTranslationEntries = {
|
||||
"elite_four": "Elite Four",
|
||||
"elite_four_female": "Elite Four",
|
||||
"gym_leader": "Gym Leader",
|
||||
"gym_leader_female": "Gym Leader",
|
||||
"gym_leader_double": "Gym Leader Duo",
|
||||
"champion": "Champion",
|
||||
"champion_female": "Champion",
|
||||
"champion_double": "Champion Duo",
|
||||
"rival": "Rival",
|
||||
"professor": "Professor",
|
||||
|
@ -20,10 +20,18 @@ import { tutorial } from "./tutorial";
|
||||
import { weather } from "./weather";
|
||||
import { battleMessageUiHandler } from "./battle-message-ui-handler";
|
||||
import { berry } from "./berry";
|
||||
import { gameStatsUiHandler } from "./game-stats-ui-handler";
|
||||
import { voucher } from "./voucher";
|
||||
import {
|
||||
PGMdialogue,
|
||||
PGFdialogue,
|
||||
PGMbattleSpecDialogue,
|
||||
PGFbattleSpecDialogue,
|
||||
PGMmiscDialogue,
|
||||
PGFmiscDialogue, PGMdoubleBattleDialogue, PGFdoubleBattleDialogue
|
||||
} from "./dialogue";
|
||||
import { biome } from "./biome";
|
||||
|
||||
|
||||
export const frConfig = {
|
||||
ability: ability,
|
||||
abilityTriggers: abilityTriggers,
|
||||
@ -49,6 +57,15 @@ export const frConfig = {
|
||||
weather: weather,
|
||||
battleMessageUiHandler: battleMessageUiHandler,
|
||||
berry: berry,
|
||||
gameStatsUiHandler: gameStatsUiHandler,
|
||||
voucher: voucher,
|
||||
biome: biome,
|
||||
PGMdialogue: PGMdialogue,
|
||||
PGFdialogue: PGFdialogue,
|
||||
PGMbattleSpecDialogue: PGMbattleSpecDialogue,
|
||||
PGFbattleSpecDialogue: PGFbattleSpecDialogue,
|
||||
PGMmiscDialogue: PGMmiscDialogue,
|
||||
PGFmiscDialogue: PGFmiscDialogue,
|
||||
PGMdoubleBattleDialogue: PGMdoubleBattleDialogue,
|
||||
PGFdoubleBattleDialogue: PGFdoubleBattleDialogue
|
||||
};
|
||||
|
4838
src/locales/fr/dialogue.ts
Normal file
44
src/locales/fr/game-stats-ui-handler.ts
Normal file
@ -0,0 +1,44 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const gameStatsUiHandler: SimpleTranslationEntries = {
|
||||
"stats": "Statistiques",
|
||||
"playTime": "Temps de jeu",
|
||||
"totalBattles": "Total combats",
|
||||
"shinyStarters": "Starters chroma",
|
||||
"starters": "Starters",
|
||||
"speciesSeen": "Espèces vues",
|
||||
"speciesCaught": "Espèces capt.",
|
||||
"ribbonsOwned": "Rubans possédés",
|
||||
"classicRuns": "Parties en Classique",
|
||||
"classicWins": "Victoires en Classique",
|
||||
"dailyRunAttempts": "Essais Défi du jour",
|
||||
"dailyRunWins": "Victoires Défi du jour",
|
||||
"endlessRuns": "Parties en Infini",
|
||||
"highestWaveEndless": "Record vagues (Infini)",
|
||||
"highestMoney": "Record d’argent",
|
||||
"highestDamage": "Record de dégâts",
|
||||
"highestHPHealed": "Record PV soignés",
|
||||
"pokemonEncountered": "Pokémon rencontrés",
|
||||
"pokemonDefeated": "Pokémon battus",
|
||||
"pokemonCaught": "Pokémon capturés",
|
||||
"eggsHatched": "Œufs éclos",
|
||||
"subLegendsSeen": "Semi-légendaires vus",
|
||||
"subLegendsCaught": "Semi-légendaires capt.",
|
||||
"subLegendsHatched": "Semi-légendaires éclos",
|
||||
"legendsSeen": "Legendaires vus",
|
||||
"legendsCaught": "Légendaires capt.",
|
||||
"legendsHatched": "Légendaires éclos",
|
||||
"mythicalsSeen": "Fabuleux vus",
|
||||
"mythicalsCaught": "Fabuleux capt.",
|
||||
"mythicalsHatched": "Fabuleux éclos",
|
||||
"shiniesSeen": "Chromatiques vus",
|
||||
"shiniesCaught": "Chromatiques capt.",
|
||||
"shiniesHatched": "Chromatiques éclos",
|
||||
"pokemonFused": "Pokémon fusionnés",
|
||||
"trainersDefeated": "Dresseurs battus",
|
||||
"eggsPulled": "Œufs obtenus",
|
||||
"rareEggsPulled": "Œufs Rares",
|
||||
"epicEggsPulled": "Œufs Épiques",
|
||||
"legendaryEggsPulled": "Œufs Légendaires",
|
||||
"manaphyEggsPulled": "Œufs de Manaphy",
|
||||
} as const;
|
@ -3,11 +3,13 @@ import {SimpleTranslationEntries} from "#app/plugins/i18n";
|
||||
// Titles of special trainers like gym leaders, elite four, and the champion
|
||||
export const titles: SimpleTranslationEntries = {
|
||||
"elite_four": "Conseil 4",
|
||||
"elite_four_female": "Conseil 4",
|
||||
"gym_leader": "Champion d’Arène",
|
||||
"gym_leader_female": "Championne d’Arène",
|
||||
"gym_leader_double": "Gym Leader Duo",
|
||||
"champion": "Maitre·esse", //Written in gender-inclusive language in wait of a potential split of the entry
|
||||
"champion_double": "Champion Duo",
|
||||
"gym_leader_double": "Duo de Champions",
|
||||
"champion": "Maitre",
|
||||
"champion_female": "Maitresse",
|
||||
"champion_double": "Duo de Maitres",
|
||||
"rival": "Rival·e", //Written in gender-inclusive language in wait of a potential split of the entry
|
||||
"professor": "Professeur·e", //Written in gender-inclusive language in wait of a potential split of the entry
|
||||
"frontier_brain": "Meneur·euse de Zone", //Written in gender-inclusive language in wait of a potential split of the entry
|
||||
@ -248,12 +250,12 @@ export const trainerNames: SimpleTranslationEntries = {
|
||||
// Double Names
|
||||
"blue_red_double": "Blue & Red",
|
||||
"red_blue_double": "Red & Blue",
|
||||
"tate_liza_double": "Tate & Liza",
|
||||
"liza_tate_double": "Liza & Tate",
|
||||
"steven_wallace_double": "Steven & Wallace",
|
||||
"wallace_steven_double": "Wallace & Steven",
|
||||
"alder_iris_double": "Alder & Iris",
|
||||
"iris_alder_double": "Iris & Alder",
|
||||
"marnie_piers_double": "Marnie & Piers",
|
||||
"piers_marnie_double": "Piers & Marnie",
|
||||
"tate_liza_double": "Lévy & Tatia",
|
||||
"liza_tate_double": "Tatia & Lévy",
|
||||
"steven_wallace_double": "Pierre R. & Marc",
|
||||
"wallace_steven_double": "Marc & Pierre R.",
|
||||
"alder_iris_double": "Goyah & Iris",
|
||||
"iris_alder_double": "Iris & Goyah",
|
||||
"marnie_piers_double": "Rosemary & Peterson",
|
||||
"piers_marnie_double": "Peterson & Rosemary",
|
||||
} as const;
|
||||
|
@ -20,10 +20,18 @@ import { tutorial } from "./tutorial";
|
||||
import { weather } from "./weather";
|
||||
import { battleMessageUiHandler } from "./battle-message-ui-handler";
|
||||
import { berry } from "./berry";
|
||||
import { gameStatsUiHandler } from "./game-stats-ui-handler";
|
||||
import { voucher } from "./voucher";
|
||||
import {
|
||||
PGMdialogue,
|
||||
PGFdialogue,
|
||||
PGMbattleSpecDialogue,
|
||||
PGFbattleSpecDialogue,
|
||||
PGMmiscDialogue,
|
||||
PGFmiscDialogue, PGMdoubleBattleDialogue, PGFdoubleBattleDialogue
|
||||
} from "./dialogue";
|
||||
import { biome } from "./biome";
|
||||
|
||||
|
||||
export const itConfig = {
|
||||
ability: ability,
|
||||
abilityTriggers: abilityTriggers,
|
||||
@ -49,6 +57,15 @@ export const itConfig = {
|
||||
weather: weather,
|
||||
battleMessageUiHandler: battleMessageUiHandler,
|
||||
berry: berry,
|
||||
gameStatsUiHandler: gameStatsUiHandler,
|
||||
voucher: voucher,
|
||||
biome: biome,
|
||||
PGMdialogue: PGMdialogue,
|
||||
PGFdialogue: PGFdialogue,
|
||||
PGMbattleSpecDialogue: PGMbattleSpecDialogue,
|
||||
PGFbattleSpecDialogue: PGFbattleSpecDialogue,
|
||||
PGMmiscDialogue: PGMmiscDialogue,
|
||||
PGFmiscDialogue: PGFmiscDialogue,
|
||||
PGMdoubleBattleDialogue: PGMdoubleBattleDialogue,
|
||||
PGFdoubleBattleDialogue: PGFdoubleBattleDialogue
|
||||
};
|
||||
|
2440
src/locales/it/dialogue.ts
Normal file
44
src/locales/it/game-stats-ui-handler.ts
Normal file
@ -0,0 +1,44 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const gameStatsUiHandler: SimpleTranslationEntries = {
|
||||
"stats": "Stats",
|
||||
"playTime": "Play Time",
|
||||
"totalBattles": "Total Battles",
|
||||
"starters": "Starters",
|
||||
"shinyStarters": "Shiny Starters",
|
||||
"speciesSeen": "Species Seen",
|
||||
"speciesCaught": "Species Caught",
|
||||
"ribbonsOwned": "Ribbons Owned",
|
||||
"classicRuns": "Classic Runs",
|
||||
"classicWins": "Classic Wins",
|
||||
"dailyRunAttempts": "Daily Run Attempts",
|
||||
"dailyRunWins": "Daily Run Wins",
|
||||
"endlessRuns": "Endless Runs",
|
||||
"highestWaveEndless": "Highest Wave (Endless)",
|
||||
"highestMoney": "Highest Money",
|
||||
"highestDamage": "Highest Damage",
|
||||
"highestHPHealed": "Highest HP Healed",
|
||||
"pokemonEncountered": "Pokémon Encountered",
|
||||
"pokemonDefeated": "Pokémon Defeated",
|
||||
"pokemonCaught": "Pokémon Caught",
|
||||
"eggsHatched": "Eggs Hatched",
|
||||
"subLegendsSeen": "Sub-Legends Seen",
|
||||
"subLegendsCaught": "Sub-Legends Caught",
|
||||
"subLegendsHatched": "Sub-Legends Hatched",
|
||||
"legendsSeen": "Legends Seen",
|
||||
"legendsCaught": "Legends Caught",
|
||||
"legendsHatched": "Legends Hatched",
|
||||
"mythicalsSeen": "Mythicals Seen",
|
||||
"mythicalsCaught": "Mythicals Caught",
|
||||
"mythicalsHatched": "Mythicals Hatched",
|
||||
"shiniesSeen": "Shinies Seen",
|
||||
"shiniesCaught": "Shinies Caught",
|
||||
"shiniesHatched": "Shinies Hatched",
|
||||
"pokemonFused": "Pokémon Fused",
|
||||
"trainersDefeated": "Trainers Defeated",
|
||||
"eggsPulled": "Eggs Pulled",
|
||||
"rareEggsPulled": "Rare Eggs Pulled",
|
||||
"epicEggsPulled": "Epic Eggs Pulled",
|
||||
"legendaryEggsPulled": "Legendary Eggs Pulled",
|
||||
"manaphyEggsPulled": "Manaphy Eggs Pulled",
|
||||
} as const;
|
@ -3,10 +3,12 @@ import {SimpleTranslationEntries} from "#app/plugins/i18n";
|
||||
// Titles of special trainers like gym leaders, elite four, and the champion
|
||||
export const titles: SimpleTranslationEntries = {
|
||||
"elite_four": "Superquattro",
|
||||
"elite_four_female": "Superquattro",
|
||||
"gym_leader": "Capopalestra",
|
||||
"gym_leader_female": "Capopalestra",
|
||||
"gym_leader_double": "Gym Leader Duo",
|
||||
"champion": "Campione",
|
||||
"champion_female": "Champion",
|
||||
"champion_double": "Champion Duo",
|
||||
"rival": "Rivale",
|
||||
"professor": "Professore",
|
||||
|
@ -18,12 +18,20 @@ import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
||||
import { titles, trainerClasses, trainerNames } from "./trainers";
|
||||
import { tutorial } from "./tutorial";
|
||||
import { weather } from "./weather";
|
||||
import { battleMessageUiHandler } from "./battle-message-ui-handler";
|
||||
import { berry } from "./berry";
|
||||
import { gameStatsUiHandler } from "./game-stats-ui-handler";
|
||||
import { voucher } from "./voucher";
|
||||
import {
|
||||
PGMdialogue,
|
||||
PGFdialogue,
|
||||
PGMbattleSpecDialogue,
|
||||
PGFbattleSpecDialogue,
|
||||
PGMmiscDialogue,
|
||||
PGFmiscDialogue, PGMdoubleBattleDialogue, PGFdoubleBattleDialogue
|
||||
} from "./dialogue";
|
||||
import { biome } from "./biome";
|
||||
|
||||
|
||||
|
||||
export const ptBrConfig = {
|
||||
ability: ability,
|
||||
abilityTriggers: abilityTriggers,
|
||||
@ -31,23 +39,33 @@ export const ptBrConfig = {
|
||||
commandUiHandler: commandUiHandler,
|
||||
egg: egg,
|
||||
fightUiHandler: fightUiHandler,
|
||||
menuUiHandler: menuUiHandler,
|
||||
growth: growth,
|
||||
menu: menu,
|
||||
menuUiHandler: menuUiHandler,
|
||||
modifierType: modifierType,
|
||||
move: move,
|
||||
nature: nature,
|
||||
pokeball: pokeball,
|
||||
pokemonInfo: pokemonInfo,
|
||||
pokemon: pokemon,
|
||||
pokemonInfo: pokemonInfo,
|
||||
splashMessages: splashMessages,
|
||||
starterSelectUiHandler: starterSelectUiHandler,
|
||||
titles: titles,
|
||||
trainerClasses: trainerClasses,
|
||||
trainerNames: trainerNames,
|
||||
tutorial: tutorial,
|
||||
splashMessages: splashMessages,
|
||||
nature: nature,
|
||||
growth: growth,
|
||||
weather: weather,
|
||||
modifierType: modifierType,
|
||||
battleMessageUiHandler: battleMessageUiHandler,
|
||||
berry: berry,
|
||||
gameStatsUiHandler: gameStatsUiHandler,
|
||||
voucher: voucher,
|
||||
biome: biome,
|
||||
PGMdialogue: PGMdialogue,
|
||||
PGFdialogue: PGFdialogue,
|
||||
PGMbattleSpecDialogue: PGMbattleSpecDialogue,
|
||||
PGFbattleSpecDialogue: PGFbattleSpecDialogue,
|
||||
PGMmiscDialogue: PGMmiscDialogue,
|
||||
PGFmiscDialogue: PGFmiscDialogue,
|
||||
PGMdoubleBattleDialogue: PGMdoubleBattleDialogue,
|
||||
PGFdoubleBattleDialogue: PGFdoubleBattleDialogue
|
||||
};
|
||||
|
2440
src/locales/pt_BR/dialogue.ts
Normal file
44
src/locales/pt_BR/game-stats-ui-handler.ts
Normal file
@ -0,0 +1,44 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const gameStatsUiHandler: SimpleTranslationEntries = {
|
||||
"stats": "Stats",
|
||||
"playTime": "Play Time",
|
||||
"totalBattles": "Total Battles",
|
||||
"starters": "Starters",
|
||||
"shinyStarters": "Shiny Starters",
|
||||
"speciesSeen": "Species Seen",
|
||||
"speciesCaught": "Species Caught",
|
||||
"ribbonsOwned": "Ribbons Owned",
|
||||
"classicRuns": "Classic Runs",
|
||||
"classicWins": "Classic Wins",
|
||||
"dailyRunAttempts": "Daily Run Attempts",
|
||||
"dailyRunWins": "Daily Run Wins",
|
||||
"endlessRuns": "Endless Runs",
|
||||
"highestWaveEndless": "Highest Wave (Endless)",
|
||||
"highestMoney": "Highest Money",
|
||||
"highestDamage": "Highest Damage",
|
||||
"highestHPHealed": "Highest HP Healed",
|
||||
"pokemonEncountered": "Pokémon Encountered",
|
||||
"pokemonDefeated": "Pokémon Defeated",
|
||||
"pokemonCaught": "Pokémon Caught",
|
||||
"eggsHatched": "Eggs Hatched",
|
||||
"subLegendsSeen": "Sub-Legends Seen",
|
||||
"subLegendsCaught": "Sub-Legends Caught",
|
||||
"subLegendsHatched": "Sub-Legends Hatched",
|
||||
"legendsSeen": "Legends Seen",
|
||||
"legendsCaught": "Legends Caught",
|
||||
"legendsHatched": "Legends Hatched",
|
||||
"mythicalsSeen": "Mythicals Seen",
|
||||
"mythicalsCaught": "Mythicals Caught",
|
||||
"mythicalsHatched": "Mythicals Hatched",
|
||||
"shiniesSeen": "Shinies Seen",
|
||||
"shiniesCaught": "Shinies Caught",
|
||||
"shiniesHatched": "Shinies Hatched",
|
||||
"pokemonFused": "Pokémon Fused",
|
||||
"trainersDefeated": "Trainers Defeated",
|
||||
"eggsPulled": "Eggs Pulled",
|
||||
"rareEggsPulled": "Rare Eggs Pulled",
|
||||
"epicEggsPulled": "Epic Eggs Pulled",
|
||||
"legendaryEggsPulled": "Legendary Eggs Pulled",
|
||||
"manaphyEggsPulled": "Manaphy Eggs Pulled",
|
||||
} as const;
|
@ -3,10 +3,12 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
// Titles of special trainers like gym leaders, elite four, and the champion
|
||||
export const titles: SimpleTranslationEntries = {
|
||||
"elite_four": "Elite dos Quatro",
|
||||
"elite_four_female": "Elite dos Quatro",
|
||||
"gym_leader": "Líder de Ginásio",
|
||||
"gym_leader_female": "Líder de Ginásio",
|
||||
"gym_leader_double": "Gym Leader Duo",
|
||||
"champion": "Campeão",
|
||||
"champion_female": "Champion",
|
||||
"champion_double": "Champion Duo",
|
||||
"rival": "Rival",
|
||||
"professor": "Professor",
|
||||
|
@ -13,18 +13,25 @@ import { nature } from "./nature";
|
||||
import { pokeball } from "./pokeball";
|
||||
import { pokemon } from "./pokemon";
|
||||
import { pokemonInfo } from "./pokemon-info";
|
||||
// import { splashMessages } from "./splash-messages";
|
||||
import { splashMessages } from "./splash-messages";
|
||||
import { starterSelectUiHandler } from "./starter-select-ui-handler";
|
||||
import { titles, trainerClasses, trainerNames } from "./trainers";
|
||||
import { tutorial } from "./tutorial";
|
||||
import { weather } from "./weather";
|
||||
import { battleMessageUiHandler } from "./battle-message-ui-handler";
|
||||
import { berry } from "./berry";
|
||||
import { gameStatsUiHandler } from "./game-stats-ui-handler";
|
||||
import { voucher } from "./voucher";
|
||||
import {
|
||||
PGMdialogue,
|
||||
PGFdialogue,
|
||||
PGMbattleSpecDialogue,
|
||||
PGFbattleSpecDialogue,
|
||||
PGMmiscDialogue,
|
||||
PGFmiscDialogue, PGMdoubleBattleDialogue, PGFdoubleBattleDialogue
|
||||
} from "./dialogue";
|
||||
import { biome } from "./biome";
|
||||
|
||||
|
||||
|
||||
export const zhCnConfig = {
|
||||
ability: ability,
|
||||
abilityTriggers: abilityTriggers,
|
||||
@ -41,7 +48,7 @@ export const zhCnConfig = {
|
||||
pokeball: pokeball,
|
||||
pokemon: pokemon,
|
||||
pokemonInfo: pokemonInfo,
|
||||
// splashMessages: splashMessages,
|
||||
splashMessages: splashMessages,
|
||||
starterSelectUiHandler: starterSelectUiHandler,
|
||||
titles: titles,
|
||||
trainerClasses: trainerClasses,
|
||||
@ -50,6 +57,15 @@ export const zhCnConfig = {
|
||||
weather: weather,
|
||||
battleMessageUiHandler: battleMessageUiHandler,
|
||||
berry: berry,
|
||||
gameStatsUiHandler: gameStatsUiHandler,
|
||||
voucher: voucher,
|
||||
biome: biome,
|
||||
PGMdialogue: PGMdialogue,
|
||||
PGFdialogue: PGFdialogue,
|
||||
PGMbattleSpecDialogue: PGMbattleSpecDialogue,
|
||||
PGFbattleSpecDialogue: PGFbattleSpecDialogue,
|
||||
PGMmiscDialogue: PGMmiscDialogue,
|
||||
PGFmiscDialogue: PGFmiscDialogue,
|
||||
PGMdoubleBattleDialogue: PGMdoubleBattleDialogue,
|
||||
PGFdoubleBattleDialogue: PGFdoubleBattleDialogue
|
||||
};
|
||||
|
2440
src/locales/zh_CN/dialogue.ts
Normal file
44
src/locales/zh_CN/game-stats-ui-handler.ts
Normal file
@ -0,0 +1,44 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const gameStatsUiHandler: SimpleTranslationEntries = {
|
||||
"stats": "Stats",
|
||||
"playTime": "Play Time",
|
||||
"totalBattles": "Total Battles",
|
||||
"starters": "Starters",
|
||||
"shinyStarters": "Shiny Starters",
|
||||
"speciesSeen": "Species Seen",
|
||||
"speciesCaught": "Species Caught",
|
||||
"ribbonsOwned": "Ribbons Owned",
|
||||
"classicRuns": "Classic Runs",
|
||||
"classicWins": "Classic Wins",
|
||||
"dailyRunAttempts": "Daily Run Attempts",
|
||||
"dailyRunWins": "Daily Run Wins",
|
||||
"endlessRuns": "Endless Runs",
|
||||
"highestWaveEndless": "Highest Wave (Endless)",
|
||||
"highestMoney": "Highest Money",
|
||||
"highestDamage": "Highest Damage",
|
||||
"highestHPHealed": "Highest HP Healed",
|
||||
"pokemonEncountered": "Pokémon Encountered",
|
||||
"pokemonDefeated": "Pokémon Defeated",
|
||||
"pokemonCaught": "Pokémon Caught",
|
||||
"eggsHatched": "Eggs Hatched",
|
||||
"subLegendsSeen": "Sub-Legends Seen",
|
||||
"subLegendsCaught": "Sub-Legends Caught",
|
||||
"subLegendsHatched": "Sub-Legends Hatched",
|
||||
"legendsSeen": "Legends Seen",
|
||||
"legendsCaught": "Legends Caught",
|
||||
"legendsHatched": "Legends Hatched",
|
||||
"mythicalsSeen": "Mythicals Seen",
|
||||
"mythicalsCaught": "Mythicals Caught",
|
||||
"mythicalsHatched": "Mythicals Hatched",
|
||||
"shiniesSeen": "Shinies Seen",
|
||||
"shiniesCaught": "Shinies Caught",
|
||||
"shiniesHatched": "Shinies Hatched",
|
||||
"pokemonFused": "Pokémon Fused",
|
||||
"trainersDefeated": "Trainers Defeated",
|
||||
"eggsPulled": "Eggs Pulled",
|
||||
"rareEggsPulled": "Rare Eggs Pulled",
|
||||
"epicEggsPulled": "Epic Eggs Pulled",
|
||||
"legendaryEggsPulled": "Legendary Eggs Pulled",
|
||||
"manaphyEggsPulled": "Manaphy Eggs Pulled",
|
||||
} as const;
|
37
src/locales/zh_CN/splash-messages.ts
Normal file
@ -0,0 +1,37 @@
|
||||
import { SimpleTranslationEntries } from "#app/plugins/i18n";
|
||||
|
||||
export const splashMessages: SimpleTranslationEntries = {
|
||||
"battlesWon": "Battles Won!",
|
||||
"joinTheDiscord": "Join the Discord!",
|
||||
"infiniteLevels": "Infinite Levels!",
|
||||
"everythingStacks": "Everything Stacks!",
|
||||
"optionalSaveScumming": "Optional Save Scumming!",
|
||||
"biomes": "35 Biomes!",
|
||||
"openSource": "Open Source!",
|
||||
"playWithSpeed": "Play with 5x Speed!",
|
||||
"liveBugTesting": "Live Bug Testing!",
|
||||
"heavyInfluence": "Heavy RoR2 Influence!",
|
||||
"pokemonRiskAndPokemonRain": "Pokémon Risk and Pokémon Rain!",
|
||||
"nowWithMoreSalt": "Now with 33% More Salt!",
|
||||
"infiniteFusionAtHome": "Infinite Fusion at Home!",
|
||||
"brokenEggMoves": "Broken Egg Moves!",
|
||||
"magnificent": "Magnificent!",
|
||||
"mubstitute": "Mubstitute!",
|
||||
"thatsCrazy": "That\'s Crazy!",
|
||||
"oranceJuice": "Orance Juice!",
|
||||
"questionableBalancing": "Questionable Balancing!",
|
||||
"coolShaders": "Cool Shaders!",
|
||||
"aiFree": "AI-Free!",
|
||||
"suddenDifficultySpikes": "Sudden Difficulty Spikes!",
|
||||
"basedOnAnUnfinishedFlashGame": "Based on an Unfinished Flash Game!",
|
||||
"moreAddictiveThanIntended": "More Addictive than Intended!",
|
||||
"mostlyConsistentSeeds": "Mostly Consistent Seeds!",
|
||||
"achievementPointsDontDoAnything": "Achievement Points Don\'t Do Anything!",
|
||||
"youDoNotStartAtLevel": "You Do Not Start at Level 2000!",
|
||||
"dontTalkAboutTheManaphyEggIncident": "Don\'t Talk About the Manaphy Egg Incident!",
|
||||
"alsoTryPokengine": "Also Try Pokéngine!",
|
||||
"alsoTryEmeraldRogue": "Also Try Emerald Rogue!",
|
||||
"alsoTryRadicalRed": "Also Try Radical Red!",
|
||||
"eeveeExpo": "Eevee Expo!",
|
||||
"ynoproject": "YNOproject!",
|
||||
} as const;
|
@ -3,11 +3,13 @@ import {SimpleTranslationEntries} from "#app/plugins/i18n";
|
||||
// Titles of special trainers like gym leaders, elite four, and the champion
|
||||
export const titles: SimpleTranslationEntries = {
|
||||
"elite_four": "四天王",
|
||||
"elite_four_female": "四天王",
|
||||
"gym_leader": "道馆馆主",
|
||||
"gym_leader_female": "道馆馆主",
|
||||
"gym_leader_double": "Gym Leader Duo",
|
||||
"gym_leader_double": "道馆馆主搭档",
|
||||
"champion": "冠军",
|
||||
"champion_double": "Champion Duo",
|
||||
"champion_female": "冠军",
|
||||
"champion_double": "冠军搭档",
|
||||
"rival": "劲敌",
|
||||
"professor": "博士",
|
||||
"frontier_brain": "开拓头脑",
|
||||
@ -302,14 +304,14 @@ export const trainerNames: SimpleTranslationEntries = {
|
||||
|
||||
|
||||
// Double Names
|
||||
"blue_red_double": "Blue & Red",
|
||||
"red_blue_double": "Red & Blue",
|
||||
"tate_liza_double": "Tate & Liza",
|
||||
"liza_tate_double": "Liza & Tate",
|
||||
"steven_wallace_double": "Steven & Wallace",
|
||||
"wallace_steven_double": "Wallace & Steven",
|
||||
"alder_iris_double": "Alder & Iris",
|
||||
"iris_alder_double": "Iris & Alder",
|
||||
"marnie_piers_double": "Marnie & Piers",
|
||||
"piers_marnie_double": "Piers & Marnie",
|
||||
"blue_red_double": "青绿 & 赤红",
|
||||
"red_blue_double": "赤红 & 青绿",
|
||||
"tate_liza_double": "小枫 & 小南",
|
||||
"liza_tate_double": "小南 & 小枫",
|
||||
"steven_wallace_double": "大吾 & 米可利",
|
||||
"wallace_steven_double": "米可利 & 大吾",
|
||||
"alder_iris_double": "阿戴克 & 艾莉丝",
|
||||
"iris_alder_double": "艾莉丝 & 阿戴克",
|
||||
"marnie_piers_double": "玛俐 & 聂梓",
|
||||
"piers_marnie_double": "聂梓 & 玛俐",
|
||||
} as const;
|
||||
|
@ -21,6 +21,14 @@ import { weather } from "./weather";
|
||||
import { battleMessageUiHandler } from "./battle-message-ui-handler";
|
||||
import { berry } from "./berry";
|
||||
import { voucher } from "./voucher";
|
||||
import {
|
||||
PGMdialogue,
|
||||
PGFdialogue,
|
||||
PGMbattleSpecDialogue,
|
||||
PGFbattleSpecDialogue,
|
||||
PGMmiscDialogue,
|
||||
PGFmiscDialogue, PGMdoubleBattleDialogue, PGFdoubleBattleDialogue
|
||||
} from "./dialogue";
|
||||
import { biome } from "./biome";
|
||||
|
||||
export const zhTWConfig = {
|
||||
@ -50,4 +58,12 @@ export const zhTWConfig = {
|
||||
berry: berry,
|
||||
voucher: voucher,
|
||||
biome: biome,
|
||||
PGMdialogue: PGMdialogue,
|
||||
PGFdialogue: PGFdialogue,
|
||||
PGMbattleSpecDialogue: PGMbattleSpecDialogue,
|
||||
PGFbattleSpecDialogue: PGFbattleSpecDialogue,
|
||||
PGMmiscDialogue: PGMmiscDialogue,
|
||||
PGFmiscDialogue: PGFmiscDialogue,
|
||||
PGMdoubleBattleDialogue: PGMdoubleBattleDialogue,
|
||||
PGFdoubleBattleDialogue: PGFdoubleBattleDialogue
|
||||
};
|
||||
|
2440
src/locales/zh_TW/dialogue.ts
Normal file
@ -3,10 +3,12 @@ import {SimpleTranslationEntries} from "#app/plugins/i18n";
|
||||
// Titles of special trainers like gym leaders, elite four, and the champion
|
||||
export const titles: SimpleTranslationEntries = {
|
||||
"elite_four": "四天王",
|
||||
"elite_four_female": "Elite Four",
|
||||
"gym_leader": "道館館主",
|
||||
"gym_leader_female": "道館館主",
|
||||
"gym_leader_double": "Gym Leader Duo",
|
||||
"champion": "冠軍",
|
||||
"champion_female": "Champion",
|
||||
"champion_double": "Champion Duo",
|
||||
"rival": "勁敵",
|
||||
"professor": "博士",
|
||||
|
@ -32,6 +32,7 @@ export const STARTING_BIOME_OVERRIDE: Biome = Biome.TOWN;
|
||||
export const ARENA_TINT_OVERRIDE: TimeOfDay = null;
|
||||
// Multiplies XP gained by this value including 0. Set to null to ignore the override
|
||||
export const XP_MULTIPLIER_OVERRIDE: number = null;
|
||||
export const IMMEDIATE_HATCH_EGGS_OVERRIDE: boolean = false;
|
||||
// default 1000
|
||||
export const STARTING_MONEY_OVERRIDE: integer = 0;
|
||||
export const POKEBALL_OVERRIDE: { active: boolean, pokeballs: PokeballCounts } = {
|
||||
|
@ -5008,7 +5008,7 @@ export class EggLapsePhase extends Phase {
|
||||
super.start();
|
||||
|
||||
const eggsToHatch: Egg[] = this.scene.gameData.eggs.filter((egg: Egg) => {
|
||||
return --egg.hatchWaves < 1;
|
||||
return Overrides.IMMEDIATE_HATCH_EGGS_OVERRIDE ? true : --egg.hatchWaves < 1;
|
||||
});
|
||||
|
||||
if (eggsToHatch.length) {
|
||||
|
@ -60,6 +60,24 @@ export interface BerryTranslationEntries {
|
||||
[key: string]: BerryTranslationEntry
|
||||
}
|
||||
|
||||
export interface DialogueTranslationEntry {
|
||||
[key: number]: string;
|
||||
}
|
||||
|
||||
export interface DialogueTranslationCategory {
|
||||
encounter: DialogueTranslationEntry;
|
||||
victory: DialogueTranslationEntry;
|
||||
defeat?: DialogueTranslationEntry;
|
||||
}
|
||||
|
||||
export interface DialogueTranslationTrainerClass {
|
||||
[key: string]: DialogueTranslationCategory;
|
||||
}
|
||||
|
||||
export interface DialogueTranslationEntries {
|
||||
[key: string]: DialogueTranslationTrainerClass;
|
||||
}
|
||||
|
||||
export interface Localizable {
|
||||
localize(): void;
|
||||
}
|
||||
@ -160,8 +178,17 @@ declare module "i18next" {
|
||||
modifierType: ModifierTypeTranslationEntries;
|
||||
battleMessageUiHandler: SimpleTranslationEntries;
|
||||
berry: BerryTranslationEntries;
|
||||
voucher: SimpleTranslationEntries;
|
||||
gameStatsUiHandler: SimpleTranslationEntries;
|
||||
voucher: SimpleTranslationEntries;
|
||||
biome: SimpleTranslationEntries;
|
||||
PGMdialogue: DialogueTranslationEntries;
|
||||
PGMbattleSpecDialogue: SimpleTranslationEntries;
|
||||
PGMmiscDialogue: SimpleTranslationEntries;
|
||||
PGMdoubleBattleDialogue: DialogueTranslationEntries;
|
||||
PGFdialogue: DialogueTranslationEntries;
|
||||
PGFbattleSpecDialogue: SimpleTranslationEntries;
|
||||
PGFmiscDialogue: SimpleTranslationEntries;
|
||||
PGFdoubleBattleDialogue: DialogueTranslationEntries;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -186,7 +186,8 @@ export function setSetting(scene: BattleScene, setting: Setting, value: integer)
|
||||
i18next.changeLanguage(locale);
|
||||
localStorage.setItem("prLang", locale);
|
||||
cancelHandler();
|
||||
scene.reset(true, false, true);
|
||||
// Reload the whole game to apply the new locale since also some constants are translated
|
||||
window.location.reload();
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error("Error changing locale:", error);
|
||||
|
@ -35,7 +35,7 @@ export default class FightUiHandler extends UiHandler {
|
||||
this.movesContainer = this.scene.add.container(18, -38.7);
|
||||
ui.add(this.movesContainer);
|
||||
|
||||
this.typeIcon = this.scene.add.sprite((this.scene.game.canvas.width / 6) - 57, -36, "types", "unknown");
|
||||
this.typeIcon = this.scene.add.sprite((this.scene.game.canvas.width / 6) - 57, -36,`types${Utils.verifyLang(i18next.language) ? `_${i18next.language}` : ""}` , "unknown");
|
||||
this.typeIcon.setVisible(false);
|
||||
ui.add(this.typeIcon);
|
||||
|
||||
@ -168,7 +168,7 @@ export default class FightUiHandler extends UiHandler {
|
||||
|
||||
if (hasMove) {
|
||||
const pokemonMove = moveset[cursor];
|
||||
this.typeIcon.setTexture("types", Type[pokemonMove.getMove().type].toLowerCase()).setScale(0.8);
|
||||
this.typeIcon.setTexture(`types${Utils.verifyLang(i18next.language) ? `_${i18next.language}` : ""}`, Type[pokemonMove.getMove().type].toLowerCase()).setScale(0.8);
|
||||
this.moveCategoryIcon.setTexture("categories", MoveCategory[pokemonMove.getMove().category].toLowerCase()).setScale(1.0);
|
||||
|
||||
const power = pokemonMove.getMove().power;
|
||||
|
@ -7,9 +7,10 @@ import * as Utils from "../utils";
|
||||
import { DexAttr, GameData } from "../system/game-data";
|
||||
import { speciesStarters } from "../data/pokemon-species";
|
||||
import {Button} from "../enums/buttons";
|
||||
import i18next from "../plugins/i18n";
|
||||
|
||||
interface DisplayStat {
|
||||
label?: string;
|
||||
label_key?: string;
|
||||
sourceFunc?: (gameData: GameData) => string;
|
||||
hidden?: boolean;
|
||||
}
|
||||
@ -20,70 +21,193 @@ interface DisplayStats {
|
||||
|
||||
const displayStats: DisplayStats = {
|
||||
playTime: {
|
||||
label_key: "playTime",
|
||||
sourceFunc: gameData => Utils.getPlayTimeString(gameData.gameStats.playTime)
|
||||
},
|
||||
battles: "Total Battles",
|
||||
battles: {
|
||||
label_key: "totalBattles",
|
||||
sourceFunc: gameData => gameData.gameStats.battles.toString(),
|
||||
},
|
||||
startersUnlocked: {
|
||||
label: "Starters",
|
||||
label_key: "starters",
|
||||
sourceFunc: gameData => {
|
||||
const starterCount = gameData.getStarterCount(d => !!d.caughtAttr);
|
||||
return `${starterCount} (${Math.floor((starterCount / Object.keys(speciesStarters).length) * 1000) / 10}%)`;
|
||||
}
|
||||
},
|
||||
shinyStartersUnlocked: {
|
||||
label: "Shiny Starters",
|
||||
label_key: "shinyStarters",
|
||||
sourceFunc: gameData => {
|
||||
const starterCount = gameData.getStarterCount(d => !!(d.caughtAttr & DexAttr.SHINY));
|
||||
return `${starterCount} (${Math.floor((starterCount / Object.keys(speciesStarters).length) * 1000) / 10}%)`;
|
||||
}
|
||||
},
|
||||
dexSeen: {
|
||||
label: "Species Seen",
|
||||
label_key: "speciesSeen",
|
||||
sourceFunc: gameData => {
|
||||
const seenCount = gameData.getSpeciesCount(d => !!d.seenAttr);
|
||||
return `${seenCount} (${Math.floor((seenCount / Object.keys(gameData.dexData).length) * 1000) / 10}%)`;
|
||||
}
|
||||
},
|
||||
dexCaught: {
|
||||
label: "Species Caught",
|
||||
label_key: "speciesCaught",
|
||||
sourceFunc: gameData => {
|
||||
const caughtCount = gameData.getSpeciesCount(d => !!d.caughtAttr);
|
||||
return `${caughtCount} (${Math.floor((caughtCount / Object.keys(gameData.dexData).length) * 1000) / 10}%)`;
|
||||
}
|
||||
},
|
||||
ribbonsOwned: "Ribbons Owned",
|
||||
classicSessionsPlayed: "Classic Runs",
|
||||
sessionsWon: "Classic Wins",
|
||||
dailyRunSessionsPlayed: "Daily Run Attempts",
|
||||
dailyRunSessionsWon: "Daily Run Wins",
|
||||
endlessSessionsPlayed: "Endless Runs?",
|
||||
highestEndlessWave: "Highest Wave (Endless)?",
|
||||
highestMoney: "Highest Money",
|
||||
highestDamage: "Highest Damage",
|
||||
highestHeal: "Highest HP Healed",
|
||||
pokemonSeen: "Pokémon Encountered",
|
||||
pokemonDefeated: "Pokémon Defeated",
|
||||
pokemonCaught: "Pokémon Caught",
|
||||
pokemonHatched: "Eggs Hatched",
|
||||
subLegendaryPokemonSeen: "Sub-Legends Seen?",
|
||||
subLegendaryPokemonCaught: "Sub-Legends Caught?",
|
||||
subLegendaryPokemonHatched: "Sub-Legends Hatched?",
|
||||
legendaryPokemonSeen: "Legends Seen?",
|
||||
legendaryPokemonCaught: "Legends Caught?",
|
||||
legendaryPokemonHatched: "Legends Hatched?",
|
||||
mythicalPokemonSeen: "Mythicals Seen?",
|
||||
mythicalPokemonCaught: "Mythicals Caught?",
|
||||
mythicalPokemonHatched: "Mythicals Hatched?",
|
||||
shinyPokemonSeen: "Shinies Seen?",
|
||||
shinyPokemonCaught: "Shinies Caught?",
|
||||
shinyPokemonHatched: "Shinies Hatched?",
|
||||
pokemonFused: "Pokémon Fused?",
|
||||
trainersDefeated: "Trainers Defeated",
|
||||
eggsPulled: "Eggs Pulled",
|
||||
rareEggsPulled: "Rare Eggs Pulled?",
|
||||
epicEggsPulled: "Epic Eggs Pulled?",
|
||||
legendaryEggsPulled: "Legendary Eggs Pulled?",
|
||||
manaphyEggsPulled: "Manaphy Eggs Pulled?"
|
||||
ribbonsOwned: {
|
||||
label_key: "ribbonsOwned",
|
||||
sourceFunc: gameData => gameData.gameStats.ribbonsOwned.toString(),
|
||||
},
|
||||
classicSessionsPlayed:{
|
||||
label_key: "classicRuns",
|
||||
sourceFunc: gameData => gameData.gameStats.classicSessionsPlayed.toString(),
|
||||
},
|
||||
sessionsWon: {
|
||||
label_key: "classicWins",
|
||||
sourceFunc: gameData => gameData.gameStats.sessionsWon.toString(),
|
||||
},
|
||||
dailyRunSessionsPlayed: {
|
||||
label_key: "dailyRunAttempts",
|
||||
sourceFunc: gameData => gameData.gameStats.dailyRunSessionsPlayed.toString(),
|
||||
},
|
||||
dailyRunSessionsWon: {
|
||||
label_key: "dailyRunWins",
|
||||
sourceFunc: gameData => gameData.gameStats.dailyRunSessionsWon.toString(),
|
||||
},
|
||||
endlessSessionsPlayed: {
|
||||
label_key: "endlessRuns",
|
||||
sourceFunc: gameData => gameData.gameStats.endlessSessionsPlayed.toString(),
|
||||
hidden: true
|
||||
},
|
||||
highestEndlessWave: {
|
||||
label_key: "highestWaveEndless",
|
||||
sourceFunc: gameData => gameData.gameStats.highestEndlessWave.toString(),
|
||||
hidden: true
|
||||
},
|
||||
highestMoney: {
|
||||
label_key: "highestMoney",
|
||||
sourceFunc: gameData => Utils.formatFancyLargeNumber(gameData.gameStats.highestMoney, 3),
|
||||
},
|
||||
highestDamage: {
|
||||
label_key: "highestDamage",
|
||||
sourceFunc: gameData => gameData.gameStats.highestDamage.toString(),
|
||||
},
|
||||
highestHeal: {
|
||||
label_key: "highestHPHealed",
|
||||
sourceFunc: gameData => gameData.gameStats.highestHeal.toString(),
|
||||
},
|
||||
pokemonSeen: {
|
||||
label_key: "pokemonEncountered",
|
||||
sourceFunc: gameData => gameData.gameStats.pokemonSeen.toString(),
|
||||
},
|
||||
pokemonDefeated: {
|
||||
label_key: "pokemonDefeated",
|
||||
sourceFunc: gameData => gameData.gameStats.pokemonDefeated.toString(),
|
||||
},
|
||||
pokemonCaught: {
|
||||
label_key: "pokemonCaught",
|
||||
sourceFunc: gameData => gameData.gameStats.pokemonCaught.toString(),
|
||||
},
|
||||
pokemonHatched: {
|
||||
label_key: "eggsHatched",
|
||||
sourceFunc: gameData => gameData.gameStats.pokemonHatched.toString(),
|
||||
},
|
||||
subLegendaryPokemonSeen: {
|
||||
label_key: "subLegendsSeen",
|
||||
sourceFunc: gameData => gameData.gameStats.subLegendaryPokemonSeen.toString(),
|
||||
hidden: true
|
||||
},
|
||||
subLegendaryPokemonCaught: {
|
||||
label_key: "subLegendsCaught",
|
||||
sourceFunc: gameData => gameData.gameStats.subLegendaryPokemonCaught.toString(),
|
||||
hidden: true
|
||||
},
|
||||
subLegendaryPokemonHatched: {
|
||||
label_key: "subLegendsHatched",
|
||||
sourceFunc: gameData => gameData.gameStats.subLegendaryPokemonHatched.toString(),
|
||||
hidden: true
|
||||
},
|
||||
legendaryPokemonSeen: {
|
||||
label_key: "legendsSeen",
|
||||
sourceFunc: gameData => gameData.gameStats.legendaryPokemonSeen.toString(),
|
||||
hidden: true
|
||||
},
|
||||
legendaryPokemonCaught: {
|
||||
label_key: "legendsCaught",
|
||||
sourceFunc: gameData => gameData.gameStats.legendaryPokemonCaught.toString(),
|
||||
hidden: true
|
||||
},
|
||||
legendaryPokemonHatched: {
|
||||
label_key: "legendsHatched",
|
||||
sourceFunc: gameData => gameData.gameStats.legendaryPokemonHatched.toString(),
|
||||
hidden: true
|
||||
},
|
||||
mythicalPokemonSeen: {
|
||||
label_key: "mythicalsSeen",
|
||||
sourceFunc: gameData => gameData.gameStats.mythicalPokemonSeen.toString(),
|
||||
hidden: true
|
||||
},
|
||||
mythicalPokemonCaught: {
|
||||
label_key: "mythicalsCaught",
|
||||
sourceFunc: gameData => gameData.gameStats.mythicalPokemonCaught.toString(),
|
||||
hidden: true
|
||||
},
|
||||
mythicalPokemonHatched: {
|
||||
label_key: "mythicalsHatched",
|
||||
sourceFunc: gameData => gameData.gameStats.legendaryPokemonHatched.toString(),
|
||||
hidden: true
|
||||
},
|
||||
shinyPokemonSeen: {
|
||||
label_key: "shiniesSeen",
|
||||
sourceFunc: gameData => gameData.gameStats.shinyPokemonSeen.toString(),
|
||||
hidden: true
|
||||
},
|
||||
shinyPokemonCaught: {
|
||||
label_key: "shiniesCaught",
|
||||
sourceFunc: gameData => gameData.gameStats.shinyPokemonCaught.toString(),
|
||||
hidden: true
|
||||
},
|
||||
shinyPokemonHatched: {
|
||||
label_key: "shiniesHatched",
|
||||
sourceFunc: gameData => gameData.gameStats.shinyPokemonHatched.toString(),
|
||||
hidden: true
|
||||
},
|
||||
pokemonFused: {
|
||||
label_key: "pokemonFused",
|
||||
sourceFunc: gameData => gameData.gameStats.pokemonFused.toString(),
|
||||
hidden: true
|
||||
},
|
||||
trainersDefeated: {
|
||||
label_key: "trainersDefeated",
|
||||
sourceFunc: gameData => gameData.gameStats.trainersDefeated.toString(),
|
||||
},
|
||||
eggsPulled: {
|
||||
label_key: "eggsPulled",
|
||||
sourceFunc: gameData => gameData.gameStats.eggsPulled.toString(),
|
||||
hidden: true
|
||||
},
|
||||
rareEggsPulled: {
|
||||
label_key: "rareEggsPulled",
|
||||
sourceFunc: gameData => gameData.gameStats.rareEggsPulled.toString(),
|
||||
hidden: true
|
||||
},
|
||||
epicEggsPulled: {
|
||||
label_key: "epicEggsPulled",
|
||||
sourceFunc: gameData => gameData.gameStats.epicEggsPulled.toString(),
|
||||
hidden: true
|
||||
},
|
||||
legendaryEggsPulled: {
|
||||
label_key: "legendaryEggsPulled",
|
||||
sourceFunc: gameData => gameData.gameStats.legendaryEggsPulled.toString(),
|
||||
hidden: true
|
||||
},
|
||||
manaphyEggsPulled: {
|
||||
label_key: "manaphyEggsPulled",
|
||||
sourceFunc: gameData => gameData.gameStats.manaphyEggsPulled.toString(),
|
||||
hidden: true
|
||||
},
|
||||
};
|
||||
|
||||
export default class GameStatsUiHandler extends UiHandler {
|
||||
@ -110,7 +234,7 @@ export default class GameStatsUiHandler extends UiHandler {
|
||||
const headerBg = addWindow(this.scene, 0, 0, (this.scene.game.canvas.width / 6) - 2, 24);
|
||||
headerBg.setOrigin(0, 0);
|
||||
|
||||
const headerText = addTextObject(this.scene, 0, 0, "Stats", TextStyle.SETTINGS_LABEL);
|
||||
const headerText = addTextObject(this.scene, 0, 0, i18next.t("gameStatsUiHandler:stats"), TextStyle.SETTINGS_LABEL);
|
||||
headerText.setOrigin(0, 0);
|
||||
headerText.setPositionRelative(headerBg, 8, 4);
|
||||
|
||||
@ -127,13 +251,15 @@ export default class GameStatsUiHandler extends UiHandler {
|
||||
|
||||
this.statsContainer = this.scene.add.container(0, 0);
|
||||
|
||||
|
||||
new Array(18).fill(null).map((_, s) => {
|
||||
const statLabel = addTextObject(this.scene, 8 + (s % 2 === 1 ? statsBgWidth : 0), 28 + Math.floor(s / 2) * 16, "", TextStyle.SETTINGS_LABEL);
|
||||
|
||||
const statLabel = addTextObject(this.scene, 8 + (s % 2 === 1 ? statsBgWidth : 0), 28 + Math.floor(s / 2) * 16, "", TextStyle.STATS_LABEL);
|
||||
statLabel.setOrigin(0, 0);
|
||||
this.statsContainer.add(statLabel);
|
||||
this.statLabels.push(statLabel);
|
||||
|
||||
const statValue = addTextObject(this.scene, (statsBgWidth * ((s % 2) + 1)) - 8, statLabel.y, "", TextStyle.WINDOW);
|
||||
const statValue = addTextObject(this.scene, (statsBgWidth * ((s % 2) + 1)) - 8, statLabel.y, "", TextStyle.STATS_VALUE);
|
||||
statValue.setOrigin(1, 0);
|
||||
this.statsContainer.add(statValue);
|
||||
this.statValues.push(statValue);
|
||||
@ -173,7 +299,7 @@ export default class GameStatsUiHandler extends UiHandler {
|
||||
statKeys.forEach((key, s) => {
|
||||
const stat = displayStats[key] as DisplayStat;
|
||||
const value = stat.sourceFunc(this.scene.gameData);
|
||||
this.statLabels[s].setText(!stat.hidden || isNaN(parseInt(value)) || parseInt(value) ? stat.label : "???");
|
||||
this.statLabels[s].setText(!stat.hidden || isNaN(parseInt(value)) || parseInt(value) ? i18next.t(`gameStatsUiHandler:${stat.label_key}`) : "???");
|
||||
this.statValues[s].setText(value);
|
||||
});
|
||||
if (statKeys.length < 18) {
|
||||
@ -229,31 +355,3 @@ export default class GameStatsUiHandler extends UiHandler {
|
||||
this.gameStatsContainer.setVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
export function initStatsKeys() {
|
||||
const statKeys = Object.keys(displayStats);
|
||||
|
||||
for (const key of statKeys) {
|
||||
if (typeof displayStats[key] === "string") {
|
||||
let label = displayStats[key] as string;
|
||||
let hidden = false;
|
||||
if (label.endsWith("?")) {
|
||||
label = label.slice(0, -1);
|
||||
hidden = true;
|
||||
}
|
||||
displayStats[key] = {
|
||||
label: label,
|
||||
sourceFunc: gameData => gameData.gameStats[key].toString(),
|
||||
hidden: hidden
|
||||
};
|
||||
} else if (displayStats[key] === null) {
|
||||
displayStats[key] = {
|
||||
sourceFunc: gameData => gameData.gameStats[key].toString()
|
||||
};
|
||||
}
|
||||
if (!(displayStats[key] as DisplayStat).label) {
|
||||
const splittableKey = key.replace(/([a-z]{2,})([A-Z]{1}(?:[^A-Z]|$))/g, "$1_$2");
|
||||
(displayStats[key] as DisplayStat).label = Utils.toReadableString(`${splittableKey[0].toUpperCase()}${splittableKey.slice(1)}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -468,13 +468,11 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
|
||||
this.pokemonSprite.setPipeline(this.scene.spritePipeline, { tone: [ 0.0, 0.0, 0.0, 0.0 ], ignoreTimeTint: true });
|
||||
this.starterSelectContainer.add(this.pokemonSprite);
|
||||
|
||||
this.type1Icon = this.scene.add.sprite(8, 98, "types");
|
||||
this.type1Icon.setScale(0.5);
|
||||
this.type1Icon = this.scene.add.sprite(8, 98, `types${Utils.verifyLang(i18next.language) ? `_${i18next.language}` : ""}`); this.type1Icon.setScale(0.5);
|
||||
this.type1Icon.setOrigin(0, 0);
|
||||
this.starterSelectContainer.add(this.type1Icon);
|
||||
|
||||
this.type2Icon = this.scene.add.sprite(26, 98, "types");
|
||||
this.type2Icon.setScale(0.5);
|
||||
this.type2Icon = this.scene.add.sprite(26, 98, `types${Utils.verifyLang(i18next.language) ? `_${i18next.language}` : ""}`); this.type2Icon.setScale(0.5);
|
||||
this.type2Icon.setOrigin(0, 0);
|
||||
this.starterSelectContainer.add(this.type2Icon);
|
||||
|
||||
|
@ -21,6 +21,7 @@ import { PlayerGender } from "../system/game-data";
|
||||
import { Variant, getVariantTint } from "#app/data/variant";
|
||||
import {Button} from "../enums/buttons";
|
||||
import { Ability } from "../data/ability.js";
|
||||
import i18next from "i18next";
|
||||
|
||||
enum Page {
|
||||
PROFILE,
|
||||
@ -694,8 +695,7 @@ export default class SummaryUiHandler extends UiHandler {
|
||||
const getTypeIcon = (index: integer, type: Type, tera: boolean = false) => {
|
||||
const xCoord = 39 + 34 * index;
|
||||
const typeIcon = !tera
|
||||
? this.scene.add.sprite(xCoord, 42, "types", Type[type].toLowerCase())
|
||||
: this.scene.add.sprite(xCoord, 42, "type_tera");
|
||||
? this.scene.add.sprite(xCoord, 42, `types${Utils.verifyLang(i18next.language) ? `_${i18next.language}` : ""}`, Type[type].toLowerCase()) : this.scene.add.sprite(xCoord, 42, "type_tera");
|
||||
if (tera) {
|
||||
typeIcon.setScale(0.5);
|
||||
const typeRgb = getTypeRgb(type);
|
||||
@ -920,8 +920,7 @@ export default class SummaryUiHandler extends UiHandler {
|
||||
this.moveRowsContainer.add(moveRowContainer);
|
||||
|
||||
if (move) {
|
||||
const typeIcon = this.scene.add.sprite(0, 0, "types", Type[move.getMove().type].toLowerCase());
|
||||
typeIcon.setOrigin(0, 1);
|
||||
const typeIcon = this.scene.add.sprite(0, 0, `types${Utils.verifyLang(i18next.language) ? `_${i18next.language}` : ""}`, Type[move.getMove().type].toLowerCase()); typeIcon.setOrigin(0, 1);
|
||||
moveRowContainer.add(typeIcon);
|
||||
}
|
||||
|
||||
|
@ -22,6 +22,8 @@ export enum TextStyle {
|
||||
SUMMARY_GRAY,
|
||||
SUMMARY_GREEN,
|
||||
MONEY,
|
||||
STATS_LABEL,
|
||||
STATS_VALUE,
|
||||
SETTINGS_LABEL,
|
||||
SETTINGS_SELECTED,
|
||||
TOOLTIP_TITLE,
|
||||
@ -112,6 +114,33 @@ function getTextStyleOptions(style: TextStyle, uiTheme: UiTheme, extraStyleOptio
|
||||
case TextStyle.WINDOW_ALT:
|
||||
shadowXpos = 3;
|
||||
shadowYpos = 3;
|
||||
break;
|
||||
case TextStyle.STATS_LABEL:
|
||||
let fontSizeLabel = "96px";
|
||||
switch (lang) {
|
||||
case "de":
|
||||
fontSizeLabel = "80px";
|
||||
break;
|
||||
default:
|
||||
fontSizeLabel = "96px";
|
||||
break;
|
||||
}
|
||||
styleOptions.fontSize = fontSizeLabel;
|
||||
break;
|
||||
case TextStyle.STATS_VALUE:
|
||||
shadowXpos = 3;
|
||||
shadowYpos = 3;
|
||||
let fontSizeValue = "96px";
|
||||
switch (lang) {
|
||||
case "de":
|
||||
fontSizeValue = "80px";
|
||||
break;
|
||||
default:
|
||||
fontSizeValue = "96px";
|
||||
break;
|
||||
}
|
||||
styleOptions.fontSize = fontSizeValue;
|
||||
break;
|
||||
case TextStyle.MESSAGE:
|
||||
case TextStyle.SETTINGS_LABEL:
|
||||
case TextStyle.SETTINGS_SELECTED:
|
||||
@ -199,6 +228,10 @@ export function getTextColor(textStyle: TextStyle, shadow?: boolean, uiTheme: Ui
|
||||
return !shadow ? "#e8e8a8" : "#a0a060";
|
||||
case TextStyle.SUMMARY_GRAY:
|
||||
return !shadow ? "#a0a0a0" : "#636363";
|
||||
case TextStyle.STATS_LABEL:
|
||||
return !shadow ? "#f8b050" : "#c07800";
|
||||
case TextStyle.STATS_VALUE:
|
||||
return !shadow ? "#f8f8f8" : "#6b5a73";
|
||||
case TextStyle.SUMMARY_GREEN:
|
||||
return !shadow ? "#78c850" : "#306850";
|
||||
case TextStyle.SETTINGS_LABEL:
|
||||
|
21
src/ui/ui.ts
@ -1,4 +1,4 @@
|
||||
import { default as BattleScene } from "../battle-scene";
|
||||
import {default as BattleScene} from "../battle-scene";
|
||||
import UiHandler from "./ui-handler";
|
||||
import BattleMessageUiHandler from "./battle-message-ui-handler";
|
||||
import CommandUiHandler from "./command-ui-handler";
|
||||
@ -13,7 +13,7 @@ import StarterSelectUiHandler from "./starter-select-ui-handler";
|
||||
import EvolutionSceneHandler from "./evolution-scene-handler";
|
||||
import TargetSelectUiHandler from "./target-select-ui-handler";
|
||||
import SettingsUiHandler from "./settings-ui-handler";
|
||||
import { TextStyle, addTextObject } from "./text";
|
||||
import {addTextObject, TextStyle} from "./text";
|
||||
import AchvBar from "./achv-bar";
|
||||
import MenuUiHandler from "./menu-ui-handler";
|
||||
import AchvsUiHandler from "./achvs-ui-handler";
|
||||
@ -22,7 +22,7 @@ import EggHatchSceneHandler from "./egg-hatch-scene-handler";
|
||||
import EggListUiHandler from "./egg-list-ui-handler";
|
||||
import EggGachaUiHandler from "./egg-gacha-ui-handler";
|
||||
import VouchersUiHandler from "./vouchers-ui-handler";
|
||||
import { addWindow } from "./ui-theme";
|
||||
import {addWindow} from "./ui-theme";
|
||||
import LoginFormUiHandler from "./login-form-ui-handler";
|
||||
import RegistrationFormUiHandler from "./registration-form-ui-handler";
|
||||
import LoadingModalUiHandler from "./loading-modal-ui-handler";
|
||||
@ -36,6 +36,8 @@ import UnavailableModalUiHandler from "./unavailable-modal-ui-handler";
|
||||
import OutdatedModalUiHandler from "./outdated-modal-ui-handler";
|
||||
import SessionReloadModalUiHandler from "./session-reload-modal-ui-handler";
|
||||
import {Button} from "../enums/buttons";
|
||||
import i18next, {ParseKeys} from "i18next";
|
||||
import {PlayerGender} from "#app/system/game-data";
|
||||
|
||||
export enum Mode {
|
||||
MESSAGE,
|
||||
@ -234,6 +236,19 @@ export default class UI extends Phaser.GameObjects.Container {
|
||||
}
|
||||
|
||||
showDialogue(text: string, name: string, delay: integer = 0, callback: Function, callbackDelay?: integer, promptDelay?: integer): void {
|
||||
// First get the gender of the player (default male) (also used if UNSET)
|
||||
let playerGenderPrefix = "PGM";
|
||||
if ((this.scene as BattleScene).gameData.gender === PlayerGender.FEMALE) {
|
||||
playerGenderPrefix = "PGF";
|
||||
}
|
||||
// Add the prefix to the text
|
||||
const localizationKey = playerGenderPrefix + text;
|
||||
// Get localized dialogue (if available)
|
||||
if (i18next.exists(localizationKey as ParseKeys) ) {
|
||||
|
||||
|
||||
text = i18next.t(localizationKey as ParseKeys);
|
||||
}
|
||||
if (text.indexOf("$") > -1) {
|
||||
const messagePages = text.split(/\$/g).map(m => m.trim());
|
||||
let showMessageAndCallback = () => callback();
|
||||
|
48
src/utils.ts
@ -1,3 +1,5 @@
|
||||
import i18next from "i18next";
|
||||
|
||||
export const MissingTextureKey = "__MISSING";
|
||||
|
||||
export function toReadableString(str: string): string {
|
||||
@ -215,6 +217,26 @@ export function formatLargeNumber(count: integer, threshold: integer): string {
|
||||
return `${ret.slice(0, digits)}${decimalNumber ? `.${decimalNumber}` : ""}${suffix}`;
|
||||
}
|
||||
|
||||
// Abbreviations from 10^0 to 10^33
|
||||
const AbbreviationsLargeNumber: string[] = ["", "K", "M", "B", "t", "q", "Q", "s", "S", "o", "n", "d"];
|
||||
|
||||
export function formatFancyLargeNumber(number: number, rounded: number = 2): string {
|
||||
let exponent: number;
|
||||
|
||||
if (number < 1000) {
|
||||
exponent = 0;
|
||||
} else {
|
||||
const maxExp = AbbreviationsLargeNumber.length - 1;
|
||||
|
||||
exponent = Math.floor(Math.log(number) / Math.log(1000));
|
||||
exponent = Math.min(exponent, maxExp);
|
||||
|
||||
number /= Math.pow(1000, exponent);
|
||||
}
|
||||
|
||||
return `${(exponent === 0) ? number : number.toFixed(rounded)}${AbbreviationsLargeNumber[exponent]}`;
|
||||
}
|
||||
|
||||
export function formatStat(stat: integer, forHp: boolean = false): string {
|
||||
return formatLargeNumber(stat, forHp ? 100000 : 1000000);
|
||||
}
|
||||
@ -358,3 +380,29 @@ export function rgbHexToRgba(hex: string) {
|
||||
export function rgbaToInt(rgba: integer[]): integer {
|
||||
return (rgba[0] << 24) + (rgba[1] << 16) + (rgba[2] << 8) + rgba[3];
|
||||
}
|
||||
|
||||
/*This function returns true if the current lang is available for some functions
|
||||
If the lang is not in the function, it usually means that lang is going to use the default english version
|
||||
This function is used in:
|
||||
- summary-ui-handler.ts: If the lang is not available, it'll use types.json (english)
|
||||
English itself counts as not available
|
||||
*/
|
||||
export function verifyLang(lang?: string): boolean {
|
||||
//IMPORTANT - ONLY ADD YOUR LANG HERE IF YOU'VE ALREADY ADDED ALL THE NECESSARY IMAGES
|
||||
if (!lang) {
|
||||
lang = i18next.language;
|
||||
}
|
||||
|
||||
switch (lang) {
|
||||
case "es":
|
||||
case "fr":
|
||||
case "de":
|
||||
case "it":
|
||||
case "zh_CN":
|
||||
case "zh_TW":
|
||||
case "pt_BR":
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|