pull latest from beta and update Mysterious Chest visuals

This commit is contained in:
ImperialSympathizer 2024-08-28 20:30:44 -04:00
commit e77c6adb4f
160 changed files with 5153 additions and 2563 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -4,198 +4,198 @@
"image": "chest_blue.png",
"format": "RGBA8888",
"size": {
"w": 58,
"h": 528
"w": 54,
"h": 492
},
"scale": 1,
"frames": [
{
"filename": "0000.png",
"rotated": false,
"trimmed": true,
"trimmed": false,
"sourceSize": {
"w": 75,
"h": 75
"w": 46,
"h": 39
},
"spriteSourceSize": {
"x": 14,
"y": 30,
"w": 48,
"h": 41
"x": 0,
"y": 0,
"w": 46,
"h": 39
},
"frame": {
"x": 1,
"y": 1,
"w": 48,
"h": 41
"x": 0,
"y": 0,
"w": 46,
"h": 39
}
},
{
"filename": "0001.png",
"rotated": false,
"trimmed": true,
"trimmed": false,
"sourceSize": {
"w": 75,
"h": 75
"w": 47,
"h": 35
},
"spriteSourceSize": {
"x": 14,
"y": 34,
"w": 49,
"h": 37
"x": 0,
"y": 0,
"w": 47,
"h": 35
},
"frame": {
"x": 1,
"y": 44,
"w": 49,
"h": 37
"x": 0,
"y": 39,
"w": 47,
"h": 35
}
},
{
"filename": "0002.png",
"rotated": false,
"trimmed": true,
"trimmed": false,
"sourceSize": {
"w": 75,
"h": 75
"w": 46,
"h": 39
},
"spriteSourceSize": {
"x": 14,
"y": 30,
"w": 48,
"h": 41
"x": 0,
"y": 0,
"w": 46,
"h": 39
},
"frame": {
"x": 1,
"y": 83,
"w": 48,
"h": 41
"x": 0,
"y": 74,
"w": 46,
"h": 39
}
},
{
"filename": "0003.png",
"rotated": false,
"trimmed": true,
"trimmed": false,
"sourceSize": {
"w": 75,
"h": 75
"w": 46,
"h": 46
},
"spriteSourceSize": {
"x": 14,
"y": 23,
"w": 48,
"h": 48
"x": 0,
"y": 0,
"w": 46,
"h": 46
},
"frame": {
"x": 1,
"y": 126,
"w": 48,
"h": 48
"x": 0,
"y": 113,
"w": 46,
"h": 46
}
},
{
"filename": "0004.png",
"rotated": false,
"trimmed": true,
"trimmed": false,
"sourceSize": {
"w": 75,
"h": 75
"w": 53,
"h": 65
},
"spriteSourceSize": {
"x": 13,
"y": 4,
"w": 55,
"h": 67
"x": 0,
"y": 0,
"w": 53,
"h": 65
},
"frame": {
"x": 1,
"y": 176,
"w": 55,
"h": 67
"x": 0,
"y": 159,
"w": 53,
"h": 65
}
},
{
"filename": "0005.png",
"rotated": false,
"trimmed": true,
"trimmed": false,
"sourceSize": {
"w": 75,
"h": 75
"w": 54,
"h": 67
},
"spriteSourceSize": {
"x": 15,
"y": 2,
"w": 56,
"h": 69
"x": 0,
"y": 0,
"w": 54,
"h": 67
},
"frame": {
"x": 1,
"y": 245,
"w": 56,
"h": 69
"x": 0,
"y": 224,
"w": 54,
"h": 67
}
},
{
"filename": "0006.png",
"rotated": false,
"trimmed": true,
"trimmed": false,
"sourceSize": {
"w": 75,
"h": 75
"w": 54,
"h": 67
},
"spriteSourceSize": {
"x": 15,
"y": 2,
"w": 56,
"h": 69
"x": 0,
"y": 0,
"w": 54,
"h": 67
},
"frame": {
"x": 1,
"y": 316,
"w": 56,
"h": 69
"x": 0,
"y": 291,
"w": 54,
"h": 67
}
},
{
"filename": "0007.png",
"rotated": false,
"trimmed": true,
"trimmed": false,
"sourceSize": {
"w": 75,
"h": 75
"w": 54,
"h": 67
},
"spriteSourceSize": {
"x": 13,
"y": 2,
"w": 56,
"h": 69
"x": 0,
"y": 0,
"w": 54,
"h": 67
},
"frame": {
"x": 1,
"y": 387,
"w": 56,
"h": 69
"x": 0,
"y": 358,
"w": 54,
"h": 67
}
},
{
"filename": "0008.png",
"rotated": false,
"trimmed": true,
"trimmed": false,
"sourceSize": {
"w": 75,
"h": 75
"w": 54,
"h": 67
},
"spriteSourceSize": {
"x": 13,
"y": 2,
"w": 56,
"h": 69
"x": 0,
"y": 0,
"w": 54,
"h": 67
},
"frame": {
"x": 1,
"y": 458,
"w": 56,
"h": 69
"x": 0,
"y": 425,
"w": 54,
"h": 67
}
}
]
@ -204,6 +204,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:5f36000f6160ee6f397afe5a6fd60b73:cf6f4b08e23400447813583c322eb6c7:f4f3c064e6c93b8d1290f93bee927f60$"
"smartupdate": "$TexturePacker:SmartUpdate:017ecc2437e580a185f9843f97e80da5:f44ef1c27a4a17183a5bcf1f7fc8ce6a:f4f3c064e6c93b8d1290f93bee927f60$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -4,30 +4,198 @@
"image": "chest_red.png",
"format": "RGBA8888",
"size": {
"w": 76,
"h": 57
"w": 54,
"h": 492
},
"scale": 1,
"frames": [
{
"filename": "0000.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 46,
"h": 39
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 46,
"h": 39
},
"frame": {
"x": 0,
"y": 0,
"w": 46,
"h": 39
}
},
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 76,
"h": 57
"w": 47,
"h": 35
},
"spriteSourceSize": {
"x": 10,
"y": 3,
"w": 56,
"h": 54
"x": 0,
"y": 0,
"w": 47,
"h": 35
},
"frame": {
"x": 8,
"x": 0,
"y": 39,
"w": 47,
"h": 35
}
},
{
"filename": "0002.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 46,
"h": 39
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 56,
"h": 54
"w": 46,
"h": 39
},
"frame": {
"x": 0,
"y": 74,
"w": 46,
"h": 39
}
},
{
"filename": "0003.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 46,
"h": 46
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 46,
"h": 46
},
"frame": {
"x": 0,
"y": 113,
"w": 46,
"h": 46
}
},
{
"filename": "0004.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 53,
"h": 65
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 53,
"h": 65
},
"frame": {
"x": 0,
"y": 159,
"w": 53,
"h": 65
}
},
{
"filename": "0005.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 54,
"h": 67
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 54,
"h": 67
},
"frame": {
"x": 0,
"y": 224,
"w": 54,
"h": 67
}
},
{
"filename": "0006.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 54,
"h": 67
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 54,
"h": 67
},
"frame": {
"x": 0,
"y": 291,
"w": 54,
"h": 67
}
},
{
"filename": "0007.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 54,
"h": 67
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 54,
"h": 67
},
"frame": {
"x": 0,
"y": 358,
"w": 54,
"h": 67
}
},
{
"filename": "0008.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 54,
"h": 67
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 54,
"h": 67
},
"frame": {
"x": 0,
"y": 425,
"w": 54,
"h": 67
}
}
]
@ -36,6 +204,6 @@
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:895f0a79b89fa0fb44167f4584fd9a22:357b46953b7e17c6b2f43a62d52855d8:cc1ed0e4f90aaa9dcf1b39a0af1283b0$"
"smartupdate": "$TexturePacker:SmartUpdate:2a0b6c93c5be115efa635d40780603f0:b5fde49f991c2ecc49afedd80cc8a544:a163d960e9966469ae4dde4b53c13496$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@ -4312,6 +4312,11 @@
1,
1
],
"99-gigantamax": [
0,
1,
1
],
"100": [
0,
1,
@ -9940,12 +9945,12 @@
],
"672": [
0,
2,
1,
1
],
"673": [
0,
2,
1,
1
],
"677": [
@ -10806,7 +10811,7 @@
"962": [
1,
1,
2
1
],
"967": [
0,
@ -11095,4 +11100,4 @@
1
]
}
}
}

View File

@ -0,0 +1,32 @@
{
"1": {
"c56a5a": "6232a9",
"f6c58b": "9f60d5",
"832908": "3b1c69",
"ee8b4a": "8853bf",
"101010": "101010",
"735210": "534681",
"fdfdfd": "ffdbdb",
"e1d0db": "d5869b",
"ffe6b4": "c3d6ff",
"eebd8b": "9ba3d9",
"b47b5a": "7c72b6",
"b5a6b5": "b65782",
"9a859a": "872d65"
},
"2": {
"c56a5a": "2d6f9e",
"f6c58b": "75e0e8",
"832908": "22447d",
"ee8b4a": "43adc4",
"101010": "101010",
"735210": "1e1743",
"fdfdfd": "b1f1cf",
"e1d0db": "73c1c2",
"ffe6b4": "464d89",
"eebd8b": "31296f",
"b47b5a": "231b4e",
"b5a6b5": "44778a",
"9a859a": "2f4c6b"
}
}

View File

@ -1,4 +1,20 @@
{
"1": {
"3d3128": "69112a",
"000000": "000000",
"67615b": "9e2c3d",
"615140": "89431b",
"7e6d5a": "b3743e",
"554538": "642509",
"efeded": "f8e2b7",
"beb8b6": "e3a378",
"0e5d58": "8c6859",
"09a77c": "f8f0e2",
"0d8374": "d2af94",
"c16a3f": "321512",
"c6b379": "552d30",
"a8905c": "4b2525"
},
"2": {
"3d3128": "161526",
"000000": "000000",
@ -15,4 +31,4 @@
"c6b379": "9f5f9b",
"a8905c": "854d87"
}
}
}

View File

@ -1,965 +0,0 @@
{
"textures": [
{
"image": "672_2.png",
"format": "RGBA8888",
"size": {
"w": 282,
"h": 282
},
"scale": 1,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
}
},
{
"filename": "0002.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
}
},
{
"filename": "0021.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
}
},
{
"filename": "0022.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
}
},
{
"filename": "0023.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
}
},
{
"filename": "0024.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
}
},
{
"filename": "0045.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
}
},
{
"filename": "0003.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 0,
"y": 42,
"w": 41,
"h": 42
}
},
{
"filename": "0004.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 0,
"y": 42,
"w": 41,
"h": 42
}
},
{
"filename": "0005.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 0,
"y": 84,
"w": 41,
"h": 42
}
},
{
"filename": "0006.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 0,
"y": 126,
"w": 41,
"h": 42
}
},
{
"filename": "0007.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 0,
"y": 168,
"w": 41,
"h": 42
}
},
{
"filename": "0018.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 0,
"y": 210,
"w": 41,
"h": 42
}
},
{
"filename": "0019.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 41,
"y": 0,
"w": 41,
"h": 42
}
},
{
"filename": "0020.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 82,
"y": 0,
"w": 41,
"h": 42
}
},
{
"filename": "0025.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 123,
"y": 0,
"w": 41,
"h": 42
}
},
{
"filename": "0026.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 164,
"y": 0,
"w": 41,
"h": 42
}
},
{
"filename": "0027.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 205,
"y": 0,
"w": 41,
"h": 42
}
},
{
"filename": "0042.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 41,
"y": 42,
"w": 41,
"h": 42
}
},
{
"filename": "0043.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 41,
"y": 84,
"w": 41,
"h": 42
}
},
{
"filename": "0044.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 41,
"h": 42
},
"frame": {
"x": 41,
"y": 126,
"w": 41,
"h": 42
}
},
{
"filename": "0008.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 41,
"h": 41
},
"frame": {
"x": 41,
"y": 168,
"w": 41,
"h": 41
}
},
{
"filename": "0009.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 41,
"h": 41
},
"frame": {
"x": 41,
"y": 209,
"w": 41,
"h": 41
}
},
{
"filename": "0010.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 41,
"h": 41
},
"frame": {
"x": 82,
"y": 42,
"w": 41,
"h": 41
}
},
{
"filename": "0015.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 41,
"h": 41
},
"frame": {
"x": 123,
"y": 42,
"w": 41,
"h": 41
}
},
{
"filename": "0016.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 41,
"h": 41
},
"frame": {
"x": 164,
"y": 42,
"w": 41,
"h": 41
}
},
{
"filename": "0017.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 41,
"h": 41
},
"frame": {
"x": 205,
"y": 42,
"w": 41,
"h": 41
}
},
{
"filename": "0028.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 41,
"h": 41
},
"frame": {
"x": 82,
"y": 83,
"w": 41,
"h": 41
}
},
{
"filename": "0029.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 41,
"h": 41
},
"frame": {
"x": 82,
"y": 124,
"w": 41,
"h": 41
}
},
{
"filename": "0040.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 1,
"y": 0,
"w": 40,
"h": 42
},
"frame": {
"x": 82,
"y": 165,
"w": 40,
"h": 42
}
},
{
"filename": "0041.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 1,
"y": 0,
"w": 40,
"h": 42
},
"frame": {
"x": 82,
"y": 207,
"w": 40,
"h": 42
}
},
{
"filename": "0011.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 40,
"h": 41
},
"frame": {
"x": 122,
"y": 165,
"w": 40,
"h": 41
}
},
{
"filename": "0012.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 40,
"h": 41
},
"frame": {
"x": 122,
"y": 206,
"w": 40,
"h": 41
}
},
{
"filename": "0013.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 40,
"h": 41
},
"frame": {
"x": 123,
"y": 83,
"w": 40,
"h": 41
}
},
{
"filename": "0014.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 1,
"w": 40,
"h": 41
},
"frame": {
"x": 123,
"y": 124,
"w": 40,
"h": 41
}
},
{
"filename": "0037.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 1,
"y": 1,
"w": 40,
"h": 41
},
"frame": {
"x": 162,
"y": 165,
"w": 40,
"h": 41
}
},
{
"filename": "0038.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 1,
"y": 1,
"w": 40,
"h": 41
},
"frame": {
"x": 162,
"y": 206,
"w": 40,
"h": 41
}
},
{
"filename": "0039.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 1,
"y": 1,
"w": 40,
"h": 41
},
"frame": {
"x": 163,
"y": 83,
"w": 40,
"h": 41
}
},
{
"filename": "0030.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 2,
"w": 41,
"h": 40
},
"frame": {
"x": 163,
"y": 124,
"w": 41,
"h": 40
}
},
{
"filename": "0031.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 0,
"y": 2,
"w": 41,
"h": 40
},
"frame": {
"x": 203,
"y": 83,
"w": 41,
"h": 40
}
},
{
"filename": "0032.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 1,
"y": 2,
"w": 40,
"h": 40
},
"frame": {
"x": 202,
"y": 164,
"w": 40,
"h": 40
}
},
{
"filename": "0033.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 1,
"y": 2,
"w": 40,
"h": 40
},
"frame": {
"x": 204,
"y": 123,
"w": 40,
"h": 40
}
},
{
"filename": "0034.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 1,
"y": 2,
"w": 40,
"h": 40
},
"frame": {
"x": 242,
"y": 163,
"w": 40,
"h": 40
}
},
{
"filename": "0035.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 1,
"y": 2,
"w": 40,
"h": 40
},
"frame": {
"x": 242,
"y": 203,
"w": 40,
"h": 40
}
},
{
"filename": "0036.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 41,
"h": 42
},
"spriteSourceSize": {
"x": 1,
"y": 2,
"w": 40,
"h": 40
},
"frame": {
"x": 202,
"y": 204,
"w": 40,
"h": 40
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:b36f1de558a8fa8ac8b56a9ba43a0dfd:5fe84a3f522e543bfbbfe0837355266b:2e4767b7cd134fc0ab1bb6e9eee82bc7$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View File

@ -1,4 +1,20 @@
{
"1": {
"3d3128": "5a0e24",
"000000": "000000",
"554538": "471405",
"67615b": "8f2837",
"0d835a": "d2af94",
"0e5d58": "8c6352",
"74593a": "61240a",
"09a766": "f8f0e2",
"cabfbb": "e3a378",
"efeded": "f8e2b7",
"a8905c": "9e4e21",
"c6b379": "ce8648",
"ae492a": "321512",
"c16a3f": "552d30"
},
"2": {
"3d3128": "121123",
"000000": "000000",
@ -15,4 +31,4 @@
"ae492a": "612c6b",
"c16a3f": "9f5f9b"
}
}
}

View File

@ -1,965 +0,0 @@
{
"textures": [
{
"image": "673_2.png",
"format": "RGBA8888",
"size": {
"w": 384,
"h": 384
},
"scale": 1,
"frames": [
{
"filename": "0029.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 62,
"h": 65
},
"frame": {
"x": 0,
"y": 0,
"w": 62,
"h": 65
}
},
{
"filename": "0039.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 62,
"h": 65
},
"frame": {
"x": 0,
"y": 0,
"w": 62,
"h": 65
}
},
{
"filename": "0030.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 62,
"h": 65
},
"frame": {
"x": 62,
"y": 0,
"w": 62,
"h": 65
}
},
{
"filename": "0038.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 62,
"h": 65
},
"frame": {
"x": 62,
"y": 0,
"w": 62,
"h": 65
}
},
{
"filename": "0031.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 62,
"h": 65
},
"frame": {
"x": 124,
"y": 0,
"w": 62,
"h": 65
}
},
{
"filename": "0032.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 62,
"h": 65
},
"frame": {
"x": 186,
"y": 0,
"w": 62,
"h": 65
}
},
{
"filename": "0033.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 62,
"h": 65
},
"frame": {
"x": 248,
"y": 0,
"w": 62,
"h": 65
}
},
{
"filename": "0035.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 62,
"h": 65
},
"frame": {
"x": 248,
"y": 0,
"w": 62,
"h": 65
}
},
{
"filename": "0034.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 62,
"h": 65
},
"frame": {
"x": 310,
"y": 0,
"w": 62,
"h": 65
}
},
{
"filename": "0036.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 62,
"h": 65
},
"frame": {
"x": 0,
"y": 65,
"w": 62,
"h": 65
}
},
{
"filename": "0037.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 62,
"h": 65
},
"frame": {
"x": 62,
"y": 65,
"w": 62,
"h": 65
}
},
{
"filename": "0028.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 61,
"h": 65
},
"frame": {
"x": 124,
"y": 65,
"w": 61,
"h": 65
}
},
{
"filename": "0040.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 0,
"y": 0,
"w": 61,
"h": 65
},
"frame": {
"x": 124,
"y": 65,
"w": 61,
"h": 65
}
},
{
"filename": "0026.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 1,
"y": 0,
"w": 60,
"h": 65
},
"frame": {
"x": 185,
"y": 65,
"w": 60,
"h": 65
}
},
{
"filename": "0027.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 1,
"y": 0,
"w": 60,
"h": 65
},
"frame": {
"x": 245,
"y": 65,
"w": 60,
"h": 65
}
},
{
"filename": "0041.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 1,
"y": 0,
"w": 60,
"h": 65
},
"frame": {
"x": 305,
"y": 65,
"w": 60,
"h": 65
}
},
{
"filename": "0042.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 1,
"y": 0,
"w": 60,
"h": 65
},
"frame": {
"x": 0,
"y": 130,
"w": 60,
"h": 65
}
},
{
"filename": "0013.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 0,
"y": 3,
"w": 60,
"h": 62
},
"frame": {
"x": 60,
"y": 130,
"w": 60,
"h": 62
}
},
{
"filename": "0001.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 1,
"y": 0,
"w": 59,
"h": 65
},
"frame": {
"x": 120,
"y": 130,
"w": 59,
"h": 65
}
},
{
"filename": "0023.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 1,
"y": 0,
"w": 59,
"h": 65
},
"frame": {
"x": 120,
"y": 130,
"w": 59,
"h": 65
}
},
{
"filename": "0024.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 1,
"y": 0,
"w": 59,
"h": 65
},
"frame": {
"x": 120,
"y": 130,
"w": 59,
"h": 65
}
},
{
"filename": "0045.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 1,
"y": 0,
"w": 59,
"h": 65
},
"frame": {
"x": 120,
"y": 130,
"w": 59,
"h": 65
}
},
{
"filename": "0002.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 1,
"y": 0,
"w": 59,
"h": 65
},
"frame": {
"x": 60,
"y": 192,
"w": 59,
"h": 65
}
},
{
"filename": "0022.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 1,
"y": 0,
"w": 59,
"h": 65
},
"frame": {
"x": 60,
"y": 192,
"w": 59,
"h": 65
}
},
{
"filename": "0025.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 1,
"y": 0,
"w": 59,
"h": 65
},
"frame": {
"x": 60,
"y": 192,
"w": 59,
"h": 65
}
},
{
"filename": "0043.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 1,
"y": 0,
"w": 59,
"h": 65
},
"frame": {
"x": 60,
"y": 192,
"w": 59,
"h": 65
}
},
{
"filename": "0021.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 1,
"y": 0,
"w": 59,
"h": 65
},
"frame": {
"x": 0,
"y": 195,
"w": 59,
"h": 65
}
},
{
"filename": "0044.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 1,
"y": 0,
"w": 59,
"h": 65
},
"frame": {
"x": 179,
"y": 130,
"w": 59,
"h": 65
}
},
{
"filename": "0003.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 2,
"y": 1,
"w": 58,
"h": 64
},
"frame": {
"x": 238,
"y": 130,
"w": 58,
"h": 64
}
},
{
"filename": "0004.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 2,
"y": 1,
"w": 58,
"h": 64
},
"frame": {
"x": 238,
"y": 130,
"w": 58,
"h": 64
}
},
{
"filename": "0005.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 2,
"y": 1,
"w": 58,
"h": 64
},
"frame": {
"x": 238,
"y": 194,
"w": 58,
"h": 64
}
},
{
"filename": "0006.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 2,
"y": 1,
"w": 58,
"h": 64
},
"frame": {
"x": 59,
"y": 257,
"w": 58,
"h": 64
}
},
{
"filename": "0019.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 2,
"y": 1,
"w": 58,
"h": 64
},
"frame": {
"x": 0,
"y": 260,
"w": 58,
"h": 64
}
},
{
"filename": "0020.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 2,
"y": 1,
"w": 58,
"h": 64
},
"frame": {
"x": 117,
"y": 257,
"w": 58,
"h": 64
}
},
{
"filename": "0012.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 2,
"y": 3,
"w": 58,
"h": 62
},
"frame": {
"x": 119,
"y": 195,
"w": 58,
"h": 62
}
},
{
"filename": "0018.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 3,
"y": 1,
"w": 57,
"h": 64
},
"frame": {
"x": 175,
"y": 257,
"w": 57,
"h": 64
}
},
{
"filename": "0014.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 2,
"y": 3,
"w": 58,
"h": 62
},
"frame": {
"x": 177,
"y": 195,
"w": 58,
"h": 62
}
},
{
"filename": "0007.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 3,
"y": 2,
"w": 57,
"h": 63
},
"frame": {
"x": 232,
"y": 258,
"w": 57,
"h": 63
}
},
{
"filename": "0008.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 3,
"y": 2,
"w": 57,
"h": 63
},
"frame": {
"x": 289,
"y": 258,
"w": 57,
"h": 63
}
},
{
"filename": "0009.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 3,
"y": 2,
"w": 57,
"h": 63
},
"frame": {
"x": 296,
"y": 130,
"w": 57,
"h": 63
}
},
{
"filename": "0017.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 3,
"y": 2,
"w": 57,
"h": 63
},
"frame": {
"x": 296,
"y": 193,
"w": 57,
"h": 63
}
},
{
"filename": "0015.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 4,
"y": 2,
"w": 56,
"h": 63
},
"frame": {
"x": 58,
"y": 321,
"w": 56,
"h": 63
}
},
{
"filename": "0016.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 4,
"y": 2,
"w": 56,
"h": 63
},
"frame": {
"x": 114,
"y": 321,
"w": 56,
"h": 63
}
},
{
"filename": "0010.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 4,
"y": 3,
"w": 56,
"h": 62
},
"frame": {
"x": 170,
"y": 321,
"w": 56,
"h": 62
}
},
{
"filename": "0011.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 62,
"h": 65
},
"spriteSourceSize": {
"x": 4,
"y": 3,
"w": 56,
"h": 62
},
"frame": {
"x": 226,
"y": 321,
"w": 56,
"h": 62
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:05149e465b79b92adcb764d8f903ce8d:523fbed3890bc743f1863e6db3150ddb:5d92dd5d09b0875a1d8f3606df775958$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

View File

@ -28,5 +28,20 @@
"fffbff": "edf8e6",
"7b827b": "6a856a",
"a7aba7": "98a798"
},
"2": {
"342930": "754156",
"0f0f0f": "0f0f0f",
"4a3942": "a5777f",
"937d85": "2f2655",
"b9aaaf": "453863",
"665b60": "211f45",
"efe3e1": "67548a",
"a7aba7": "ddac84",
"fffbff": "f7e5d0",
"e64c62": "aba7a8",
"993e49": "797877",
"501d25": "545151",
"7b827b": "a96c4b"
}
}
}

View File

@ -1,167 +0,0 @@
{
"textures": [
{
"image": "962_3.png",
"format": "RGBA8888",
"size": {
"w": 224,
"h": 224
},
"scale": 1,
"frames": [
{
"filename": "0003.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 101,
"h": 97
},
"spriteSourceSize": {
"x": 1,
"y": 0,
"w": 82,
"h": 86
},
"frame": {
"x": 0,
"y": 0,
"w": 82,
"h": 86
}
},
{
"filename": "0002.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 101,
"h": 97
},
"spriteSourceSize": {
"x": 1,
"y": 4,
"w": 87,
"h": 79
},
"frame": {
"x": 0,
"y": 86,
"w": 87,
"h": 79
}
},
{
"filename": "0001.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 101,
"h": 97
},
"spriteSourceSize": {
"x": 1,
"y": 6,
"w": 92,
"h": 74
},
"frame": {
"x": 82,
"y": 0,
"w": 92,
"h": 74
}
},
{
"filename": "0006.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 101,
"h": 97
},
"spriteSourceSize": {
"x": 1,
"y": 38,
"w": 91,
"h": 59
},
"frame": {
"x": 0,
"y": 165,
"w": 91,
"h": 59
}
},
{
"filename": "0007.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 101,
"h": 97
},
"spriteSourceSize": {
"x": 1,
"y": 36,
"w": 91,
"h": 60
},
"frame": {
"x": 87,
"y": 74,
"w": 91,
"h": 60
}
},
{
"filename": "0004.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 101,
"h": 97
},
"spriteSourceSize": {
"x": 0,
"y": 41,
"w": 101,
"h": 41
},
"frame": {
"x": 91,
"y": 134,
"w": 101,
"h": 41
}
},
{
"filename": "0005.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 101,
"h": 97
},
"spriteSourceSize": {
"x": 0,
"y": 40,
"w": 100,
"h": 38
},
"frame": {
"x": 91,
"y": 175,
"w": 100,
"h": 38
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:ee54d59ae73a6775b5d1d9b10f273445:828dff0b1dc45966e927a7a1419412f2:1e70eb3d02dd5c47565da4b5d26e2400$"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,41 @@
{
"textures": [
{
"image": "aether_grunt_f.png",
"format": "RGBA8888",
"size": {
"w": 69,
"h": 69
},
"scale": 1,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 23,
"y": 10,
"w": 35,
"h": 69
},
"frame": {
"x": 0,
"y": 0,
"w": 35,
"h": 69
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:0c9e77856d3b434e719021572bcb93de:f9c45dc5d67009b134dd1bbc5593f6ec:a694f8828aff21c718e5161e2fd63ade$"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 849 B

View File

@ -0,0 +1,41 @@
{
"textures": [
{
"image": "aether_grunt_m.png",
"format": "RGBA8888",
"size": {
"w": 65,
"h": 65
},
"scale": 1,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 16,
"y": 14,
"w": 47,
"h": 65
},
"frame": {
"x": 0,
"y": 0,
"w": 47,
"h": 65
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:963887cf29549ad3c123b8055cb4d701:68004c4a6e04c93bd21c26a6f8921f0c:d2241fc11d0fc31b26ecbedae6da74f4$"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 819 B

View File

@ -0,0 +1,41 @@
{
"textures": [
{
"image": "faba.png",
"format": "RGBA8888",
"size": {
"w": 74,
"h": 74
},
"scale": 1,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 25,
"y": 5,
"w": 31,
"h": 74
},
"frame": {
"x": 0,
"y": 0,
"w": 31,
"h": 74
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:47622708d99a504998950bd9c389a504:fe1c51be191dd9fafb5b6f309c08ae1a:8d64db18930325b8b513740c1d83ce4c$"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

View File

@ -0,0 +1,41 @@
{
"textures": [
{
"image": "guzma.png",
"format": "RGBA8888",
"size": {
"w": 58,
"h": 58
},
"scale": 1,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 21,
"y": 20,
"w": 37,
"h": 58
},
"frame": {
"x": 0,
"y": 0,
"w": 37,
"h": 58
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:c3b08a562a2882d1ca8b5e031e245da9:72a8305e547f091d15abccd2b142e401:3b302c7f9eb6ea81b65bcaeead4a95a9$"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 848 B

View File

@ -0,0 +1,41 @@
{
"textures": [
{
"image": "lusamine.png",
"format": "RGBA8888",
"size": {
"w": 74,
"h": 74
},
"scale": 1,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 22,
"y": 5,
"w": 36,
"h": 74
},
"frame": {
"x": 0,
"y": 0,
"w": 36,
"h": 74
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:41da3a1299e3831be70016dc91e49313:2413ba06767fb10fdc6fde8cc736c51c:4012333084c529872232c8d052561dc1$"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 996 B

View File

@ -0,0 +1,41 @@
{
"textures": [
{
"image": "macro_grunt_f.png",
"format": "RGBA8888",
"size": {
"w": 74,
"h": 74
},
"scale": 1,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 24,
"y": 5,
"w": 31,
"h": 74
},
"frame": {
"x": 0,
"y": 0,
"w": 31,
"h": 74
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:a015c43d80f8fd1932758e0e2cfcec61:59fc8205ea5ca04295831b4a2eb623ec:30df2ea8e9dac9e95f70534ec43d5ecd$"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 837 B

View File

@ -0,0 +1,41 @@
{
"textures": [
{
"image": "macro_grunt_m.png",
"format": "RGBA8888",
"size": {
"w": 75,
"h": 75
},
"scale": 1,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 15,
"y": 4,
"w": 48,
"h": 75
},
"frame": {
"x": 0,
"y": 0,
"w": 48,
"h": 75
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:52fccff2a0675b4e10139ddb7067d4cf:10d254175d2d8a9111cce096ffb55fa3:d57016467aa07cafdfaf13e0ff643c1b$"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 919 B

View File

@ -0,0 +1,41 @@
{
"textures": [
{
"image": "oleana.png",
"format": "RGBA8888",
"size": {
"w": 79,
"h": 79
},
"scale": 1,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 10,
"y": 1,
"w": 53,
"h": 79
},
"frame": {
"x": 0,
"y": 0,
"w": 53,
"h": 79
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:30987a671771127a38491a588c465964:38b28effcfd5c6cbc0f358912a775af3:82e2a1f8afed29be57f6c2473f4c5be2$"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,41 @@
{
"textures": [
{
"image": "plumeria.png",
"format": "RGBA8888",
"size": {
"w": 72,
"h": 72
},
"scale": 1,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 23,
"y": 7,
"w": 36,
"h": 72
},
"frame": {
"x": 0,
"y": 0,
"w": 36,
"h": 72
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:5527e7b646932d429928b53f055e9d27:c0640510780d2974f9b74a7f8e6b29aa:7bfec029bae78c9d483f59c35b73afad$"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 934 B

View File

@ -0,0 +1,41 @@
{
"textures": [
{
"image": "rose.png",
"format": "RGBA8888",
"size": {
"w": 79,
"h": 79
},
"scale": 1,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 16,
"y": 1,
"w": 52,
"h": 79
},
"frame": {
"x": 0,
"y": 0,
"w": 52,
"h": 79
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:2b4ccaff7255c7d72661eac13de83ff8:72ee3660cdf470bd67375d355307e19d:8d35b104fc841baa4443581e6cea979e$"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 864 B

View File

@ -0,0 +1,41 @@
{
"textures": [
{
"image": "skull_grunt_f.png",
"format": "RGBA8888",
"size": {
"w": 69,
"h": 69
},
"scale": 1,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 27,
"y": 9,
"w": 29,
"h": 69
},
"frame": {
"x": 0,
"y": 0,
"w": 29,
"h": 69
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:2e44c39efe8e78ec75d9119731b9b1cb:4923b5197ea74a9ed0b861e2408f595b:9035f560a0ab0d45bcc084aba7172990$"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 792 B

View File

@ -0,0 +1,41 @@
{
"textures": [
{
"image": "skull_grunt_m.png",
"format": "RGBA8888",
"size": {
"w": 67,
"h": 67
},
"scale": 1,
"frames": [
{
"filename": "0001.png",
"rotated": false,
"trimmed": false,
"sourceSize": {
"w": 80,
"h": 80
},
"spriteSourceSize": {
"x": 28,
"y": 11,
"w": 26,
"h": 67
},
"frame": {
"x": 0,
"y": 0,
"w": 26,
"h": 67
}
}
]
}
],
"meta": {
"app": "https://www.codeandweb.com/texturepacker",
"version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:688a83ff13a77c6923f038db8c7e5e84:d0ece3ab82602eb0c5003bacc26dbd9f:1ff10b395daf6ebfa377680a6404f816$"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 723 B

View File

@ -143,6 +143,7 @@ export default class BattleScene extends SceneBase {
public bgmVolume: number = 1;
public fieldVolume: number = 1;
public seVolume: number = 1;
public uiVolume: number = 1;
public gameSpeed: integer = 1;
public damageNumbersMode: integer = 0;
public reroll: boolean = false;
@ -863,14 +864,13 @@ export default class BattleScene extends SceneBase {
if (Overrides.OPP_SPECIES_OVERRIDE) {
species = getPokemonSpecies(Overrides.OPP_SPECIES_OVERRIDE);
}
const pokemon = new EnemyPokemon(this, species, level, trainerSlot, boss, dataSource);
if (Overrides.OPP_LEVEL_OVERRIDE !== 0) {
pokemon.level = Overrides.OPP_LEVEL_OVERRIDE;
level = Overrides.OPP_LEVEL_OVERRIDE;
}
if (Overrides.OPP_GENDER_OVERRIDE !== null) {
pokemon.gender = Overrides.OPP_GENDER_OVERRIDE;
}
const pokemon = new EnemyPokemon(this, species, level, trainerSlot, boss, dataSource);
overrideModifiers(this, false);
overrideHeldItems(this, pokemon, false);
if (boss && !dataSource) {
@ -1834,6 +1834,7 @@ export default class BattleScene extends SceneBase {
} else {
const soundDetails = sound.key.split("/");
switch (soundDetails[0]) {
case "battle_anims":
case "cry":
if (soundDetails[1].startsWith("PRSFX- ")) {
@ -1870,17 +1871,29 @@ export default class BattleScene extends SceneBase {
try {
const keyDetails = key.split("/");
switch (keyDetails[0]) {
case "level_up_fanfare":
case "item_fanfare":
case "minor_fanfare":
case "heal":
case "evolution":
case "evolution_fanfare":
// These sounds are loaded in as BGM, but played as sound effects
// When these sounds are updated in updateVolume(), they are treated as BGM however because they are placed in the BGM Cache through being called by playSoundWithoutBGM()
config["volume"] = this.masterVolume * this.bgmVolume;
break;
case "battle_anims":
case "cry":
config["volume"] = this.masterVolume * this.fieldVolume;
//PRSFX sound files are unusually loud
if (key.startsWith("PRSFX- ")) {
if (keyDetails[1].startsWith("PRSFX- ")) {
config["volume"] *= 0.5;
}
break;
case "se":
case "ui":
default:
//As of, right now this applies to the "select", "menu_open", "error" sound effects
config["volume"] = this.masterVolume * this.uiVolume;
break;
case "se":
config["volume"] = this.masterVolume * this.seVolume;
break;
}
@ -2069,6 +2082,18 @@ export default class BattleScene extends SceneBase {
return 12.974;
case "battle_flare_grunt": //XY Team Flare Battle
return 4.228;
case "battle_aether_grunt": // SM Aether Foundation Battle
return 16.00;
case "battle_skull_grunt": // SM Team Skull Battle
return 20.87;
case "battle_macro_grunt": // SWSH Trainer Battle
return 11.56;
case "battle_galactic_admin": //BDSP Team Galactic Admin Battle
return 11.997;
case "battle_skull_admin": //SM Team Skull Admin Battle
return 15.463;
case "battle_oleana": //SWSH Oleana Battle
return 14.110;
case "battle_rocket_boss": //USUM Giovanni Battle
return 9.115;
case "battle_aqua_magma_boss": //ORAS Archie & Maxie Battle
@ -2079,6 +2104,12 @@ export default class BattleScene extends SceneBase {
return 25.624;
case "battle_flare_boss": //XY Lysandre Battle
return 8.085;
case "battle_aether_boss": //SM Lusamine Battle
return 11.33;
case "battle_skull_boss": //SM Guzma Battle
return 13.13;
case "battle_macro_boss": //SWSH Rose Battle
return 11.42;
}
return 0;

View File

@ -499,27 +499,27 @@ export const classicFixedBattles: FixedBattleConfigs = {
[25]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
.setGetTrainerFunc(scene => new Trainer(scene, TrainerType.RIVAL_2, scene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT)),
[35]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_GRUNT, TrainerType.MAGMA_GRUNT, TrainerType.AQUA_GRUNT, TrainerType.GALACTIC_GRUNT, TrainerType.PLASMA_GRUNT, TrainerType.FLARE_GRUNT ], true)),
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_GRUNT, TrainerType.MAGMA_GRUNT, TrainerType.AQUA_GRUNT, TrainerType.GALACTIC_GRUNT, TrainerType.PLASMA_GRUNT, TrainerType.FLARE_GRUNT, TrainerType.AETHER_GRUNT, TrainerType.SKULL_GRUNT, TrainerType.MACRO_GRUNT ], true)),
[55]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
.setGetTrainerFunc(scene => new Trainer(scene, TrainerType.RIVAL_3, scene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT)),
[62]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35)
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_GRUNT, TrainerType.MAGMA_GRUNT, TrainerType.AQUA_GRUNT, TrainerType.GALACTIC_GRUNT, TrainerType.PLASMA_GRUNT, TrainerType.FLARE_GRUNT ], true)),
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_GRUNT, TrainerType.MAGMA_GRUNT, TrainerType.AQUA_GRUNT, TrainerType.GALACTIC_GRUNT, TrainerType.PLASMA_GRUNT, TrainerType.FLARE_GRUNT, TrainerType.AETHER_GRUNT, TrainerType.SKULL_GRUNT, TrainerType.MACRO_GRUNT ], true)),
[64]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35)
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_GRUNT, TrainerType.MAGMA_GRUNT, TrainerType.AQUA_GRUNT, TrainerType.GALACTIC_GRUNT, TrainerType.PLASMA_GRUNT, TrainerType.FLARE_GRUNT ], true)),
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_GRUNT, TrainerType.MAGMA_GRUNT, TrainerType.AQUA_GRUNT, TrainerType.GALACTIC_GRUNT, TrainerType.PLASMA_GRUNT, TrainerType.FLARE_GRUNT, TrainerType.AETHER_GRUNT, TrainerType.SKULL_GRUNT, TrainerType.MACRO_GRUNT ], true)),
[66]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35)
.setGetTrainerFunc(getRandomTrainerFunc([[ TrainerType.ARCHER, TrainerType.ARIANA, TrainerType.PROTON, TrainerType.PETREL ], [ TrainerType.TABITHA, TrainerType.COURTNEY ], [ TrainerType.MATT, TrainerType.SHELLY ], [ TrainerType.JUPITER, TrainerType.MARS, TrainerType.SATURN ], [ TrainerType.ZINZOLIN, TrainerType.ROOD ], [ TrainerType.XEROSIC, TrainerType.BRYONY ] ], true)),
.setGetTrainerFunc(getRandomTrainerFunc([[ TrainerType.ARCHER, TrainerType.ARIANA, TrainerType.PROTON, TrainerType.PETREL ], [ TrainerType.TABITHA, TrainerType.COURTNEY ], [ TrainerType.MATT, TrainerType.SHELLY ], [ TrainerType.JUPITER, TrainerType.MARS, TrainerType.SATURN ], [ TrainerType.ZINZOLIN, TrainerType.ROOD ], [ TrainerType.XEROSIC, TrainerType.BRYONY ], TrainerType.FABA, TrainerType.PLUMERIA, TrainerType.OLEANA ], true)),
[95]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
.setGetTrainerFunc(scene => new Trainer(scene, TrainerType.RIVAL_4, scene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT)),
[112]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35)
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_GRUNT, TrainerType.MAGMA_GRUNT, TrainerType.AQUA_GRUNT, TrainerType.GALACTIC_GRUNT, TrainerType.PLASMA_GRUNT, TrainerType.FLARE_GRUNT ], true)),
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_GRUNT, TrainerType.MAGMA_GRUNT, TrainerType.AQUA_GRUNT, TrainerType.GALACTIC_GRUNT, TrainerType.PLASMA_GRUNT, TrainerType.FLARE_GRUNT, TrainerType.AETHER_GRUNT, TrainerType.SKULL_GRUNT, TrainerType.MACRO_GRUNT ], true)),
[114]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35)
.setGetTrainerFunc(getRandomTrainerFunc([[ TrainerType.ARCHER, TrainerType.ARIANA, TrainerType.PROTON, TrainerType.PETREL ], [ TrainerType.TABITHA, TrainerType.COURTNEY ], [ TrainerType.MATT, TrainerType.SHELLY ], [ TrainerType.JUPITER, TrainerType.MARS, TrainerType.SATURN ], [ TrainerType.ZINZOLIN, TrainerType.ROOD ], [ TrainerType.XEROSIC, TrainerType.BRYONY ] ], true, 1)),
.setGetTrainerFunc(getRandomTrainerFunc([[ TrainerType.ARCHER, TrainerType.ARIANA, TrainerType.PROTON, TrainerType.PETREL ], [ TrainerType.TABITHA, TrainerType.COURTNEY ], [ TrainerType.MATT, TrainerType.SHELLY ], [ TrainerType.JUPITER, TrainerType.MARS, TrainerType.SATURN ], [ TrainerType.ZINZOLIN, TrainerType.ROOD ], [ TrainerType.XEROSIC, TrainerType.BRYONY ], TrainerType.FABA, TrainerType.PLUMERIA, TrainerType.OLEANA ], true, 1)),
[115]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35)
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_BOSS_GIOVANNI_1, TrainerType.MAXIE, TrainerType.ARCHIE, TrainerType.CYRUS, TrainerType.GHETSIS, TrainerType.LYSANDRE ])),
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_BOSS_GIOVANNI_1, TrainerType.MAXIE, TrainerType.ARCHIE, TrainerType.CYRUS, TrainerType.GHETSIS, TrainerType.LYSANDRE, TrainerType.LUSAMINE, TrainerType.GUZMA, TrainerType.ROSE ])),
[145]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
.setGetTrainerFunc(scene => new Trainer(scene, TrainerType.RIVAL_5, scene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT)),
[165]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35)
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_BOSS_GIOVANNI_2, TrainerType.MAXIE_2, TrainerType.ARCHIE_2, TrainerType.CYRUS_2, TrainerType.GHETSIS_2, TrainerType.LYSANDRE_2 ])),
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_BOSS_GIOVANNI_2, TrainerType.MAXIE_2, TrainerType.ARCHIE_2, TrainerType.CYRUS_2, TrainerType.GHETSIS_2, TrainerType.LYSANDRE_2, TrainerType.LUSAMINE_2, TrainerType.GUZMA_2, TrainerType.ROSE_2 ])),
[182]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.LORELEI, TrainerType.WILL, TrainerType.SIDNEY, TrainerType.AARON, TrainerType.SHAUNTAL, TrainerType.MALVA, [ TrainerType.HALA, TrainerType.MOLAYNE ], TrainerType.MARNIE_ELITE, TrainerType.RIKA, TrainerType.CRISPIN ])),
[184]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(182)

View File

@ -49,7 +49,8 @@ export function getDailyRunStarters(scene: BattleScene, seed: string): Starter[]
const costSpecies = Object.keys(speciesStarters)
.map(s => parseInt(s) as Species)
.filter(s => speciesStarters[s] === cost);
const starterSpecies = getPokemonSpecies(getPokemonSpecies(Utils.randSeedItem(costSpecies)).getTrainerSpeciesForLevel(startingLevel, true, PartyMemberStrength.STRONGER));
const randPkmSpecies = getPokemonSpecies(Utils.randSeedItem(costSpecies));
const starterSpecies = getPokemonSpecies(randPkmSpecies.getTrainerSpeciesForLevel(startingLevel, true, PartyMemberStrength.STRONGER));
starters.push(getDailyRunStarter(scene, starterSpecies, startingLevel));
}
}, 0, seed);

View File

@ -753,6 +753,98 @@ export const trainerTypeDialogue: TrainerTypeDialogue = {
]
}
],
[TrainerType.AETHER_GRUNT]: [
{
encounter: [
"dialogue:aether_grunt.encounter.1",
"dialogue:aether_grunt.encounter.2",
"dialogue:aether_grunt.encounter.3",
"dialogue:aether_grunt.encounter.4",
"dialogue:aether_grunt.encounter.5",
],
victory: [
"dialogue:aether_grunt.victory.1",
"dialogue:aether_grunt.victory.2",
"dialogue:aether_grunt.victory.3",
"dialogue:aether_grunt.victory.4",
"dialogue:aether_grunt.victory.5",
]
}
],
[TrainerType.FABA]: [
{
encounter: [
"dialogue:faba.encounter.1",
"dialogue:faba.encounter.2",
"dialogue:faba.encounter.3",
],
victory: [
"dialogue:faba.victory.1",
"dialogue:faba.victory.2",
"dialogue:faba.victory.3",
]
}
],
[TrainerType.SKULL_GRUNT]: [
{
encounter: [
"dialogue:skull_grunt.encounter.1",
"dialogue:skull_grunt.encounter.2",
"dialogue:skull_grunt.encounter.3",
"dialogue:skull_grunt.encounter.4",
"dialogue:skull_grunt.encounter.5",
],
victory: [
"dialogue:skull_grunt.victory.1",
"dialogue:skull_grunt.victory.2",
"dialogue:skull_grunt.victory.3",
"dialogue:skull_grunt.victory.4",
"dialogue:skull_grunt.victory.5",
]
}
],
[TrainerType.PLUMERIA]: [
{
encounter: [
"dialogue:plumeria.encounter.1",
"dialogue:plumeria.encounter.2",
"dialogue:plumeria.encounter.3",
],
victory: [
"dialogue:plumeria.victory.1",
"dialogue:plumeria.victory.2",
"dialogue:plumeria.victory.3",
]
}
],
[TrainerType.MACRO_GRUNT]: [
{
encounter: [
"dialogue:macro_grunt.encounter.1",
"dialogue:macro_grunt.encounter.2",
"dialogue:macro_grunt.encounter.3",
],
victory: [
"dialogue:macro_grunt.victory.1",
"dialogue:macro_grunt.victory.2",
"dialogue:macro_grunt.victory.3",
]
}
],
[TrainerType.OLEANA]: [
{
encounter: [
"dialogue:oleana.encounter.1",
"dialogue:oleana.encounter.2",
"dialogue:oleana.encounter.3",
],
victory: [
"dialogue:oleana.victory.1",
"dialogue:oleana.victory.2",
"dialogue:oleana.victory.3",
]
}
],
[TrainerType.ROCKET_BOSS_GIOVANNI_1]: [
{
encounter: [
@ -909,6 +1001,84 @@ export const trainerTypeDialogue: TrainerTypeDialogue = {
]
}
],
[TrainerType.LUSAMINE]: [
{
encounter: [
"dialogue:aether_boss_lusamine_1.encounter.1"
],
victory: [
"dialogue:aether_boss_lusamine_1.victory.1"
],
defeat: [
"dialogue:aether_boss_lusamine_1.defeat.1"
]
}
],
[TrainerType.LUSAMINE_2]: [
{
encounter: [
"dialogue:aether_boss_lusamine_2.encounter.1"
],
victory: [
"dialogue:aether_boss_lusamine_2.victory.1"
],
defeat: [
"dialogue:aether_boss_lusamine_2.defeat.1"
]
}
],
[TrainerType.GUZMA]: [
{
encounter: [
"dialogue:skull_boss_guzma_1.encounter.1"
],
victory: [
"dialogue:skull_boss_guzma_1.victory.1"
],
defeat: [
"dialogue:skull_boss_guzma_1.defeat.1"
]
}
],
[TrainerType.GUZMA_2]: [
{
encounter: [
"dialogue:skull_boss_guzma_2.encounter.1"
],
victory: [
"dialogue:skull_boss_guzma_2.victory.1"
],
defeat: [
"dialogue:skull_boss_guzma_2.defeat.1"
]
}
],
[TrainerType.ROSE]: [
{
encounter: [
"dialogue:macro_boss_rose_1.encounter.1"
],
victory: [
"dialogue:macro_boss_rose_1.victory.1"
],
defeat: [
"dialogue:macro_boss_rose_1.defeat.1"
]
}
],
[TrainerType.ROSE_2]: [
{
encounter: [
"dialogue:macro_boss_rose_2.encounter.1"
],
victory: [
"dialogue:macro_boss_rose_2.victory.1"
],
defeat: [
"dialogue:macro_boss_rose_2.defeat.1"
]
}
],
[TrainerType.BUCK]: [
{
encounter: [

View File

@ -601,11 +601,13 @@ export default class Move implements Localizable {
return true;
}
}
break;
case MoveFlags.IGNORE_PROTECT:
if (user.hasAbilityWithAttr(IgnoreProtectOnContactAbAttr) &&
this.checkFlag(MoveFlags.MAKES_CONTACT, user, target)) {
return true;
}
break;
}
return !!(this.flags & flag);
@ -8568,7 +8570,8 @@ export function initMoves() {
new AttackMove(Moves.BODY_PRESS, Type.FIGHTING, MoveCategory.PHYSICAL, 80, 100, 10, -1, 0, 8)
.attr(DefAtkAttr),
new StatusMove(Moves.DECORATE, Type.FAIRY, -1, 15, -1, 0, 8)
.attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.SPATK ], 2),
.attr(StatChangeAttr, [ BattleStat.ATK, BattleStat.SPATK ], 2)
.ignoresProtect(),
new AttackMove(Moves.DRUM_BEATING, Type.GRASS, MoveCategory.PHYSICAL, 80, 100, 10, 100, 0, 8)
.attr(StatChangeAttr, BattleStat.SPD, -1)
.makesContact(false),

View File

@ -131,7 +131,7 @@ export const BerriesAboundEncounter: MysteryEncounter =
const doBerryRewards = async () => {
const berryText = numBerries + " " + i18next.t(`${namespace}.berries`);
scene.playSound("bgm/item_fanfare");
scene.playSound("item_fanfare");
queueEncounterMessage(scene, i18next.t("battle:rewardGain", { modifierName: berryText }));
// Generate a random berry and give it to the first Pokemon with room for it
@ -182,7 +182,7 @@ export const BerriesAboundEncounter: MysteryEncounter =
const doBerryRewards = async () => {
const berryText = numBerries + " " + i18next.t(`${namespace}.berries`);
scene.playSound("bgm/item_fanfare");
scene.playSound("item_fanfare");
queueEncounterMessage(scene, i18next.t("battle:rewardGain", { modifierName: berryText }));
// Generate a random berry and give it to the first Pokemon with room for it
@ -208,7 +208,7 @@ export const BerriesAboundEncounter: MysteryEncounter =
const doFasterBerryRewards = async () => {
const berryText = numBerriesGrabbed + " " + i18next.t(`${namespace}.berries`);
scene.playSound("bgm/item_fanfare");
scene.playSound("item_fanfare");
queueEncounterMessage(scene, i18next.t("battle:rewardGain", { modifierName: berryText }));
// Generate a random berry and give it to the first Pokemon with room for it (trying to give to fastest first)

View File

@ -115,7 +115,7 @@ export const DelibirdyEncounter: MysteryEncounter =
// At max stacks, give the first party pokemon a Shell Bell instead
const shellBell = generateModifierType(scene, modifierTypes.SHELL_BELL) as PokemonHeldItemModifierType;
await applyModifierTypeToPlayerPokemon(scene, scene.getParty()[0], shellBell);
scene.playSound("bgm/item_fanfare");
scene.playSound("item_fanfare");
await showEncounterText(scene, i18next.t("battle:rewardGain", { modifierName: shellBell.name }), undefined, true);
} else {
scene.unshiftPhase(new ModifierRewardPhase(scene, modifierTypes.ABILITY_CHARM));
@ -190,7 +190,7 @@ export const DelibirdyEncounter: MysteryEncounter =
// At max stacks, give the first party pokemon a Shell Bell instead
const shellBell = generateModifierType(scene, modifierTypes.SHELL_BELL) as PokemonHeldItemModifierType;
await applyModifierTypeToPlayerPokemon(scene, scene.getParty()[0], shellBell);
scene.playSound("bgm/item_fanfare");
scene.playSound("item_fanfare");
await showEncounterText(scene, i18next.t("battle:rewardGain", { modifierName: shellBell.name }), undefined, true);
} else {
scene.unshiftPhase(new ModifierRewardPhase(scene, modifierTypes.CANDY_JAR));
@ -203,7 +203,7 @@ export const DelibirdyEncounter: MysteryEncounter =
// At max stacks, give the first party pokemon a Shell Bell instead
const shellBell = generateModifierType(scene, modifierTypes.SHELL_BELL) as PokemonHeldItemModifierType;
await applyModifierTypeToPlayerPokemon(scene, scene.getParty()[0], shellBell);
scene.playSound("bgm/item_fanfare");
scene.playSound("item_fanfare");
await showEncounterText(scene, i18next.t("battle:rewardGain", { modifierName: shellBell.name }), undefined, true);
} else {
scene.unshiftPhase(new ModifierRewardPhase(scene, modifierTypes.HEALING_CHARM));
@ -283,7 +283,7 @@ export const DelibirdyEncounter: MysteryEncounter =
// At max stacks, give the first party pokemon a Shell Bell instead
const shellBell = generateModifierType(scene, modifierTypes.SHELL_BELL) as PokemonHeldItemModifierType;
await applyModifierTypeToPlayerPokemon(scene, scene.getParty()[0], shellBell);
scene.playSound("bgm/item_fanfare");
scene.playSound("item_fanfare");
await showEncounterText(scene, i18next.t("battle:rewardGain", { modifierName: shellBell.name }), undefined, true);
} else {
scene.unshiftPhase(new ModifierRewardPhase(scene, modifierTypes.BERRY_POUCH));

View File

@ -64,7 +64,7 @@ export const FightOrFlightEncounter: MysteryEncounter =
encounter.enemyPartyConfigs = [config];
// Calculate item
// 10-40 GREAT, 60-120 ULTRA, 120-160 ROGUE, 160-180 MASTER
// Waves 10-40 GREAT, 60-120 ULTRA, 120-160 ROGUE, 160-180 MASTER
const tier =
scene.currentBattle.waveIndex > 160
? ModifierTier.MASTER

View File

@ -21,18 +21,27 @@ const namespace = "mysteryEncounter:mysteriousChest";
export const MysteriousChestEncounter: MysteryEncounter =
MysteryEncounterBuilder.withEncounterType(MysteryEncounterType.MYSTERIOUS_CHEST)
.withEncounterTier(MysteryEncounterTier.COMMON)
.withSceneWaveRangeRequirement(10, 180) // waves 2 to 180
.withSceneWaveRangeRequirement(10, 180) // waves 10 to 180
.withAutoHideIntroVisuals(false)
.withIntroSpriteConfigs([
{
spriteKey: "chest_blue",
fileRoot: "mystery-encounters",
hasShadow: true,
x: 4,
y: 10,
yShadow: 3,
y: 8,
yShadow: 6,
alpha: 1,
disableAnimation: true, // Re-enabled after option select
},
{
spriteKey: "chest_red",
fileRoot: "mystery-encounters",
hasShadow: false,
y: 8,
yShadow: 6,
alpha: 0,
disableAnimation: true, // Re-enabled after option select
}
])
.withIntroDialogue([
{
@ -56,14 +65,30 @@ export const MysteriousChestEncounter: MysteryEncounter =
})
.withPreOptionPhase(async (scene: BattleScene) => {
// Play animation
const introVisuals =
scene.currentBattle.mysteryEncounter!.introVisuals!;
const encounter = scene.currentBattle.mysteryEncounter!;
const introVisuals = encounter.introVisuals!;
// Determine roll first
const roll = randSeedInt(100);
encounter.misc = {
roll
};
if (roll <= 35) {
// Chest is springing trap, change to red chest sprite
const blueChestSprites = introVisuals.getSpriteAtIndex(0);
const redChestSprites = introVisuals.getSpriteAtIndex(1);
redChestSprites[0].setAlpha(1);
blueChestSprites[0].setAlpha(0.001);
}
introVisuals.spriteConfigs[0].disableAnimation = false;
introVisuals.spriteConfigs[1].disableAnimation = false;
introVisuals.playAnim();
})
.withOptionPhase(async (scene: BattleScene) => {
// Open the chest
const roll = randSeedInt(100);
const encounter = scene.currentBattle.mysteryEncounter!;
const roll = encounter.misc.roll;
if (roll > 60) {
// Choose between 2 COMMON / 2 GREAT tier items (40%)
setEncounterRewards(scene, {
@ -106,14 +131,14 @@ export const MysteriousChestEncounter: MysteryEncounter =
queueEncounterMessage(scene, `${namespace}.option.1.amazing`);
leaveEncounterWithoutBattle(scene);
} else {
// Your highest level unfainted Pok<EFBFBD>mon gets OHKO. Progress with no rewards (35%)
// Your highest level unfainted Pokemon gets OHKO. Progress with no rewards (35%)
const highestLevelPokemon = getHighestLevelPlayerPokemon(
scene,
true
);
koPlayerPokemon(scene, highestLevelPokemon);
scene.currentBattle.mysteryEncounter!.setDialogueToken("pokeName", highestLevelPokemon.getNameToRender());
encounter.setDialogueToken("pokeName", highestLevelPokemon.getNameToRender());
// Show which Pokemon was KOed, then leave encounter with no rewards
// Does this synchronously so that game over doesn't happen over result message
await showEncounterText(scene, `${namespace}.option.1.bad`);

View File

@ -24,6 +24,8 @@ const namespace = "mysteryEncounter:safariZone";
const TRAINER_THROW_ANIMATION_TIMES = [512, 184, 768];
const SAFARI_MONEY_MULTIPLIER = 2.75;
/**
* Safari Zone encounter.
* @see {@link https://github.com/pagefaultgames/pokerogue/issues/3800 | GitHub Issue #3800}
@ -33,7 +35,7 @@ export const SafariZoneEncounter: MysteryEncounter =
MysteryEncounterBuilder.withEncounterType(MysteryEncounterType.SAFARI_ZONE)
.withEncounterTier(MysteryEncounterTier.GREAT)
.withSceneWaveRangeRequirement(10, 180)
.withSceneRequirement(new MoneyRequirement(0, 2.75)) // Cost equal to 1 Max Revive
.withSceneRequirement(new MoneyRequirement(0, SAFARI_MONEY_MULTIPLIER)) // Cost equal to 1 Max Revive
.withIntroSpriteConfigs([
{
spriteKey: "safari_zone",
@ -53,7 +55,7 @@ export const SafariZoneEncounter: MysteryEncounter =
.withQuery(`${namespace}.query`)
.withOption(MysteryEncounterOptionBuilder
.newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT)
.withSceneRequirement(new MoneyRequirement(0, 2.75)) // Cost equal to 1 Max Revive
.withSceneRequirement(new MoneyRequirement(0, SAFARI_MONEY_MULTIPLIER)) // Cost equal to 1 Max Revive
.withDialogue({
buttonLabel: `${namespace}.option.1.label`,
buttonTooltip: `${namespace}.option.1.tooltip`,

View File

@ -177,7 +177,7 @@ async function tryApplyDigRewardItems(scene: BattleScene) {
}
}
scene.playSound("bgm/item_fanfare");
scene.playSound("item_fanfare");
await showEncounterText(scene, i18next.t("battle:rewardGain", { modifierName: "2 " + leftovers.name }), undefined, true);
// First Shell bell
@ -204,7 +204,7 @@ async function tryApplyDigRewardItems(scene: BattleScene) {
}
}
scene.playSound("bgm/item_fanfare");
scene.playSound("item_fanfare");
await showEncounterText(scene, i18next.t("battle:rewardGain", { modifierName: "2 " + shellBell.name }), undefined, true);
}

View File

@ -1582,7 +1582,8 @@ export const pokemonEvolutions: PokemonEvolutions = {
new SpeciesEvolution(Species.BLISSEY, 1, null, new SpeciesFriendshipEvolutionCondition(200), SpeciesWildEvolutionDelay.LONG)
],
[Species.PICHU]: [
new SpeciesEvolution(Species.PIKACHU, 1, null, new SpeciesFriendshipEvolutionCondition(90), SpeciesWildEvolutionDelay.SHORT)
new SpeciesFormEvolution(Species.PIKACHU, "spiky", "partner", 1, null, new SpeciesFriendshipEvolutionCondition(90), SpeciesWildEvolutionDelay.SHORT),
new SpeciesFormEvolution(Species.PIKACHU, "", "", 1, null, new SpeciesFriendshipEvolutionCondition(90), SpeciesWildEvolutionDelay.SHORT),
],
[Species.CLEFFA]: [
new SpeciesEvolution(Species.CLEFAIRY, 1, null, new SpeciesFriendshipEvolutionCondition(160), SpeciesWildEvolutionDelay.SHORT)

View File

@ -1,24 +1,21 @@
import { Localizable } from "#app/interfaces/locales";
import { Abilities } from "#enums/abilities";
import { PartyMemberStrength } from "#enums/party-member-strength";
import { Species } from "#enums/species";
import { QuantizerCelebi, argbFromRgba, rgbaFromArgb } from "@material/material-color-utilities";
import i18next from "i18next";
import BattleScene, { AnySound } from "../battle-scene";
import { Variant, variantColorCache } from "./variant";
import { variantData } from "./variant";
import { GameMode } from "../game-mode";
import { StarterMoveset } from "../system/game-data";
import * as Utils from "../utils";
import { uncatchableSpecies } from "./biomes";
import { speciesEggMoves } from "./egg-moves";
import { GrowthRate } from "./exp";
import { EvolutionLevel, SpeciesWildEvolutionDelay, pokemonEvolutions, pokemonPrevolutions } from "./pokemon-evolutions";
import { Type } from "./type";
import { LevelMoves, pokemonFormLevelMoves, pokemonFormLevelMoves as pokemonSpeciesFormLevelMoves, pokemonSpeciesLevelMoves } from "./pokemon-level-moves";
import { uncatchableSpecies } from "./biomes";
import * as Utils from "../utils";
import { StarterMoveset } from "../system/game-data";
import { speciesEggMoves } from "./egg-moves";
import { GameMode } from "../game-mode";
import { QuantizerCelebi, argbFromRgba, rgbaFromArgb } from "@material/material-color-utilities";
import { VariantSet } from "./variant";
import i18next from "i18next";
import { Localizable } from "#app/interfaces/locales";
import { Stat } from "./pokemon-stat";
import { Abilities } from "#enums/abilities";
import { PartyMemberStrength } from "#enums/party-member-strength";
import { Species } from "#enums/species";
import { Variant, VariantSet, variantColorCache, variantData } from "./variant";
export enum Region {
NORMAL,
@ -28,7 +25,15 @@ export enum Region {
PALDEA
}
export function getPokemonSpecies(species: Species | Species[]): PokemonSpecies {
/**
* Gets the {@linkcode PokemonSpecies} object associated with the {@linkcode Species} enum given
* @param species The species to fetch
* @returns The associated {@linkcode PokemonSpecies} object
*/
export function getPokemonSpecies(species: Species | Species[] | undefined): PokemonSpecies {
if (!species) {
throw new Error("`species` must not be undefined in `getPokemonSpecies()`");
}
// If a special pool (named trainers) is used here it CAN happen that they have a array as species (which means choose one of those two). So we catch that with this code block
if (Array.isArray(species)) {
// Pick a random species from the list
@ -309,7 +314,7 @@ export abstract class PokemonSpeciesForm {
let variantDataIndex: integer | string = this.speciesId;
const species = getPokemonSpecies(this.speciesId);
if (species.forms.length > 0 && formIndex !== undefined) {
formkey = species.forms[formIndex]?.formSpriteKey;
formkey = species.forms[formIndex]?.getFormSpriteKey(formIndex);
if (formkey) {
variantDataIndex = `${this.speciesId}-${formkey}`;
}
@ -656,8 +661,8 @@ export default class PokemonSpecies extends PokemonSpeciesForm implements Locali
return this.getSpeciesForLevel(level, allowEvolving, false, (isBoss ? PartyMemberStrength.WEAKER : PartyMemberStrength.AVERAGE) + (gameMode?.isEndless ? 1 : 0));
}
getTrainerSpeciesForLevel(level: integer, allowEvolving: boolean = false, strength: PartyMemberStrength): Species {
return this.getSpeciesForLevel(level, allowEvolving, true, strength);
getTrainerSpeciesForLevel(level: integer, allowEvolving: boolean = false, strength: PartyMemberStrength, currentWave: number = 0): Species {
return this.getSpeciesForLevel(level, allowEvolving, true, strength, currentWave);
}
private getStrengthLevelDiff(strength: PartyMemberStrength): integer {
@ -677,7 +682,7 @@ export default class PokemonSpecies extends PokemonSpeciesForm implements Locali
}
}
getSpeciesForLevel(level: integer, allowEvolving: boolean = false, forTrainer: boolean = false, strength: PartyMemberStrength = PartyMemberStrength.WEAKER): Species {
getSpeciesForLevel(level: integer, allowEvolving: boolean = false, forTrainer: boolean = false, strength: PartyMemberStrength = PartyMemberStrength.WEAKER, currentWave: number = 0): Species {
const prevolutionLevels = this.getPrevolutionLevels();
if (prevolutionLevels.length) {
@ -738,6 +743,11 @@ export default class PokemonSpecies extends PokemonSpeciesForm implements Locali
evolutionChance = Math.min(0.65 * easeInFunc(Math.min(Math.max(level - evolutionLevel, 0), preferredMinLevel) / preferredMinLevel) + 0.35 * easeOutFunc(Math.min(Math.max(level - evolutionLevel, 0), preferredMinLevel * 2.5) / (preferredMinLevel * 2.5)), 1);
}
}
/* (Most) Trainers shouldn't be using unevolved Pokemon by the third gym leader / wave 80. Exceptions to this include Breeders, whose large teams are balanced by the use of weaker pokemon */
if (currentWave >= 80 && forTrainer && strength > PartyMemberStrength.WEAKER) {
evolutionChance = 1;
noEvolutionChance = 0;
}
if (evolutionChance > 0) {
if (isRegionalEvolution) {
@ -762,7 +772,7 @@ export default class PokemonSpecies extends PokemonSpeciesForm implements Locali
for (const weight of evolutionPool.keys()) {
if (randValue < weight) {
return getPokemonSpecies(evolutionPool.get(weight)!).getSpeciesForLevel(level, true, forTrainer, strength); // TODO: is the bang correct?
return getPokemonSpecies(evolutionPool.get(weight)).getSpeciesForLevel(level, true, forTrainer, strength, currentWave);
}
}

View File

@ -16,6 +16,7 @@ import {Moves} from "#enums/moves";
import {PartyMemberStrength} from "#enums/party-member-strength";
import {Species} from "#enums/species";
import {TrainerType} from "#enums/trainer-type";
import {Gender} from "./gender";
export enum TrainerPoolTier {
COMMON,
@ -142,7 +143,7 @@ export const trainerPartyTemplates = {
FIVE_WEAK_BALANCED: new TrainerPartyTemplate(5, PartyMemberStrength.WEAK, false, true),
SIX_WEAKER: new TrainerPartyTemplate(6, PartyMemberStrength.WEAKER),
SIX_WEAKER_SAME: new TrainerPartyTemplate(6, PartyMemberStrength.WEAKER, true),
SIX_WEAK_SAME: new TrainerPartyTemplate(6, PartyMemberStrength.WEAKER, true),
SIX_WEAK_SAME: new TrainerPartyTemplate(6, PartyMemberStrength.WEAK, true),
SIX_WEAK_BALANCED: new TrainerPartyTemplate(6, PartyMemberStrength.WEAK, false, true),
GYM_LEADER_1: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, PartyMemberStrength.AVERAGE), new TrainerPartyTemplate(1, PartyMemberStrength.STRONG)),
@ -323,6 +324,15 @@ export class TrainerConfig {
case TrainerType.LYSANDRE_2:
trainerType = TrainerType.LYSANDRE;
break;
case TrainerType.LUSAMINE_2:
trainerType = TrainerType.LUSAMINE;
break;
case TrainerType.GUZMA_2:
trainerType = TrainerType.GUZMA;
break;
case TrainerType.ROSE_2:
trainerType = TrainerType.ROSE;
break;
case TrainerType.MARNIE_ELITE:
trainerType = TrainerType.MARNIE;
break;
@ -553,9 +563,9 @@ export class TrainerConfig {
}
case "magma": {
return {
[TrainerPoolTier.COMMON]: [Species.NUMEL, Species.POOCHYENA, Species.SLUGMA, Species.SOLROCK, Species.HIPPOPOTAS, Species.SANDACONDA, Species.PHANPY, Species.SWINUB, Species.GLIGAR],
[TrainerPoolTier.COMMON]: [Species.NUMEL, Species.POOCHYENA, Species.SLUGMA, Species.SOLROCK, Species.HIPPOPOTAS, Species.SANDACONDA, Species.PHANPY, Species.ROLYCOLY, Species.GLIGAR],
[TrainerPoolTier.UNCOMMON]: [Species.TRAPINCH, Species.HEATMOR],
[TrainerPoolTier.RARE]: [Species.TURTONATOR, Species.CHARCADET]
[TrainerPoolTier.RARE]: [Species.CAPSAKID, Species.CHARCADET]
};
}
case "aqua": {
@ -586,6 +596,27 @@ export class TrainerConfig {
[TrainerPoolTier.RARE]: [Species.NOIVERN, Species.DRUDDIGON]
};
}
case "aether": {
return {
[TrainerPoolTier.COMMON]: [ Species.BRUXISH, Species.SLOWPOKE, Species.BALTOY, Species.EXEGGCUTE, Species.ABRA, Species.ALOLA_RAICHU, Species.ELGYEM, Species.NATU],
[TrainerPoolTier.UNCOMMON]: [Species.GALAR_SLOWKING, Species.MEDITITE, Species.BELDUM, Species.ORANGURU, Species.HATTERENE, Species.INKAY, Species.RALTS],
[TrainerPoolTier.RARE]: [Species.ARMAROUGE, Species.GIRAFARIG, Species.PORYGON]
};
}
case "skull": {
return {
[TrainerPoolTier.COMMON]: [ Species.MAREANIE, Species.ALOLA_GRIMER, Species.GASTLY, Species.ZUBAT, Species.LURANTIS, Species.VENIPEDE, Species.BUDEW, Species.KOFFING],
[TrainerPoolTier.UNCOMMON]: [Species.GALAR_SLOWBRO, Species.SKORUPI, Species.PALDEA_WOOPER, Species.NIDORAN_F, Species.CROAGUNK, Species.MANDIBUZZ],
[TrainerPoolTier.RARE]: [Species.DRAGALGE, Species.HISUI_SNEASEL]
};
}
case "macro": {
return {
[TrainerPoolTier.COMMON]: [ Species.HATTERENE, Species.MILOTIC, Species.TSAREENA, Species.SALANDIT, Species.GALAR_PONYTA, Species.GOTHITA, Species.FROSLASS],
[TrainerPoolTier.UNCOMMON]: [Species.MANDIBUZZ, Species.MAREANIE, Species.ALOLA_VULPIX, Species.TOGEPI, Species.GALAR_CORSOLA, Species.SINISTEA, Species.APPLIN],
[TrainerPoolTier.RARE]: [Species.TINKATINK, Species.HISUI_LILLIGANT]
};
}
}
console.warn(`Evil team admin for ${team} not found. Returning empty species pools.`);
@ -1060,7 +1091,7 @@ function getRandomPartyMemberFunc(speciesPool: Species[], trainerSlot: TrainerSl
return (scene: BattleScene, level: integer, strength: PartyMemberStrength) => {
let species = Utils.randSeedItem(speciesPool);
if (!ignoreEvolution) {
species = getPokemonSpecies(species).getTrainerSpeciesForLevel(level, true, strength);
species = getPokemonSpecies(species).getTrainerSpeciesForLevel(level, true, strength, scene.currentBattle.waveIndex);
}
return scene.addEnemyPokemon(getPokemonSpecies(species), level, trainerSlot, undefined, undefined, postProcess);
};
@ -1070,7 +1101,7 @@ function getSpeciesFilterRandomPartyMemberFunc(speciesFilter: PokemonSpeciesFilt
const originalSpeciesFilter = speciesFilter;
speciesFilter = (species: PokemonSpecies) => (allowLegendaries || (!species.legendary && !species.subLegendary && !species.mythical)) && !species.isTrainerForbidden() && originalSpeciesFilter(species);
return (scene: BattleScene, level: integer, strength: PartyMemberStrength) => {
const ret = scene.addEnemyPokemon(getPokemonSpecies(scene.randomSpecies(scene.currentBattle.waveIndex, level, false, speciesFilter).getTrainerSpeciesForLevel(level, true, strength)), level, trainerSlot, undefined, undefined, postProcess);
const ret = scene.addEnemyPokemon(getPokemonSpecies(scene.randomSpecies(scene.currentBattle.waveIndex, level, false, speciesFilter).getTrainerSpeciesForLevel(level, true, strength, scene.currentBattle.waveIndex)), level, trainerSlot, undefined, undefined, postProcess);
return ret;
};
}
@ -1404,9 +1435,9 @@ export const trainerConfigs: TrainerConfigs = {
[TrainerType.MAGMA_GRUNT]: new TrainerConfig(++t).setHasGenders("Magma Grunt Female").setHasDouble("Magma Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aqua_magma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene))
.setSpeciesPools({
[TrainerPoolTier.COMMON]: [Species.SLUGMA, Species.POOCHYENA, Species.NUMEL, Species.ZIGZAGOON, Species.DIGLETT, Species.MAGBY, Species.TORKOAL, Species.BALTOY, Species.BARBOACH],
[TrainerPoolTier.UNCOMMON]: [Species.SOLROCK, Species.HIPPOPOTAS, Species.SANDACONDA, Species.PHANPY, Species.SWINUB, Species.GLIGAR],
[TrainerPoolTier.UNCOMMON]: [Species.SOLROCK, Species.HIPPOPOTAS, Species.SANDACONDA, Species.PHANPY, Species.ROLYCOLY, Species.GLIGAR],
[TrainerPoolTier.RARE]: [Species.TRAPINCH, Species.HEATMOR],
[TrainerPoolTier.SUPER_RARE]: [Species.TURTONATOR, Species.CHARCADET]
[TrainerPoolTier.SUPER_RARE]: [Species.CAPSAKID, Species.CHARCADET]
}),
[TrainerType.TABITHA]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("magma_admin", "magma", [Species.CAMERUPT]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aqua_magma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)),
[TrainerType.COURTNEY]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("magma_admin_female", "magma", [Species.CAMERUPT]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aqua_magma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)),
@ -1426,10 +1457,9 @@ export const trainerConfigs: TrainerConfigs = {
[TrainerPoolTier.RARE]: [Species.HISUI_GROWLITHE, Species.HISUI_QWILFISH, Species.HISUI_SNEASEL],
[TrainerPoolTier.SUPER_RARE]: [Species.HISUI_ZORUA, Species.HISUI_SLIGGOO]
}),
[TrainerType.JUPITER]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("galactic_commander_female", "galactic", [Species.SKUNTANK]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_galactic_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)),
[TrainerType.MARS]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("galactic_commander_female", "galactic", [Species.PURUGLY]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_galactic_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)),
[TrainerType.SATURN]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("galactic_commander", "galactic", [Species.TOXICROAK]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_galactic_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)),
[TrainerType.JUPITER]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("galactic_commander_female", "galactic", [Species.SKUNTANK]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_galactic_admin").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)),
[TrainerType.MARS]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("galactic_commander_female", "galactic", [Species.PURUGLY]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_galactic_admin").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)),
[TrainerType.SATURN]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("galactic_commander", "galactic", [Species.TOXICROAK]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_galactic_admin").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)),
[TrainerType.PLASMA_GRUNT]: new TrainerConfig(++t).setHasGenders("Plasma Grunt Female").setHasDouble("Plasma Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_plasma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene))
.setSpeciesPools({
[TrainerPoolTier.COMMON]: [Species.PATRAT, Species.LILLIPUP, Species.PURRLOIN, Species.SCRAFTY, Species.WOOBAT, Species.VANILLITE, Species.SANDILE, Species.TRUBBISH],
@ -1439,7 +1469,6 @@ export const trainerConfigs: TrainerConfigs = {
}),
[TrainerType.ZINZOLIN]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("plasma_sage", "plasma", [Species.CRYOGONAL]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_plasma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)),
[TrainerType.ROOD]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("plasma_sage", "plasma", [Species.SWOOBAT]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_plasma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)),
[TrainerType.FLARE_GRUNT]: new TrainerConfig(++t).setHasGenders("Flare Grunt Female").setHasDouble("Flare Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_flare_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene))
.setSpeciesPools({
[TrainerPoolTier.COMMON]: [Species.FLETCHLING, Species.LITLEO, Species.PONYTA, Species.INKAY, Species.HOUNDOUR, Species.SKORUPI, Species.SCRAFTY, Species.CROAGUNK],
@ -1449,6 +1478,31 @@ export const trainerConfigs: TrainerConfigs = {
}),
[TrainerType.BRYONY]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("flare_admin_female", "flare", [Species.LIEPARD]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_flare_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)),
[TrainerType.XEROSIC]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("flare_admin", "flare", [Species.MALAMAR]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_flare_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)),
[TrainerType.AETHER_GRUNT]: new TrainerConfig(++t).setHasGenders("Aether Grunt Female").setHasDouble("Aether Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aether_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene))
.setSpeciesPools({
[TrainerPoolTier.COMMON]: [ Species.PIKIPEK, Species.ROCKRUFF, Species.ALOLA_DIGLETT, Species.YUNGOOS, Species.CORSOLA, Species.ALOLA_GEODUDE, Species.BOUNSWEET, Species.LILLIPUP, Species.ALOLA_MAROWAK],
[TrainerPoolTier.UNCOMMON]: [ Species.POLIWAG, Species.STUFFUL, Species.ALOLA_EXEGGUTOR, Species.CRABRAWLER, Species.CUTIEFLY, Species.ALOLA_RAICHU, Species.ORICORIO, Species.MUDBRAY],
[TrainerPoolTier.RARE]: [ Species.ORANGURU, Species.PASSIMIAN, Species.GALAR_CORSOLA, Species.ALOLA_SANDSHREW, Species.ALOLA_VULPIX, Species.TURTONATOR, Species.DRAMPA],
[TrainerPoolTier.SUPER_RARE]: [Species.JANGMO_O, Species.PORYGON]
}),
[TrainerType.FABA]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("aether_admin", "aether", [Species.HYPNO]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_aether_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)),
[TrainerType.SKULL_GRUNT]: new TrainerConfig(++t).setHasGenders("Skull Grunt Female").setHasDouble("Skull Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_skull_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene))
.setSpeciesPools({
[TrainerPoolTier.COMMON]: [ Species.SALANDIT, Species.ALOLA_RATTATA, Species.ALOLA_MEOWTH, Species.SCRAGGY, Species.KOFFING, Species.ALOLA_GRIMER, Species.MAREANIE, Species.SPINARAK, Species.TRUBBISH],
[TrainerPoolTier.UNCOMMON]: [ Species.FOMANTIS, Species.SABLEYE, Species.SANDILE, Species.ALOLA_MAROWAK, Species.PANCHAM, Species.DROWZEE, Species.ZUBAT, Species.VENIPEDE, Species.VULLABY],
[TrainerPoolTier.RARE]: [Species.SANDYGAST, Species.PAWNIARD, Species.MIMIKYU, Species.DHELMISE, Species.GASTLY, Species.WISHIWASHI],
[TrainerPoolTier.SUPER_RARE]: [Species.GRUBBIN, Species.DEWPIDER]
}),
[TrainerType.PLUMERIA]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("skull_admin", "skull", [Species.SALAZZLE]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_skull_admin").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)),
[TrainerType.MACRO_GRUNT]: new TrainerConfig(++t).setHasGenders("Macro Grunt Female").setHasDouble("Macro Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_macro_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene))
.setSpeciesPools({
[TrainerPoolTier.COMMON]: [ Species.CUFANT, Species.GALAR_MEOWTH, Species.KLINK, Species.ROOKIDEE, Species.CRAMORANT, Species.GALAR_ZIGZAGOON, Species.SKWOVET, Species.STEELIX, Species.MAWILE, Species.FERROSEED],
[TrainerPoolTier.UNCOMMON]: [ Species.DRILBUR, Species.MAGNEMITE, Species.HATENNA, Species.ARROKUDA, Species.APPLIN, Species.GALAR_PONYTA, Species.GALAR_YAMASK, Species.SINISTEA, Species.RIOLU],
[TrainerPoolTier.RARE]: [Species.FALINKS, Species.BELDUM, Species.GALAR_FARFETCHD, Species.GALAR_MR_MIME, Species.HONEDGE, Species.SCIZOR, Species.GALAR_DARUMAKA],
[TrainerPoolTier.SUPER_RARE]: [Species.DURALUDON, Species.DREEPY]
}),
[TrainerType.OLEANA]: new TrainerConfig(++t).setMoneyMultiplier(1.5).initForEvilTeamAdmin("macro_admin", "macro", [Species.GARBODOR]).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_oleana").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene)),
[TrainerType.BROCK]: new TrainerConfig((t = TrainerType.BROCK)).initForGymLeader(signatureSpecies["BROCK"], true, Type.ROCK).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"),
[TrainerType.MISTY]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["MISTY"], false, Type.WATER).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"),
[TrainerType.LT_SURGE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["LT_SURGE"], true, Type.ELECTRIC).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"),
@ -1825,7 +1879,7 @@ export const trainerConfigs: TrainerConfigs = {
p.generateName();
})),
[TrainerType.ARCHIE_2]: new TrainerConfig(++t).setName("Archie").initForEvilTeamLeader("Aqua Boss", [], true).setMixedBattleBgm("battle_aqua_magma_boss").setVictoryBgm("victory_team_plasma")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.KINGDRA, Species.LUDICOLO], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.EMPOLEON, Species.LUDICOLO], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
p.pokeball = PokeballType.ULTRA_BALL;
@ -1838,9 +1892,9 @@ export const trainerConfigs: TrainerConfigs = {
p.generateAndPopulateMoveset();
p.abilityIndex = 2; // Swift Swim
}))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.HUNTAIL, Species.GOREBYSS], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.OVERQWIL ], TrainerSlot.TRAINER, true, p => {
p.generateAndPopulateMoveset();
p.abilityIndex = 0; // Swift Swim
p.abilityIndex = 1; // Swift Swim
}))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.SHARPEDO], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
@ -1855,11 +1909,11 @@ export const trainerConfigs: TrainerConfigs = {
p.pokeball = PokeballType.MASTER_BALL;
})),
[TrainerType.CYRUS]: new TrainerConfig(++t).setName("Cyrus").initForEvilTeamLeader("Galactic Boss", []).setMixedBattleBgm("battle_galactic_boss").setVictoryBgm("victory_team_plasma")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.GYARADOS, Species.BASCULEGION]))
.setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.HONCHKROW, Species.HISUI_BRAVIARY]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.CROBAT, Species.OVERQWIL]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.AZELF, Species.UXIE, Species.MESPRIT]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.HOUNDOOM], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.GYARADOS ]))
.setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.HONCHKROW, Species.HISUI_BRAVIARY ]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.CROBAT, Species.GLISCOR ]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.AZELF, Species.UXIE, Species.MESPRIT ]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.HOUNDOOM ], TrainerSlot.TRAINER, true, p => {
p.generateAndPopulateMoveset();
p.pokeball = PokeballType.ULTRA_BALL;
p.formIndex = 1;
@ -1905,15 +1959,20 @@ export const trainerConfigs: TrainerConfigs = {
p.pokeball = PokeballType.ULTRA_BALL;
})),
[TrainerType.GHETSIS_2]: new TrainerConfig(++t).setName("Ghetsis").initForEvilTeamLeader("Plasma Boss", [], true).setMixedBattleBgm("battle_plasma_boss").setVictoryBgm("victory_team_plasma")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.SLITHER_WING, Species.IRON_MOTH], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.GENESECT ], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
p.pokeball = PokeballType.ULTRA_BALL;
p.pokeball = PokeballType.MASTER_BALL;
p.formIndex = Utils.randSeedInt(5);
}))
.setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.DURANT]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.DARMANITAN, Species.GALAR_DARMANITAN]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.KINGAMBIT]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.HYDREIGON, Species.IRON_JUGULIS], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.BASCULEGION, Species.JELLICENT ], TrainerSlot.TRAINER, true, p => {
p.generateAndPopulateMoveset();
p.gender = Gender.MALE;
p.formIndex = 1;
}))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.KINGAMBIT ]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.VOLCARONA, Species.SLITHER_WING ]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.HYDREIGON, Species.IRON_JUGULIS ], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
p.pokeball = PokeballType.ULTRA_BALL;
@ -1924,12 +1983,15 @@ export const trainerConfigs: TrainerConfigs = {
p.pokeball = PokeballType.MASTER_BALL;
})),
[TrainerType.LYSANDRE]: new TrainerConfig(++t).setName("Lysandre").initForEvilTeamLeader("Flare Boss", []).setMixedBattleBgm("battle_flare_boss").setVictoryBgm("victory_team_plasma")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.MIENSHAO]))
.setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.HONCHKROW, Species.TALONFLAME]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.PYROAR]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.MILOTIC]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.HELIOLISK]))
.setPartyMemberFunc(5, getRandomPartyMemberFunc([Species.GYARADOS], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.MIENSHAO ]))
.setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.HONCHKROW, Species.TALONFLAME ]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.PYROAR ], TrainerSlot.TRAINER, true, p => {
p.generateAndPopulateMoveset();
p.gender = Gender.MALE;
}))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.CLAWITZER, Species.DRAGALGE ]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.HELIOLISK, Species.MALAMAR ]))
.setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.GYARADOS ], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
p.pokeball = PokeballType.ULTRA_BALL;
@ -1942,10 +2004,13 @@ export const trainerConfigs: TrainerConfigs = {
p.generateAndPopulateMoveset();
p.pokeball = PokeballType.ULTRA_BALL;
}))
.setPartyMemberFunc(1, getRandomPartyMemberFunc([Species.GHOLDENGO, Species.AEGISLASH]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([Species.PYROAR]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([Species.GOODRA, Species.HISUI_GOODRA]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([Species.GYARADOS], TrainerSlot.TRAINER, true, p => {
.setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.PYROAR ], TrainerSlot.TRAINER, true, p => {
p.generateAndPopulateMoveset();
p.gender = Gender.MALE;
}))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.IRON_MOTH ]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.GOODRA, Species.HISUI_GOODRA ]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.GYARADOS ], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
p.pokeball = PokeballType.ULTRA_BALL;
@ -1957,7 +2022,113 @@ export const trainerConfigs: TrainerConfigs = {
p.generateAndPopulateMoveset();
p.pokeball = PokeballType.MASTER_BALL;
})),
// TODO: use signature species?
[TrainerType.LUSAMINE]: new TrainerConfig(++t).setName("Lusamine").initForEvilTeamLeader("Aether Boss", []).setMixedBattleBgm("battle_aether_boss").setVictoryBgm("victory_team_plasma")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.CLEFABLE ]))
.setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.LILLIGANT, Species.HISUI_LILLIGANT ]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.MILOTIC, Species.PRIMARINA ]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.GALAR_SLOWBRO, Species.GALAR_SLOWKING ]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.BEWEAR ]))
.setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.NIHILEGO ], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
})),
[TrainerType.LUSAMINE_2]: new TrainerConfig(++t).setName("Lusamine").initForEvilTeamLeader("Aether Boss", [], true).setMixedBattleBgm("battle_aether_boss").setVictoryBgm("victory_team_plasma")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.CLEFABLE ], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}))
.setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.MILOTIC, Species.PRIMARINA ]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.PHEROMOSA ], TrainerSlot.TRAINER, true, p => {
p.generateAndPopulateMoveset();
p.pokeball = PokeballType.MASTER_BALL;
}))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.STAKATAKA, Species.CELESTEELA, Species.GUZZLORD ], TrainerSlot.TRAINER, true, p => {
p.generateAndPopulateMoveset();
p.pokeball = PokeballType.MASTER_BALL;
}))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.NIHILEGO ], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
p.pokeball = PokeballType.MASTER_BALL;
}))
.setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.NECROZMA ], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
p.pokeball = PokeballType.MASTER_BALL;
})),
[TrainerType.GUZMA]: new TrainerConfig(++t).setName("Guzma").initForEvilTeamLeader("Skull Boss", []).setMixedBattleBgm("battle_skull_boss").setVictoryBgm("victory_team_plasma")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.LOKIX, Species.YANMEGA ]))
.setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.HERACROSS ]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.SCIZOR, Species.KLEAVOR ]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.GALVANTULA, Species.VIKAVOLT]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.PINSIR ], TrainerSlot.TRAINER, true, p => {
p.generateAndPopulateMoveset();
p.formIndex = 1;
p.generateName();
}))
.setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.GOLISOPOD ], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
})),
[TrainerType.GUZMA_2]: new TrainerConfig(++t).setName("Guzma").initForEvilTeamLeader("Skull Boss", [], true).setMixedBattleBgm("battle_skull_boss").setVictoryBgm("victory_team_plasma")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.GOLISOPOD ], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
p.abilityIndex = 2; //Anticipation
}))
.setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.HISUI_SAMUROTT, Species.CRAWDAUNT ], TrainerSlot.TRAINER, true, p => {
p.abilityIndex = 2; //Sharpness, Adaptability
}))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.SCIZOR, Species.KLEAVOR ]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.PINSIR ], TrainerSlot.TRAINER, true, p => {
p.generateAndPopulateMoveset();
p.formIndex = 1;
p.generateName();
}))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.BUZZWOLE ], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
p.pokeball = PokeballType.MASTER_BALL;
}))
.setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.XURKITREE ], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
p.pokeball = PokeballType.MASTER_BALL;
})),
[TrainerType.ROSE]: new TrainerConfig(++t).setName("Rose").initForEvilTeamLeader("Macro Boss", []).setMixedBattleBgm("battle_macro_boss").setVictoryBgm("victory_team_plasma")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.ARCHALUDON ]))
.setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.FERROTHORN, Species.ESCAVALIER ]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.SIRFETCHD, Species.MR_RIME ]))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.CORVIKNIGHT ]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.PERRSERKER, Species.KLINKLANG ]))
.setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.COPPERAJAH ], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
p.formIndex = 1;
p.generateName();
})),
[TrainerType.ROSE_2]: new TrainerConfig(++t).setName("Rose").initForEvilTeamLeader("Macro Boss", [], true).setMixedBattleBgm("battle_macro_boss").setVictoryBgm("victory_team_plasma")
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.ARCHALUDON ], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
}))
.setPartyMemberFunc(1, getRandomPartyMemberFunc([ Species.AEGISLASH, Species.GHOLDENGO ]))
.setPartyMemberFunc(2, getRandomPartyMemberFunc([ Species.DRACOVISH, Species.DRACOZOLT ], TrainerSlot.TRAINER, true, p => {
p.generateAndPopulateMoveset();
p.abilityIndex = 1; //Strong Jaw, Hustle
}))
.setPartyMemberFunc(3, getRandomPartyMemberFunc([ Species.MELMETAL ]))
.setPartyMemberFunc(4, getRandomPartyMemberFunc([ Species.GALAR_ARTICUNO, Species.GALAR_ZAPDOS, Species.GALAR_MOLTRES ], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
p.pokeball = PokeballType.MASTER_BALL;
}))
.setPartyMemberFunc(5, getRandomPartyMemberFunc([ Species.COPPERAJAH ], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 2);
p.generateAndPopulateMoveset();
p.formIndex = 1;
p.generateName();
})),
[TrainerType.BUCK]: new TrainerConfig(++t).setName("Buck").initForStatTrainer([], true)
.setPartyMemberFunc(0, getRandomPartyMemberFunc([ Species.CLAYDOL ], TrainerSlot.TRAINER, true, p => {
p.setBoss(true, 3);

View File

@ -72,6 +72,12 @@ export enum TrainerType {
FLARE_GRUNT,
BRYONY,
XEROSIC,
AETHER_GRUNT,
FABA,
SKULL_GRUNT,
PLUMERIA,
MACRO_GRUNT,
OLEANA,
ROCKET_BOSS_GIOVANNI_1,
ROCKET_BOSS_GIOVANNI_2,
MAXIE,
@ -84,6 +90,12 @@ export enum TrainerType {
GHETSIS_2,
LYSANDRE,
LYSANDRE_2,
LUSAMINE,
LUSAMINE_2,
GUZMA,
GUZMA_2,
ROSE,
ROSE_2,
BUCK,
CHERYL,
MARLEY,

View File

@ -2688,7 +2688,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
}
private fusionFaintCry(callback: Function): void {
const key = this.getSpeciesForm().getCryKey(this.formIndex);
const key = `cry/${this.getSpeciesForm().getCryKey(this.formIndex)}`;
let i = 0;
let rate = 0.85;
const cry = this.scene.playSound(key, { rate: rate }) as AnySound;
@ -2696,7 +2696,8 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
const tintSprite = this.getTintSprite();
let duration = cry.totalDuration * 1000;
let fusionCry = this.scene.playSound(this.getFusionSpeciesForm().getCryKey(this.fusionFormIndex), { rate: rate }) as AnySound;
const fusionCryKey = `cry/${this.getFusionSpeciesForm().getCryKey(this.fusionFormIndex)}`;
let fusionCry = this.scene.playSound(fusionCryKey, { rate: rate }) as AnySound;
fusionCry.stop();
duration = Math.min(duration, fusionCry.totalDuration * 1000);
fusionCry.destroy();
@ -2740,7 +2741,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
}
if (i === transitionIndex) {
SoundFade.fadeOut(this.scene, cry, Utils.fixedInt(Math.ceil((duration / rate) * 0.2)));
fusionCry = this.scene.playSound(this.getFusionSpeciesForm().getCryKey(this.fusionFormIndex), Object.assign({ seek: Math.max(fusionCry.totalDuration * 0.4, 0), rate: rate }));
fusionCry = this.scene.playSound(fusionCryKey, Object.assign({ seek: Math.max(fusionCry.totalDuration * 0.4, 0), rate: rate }));
SoundFade.fadeIn(this.scene, fusionCry, Utils.fixedInt(Math.ceil((duration / rate) * 0.2)), this.scene.masterVolume * this.scene.seVolume, 0);
}
rate *= 0.99;
@ -3804,6 +3805,18 @@ export class EnemyPokemon extends Pokemon {
this.status = new Status(Overrides.OPP_STATUS_OVERRIDE);
}
if (Overrides.OPP_GENDER_OVERRIDE) {
this.gender = Overrides.OPP_GENDER_OVERRIDE;
}
const speciesId = this.species.speciesId;
if (speciesId in Overrides.OPP_FORM_OVERRIDES
&& Overrides.OPP_FORM_OVERRIDES[speciesId]
&& this.species.forms[Overrides.OPP_FORM_OVERRIDES[speciesId]]) {
this.formIndex = Overrides.OPP_FORM_OVERRIDES[speciesId] ?? 0;
}
if (!dataSource) {
this.generateAndPopulateMoveset();

View File

@ -364,12 +364,12 @@ export default class Trainer extends Phaser.GameObjects.Container {
let species = useNewSpeciesPool
? getPokemonSpecies(newSpeciesPool[Math.floor(Math.random() * newSpeciesPool.length)])
: template.isSameSpecies(index) && index > offset
? getPokemonSpecies(battle.enemyParty[offset].species.getTrainerSpeciesForLevel(level, false, template.getStrength(offset)))
? getPokemonSpecies(battle.enemyParty[offset].species.getTrainerSpeciesForLevel(level, false, template.getStrength(offset), this.scene.currentBattle.waveIndex))
: this.genNewPartyMemberSpecies(level, strength);
// If the species is from newSpeciesPool, we need to adjust it based on the level and strength
if (newSpeciesPool) {
species = getPokemonSpecies(species.getSpeciesForLevel(level, true, true, strength));
species = getPokemonSpecies(species.getSpeciesForLevel(level, true, true, strength, this.scene.currentBattle.waveIndex));
}
ret = this.scene.addEnemyPokemon(species, level, !this.isDouble() || !(index % 2) ? TrainerSlot.TRAINER : TrainerSlot.TRAINER_PARTNER);
@ -398,7 +398,7 @@ export default class Trainer extends Phaser.GameObjects.Container {
species = this.scene.randomSpecies(battle.waveIndex, level, false, this.config.speciesFilter);
}
let ret = getPokemonSpecies(species.getTrainerSpeciesForLevel(level, true, strength));
let ret = getPokemonSpecies(species.getTrainerSpeciesForLevel(level, true, strength, this.scene.currentBattle.waveIndex));
let retry = false;
console.log(ret.getName());
@ -417,7 +417,7 @@ export default class Trainer extends Phaser.GameObjects.Container {
console.log("Attempting reroll of species evolution to fit specialty type...");
let evoAttempt = 0;
while (retry && evoAttempt++ < 10) {
ret = getPokemonSpecies(species.getTrainerSpeciesForLevel(level, true, strength));
ret = getPokemonSpecies(species.getTrainerSpeciesForLevel(level, true, strength, this.scene.currentBattle.waveIndex));
console.log(ret.name);
if (this.config.specialtyTypes.find(t => ret.isOfType(t))) {
retry = false;

View File

@ -38,7 +38,7 @@
"learnMoveNotLearned": "{{pokemonName}} hat {{moveName}} nicht erlernt.",
"learnMoveForgetQuestion": "Welche Attacke soll vergessen werden?",
"learnMoveForgetSuccess": "{{pokemonName}} hat {{moveName}} vergessen.",
"countdownPoof": "@d{32}Eins, @d{15}zwei @d{15}und@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}schwupp!",
"countdownPoof": "@d{32}Eins, @d{15}zwei @d{15}und@d{15}… @d{15}… @d{15}… @d{15}@s{se/pb_bounce_1}schwupp!",
"learnMoveAnd": "Und…",
"levelCapUp": "Die Levelbeschränkung wurde auf {{levelCap}} erhöht!",
"moveNotImplemented": "{{moveName}} ist noch nicht implementiert und kann nicht ausgewählt werden.",

View File

@ -80,11 +80,21 @@
"battle_galactic_grunt": "BDSP Vs. Team Galaktik Rüpel",
"battle_plasma_grunt": "SW Vs. Team Plasma Rüpel",
"battle_flare_grunt": "XY Vs. Team Flare Rüpel",
"battle_aether_grunt": "SM Vs. Æther Foundation",
"battle_skull_grunt": "SM Vs. Team Skull Rüpel",
"battle_macro_grunt": "SWSH Vs. Trainer",
"battle_galactic_admin": "BDSP Vs. Team Galactic Commander",
"battle_skull_admin": "SM Vs. Team Skull Vorstand",
"battle_oleana": "SWSH Vs. Oleana",
"battle_rocket_boss": "USUM Vs. Giovanni",
"battle_aqua_magma_boss": "ORAS Vs. Team Aqua & Magma Boss",
"battle_galactic_boss": "BDSP Vs. Zyrus",
"battle_plasma_boss": "S2W2 Vs. G-Cis",
"battle_flare_boss": "XY Vs. Flordelis",
"battle_aether_boss": "SM Vs. Samantha",
"battle_skull_boss": "SM Vs. Bromley",
"battle_macro_boss": "SWSH Vs. Rose",
"abyss": "PMD Erkundungsteam Himmel Dunkelkrater",
"badlands": "PMD Erkundungsteam Himmel Kargtal",
"beach": "PMD Erkundungsteam Himmel Feuchtklippe",

View File

@ -355,6 +355,30 @@
"1": "Ich werde für das nächste Rennen tunen."
}
},
"firebreather": {
"encounter": {
"1": "Meine Flammen werden dich verschlingen!",
"2": "Meine Seele hat Feuer gefangen. Ich werde dir zeigen, wie heiß sie brennt!",
"3": "Komm näher und sieh dir meine Flammen an!"
},
"victory": {
"1": "Verbrannt bis zur Asche...",
"2": "Yow! Das ist heiß!",
"3": "Auuu! Ich habe mir die Nasenspitze verbrannt!"
}
},
"sailor": {
"encounter": {
"1": "Matrose, du gehst über Bord, wenn du verlierst!",
"2": "Komm schon! Mein Stolz als Seemann steht auf dem Spiel!",
"3": "Ahoj! Bist du seekrank?"
},
"victory": {
"1": "Argh! Von einem Kind besiegt!",
"2": "Dein Geist hat mich versenkt!",
"3": "Ich glaube, ich bin der der seekrank ist..."
}
},
"archer": {
"encounter": {
"1": "Bevor du weitergehst, lass uns sehen, wie du dich gegen uns, Team Rocket, schlägst!",
@ -417,7 +441,7 @@
},
"courtney": {
"encounter": {
"1": "Das Ding... Das Ding, das du hältst... Das ist es, was...\n$Das ist es, wonach wir von Team Magma suchen...",
"1": "Stellt euch...Mir NICHT...IN DEN WEEEG...!!",
"2": "... Nun dann... Auslöschen...",
"3": "...?! Du... Hm... ♪ Das trifft sich ausgezeichnet... ♪\n$Dann hole ich mir eben zuerst deine Pokémon... Her damit..."
},
@ -446,7 +470,7 @@
"3": "Was machst du hier? Bist du uns gefolgt?"
},
"victory": {
"1": "Na gut, bis der Boss Zeit für dich hat, werde ich dein Gegner sein!",
"1": "Bwaarharharharhar!! Ich hab zwar verloren, aber das hat Spaß gemacht!",
"2": "Ich kann es fühlen! Ich kann es spüren, das ist klar! Die Stärke, die von dir ausgeht!\n$Mehr! Ich will noch mehr! Aber es sieht so aus, als hätten wir keine Zeit mehr...",
"3": "Das war Spaß! Ich wusste, dass du mir eine gute Zeit bieten würdest!\n$Ich freue mich darauf, dich eines Tages wieder zu treffen!"
}
@ -535,30 +559,6 @@
"3": "Wunderbar! Bemerkenswert! Deine Fähigkeiten und dein Mut sind lobenswert."
}
},
"firebreather": {
"encounter": {
"1": "Meine Flammen werden dich verschlingen!",
"2": "Meine Seele hat Feuer gefangen. Ich werde dir zeigen, wie heiß sie brennt!",
"3": "Komm näher und sieh dir meine Flammen an!"
},
"victory": {
"1": "Verbrannt bis zur Asche...",
"2": "Yow! Das ist heiß!",
"3": "Auuu! Ich habe mir die Nasenspitze verbrannt!"
}
},
"sailor": {
"encounter": {
"1": "Matrose, du gehst über Bord, wenn du verlierst!",
"2": "Komm schon! Mein Stolz als Seemann steht auf dem Spiel!",
"3": "Ahoj! Bist du seekrank?"
},
"victory": {
"1": "Argh! Von einem Kind besiegt!",
"2": "Dein Geist hat mich versenkt!",
"3": "Ich glaube, ich bin der der seekrank ist..."
}
},
"rocket_grunt": {
"encounter": {
"1": "Jetzt gibt es Ärger!…\n$und es kommt noch härter!\n$Wir wollen über die Erde regieren…\n$und naja du kennst den Rest…!",
@ -655,6 +655,86 @@
"5": "Du hast mich besiegt, aber Team Flare wird immer in Glanz und Stil erstrahlen."
}
},
"aether_grunt": {
"encounter": {
"1": "Ich werde dich mit allem, was ich habe, bekämpfen. Ich werde dich auslöschen!",
"2": "Mir ist egal, ob du ein simpler Trainer bist oder nicht.\n$Ich werde dich hochkant rauswerfen, wenn du uns bedrohst!",
"3": "Mir wurde gesagt, Trainer abzuweisen, egal wer sie sind!",
"4": "Ich zeige dir die Macht des Æther-Paradies",
"5": "Jetzt da du die Wahre Natur des Æther-Paradies kennst, müssen wir dich leider beseitigen!"
},
"victory": {
"1": "Hmph! Du scheinst ziemlich geschickt zu sein.",
"2": "Was hat das zu bedeuten? Was hat das zu bedeuten!",
"3": "Hey, du bist so stark, dass ich dich nicht abweisen kann!",
"4": "Hmm... Es scheint, als hätte ich verloren.",
"5": "Ich hätte das Blitzdings benutzen sollen..."
}
},
"faba": {
"encounter": {
"1": "Ich bin Regionalleiter Fabian und ich werde dir zeigen, wie hart die Welt sein kann!",
"2": "Die letzte Verteidigungslinie des Æther-Paradieses kämpft gegen einen simplen Trainer?",
"3": "Ich Fabian, bin der Regionalleiter der Æther Foundation.\n$Der einzige auf der Welt, ich bin unersetzlich."
},
"victory": {
"1": "Aiyee!",
"2": "W-w-wie kann das sein?! Wie konnte dieser Trainer...",
"3": "Das ist der Grund... warum ich andere Menschen nicht ausstehen kann."
}
},
"skull_grunt": {
"encounter": {
"1": "Wir sind nicht böse, wir sind einfach nur nicht nett!",
"2": "Willst du Stress, oder was? Das ist unsere Art, Hallo zu sagen! Tschüss, du Punk!",
"3": "Wir sind nur ein paar Typen und Mädels mit großem Interesse an den Pokémon anderer Leute!",
"4": "Wieso machst du einen auf hart, wenn wir schon hart wie Knochen sind, Homie?",
"5": "Yo, platz hier nich rein, ♪ wien wildes Kleinstein! ♪ Wenn du meinst, dass Team Skull ♪\n$an nix denkt als Krawall, ♪ hast du leider nen Knall, ♪ denn das is nich der Fall! ♪\n$Wir wolln hier nur gammeln ♪ und gechillt Staub ansammeln! ♪"
},
"victory": {
"1": "Wie jetzt? Schon vorbei?",
"2": "Woah, lass uns lieber die Kurve kratzen, yo! Kein Bock, hier meinen Schädel zu riskieren...",
"3": "Wir brauchen deine schwachen Pokémon eh nicht!",
"4": "Was? Deine Stärke spür ich bis in die Knochen...",
"5": "Mein Homie und ich sind also weniger wert als Pokémon? Willste uns dissen, oder was?"
}
},
"plumeria": {
"encounter": {
"1": "..Hmph. Du siehst nicht so aus, als wärst du etwas Besonderes.",
"2": "Die blöden Rüpel brauchen viel zu lange, um mit euch gewöhnlichen Trainern fertig zu werden...",
"3": "Lege dich mit irgendjemandem in Team Skull an, und ich zeige dir, wie ernst ich werden kann."
},
"victory": {
"1": "Du bist ziemlich stark. Das muss ich zugeben.",
"2": "Jetzt versteh ich, warum meine Rüpel so viel Zeit damit verschwenden...",
"3": "Ich denke, ich muss diese Niederlage einfach hinnehmen."
}
},
"macro_grunt": {
"encounter": {
"1": "Achtung hier ist Endstation für dich!",
"2": "Du bist ein Trainer, oder? Wir von MC Wertpapiere wissen so etwas.\n$Ich fürchte, das gibt dir trotzdem nicht das Recht, sich in unsere Arbeit einzumischen.",
"3": "Ich bin von MC Versicherungen! Hast du eine Lebensversicherung?"
},
"victory": {
"1": "Ich habe keine andere Wahl, als respektvoll zurückzutreten.",
"2": "Mein Erspartes aufzugeben bringt mich in die roten Zahlen...",
"3": "Okay zurück an die Arbeit. Versicherungen verkauft sich nicht von alleine."
}
},
"oleana": {
"encounter": {
"1": "Ich werde keine Störung von Präsident Roses Plänen zulassen!",
"2": "Du hast es also durch die Mitarbeiter der Tochterunternehmen geschafft,\n$die ich beauftragt habe, um dich aufzuhalten. Ich hätte nichts anderes erwartet.",
"3": "Für den Präsidenten! Ich werde nicht verlieren! \n$Mach dich bereit mit Macro Cosmos Airlines nach Hause zu fliegen!"
},
"victory": {
"1": "Ich habe es nicht geschafft... Olivia... du bist wirklich eine hoffnungslose Frau.",
"2": "Arghhh! Das ist unentschuldbar... Was habe ich mir dabei gedacht...\n$Jeder Trainer, der es so weit geschafft hat, muss ein harter Brocken sein...",
"3": "Ich bin eine müde Olivia... Ob es Macro Cosmos Betten gibt?"
}
},
"rocket_boss_giovanni_1": {
"encounter": {
"1": "Ich bin beeindruckt, du hast es bis hierher geschafft!\n$Ich bin Giovanni, der Anführer von Team Rocket!\n$Wir regieren den Untergrund von Kanto!\n$Und wir lassen sicherlich nicht zu, dass ein Kind uns aufhält!"
@ -787,6 +867,72 @@
"1": "Narren ohne Vision werden weiterhin diese wunderschöne Welt verunreinigen."
}
},
"aether_boss_lusamine_1": {
"encounter": {
"1": "Du wirst mein süßes Biest erschrecken! Wie kannst du nur? Ultra-Besiten sind so niedlich!\n$Es sieht so aus, als müsste ich dich zuerst zum Schweigen bringen."
},
"victory": {
"1": "Wie kann eine Person nur so grausam sein?!"
},
"defeat": {
"1": "Und jetzt, mein süßes Biest, komm zu Mama!"
}
},
"aether_boss_lusamine_2": {
"encounter": {
"1": "Wieso musst du mich weiterhin belästigen?! Ich habe die Nase voll von dir.\n$Du machst mich krank! Genug mit diesem nutzlosen Gerede... \n$Mit der Kraft von Anego, von uns als UB-01 Schmarotzer klassifiziert,\n$werde ich dir zeigen, wie falsch du warst, hierher zu kommen!"
},
"victory": {
"1": "Aaauuuggghhhhhhhhh!!!"
},
"defeat": {
"1": "Alles, was ich will, ist mein kostbares Biest! Der Rest von euch ist mir egal!"
}
},
"skull_boss_guzma_1": {
"encounter": {
"1": "Kein Erbarmen! Keine Gnade! Ich bin dein schlimmster Alptraum! \n$Oh yeah, ich bin der große, böse Bromley!"
},
"victory": {
"1": "Irgendwann mach ich dich platt! Ich hab noch ein Ass im Ärmel. Du wirst schon sehen."
},
"defeat": {
"1": "Du hast den langen Weg hierher DAFÜR aufgenommen? Pah!"
}
},
"skull_boss_guzma_2": {
"encounter": {
"1": "Mir ist egal, wer du bist. Ich mach dich platt!! Das schreibt mir mein Ego vor. Ich bin Bromley!"
},
"victory": {
"1": "Bromley!!! Was ist falsch mit dir?!"
},
"defeat": {
"1": "Ihr seid wirklich selten dämlich."
}
},
"macro_boss_rose_1": {
"encounter": {
"1": "Mein Name ist Rose. Ich bin der Präsident der Galar Pokémon-Liga und Geschäftsführer von Macro Cosmos\n$Ich habe eine Aufgabe, eine Berufung! Ich muss die Galar-Region mit unbegrenzter Energie versorgen,\n$damit sie sich bis in alle Ewigkeit in Frieden fortentwickeln kann!"
},
"victory": {
"1": "Du versteht es einfach nicht...So können wir die Geschichte nicht verändern!"
},
"defeat": {
"1": "Ohne deine Einmischung kann ich jetzt endlich weiterarbeiten!"
}
},
"macro_boss_rose_2": {
"encounter": {
"1": "Ich bin fest entschlossen, das Energieproblem in der Galar-Region\n$und natürlich auf der ganzen Welt zu lösen.\n$Meine Erfahrungen und Erfolge, die Macro Cosmos zu einem Erfolg gemacht haben,\n$sind der Beweis, dass meine Methoden funktionieren.\n$Ich habe nicht vor, meine Meinung zu ändern, selbst wenn ich verliere."
},
"victory": {
"1": "Ich hatte vergessen, wie großartig Pokémon-Kämpfe sind! Es ist so lange her, dass ich gekämpft habe...\n$Das war wirklich befriedigend, ich akzeptiere die Niederlage für diesen Kampf."
},
"defeat": {
"1": "Ich nehme an, es muss den Anschein haben, dass ich etwas Schreckliches tue.\n$Ich erwarte nicht, dass du es verstehst. Aber ich muss der Galar-Region grenzenlose Energie\n$bereitstellen, um ewigen Wohlstand zu gewährleisten."
}
},
"brock": {
"encounter": {
"1": "Meine Expertise in Bezug auf Gesteins-Pokémon wird dich besiegen! Komm schon!",
@ -2455,7 +2601,7 @@
"1": "@c{smile}Hey, du auch hier?\n@c{smile_eclosed}Immernoch ungeschlagen, hmm…?\n$@c{serious_mopen_fists}Ich weiß es sieht so aus, als wäre ich dir hierher gefolgt, aber das ist so nicht ganz richtig.\n$@c{serious_smile_fists}Ehrlicherweise kann ich es, seit du mich damals besiegt hast, garnicht erwarten erneut gegen dich zu kämpfen.\n$Ich habe selbst hart traniert. Ich werde dir diesesmal also ein würdigerer Gegner sein!.\n$@c{serious_mopen_fists}Halt dich nicht zurück, genauso wie beim letzten Mal!\nLos gehts!"
},
"victory": {
"1": "@c{neutral_eclosed}Oh. Ich war also zu sehr von mir überzeugt.\n$@c{smile}Das ist Ok. Ich hatte mir schon gedacht, dass sowas passiert.\n\n$@c{serious_mopen_fists}Es bedeutet einfach, dass ich mich beim nächsten Mal mehr anstrengen muss!\n\n$@c{smile}Nicht, dass du wirklich Hilfe benötigen würdest, aber ich habe hier noch eins von diesen Dingern herumliegen.\n$Du kannst es haben.\n\n$@c{serious_smile_fists}Erwarte aber nicht, dass ich dir noch mehr gebe!\nIch kann meinen Rivalen doch keine Vorteile verschaffen.\n$@c{smile}Egal, pass auf dich auf und genieße das Event!"
"1": "@c{neutral_eclosed}Oh. Ich war also zu sehr von mir überzeugt.\n$@c{smile}Das ist Ok. Ich hatte mir schon gedacht, dass sowas passiert.\n\n$@c{serious_mopen_fists}Es bedeutet einfach, dass ich mich beim nächsten Mal mehr anstrengen muss!\n\n$@c{smile}Nicht, dass du wirklich Hilfe benötigen würdest, aber ich habe hier noch eins von diesen Dingern herumliegen.\n$Du kannst es haben.\n\n$@c{serious_smile_fists}Erwarte aber nicht, dass ich dir noch mehr gebe!\nIch kann meinen Rivalen doch keine Vorteile verschaffen.\n$@c{smile}Egal, pass auf dich auf!"
}
},
"rival_2_female": {
@ -2463,7 +2609,7 @@
"1": "@c{smile_wave}Oh, wie schön dich hier zu trefen. Sieht so aus als wärst du noch ungeschlagen. @c{angry_mopen}Hmm… Nicht schlecht!\n$@c{angry_mopen}Ich weiß was du denkst, und nein, ich habe dich nicht verfolgt. @c{smile_eclosed}Ich bin einfach in der Gegend gewesen.\n$@c{smile_ehalf}Ich freu mich für dich, aber ich muss dich wissen lassen, dass es auch Ok ist ab und zu mal zu verlieren.\n$@c{smile}Wir lernen oft mehr aus unseren Fehlern, als aus unseren Erfolgen.\n$@c{angry_mopen}Auf jeden Fall habe ich für unseren Rückkampf hart traniert. Also zeig mir was du drauf hast!"
},
"victory": {
"1": "@c{neutral}Ich… sollte dieses Mal doch nicht verlieren…\n$@c{smile}Na gut. Das bedeutet ich muss noch härter tranieren!\n$@c{smile_wave}Ich habe noch eins von diesen Dingern!\n@c{smile_wave_wink}Kein Grund mir zu danken~.\n$@c{angry_mopen}Das ist aber das Letzte! Du bekommst ab jett keine Geschenke mehr von mir!\n$@c{smile_wave}Bleib stark und genieße das Event!"
"1": "@c{neutral}Ich… sollte dieses Mal doch nicht verlieren…\n$@c{smile}Na gut. Das bedeutet ich muss noch härter tranieren!\n$@c{smile_wave}Ich habe noch eins von diesen Dingern!\n@c{smile_wave_wink}Kein Grund mir zu danken~.\n$@c{angry_mopen}Das ist aber das Letzte! Du bekommst ab jett keine Geschenke mehr von mir!\n$@c{smile_wave}Bleib stark!"
},
"defeat": {
"1": "Es ist Ok manchmal zu verlieren…"
@ -2542,4 +2688,4 @@
"1": "@c{smile_ehalf}Ich… Ich denke ich habe meine Aufgabe erfüllt.\n$@c{smile_eclosed}Versprich mir… Nachdem du die Welt geheilt hast… Komm bitte sicher nach Hause. \n$@c{smile_ehalf}…Danke."
}
}
}
}

View File

@ -355,6 +355,30 @@
"1": "Ich werde für das nächste Rennen tunen."
}
},
"firebreather": {
"encounter": {
"1": "Meine Flammen werden dich verschlingen!",
"2": "Meine Seele hat Feuer gefangen. Ich werde dir zeigen, wie heiß sie brennt!",
"3": "Komm näher und sieh dir meine Flammen an!"
},
"victory": {
"1": "Verbrannt bis zur Asche...",
"2": "Yow! Das ist heiß!",
"3": "Auuu! Ich habe mir die Nasenspitze verbrannt!"
}
},
"sailor": {
"encounter": {
"1": "Matrose, du gehst über Bord, wenn du verlierst!",
"2": "Komm schon! Mein Stolz als Seemann steht auf dem Spiel!",
"3": "Ahoj! Bist du seekrank?"
},
"victory": {
"1": "Argh! Von einem Kind besiegt!",
"2": "Dein Geist hat mich versenkt!",
"3": "Ich glaube, ich bin der der seekrank ist..."
}
},
"archer": {
"encounter": {
"1": "Bevor du weitergehst, lass uns sehen, wie du dich gegen uns, Team Rocket, schlägst!",
@ -417,7 +441,7 @@
},
"courtney": {
"encounter": {
"1": "Das Ding... Das Ding, das du hältst... Das ist es, was...\n$Das ist es, wonach wir von Team Magma suchen...",
"1": "Stellt euch...Mir NICHT...IN DEN WEEEG...!!",
"2": "... Nun dann... Auslöschen...",
"3": "...?! Du... Hm... ♪ Das trifft sich ausgezeichnet... ♪\n$Dann hole ich mir eben zuerst deine Pokémon... Her damit..."
},
@ -446,7 +470,7 @@
"3": "Was machst du hier? Bist du uns gefolgt?"
},
"victory": {
"1": "Na gut, bis der Boss Zeit für dich hat, werde ich dein Gegner sein!",
"1": "Bwaarharharharhar!! Ich hab zwar verloren, aber das hat Spaß gemacht!",
"2": "Ich kann es fühlen! Ich kann es spüren, das ist klar! Die Stärke, die von dir ausgeht!\n$Mehr! Ich will noch mehr! Aber es sieht so aus, als hätten wir keine Zeit mehr...",
"3": "Das war Spaß! Ich wusste, dass du mir eine gute Zeit bieten würdest!\n$Ich freue mich darauf, dich eines Tages wieder zu treffen!"
}
@ -535,30 +559,6 @@
"3": "Wunderbar! Bemerkenswert! Deine Fähigkeiten und dein Mut sind lobenswert."
}
},
"firebreather": {
"encounter": {
"1": "Meine Flammen werden dich verschlingen!",
"2": "Meine Seele hat Feuer gefangen. Ich werde dir zeigen, wie heiß sie brennt!",
"3": "Komm näher und sieh dir meine Flammen an!"
},
"victory": {
"1": "Verbrannt bis zur Asche...",
"2": "Yow! Das ist heiß!",
"3": "Auuu! Ich habe mir die Nasenspitze verbrannt!"
}
},
"sailor": {
"encounter": {
"1": "Matrose, du gehst über Bord, wenn du verlierst!",
"2": "Komm schon! Mein Stolz als Seemann steht auf dem Spiel!",
"3": "Ahoj! Bist du seekrank?"
},
"victory": {
"1": "Argh! Von einem Kind besiegt!",
"2": "Dein Geist hat mich versenkt!",
"3": "Ich glaube, ich bin der der seekrank ist..."
}
},
"rocket_grunt": {
"encounter": {
"1": "Jetzt gibt es Ärger!…\n$und es kommt noch härter!\n$Wir wollen über die Erde regieren…\n$und naja du kennst den Rest…!",
@ -655,6 +655,86 @@
"5": "Du hast mich besiegt, aber Team Flare wird immer in Glanz und Stil erstrahlen."
}
},
"aether_grunt": {
"encounter": {
"1": "Ich werde dich mit allem, was ich habe, bekämpfen. Ich werde dich auslöschen!",
"2": "Mir ist egal, ob du ein simpler Trainer bist oder nicht.\n$Ich werde dich hochkant rauswerfen, wenn du uns bedrohst!",
"3": "Mir wurde gesagt, Trainer abzuweisen, egal wer sie sind!",
"4": "Ich zeige dir die Macht des Æther-Paradies",
"5": "Jetzt da du die Wahre Natur des Æther-Paradies kennst, müssen wir dich leider beseitigen!"
},
"victory": {
"1": "Hmph! Du scheinst ziemlich geschickt zu sein.",
"2": "Was hat das zu bedeuten? Was hat das zu bedeuten!",
"3": "Hey, du bist so stark, dass ich dich nicht abweisen kann!",
"4": "Hmm... Es scheint, als hätte ich verloren.",
"5": "Ich hätte das Blitzdings benutzen sollen..."
}
},
"faba": {
"encounter": {
"1": "Ich bin Regionalleiter Fabian und ich werde dir zeigen, wie hart die Welt sein kann!",
"2": "Die letzte Verteidigungslinie des Æther-Paradieses kämpft gegen einen simplen Trainer?",
"3": "Ich Fabian, bin der Regionalleiter der Æther Foundation.\n$Der einzige auf der Welt, ich bin unersetzlich."
},
"victory": {
"1": "Aiyee!",
"2": "W-w-wie kann das sein?! Wie konnte dieser Trainer...",
"3": "Das ist der Grund... warum ich andere Menschen nicht ausstehen kann."
}
},
"skull_grunt": {
"encounter": {
"1": "Wir sind nicht böse, wir sind einfach nur nicht nett!",
"2": "Willst du Stress, oder was? Das ist unsere Art, Hallo zu sagen! Tschüss, du Punk!",
"3": "Wir sind nur ein paar Typen und Mädels mit großem Interesse an den Pokémon anderer Leute!",
"4": "Wieso machst du einen auf hart, wenn wir schon hart wie Knochen sind, Homie?",
"5": "Yo, platz hier nich rein, ♪ wien wildes Kleinstein! ♪ Wenn du meinst, dass Team Skull ♪\n$an nix denkt als Krawall, ♪ hast du leider nen Knall, ♪ denn das is nich der Fall! ♪\n$Wir wolln hier nur gammeln ♪ und gechillt Staub ansammeln! ♪"
},
"victory": {
"1": "Wie jetzt? Schon vorbei?",
"2": "Woah, lass uns lieber die Kurve kratzen, yo! Kein Bock, hier meinen Schädel zu riskieren...",
"3": "Wir brauchen deine schwachen Pokémon eh nicht!",
"4": "Was? Deine Stärke spür ich bis in die Knochen...",
"5": "Mein Homie und ich sind also weniger wert als Pokémon? Willste uns dissen, oder was?"
}
},
"plumeria": {
"encounter": {
"1": "..Hmph. Du siehst nicht so aus, als wärst du etwas Besonderes.",
"2": "Die blöden Rüpel brauchen viel zu lange, um mit euch gewöhnlichen Trainern fertig zu werden...",
"3": "Lege dich mit irgendjemandem in Team Skull an, und ich zeige dir, wie ernst ich werden kann."
},
"victory": {
"1": "Du bist ziemlich stark. Das muss ich zugeben.",
"2": "Jetzt versteh ich, warum meine Rüpel so viel Zeit damit verschwenden...",
"3": "Ich denke, ich muss diese Niederlage einfach hinnehmen."
}
},
"macro_grunt": {
"encounter": {
"1": "Achtung hier ist Endstation für dich!",
"2": "Du bist ein Trainer, oder? Wir von MC Wertpapiere wissen so etwas.\n$Ich fürchte, das gibt dir trotzdem nicht das Recht, sich in unsere Arbeit einzumischen.",
"3": "Ich bin von MC Versicherungen! Hast du eine Lebensversicherung?"
},
"victory": {
"1": "Ich habe keine andere Wahl, als respektvoll zurückzutreten.",
"2": "Mein Erspartes aufzugeben bringt mich in die roten Zahlen...",
"3": "Okay zurück an die Arbeit. Versicherungen verkauft sich nicht von alleine."
}
},
"oleana": {
"encounter": {
"1": "Ich werde keine Störung von Präsident Roses Plänen zulassen!",
"2": "Du hast es also durch die Mitarbeiter der Tochterunternehmen geschafft,\n$die ich beauftragt habe, um dich aufzuhalten. Ich hätte nichts anderes erwartet.",
"3": "Für den Präsidenten! Ich werde nicht verlieren! \n$Mach dich bereit mit Macro Cosmos Airlines nach Hause zu fliegen!"
},
"victory": {
"1": "Ich habe es nicht geschafft... Olivia... du bist wirklich eine hoffnungslose Frau.",
"2": "Arghhh! Das ist unentschuldbar... Was habe ich mir dabei gedacht...\n$Jeder Trainer, der es so weit geschafft hat, muss ein harter Brocken sein...",
"3": "Ich bin eine müde Olivia... Ob es Macro Cosmos Betten gibt?"
}
},
"rocket_boss_giovanni_1": {
"encounter": {
"1": "Ich bin beeindruckt, du hast es bis hierher geschafft!\n$Ich bin Giovanni, der Anführer von Team Rocket!\n$Wir regieren den Untergrund von Kanto!\n$Und wir lassen sicherlich nicht zu, dass ein Kind uns aufhält!"
@ -787,6 +867,72 @@
"1": "Narren ohne Vision werden weiterhin diese wunderschöne Welt verunreinigen."
}
},
"aether_boss_lusamine_1": {
"encounter": {
"1": "Du wirst mein süßes Biest erschrecken! Wie kannst du nur? Ultra-Besiten sind so niedlich!\n$Es sieht so aus, als müsste ich dich zuerst zum Schweigen bringen."
},
"victory": {
"1": "Wie kann eine Person nur so grausam sein?!"
},
"defeat": {
"1": "Und jetzt, mein süßes Biest, komm zu Mama!"
}
},
"aether_boss_lusamine_2": {
"encounter": {
"1": "Wieso musst du mich weiterhin belästigen?! Ich habe die Nase voll von dir.\n$Du machst mich krank! Genug mit diesem nutzlosen Gerede... \n$Mit der Kraft von Anego, von uns als UB-01 Schmarotzer klassifiziert,\n$werde ich dir zeigen, wie falsch du warst, hierher zu kommen!"
},
"victory": {
"1": "Aaauuuggghhhhhhhhh!!!"
},
"defeat": {
"1": "Alles, was ich will, ist mein kostbares Biest! Der Rest von euch ist mir egal!"
}
},
"skull_boss_guzma_1": {
"encounter": {
"1": "Kein Erbarmen! Keine Gnade! Ich bin dein schlimmster Alptraum! \n$Oh yeah, ich bin der große, böse Bromley!"
},
"victory": {
"1": "Irgendwann mach ich dich platt! Ich hab noch ein Ass im Ärmel. Du wirst schon sehen."
},
"defeat": {
"1": "Du hast den langen Weg hierher DAFÜR aufgenommen? Pah!"
}
},
"skull_boss_guzma_2": {
"encounter": {
"1": "Mir ist egal, wer du bist. Ich mach dich platt!! Das schreibt mir mein Ego vor. Ich bin Bromley!"
},
"victory": {
"1": "Bromley!!! Was ist falsch mit dir?!"
},
"defeat": {
"1": "Ihr seid wirklich selten dämlich."
}
},
"macro_boss_rose_1": {
"encounter": {
"1": "Mein Name ist Rose. Ich bin der Präsident der Galar Pokémon-Liga und Geschäftsführer von Macro Cosmos\n$Ich habe eine Aufgabe, eine Berufung! Ich muss die Galar-Region mit unbegrenzter Energie versorgen,\n$damit sie sich bis in alle Ewigkeit in Frieden fortentwickeln kann!"
},
"victory": {
"1": "Du versteht es einfach nicht...So können wir die Geschichte nicht verändern!"
},
"defeat": {
"1": "Ohne deine Einmischung kann ich jetzt endlich weiterarbeiten!"
}
},
"macro_boss_rose_2": {
"encounter": {
"1": "Ich bin fest entschlossen, das Energieproblem in der Galar-Region\n$und natürlich auf der ganzen Welt zu lösen.\n$Meine Erfahrungen und Erfolge, die Macro Cosmos zu einem Erfolg gemacht haben,\n$sind der Beweis, dass meine Methoden funktionieren.\n$Ich habe nicht vor, meine Meinung zu ändern, selbst wenn ich verliere."
},
"victory": {
"1": "Ich hatte vergessen, wie großartig Pokémon-Kämpfe sind! Es ist so lange her, dass ich gekämpft habe...\n$Das war wirklich befriedigend, ich akzeptiere die Niederlage für diesen Kampf."
},
"defeat": {
"1": "Ich nehme an, es muss den Anschein haben, dass ich etwas Schreckliches tue.\n$Ich erwarte nicht, dass du es verstehst. Aber ich muss der Galar-Region grenzenlose Energie\n$bereitstellen, um ewigen Wohlstand zu gewährleisten."
}
},
"brock": {
"encounter": {
"1": "Meine Expertise in Bezug auf Gesteins-Pokémon wird dich besiegen! Komm schon!",
@ -2439,7 +2585,7 @@
"1": "@c{smile}Hey, ich habe dich gesucht! Ich weiß, dass du es nicht erwarten konntest loszugehen,\n$aber hättest ja wenigstens Tschüss sagen können...\n$@c{smile_eclosed}Du verfolgst also wirklich deinen Traum?\nIch kann es kaum glauben.\n$@c{serious_smile_fists}Da wir schon einmal hier sind, wie wäre es mit einem Kampf?\nImmerhin muss ich doch sicherstellen, dass du bereit bist.\n$@c{serious_mopen_fists}Halte dich nicht zurück, zeig mir alles was du hast!"
},
"victory": {
"1": "@c{shock}Wow…Du hast mich komplett überrumpelt.\nBist du wirklich ein Anfänger?\n$@c{smile}Vielleicht war es einfach etwas Glück, aber…\nWer weiß, vielleicht schaffst du es irgendwann\n$ja wirklich ganz groß raus zu kommen.\n$Übrigens, der Professor hat mich gebeten dir diese Items zu geben. Die sehen wirklich cool aus.\n$@c{serious_smile_fists}Viel Glück da draußen!\n$@c{smile}Oh-und genieße das Event!"
"1": "@c{shock}Wow…Du hast mich komplett überrumpelt.\nBist du wirklich ein Anfänger?\n$@c{smile}Vielleicht war es einfach etwas Glück, aber…\nWer weiß, vielleicht schaffst du es irgendwann\n$ja wirklich ganz groß raus zu kommen.\n$Übrigens, der Professor hat mich gebeten dir diese Items zu geben. Die sehen wirklich cool aus.\n$@c{serious_smile_fists}Viel Glück da draußen!"
}
},
"rival_female": {
@ -2447,7 +2593,7 @@
"1": "@c{smile_wave}Da bist du! Ich habe schon überall nach dir gesucht!\n@c{angry_mopen}Hast du etwas vergessen\n$deiner besten Freundin Tschüss zu sagen?\n$@c{smile_ehalf}Du folgst deinem Traum, oder?\nDas ist wirklich heute…\n$@c{smile}Naja, ich vergeben dir, dass du mich vergessen hast, aber nur unter einer Bedingung. @c{smile_wave_wink}Du musst gegen mich kämpfen!\n$@c{angry_mopen}Gib alles! Wir wollen doch nicht, dass dein Abenteuer endet bevor es begonnen hat, richtig?"
},
"victory": {
"1": "@c{shock}Du hast gerade erst angefangen und bist schon so stark?!@d{96} @c{angry}Du hast sowas von betrogen, oder?\n$@c{smile_wave_wink}Ich mach nur Spaß!@d{64} @c{smile_eclosed}Ich habe ehrlich verloren… Ich habe das Gefühl, dass du es dort draußen weit bringen wirst.\n$@c{smile}Übrigens, der Professor hat mich gebeten dir diese Items zu geben. Ich hoffe sie sind hilfreich!\n$@c{smile_wave}Gib wie immer dein Bestes! Ich glaube an dich!\n$@c{smile}Oh-und genieße das Event!"
"1": "@c{shock}Du hast gerade erst angefangen und bist schon so stark?!@d{96} @c{angry}Du hast sowas von betrogen, oder?\n$@c{smile_wave_wink}Ich mach nur Spaß!@d{64} @c{smile_eclosed}Ich habe ehrlich verloren… Ich habe das Gefühl, dass du es dort draußen weit bringen wirst.\n$@c{smile}Übrigens, der Professor hat mich gebeten dir diese Items zu geben. Ich hoffe sie sind hilfreich!\n$@c{smile_wave}Gib wie immer dein Bestes! Ich glaube an dich!"
}
},
"rival_2": {
@ -2455,7 +2601,7 @@
"1": "@c{smile}Hey, du auch hier?\n@c{smile_eclosed}Immernoch ungeschlagen, hmm…?\n$@c{serious_mopen_fists}Ich weiß es sieht so aus, als wäre ich dir hierher gefolgt, aber das ist so nicht ganz richtig.\n$@c{serious_smile_fists}Ehrlicherweise kann ich es, seit du mich damals besiegt hast, garnicht erwarten erneut gegen dich zu kämpfen.\n$Ich habe selbst hart traniert. Ich werde dir diesesmal also ein würdigerer Gegner sein!.\n$@c{serious_mopen_fists}Halt dich nicht zurück, genauso wie beim letzten Mal!\nLos gehts!"
},
"victory": {
"1": "@c{neutral_eclosed}Oh. Ich war also zu sehr von mir überzeugt.\n$@c{smile}Das ist Ok. Ich hatte mir schon gedacht, dass sowas passiert.\n\n$@c{serious_mopen_fists}Es bedeutet einfach, dass ich mich beim nächsten Mal mehr anstrengen muss!\n\n$@c{smile}Nicht, dass du wirklich Hilfe benötigen würdest, aber ich habe hier noch eins von diesen Dingern herumliegen.\n$Du kannst es haben.\n\n$@c{serious_smile_fists}Erwarte aber nicht, dass ich dir noch mehr gebe!\nIch kann meinen Rivalen doch keine Vorteile verschaffen.\n$@c{smile}Egal, pass auf dich auf und genieße das Event!"
"1": "@c{neutral_eclosed}Oh. Ich war also zu sehr von mir überzeugt.\n$@c{smile}Das ist Ok. Ich hatte mir schon gedacht, dass sowas passiert.\n\n$@c{serious_mopen_fists}Es bedeutet einfach, dass ich mich beim nächsten Mal mehr anstrengen muss!\n\n$@c{smile}Nicht, dass du wirklich Hilfe benötigen würdest, aber ich habe hier noch eins von diesen Dingern herumliegen.\n$Du kannst es haben.\n\n$@c{serious_smile_fists}Erwarte aber nicht, dass ich dir noch mehr gebe!\nIch kann meinen Rivalen doch keine Vorteile verschaffen.\n$@c{smile}Egal, pass auf dich auf!"
}
},
"rival_2_female": {
@ -2463,7 +2609,7 @@
"1": "@c{smile_wave}Oh, wie schön dich hier zu trefen. Sieht so aus als wärst du noch ungeschlagen. @c{angry_mopen}Hmm… Nicht schlecht!\n$@c{angry_mopen}Ich weiß was du denkst, und nein, ich habe dich nicht verfolgt. @c{smile_eclosed}Ich bin einfach in der Gegend gewesen.\n$@c{smile_ehalf}Ich freu mich für dich, aber ich muss dich wissen lassen, dass es auch Ok ist ab und zu mal zu verlieren.\n$@c{smile}Wir lernen oft mehr aus unseren Fehlern, als aus unseren Erfolgen.\n$@c{angry_mopen}Auf jeden Fall habe ich für unseren Rückkampf hart traniert. Also zeig mir was du drauf hast!"
},
"victory": {
"1": "@c{neutral}Ich… sollte dieses Mal doch nicht verlieren…\n$@c{smile}Na gut. Das bedeutet ich muss noch härter tranieren!\n$@c{smile_wave}Ich habe noch eins von diesen Dingern!\n@c{smile_wave_wink}Kein Grund mir zu danken~.\n$@c{angry_mopen}Das ist aber das Letzte! Du bekommst ab jett keine Geschenke mehr von mir!\n$@c{smile_wave}Bleib stark und genieße das Event!"
"1": "@c{neutral}Ich… sollte dieses Mal doch nicht verlieren…\n$@c{smile}Na gut. Das bedeutet ich muss noch härter tranieren!\n$@c{smile_wave}Ich habe noch eins von diesen Dingern!\n@c{smile_wave_wink}Kein Grund mir zu danken~.\n$@c{angry_mopen}Das ist aber das Letzte! Du bekommst ab jett keine Geschenke mehr von mir!\n$@c{smile_wave}Bleib stark!"
},
"defeat": {
"1": "Es ist Ok manchmal zu verlieren…"
@ -2542,4 +2688,4 @@
"1": "@c{smile_ehalf}Ich… Ich denke ich habe meine Aufgabe erfüllt.\n$@c{smile_eclosed}Versprich mir… Nachdem du die Welt geheilt hast… Komm bitte sicher nach Hause. \n$@c{smile_ehalf}…Danke."
}
}
}
}

View File

@ -13,5 +13,32 @@
"metFragment": {
"normal": "Herkunft: {{biome}}\nMit Lv. {{level}} erhalten.",
"apparently": "Herkunft: {{biome}}\nOffenbar mit Lv. {{level}} erhalten."
},
"natureFragment": {
"Hardy": "{{nature}}",
"Lonely": "{{nature}}",
"Brave": "{{nature}}",
"Adamant": "{{nature}}",
"Naughty": "{{nature}}",
"Bold": "{{nature}}",
"Docile": "{{nature}}",
"Relaxed": "{{nature}}",
"Impish": "{{nature}}",
"Lax": "{{nature}}",
"Timid": "{{nature}}",
"Hasty": "{{nature}}",
"Serious": "{{nature}}",
"Jolly": "{{nature}}",
"Naive": "{{nature}}",
"Modest": "{{nature}}",
"Mild": "{{nature}}",
"Quiet": "{{nature}}",
"Bashful": "{{nature}}",
"Rash": "{{nature}}",
"Calm": "{{nature}}",
"Gentle": "{{nature}}",
"Sassy": "{{nature}}",
"Careful": "{{nature}}",
"Quirky": "{{nature}}"
}
}
}

View File

@ -63,6 +63,7 @@
"bgmVolume": "Hintergrundmusik",
"fieldVolume": "Rufe & Attacken",
"seVolume": "Spezialeffekte",
"uiVolume": "Benutzeroberfläche",
"musicPreference": "Musik Präferenz",
"mixed": "Gemischt",
"gamepadPleasePlug": "Bitte einen Controller anschließen oder eine Taste drücken.",

View File

@ -117,5 +117,14 @@
"plasma_grunts": "Rüpel von Team Plasma",
"flare_grunt": "Rüpel von Team Flare",
"flare_grunt_female": "Rüpel von Team Flare",
"flare_grunts": "Rüpel von Team Flare"
}
"flare_grunts": "Rüpel von Team Flare",
"aether_grunt": "Æther Foundation Personal",
"aether_grunt_female": "Æther Foundation Personal",
"aether_grunts": "Æther Foundation Personal",
"skull_grunt": "Rüpel von Team Skull",
"skull_grunt_female": "Rüpel von Team Skull",
"skull_grunts": "Rüpel von Team Skull",
"macro_grunt": "Angestellter von Macro Cosmos",
"macro_grunt_female": "Angestellte von Macro Cosmos",
"macro_grunts": "Angestellte von Macro Cosmos"
}

View File

@ -139,12 +139,18 @@
"rood": "Rubius",
"xerosic": "Xeros",
"bryony": "Begonia",
"faba": "Fabian",
"plumeria": "Fran",
"oleana": "Olivia",
"maxie": "Marc",
"archie": "Adrian",
"cyrus": "Zyrus",
"ghetsis": "G-Cis",
"lysandre": "Flordelis",
"lusamine": "Samantha",
"guzma": "Bromley",
"rose": "Rose",
"blue_red_double": "Blau & Rot",
"red_blue_double": "Rot & Blau",
@ -156,4 +162,4 @@
"iris_alder_double": "Lilia & Lauro",
"piers_marnie_double": "Nezz & Mary",
"marnie_piers_double": "Mary & Nezz"
}
}

View File

@ -16,6 +16,9 @@
"galactic_boss": "Galaktik-Boss",
"plasma_boss": "Weiser von Team Plasma",
"flare_boss": "Flare-Boss",
"aether_boss": "Æther-Präsidentin",
"skull_boss": "Skull-Boss",
"macro_boss": "Geschäftsführer von Macro Cosmos",
"rocket_admin": "Team Rocket Vorstand",
"rocket_admin_female": "Team Rocket Vorstand",
"magma_admin": "Team Magma Vorstand",
@ -27,5 +30,9 @@
"plasma_sage": "Weiser von Team Plasma",
"plasma_admin": "Team Plasma Vorstand",
"flare_admin": "Team Flare Vorstand",
"flare_admin_female": "Team Flare Vorstand"
}
"flare_admin_female": "Team Flare Vorstand",
"aether_admin": "Æther-Regionalleiter",
"skull_admin": "Team Skull Vorstand",
"macro_admin": "Vizepräsidentin von Macro Cosmos"
}

View File

@ -42,7 +42,7 @@
"learnMoveNotLearned": "{{pokemonName}} did not learn the\nmove {{moveName}}.",
"learnMoveForgetQuestion": "Which move should be forgotten?",
"learnMoveForgetSuccess": "{{pokemonName}} forgot how to\nuse {{moveName}}.",
"countdownPoof": "@d{32}1, @d{15}2, and@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}Poof!",
"countdownPoof": "@d{32}1, @d{15}2, and@d{15}… @d{15}… @d{15}… @d{15}@s{se/pb_bounce_1}Poof!",
"learnMoveAnd": "And…",
"levelCapUp": "The level cap\nhas increased to {{levelCap}}!",
"moveNotImplemented": "{{moveName}} is not yet implemented and cannot be selected.",

View File

@ -80,11 +80,21 @@
"battle_galactic_grunt": "BDSP Team Galactic Battle",
"battle_plasma_grunt": "BW Team Plasma Battle",
"battle_flare_grunt": "XY Team Flare Battle",
"battle_aether_grunt": "SM Aether Foundation Battle",
"battle_skull_grunt": "SM Team Skull Battle",
"battle_macro_grunt": "SWSH Trainer Battle",
"battle_galactic_admin": "BDSP Team Galactic Admin Battle",
"battle_skull_admin": "SM Team Skull Admin Battle",
"battle_oleana": "SWSH Oleana Battle",
"battle_rocket_boss": "USUM Giovanni Battle",
"battle_aqua_magma_boss": "ORAS Archie & Maxie Battle",
"battle_galactic_boss": "BDSP Cyrus Battle",
"battle_plasma_boss": "B2W2 Ghetsis Battle",
"battle_flare_boss": "XY Lysandre Battle",
"battle_aether_boss": "SM Lusamine Battle",
"battle_skull_boss": "SM Guzma Battle",
"battle_macro_boss": "SWSH Rose Battle",
"abyss": "PMD EoS Dark Crater",
"badlands": "PMD EoS Barren Valley",
"beach": "PMD EoS Drenched Bluff",
@ -137,4 +147,4 @@
"heal": "BW Pokémon Heal",
"menu": "PMD EoS Welcome to the World of Pokémon!",
"title": "PMD EoS Top Menu Theme"
}
}

View File

@ -655,6 +655,86 @@
"5": "You may have beaten me, but when I lose, I go out in style!"
}
},
"aether_grunt": {
"encounter": {
"1": "I'll fight you with all I have to wipe you out!",
"2": "I don't care if you're a kid or what. I'll send you flying if you threaten us!",
"3": "I was told to turn away Trainers, whomever they might be!",
"4": "I'll show you the power of Aether Paradise!",
"5": "Now that you've learned of the darkness at the heart of Aether Paradise, we'll need you to conveniently disappear!"
},
"victory": {
"1": "Hmph! You seem to have a lot of skill.",
"2": "What does this mean? What does this mean!",
"3": "Hey! You're so strong that there's no way I can turn you away!",
"4": "Hmm... It seems as though I may have lost.",
"5": "Here's an impression for you: Aiyee!"
}
},
"faba": {
"encounter": {
"1": "I, Branch Chief Faba, shall show you the harshness of the real world!",
"2": "The man who is called Aether Paradise's last line of defense is to battle a mere child?",
"3": "I, Faba, am the Aether Branch Chief. The only one in the world, I'm irreplaceable."
},
"victory": {
"1": "Aiyee!",
"2": "H-h-how can this be?! How could this child...",
"3": "This is why... This is why I can't bring myself to like children."
}
},
"skull_grunt": {
"encounter": {
"1": "We're not bad-we're just hard!",
"2": "You want some? That's how we say hello! Nice knowing you, punks!",
"3": "We're just a bunch of guys and gals with a great interest in other people's Pokémon!",
"4": "Why you trying to act hard when we're already hard as bones out here, homie?",
"5": "Team Skull represent! We can't pay the rent! Had a lot of fun, but our youth was misspent!"
},
"victory": {
"1": "Huh? Is it over already?",
"2": "Time for us to break out, yo! Gotta tell y'all peace out, yo!",
"3": "We don't need your wack Pokémon anyway!",
"4": "Wha-?! This kid's way too strong-no bones about it!",
"5": "So, what? I'm lower than a Pokémon?! I already got self-esteem issues, man."
}
},
"plumeria": {
"encounter": {
"1": " ...Hmph. You don't look like anything special to me.",
"2": "It takes these dumb Grunts way too long to deal with you kids...",
"3": "Mess with anyone in Team Skull, and I'll show you how serious I can get."
},
"victory": {
"1": "Hmmph! You're pretty strong. I'll give you that.",
"2": "Hmmph. Guess you are pretty tough. Now I understand why my Grunts waste so much time battling kids.",
"3": "Hmmph! I guess I just have to hold that loss."
}
},
"macro_grunt": {
"encounter": {
"1": "It looks like this is the end of the line for you!",
"2": "You are a trainer aren't you? I'm afraid that doesn't give you the right to interfere in our work.",
"3": "I'm from Macro Cosmos Insurance! Do you have a life insurance policy?"
},
"victory": {
"1": "I have little choice but to respectfully retreat.",
"2": "Having to give up my pocket money... Losing means I'm back in the red...",
"3": "Nobody can beat Macro Cosmos when it comes to our dedication to our work!"
}
},
"oleana": {
"encounter": {
"1": "I won't let anyone interfere with Mr. Rose's plan!",
"2": "So, you got through all of the special staff that I had ordered to stop you. I would expect nothing less.",
"3": "For the chairman! I won't lose!"
},
"victory": {
"1": "*sigh* I wasn't able to win... Oleana...you really are a hopeless woman.",
"2": "Arghhh! This is inexcusable... What was I thinking... Any trainer who's made it this far would be no pushover..",
"3": "*sigh* I am one tired Oleana..."
}
},
"rocket_boss_giovanni_1": {
"encounter": {
"1": "So! I must say, I am impressed you got here!"
@ -787,6 +867,72 @@
"1": "Fools with no vision will continue to befoul this beautiful world."
}
},
"aether_boss_lusamine_1": {
"encounter": {
"1": "You're going to startle my sweet beast! It looks like I'll need to silence you first."
},
"victory": {
"1": "How... how can you be so awful!"
},
"defeat": {
"1": "Hmph..."
}
},
"aether_boss_lusamine_2": {
"encounter": {
"1": "Why must you continue to pester me?! I am sick of you. Sick through and through!\n$Enough with this useless talk.. with Nihilego's power I will show you how wrong you were to come here!"
},
"victory": {
"1": "Aaauuuggghhhhhhhhh!!!"
},
"defeat": {
"1": "All that I want is my precious beast! I don't care about any of the rest of you!"
}
},
"skull_boss_guzma_1": {
"encounter": {
"1": "The hated boss who beats you down and beats you down and never lets up...\n$Yeah. Big bad Guzma is here!"
},
"victory": {
"1": "Tch. I'm gonna beat you down one of these days!"
},
"defeat": {
"1": "And you came all the way out here just for that, huh?"
}
},
"skull_boss_guzma_2": {
"encounter": {
"1": "Doesn't matter who I'm up against, I'm gonna beat them down!\n$That's what big bad Guzma is all about!"
},
"victory": {
"1": "Guzma!!! What is wrong with you?!"
},
"defeat": {
"1": "Y'all are stupid!"
}
},
"macro_boss_rose_1": {
"encounter": {
"1": "I must provide limitless energy to ensure everlasting prosperity for everyone...\n$It is my purpose, my duty, my destiny!"
},
"victory": {
"1": "You still don't understand, trainer...\n$We... No, I am going to change the course of history!"
},
"defeat": {
"1": "You still don't understand a thing!"
}
},
"macro_boss_rose_2": {
"encounter": {
"1": "I'm committed to solving the energy problem in the Galar region—and, of course, around the world.\n$My experience and accomplishments that made Macro Cosmos a success are proof my methods work.\n$I don't intend to change my mind, even if I lose."
},
"victory": {
"1": "I'd forgotten how great Pokémon battles are! It's been so long since I battled...\n$That sure was satisfying, I accept defeat for this battle."
},
"defeat": {
"1": "I suppose it must seem that I am doing something terrible. I don't expect you to understand.\n$But I must provide the Galar region with limitless energy to ensure everlasting prosperity."
}
},
"stat_trainer_buck": {
"encounter": {
"1": "...I'm telling you right now. I'm seriously tough. Act surprised!",
@ -2642,4 +2788,4 @@
"1": "@c{smile_ehalf}I… I think I fulfilled my purpose…\n$@c{smile_eclosed}Promise me… After you heal the world… Please… come home safe.\n$@c{smile_ehalf}…Thank you."
}
}
}
}

View File

@ -655,6 +655,86 @@
"5": "You may have beaten me, but when I lose, I go out in style!"
}
},
"aether_grunt": {
"encounter": {
"1": "I'll fight you with all I have to wipe you out!",
"2": "I don't care if you're a kid or what. I'll send you flying if you threaten us!",
"3": "I was told to turn away Trainers, whomever they might be!",
"4": "I'll show you the power of Aether Paradise!",
"5": "Now that you've learned of the darkness at the heart of Aether Paradise, we'll need you to conveniently disappear!"
},
"victory": {
"1": "Hmph! You seem to have a lot of skill.",
"2": "What does this mean? What does this mean!",
"3": "Hey! You're so strong that there's no way I can turn you away!",
"4": "Hmm... It seems as though I may have lost.",
"5": "Here's an impression for you: Aiyee!"
}
},
"faba": {
"encounter": {
"1": "I, Branch Chief Faba, shall show you the harshness of the real world!",
"2": "The man who is called Aether Paradise's last line of defense is to battle a mere child?",
"3": "I, Faba, am the Aether Branch Chief. The only one in the world, I'm irreplaceable."
},
"victory": {
"1": "Aiyee!",
"2": "H-h-how can this be?! How could this child...",
"3": "This is why... This is why I can't bring myself to like children."
}
},
"skull_grunt": {
"encounter": {
"1": "We're not bad-we're just hard!",
"2": "You want some? That's how we say hello! Nice knowing you, punks!",
"3": "We're just a bunch of guys and gals with a great interest in other people's Pokémon!",
"4": "Why you trying to act hard when we're already hard as bones out here, homie?",
"5": "Team Skull represent! We can't pay the rent! Had a lot of fun, but our youth was misspent!"
},
"victory": {
"1": "Huh? Is it over already?",
"2": "Time for us to break out, yo! Gotta tell y'all peace out, yo!",
"3": "We don't need your wack Pokémon anyway!",
"4": "Wha-?! This kid's way too strong-no bones about it!",
"5": "So, what? I'm lower than a Pokémon?! I already got self-esteem issues, man."
}
},
"plumeria": {
"encounter": {
"1": " ...Hmph. You don't look like anything special to me.",
"2": "It takes these dumb Grunts way too long to deal with you kids..",
"3": "Mess with anyone in Team Skull, and I'll show you how serious I can get."
},
"victory": {
"1": "Hmmph! You're pretty strong. I'll give you that.",
"2": "Hmmph. Guess you are pretty tough. Now I understand why my Grunts waste so much time battling kids.",
"3": "Hmmph! I guess I just have to hold that loss."
}
},
"macro_grunt": {
"encounter": {
"1": "It looks like this is the end of the line for you!",
"2": "You are a trainer aren't you? I'm afraid that doesn't give you the right to interfere in our work.",
"3": "I'm from Macro Cosmos Insurance! Do you have a life insurance policy?"
},
"victory": {
"1": "I have little choice but to respectfully retreat.",
"2": "Having to give up my pocket money... Losing means I'm back in the red...",
"3": "Nobody can beat Macro Cosmos when it comes to our dedication to our work!"
}
},
"oleana": {
"encounter": {
"1": "I won't let anyone interfere with Mr. Rose's plan!",
"2": "So, you got through all of the special staff that I had ordered to stop you. I would expect nothing less.",
"3": "For the chairman! I won't lose!"
},
"victory": {
"1": "*sigh* I wasn't able to win... Oleana...you really are a hopeless woman.",
"2": "Arghhh! This is inexcusable... What was I thinking... Any trainer who's made it this far would be no pushover..",
"3": "*sigh* I am one tired Oleana..."
}
},
"rocket_boss_giovanni_1": {
"encounter": {
"1": "So! I must say, I am impressed you got here!"
@ -787,6 +867,72 @@
"1": "Fools with no vision will continue to befoul this beautiful world."
}
},
"aether_boss_lusamine_1": {
"encounter": {
"1": "You're going to startle my sweet beast! It looks like I'll need to silence you first."
},
"victory": {
"1": "How... how can you be so awful!"
},
"defeat": {
"1": "Hmph..."
}
},
"aether_boss_lusamine_2": {
"encounter": {
"1": "Why must you continue to pester me?! I am sick of you. Sick through and through!\n$Enough with this useless talk.. with Nihilego's power I will show you how wrong you were to come here!"
},
"victory": {
"1": "Aaauuuggghhhhhhhhh!!!"
},
"defeat": {
"1": "All that I want is my precious beast! I don't care about any of the rest of you!"
}
},
"skull_boss_guzma_1": {
"encounter": {
"1": "The hated boss who beats you down and beats you down and never lets up...\n$Yeah. Big bad Guzma is here!"
},
"victory": {
"1": "Tch. I'm gonna beat you down one of these days!"
},
"defeat": {
"1": "And you came all the way out here just for that, huh?"
}
},
"skull_boss_guzma_2": {
"encounter": {
"1": "Doesn't matter who I'm up against, I'm gonna beat them down!\n$That's what big bad Guzma is all about!"
},
"victory": {
"1": "Guzma!!! What is wrong with you?!"
},
"defeat": {
"1": "Y'all are stupid!"
}
},
"macro_boss_rose_1": {
"encounter": {
"1": "I must provide limitless energy to ensure everlasting prosperity for everyone...\n$It is my purpose, my duty, my destiny!"
},
"victory": {
"1": "You still don't understand, trainer...\n$We... No, I am going to change the course of history!"
},
"defeat": {
"1": "You still don't understand a thing!"
}
},
"macro_boss_rose_2": {
"encounter": {
"1": "I'm committed to solving the energy problem in the Galar region—and, of course, around the world.\n$My experience and accomplishments that made Macro Cosmos a success are proof my methods work.\n$I don't intend to change my mind, even if I lose."
},
"victory": {
"1": "I'd forgotten how great Pokémon battles are! It's been so long since I battled...\n$That sure was satisfying, I accept defeat for this battle."
},
"defeat": {
"1": "I suppose it must seem that I am doing something terrible. I don't expect you to understand.\n$But I must provide the Galar region with limitless energy to ensure everlasting prosperity."
}
},
"stat_trainer_buck": {
"encounter": {
"1": "...I'm telling you right now. I'm seriously tough. Act surprised!",
@ -2642,4 +2788,4 @@
"1": "@c{smile_ehalf}I… I think I fulfilled my purpose…\n$@c{smile_eclosed}Promise me… After you heal the world… Please… come home safe.\n$@c{smile_ehalf}…Thank you."
}
}
}
}

View File

@ -13,5 +13,32 @@
"metFragment": {
"normal": "met at Lv{{level}},\n{{biome}}.",
"apparently": "apparently met at Lv{{level}},\n{{biome}}."
},
"natureFragment": {
"Hardy": "{{nature}}",
"Lonely": "{{nature}}",
"Brave": "{{nature}}",
"Adamant": "{{nature}}",
"Naughty": "{{nature}}",
"Bold": "{{nature}}",
"Docile": "{{nature}}",
"Relaxed": "{{nature}}",
"Impish": "{{nature}}",
"Lax": "{{nature}}",
"Timid": "{{nature}}",
"Hasty": "{{nature}}",
"Serious": "{{nature}}",
"Jolly": "{{nature}}",
"Naive": "{{nature}}",
"Modest": "{{nature}}",
"Mild": "{{nature}}",
"Quiet": "{{nature}}",
"Bashful": "{{nature}}",
"Rash": "{{nature}}",
"Calm": "{{nature}}",
"Gentle": "{{nature}}",
"Sassy": "{{nature}}",
"Careful": "{{nature}}",
"Quirky": "{{nature}}"
}
}

View File

@ -63,6 +63,7 @@
"bgmVolume": "BGM Volume",
"fieldVolume": "Field Volume",
"seVolume": "SE Volume",
"uiVolume": "UI Volume",
"musicPreference": "Music Preference",
"mixed": "Mixed",
"gamepadPleasePlug": "Please Plug in a Gamepad or Press a Button",

View File

@ -117,5 +117,14 @@
"plasma_grunts": "Plasma Grunts",
"flare_grunt": "Flare Grunt",
"flare_grunt_female": "Flare Grunt",
"flare_grunts": "Flare Grunts"
}
"flare_grunts": "Flare Grunts",
"aether_grunt": "Aether Foundation Employee",
"aether_grunt_female": "Aether Foundation Employee",
"aether_grunts": "Aether Foundation Employees",
"skull_grunt": "Team Skull Grunt",
"skull_grunt_female": "Team Skull Grunt",
"skull_grunts": "Team Skull Grunts",
"macro_grunt": "Macro Cosmos Trainer",
"macro_grunt_female": "Macro Cosmos Trainer",
"macro_grunts": "Macro Cosmos Trainers"
}

View File

@ -138,11 +138,19 @@
"rood": "Rood",
"xerosic": "Xerosic",
"bryony": "Bryony",
"faba": "Faba",
"plumeria": "Plumeria",
"oleana": "Oleana",
"maxie": "Maxie",
"archie": "Archie",
"cyrus": "Cyrus",
"ghetsis": "Ghetsis",
"lysandre": "Lysandre",
"lusamine": "Lusamine",
"guzma": "Guzma",
"rose": "Rose",
"blue_red_double": "Blue & Red",
"red_blue_double": "Red & Blue",
"tate_liza_double": "Tate & Liza",
@ -164,4 +172,4 @@
"vicky": "Vicky",
"vito": "Vito",
"bug_type_superfan": "Bug-Type Superfan"
}
}

View File

@ -16,6 +16,10 @@
"galactic_boss": "Team Galactic Boss",
"plasma_boss": "Team Plasma Boss",
"flare_boss": "Team Flare Boss",
"aether_boss": "Aether President",
"skull_boss": "Team Skull Boss",
"macro_boss": "Macro Cosmos President",
"rocket_admin": "Team Rocket Admin",
"rocket_admin_female": "Team Rocket Admin",
"magma_admin": "Team Magma Admin",
@ -27,5 +31,8 @@
"plasma_sage": "Team Plasma Sage",
"plasma_admin": "Team Plasma Admin",
"flare_admin": "Team Flare Admin",
"flare_admin_female": "Team Flare Admin"
}
"flare_admin_female": "Team Flare Admin",
"aether_admin": "Aether Foundation Admin",
"skull_admin": "Team Skull Admin",
"macro_admin": "Macro Cosmos"
}

View File

@ -1,11 +1,62 @@
{
"blockRecoilDamage": "¡{{abilityName}} de {{pokemonName}}\nlo protegió del daño de retroceso!",
"badDreams": "¡{{pokemonName}} está atormentado!",
"costar": "¡{{pokemonName}} copió los cambios de características de {{allyName}}!",
"iceFaceAvoidedDamage": "¡{{pokemonNameWithAffix}} evitó\ndaño con {{abilityName}}!",
"perishBody": "¡{{abilityName}} de {{pokemonName}} debilitará a ambos Pokémon en 3 turnos!",
"poisonHeal": "¡{{pokemonNameWithAffix}} restauró algunos de sus PS gracias a {{abilityName}}!",
"trace": "¡{{pokemonName}} ha copiado la habilidad {{abilityName}} \nde {{targetName}}!",
"windPowerCharged": "¡{{pokemonName}} se ha cargado de electricidad gracias a {{moveName}}!",
"quickDraw": "¡{{pokemonName}} ataca primero gracias a la habilidad Mano Rápida!",
"disguiseAvoidedDamage": "¡El disfraz de {{pokemonNameWithAffix}} se ha roto!",
"preventBerryUse": "{{pokemonNameWithAffix}} está muy nervioso y no puede comer bayas!",
"weatherEffectDisappeared": "El tiempo atmosférico ya no ejerce ninguna influencia."
}
"blockItemTheft": "¡{{pokemonNameWithAffix}} evitó el robo gracias a {{abilityName}}!",
"typeImmunityHeal": "¡{{pokemonNameWithAffix}} restauró algunos de sus PS gracias a {{abilityName}}!",
"nonSuperEffectiveImmunity": "¡{{pokemonNameWithAffix}} evitó el daño gracias a {{abilityName}}!",
"moveImmunity": "¡No afecta a {{pokemonNameWithAffix}}!",
"reverseDrain": "¡{{pokemonNameWithAffix}} absorbió lodo líquido!",
"postDefendTypeChange": "¡{{abilityName}} de {{pokemonNameWithAffix}} cambió a tipo {{typeName}}!",
"postDefendContactDamage": "¡{{abilityName}} de {{pokemonNameWithAffix}} ha herido a su atacante!",
"postDefendAbilitySwap": "¡{{pokemonNameWithAffix}} intercambió su habilidad con su objetivo!",
"postDefendAbilityGive": "¡{{pokemonNameWithAffix}} cambió la habilidad del objetivo por {{abilityName}}!",
"postDefendMoveDisable": "¡{{moveName}} de {{pokemonNameWithAffix}} ha sido anulado!",
"pokemonTypeChange": "¡{{pokemonNameWithAffix}} ha cambiado a tipo {{moveType}}!",
"postAttackStealHeldItem": "¡{{pokemonNameWithAffix}} robó {{stolenItemType}} de {{defenderName}}!",
"postDefendStealHeldItem": "¡{{pokemonNameWithAffix}} robó {{stolenItemType}} de {{attackerName}}!",
"copyFaintedAllyAbility": "¡{{abilityName}} de {{pokemonNameWithAffix}} fue copiada!",
"intimidateImmunity": "¡{{abilityName}} de {{pokemonNameWithAffix}} evita que sea intimidado!",
"postSummonAllyHeal": "¡{{pokemonNameWithAffix}} se ha bebido el té que ha preparado {{pokemonName}}!",
"postSummonClearAllyStats": "¡Los cambios de características de {{pokemonNameWithAffix}} fueron eliminados!",
"postSummonTransform": "¡{{pokemonNameWithAffix}} se transformó en {{targetName}}!",
"protectStat": "¡{{abilityName}} de {{pokemonNameWithAffix}} evita que baje su {{statName}}!",
"statusEffectImmunityWithName": "¡{{abilityName}} de {{pokemonNameWithAffix}} evita {{statusEffectName}}!",
"statusEffectImmunity": "¡{{abilityName}} de {{pokemonNameWithAffix}} evita los problemas de estado!",
"battlerTagImmunity": "¡{{abilityName}} de {{pokemonNameWithAffix}} previene {{battlerTagName}}!",
"forewarn": "¡{{pokemonNameWithAffix}} ha detectado el movimiento {{moveName}}!",
"frisk": "¡{{pokemonNameWithAffix}} ha cacheado {{opponentAbilityName}} de {{opponentName}}!",
"postWeatherLapseHeal": "¡{{pokemonNameWithAffix}} restauró algunos de sus PS gracias a {{abilityName}}!",
"postWeatherLapseDamage": "¡{{pokemonNameWithAffix}} se hizo daño por su {{abilityName}}!",
"postTurnLootCreateEatenBerry": "¡{{pokemonNameWithAffix}} recogió una {{berryName}}!",
"postTurnHeal": "¡{{pokemonNameWithAffix}} restauró algunos de sus PS gracias a {{abilityName}}!",
"fetchBall": "¡{{pokemonNameWithAffix}} encontró {{pokeballName}}!",
"healFromBerryUse": "¡{{pokemonNameWithAffix}} se curó gracias a {{abilityName}}!",
"arenaTrap": "¡{{pokemonNameWithAffix}} impide el cambio con {{abilityName}}!",
"postBattleLoot": "¡{{pokemonNameWithAffix}} recogió {{itemName}}!",
"postFaintContactDamage": "¡{{abilityName}} de {{pokemonNameWithAffix}} hizo daño a su atacante!",
"postFaintHpDamage": "¡{{abilityName}} de {{pokemonNameWithAffix}} hizo daño a su atacante!",
"postSummonPressure": "¡{{pokemonNameWithAffix}} ejerce Presión!",
"weatherEffectDisappeared": "El tiempo atmosférico ya no ejerce ninguna influencia.",
"postSummonMoldBreaker": "¡{{pokemonNameWithAffix}} rompió el molde!",
"postSummonAnticipation": "¡{{pokemonNameWithAffix}} se anticipó!",
"postSummonTurboblaze": "¡{{pokemonNameWithAffix}} irradia un aura llameante!",
"postSummonTeravolt": "¡{{pokemonNameWithAffix}} irradia un aura chisporroteante!",
"postSummonDarkAura": "¡{{pokemonNameWithAffix}} irradia un aura oscura!",
"postSummonFairyAura": "¡{{pokemonNameWithAffix}} irradia un aura feérica!",
"postSummonNeutralizingGas": "¡El Gas Reactivo de {{pokemonNameWithAffix}} se propaga por toda la zona!",
"postSummonAsOneGlastrier": "¡{{pokemonNameWithAffix}} tiene dos Habilidades!",
"postSummonAsOneSpectrier": "¡{{pokemonNameWithAffix}} tiene dos Habilidades!",
"postSummonVesselOfRuin": "¡{{pokemonNameWithAffix}} ha mermado {{statName}} de los demás Pokémon con Caldero Debacle!",
"postSummonSwordOfRuin": "¡{{pokemonNameWithAffix}} ha mermado {{statName}} de los demás Pokémon con Espada Debacle!",
"postSummonTabletsOfRuin": "¡{{pokemonNameWithAffix}} ha mermado {{statName}} de los demás Pokémon con Tablilla Debacle!",
"postSummonBeadsOfRuin": "¡{{pokemonNameWithAffix}} ha mermado {{statName}} de los demás Pokémon con Abalorio Debacle!",
"preventBerryUse": "{{pokemonNameWithAffix}} está muy nervioso y no puede comer bayas!"
}

View File

@ -36,7 +36,7 @@
"learnMoveNotLearned": "{{pokemonName}} no ha aprendido {{moveName}}.",
"learnMoveForgetQuestion": "¿Qué movimiento quieres que olvide?",
"learnMoveForgetSuccess": "{{pokemonName}} ha olvidado cómo utilizar {{moveName}}.",
"countdownPoof": "@d{32}1, @d{15}2, @d{15}y@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}¡Puf!",
"countdownPoof": "@d{32}1, @d{15}2, @d{15}y@d{15}… @d{15}… @d{15}… @d{15}@s{se/pb_bounce_1}¡Puf!",
"learnMoveAnd": "Y…",
"levelCapUp": "¡Se ha incrementado el\nnivel máximo a {{levelCap}}!",
"moveNotImplemented": "{{moveName}} aún no está implementado y no se puede seleccionar.",

View File

@ -78,11 +78,18 @@
"battle_galactic_grunt": "BDSP Team Galactic Battle",
"battle_plasma_grunt": "BW - ¡Vs Equipo Plasma!",
"battle_flare_grunt": "XY Team Flare Battle",
"battle_aether_grunt": "SM Aether Foundation Battle",
"battle_skull_grunt": "SM Team Skull Battle",
"battle_macro_grunt": "SWSH Trainer Battle",
"battle_galactic_admin": "BDSP Team Galactic Admin Battle",
"battle_skull_admin": "SM Team Skull Admin Battle",
"battle_oleana": "SWSH Oleana Battle",
"battle_rocket_boss": "USUM Giovanni Battle",
"battle_aqua_magma_boss": "ORAS Archie & Maxie Battle",
"battle_galactic_boss": "BDSP Cyrus Battle",
"battle_plasma_boss": "B2W2 Ghetsis Battle",
"battle_flare_boss": "XY Lysandre Battle",
"abyss": "PMD EoS - Cráter Oscuro",
"badlands": "PMD EoS - Valle Desolado",
"beach": "PMD EoS - Risco Calado",
@ -135,4 +142,4 @@
"heal": "BW - Cura Pokémon",
"menu": "PMD EoS - ¡Bienvenidos al mundo de los Pokémon!",
"title": "PMD EoS - Tema del menú principal"
}
}

View File

@ -1 +1,52 @@
{}
{
"aether_grunt": {
"encounter": {
"1": "¡Lucharé con toda mi fuerza para detenerte!",
"2": "Me da igual que seas un crío. Eres una amenaza y debes irte.",
"3": "Me dijeron que mandara a todos los entrenadores por donde venían, ¡sin excepciones!",
"4": "¡Te mostraré el poder del Paraíso Æther!",
"5": "Ahora que conoces la oscuridad en lo profundo del Paraíso Æther, es hora de que vayas desapareciendo..."
},
"victory": {
"1": "¡Vaya! Demuestras habilidad.",
"2": "¿Qué quiere decir esto? ¿Eh?",
"3": "¡Vaya! Con esa fuerza, ¡no creo que pueda detenerte!",
"4": "Vaya... parece que puede que haya perdido.",
"5": "¡Mira, te hago una mueca!: ¡Aiyee!"
}
},
"faba": {
"encounter": {
"1": "¡Yo, Subdirector Fabio, te mostraré la cruda realidad del mundo!",
"2": "¿Yo, la última línea de defensa de Æther, battallando a un mero crío?",
"3": "Yo, Fabio, soy el Subdirector de la Fundación Æther. Soy el único en el mundo, soy irremplazable."
},
"victory": {
"1": "¡Aaaah!",
"2": "¿C-c-cómo puede ser? Eres tan solo un niño...",
"3": "Este... este es el motivo por el que odio a los niños."
}
},
"aether_boss_lusamine_1": {
"encounter": {
"1": "¡Vas a asustar a mi pobre criatura! Parece que tendré que silenciarte cuanto antes."
},
"victory": {
"1": "¿Cómo?¿Cómo puedes ser tan terrible?"
},
"defeat": {
"1": "Buff."
}
},
"aether_boss_lusamine_2": {
"encounter": {
"1": "¡¿Por qué me sigues molestando?! Estoy cansada de ti. ¡Hasta las narices!\n$Se acabó esta charla innecesaria. Este es el poder de Nihilego, ¡te demostraré cuánto te equivocas al venir aquí!"
},
"victory": {
"1": "¡¡¡Aaauuuggghhhhhhhhh!!!"
},
"defeat": {
"1": "¡Todo lo que quiero es a esta preciosa criatura! ¡Los demás no me importáis!"
}
}
}

View File

@ -1 +1,52 @@
{}
{
"aether_grunt": {
"encounter": {
"1": "¡Lucharé con toda mi fuerza para detenerte!",
"2": "Me da igual que seas un crío. Eres una amenaza y debes irte.",
"3": "Me dijeron que mandara a todos los entrenadores por donde venían, ¡sin excepciones!",
"4": "¡Te mostraré el poder del Paraíso Æther!",
"5": "Ahora que conoces la oscuridad en lo profundo del Paraíso Æther, es hora de que vayas desapareciendo..."
},
"victory": {
"1": "¡Vaya! Demuestras habilidad.",
"2": "¿Qué quiere decir esto? ¿Eh?",
"3": "¡Vaya! Con esa fuerza, ¡no creo que pueda detenerte!",
"4": "Vaya... parece que puede que haya perdido.",
"5": "¡Mira, te hago una mueca!: ¡Aiyee!"
}
},
"faba": {
"encounter": {
"1": "¡Yo, Subdirector Fabio, te mostraré la cruda realidad del mundo!",
"2": "¿Yo, la última línea de defensa de Æther, battallando a un mero crío?",
"3": "Yo, Fabio, soy el Subdirector de la Fundación Æther. Soy el único en el mundo, soy irremplazable."
},
"victory": {
"1": "¡Aaaah!",
"2": "¿C-c-cómo puede ser? Eres tan solo un niño...",
"3": "Este... este es el motivo por el que odio a los niños."
}
},
"aether_boss_lusamine_1": {
"encounter": {
"1": "¡Vas a asustar a mi pobre criatura! Parece que tendré que silenciarte cuanto antes."
},
"victory": {
"1": "¿Cómo?¿Cómo puedes ser tan terrible?"
},
"defeat": {
"1": "Buff."
}
},
"aether_boss_lusamine_2": {
"encounter": {
"1": "¡¿Por qué me sigues molestando?! Estoy cansada de ti. ¡Hasta las narices!\n$Se acabó esta charla innecesaria. Este es el poder de Nihilego, ¡te demostraré cuánto te equivocas al venir aquí!"
},
"victory": {
"1": "¡¡¡Aaauuuggghhhhhhhhh!!!"
},
"defeat": {
"1": "¡Todo lo que quiero es a esta preciosa criatura! ¡Los demás no me importáis!"
}
}
}

View File

@ -2,6 +2,106 @@
"boy": "Chico",
"girl": "Chica",
"general": "General",
"display": "Pantalla",
"audio": "Audio",
"shopOverlayOpacity": "Opacidad de la fase de compra"
"gamepad": "Mando",
"keyboard": "Teclado",
"gameSpeed": "Veloc. del juego",
"hpBarSpeed": "Veloc. barra PS",
"expGainsSpeed": "Veloc. de EXP",
"expPartyDisplay": "Mostrar EXP del Equipo",
"skipSeenDialogues": "Saltar diálogos leídos",
"battleStyle": "Estilo de lucha",
"enableRetries": "Activar reintento",
"hideIvs": "Ocultar escáner de IVs",
"tutorials": "Tutoriales",
"touchControls": "Control táctil",
"vibrations": "Vibración",
"normal": "Normal",
"fast": "+1",
"faster": "+2",
"skip": "Saltar",
"levelUpNotifications": "Aumentos de nivel",
"on": "Sí",
"off": "No",
"switch": "Cambiar",
"set": "Mantener",
"auto": "Auto.",
"disabled": "Desact.",
"language": "Idioma",
"change": "Cambiar",
"uiTheme": "Color UI",
"default": "Predet.",
"legacy": "Clásico",
"windowType": "Ventana",
"moneyFormat": "Formato dinero",
"damageNumbers": "Cifras de daño",
"simple": "Simple",
"fancy": "Elegante",
"abbreviated": "Abreviado",
"moveAnimations": "Animación de movs.",
"showStatsOnLevelUp": "Estadísticas al aum. nivel",
"candyUpgradeNotification": "Aviso de caramelos",
"passivesOnly": "Solo pasivas",
"candyUpgradeDisplay": "Muestra de caramelos",
"icon": "Icono",
"animation": "Animación",
"moveInfo": "Info. de movimientos",
"showMovesetFlyout": "Descripción de movimientos",
"showArenaFlyout": "Descripción de escenarios",
"showTimeOfDayWidget": "Mostrar hora del día",
"timeOfDayAnimation": "Animación hora del día",
"bounce": "Rebote",
"timeOfDay_back": "Vuelta",
"spriteSet": "Set de sprites",
"consistent": "Consistente",
"mixedAnimated": "Mixto",
"fusionPaletteSwaps": "Colores de fusión",
"playerGender": "Género del jugador",
"typeHints": "Pistas de tipos",
"masterVolume": "Volumen total",
"bgmVolume": "Volumen música",
"fieldVolume": "Volumen escenario",
"seVolume": "Volumen efectos",
"uiVolume": "Volumen sistema",
"musicPreference": "Preferencia musical",
"mixed": "Mixta",
"gamepadPleasePlug": "Conecta un mando o pulsa un botón",
"delete": "Eliminar",
"keyboardPleasePress": "Pulsa una tecla de tu teclado",
"reset": "Restablecer",
"requireReload": "Requiere reinicio",
"action": "Acción",
"back": "Atrás",
"pressToBind": "Pulsa para vincular",
"pressButton": "Pulsa un botón...",
"buttonUp": "Arriba",
"buttonDown": "Abajo",
"buttonLeft": "Izquierda",
"buttonRight": "Derecha",
"buttonAction": "Acción",
"buttonMenu": "Menú",
"buttonSubmit": "Confirmar",
"buttonCancel": "Cancelar",
"buttonStats": "Estadísticas",
"buttonCycleForm": "Cambiar forma",
"buttonCycleShiny": "Cambiar shiny",
"buttonCycleGender": "Cambiar género",
"buttonCycleAbility": "Cambiar habilidad",
"buttonCycleNature": "Cambiar naturaleza",
"buttonCycleVariant": "Cambiar variante",
"buttonSpeedUp": "Acelerar",
"buttonSlowDown": "Ralentizar",
"alt": " (Alt.)",
"mute": "Silenciar",
"controller": "Mando",
"gamepadSupport": "Soporte de mando",
"showBgmBar": "Mostrar título de canción",
"moveTouchControls": "Controles táctiles",
"shopOverlayOpacity": "Opacidad de la fase de compra",
"shopCursorTarget": "Cursor de la tienda",
"items": "Objetos",
"reroll": "Actualizar",
"shop": "Tienda",
"checkTeam": "Ver equipo"
}

View File

@ -95,5 +95,8 @@
"worker": "Operario",
"worker_female": "Operaria",
"workers": "Operarios",
"youngster": "Joven"
}
"youngster": "Joven",
"aether_grunt": "Empleado de la Fundación Æther",
"aether_grunt_female": "Empleada de la Fundación Æther",
"aether_grunts": "Empleados de la Fundación Æther"
}

View File

@ -138,11 +138,15 @@
"rood": "Rood",
"xerosic": "Xerosic",
"bryony": "Bryony",
"faba": "Fabio",
"maxie": "Maxie",
"archie": "Archie",
"cyrus": "Cyrus",
"ghetsis": "Ghetsis",
"lysandre": "Lysandre",
"lusamine": "Samina",
"blue_red_double": "Azul y Rojo",
"red_blue_double": "Rojo y Azul",
"tate_liza_double": "Vito y Leti",
@ -153,4 +157,4 @@
"iris_alder_double": "Iris y Mirto",
"marnie_piers_double": "Roxy y Nerio",
"piers_marnie_double": "Nerio y Roxy"
}
}

View File

@ -16,6 +16,8 @@
"galactic_boss": "Team Galactic Boss",
"plasma_boss": "Team Plasma Boss",
"flare_boss": "Team Flare Boss",
"aether_boss": "Presidente Æther",
"rocket_admin": "Team Rocket Admin",
"rocket_admin_female": "Team Rocket Admin",
"magma_admin": "Team Magma Admin",
@ -27,5 +29,6 @@
"plasma_sage": "Team Plasma Sage",
"plasma_admin": "Team Plasma Admin",
"flare_admin": "Team Flare Admin",
"flare_admin_female": "Team Flare Admin"
}
"flare_admin_female": "Team Flare Admin",
"aether_admin": "Director de la Fundación Æther"
}

View File

@ -38,7 +38,7 @@
"learnMoveNotLearned": "{{pokemonName}} na pas appris\n{{moveName}}.",
"learnMoveForgetQuestion": "Quelle capacité doit être oubliée ?",
"learnMoveForgetSuccess": "{{pokemonName}} oublie comment\nutiliser {{moveName}}.",
"countdownPoof": "@d{32}1, @d{15}2, @d{15}et@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}Tadaaa !",
"countdownPoof": "@d{32}1, @d{15}2, @d{15}et@d{15}… @d{15}… @d{15}… @d{15}@s{se/pb_bounce_1}Tadaaa !",
"learnMoveAnd": "Et…",
"levelCapUp": "La limite de niveau\na été augmentée à {{levelCap}} !",
"moveNotImplemented": "{{moveName}} nest pas encore implémenté et ne peut pas être sélectionné.",

View File

@ -45,6 +45,7 @@
"battle_legendary_lake_trio": "ROSA - Vs. Gardiens des Lacs",
"battle_legendary_sinnoh": "ROSA - Vs. Légendaire de Sinnoh",
"battle_legendary_dia_pal": "ROSA - Vs. Dialga/Palkia",
"battle_legendary_origin_forme": "LPA - Vs. Dialga/Palkia Originel",
"battle_legendary_giratina": "ROSA - Vs. Giratina",
"battle_legendary_arceus": "HGSS - Vs. Arceus",
"battle_legendary_unova": "NB - Vs. Légendaire dUnys",
@ -59,6 +60,7 @@
"battle_legendary_zac_zam": "ÉB - Vs. Zacian/Zamazenta",
"battle_legendary_glas_spec": "ÉB - Vs. Blizzeval/Spectreval",
"battle_legendary_calyrex": "ÉB - Vs. Sylveroy",
"battle_legendary_riders": "ÉB - Vs. Sylveroy Cavalier du Froid/dEffroi",
"battle_legendary_birds_galar": "ÉB - Vs. Oiseaux Légendaires de Galar",
"battle_legendary_ruinous": "ÉV - Vs. Trésors du fléau",
"battle_legendary_kor_mir": "ÉV - Profondeurs de la Zone Zéro (Combat)",
@ -78,11 +80,21 @@
"battle_galactic_grunt": "DÉPS Vs. Team Galaxie",
"battle_plasma_grunt": "NB - Vs. Team Plasma",
"battle_flare_grunt": "XY - Vs. Team Flare",
"battle_aether_grunt": "SL - Vs. Fondation Æther",
"battle_skull_grunt": "SL - Vs. Team Skull",
"battle_macro_grunt": "ÉB - Vs. Macro Cosmos",
"battle_galactic_admin": "DÉPS - Vs. Admin Team Galaxie",
"battle_skull_admin": "SL - Vs. Admin Team Skull",
"battle_oleana": "ÉB - Vs. Liv",
"battle_rocket_boss": "USUL - Vs. Giovanni",
"battle_aqua_magma_boss": "ROSA - Vs. Arthur/Max",
"battle_galactic_boss": "DÉPS - Vs. Hélio",
"battle_plasma_boss": "N2B2 - Vs. Ghetis",
"battle_flare_boss": "XY - Vs. Lysandre",
"battle_aether_boss": "SL - Vs. Elsa-Mina",
"battle_skull_boss": "SL - Vs. Guzma",
"battle_macro_boss": "ÉB - Vs. Shehroz",
"abyss": "PDM EdC - Cratère Obscur",
"badlands": "PDM EdC - Vallée Stérile",
"beach": "PDM EdC - Falaise Trempée",

View File

@ -63,6 +63,7 @@
"bgmVolume": "Vol. musique",
"fieldVolume": "Vol. combats",
"seVolume": "Vol. effets",
"uiVolume": "Vol. menus",
"musicPreference": "Préf. musicale",
"mixed": "Mixte",
"gamepadPleasePlug": "Veuillez brancher une manette ou appuyer sur un bouton.",

View File

@ -117,5 +117,13 @@
"plasma_grunts": "Sbires de la Team Plasma",
"flare_grunt": "Sbire de la Team Flare",
"flare_grunt_female": "Sbire de la Team Flare",
"flare_grunts": "Sbires de la Team Flare"
"flare_grunts": "Sbires de la Team Flare",
"aether_grunt": "Employé de la Fondation Æther",
"aether_grunt_female": "Employée de la Fondation Æther",
"aether_grunts": "Employés de la Fondation Æther",
"skull_grunt": "Sbire de la Team Skull",
"skull_grunt_female": "Sbire de la Team Skull",
"macro_grunt": "Employé de Macro Cosmos",
"macro_grunt_female": "Employée de Macro Cosmos",
"macro_grunts": "Employés de Macro Cosmos"
}

View File

@ -138,11 +138,19 @@
"rood": "Carmine",
"xerosic": "Xanthin",
"bryony": "Brasénie",
"faba": "Saubohne",
"plumeria": "Apocyne",
"oleana": "Liv",
"maxie": "Max",
"archie": "Arthur",
"cyrus": "Hélio",
"ghetsis": "Ghetis",
"lysandre": "Lysandre",
"lusamine": "Elsa-Mina",
"guzma": "Guzma",
"rose": "Shehroz",
"blue_red_double": "Blue & Red",
"red_blue_double": "Red & Blue",
"tate_liza_double": "Lévy & Tatia",

View File

@ -16,6 +16,10 @@
"galactic_boss": "Leader de la Team Galaxie",
"plasma_boss": "Leader de la Team Plasma",
"flare_boss": "Leader de la Team Flare",
"aether_boss": "Présidente dÆther",
"skull_boss": "Boss de la Team Skull",
"macro_boss": "Président de Macro Cosmos",
"rocket_admin": "Admin Team Rocket",
"rocket_admin_female": "Admin Team Rocket",
"magma_admin": "Admin Team Magma",
@ -27,5 +31,8 @@
"plasma_sage": "Sage Plasma",
"plasma_admin": "Admin Team Plasma",
"flare_admin": "Manager de la Team Flare",
"flare_admin_female": "Manageuse de la Team Flare"
}
"flare_admin_female": "Manageuse de la Team Flare",
"aether_admin": "Directeur dÆther",
"skull_admin": "Admin Team Skull",
"macro_admin": "Macro Cosmos"
}

Some files were not shown because too many files have changed in this diff Show More