Merge branch 'refs/heads/beta' into beta_fusion_names
18
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@ -1,18 +0,0 @@
|
|||||||
---
|
|
||||||
name: Feature request
|
|
||||||
about: Suggest an idea for this project
|
|
||||||
title: "[Feature]"
|
|
||||||
labels: enhancement
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Is your feature request related to a problem? Please describe.**
|
|
||||||
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
|
|
||||||
|
|
||||||
**Describe the Feature**
|
|
||||||
<!-- A clear and concise description of what you want to happen. -->
|
|
||||||
<!-- Add a link to the feature if it is an existing move/ability/etc -->
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
<!-- Add any other context or screenshots about the feature request here. -->
|
|
39
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
name: Feature Request
|
||||||
|
description: Suggest an idea for this project
|
||||||
|
title: "[Feature] "
|
||||||
|
labels: ["enhancement"]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for taking the time to fill out this feature request!
|
||||||
|
- type: textarea
|
||||||
|
id: relation
|
||||||
|
attributes:
|
||||||
|
label: Is your feature request related to a problem? Please describe.
|
||||||
|
description: Clear and concise description of what the problem is.
|
||||||
|
placeholder: E.g. "I'm always frustrated when [...]"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
---
|
||||||
|
- type: textarea
|
||||||
|
id: description
|
||||||
|
attributes:
|
||||||
|
label: Describe the Feature
|
||||||
|
description: A clear and concise description of what you want to happen. Add a link to the feature if it is an existing move/ability/etc.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
---
|
||||||
|
- type: textarea
|
||||||
|
id: additional-context
|
||||||
|
attributes:
|
||||||
|
label: Additional context
|
||||||
|
description: Add any other context or screenshots about the feature request here.
|
||||||
|
validations:
|
||||||
|
required: true
|
5
.github/pull_request_template.md
vendored
@ -5,12 +5,12 @@
|
|||||||
## What are the changes?
|
## What are the changes?
|
||||||
<!-- Summarize what are the changes from a user perspective on the application -->
|
<!-- Summarize what are the changes from a user perspective on the application -->
|
||||||
|
|
||||||
## Why am I doing these changes?
|
## Why am I doing these changes the user will see?
|
||||||
<!-- Explain why you decided to introduce these changes -->
|
<!-- Explain why you decided to introduce these changes -->
|
||||||
<!-- Does it come from an issue or another PR? Please link it -->
|
<!-- Does it come from an issue or another PR? Please link it -->
|
||||||
<!-- Explain why you believe this can enhance user experience -->
|
<!-- Explain why you believe this can enhance user experience -->
|
||||||
|
|
||||||
## What did change?
|
## What are the changes from a developer perspective?
|
||||||
<!-- Explicitly state what are the changes introduced by the PR -->
|
<!-- Explicitly state what are the changes introduced by the PR -->
|
||||||
<!-- You can make use of a comparison between what was the state before and after your PR changes -->
|
<!-- You can make use of a comparison between what was the state before and after your PR changes -->
|
||||||
|
|
||||||
@ -30,6 +30,7 @@
|
|||||||
- [ ] The PR is self-contained and cannot be split into smaller PRs?
|
- [ ] The PR is self-contained and cannot be split into smaller PRs?
|
||||||
- [ ] Have I provided a clear explanation of the changes?
|
- [ ] Have I provided a clear explanation of the changes?
|
||||||
- [ ] Have I considered writing automated tests for the issue?
|
- [ ] Have I considered writing automated tests for the issue?
|
||||||
|
- [ ] If I have text, did I add placeholders for them in locales?
|
||||||
- [ ] Have I tested the changes (manually)?
|
- [ ] Have I tested the changes (manually)?
|
||||||
- [ ] Are all unit tests still passing? (`npm run test`)
|
- [ ] Are all unit tests still passing? (`npm run test`)
|
||||||
- [ ] Are the changes visual?
|
- [ ] Are the changes visual?
|
||||||
|
BIN
public/audio/bgm/battle_hoenn_champion_g6.mp3
Normal file
@ -1,272 +1,140 @@
|
|||||||
{
|
{
|
||||||
"textures": [
|
"textures":[
|
||||||
{
|
{
|
||||||
"image": "1001.png",
|
"image": "1001.png",
|
||||||
"format": "RGBA8888",
|
"format": "RGBA8888",
|
||||||
"size": {
|
"size": { "w": 161, "h": 157 },
|
||||||
"w": 237,
|
"scale": 1,
|
||||||
"h": 237
|
"frames": [
|
||||||
},
|
{
|
||||||
"scale": 1,
|
"filename": "0001.png",
|
||||||
"frames": [
|
"rotated": false,
|
||||||
{
|
"trimmed": true,
|
||||||
"filename": "0001.png",
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"rotated": false,
|
"spriteSourceSize": { "x": 0, "y": 0, "w": 79, "h": 79 },
|
||||||
"trimmed": false,
|
"frame": { "x": 80, "y": 78, "w": 79, "h": 79 }
|
||||||
"sourceSize": {
|
},
|
||||||
"w": 79,
|
{
|
||||||
"h": 79
|
"filename": "0002.png",
|
||||||
},
|
"rotated": false,
|
||||||
"spriteSourceSize": {
|
"trimmed": true,
|
||||||
"x": 0,
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"y": 0,
|
"spriteSourceSize": { "x": 0, "y": 0, "w": 79, "h": 79 },
|
||||||
"w": 79,
|
"frame": { "x": 80, "y": 78, "w": 79, "h": 79 }
|
||||||
"h": 79
|
},
|
||||||
},
|
{
|
||||||
"frame": {
|
"filename": "0003.png",
|
||||||
"x": 0,
|
"rotated": false,
|
||||||
"y": 0,
|
"trimmed": true,
|
||||||
"w": 79,
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"h": 79
|
"spriteSourceSize": { "x": 0, "y": 0, "w": 79, "h": 79 },
|
||||||
}
|
"frame": { "x": 80, "y": 78, "w": 79, "h": 79 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename": "0002.png",
|
"filename": "0004.png",
|
||||||
"rotated": false,
|
"rotated": false,
|
||||||
"trimmed": true,
|
"trimmed": true,
|
||||||
"sourceSize": {
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"w": 79,
|
"spriteSourceSize": { "x": 0, "y": 0, "w": 79, "h": 79 },
|
||||||
"h": 79
|
"frame": { "x": 80, "y": 78, "w": 79, "h": 79 }
|
||||||
},
|
},
|
||||||
"spriteSourceSize": {
|
{
|
||||||
"x": 0,
|
"filename": "0005.png",
|
||||||
"y": 1,
|
"rotated": false,
|
||||||
"w": 79,
|
"trimmed": true,
|
||||||
"h": 78
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
},
|
"spriteSourceSize": { "x": 0, "y": 1, "w": 80, "h": 78 },
|
||||||
"frame": {
|
"frame": { "x": 0, "y": 79, "w": 80, "h": 78 }
|
||||||
"x": 79,
|
},
|
||||||
"y": 0,
|
{
|
||||||
"w": 79,
|
"filename": "0006.png",
|
||||||
"h": 78
|
"rotated": false,
|
||||||
}
|
"trimmed": true,
|
||||||
},
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
{
|
"spriteSourceSize": { "x": 0, "y": 1, "w": 80, "h": 78 },
|
||||||
"filename": "0012.png",
|
"frame": { "x": 0, "y": 79, "w": 80, "h": 78 }
|
||||||
"rotated": false,
|
},
|
||||||
"trimmed": true,
|
{
|
||||||
"sourceSize": {
|
"filename": "0007.png",
|
||||||
"w": 79,
|
"rotated": false,
|
||||||
"h": 79
|
"trimmed": true,
|
||||||
},
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"spriteSourceSize": {
|
"spriteSourceSize": { "x": 0, "y": 1, "w": 80, "h": 78 },
|
||||||
"x": 0,
|
"frame": { "x": 0, "y": 79, "w": 80, "h": 78 }
|
||||||
"y": 1,
|
},
|
||||||
"w": 79,
|
{
|
||||||
"h": 78
|
"filename": "0008.png",
|
||||||
},
|
"rotated": false,
|
||||||
"frame": {
|
"trimmed": true,
|
||||||
"x": 79,
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"y": 0,
|
"spriteSourceSize": { "x": 0, "y": 1, "w": 80, "h": 78 },
|
||||||
"w": 79,
|
"frame": { "x": 0, "y": 79, "w": 80, "h": 78 }
|
||||||
"h": 78
|
},
|
||||||
}
|
{
|
||||||
},
|
"filename": "0009.png",
|
||||||
{
|
"rotated": false,
|
||||||
"filename": "0003.png",
|
"trimmed": true,
|
||||||
"rotated": false,
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"trimmed": true,
|
"spriteSourceSize": { "x": 0, "y": 1, "w": 81, "h": 78 },
|
||||||
"sourceSize": {
|
"frame": { "x": 80, "y": 0, "w": 81, "h": 78 }
|
||||||
"w": 79,
|
},
|
||||||
"h": 79
|
{
|
||||||
},
|
"filename": "0010.png",
|
||||||
"spriteSourceSize": {
|
"rotated": false,
|
||||||
"x": 0,
|
"trimmed": true,
|
||||||
"y": 3,
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"w": 79,
|
"spriteSourceSize": { "x": 0, "y": 1, "w": 81, "h": 78 },
|
||||||
"h": 76
|
"frame": { "x": 80, "y": 0, "w": 81, "h": 78 }
|
||||||
},
|
},
|
||||||
"frame": {
|
{
|
||||||
"x": 158,
|
"filename": "0011.png",
|
||||||
"y": 0,
|
"rotated": false,
|
||||||
"w": 79,
|
"trimmed": true,
|
||||||
"h": 76
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
}
|
"spriteSourceSize": { "x": 0, "y": 1, "w": 81, "h": 78 },
|
||||||
},
|
"frame": { "x": 80, "y": 0, "w": 81, "h": 78 }
|
||||||
{
|
},
|
||||||
"filename": "0011.png",
|
{
|
||||||
"rotated": false,
|
"filename": "0012.png",
|
||||||
"trimmed": true,
|
"rotated": false,
|
||||||
"sourceSize": {
|
"trimmed": true,
|
||||||
"w": 79,
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"h": 79
|
"spriteSourceSize": { "x": 0, "y": 1, "w": 81, "h": 78 },
|
||||||
},
|
"frame": { "x": 80, "y": 0, "w": 81, "h": 78 }
|
||||||
"spriteSourceSize": {
|
},
|
||||||
"x": 0,
|
{
|
||||||
"y": 3,
|
"filename": "0013.png",
|
||||||
"w": 79,
|
"rotated": false,
|
||||||
"h": 76
|
"trimmed": true,
|
||||||
},
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"frame": {
|
"spriteSourceSize": { "x": 0, "y": 0, "w": 80, "h": 79 },
|
||||||
"x": 158,
|
"frame": { "x": 0, "y": 0, "w": 80, "h": 79 }
|
||||||
"y": 0,
|
},
|
||||||
"w": 79,
|
{
|
||||||
"h": 76
|
"filename": "0014.png",
|
||||||
}
|
"rotated": false,
|
||||||
},
|
"trimmed": true,
|
||||||
{
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"filename": "0004.png",
|
"spriteSourceSize": { "x": 0, "y": 0, "w": 80, "h": 79 },
|
||||||
"rotated": false,
|
"frame": { "x": 0, "y": 0, "w": 80, "h": 79 }
|
||||||
"trimmed": true,
|
},
|
||||||
"sourceSize": {
|
{
|
||||||
"w": 79,
|
"filename": "0015.png",
|
||||||
"h": 79
|
"rotated": false,
|
||||||
},
|
"trimmed": true,
|
||||||
"spriteSourceSize": {
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"x": 0,
|
"spriteSourceSize": { "x": 0, "y": 0, "w": 80, "h": 79 },
|
||||||
"y": 4,
|
"frame": { "x": 0, "y": 0, "w": 80, "h": 79 }
|
||||||
"w": 79,
|
},
|
||||||
"h": 75
|
{
|
||||||
},
|
"filename": "0016.png",
|
||||||
"frame": {
|
"rotated": false,
|
||||||
"x": 158,
|
"trimmed": true,
|
||||||
"y": 76,
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"w": 79,
|
"spriteSourceSize": { "x": 0, "y": 0, "w": 80, "h": 79 },
|
||||||
"h": 75
|
"frame": { "x": 0, "y": 0, "w": 80, "h": 79 }
|
||||||
}
|
}
|
||||||
},
|
]}],
|
||||||
{
|
"meta": {"app": "https://www.aseprite.org/","version": "1.3.7-x64"
|
||||||
"filename": "0010.png",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": true,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 79,
|
|
||||||
"h": 79
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 4,
|
|
||||||
"w": 79,
|
|
||||||
"h": 75
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 158,
|
|
||||||
"y": 76,
|
|
||||||
"w": 79,
|
|
||||||
"h": 75
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "0005.png",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": true,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 79,
|
|
||||||
"h": 79
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 5,
|
|
||||||
"w": 79,
|
|
||||||
"h": 74
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 79,
|
|
||||||
"y": 78,
|
|
||||||
"w": 79,
|
|
||||||
"h": 74
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "0009.png",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": true,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 79,
|
|
||||||
"h": 79
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 5,
|
|
||||||
"w": 79,
|
|
||||||
"h": 74
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 79,
|
|
||||||
"y": 78,
|
|
||||||
"w": 79,
|
|
||||||
"h": 74
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "0006.png",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": true,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 79,
|
|
||||||
"h": 79
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 6,
|
|
||||||
"w": 79,
|
|
||||||
"h": 73
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 79,
|
|
||||||
"w": 79,
|
|
||||||
"h": 73
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "0008.png",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": true,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 79,
|
|
||||||
"h": 79
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 6,
|
|
||||||
"w": 79,
|
|
||||||
"h": 73
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 79,
|
|
||||||
"w": 79,
|
|
||||||
"h": 73
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "0007.png",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": true,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 79,
|
|
||||||
"h": 79
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 7,
|
|
||||||
"w": 79,
|
|
||||||
"h": 72
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 158,
|
|
||||||
"y": 151,
|
|
||||||
"w": 79,
|
|
||||||
"h": 72
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"meta": {
|
|
||||||
"app": "https://www.codeandweb.com/texturepacker",
|
|
||||||
"version": "3.0",
|
|
||||||
"smartupdate": "$TexturePacker:SmartUpdate:2873276355a5ff8fe57d616764a11cb5:5516cfd39964108d480df461b020785f:c8a3fc07f857e38a4f887e43523aab92$"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.4 KiB |
@ -1,272 +1,140 @@
|
|||||||
{
|
{
|
||||||
"textures": [
|
"textures":[
|
||||||
{
|
{
|
||||||
"image": "1001.png",
|
"image": "1001.png",
|
||||||
"format": "RGBA8888",
|
"format": "RGBA8888",
|
||||||
"size": {
|
"size": { "w": 161, "h": 157 },
|
||||||
"w": 237,
|
"scale": 1,
|
||||||
"h": 237
|
"frames": [
|
||||||
},
|
{
|
||||||
"scale": 1,
|
"filename": "0001.png",
|
||||||
"frames": [
|
"rotated": false,
|
||||||
{
|
"trimmed": true,
|
||||||
"filename": "0001.png",
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"rotated": false,
|
"spriteSourceSize": { "x": 0, "y": 0, "w": 79, "h": 79 },
|
||||||
"trimmed": false,
|
"frame": { "x": 80, "y": 78, "w": 79, "h": 79 }
|
||||||
"sourceSize": {
|
},
|
||||||
"w": 79,
|
{
|
||||||
"h": 79
|
"filename": "0002.png",
|
||||||
},
|
"rotated": false,
|
||||||
"spriteSourceSize": {
|
"trimmed": true,
|
||||||
"x": 0,
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"y": 0,
|
"spriteSourceSize": { "x": 0, "y": 0, "w": 79, "h": 79 },
|
||||||
"w": 79,
|
"frame": { "x": 80, "y": 78, "w": 79, "h": 79 }
|
||||||
"h": 79
|
},
|
||||||
},
|
{
|
||||||
"frame": {
|
"filename": "0003.png",
|
||||||
"x": 0,
|
"rotated": false,
|
||||||
"y": 0,
|
"trimmed": true,
|
||||||
"w": 79,
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"h": 79
|
"spriteSourceSize": { "x": 0, "y": 0, "w": 79, "h": 79 },
|
||||||
}
|
"frame": { "x": 80, "y": 78, "w": 79, "h": 79 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename": "0002.png",
|
"filename": "0004.png",
|
||||||
"rotated": false,
|
"rotated": false,
|
||||||
"trimmed": true,
|
"trimmed": true,
|
||||||
"sourceSize": {
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"w": 79,
|
"spriteSourceSize": { "x": 0, "y": 0, "w": 79, "h": 79 },
|
||||||
"h": 79
|
"frame": { "x": 80, "y": 78, "w": 79, "h": 79 }
|
||||||
},
|
},
|
||||||
"spriteSourceSize": {
|
{
|
||||||
"x": 0,
|
"filename": "0005.png",
|
||||||
"y": 1,
|
"rotated": false,
|
||||||
"w": 79,
|
"trimmed": true,
|
||||||
"h": 78
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
},
|
"spriteSourceSize": { "x": 0, "y": 1, "w": 80, "h": 78 },
|
||||||
"frame": {
|
"frame": { "x": 0, "y": 79, "w": 80, "h": 78 }
|
||||||
"x": 79,
|
},
|
||||||
"y": 0,
|
{
|
||||||
"w": 79,
|
"filename": "0006.png",
|
||||||
"h": 78
|
"rotated": false,
|
||||||
}
|
"trimmed": true,
|
||||||
},
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
{
|
"spriteSourceSize": { "x": 0, "y": 1, "w": 80, "h": 78 },
|
||||||
"filename": "0012.png",
|
"frame": { "x": 0, "y": 79, "w": 80, "h": 78 }
|
||||||
"rotated": false,
|
},
|
||||||
"trimmed": true,
|
{
|
||||||
"sourceSize": {
|
"filename": "0007.png",
|
||||||
"w": 79,
|
"rotated": false,
|
||||||
"h": 79
|
"trimmed": true,
|
||||||
},
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"spriteSourceSize": {
|
"spriteSourceSize": { "x": 0, "y": 1, "w": 80, "h": 78 },
|
||||||
"x": 0,
|
"frame": { "x": 0, "y": 79, "w": 80, "h": 78 }
|
||||||
"y": 1,
|
},
|
||||||
"w": 79,
|
{
|
||||||
"h": 78
|
"filename": "0008.png",
|
||||||
},
|
"rotated": false,
|
||||||
"frame": {
|
"trimmed": true,
|
||||||
"x": 79,
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"y": 0,
|
"spriteSourceSize": { "x": 0, "y": 1, "w": 80, "h": 78 },
|
||||||
"w": 79,
|
"frame": { "x": 0, "y": 79, "w": 80, "h": 78 }
|
||||||
"h": 78
|
},
|
||||||
}
|
{
|
||||||
},
|
"filename": "0009.png",
|
||||||
{
|
"rotated": false,
|
||||||
"filename": "0003.png",
|
"trimmed": true,
|
||||||
"rotated": false,
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"trimmed": true,
|
"spriteSourceSize": { "x": 0, "y": 1, "w": 81, "h": 78 },
|
||||||
"sourceSize": {
|
"frame": { "x": 80, "y": 0, "w": 81, "h": 78 }
|
||||||
"w": 79,
|
},
|
||||||
"h": 79
|
{
|
||||||
},
|
"filename": "0010.png",
|
||||||
"spriteSourceSize": {
|
"rotated": false,
|
||||||
"x": 0,
|
"trimmed": true,
|
||||||
"y": 3,
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"w": 79,
|
"spriteSourceSize": { "x": 0, "y": 1, "w": 81, "h": 78 },
|
||||||
"h": 76
|
"frame": { "x": 80, "y": 0, "w": 81, "h": 78 }
|
||||||
},
|
},
|
||||||
"frame": {
|
{
|
||||||
"x": 158,
|
"filename": "0011.png",
|
||||||
"y": 0,
|
"rotated": false,
|
||||||
"w": 79,
|
"trimmed": true,
|
||||||
"h": 76
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
}
|
"spriteSourceSize": { "x": 0, "y": 1, "w": 81, "h": 78 },
|
||||||
},
|
"frame": { "x": 80, "y": 0, "w": 81, "h": 78 }
|
||||||
{
|
},
|
||||||
"filename": "0011.png",
|
{
|
||||||
"rotated": false,
|
"filename": "0012.png",
|
||||||
"trimmed": true,
|
"rotated": false,
|
||||||
"sourceSize": {
|
"trimmed": true,
|
||||||
"w": 79,
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"h": 79
|
"spriteSourceSize": { "x": 0, "y": 1, "w": 81, "h": 78 },
|
||||||
},
|
"frame": { "x": 80, "y": 0, "w": 81, "h": 78 }
|
||||||
"spriteSourceSize": {
|
},
|
||||||
"x": 0,
|
{
|
||||||
"y": 3,
|
"filename": "0013.png",
|
||||||
"w": 79,
|
"rotated": false,
|
||||||
"h": 76
|
"trimmed": true,
|
||||||
},
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"frame": {
|
"spriteSourceSize": { "x": 0, "y": 0, "w": 80, "h": 79 },
|
||||||
"x": 158,
|
"frame": { "x": 0, "y": 0, "w": 80, "h": 79 }
|
||||||
"y": 0,
|
},
|
||||||
"w": 79,
|
{
|
||||||
"h": 76
|
"filename": "0014.png",
|
||||||
}
|
"rotated": false,
|
||||||
},
|
"trimmed": true,
|
||||||
{
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"filename": "0004.png",
|
"spriteSourceSize": { "x": 0, "y": 0, "w": 80, "h": 79 },
|
||||||
"rotated": false,
|
"frame": { "x": 0, "y": 0, "w": 80, "h": 79 }
|
||||||
"trimmed": true,
|
},
|
||||||
"sourceSize": {
|
{
|
||||||
"w": 79,
|
"filename": "0015.png",
|
||||||
"h": 79
|
"rotated": false,
|
||||||
},
|
"trimmed": true,
|
||||||
"spriteSourceSize": {
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"x": 0,
|
"spriteSourceSize": { "x": 0, "y": 0, "w": 80, "h": 79 },
|
||||||
"y": 4,
|
"frame": { "x": 0, "y": 0, "w": 80, "h": 79 }
|
||||||
"w": 79,
|
},
|
||||||
"h": 75
|
{
|
||||||
},
|
"filename": "0016.png",
|
||||||
"frame": {
|
"rotated": false,
|
||||||
"x": 158,
|
"trimmed": true,
|
||||||
"y": 76,
|
"sourceSize": { "w": 81, "h": 79 },
|
||||||
"w": 79,
|
"spriteSourceSize": { "x": 0, "y": 0, "w": 80, "h": 79 },
|
||||||
"h": 75
|
"frame": { "x": 0, "y": 0, "w": 80, "h": 79 }
|
||||||
}
|
}
|
||||||
},
|
]}],
|
||||||
{
|
"meta": {"app": "https://www.aseprite.org/","version": "1.3.7-x64"
|
||||||
"filename": "0010.png",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": true,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 79,
|
|
||||||
"h": 79
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 4,
|
|
||||||
"w": 79,
|
|
||||||
"h": 75
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 158,
|
|
||||||
"y": 76,
|
|
||||||
"w": 79,
|
|
||||||
"h": 75
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "0005.png",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": true,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 79,
|
|
||||||
"h": 79
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 5,
|
|
||||||
"w": 79,
|
|
||||||
"h": 74
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 79,
|
|
||||||
"y": 78,
|
|
||||||
"w": 79,
|
|
||||||
"h": 74
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "0009.png",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": true,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 79,
|
|
||||||
"h": 79
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 5,
|
|
||||||
"w": 79,
|
|
||||||
"h": 74
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 79,
|
|
||||||
"y": 78,
|
|
||||||
"w": 79,
|
|
||||||
"h": 74
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "0006.png",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": true,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 79,
|
|
||||||
"h": 79
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 6,
|
|
||||||
"w": 79,
|
|
||||||
"h": 73
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 79,
|
|
||||||
"w": 79,
|
|
||||||
"h": 73
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "0008.png",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": true,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 79,
|
|
||||||
"h": 79
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 6,
|
|
||||||
"w": 79,
|
|
||||||
"h": 73
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 79,
|
|
||||||
"w": 79,
|
|
||||||
"h": 73
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename": "0007.png",
|
|
||||||
"rotated": false,
|
|
||||||
"trimmed": true,
|
|
||||||
"sourceSize": {
|
|
||||||
"w": 79,
|
|
||||||
"h": 79
|
|
||||||
},
|
|
||||||
"spriteSourceSize": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 7,
|
|
||||||
"w": 79,
|
|
||||||
"h": 72
|
|
||||||
},
|
|
||||||
"frame": {
|
|
||||||
"x": 158,
|
|
||||||
"y": 151,
|
|
||||||
"w": 79,
|
|
||||||
"h": 72
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"meta": {
|
|
||||||
"app": "https://www.codeandweb.com/texturepacker",
|
|
||||||
"version": "3.0",
|
|
||||||
"smartupdate": "$TexturePacker:SmartUpdate:83b74b0673ef1ae8346efab60ae89872:f76c930177bf7a296d3f47eb6294ae4f:c8a3fc07f857e38a4f887e43523aab92$"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 303 B After Width: | Height: | Size: 303 B |
Before Width: | Height: | Size: 342 B After Width: | Height: | Size: 342 B |
BIN
public/images/pokemon/icons/9/1012-artisan.png
Normal file
After Width: | Height: | Size: 353 B |
BIN
public/images/pokemon/icons/9/1012s-artisan.png
Normal file
After Width: | Height: | Size: 359 B |
BIN
public/images/pokemon/icons/9/1013-masterpiece.png
Normal file
After Width: | Height: | Size: 346 B |
BIN
public/images/pokemon/icons/9/1013s-masterpiece.png
Normal file
After Width: | Height: | Size: 352 B |
Before Width: | Height: | Size: 846 B After Width: | Height: | Size: 846 B |
Before Width: | Height: | Size: 938 B After Width: | Height: | Size: 938 B |
Before Width: | Height: | Size: 510 B After Width: | Height: | Size: 510 B |
Before Width: | Height: | Size: 513 B After Width: | Height: | Size: 513 B |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 541 B After Width: | Height: | Size: 541 B |
Before Width: | Height: | Size: 557 B After Width: | Height: | Size: 557 B |
BIN
public/images/pokemon/icons/variant/7/778-busted_2.png
Normal file
After Width: | Height: | Size: 471 B |
BIN
public/images/pokemon/icons/variant/7/778-busted_3.png
Normal file
After Width: | Height: | Size: 482 B |
Before Width: | Height: | Size: 697 B After Width: | Height: | Size: 697 B |
Before Width: | Height: | Size: 661 B After Width: | Height: | Size: 661 B |
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 63 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
41
public/images/trainer/aqua_admin_f.json
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"textures": [
|
||||||
|
{
|
||||||
|
"image": "aqua_admin_f.png",
|
||||||
|
"format": "RGBA8888",
|
||||||
|
"size": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"scale": 1,
|
||||||
|
"frames": [
|
||||||
|
{
|
||||||
|
"filename": "0001.png",
|
||||||
|
"rotated": false,
|
||||||
|
"trimmed": false,
|
||||||
|
"sourceSize": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"spriteSourceSize": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"frame": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"meta": {
|
||||||
|
"app": "https://www.codeandweb.com/texturepacker",
|
||||||
|
"version": "3.0",
|
||||||
|
"smartupdate": "$TexturePacker:SmartUpdate:efd07ff3ed1e610150a4b8ca18974343:d9b85b9eb11182e9e4669e2bd8b08694:72b7b50231708a9486d5f315824e4df1$"
|
||||||
|
}
|
||||||
|
}
|
BIN
public/images/trainer/aqua_admin_f.png
Normal file
After Width: | Height: | Size: 865 B |
41
public/images/trainer/aqua_admin_m.json
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"textures": [
|
||||||
|
{
|
||||||
|
"image": "aqua_admin_m.png",
|
||||||
|
"format": "RGBA8888",
|
||||||
|
"size": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"scale": 1,
|
||||||
|
"frames": [
|
||||||
|
{
|
||||||
|
"filename": "0001.png",
|
||||||
|
"rotated": false,
|
||||||
|
"trimmed": false,
|
||||||
|
"sourceSize": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"spriteSourceSize": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"frame": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"meta": {
|
||||||
|
"app": "https://www.codeandweb.com/texturepacker",
|
||||||
|
"version": "3.0",
|
||||||
|
"smartupdate": "$TexturePacker:SmartUpdate:831f5748dad92911b10a1cb358ee2dae:a3bf81bbaa3b49cad5e0e549cf94563b:bb6befc9383c9c08837183ae2a7a80c1$"
|
||||||
|
}
|
||||||
|
}
|
BIN
public/images/trainer/aqua_admin_m.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
41
public/images/trainer/flare_admin_f.json
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"textures": [
|
||||||
|
{
|
||||||
|
"image": "flare_admin_f.png",
|
||||||
|
"format": "RGBA8888",
|
||||||
|
"size": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"scale": 1,
|
||||||
|
"frames": [
|
||||||
|
{
|
||||||
|
"filename": "0001.png",
|
||||||
|
"rotated": false,
|
||||||
|
"trimmed": false,
|
||||||
|
"sourceSize": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"spriteSourceSize": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"frame": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"meta": {
|
||||||
|
"app": "https://www.codeandweb.com/texturepacker",
|
||||||
|
"version": "3.0",
|
||||||
|
"smartupdate": "$TexturePacker:SmartUpdate:831f5748dad92911b10a1cb358ee2dae:a3bf81bbaa3b49cad5e0e549cf94563b:bb6befc9383c9c08837183ae2a7a80c1$"
|
||||||
|
}
|
||||||
|
}
|
BIN
public/images/trainer/flare_admin_f.png
Normal file
After Width: | Height: | Size: 671 B |
41
public/images/trainer/flare_admin_m.json
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"textures": [
|
||||||
|
{
|
||||||
|
"image": "flare_admin_m.png",
|
||||||
|
"format": "RGBA8888",
|
||||||
|
"size": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"scale": 1,
|
||||||
|
"frames": [
|
||||||
|
{
|
||||||
|
"filename": "0001.png",
|
||||||
|
"rotated": false,
|
||||||
|
"trimmed": false,
|
||||||
|
"sourceSize": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"spriteSourceSize": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"frame": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"meta": {
|
||||||
|
"app": "https://www.codeandweb.com/texturepacker",
|
||||||
|
"version": "3.0",
|
||||||
|
"smartupdate": "$TexturePacker:SmartUpdate:c30bf82452209a923f4becf13d275a9a:a6355b09f92c9c0388d0b919010f587f:0638dbf213f8a974eb5af76eb1e5ddeb$"
|
||||||
|
}
|
||||||
|
}
|
BIN
public/images/trainer/flare_admin_m.png
Normal file
After Width: | Height: | Size: 789 B |
41
public/images/trainer/galactic_admin_f.json
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"textures": [
|
||||||
|
{
|
||||||
|
"image": "galactic_admin_f.png",
|
||||||
|
"format": "RGBA8888",
|
||||||
|
"size": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"scale": 1,
|
||||||
|
"frames": [
|
||||||
|
{
|
||||||
|
"filename": "0001.png",
|
||||||
|
"rotated": false,
|
||||||
|
"trimmed": false,
|
||||||
|
"sourceSize": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"spriteSourceSize": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"frame": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"meta": {
|
||||||
|
"app": "https://www.codeandweb.com/texturepacker",
|
||||||
|
"version": "3.0",
|
||||||
|
"smartupdate": "$TexturePacker:SmartUpdate:831f5748dad92911b10a1cb358ee2dae:a3bf81bbaa3b49cad5e0e549cf94563b:bb6befc9383c9c08837183ae2a7a80c1$"
|
||||||
|
}
|
||||||
|
}
|
BIN
public/images/trainer/galactic_admin_f.png
Normal file
After Width: | Height: | Size: 621 B |
41
public/images/trainer/galactic_admin_m.json
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"textures": [
|
||||||
|
{
|
||||||
|
"image": "galactic_admin_m.png",
|
||||||
|
"format": "RGBA8888",
|
||||||
|
"size": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"scale": 1,
|
||||||
|
"frames": [
|
||||||
|
{
|
||||||
|
"filename": "0001.png",
|
||||||
|
"rotated": false,
|
||||||
|
"trimmed": false,
|
||||||
|
"sourceSize": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"spriteSourceSize": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"frame": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"meta": {
|
||||||
|
"app": "https://www.codeandweb.com/texturepacker",
|
||||||
|
"version": "3.0",
|
||||||
|
"smartupdate": "$TexturePacker:SmartUpdate:3012867f03f02c4ee67a8ab3ad5a000e:77a5f60f1adc158664b3b2ee17bf30fe:7e8259b5177c0a76e5d02d6bdc66affe$"
|
||||||
|
}
|
||||||
|
}
|
BIN
public/images/trainer/galactic_admin_m.png
Normal file
After Width: | Height: | Size: 689 B |
41
public/images/trainer/magma_admin_f.json
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"textures": [
|
||||||
|
{
|
||||||
|
"image": "magma_admin_f.png",
|
||||||
|
"format": "RGBA8888",
|
||||||
|
"size": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"scale": 1,
|
||||||
|
"frames": [
|
||||||
|
{
|
||||||
|
"filename": "0001.png",
|
||||||
|
"rotated": false,
|
||||||
|
"trimmed": false,
|
||||||
|
"sourceSize": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"spriteSourceSize": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"frame": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"meta": {
|
||||||
|
"app": "https://www.codeandweb.com/texturepacker",
|
||||||
|
"version": "3.0",
|
||||||
|
"smartupdate": "$TexturePacker:SmartUpdate:831f5748dad92911b10a1cb358ee2dae:a3bf81bbaa3b49cad5e0e549cf94563b:bb6befc9383c9c08837183ae2a7a80c1$"
|
||||||
|
}
|
||||||
|
}
|
BIN
public/images/trainer/magma_admin_f.png
Normal file
After Width: | Height: | Size: 847 B |
41
public/images/trainer/magma_admin_m.json
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"textures": [
|
||||||
|
{
|
||||||
|
"image": "magma_admin_m.png",
|
||||||
|
"format": "RGBA8888",
|
||||||
|
"size": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"scale": 1,
|
||||||
|
"frames": [
|
||||||
|
{
|
||||||
|
"filename": "0001.png",
|
||||||
|
"rotated": false,
|
||||||
|
"trimmed": true,
|
||||||
|
"sourceSize": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"spriteSourceSize": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"frame": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"meta": {
|
||||||
|
"app": "https://www.codeandweb.com/texturepacker",
|
||||||
|
"version": "3.0",
|
||||||
|
"smartupdate": "$TexturePacker:SmartUpdate:f63ad48affc076f60fae78992c96a2bf:80928b32710abcb28c07c6fc5a425d99:3b961d8852b62aaf24ceb2030c036515$"
|
||||||
|
}
|
||||||
|
}
|
BIN
public/images/trainer/magma_admin_m.png
Normal file
After Width: | Height: | Size: 845 B |
2120
public/images/trainer/plasma_sage.json
Normal file
BIN
public/images/trainer/plasma_sage.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
41
public/images/trainer/rocket_admin_f.json
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"textures": [
|
||||||
|
{
|
||||||
|
"image": "rocket_admin_f.png",
|
||||||
|
"format": "RGBA8888",
|
||||||
|
"size": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"scale": 1,
|
||||||
|
"frames": [
|
||||||
|
{
|
||||||
|
"filename": "0001.png",
|
||||||
|
"rotated": false,
|
||||||
|
"trimmed": false,
|
||||||
|
"sourceSize": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"spriteSourceSize": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"frame": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"meta": {
|
||||||
|
"app": "https://www.codeandweb.com/texturepacker",
|
||||||
|
"version": "3.0",
|
||||||
|
"smartupdate": "$TexturePacker:SmartUpdate:831f5748dad92911b10a1cb358ee2dae:a3bf81bbaa3b49cad5e0e549cf94563b:bb6befc9383c9c08837183ae2a7a80c1$"
|
||||||
|
}
|
||||||
|
}
|
BIN
public/images/trainer/rocket_admin_f.png
Normal file
After Width: | Height: | Size: 736 B |
41
public/images/trainer/rocket_admin_m.json
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"textures": [
|
||||||
|
{
|
||||||
|
"image": "rocket_admin_m.png",
|
||||||
|
"format": "RGBA8888",
|
||||||
|
"size": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"scale": 1,
|
||||||
|
"frames": [
|
||||||
|
{
|
||||||
|
"filename": "0001.png",
|
||||||
|
"rotated": false,
|
||||||
|
"trimmed": false,
|
||||||
|
"sourceSize": {
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"spriteSourceSize": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
},
|
||||||
|
"frame": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": 80,
|
||||||
|
"h": 80
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"meta": {
|
||||||
|
"app": "https://www.codeandweb.com/texturepacker",
|
||||||
|
"version": "3.0",
|
||||||
|
"smartupdate": "$TexturePacker:SmartUpdate:831f5748dad92911b10a1cb358ee2dae:a3bf81bbaa3b49cad5e0e549cf94563b:bb6befc9383c9c08837183ae2a7a80c1$"
|
||||||
|
}
|
||||||
|
}
|
BIN
public/images/trainer/rocket_admin_m.png
Normal file
After Width: | Height: | Size: 645 B |
@ -1792,8 +1792,10 @@ export default class BattleScene extends SceneBase {
|
|||||||
return 13.950;
|
return 13.950;
|
||||||
case "battle_johto_champion": //B2W2 Johto Champion Battle
|
case "battle_johto_champion": //B2W2 Johto Champion Battle
|
||||||
return 23.498;
|
return 23.498;
|
||||||
case "battle_hoenn_champion": //B2W2 Hoenn Champion Battle
|
case "battle_hoenn_champion_g5": //B2W2 Hoenn Champion Battle
|
||||||
return 11.328;
|
return 11.328;
|
||||||
|
case "battle_hoenn_champion_g6": //ORAS Hoenn Champion Battle
|
||||||
|
return 11.762;
|
||||||
case "battle_sinnoh_champion": //B2W2 Sinnoh Champion Battle
|
case "battle_sinnoh_champion": //B2W2 Sinnoh Champion Battle
|
||||||
return 12.235;
|
return 12.235;
|
||||||
case "battle_champion_alder": //BW Unova Champion Battle
|
case "battle_champion_alder": //BW Unova Champion Battle
|
||||||
|
@ -425,7 +425,13 @@ export class FixedBattleConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getRandomTrainerFunc(trainerPool: (TrainerType | TrainerType[])[]): GetTrainerFunc {
|
/**
|
||||||
|
* Helper function to generate a random trainer for evil team trainers and the elite 4/champion
|
||||||
|
* @param trainerPool The TrainerType or list of TrainerTypes that can possibly be generated
|
||||||
|
* @param randomGender whether or not to randomly (50%) generate a female trainer (for use with evil team grunts)
|
||||||
|
* @returns the generated trainer
|
||||||
|
*/
|
||||||
|
function getRandomTrainerFunc(trainerPool: (TrainerType | TrainerType[])[], randomGender: boolean = false): GetTrainerFunc {
|
||||||
return (scene: BattleScene) => {
|
return (scene: BattleScene) => {
|
||||||
const rand = Utils.randSeedInt(trainerPool.length);
|
const rand = Utils.randSeedInt(trainerPool.length);
|
||||||
const trainerTypes: TrainerType[] = [];
|
const trainerTypes: TrainerType[] = [];
|
||||||
@ -435,11 +441,20 @@ function getRandomTrainerFunc(trainerPool: (TrainerType | TrainerType[])[]): Get
|
|||||||
: trainerPoolEntry;
|
: trainerPoolEntry;
|
||||||
trainerTypes.push(trainerType);
|
trainerTypes.push(trainerType);
|
||||||
}
|
}
|
||||||
// If the trainer type has a double variant, there's a 33% chance of it being a double battle (for now we only allow tate&liza to be double)
|
let trainerGender = TrainerVariant.DEFAULT;
|
||||||
if (trainerConfigs[trainerTypes[rand]].trainerTypeDouble && (trainerTypes[rand] === TrainerType.TATE || trainerTypes[rand] === TrainerType.LIZA)) {
|
if (randomGender) {
|
||||||
return new Trainer(scene, trainerTypes[rand], Utils.randSeedInt(3) ? TrainerVariant.DOUBLE : TrainerVariant.DEFAULT);
|
trainerGender = (Utils.randInt(2) === 0) ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT;
|
||||||
}
|
}
|
||||||
return new Trainer(scene, trainerTypes[rand], TrainerVariant.DEFAULT);
|
|
||||||
|
/* 1/3 chance for evil team grunts to be double battles */
|
||||||
|
const evilTeamGrunts = [TrainerType.ROCKET_GRUNT, TrainerType.MAGMA_GRUNT, TrainerType.AQUA_GRUNT, TrainerType.GALACTIC_GRUNT, TrainerType.PLASMA_GRUNT, TrainerType.FLARE_GRUNT];
|
||||||
|
const isEvilTeamGrunt = evilTeamGrunts.includes(trainerTypes[rand]);
|
||||||
|
|
||||||
|
if (trainerConfigs[trainerTypes[rand]].hasDouble && isEvilTeamGrunt) {
|
||||||
|
return new Trainer(scene, trainerTypes[rand], (Utils.randInt(3) === 0) ? TrainerVariant.DOUBLE : trainerGender);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Trainer(scene, trainerTypes[rand], trainerGender);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -449,7 +464,8 @@ export interface FixedBattleConfigs {
|
|||||||
/**
|
/**
|
||||||
* Youngster/Lass on 5
|
* Youngster/Lass on 5
|
||||||
* Rival on 8, 55, 95, 145, 195
|
* Rival on 8, 55, 95, 145, 195
|
||||||
* Evil team grunts on 35, 62, 64, 66, 112, 114
|
* Evil team grunts on 35, 62, 64, and 112
|
||||||
|
* Evil team admin on 66 and 114
|
||||||
* Evil leader on 115, 165
|
* Evil leader on 115, 165
|
||||||
* E4 on 182, 184, 186, 188
|
* E4 on 182, 184, 186, 188
|
||||||
* Champion on 190
|
* Champion on 190
|
||||||
@ -462,21 +478,21 @@ export const classicFixedBattles: FixedBattleConfigs = {
|
|||||||
[25]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
|
[25]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
|
||||||
.setGetTrainerFunc(scene => new Trainer(scene, TrainerType.RIVAL_2, scene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT)),
|
.setGetTrainerFunc(scene => new Trainer(scene, TrainerType.RIVAL_2, scene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT)),
|
||||||
[35]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
|
[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 ])),
|
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_GRUNT, TrainerType.MAGMA_GRUNT, TrainerType.AQUA_GRUNT, TrainerType.GALACTIC_GRUNT, TrainerType.PLASMA_GRUNT, TrainerType.FLARE_GRUNT ], true)),
|
||||||
[55]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
|
[55]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
|
||||||
.setGetTrainerFunc(scene => new Trainer(scene, TrainerType.RIVAL_3, scene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT)),
|
.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)
|
[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 ])),
|
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_GRUNT, TrainerType.MAGMA_GRUNT, TrainerType.AQUA_GRUNT, TrainerType.GALACTIC_GRUNT, TrainerType.PLASMA_GRUNT, TrainerType.FLARE_GRUNT ], true)),
|
||||||
[64]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35)
|
[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 ])),
|
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_GRUNT, TrainerType.MAGMA_GRUNT, TrainerType.AQUA_GRUNT, TrainerType.GALACTIC_GRUNT, TrainerType.PLASMA_GRUNT, TrainerType.FLARE_GRUNT ], true)),
|
||||||
[66]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35)
|
[66]: 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 ])),
|
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_ADMIN, TrainerType.MAGMA_ADMIN, TrainerType.AQUA_ADMIN, TrainerType.GALACTIC_ADMIN, TrainerType.PLASMA_SAGE, TrainerType.FLARE_ADMIN ], true)),
|
||||||
[95]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
|
[95]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
|
||||||
.setGetTrainerFunc(scene => new Trainer(scene, TrainerType.RIVAL_4, scene.gameData.gender === PlayerGender.MALE ? TrainerVariant.FEMALE : TrainerVariant.DEFAULT)),
|
.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)
|
[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 ])),
|
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_GRUNT, TrainerType.MAGMA_GRUNT, TrainerType.AQUA_GRUNT, TrainerType.GALACTIC_GRUNT, TrainerType.PLASMA_GRUNT, TrainerType.FLARE_GRUNT ], true)),
|
||||||
[114]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35)
|
[114]: 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 ])),
|
.setGetTrainerFunc(getRandomTrainerFunc([ TrainerType.ROCKET_ADMIN, TrainerType.MAGMA_ADMIN, TrainerType.AQUA_ADMIN, TrainerType.GALACTIC_ADMIN, TrainerType.PLASMA_SAGE, TrainerType.FLARE_ADMIN ], true)),
|
||||||
[115]: new FixedBattleConfig().setBattleType(BattleType.TRAINER).setSeedOffsetWave(35)
|
[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 ])),
|
||||||
[145]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
|
[145]: new FixedBattleConfig().setBattleType(BattleType.TRAINER)
|
||||||
|
@ -941,14 +941,19 @@ export class PostDefendPerishSongAbAttr extends PostDefendAbAttr {
|
|||||||
|
|
||||||
export class PostDefendWeatherChangeAbAttr extends PostDefendAbAttr {
|
export class PostDefendWeatherChangeAbAttr extends PostDefendAbAttr {
|
||||||
private weatherType: WeatherType;
|
private weatherType: WeatherType;
|
||||||
|
protected condition: PokemonDefendCondition | null;
|
||||||
|
|
||||||
constructor(weatherType: WeatherType) {
|
constructor(weatherType: WeatherType, condition?: PokemonDefendCondition) {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
this.weatherType = weatherType;
|
this.weatherType = weatherType;
|
||||||
|
this.condition = condition ?? null;
|
||||||
}
|
}
|
||||||
|
|
||||||
applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: Move, hitResult: HitResult, args: any[]): boolean {
|
applyPostDefend(pokemon: Pokemon, passive: boolean, attacker: Pokemon, move: Move, hitResult: HitResult, args: any[]): boolean {
|
||||||
|
if (this.condition !== null && !this.condition(pokemon, attacker, move)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (!pokemon.scene.arena.weather?.isImmutable()) {
|
if (!pokemon.scene.arena.weather?.isImmutable()) {
|
||||||
return pokemon.scene.arena.trySetWeather(this.weatherType, true);
|
return pokemon.scene.arena.trySetWeather(this.weatherType, true);
|
||||||
}
|
}
|
||||||
@ -5092,7 +5097,7 @@ export function initAbilities() {
|
|||||||
.attr(ReceivedMoveDamageMultiplierAbAttr, (target, user, move) => move.hasFlag(MoveFlags.SOUND_BASED), 0.5)
|
.attr(ReceivedMoveDamageMultiplierAbAttr, (target, user, move) => move.hasFlag(MoveFlags.SOUND_BASED), 0.5)
|
||||||
.ignorable(),
|
.ignorable(),
|
||||||
new Ability(Abilities.SAND_SPIT, 8)
|
new Ability(Abilities.SAND_SPIT, 8)
|
||||||
.attr(PostDefendWeatherChangeAbAttr, WeatherType.SANDSTORM),
|
.attr(PostDefendWeatherChangeAbAttr, WeatherType.SANDSTORM, (target, user, move) => move.category !== MoveCategory.STATUS),
|
||||||
new Ability(Abilities.ICE_SCALES, 8)
|
new Ability(Abilities.ICE_SCALES, 8)
|
||||||
.attr(ReceivedMoveDamageMultiplierAbAttr, (target, user, move) => move.category === MoveCategory.SPECIAL, 0.5)
|
.attr(ReceivedMoveDamageMultiplierAbAttr, (target, user, move) => move.category === MoveCategory.SPECIAL, 0.5)
|
||||||
.ignorable(),
|
.ignorable(),
|
||||||
|
@ -1747,7 +1747,7 @@ export function getBattlerTag(tagType: BattlerTagType, turnCount: number, source
|
|||||||
case BattlerTagType.RECEIVE_DOUBLE_DAMAGE:
|
case BattlerTagType.RECEIVE_DOUBLE_DAMAGE:
|
||||||
return new BattlerTag(tagType, BattlerTagLapseType.PRE_MOVE, 1, sourceMove);
|
return new BattlerTag(tagType, BattlerTagLapseType.PRE_MOVE, 1, sourceMove);
|
||||||
case BattlerTagType.BYPASS_SLEEP:
|
case BattlerTagType.BYPASS_SLEEP:
|
||||||
return new BattlerTag(BattlerTagType.BYPASS_SLEEP, BattlerTagLapseType.TURN_END, turnCount, sourceMove);
|
return new BattlerTag(tagType, BattlerTagLapseType.TURN_END, turnCount, sourceMove);
|
||||||
case BattlerTagType.IGNORE_FLYING:
|
case BattlerTagType.IGNORE_FLYING:
|
||||||
return new GroundedTag(tagType, BattlerTagLapseType.CUSTOM, sourceMove);
|
return new GroundedTag(tagType, BattlerTagLapseType.CUSTOM, sourceMove);
|
||||||
case BattlerTagType.ROOSTED:
|
case BattlerTagType.ROOSTED:
|
||||||
|
@ -406,14 +406,7 @@ export class SingleGenerationChallenge extends Challenge {
|
|||||||
}
|
}
|
||||||
|
|
||||||
applyStarterChoice(pokemon: PokemonSpecies, valid: Utils.BooleanHolder, dexAttr: DexAttrProps, soft: boolean = false, checkEvolutions?: boolean): boolean {
|
applyStarterChoice(pokemon: PokemonSpecies, valid: Utils.BooleanHolder, dexAttr: DexAttrProps, soft: boolean = false, checkEvolutions?: boolean): boolean {
|
||||||
/**
|
const generations = [pokemon.generation];
|
||||||
* We have special code below for victini because it is classed as a generation 4 pokemon in the code
|
|
||||||
* despite being a generation 5 pokemon. This is due to UI constraints, the starter select screen has
|
|
||||||
* no more room for pokemon so victini is put in the gen 4 section instead. This code just overrides the
|
|
||||||
* normal generation check to correctly treat victini as gen 5.
|
|
||||||
*/
|
|
||||||
const starterGeneration = pokemon.speciesId === Species.VICTINI ? 5 : pokemon.generation;
|
|
||||||
const generations = [starterGeneration];
|
|
||||||
const checkPokemonEvolutions = checkEvolutions ?? true as boolean;
|
const checkPokemonEvolutions = checkEvolutions ?? true as boolean;
|
||||||
if (soft) {
|
if (soft) {
|
||||||
const speciesToCheck = [pokemon.speciesId];
|
const speciesToCheck = [pokemon.speciesId];
|
||||||
|
@ -459,6 +459,20 @@ export const trainerTypeDialogue: TrainerTypeDialogue = {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
[TrainerType.ROCKET_ADMIN]: [
|
||||||
|
{
|
||||||
|
encounter: [
|
||||||
|
"dialogue:rocket_admin.encounter.1",
|
||||||
|
"dialogue:rocket_admin.encounter.2",
|
||||||
|
"dialogue:rocket_admin.encounter.3",
|
||||||
|
],
|
||||||
|
victory: [
|
||||||
|
"dialogue:rocket_admin.victory.1",
|
||||||
|
"dialogue:rocket_admin.victory.2",
|
||||||
|
"dialogue:rocket_admin.victory.3",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
[TrainerType.MAGMA_GRUNT]: [
|
[TrainerType.MAGMA_GRUNT]: [
|
||||||
{
|
{
|
||||||
encounter: [
|
encounter: [
|
||||||
@ -469,6 +483,20 @@ export const trainerTypeDialogue: TrainerTypeDialogue = {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
[TrainerType.MAGMA_ADMIN]: [
|
||||||
|
{
|
||||||
|
encounter: [
|
||||||
|
"dialogue:magma_admin.encounter.1",
|
||||||
|
"dialogue:magma_admin.encounter.2",
|
||||||
|
"dialogue:magma_admin.encounter.3",
|
||||||
|
],
|
||||||
|
victory: [
|
||||||
|
"dialogue:magma_admin.victory.1",
|
||||||
|
"dialogue:magma_admin.victory.2",
|
||||||
|
"dialogue:magma_admin.victory.3",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
[TrainerType.AQUA_GRUNT]: [
|
[TrainerType.AQUA_GRUNT]: [
|
||||||
{
|
{
|
||||||
encounter: [
|
encounter: [
|
||||||
@ -479,6 +507,20 @@ export const trainerTypeDialogue: TrainerTypeDialogue = {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
[TrainerType.AQUA_ADMIN]: [
|
||||||
|
{
|
||||||
|
encounter: [
|
||||||
|
"dialogue:aqua_admin.encounter.1",
|
||||||
|
"dialogue:aqua_admin.encounter.2",
|
||||||
|
"dialogue:aqua_admin.encounter.3",
|
||||||
|
],
|
||||||
|
victory: [
|
||||||
|
"dialogue:aqua_admin.victory.1",
|
||||||
|
"dialogue:aqua_admin.victory.2",
|
||||||
|
"dialogue:aqua_admin.victory.3",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
[TrainerType.GALACTIC_GRUNT]: [
|
[TrainerType.GALACTIC_GRUNT]: [
|
||||||
{
|
{
|
||||||
encounter: [
|
encounter: [
|
||||||
@ -489,6 +531,20 @@ export const trainerTypeDialogue: TrainerTypeDialogue = {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
[TrainerType.GALACTIC_ADMIN]: [
|
||||||
|
{
|
||||||
|
encounter: [
|
||||||
|
"dialogue:galactic_admin.encounter.1",
|
||||||
|
"dialogue:galactic_admin.encounter.2",
|
||||||
|
"dialogue:galactic_admin.encounter.3",
|
||||||
|
],
|
||||||
|
victory: [
|
||||||
|
"dialogue:galactic_admin.victory.1",
|
||||||
|
"dialogue:galactic_admin.victory.2",
|
||||||
|
"dialogue:galactic_admin.victory.3",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
[TrainerType.PLASMA_GRUNT]: [
|
[TrainerType.PLASMA_GRUNT]: [
|
||||||
{
|
{
|
||||||
encounter: [
|
encounter: [
|
||||||
@ -499,6 +555,20 @@ export const trainerTypeDialogue: TrainerTypeDialogue = {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
[TrainerType.PLASMA_SAGE]: [
|
||||||
|
{
|
||||||
|
encounter: [
|
||||||
|
"dialogue:plasma_sage.encounter.1",
|
||||||
|
"dialogue:plasma_sage.encounter.2",
|
||||||
|
"dialogue:plasma_sage.encounter.3",
|
||||||
|
],
|
||||||
|
victory: [
|
||||||
|
"dialogue:plasma_sage.victory.1",
|
||||||
|
"dialogue:plasma_sage.victory.2",
|
||||||
|
"dialogue:plasma_sage.victory.3",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
[TrainerType.FLARE_GRUNT]: [
|
[TrainerType.FLARE_GRUNT]: [
|
||||||
{
|
{
|
||||||
encounter: [
|
encounter: [
|
||||||
@ -509,6 +579,20 @@ export const trainerTypeDialogue: TrainerTypeDialogue = {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
[TrainerType.FLARE_ADMIN]: [
|
||||||
|
{
|
||||||
|
encounter: [
|
||||||
|
"dialogue:flare_admin.encounter.1",
|
||||||
|
"dialogue:flare_admin.encounter.2",
|
||||||
|
"dialogue:flare_admin.encounter.3",
|
||||||
|
],
|
||||||
|
victory: [
|
||||||
|
"dialogue:flare_admin.victory.1",
|
||||||
|
"dialogue:flare_admin.victory.2",
|
||||||
|
"dialogue:flare_admin.victory.3",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
[TrainerType.ROCKET_BOSS_GIOVANNI_1]: [
|
[TrainerType.ROCKET_BOSS_GIOVANNI_1]: [
|
||||||
{
|
{
|
||||||
encounter: [
|
encounter: [
|
||||||
|
@ -438,7 +438,7 @@ export const speciesEggMoves = {
|
|||||||
[Species.CHEWTLE]: [ Moves.FIRE_FANG, Moves.ACCELEROCK, Moves.SHELL_SMASH, Moves.FISHIOUS_REND ],
|
[Species.CHEWTLE]: [ Moves.FIRE_FANG, Moves.ACCELEROCK, Moves.SHELL_SMASH, Moves.FISHIOUS_REND ],
|
||||||
[Species.YAMPER]: [ Moves.ICE_FANG, Moves.SWORDS_DANCE, Moves.THUNDER_FANG, Moves.ZIPPY_ZAP ],
|
[Species.YAMPER]: [ Moves.ICE_FANG, Moves.SWORDS_DANCE, Moves.THUNDER_FANG, Moves.ZIPPY_ZAP ],
|
||||||
[Species.ROLYCOLY]: [ Moves.BITTER_BLADE, Moves.BODY_PRESS, Moves.BULK_UP, Moves.DIAMOND_STORM ],
|
[Species.ROLYCOLY]: [ Moves.BITTER_BLADE, Moves.BODY_PRESS, Moves.BULK_UP, Moves.DIAMOND_STORM ],
|
||||||
[Species.APPLIN]: [ Moves.DRAGON_CHEER, Moves.DRAGON_HAMMER, Moves.FLOWER_TRICK, Moves.STRENGTH_SAP ],
|
[Species.APPLIN]: [ Moves.MATCHA_GOTCHA, Moves.DRAGON_HAMMER, Moves.FLOWER_TRICK, Moves.STRENGTH_SAP ],
|
||||||
[Species.SILICOBRA]: [ Moves.SHORE_UP, Moves.SHED_TAIL, Moves.STONE_EDGE, Moves.PRECIPICE_BLADES ],
|
[Species.SILICOBRA]: [ Moves.SHORE_UP, Moves.SHED_TAIL, Moves.STONE_EDGE, Moves.PRECIPICE_BLADES ],
|
||||||
[Species.CRAMORANT]: [ Moves.APPLE_ACID, Moves.SURF, Moves.SCORCHING_SANDS, Moves.OBLIVION_WING ],
|
[Species.CRAMORANT]: [ Moves.APPLE_ACID, Moves.SURF, Moves.SCORCHING_SANDS, Moves.OBLIVION_WING ],
|
||||||
[Species.ARROKUDA]: [ Moves.SUPERCELL_SLAM, Moves.KNOCK_OFF, Moves.ICE_SPINNER, Moves.FILLET_AWAY ],
|
[Species.ARROKUDA]: [ Moves.SUPERCELL_SLAM, Moves.KNOCK_OFF, Moves.ICE_SPINNER, Moves.FILLET_AWAY ],
|
||||||
|
@ -2,7 +2,7 @@ import { ChargeAnim, MoveChargeAnim, initMoveAnim, loadMoveAnimAssets } from "./
|
|||||||
import { BattleEndPhase, MoveEndPhase, MovePhase, NewBattlePhase, PartyStatusCurePhase, PokemonHealPhase, StatChangePhase, SwitchSummonPhase } from "../phases";
|
import { BattleEndPhase, MoveEndPhase, MovePhase, NewBattlePhase, PartyStatusCurePhase, PokemonHealPhase, StatChangePhase, SwitchSummonPhase } from "../phases";
|
||||||
import { BattleStat, getBattleStatName } from "./battle-stat";
|
import { BattleStat, getBattleStatName } from "./battle-stat";
|
||||||
import { EncoreTag, HelpingHandTag, SemiInvulnerableTag, StockpilingTag, TypeBoostTag } from "./battler-tags";
|
import { EncoreTag, HelpingHandTag, SemiInvulnerableTag, StockpilingTag, TypeBoostTag } from "./battler-tags";
|
||||||
import { getPokemonMessage, getPokemonNameWithAffix } from "../messages";
|
import { getPokemonNameWithAffix } from "../messages";
|
||||||
import Pokemon, { AttackMoveResult, EnemyPokemon, HitResult, MoveResult, PlayerPokemon, PokemonMove, TurnMove } from "../field/pokemon";
|
import Pokemon, { AttackMoveResult, EnemyPokemon, HitResult, MoveResult, PlayerPokemon, PokemonMove, TurnMove } from "../field/pokemon";
|
||||||
import { StatusEffect, getStatusEffectHealText, isNonVolatileStatusEffect, getNonVolatileStatusEffects} from "./status-effect";
|
import { StatusEffect, getStatusEffectHealText, isNonVolatileStatusEffect, getNonVolatileStatusEffects} from "./status-effect";
|
||||||
import { getTypeResistances, Type } from "./type";
|
import { getTypeResistances, Type } from "./type";
|
||||||
@ -13,10 +13,9 @@ import { ArenaTagSide, ArenaTrapTag, WeakenMoveTypeTag } from "./arena-tag";
|
|||||||
import { UnswappableAbilityAbAttr, UncopiableAbilityAbAttr, UnsuppressableAbilityAbAttr, BlockRecoilDamageAttr, BlockOneHitKOAbAttr, IgnoreContactAbAttr, MaxMultiHitAbAttr, applyAbAttrs, BlockNonDirectDamageAbAttr, applyPreSwitchOutAbAttrs, PreSwitchOutAbAttr, applyPostDefendAbAttrs, PostDefendContactApplyStatusEffectAbAttr, MoveAbilityBypassAbAttr, ReverseDrainAbAttr, FieldPreventExplosiveMovesAbAttr, ForceSwitchOutImmunityAbAttr, BlockItemTheftAbAttr, applyPostAttackAbAttrs, ConfusionOnStatusEffectAbAttr, HealFromBerryUseAbAttr, IgnoreProtectOnContactAbAttr, IgnoreMoveEffectsAbAttr, applyPreDefendAbAttrs, MoveEffectChanceMultiplierAbAttr, WonderSkinAbAttr, applyPreAttackAbAttrs, MoveTypeChangeAttr, UserFieldMoveTypePowerBoostAbAttr, FieldMoveTypePowerBoostAbAttr, AllyMoveCategoryPowerBoostAbAttr, VariableMovePowerAbAttr } from "./ability";
|
import { UnswappableAbilityAbAttr, UncopiableAbilityAbAttr, UnsuppressableAbilityAbAttr, BlockRecoilDamageAttr, BlockOneHitKOAbAttr, IgnoreContactAbAttr, MaxMultiHitAbAttr, applyAbAttrs, BlockNonDirectDamageAbAttr, applyPreSwitchOutAbAttrs, PreSwitchOutAbAttr, applyPostDefendAbAttrs, PostDefendContactApplyStatusEffectAbAttr, MoveAbilityBypassAbAttr, ReverseDrainAbAttr, FieldPreventExplosiveMovesAbAttr, ForceSwitchOutImmunityAbAttr, BlockItemTheftAbAttr, applyPostAttackAbAttrs, ConfusionOnStatusEffectAbAttr, HealFromBerryUseAbAttr, IgnoreProtectOnContactAbAttr, IgnoreMoveEffectsAbAttr, applyPreDefendAbAttrs, MoveEffectChanceMultiplierAbAttr, WonderSkinAbAttr, applyPreAttackAbAttrs, MoveTypeChangeAttr, UserFieldMoveTypePowerBoostAbAttr, FieldMoveTypePowerBoostAbAttr, AllyMoveCategoryPowerBoostAbAttr, VariableMovePowerAbAttr } from "./ability";
|
||||||
import { allAbilities } from "./ability";
|
import { allAbilities } from "./ability";
|
||||||
import { PokemonHeldItemModifier, BerryModifier, PreserveBerryModifier, PokemonMoveAccuracyBoosterModifier, AttackTypeBoosterModifier, PokemonMultiHitModifier } from "../modifier/modifier";
|
import { PokemonHeldItemModifier, BerryModifier, PreserveBerryModifier, PokemonMoveAccuracyBoosterModifier, AttackTypeBoosterModifier, PokemonMultiHitModifier } from "../modifier/modifier";
|
||||||
import { BattlerIndex } from "../battle";
|
import { BattlerIndex, BattleType } from "../battle";
|
||||||
import { Stat } from "./pokemon-stat";
|
import { Stat } from "./pokemon-stat";
|
||||||
import { TerrainType } from "./terrain";
|
import { TerrainType } from "./terrain";
|
||||||
import { SpeciesFormChangeActiveTrigger } from "./pokemon-forms";
|
|
||||||
import { ModifierPoolType } from "#app/modifier/modifier-type";
|
import { ModifierPoolType } from "#app/modifier/modifier-type";
|
||||||
import { Command } from "../ui/command-ui-handler";
|
import { Command } from "../ui/command-ui-handler";
|
||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
@ -1388,7 +1387,7 @@ export class HealAttr extends MoveEffectAttr {
|
|||||||
*/
|
*/
|
||||||
addHealPhase(target: Pokemon, healRatio: number) {
|
addHealPhase(target: Pokemon, healRatio: number) {
|
||||||
target.scene.unshiftPhase(new PokemonHealPhase(target.scene, target.getBattlerIndex(),
|
target.scene.unshiftPhase(new PokemonHealPhase(target.scene, target.getBattlerIndex(),
|
||||||
Math.max(Math.floor(target.getMaxHp() * healRatio), 1), getPokemonMessage(target, " \nhad its HP restored."), true, !this.showAnim));
|
Math.max(Math.floor(target.getMaxHp() * healRatio), 1), i18next.t("moveTriggers:healHp", {pokemonName: getPokemonNameWithAffix(target)}), true, !this.showAnim));
|
||||||
}
|
}
|
||||||
|
|
||||||
getTargetBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer {
|
getTargetBenefitScore(user: Pokemon, target: Pokemon, move: Move): integer {
|
||||||
@ -1482,7 +1481,7 @@ export class SacrificialFullRestoreAttr extends SacrificialAttr {
|
|||||||
const maxPartyMemberHp = user.scene.getParty().map(p => p.getMaxHp()).reduce((maxHp: integer, hp: integer) => Math.max(hp, maxHp), 0);
|
const maxPartyMemberHp = user.scene.getParty().map(p => p.getMaxHp()).reduce((maxHp: integer, hp: integer) => Math.max(hp, maxHp), 0);
|
||||||
|
|
||||||
user.scene.pushPhase(new PokemonHealPhase(user.scene, user.getBattlerIndex(),
|
user.scene.pushPhase(new PokemonHealPhase(user.scene, user.getBattlerIndex(),
|
||||||
maxPartyMemberHp, getPokemonMessage(user, "'s Healing Wish\nwas granted!"), true, false, false, true), true);
|
maxPartyMemberHp, i18next.t("moveTriggers:sacrificialFullRestore", {pokemonName: getPokemonNameWithAffix(user)}), true, false, false, true), true);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1817,13 +1816,10 @@ export class MultiHitAttr extends MoveAttr {
|
|||||||
}
|
}
|
||||||
case MultiHitType._2:
|
case MultiHitType._2:
|
||||||
return 2;
|
return 2;
|
||||||
break;
|
|
||||||
case MultiHitType._3:
|
case MultiHitType._3:
|
||||||
return 3;
|
return 3;
|
||||||
break;
|
|
||||||
case MultiHitType._10:
|
case MultiHitType._10:
|
||||||
return 10;
|
return 10;
|
||||||
break;
|
|
||||||
case MultiHitType.BEAT_UP:
|
case MultiHitType.BEAT_UP:
|
||||||
const party = user.isPlayer() ? user.scene.getParty() : user.scene.getEnemyParty();
|
const party = user.isPlayer() ? user.scene.getParty() : user.scene.getEnemyParty();
|
||||||
// No status means the ally pokemon can contribute to Beat Up
|
// No status means the ally pokemon can contribute to Beat Up
|
||||||
@ -2631,36 +2627,15 @@ export class GrowthStatChangeAttr extends StatChangeAttr {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class HalfHpStatMaxAttr extends StatChangeAttr {
|
|
||||||
constructor(stat: BattleStat) {
|
|
||||||
super(stat, 12, true, null, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): Promise<boolean> {
|
|
||||||
return new Promise<boolean>(resolve => {
|
|
||||||
user.damageAndUpdate(Math.floor(user.getMaxHp() / 2), HitResult.OTHER, false, true);
|
|
||||||
user.updateInfo().then(() => {
|
|
||||||
const ret = super.apply(user, target, move, args);
|
|
||||||
user.scene.queueMessage(i18next.t("moveTriggers:cutOwnHpAndMaximizedStat", {pokemonName: getPokemonNameWithAffix(user), statName: getBattleStatName(this.stats[BattleStat.ATK])}));
|
|
||||||
resolve(ret);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
getCondition(): MoveConditionFunc {
|
|
||||||
return (user, target, move) => user.getHpRatio() > 0.5 && user.summonData.battleStats[this.stats[BattleStat.ATK]] < 6;
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: Add benefit score that considers HP cut
|
|
||||||
}
|
|
||||||
|
|
||||||
export class CutHpStatBoostAttr extends StatChangeAttr {
|
export class CutHpStatBoostAttr extends StatChangeAttr {
|
||||||
private cutRatio: integer;
|
private cutRatio: integer;
|
||||||
|
private messageCallback: ((user: Pokemon) => void) | undefined;
|
||||||
|
|
||||||
constructor(stat: BattleStat | BattleStat[], levels: integer, cutRatio: integer) {
|
constructor(stat: BattleStat | BattleStat[], levels: integer, cutRatio: integer, messageCallback?: ((user: Pokemon) => void) | undefined) {
|
||||||
super(stat, levels, true, null, true);
|
super(stat, levels, true, null, true);
|
||||||
|
|
||||||
this.cutRatio = cutRatio;
|
this.cutRatio = cutRatio;
|
||||||
|
this.messageCallback = messageCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): Promise<boolean> {
|
apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): Promise<boolean> {
|
||||||
@ -2668,13 +2643,16 @@ export class CutHpStatBoostAttr extends StatChangeAttr {
|
|||||||
user.damageAndUpdate(Math.floor(user.getMaxHp() / this.cutRatio), HitResult.OTHER, false, true);
|
user.damageAndUpdate(Math.floor(user.getMaxHp() / this.cutRatio), HitResult.OTHER, false, true);
|
||||||
user.updateInfo().then(() => {
|
user.updateInfo().then(() => {
|
||||||
const ret = super.apply(user, target, move, args);
|
const ret = super.apply(user, target, move, args);
|
||||||
|
if (this.messageCallback) {
|
||||||
|
this.messageCallback(user);
|
||||||
|
}
|
||||||
resolve(ret);
|
resolve(ret);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getCondition(): MoveConditionFunc {
|
getCondition(): MoveConditionFunc {
|
||||||
return (user, target, move) => user.getHpRatio() > 1 / this.cutRatio;
|
return (user, target, move) => user.getHpRatio() > 1 / this.cutRatio && this.stats.some(s => user.summonData.battleStats[s] < 6);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2712,7 +2690,7 @@ export class InvertStatsAttr extends MoveEffectAttr {
|
|||||||
target.updateInfo();
|
target.updateInfo();
|
||||||
user.updateInfo();
|
user.updateInfo();
|
||||||
|
|
||||||
target.scene.queueMessage(getPokemonMessage(target, "'s stat changes\nwere all reversed!"));
|
target.scene.queueMessage(i18next.t("moveTriggers:invertStats", {pokemonName: getPokemonNameWithAffix(target)}));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -2730,7 +2708,7 @@ export class ResetStatsAttr extends MoveEffectAttr {
|
|||||||
target.updateInfo();
|
target.updateInfo();
|
||||||
user.updateInfo();
|
user.updateInfo();
|
||||||
|
|
||||||
target.scene.queueMessage(getPokemonMessage(target, "'s stat changes\nwere eliminated!"));
|
target.scene.queueMessage(i18next.t("moveTriggers:resetStats", {pokemonName: getPokemonNameWithAffix(target)}));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -4138,7 +4116,7 @@ export class DisableMoveAttr extends MoveEffectAttr {
|
|||||||
target.summonData.disabledMove = disabledMove.moveId;
|
target.summonData.disabledMove = disabledMove.moveId;
|
||||||
target.summonData.disabledTurns = 4;
|
target.summonData.disabledTurns = 4;
|
||||||
|
|
||||||
user.scene.queueMessage(getPokemonMessage(target, `'s ${disabledMove.getName()}\nwas disabled!`));
|
user.scene.queueMessage(i18next.t("abilityTriggers:postDefendMoveDisable", { pokemonNameWithAffix: getPokemonNameWithAffix(target), moveName: disabledMove.getName()}));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -4445,7 +4423,7 @@ export class FaintCountdownAttr extends AddBattlerTagAttr {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
user.scene.queueMessage(getPokemonMessage(target, `\nwill faint in ${this.turnCountMin - 1} turns.`));
|
user.scene.queueMessage(i18next.t("moveTriggers:faintCountdown", {pokemonName: getPokemonNameWithAffix(target), turnCount: this.turnCountMin - 1}));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -4685,7 +4663,7 @@ export class SwapArenaTagsAttr extends MoveEffectAttr {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
user.scene.queueMessage( `${getPokemonNameWithAffix(user)} swapped the battle effects affecting each side of the field!`);
|
user.scene.queueMessage( i18next.t("moveTriggers:swapArenaTags", {pokemonName: getPokemonNameWithAffix(user)}));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4780,19 +4758,14 @@ export class ForceSwitchOutAttr extends MoveEffectAttr {
|
|||||||
if (switchOutTarget.hp > 0) {
|
if (switchOutTarget.hp > 0) {
|
||||||
applyPreSwitchOutAbAttrs(PreSwitchOutAbAttr, switchOutTarget);
|
applyPreSwitchOutAbAttrs(PreSwitchOutAbAttr, switchOutTarget);
|
||||||
// switchOut below sets the UI to select party(this is not a separate Phase), then adds a SwitchSummonPhase with selected 'mon
|
// switchOut below sets the UI to select party(this is not a separate Phase), then adds a SwitchSummonPhase with selected 'mon
|
||||||
(switchOutTarget as PlayerPokemon).switchOut(this.batonPass, true).then(() => resolve(true));
|
(switchOutTarget as PlayerPokemon).switchOut(this.batonPass).then(() => resolve(true));
|
||||||
} else {
|
} else {
|
||||||
resolve(false);
|
resolve(false);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
} else if (user.scene.currentBattle.battleType) {
|
} else if (user.scene.currentBattle.battleType !== BattleType.WILD) {
|
||||||
// Switch out logic for the battle type
|
// Switch out logic for trainer battles
|
||||||
switchOutTarget.resetTurnData();
|
switchOutTarget.leaveField(!this.batonPass);
|
||||||
switchOutTarget.resetSummonData();
|
|
||||||
switchOutTarget.hideInfo();
|
|
||||||
switchOutTarget.setVisible(false);
|
|
||||||
switchOutTarget.scene.field.remove(switchOutTarget);
|
|
||||||
user.scene.triggerPokemonFormChange(switchOutTarget, SpeciesFormChangeActiveTrigger, true);
|
|
||||||
|
|
||||||
if (switchOutTarget.hp > 0) {
|
if (switchOutTarget.hp > 0) {
|
||||||
// for opponent switching out
|
// for opponent switching out
|
||||||
@ -4917,7 +4890,7 @@ export class CopyTypeAttr extends MoveEffectAttr {
|
|||||||
user.summonData.types = target.getTypes(true);
|
user.summonData.types = target.getTypes(true);
|
||||||
user.updateInfo();
|
user.updateInfo();
|
||||||
|
|
||||||
user.scene.queueMessage(getPokemonMessage(user, `'s type\nchanged to match ${getPokemonNameWithAffix(target)}'s!`));
|
user.scene.queueMessage(i18next.t("moveTriggers:copyType", {pokemonName: getPokemonNameWithAffix(user), targetPokemonName: getPokemonNameWithAffix(target)}));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -5598,7 +5571,7 @@ export class SuppressAbilitiesAttr extends MoveEffectAttr {
|
|||||||
|
|
||||||
target.summonData.abilitySuppressed = true;
|
target.summonData.abilitySuppressed = true;
|
||||||
|
|
||||||
target.scene.queueMessage(getPokemonMessage(target, "'s ability\nwas suppressed!"));
|
target.scene.queueMessage(i18next.t("moveTriggers:suppressAbilities", {pokemonName: getPokemonNameWithAffix(target)}));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -6486,7 +6459,9 @@ export function initMoves() {
|
|||||||
new StatusMove(Moves.SWEET_KISS, Type.FAIRY, 75, 10, -1, 0, 2)
|
new StatusMove(Moves.SWEET_KISS, Type.FAIRY, 75, 10, -1, 0, 2)
|
||||||
.attr(ConfuseAttr),
|
.attr(ConfuseAttr),
|
||||||
new SelfStatusMove(Moves.BELLY_DRUM, Type.NORMAL, -1, 10, -1, 0, 2)
|
new SelfStatusMove(Moves.BELLY_DRUM, Type.NORMAL, -1, 10, -1, 0, 2)
|
||||||
.attr(HalfHpStatMaxAttr, BattleStat.ATK),
|
.attr(CutHpStatBoostAttr, [BattleStat.ATK], 12, 2, (user) => {
|
||||||
|
user.scene.queueMessage(i18next.t("moveTriggers:cutOwnHpAndMaximizedStat", {pokemonName: getPokemonNameWithAffix(user), statName: getBattleStatName(BattleStat.ATK)}));
|
||||||
|
}),
|
||||||
new AttackMove(Moves.SLUDGE_BOMB, Type.POISON, MoveCategory.SPECIAL, 90, 100, 10, 30, 0, 2)
|
new AttackMove(Moves.SLUDGE_BOMB, Type.POISON, MoveCategory.SPECIAL, 90, 100, 10, 30, 0, 2)
|
||||||
.attr(StatusEffectAttr, StatusEffect.POISON)
|
.attr(StatusEffectAttr, StatusEffect.POISON)
|
||||||
.ballBombMove(),
|
.ballBombMove(),
|
||||||
@ -6670,6 +6645,7 @@ export function initMoves() {
|
|||||||
.attr(StatChangeAttr, BattleStat.SPDEF, -1)
|
.attr(StatChangeAttr, BattleStat.SPDEF, -1)
|
||||||
.ballBombMove(),
|
.ballBombMove(),
|
||||||
new AttackMove(Moves.FUTURE_SIGHT, Type.PSYCHIC, MoveCategory.SPECIAL, 120, 100, 10, -1, 0, 2)
|
new AttackMove(Moves.FUTURE_SIGHT, Type.PSYCHIC, MoveCategory.SPECIAL, 120, 100, 10, -1, 0, 2)
|
||||||
|
.partial()
|
||||||
.attr(DelayedAttackAttr, ArenaTagType.FUTURE_SIGHT, ChargeAnim.FUTURE_SIGHT_CHARGING, i18next.t("moveTriggers:foresawAnAttack", {pokemonName: "{USER}"})),
|
.attr(DelayedAttackAttr, ArenaTagType.FUTURE_SIGHT, ChargeAnim.FUTURE_SIGHT_CHARGING, i18next.t("moveTriggers:foresawAnAttack", {pokemonName: "{USER}"})),
|
||||||
new AttackMove(Moves.ROCK_SMASH, Type.FIGHTING, MoveCategory.PHYSICAL, 40, 100, 15, 50, 0, 2)
|
new AttackMove(Moves.ROCK_SMASH, Type.FIGHTING, MoveCategory.PHYSICAL, 40, 100, 15, 50, 0, 2)
|
||||||
.attr(StatChangeAttr, BattleStat.DEF, -1),
|
.attr(StatChangeAttr, BattleStat.DEF, -1),
|
||||||
@ -6958,6 +6934,7 @@ export function initMoves() {
|
|||||||
.attr(ConfuseAttr)
|
.attr(ConfuseAttr)
|
||||||
.pulseMove(),
|
.pulseMove(),
|
||||||
new AttackMove(Moves.DOOM_DESIRE, Type.STEEL, MoveCategory.SPECIAL, 140, 100, 5, -1, 0, 3)
|
new AttackMove(Moves.DOOM_DESIRE, Type.STEEL, MoveCategory.SPECIAL, 140, 100, 5, -1, 0, 3)
|
||||||
|
.partial()
|
||||||
.attr(DelayedAttackAttr, ArenaTagType.DOOM_DESIRE, ChargeAnim.DOOM_DESIRE_CHARGING, i18next.t("moveTriggers:choseDoomDesireAsDestiny", {pokemonName: "{USER}"})),
|
.attr(DelayedAttackAttr, ArenaTagType.DOOM_DESIRE, ChargeAnim.DOOM_DESIRE_CHARGING, i18next.t("moveTriggers:choseDoomDesireAsDestiny", {pokemonName: "{USER}"})),
|
||||||
new AttackMove(Moves.PSYCHO_BOOST, Type.PSYCHIC, MoveCategory.SPECIAL, 140, 90, 5, -1, 0, 3)
|
new AttackMove(Moves.PSYCHO_BOOST, Type.PSYCHIC, MoveCategory.SPECIAL, 140, 90, 5, -1, 0, 3)
|
||||||
.attr(StatChangeAttr, BattleStat.SPATK, -2, true),
|
.attr(StatChangeAttr, BattleStat.SPATK, -2, true),
|
||||||
@ -7928,7 +7905,7 @@ export function initMoves() {
|
|||||||
.makesContact(false)
|
.makesContact(false)
|
||||||
.partial(),
|
.partial(),
|
||||||
new AttackMove(Moves.CLANGING_SCALES, Type.DRAGON, MoveCategory.SPECIAL, 110, 100, 5, -1, 0, 7)
|
new AttackMove(Moves.CLANGING_SCALES, Type.DRAGON, MoveCategory.SPECIAL, 110, 100, 5, -1, 0, 7)
|
||||||
.attr(StatChangeAttr, BattleStat.DEF, -1, true)
|
.attr(StatChangeAttr, BattleStat.DEF, -1, true, null, true, false, MoveEffectTrigger.HIT, true)
|
||||||
.soundBased()
|
.soundBased()
|
||||||
.target(MoveTarget.ALL_NEAR_ENEMIES),
|
.target(MoveTarget.ALL_NEAR_ENEMIES),
|
||||||
new AttackMove(Moves.DRAGON_HAMMER, Type.DRAGON, MoveCategory.PHYSICAL, 90, 100, 15, -1, 0, 7),
|
new AttackMove(Moves.DRAGON_HAMMER, Type.DRAGON, MoveCategory.PHYSICAL, 90, 100, 15, -1, 0, 7),
|
||||||
|
@ -1145,6 +1145,11 @@ export const pokemonEvolutions: PokemonEvolutions = {
|
|||||||
new SpeciesEvolution(Species.PAWMOT, 32, null, null)
|
new SpeciesEvolution(Species.PAWMOT, 32, null, null)
|
||||||
],
|
],
|
||||||
[Species.TANDEMAUS]: [
|
[Species.TANDEMAUS]: [
|
||||||
|
new SpeciesFormEvolution(Species.MAUSHOLD, "", "three", 25, null, new SpeciesEvolutionCondition(p => {
|
||||||
|
let ret = false;
|
||||||
|
p.scene.executeWithSeedOffset(() => ret = !Utils.randSeedInt(4), p.id);
|
||||||
|
return ret;
|
||||||
|
})),
|
||||||
new SpeciesEvolution(Species.MAUSHOLD, 25, null, null)
|
new SpeciesEvolution(Species.MAUSHOLD, 25, null, null)
|
||||||
],
|
],
|
||||||
[Species.FIDOUGH]: [
|
[Species.FIDOUGH]: [
|
||||||
|
@ -17287,7 +17287,7 @@ export const pokemonSpeciesLevelMoves: PokemonSpeciesLevelMoves = {
|
|||||||
],
|
],
|
||||||
[Species.DIPPLIN]: [
|
[Species.DIPPLIN]: [
|
||||||
[ EVOLVE_MOVE, Moves.DOUBLE_HIT ],
|
[ EVOLVE_MOVE, Moves.DOUBLE_HIT ],
|
||||||
[ RELEARN_MOVE, Moves.INFESTATION ],
|
[ RELEARN_MOVE, Moves.DRAGON_CHEER ], // Custom
|
||||||
[ 1, Moves.WITHDRAW ],
|
[ 1, Moves.WITHDRAW ],
|
||||||
[ 1, Moves.SWEET_SCENT ],
|
[ 1, Moves.SWEET_SCENT ],
|
||||||
[ 1, Moves.RECYCLE ],
|
[ 1, Moves.RECYCLE ],
|
||||||
@ -18666,7 +18666,7 @@ export const pokemonFormLevelMoves: PokemonSpeciesFormLevelMoves = {
|
|||||||
[ 48, Moves.PIKA_PAPOW ],
|
[ 48, Moves.PIKA_PAPOW ],
|
||||||
],
|
],
|
||||||
3: [
|
3: [
|
||||||
[ EVOLVE_MOVE, Moves.METEOR_MASH ],
|
[ 1, Moves.METEOR_MASH ],
|
||||||
[ 1, Moves.TAIL_WHIP ],
|
[ 1, Moves.TAIL_WHIP ],
|
||||||
[ 1, Moves.GROWL ],
|
[ 1, Moves.GROWL ],
|
||||||
[ 1, Moves.THUNDER_SHOCK ],
|
[ 1, Moves.THUNDER_SHOCK ],
|
||||||
@ -18690,7 +18690,7 @@ export const pokemonFormLevelMoves: PokemonSpeciesFormLevelMoves = {
|
|||||||
[ 48, Moves.PIKA_PAPOW ],
|
[ 48, Moves.PIKA_PAPOW ],
|
||||||
],
|
],
|
||||||
4: [
|
4: [
|
||||||
[ EVOLVE_MOVE, Moves.ICICLE_CRASH ],
|
[ 1, Moves.ICICLE_CRASH ],
|
||||||
[ 1, Moves.TAIL_WHIP ],
|
[ 1, Moves.TAIL_WHIP ],
|
||||||
[ 1, Moves.GROWL ],
|
[ 1, Moves.GROWL ],
|
||||||
[ 1, Moves.THUNDER_SHOCK ],
|
[ 1, Moves.THUNDER_SHOCK ],
|
||||||
@ -18714,7 +18714,7 @@ export const pokemonFormLevelMoves: PokemonSpeciesFormLevelMoves = {
|
|||||||
[ 48, Moves.PIKA_PAPOW ],
|
[ 48, Moves.PIKA_PAPOW ],
|
||||||
],
|
],
|
||||||
5: [
|
5: [
|
||||||
[ EVOLVE_MOVE, Moves.DRAINING_KISS ],
|
[ 1, Moves.DRAINING_KISS ],
|
||||||
[ 1, Moves.TAIL_WHIP ],
|
[ 1, Moves.TAIL_WHIP ],
|
||||||
[ 1, Moves.GROWL ],
|
[ 1, Moves.GROWL ],
|
||||||
[ 1, Moves.THUNDER_SHOCK ],
|
[ 1, Moves.THUNDER_SHOCK ],
|
||||||
@ -18738,7 +18738,7 @@ export const pokemonFormLevelMoves: PokemonSpeciesFormLevelMoves = {
|
|||||||
[ 48, Moves.PIKA_PAPOW ],
|
[ 48, Moves.PIKA_PAPOW ],
|
||||||
],
|
],
|
||||||
6: [
|
6: [
|
||||||
[ EVOLVE_MOVE, Moves.ELECTRIC_TERRAIN ],
|
[ 1, Moves.ELECTRIC_TERRAIN ],
|
||||||
[ 1, Moves.TAIL_WHIP ],
|
[ 1, Moves.TAIL_WHIP ],
|
||||||
[ 1, Moves.GROWL ],
|
[ 1, Moves.GROWL ],
|
||||||
[ 1, Moves.THUNDER_SHOCK ],
|
[ 1, Moves.THUNDER_SHOCK ],
|
||||||
@ -18762,7 +18762,7 @@ export const pokemonFormLevelMoves: PokemonSpeciesFormLevelMoves = {
|
|||||||
[ 48, Moves.PIKA_PAPOW ],
|
[ 48, Moves.PIKA_PAPOW ],
|
||||||
],
|
],
|
||||||
7: [
|
7: [
|
||||||
[ EVOLVE_MOVE, Moves.FLYING_PRESS ],
|
[ 1, Moves.FLYING_PRESS ],
|
||||||
[ 1, Moves.TAIL_WHIP ],
|
[ 1, Moves.TAIL_WHIP ],
|
||||||
[ 1, Moves.GROWL ],
|
[ 1, Moves.GROWL ],
|
||||||
[ 1, Moves.THUNDER_SHOCK ],
|
[ 1, Moves.THUNDER_SHOCK ],
|
||||||
@ -18886,7 +18886,7 @@ export const pokemonFormLevelMoves: PokemonSpeciesFormLevelMoves = {
|
|||||||
},
|
},
|
||||||
[Species.ROTOM]: {
|
[Species.ROTOM]: {
|
||||||
1: [
|
1: [
|
||||||
[ EVOLVE_MOVE, Moves.OVERHEAT ],
|
[ 1, Moves.OVERHEAT ],
|
||||||
[ 1, Moves.DOUBLE_TEAM ],
|
[ 1, Moves.DOUBLE_TEAM ],
|
||||||
[ 1, Moves.ASTONISH ],
|
[ 1, Moves.ASTONISH ],
|
||||||
[ 5, Moves.THUNDER_SHOCK ],
|
[ 5, Moves.THUNDER_SHOCK ],
|
||||||
@ -18902,7 +18902,7 @@ export const pokemonFormLevelMoves: PokemonSpeciesFormLevelMoves = {
|
|||||||
[ 55, Moves.UPROAR ],
|
[ 55, Moves.UPROAR ],
|
||||||
],
|
],
|
||||||
2: [
|
2: [
|
||||||
[ EVOLVE_MOVE, Moves.HYDRO_PUMP ],
|
[ 1, Moves.HYDRO_PUMP ],
|
||||||
[ 1, Moves.DOUBLE_TEAM ],
|
[ 1, Moves.DOUBLE_TEAM ],
|
||||||
[ 1, Moves.ASTONISH ],
|
[ 1, Moves.ASTONISH ],
|
||||||
[ 5, Moves.THUNDER_SHOCK ],
|
[ 5, Moves.THUNDER_SHOCK ],
|
||||||
@ -18918,7 +18918,7 @@ export const pokemonFormLevelMoves: PokemonSpeciesFormLevelMoves = {
|
|||||||
[ 55, Moves.UPROAR ],
|
[ 55, Moves.UPROAR ],
|
||||||
],
|
],
|
||||||
3: [
|
3: [
|
||||||
[ EVOLVE_MOVE, Moves.BLIZZARD ],
|
[ 1, Moves.BLIZZARD ],
|
||||||
[ 1, Moves.DOUBLE_TEAM ],
|
[ 1, Moves.DOUBLE_TEAM ],
|
||||||
[ 1, Moves.ASTONISH ],
|
[ 1, Moves.ASTONISH ],
|
||||||
[ 5, Moves.THUNDER_SHOCK ],
|
[ 5, Moves.THUNDER_SHOCK ],
|
||||||
@ -18934,7 +18934,7 @@ export const pokemonFormLevelMoves: PokemonSpeciesFormLevelMoves = {
|
|||||||
[ 55, Moves.UPROAR ],
|
[ 55, Moves.UPROAR ],
|
||||||
],
|
],
|
||||||
4: [
|
4: [
|
||||||
[ EVOLVE_MOVE, Moves.AIR_SLASH ],
|
[ 1, Moves.AIR_SLASH ],
|
||||||
[ 1, Moves.DOUBLE_TEAM ],
|
[ 1, Moves.DOUBLE_TEAM ],
|
||||||
[ 1, Moves.ASTONISH ],
|
[ 1, Moves.ASTONISH ],
|
||||||
[ 5, Moves.THUNDER_SHOCK ],
|
[ 5, Moves.THUNDER_SHOCK ],
|
||||||
@ -18950,7 +18950,7 @@ export const pokemonFormLevelMoves: PokemonSpeciesFormLevelMoves = {
|
|||||||
[ 55, Moves.UPROAR ],
|
[ 55, Moves.UPROAR ],
|
||||||
],
|
],
|
||||||
5: [
|
5: [
|
||||||
[ EVOLVE_MOVE, Moves.LEAF_STORM ],
|
[ 1, Moves.LEAF_STORM ],
|
||||||
[ 1, Moves.DOUBLE_TEAM ],
|
[ 1, Moves.DOUBLE_TEAM ],
|
||||||
[ 1, Moves.ASTONISH ],
|
[ 1, Moves.ASTONISH ],
|
||||||
[ 5, Moves.THUNDER_SHOCK ],
|
[ 5, Moves.THUNDER_SHOCK ],
|
||||||
|
@ -556,7 +556,7 @@ export class TrainerConfig {
|
|||||||
const nameForCall = this.name.toLowerCase().replace(/\s/g, "_");
|
const nameForCall = this.name.toLowerCase().replace(/\s/g, "_");
|
||||||
this.name = i18next.t(`trainerNames:${nameForCall}`);
|
this.name = i18next.t(`trainerNames:${nameForCall}`);
|
||||||
this.setTitle(title);
|
this.setTitle(title);
|
||||||
this.setMoneyMultiplier(2.25);
|
this.setMoneyMultiplier(2.5);
|
||||||
this.setBoss();
|
this.setBoss();
|
||||||
this.setStaticParty();
|
this.setStaticParty();
|
||||||
this.setBattleBgm("battle_plasma_boss");
|
this.setBattleBgm("battle_plasma_boss");
|
||||||
@ -1187,6 +1187,12 @@ export const trainerConfigs: TrainerConfigs = {
|
|||||||
[TrainerPoolTier.RARE]: [Species.PORYGON, Species.ALOLA_RATTATA, Species.ALOLA_SANDSHREW, Species.ALOLA_MEOWTH, Species.ALOLA_GRIMER, Species.ALOLA_GEODUDE],
|
[TrainerPoolTier.RARE]: [Species.PORYGON, Species.ALOLA_RATTATA, Species.ALOLA_SANDSHREW, Species.ALOLA_MEOWTH, Species.ALOLA_GRIMER, Species.ALOLA_GEODUDE],
|
||||||
[TrainerPoolTier.SUPER_RARE]: [Species.DRATINI, Species.LARVITAR]
|
[TrainerPoolTier.SUPER_RARE]: [Species.DRATINI, Species.LARVITAR]
|
||||||
}),
|
}),
|
||||||
|
[TrainerType.ROCKET_ADMIN]: new TrainerConfig(++t).setHasGenders().setMoneyMultiplier(1.5).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_rocket_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene))
|
||||||
|
.setSpeciesPools({
|
||||||
|
[TrainerPoolTier.COMMON]: [ Species.RATTATA, Species.KOFFING, Species.EKANS, Species.GYARADOS, Species.TAUROS, Species.SCYTHER, Species.CUBONE, Species.GROWLITHE, Species.MURKROW, Species.GASTLY, Species.EXEGGCUTE, Species.VOLTORB],
|
||||||
|
[TrainerPoolTier.UNCOMMON]: [Species.PORYGON, Species.ALOLA_RATTATA, Species.ALOLA_SANDSHREW, Species.ALOLA_MEOWTH, Species.ALOLA_GRIMER, Species.ALOLA_GEODUDE],
|
||||||
|
[TrainerPoolTier.RARE]: [Species.DRATINI, Species.LARVITAR]
|
||||||
|
}),
|
||||||
[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))
|
[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({
|
.setSpeciesPools({
|
||||||
[TrainerPoolTier.COMMON]: [Species.SLUGMA, Species.POOCHYENA, Species.NUMEL, Species.ZIGZAGOON, Species.DIGLETT, Species.MAGBY, Species.TORKOAL, Species.BALTOY, Species.BARBOACH],
|
[TrainerPoolTier.COMMON]: [Species.SLUGMA, Species.POOCHYENA, Species.NUMEL, Species.ZIGZAGOON, Species.DIGLETT, Species.MAGBY, Species.TORKOAL, Species.BALTOY, Species.BARBOACH],
|
||||||
@ -1194,6 +1200,12 @@ export const trainerConfigs: TrainerConfigs = {
|
|||||||
[TrainerPoolTier.RARE]: [Species.TRAPINCH, Species.HEATMOR],
|
[TrainerPoolTier.RARE]: [Species.TRAPINCH, Species.HEATMOR],
|
||||||
[TrainerPoolTier.SUPER_RARE]: [Species.TURTONATOR, Species.CHARCADET]
|
[TrainerPoolTier.SUPER_RARE]: [Species.TURTONATOR, Species.CHARCADET]
|
||||||
}),
|
}),
|
||||||
|
[TrainerType.MAGMA_ADMIN]: new TrainerConfig(++t).setHasGenders().setMoneyMultiplier(1.5).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.NUMEL, Species.POOCHYENA, Species.SLUGMA, Species.SOLROCK, Species.HIPPOPOTAS, Species.SANDACONDA, Species.PHANPY, Species.SWINUB, Species.GLIGAR],
|
||||||
|
[TrainerPoolTier.UNCOMMON]: [Species.TRAPINCH, Species.HEATMOR],
|
||||||
|
[TrainerPoolTier.RARE]: [Species.TURTONATOR, Species.CHARCADET]
|
||||||
|
}),
|
||||||
[TrainerType.AQUA_GRUNT]: new TrainerConfig(++t).setHasGenders("Aqua Grunt Female").setHasDouble("Aqua 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))
|
[TrainerType.AQUA_GRUNT]: new TrainerConfig(++t).setHasGenders("Aqua Grunt Female").setHasDouble("Aqua 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({
|
.setSpeciesPools({
|
||||||
[TrainerPoolTier.COMMON]: [ Species.CARVANHA, Species.WAILMER, Species.ZIGZAGOON, Species.LOTAD, Species.CORPHISH, Species.SPHEAL ],
|
[TrainerPoolTier.COMMON]: [ Species.CARVANHA, Species.WAILMER, Species.ZIGZAGOON, Species.LOTAD, Species.CORPHISH, Species.SPHEAL ],
|
||||||
@ -1201,6 +1213,12 @@ export const trainerConfigs: TrainerConfigs = {
|
|||||||
[TrainerPoolTier.RARE]: [Species.MANTINE, Species.BASCULEGION, Species.REMORAID, Species.ARROKUDA],
|
[TrainerPoolTier.RARE]: [Species.MANTINE, Species.BASCULEGION, Species.REMORAID, Species.ARROKUDA],
|
||||||
[TrainerPoolTier.SUPER_RARE]: [Species.DONDOZO]
|
[TrainerPoolTier.SUPER_RARE]: [Species.DONDOZO]
|
||||||
}),
|
}),
|
||||||
|
[TrainerType.AQUA_ADMIN]: new TrainerConfig(++t).setHasGenders().setMoneyMultiplier(1.5).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.CARVANHA, Species.CORPHISH, Species.ZIGZAGOON, Species.CLAMPERL, Species.CHINCHOU, Species.WOOPER, Species.WINGULL, Species.TENTACOOL, Species.QWILFISH ],
|
||||||
|
[TrainerPoolTier.UNCOMMON]: [Species.MANTINE, Species.BASCULEGION, Species.REMORAID, Species.ARROKUDA],
|
||||||
|
[TrainerPoolTier.RARE]: [Species.DONDOZO]
|
||||||
|
}),
|
||||||
[TrainerType.GALACTIC_GRUNT]: new TrainerConfig(++t).setHasGenders("Galactic Grunt Female").setHasDouble("Galactic Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_galactic_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene))
|
[TrainerType.GALACTIC_GRUNT]: new TrainerConfig(++t).setHasGenders("Galactic Grunt Female").setHasDouble("Galactic Grunts").setMoneyMultiplier(1.0).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_galactic_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene))
|
||||||
.setSpeciesPools({
|
.setSpeciesPools({
|
||||||
[TrainerPoolTier.COMMON]: [ Species.GLAMEOW, Species.STUNKY, Species.CROAGUNK, Species.SHINX, Species.WURMPLE, Species.BRONZOR, Species.DRIFLOON, Species.BURMY],
|
[TrainerPoolTier.COMMON]: [ Species.GLAMEOW, Species.STUNKY, Species.CROAGUNK, Species.SHINX, Species.WURMPLE, Species.BRONZOR, Species.DRIFLOON, Species.BURMY],
|
||||||
@ -1208,6 +1226,12 @@ export const trainerConfigs: TrainerConfigs = {
|
|||||||
[TrainerPoolTier.RARE]: [Species.HISUI_GROWLITHE, Species.HISUI_QWILFISH, Species.HISUI_SNEASEL],
|
[TrainerPoolTier.RARE]: [Species.HISUI_GROWLITHE, Species.HISUI_QWILFISH, Species.HISUI_SNEASEL],
|
||||||
[TrainerPoolTier.SUPER_RARE]: [Species.HISUI_ZORUA, Species.HISUI_SLIGGOO]
|
[TrainerPoolTier.SUPER_RARE]: [Species.HISUI_ZORUA, Species.HISUI_SLIGGOO]
|
||||||
}),
|
}),
|
||||||
|
[TrainerType.GALACTIC_ADMIN]: new TrainerConfig(++t).setHasGenders().setMoneyMultiplier(1.5).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_galactic_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene))
|
||||||
|
.setSpeciesPools({
|
||||||
|
[TrainerPoolTier.COMMON]: [ Species.GLAMEOW, Species.STUNKY, Species.BRONZOR, Species.CARNIVINE, Species.GROWLITHE, Species.QWILFISH, Species.SNEASEL ],
|
||||||
|
[TrainerPoolTier.UNCOMMON]: [Species.HISUI_GROWLITHE, Species.HISUI_QWILFISH, Species.HISUI_SNEASEL],
|
||||||
|
[TrainerPoolTier.RARE]: [Species.HISUI_ZORUA, Species.HISUI_SLIGGOO]
|
||||||
|
}),
|
||||||
[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))
|
[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({
|
.setSpeciesPools({
|
||||||
[TrainerPoolTier.COMMON]: [ Species.PATRAT, Species.LILLIPUP, Species.PURRLOIN, Species.SCRAFTY, Species.WOOBAT, Species.VANILLITE, Species.SANDILE, Species.TRUBBISH],
|
[TrainerPoolTier.COMMON]: [ Species.PATRAT, Species.LILLIPUP, Species.PURRLOIN, Species.SCRAFTY, Species.WOOBAT, Species.VANILLITE, Species.SANDILE, Species.TRUBBISH],
|
||||||
@ -1215,6 +1239,12 @@ export const trainerConfigs: TrainerConfigs = {
|
|||||||
[TrainerPoolTier.RARE]: [Species.PAWNIARD, Species.VULLABY, Species.ZORUA, Species.DRILBUR, Species.KLINK],
|
[TrainerPoolTier.RARE]: [Species.PAWNIARD, Species.VULLABY, Species.ZORUA, Species.DRILBUR, Species.KLINK],
|
||||||
[TrainerPoolTier.SUPER_RARE]: [Species.DRUDDIGON, Species.BOUFFALANT, Species.AXEW, Species.DEINO, Species.DURANT]
|
[TrainerPoolTier.SUPER_RARE]: [Species.DRUDDIGON, Species.BOUFFALANT, Species.AXEW, Species.DEINO, Species.DURANT]
|
||||||
}),
|
}),
|
||||||
|
[TrainerType.PLASMA_SAGE]: new TrainerConfig(++t).setMoneyMultiplier(1.5).setEncounterBgm(TrainerType.PLASMA_GRUNT).setBattleBgm("battle_plasma_grunt").setMixedBattleBgm("battle_plasma_grunt").setVictoryBgm("victory_team_plasma").setPartyTemplateFunc(scene => getEvilGruntPartyTemplate(scene))
|
||||||
|
.setSpeciesPools({
|
||||||
|
[TrainerPoolTier.COMMON]: [ Species.SCRAFTY, Species.LILLIPUP, Species.PURRLOIN, Species.FRILLISH, Species.VENIPEDE, Species.GOLETT, Species.TIMBURR, Species.DARUMAKA, Species.AMOONGUSS],
|
||||||
|
[TrainerPoolTier.UNCOMMON]: [Species.PAWNIARD, Species.VULLABY, Species.ZORUA, Species.DRILBUR, Species.KLINK],
|
||||||
|
[TrainerPoolTier.RARE]: [Species.DRUDDIGON, Species.BOUFFALANT, Species.AXEW, Species.DEINO, Species.DURANT]
|
||||||
|
}),
|
||||||
[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))
|
[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({
|
.setSpeciesPools({
|
||||||
[TrainerPoolTier.COMMON]: [ Species.FLETCHLING, Species.LITLEO, Species.PONYTA, Species.INKAY, Species.HOUNDOUR, Species.SKORUPI, Species.SCRAFTY, Species.CROAGUNK],
|
[TrainerPoolTier.COMMON]: [ Species.FLETCHLING, Species.LITLEO, Species.PONYTA, Species.INKAY, Species.HOUNDOUR, Species.SKORUPI, Species.SCRAFTY, Species.CROAGUNK],
|
||||||
@ -1222,6 +1252,12 @@ export const trainerConfigs: TrainerConfigs = {
|
|||||||
[TrainerPoolTier.RARE]: [Species.LITWICK, Species.SNEASEL, Species.PANCHAM, Species.PAWNIARD],
|
[TrainerPoolTier.RARE]: [Species.LITWICK, Species.SNEASEL, Species.PANCHAM, Species.PAWNIARD],
|
||||||
[TrainerPoolTier.SUPER_RARE]: [Species.NOIVERN, Species.DRUDDIGON]
|
[TrainerPoolTier.SUPER_RARE]: [Species.NOIVERN, Species.DRUDDIGON]
|
||||||
}),
|
}),
|
||||||
|
[TrainerType.FLARE_ADMIN]: new TrainerConfig(++t).setHasGenders().setMoneyMultiplier(1.5).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.INKAY, Species.HELIOPTILE, Species.ELECTRIKE, Species.SKRELP, Species.GULPIN, Species.PURRLOIN, Species.POOCHYENA, Species.SCATTERBUG],
|
||||||
|
[TrainerPoolTier.UNCOMMON]: [Species.LITWICK, Species.SNEASEL, Species.PANCHAM, Species.PAWNIARD],
|
||||||
|
[TrainerPoolTier.RARE]: [Species.NOIVERN, Species.DRUDDIGON]
|
||||||
|
}),
|
||||||
[TrainerType.BROCK]: new TrainerConfig((t = TrainerType.BROCK)).initForGymLeader(signatureSpecies["BROCK"],true, Type.ROCK).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"),
|
[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.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"),
|
[TrainerType.LT_SURGE]: new TrainerConfig(++t).initForGymLeader(signatureSpecies["LT_SURGE"],true, Type.ELECTRIC).setBattleBgm("battle_kanto_gym").setMixedBattleBgm("battle_kanto_gym"),
|
||||||
@ -1368,7 +1404,7 @@ export const trainerConfigs: TrainerConfigs = {
|
|||||||
p.generateAndPopulateMoveset();
|
p.generateAndPopulateMoveset();
|
||||||
p.generateName();
|
p.generateName();
|
||||||
})),
|
})),
|
||||||
[TrainerType.STEVEN]: new TrainerConfig(++t).initForChampion(signatureSpecies["STEVEN"],true).setBattleBgm("battle_hoenn_champion").setMixedBattleBgm("battle_hoenn_champion").setHasDouble("steven_wallace_double").setDoubleTrainerType(TrainerType.WALLACE).setDoubleTitle("champion_double")
|
[TrainerType.STEVEN]: new TrainerConfig(++t).initForChampion(signatureSpecies["STEVEN"],true).setBattleBgm("battle_hoenn_champion_g5").setMixedBattleBgm("battle_hoenn_champion_g6").setHasDouble("steven_wallace_double").setDoubleTrainerType(TrainerType.WALLACE).setDoubleTitle("champion_double")
|
||||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.SKARMORY], TrainerSlot.TRAINER, true, p => {
|
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.SKARMORY], TrainerSlot.TRAINER, true, p => {
|
||||||
p.generateAndPopulateMoveset();
|
p.generateAndPopulateMoveset();
|
||||||
}))
|
}))
|
||||||
@ -1377,7 +1413,7 @@ export const trainerConfigs: TrainerConfigs = {
|
|||||||
p.generateAndPopulateMoveset();
|
p.generateAndPopulateMoveset();
|
||||||
p.generateName();
|
p.generateName();
|
||||||
})),
|
})),
|
||||||
[TrainerType.WALLACE]: new TrainerConfig(++t).initForChampion(signatureSpecies["WALLACE"],true).setBattleBgm("battle_hoenn_champion").setMixedBattleBgm("battle_hoenn_champion").setHasDouble("wallace_steven_double").setDoubleTrainerType(TrainerType.STEVEN).setDoubleTitle("champion_double")
|
[TrainerType.WALLACE]: new TrainerConfig(++t).initForChampion(signatureSpecies["WALLACE"],true).setBattleBgm("battle_hoenn_champion_g5").setMixedBattleBgm("battle_hoenn_champion_g6").setHasDouble("wallace_steven_double").setDoubleTrainerType(TrainerType.STEVEN).setDoubleTitle("champion_double")
|
||||||
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.PELIPPER], TrainerSlot.TRAINER, true, p => {
|
.setPartyMemberFunc(0, getRandomPartyMemberFunc([Species.PELIPPER], TrainerSlot.TRAINER, true, p => {
|
||||||
p.abilityIndex = 1; // Drizzle
|
p.abilityIndex = 1; // Drizzle
|
||||||
p.generateAndPopulateMoveset();
|
p.generateAndPopulateMoveset();
|
||||||
|
@ -53,11 +53,17 @@ export enum TrainerType {
|
|||||||
WORKER,
|
WORKER,
|
||||||
YOUNGSTER,
|
YOUNGSTER,
|
||||||
ROCKET_GRUNT,
|
ROCKET_GRUNT,
|
||||||
|
ROCKET_ADMIN,
|
||||||
MAGMA_GRUNT,
|
MAGMA_GRUNT,
|
||||||
|
MAGMA_ADMIN,
|
||||||
AQUA_GRUNT,
|
AQUA_GRUNT,
|
||||||
|
AQUA_ADMIN,
|
||||||
GALACTIC_GRUNT,
|
GALACTIC_GRUNT,
|
||||||
|
GALACTIC_ADMIN,
|
||||||
PLASMA_GRUNT,
|
PLASMA_GRUNT,
|
||||||
|
PLASMA_SAGE,
|
||||||
FLARE_GRUNT,
|
FLARE_GRUNT,
|
||||||
|
FLARE_ADMIN,
|
||||||
ROCKET_BOSS_GIOVANNI_1,
|
ROCKET_BOSS_GIOVANNI_1,
|
||||||
ROCKET_BOSS_GIOVANNI_2,
|
ROCKET_BOSS_GIOVANNI_2,
|
||||||
MAXIE,
|
MAXIE,
|
||||||
|
@ -639,9 +639,13 @@ export class Arena {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clears terrain and arena tags when entering new biome or trainer battle.
|
* Clears weather, terrain and arena tags when entering new biome or trainer battle.
|
||||||
*/
|
*/
|
||||||
resetArenaEffects(): void {
|
resetArenaEffects(): void {
|
||||||
|
// Don't reset weather if a Biome's permanent weather is active
|
||||||
|
if (this.weather?.turnsLeft !== 0) {
|
||||||
|
this.trySetWeather(WeatherType.NONE, false);
|
||||||
|
}
|
||||||
this.trySetTerrain(TerrainType.NONE, false, true);
|
this.trySetTerrain(TerrainType.NONE, false, true);
|
||||||
this.removeAllTags();
|
this.removeAllTags();
|
||||||
}
|
}
|
||||||
|
@ -84,6 +84,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||||||
public friendship: integer;
|
public friendship: integer;
|
||||||
public metLevel: integer;
|
public metLevel: integer;
|
||||||
public metBiome: Biome | -1;
|
public metBiome: Biome | -1;
|
||||||
|
public metSpecies: Species;
|
||||||
public luck: integer;
|
public luck: integer;
|
||||||
public pauseEvolutions: boolean;
|
public pauseEvolutions: boolean;
|
||||||
public pokerus: boolean;
|
public pokerus: boolean;
|
||||||
@ -173,6 +174,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||||||
this.metLevel = dataSource.metLevel || 5;
|
this.metLevel = dataSource.metLevel || 5;
|
||||||
this.luck = dataSource.luck;
|
this.luck = dataSource.luck;
|
||||||
this.metBiome = dataSource.metBiome;
|
this.metBiome = dataSource.metBiome;
|
||||||
|
this.metSpecies = dataSource.metSpecies ?? (this.metBiome !== -1 ? this.species.speciesId : this.species.getRootSpeciesId(true));
|
||||||
this.pauseEvolutions = dataSource.pauseEvolutions;
|
this.pauseEvolutions = dataSource.pauseEvolutions;
|
||||||
this.pokerus = !!dataSource.pokerus;
|
this.pokerus = !!dataSource.pokerus;
|
||||||
this.fusionSpecies = dataSource.fusionSpecies instanceof PokemonSpecies ? dataSource.fusionSpecies : getPokemonSpecies(dataSource.fusionSpecies);
|
this.fusionSpecies = dataSource.fusionSpecies instanceof PokemonSpecies ? dataSource.fusionSpecies : getPokemonSpecies(dataSource.fusionSpecies);
|
||||||
@ -213,6 +215,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||||||
this.friendship = species.baseFriendship;
|
this.friendship = species.baseFriendship;
|
||||||
this.metLevel = level;
|
this.metLevel = level;
|
||||||
this.metBiome = scene.currentBattle ? scene.arena.biomeType : -1;
|
this.metBiome = scene.currentBattle ? scene.arena.biomeType : -1;
|
||||||
|
this.metSpecies = species.speciesId;
|
||||||
this.pokerus = false;
|
this.pokerus = false;
|
||||||
|
|
||||||
if (level > 1) {
|
if (level > 1) {
|
||||||
@ -885,11 +888,40 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* All moves that could be relearned by this pokemon at this point. Used for memory mushrooms.
|
* Checks which egg moves have been unlocked for the {@linkcode Pokemon} based
|
||||||
* @returns {Moves[]} The valid moves
|
* on the species it was met at or by the first {@linkcode Pokemon} in its evolution
|
||||||
|
* line that can act as a starter and provides those egg moves.
|
||||||
|
* @returns an array of {@linkcode Moves}, the length of which is determined by how many
|
||||||
|
* egg moves are unlocked for that species.
|
||||||
|
*/
|
||||||
|
getUnlockedEggMoves(): Moves[] {
|
||||||
|
const moves: Moves[] = [];
|
||||||
|
const species = this.metSpecies in speciesEggMoves ? this.metSpecies : this.getSpeciesForm(true).getRootSpeciesId(true);
|
||||||
|
if (species in speciesEggMoves) {
|
||||||
|
for (let i = 0; i < 4; i++) {
|
||||||
|
if (this.scene.gameData.starterData[species].eggMoves & (1 << i)) {
|
||||||
|
moves.push(speciesEggMoves[species][i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return moves;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets all possible learnable level moves for the {@linkcode Pokemon},
|
||||||
|
* excluding any moves already known.
|
||||||
|
*
|
||||||
|
* Available egg moves are only included if the {@linkcode Pokemon} was
|
||||||
|
* in the starting party of the run.
|
||||||
|
* @returns an array of {@linkcode Moves}, the length of which is determined
|
||||||
|
* by how many learnable moves there are for the {@linkcode Pokemon}.
|
||||||
*/
|
*/
|
||||||
getLearnableLevelMoves(): Moves[] {
|
getLearnableLevelMoves(): Moves[] {
|
||||||
return this.getLevelMoves(1, true, false, true).map(lm => lm[1]).filter(lm => !this.moveset.filter(m => m.moveId === lm).length).filter((move: Moves, i: integer, array: Moves[]) => array.indexOf(move) === i);
|
let levelMoves = this.getLevelMoves(1, true).map(lm => lm[1]);
|
||||||
|
if (this.metBiome === -1) {
|
||||||
|
levelMoves = this.getUnlockedEggMoves().concat(levelMoves);
|
||||||
|
}
|
||||||
|
return levelMoves.filter(lm => !this.moveset.some(m => m.moveId === lm));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -3129,6 +3161,23 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
|
|||||||
return this.randSeedInt((max - min) + 1, min);
|
return this.randSeedInt((max - min) + 1, min);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Causes a Pokemon to leave the field (such as in preparation for a switch out/escape).
|
||||||
|
* @param clearEffects Indicates if effects should be cleared (true) or passed
|
||||||
|
* to the next pokemon, such as during a baton pass (false)
|
||||||
|
*/
|
||||||
|
leaveField(clearEffects: boolean = true) {
|
||||||
|
this.resetTurnData();
|
||||||
|
if (clearEffects) {
|
||||||
|
this.resetSummonData();
|
||||||
|
this.resetBattleData();
|
||||||
|
}
|
||||||
|
this.hideInfo();
|
||||||
|
this.setVisible(false);
|
||||||
|
this.scene.field.remove(this);
|
||||||
|
this.scene.triggerPokemonFormChange(this, SpeciesFormChangeActiveTrigger, true);
|
||||||
|
}
|
||||||
|
|
||||||
destroy(): void {
|
destroy(): void {
|
||||||
this.battleInfo?.destroy();
|
this.battleInfo?.destroy();
|
||||||
super.destroy();
|
super.destroy();
|
||||||
@ -3173,7 +3222,7 @@ export class PlayerPokemon extends Pokemon {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!dataSource) {
|
if (!dataSource) {
|
||||||
this.generateAndPopulateMoveset();
|
this.moveset = [];
|
||||||
}
|
}
|
||||||
this.generateCompatibleTms();
|
this.generateCompatibleTms();
|
||||||
}
|
}
|
||||||
@ -3240,25 +3289,21 @@ export class PlayerPokemon extends Pokemon {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
switchOut(batonPass: boolean, removeFromField: boolean = false): Promise<void> {
|
/**
|
||||||
|
* Causes this mon to leave the field (via {@linkcode leaveField}) and then
|
||||||
|
* opens the party switcher UI to switch a new mon in
|
||||||
|
* @param batonPass Indicates if this switch was caused by a baton pass (and
|
||||||
|
* thus should maintain active mon effects)
|
||||||
|
*/
|
||||||
|
switchOut(batonPass: boolean): Promise<void> {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
this.resetTurnData();
|
this.leaveField(!batonPass);
|
||||||
if (!batonPass) {
|
|
||||||
this.resetSummonData();
|
|
||||||
}
|
|
||||||
this.hideInfo();
|
|
||||||
this.setVisible(false);
|
|
||||||
|
|
||||||
this.scene.ui.setMode(Mode.PARTY, PartyUiMode.FAINT_SWITCH, this.getFieldIndex(), (slotIndex: integer, option: PartyOption) => {
|
this.scene.ui.setMode(Mode.PARTY, PartyUiMode.FAINT_SWITCH, this.getFieldIndex(), (slotIndex: integer, option: PartyOption) => {
|
||||||
if (slotIndex >= this.scene.currentBattle.getBattlerCount() && slotIndex < 6) {
|
if (slotIndex >= this.scene.currentBattle.getBattlerCount() && slotIndex < 6) {
|
||||||
this.scene.prependToPhase(new SwitchSummonPhase(this.scene, this.getFieldIndex(), slotIndex, false, batonPass), MoveEndPhase);
|
this.scene.prependToPhase(new SwitchSummonPhase(this.scene, this.getFieldIndex(), slotIndex, false, batonPass), MoveEndPhase);
|
||||||
}
|
}
|
||||||
if (removeFromField) {
|
this.scene.ui.setMode(Mode.MESSAGE).then(resolve);
|
||||||
this.setVisible(false);
|
|
||||||
this.scene.field.remove(this);
|
|
||||||
this.scene.triggerPokemonFormChange(this, SpeciesFormChangeActiveTrigger, true);
|
|
||||||
}
|
|
||||||
this.scene.ui.setMode(Mode.MESSAGE).then(() => resolve());
|
|
||||||
}, PartyUiHandler.FilterNonFainted);
|
}, PartyUiHandler.FilterNonFainted);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -4075,6 +4120,7 @@ export class EnemyPokemon extends Pokemon {
|
|||||||
this.pokeball = pokeballType;
|
this.pokeball = pokeballType;
|
||||||
this.metLevel = this.level;
|
this.metLevel = this.level;
|
||||||
this.metBiome = this.scene.arena.biomeType;
|
this.metBiome = this.scene.arena.biomeType;
|
||||||
|
this.metSpecies = this.species.speciesId;
|
||||||
const newPokemon = this.scene.addPlayerPokemon(this.species, this.level, this.abilityIndex, this.formIndex, this.gender, this.shiny, this.variant, this.ivs, this.nature, this);
|
const newPokemon = this.scene.addPlayerPokemon(this.species, this.level, this.abilityIndex, this.formIndex, this.gender, this.shiny, this.variant, this.ivs, this.nature, this);
|
||||||
party.push(newPokemon);
|
party.push(newPokemon);
|
||||||
ret = newPokemon;
|
ret = newPokemon;
|
||||||
|
@ -121,8 +121,8 @@ export default class Trainer extends Phaser.GameObjects.Container {
|
|||||||
|
|
||||||
// Determine the title to include based on the configuration and includeTitle flag.
|
// Determine the title to include based on the configuration and includeTitle flag.
|
||||||
let title = includeTitle && this.config.title ? this.config.title : null;
|
let title = includeTitle && this.config.title ? this.config.title : null;
|
||||||
|
const evilTeamTitles = ["grunt", "admin", "sage"];
|
||||||
if (this.name === "" && name.toLowerCase().includes("grunt")) {
|
if (this.name === "" && evilTeamTitles.some(t => name.toLocaleLowerCase().includes(t))) {
|
||||||
// This is a evil team grunt so we localize it by only using the "name" as the title
|
// This is a evil team grunt so we localize it by only using the "name" as the title
|
||||||
title = i18next.t(`trainerClasses:${name.toLowerCase().replace(/\s/g, "_")}`);
|
title = i18next.t(`trainerClasses:${name.toLowerCase().replace(/\s/g, "_")}`);
|
||||||
console.log("Localized grunt name: " + title);
|
console.log("Localized grunt name: " + title);
|
||||||
|
@ -35,12 +35,12 @@ export const abilityTriggers: SimpleTranslationEntries = {
|
|||||||
"battlerTagImmunity": "{{abilityName}} von {{pokemonNameWithAffix}} verhindert {{battlerTagName}}!",
|
"battlerTagImmunity": "{{abilityName}} von {{pokemonNameWithAffix}} verhindert {{battlerTagName}}!",
|
||||||
"forewarn": "Vorwarnung von {{pokemonNameWithAffix}}: Konzentraion auf {{moveName}}!",
|
"forewarn": "Vorwarnung von {{pokemonNameWithAffix}}: Konzentraion auf {{moveName}}!",
|
||||||
"frisk": "{{pokemonNameWithAffix}} hat die Fähigkeit {{opponentAbilityName}} von {{opponentName}} erschnüffelt!",
|
"frisk": "{{pokemonNameWithAffix}} hat die Fähigkeit {{opponentAbilityName}} von {{opponentName}} erschnüffelt!",
|
||||||
"postWeatherLapseHeal": "{{abilityName}} von {{pokemonName}} füllte einige KP auf!",
|
"postWeatherLapseHeal": "{{abilityName}} von {{pokemonNameWithAffix}} füllte einige KP auf!",
|
||||||
"postWeatherLapseDamage": "{{pokemonNameWithAffix}} wurde durch {{abilityName}} verletzt!",
|
"postWeatherLapseDamage": "{{pokemonNameWithAffix}} wurde durch {{abilityName}} verletzt!",
|
||||||
"postTurnLootCreateEatenBerry": "{{pokemonNameWithAffix}} hat {{berryName}} geerntet!",
|
"postTurnLootCreateEatenBerry": "{{pokemonNameWithAffix}} hat {{berryName}} geerntet!",
|
||||||
"postTurnHeal": "{{abilityName}} von {{pokemonName}} füllte einige KP auf!",
|
"postTurnHeal": "{{abilityName}} von {{pokemonNameWithAffix}} füllte einige KP auf!",
|
||||||
"fetchBall": "{{pokemonNameWithAffix}} hat einen {{pokeballName}} gefunden!",
|
"fetchBall": "{{pokemonNameWithAffix}} hat einen {{pokeballName}} gefunden!",
|
||||||
"healFromBerryUse": "{{abilityName}} von {{pokemonName}} füllte einige KP auf!",
|
"healFromBerryUse": "{{abilityName}} von {{pokemonNameWithAffix}} füllte einige KP auf!",
|
||||||
"arenaTrap": "{{abilityName}} von {{pokemonNameWithAffix}} verhindert den Tausch!",
|
"arenaTrap": "{{abilityName}} von {{pokemonNameWithAffix}} verhindert den Tausch!",
|
||||||
"postBattleLoot": "{{pokemonNameWithAffix}} hebt {{itemName}} auf!",
|
"postBattleLoot": "{{pokemonNameWithAffix}} hebt {{itemName}} auf!",
|
||||||
"postFaintContactDamage": "{{abilityName}} von {{pokemonNameWithAffix}} schadet seinem Angreifer!",
|
"postFaintContactDamage": "{{abilityName}} von {{pokemonNameWithAffix}} schadet seinem Angreifer!",
|
||||||
|
@ -5,7 +5,8 @@ export const bgmName: SimpleTranslationEntries = {
|
|||||||
"missing_entries" : "{{name}}",
|
"missing_entries" : "{{name}}",
|
||||||
"battle_kanto_champion": "S2W2 Vs. Kanto Champion",
|
"battle_kanto_champion": "S2W2 Vs. Kanto Champion",
|
||||||
"battle_johto_champion": "S2W2 Vs. Johto Champion",
|
"battle_johto_champion": "S2W2 Vs. Johto Champion",
|
||||||
"battle_hoenn_champion": "S2W2 Vs. Hoenn Champion",
|
"battle_hoenn_champion_g5": "S2W2 Vs. Hoenn Champion",
|
||||||
|
"battle_hoenn_champion_g6": "ORAS Vs. Hoenn Champion",
|
||||||
"battle_sinnoh_champion": "S2W2 Vs. Champion Cynthia",
|
"battle_sinnoh_champion": "S2W2 Vs. Champion Cynthia",
|
||||||
"battle_champion_alder": "SW Vs. Champion Lauro",
|
"battle_champion_alder": "SW Vs. Champion Lauro",
|
||||||
"battle_champion_iris": "S2W2 Vs. Champion Lilia",
|
"battle_champion_iris": "S2W2 Vs. Champion Lilia",
|
||||||
|
@ -378,6 +378,19 @@ export const PGMdialogue: DialogueTranslationEntries = {
|
|||||||
1: "Das war mal wieder ein Schuss in den Ofen!"
|
1: "Das war mal wieder ein Schuss in den Ofen!"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"rocket_admin": {
|
||||||
|
"encounter": {
|
||||||
|
1: "Oh? Du wagst es, dich Team Rocket zu widersetzen? Du wirst es bereuen.",
|
||||||
|
2: "Du glaubst, du kannst uns aufhalten? Naiver Narr!",
|
||||||
|
3: "Ich werde dir die wahre Macht von Team Rocket zeigen!"
|
||||||
|
},
|
||||||
|
"victory": {
|
||||||
|
1: "Nein! Verzeih mir, Giovanni!",
|
||||||
|
2: "Wie konnte das geschehen?",
|
||||||
|
3: "Urgh... Du warst zu stark..."
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
"firebreather": {
|
"firebreather": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1: "Meine Flammen werden dich verschlingen!",
|
1: "Meine Flammen werden dich verschlingen!",
|
||||||
@ -410,6 +423,20 @@ export const PGMdialogue: DialogueTranslationEntries = {
|
|||||||
1: "Wie kann das sein? Ich bin Teil vom mächtigen Team Magma! Wir wollen doch nur die Welt verbessern…"
|
1: "Wie kann das sein? Ich bin Teil vom mächtigen Team Magma! Wir wollen doch nur die Welt verbessern…"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"magma_admin": {
|
||||||
|
"encounter": {
|
||||||
|
1: `Hahaha! Du hast den ganzen weiten Weg auf dich genommen! Aber du bist zu spät!
|
||||||
|
$Unsere Mission ist schon fast abgeschlossen!`,
|
||||||
|
2: `Du willst dich in Team Magmas Angelegenheiten einmischen? Du bist so süß, dass es ekelhaft ist!
|
||||||
|
$Ich werde dich ein für alle Mal erledigen!`,
|
||||||
|
3: "Ich werde dir zeigen, was wahrer Schmerz ist! Mach dich bereit!",
|
||||||
|
},
|
||||||
|
"victory": {
|
||||||
|
1: "Hahaha! Ouch! Ich habe wohl verloren...",
|
||||||
|
2: "Du bist ekelhaft stark!",
|
||||||
|
3: "Da habe ich meine eigene Medizin zu schmecken bekommen!"
|
||||||
|
},
|
||||||
|
},
|
||||||
"aqua_grunt": {
|
"aqua_grunt": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1: "Du willst dich also mit Team Aqua anlegen? Du traust dich ja was… Dich werfe ich über Bord!",
|
1: "Du willst dich also mit Team Aqua anlegen? Du traust dich ja was… Dich werfe ich über Bord!",
|
||||||
@ -418,6 +445,18 @@ export const PGMdialogue: DialogueTranslationEntries = {
|
|||||||
1: "Vielleicht sollte ich wohl lieber selber über die Planke gehen…",
|
1: "Vielleicht sollte ich wohl lieber selber über die Planke gehen…",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"aqua_admin": {
|
||||||
|
"encounter": {
|
||||||
|
1: "Ich bin eine Stufe über den Rüpeln, die du bisher gesehen hast. Ich werde dich pulverisieren!",
|
||||||
|
2: "Hmmm? Wer ist das? Wer ist dieses verwöhnte Gör?",
|
||||||
|
3: "Was machst du hier? Bist du uns gefolgt? Dann müssen wir dich wohl loswerden!"
|
||||||
|
},
|
||||||
|
"victory": {
|
||||||
|
1: "Also habe ich auch verloren...",
|
||||||
|
2: "Ahhh?! War ich zu nachsichtig mit dir?!",
|
||||||
|
3: "W-was war das?"
|
||||||
|
},
|
||||||
|
},
|
||||||
"galactic_grunt": {
|
"galactic_grunt": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1: "Team Galaktik wird die Welt in eine bessere Welt verwandeln! Und du wirst uns nicht aufhalten!"
|
1: "Team Galaktik wird die Welt in eine bessere Welt verwandeln! Und du wirst uns nicht aufhalten!"
|
||||||
@ -426,6 +465,19 @@ export const PGMdialogue: DialogueTranslationEntries = {
|
|||||||
1: "Zyrus wird uns für diese Niederlage bestrafen…"
|
1: "Zyrus wird uns für diese Niederlage bestrafen…"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"galactic_admin": {
|
||||||
|
"encounter": {
|
||||||
|
1: "Ich bin einer der Commander von Team Galaktik. Wir werden Zyrus' Traum verwirklichen!",
|
||||||
|
2: `Alles, was sich Team Galaktik widersetzt, muss zerschlagen werden!
|
||||||
|
$Selbst der Gedanke an Widerstand wird nicht toleriert!`,
|
||||||
|
3: "Was ist los? Sag mir nicht, dass du zitterst? Mach ich dir Angst? Gut so! Knie nieder!"
|
||||||
|
},
|
||||||
|
"victory": {
|
||||||
|
1: "Das kann nicht sein?! Ich habe verloren?! Du... du freches Gör!",
|
||||||
|
2: "Du, mein Freund, bist stark! Aber widestand ist zwecklos! Team Galaktik wird siegen!",
|
||||||
|
3: "Gegen ein Kind zu verlieren... Meine Unachtsamkeit wird mir nicht verziehen werden..."
|
||||||
|
},
|
||||||
|
},
|
||||||
"plasma_grunt": {
|
"plasma_grunt": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1: "Pokémon sollten frei sein! Team Plasma wird sie befreien!"
|
1: "Pokémon sollten frei sein! Team Plasma wird sie befreien!"
|
||||||
@ -434,6 +486,19 @@ export const PGMdialogue: DialogueTranslationEntries = {
|
|||||||
1: "Wie konnte ich verlieren? Ich dachte, ich würde die Welt retten…"
|
1: "Wie konnte ich verlieren? Ich dachte, ich würde die Welt retten…"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"plasma_sage": {
|
||||||
|
"encounter": {
|
||||||
|
1: "Du könntest eine Bedrohung für Team Plasma werden, also werden wir dich hier eliminieren!",
|
||||||
|
2: "Oh, ernsthaft... Ich hatte nicht erwartet, kämpfen zu müssen!",
|
||||||
|
3: `Du bist ein beeindruckender Trainer, dass du es so weit geschafft hast.
|
||||||
|
$Als Weiser von Team Plasma werde ich dich besiegen!`
|
||||||
|
},
|
||||||
|
"victory": {
|
||||||
|
1: "G-Cis...",
|
||||||
|
2: "Es ist bitterkalt. Ich zittere. Ich leide.",
|
||||||
|
3: "Hm. Du bist ein klügerer Trainer, als ich erwartet hatte. Ich bin beeindruckt."
|
||||||
|
},
|
||||||
|
},
|
||||||
"flare_grunt": {
|
"flare_grunt": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1: `Ich bin ein Mitglied von Team Flare! Das sieht man mir doch an. Mein Stil ist unverkennbar!
|
1: `Ich bin ein Mitglied von Team Flare! Das sieht man mir doch an. Mein Stil ist unverkennbar!
|
||||||
@ -443,6 +508,18 @@ export const PGMdialogue: DialogueTranslationEntries = {
|
|||||||
1: "Stil ist wohl doch nicht alles…"
|
1: "Stil ist wohl doch nicht alles…"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"flare_admin": {
|
||||||
|
"encounter": {
|
||||||
|
1: "Ah ha ha! Es wäre mir ein Vergnügen. Komm schon, kleiner Trainer! Zeig mir, was du drauf hast!",
|
||||||
|
2: "Wir von Team Flare sind die einzigen, die die Schönheit der Welt wirklich schätzen!",
|
||||||
|
3: "Ich habe auf dich gewartet! Lass mich ein wenig an dir forschen! Komm, lass uns beginnen!"
|
||||||
|
},
|
||||||
|
"victory": {
|
||||||
|
1: "Du bist ziemlich stark. Oh ja, sehr stark, in der Tat.",
|
||||||
|
2: "Es scheint als hätte ich mich geirrt… Der Sieger steht fest.",
|
||||||
|
3: "Wunderbar! Erstaunlich! Du hast enormes Geschick und dieser Mut!"
|
||||||
|
},
|
||||||
|
},
|
||||||
"rocket_boss_giovanni_1": {
|
"rocket_boss_giovanni_1": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1: `Ich bin beeindruckt, du hast es bis hierher geschafft!
|
1: `Ich bin beeindruckt, du hast es bis hierher geschafft!
|
||||||
@ -476,7 +553,7 @@ export const PGMdialogue: DialogueTranslationEntries = {
|
|||||||
$Wir brauchen mehr Landmassen um zu leben! Team Magma wird dieses Ziel mit aller Macht erreichen!`
|
$Wir brauchen mehr Landmassen um zu leben! Team Magma wird dieses Ziel mit aller Macht erreichen!`
|
||||||
},
|
},
|
||||||
"victory": {
|
"victory": {
|
||||||
1:"Ugh! Das entspricht nicht meinen Berechnungen! Wie konnte ich verlieren? Wir sehen uns wieder!"
|
1: "Ugh! Das entspricht nicht meinen Berechnungen! Wie konnte ich verlieren? Wir sehen uns wieder!"
|
||||||
},
|
},
|
||||||
"defeat": {
|
"defeat": {
|
||||||
1: "Team Magma wird weiterhin die Welt verbessern!"
|
1: "Team Magma wird weiterhin die Welt verbessern!"
|
||||||
@ -542,7 +619,7 @@ export const PGMdialogue: DialogueTranslationEntries = {
|
|||||||
},
|
},
|
||||||
"plasma_boss_ghetsis_1": {
|
"plasma_boss_ghetsis_1": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1:"Ich werde nicht zulassen, dass mich jemand aufhält! Egal wer es auch sein mag!"
|
1: "Ich werde nicht zulassen, dass mich jemand aufhält! Egal wer es auch sein mag!"
|
||||||
},
|
},
|
||||||
"victory": {
|
"victory": {
|
||||||
1: "Wie kann das sein? Ich bin der Schöpfer von Team Plasma! Ich bin perfekt!"
|
1: "Wie kann das sein? Ich bin der Schöpfer von Team Plasma! Ich bin perfekt!"
|
||||||
@ -2604,7 +2681,7 @@ export const PGFbattleSpecDialogue: SimpleTranslationEntries = PGMbattleSpecDial
|
|||||||
// Dialogue that does not fit into any other category (e.g. tutorial messages, or the end of the game). For when the player character is male
|
// Dialogue that does not fit into any other category (e.g. tutorial messages, or the end of the game). For when the player character is male
|
||||||
export const PGMmiscDialogue: SimpleTranslationEntries = {
|
export const PGMmiscDialogue: SimpleTranslationEntries = {
|
||||||
"ending":
|
"ending":
|
||||||
`@c{smile}Oh? Du hast gewonnen?@d{96} @c{smile_eclosed}Ich schätze, das hätte ich wissen sollen.
|
`@c{smile}Oh? Du hast gewonnen?@d{96} @c{smile_eclosed}Ich schätze, das hätte ich wissen sollen.
|
||||||
$Aber, du bist jetzt zurück.
|
$Aber, du bist jetzt zurück.
|
||||||
$@c{smile}Es ist vorbei.@d{64} Du hast die Schleife beendet.
|
$@c{smile}Es ist vorbei.@d{64} Du hast die Schleife beendet.
|
||||||
$@c{serious_smile_fists}Du hast auch deinen Traum erfüllt, nicht wahr?\nDu hast nicht einmal verloren.
|
$@c{serious_smile_fists}Du hast auch deinen Traum erfüllt, nicht wahr?\nDu hast nicht einmal verloren.
|
||||||
@ -2615,7 +2692,7 @@ export const PGMmiscDialogue: SimpleTranslationEntries = {
|
|||||||
$@c{serious_smile_fists}Vielleicht können wir, wenn wir zurück sind, noch einen Kampf haben?
|
$@c{serious_smile_fists}Vielleicht können wir, wenn wir zurück sind, noch einen Kampf haben?
|
||||||
$Wenn du dazu bereit bist.`,
|
$Wenn du dazu bereit bist.`,
|
||||||
"ending_female":
|
"ending_female":
|
||||||
`@c{shock}Du bist zurück?@d{32} Bedeutet das…@d{96} du hast gewonnen?!
|
`@c{shock}Du bist zurück?@d{32} Bedeutet das…@d{96} du hast gewonnen?!
|
||||||
$@c{smile_ehalf}Ich hätte wissen sollen, dass du es in dir hast.
|
$@c{smile_ehalf}Ich hätte wissen sollen, dass du es in dir hast.
|
||||||
$@c{smile_eclosed}Natürlich… ich hatte immer dieses Gefühl.
|
$@c{smile_eclosed}Natürlich… ich hatte immer dieses Gefühl.
|
||||||
$@c{smile}Es ist jetzt vorbei, richtig? Du hast die Schleife beendet.
|
$@c{smile}Es ist jetzt vorbei, richtig? Du hast die Schleife beendet.
|
||||||
|
@ -3,16 +3,28 @@ import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|||||||
export const filterBar: SimpleTranslationEntries = {
|
export const filterBar: SimpleTranslationEntries = {
|
||||||
"genFilter": "Gen.",
|
"genFilter": "Gen.",
|
||||||
"typeFilter": "Typ",
|
"typeFilter": "Typ",
|
||||||
|
"caughtFilter": "Gefangen",
|
||||||
"unlocksFilter": "Freisch.",
|
"unlocksFilter": "Freisch.",
|
||||||
"winFilter": "Abschluss",
|
"miscFilter": "Sonst.",
|
||||||
"sortFilter": "Sort.",
|
"sortFilter": "Sort.",
|
||||||
"all": "Alle",
|
"all": "Alle",
|
||||||
"normal": "Normal",
|
"normal": "Normal",
|
||||||
"uncaught": "Nicht gefangen",
|
"uncaught": "Nicht gefangen",
|
||||||
|
"passive": "Passive",
|
||||||
"passiveUnlocked": "Passive freigeschaltet",
|
"passiveUnlocked": "Passive freigeschaltet",
|
||||||
"passiveLocked": "Passive gesperrt",
|
"passiveLocked": "Passive gesperrt",
|
||||||
|
"costReduction": "Cost Reduction",
|
||||||
|
"costReductionUnlocked": "Cost Reduction Unlocked",
|
||||||
|
"costReductionLocked": "Cost Reduction Locked",
|
||||||
|
"ribbon": "Band",
|
||||||
"hasWon": "Hat Klassik-Modus gewonnen",
|
"hasWon": "Hat Klassik-Modus gewonnen",
|
||||||
"hasNotWon": "Hat Klassik-Modus nicht gewonnen",
|
"hasNotWon": "Hat Klassik-Modus nicht gewonnen",
|
||||||
|
"hiddenAbility": "Hidden Ability",
|
||||||
|
"hasHiddenAbility": "Hidden Ability - Yes",
|
||||||
|
"noHiddenAbility": "Hidden Ability - No",
|
||||||
|
"pokerus": "Pokerus",
|
||||||
|
"hasPokerus": "Pokerus - Yes",
|
||||||
|
"noPokerus": "Pokerus - No",
|
||||||
"sortByNumber": "Pokédex-Nummer",
|
"sortByNumber": "Pokédex-Nummer",
|
||||||
"sortByCost": "Kosten",
|
"sortByCost": "Kosten",
|
||||||
"sortByCandies": "Anzahl Bonbons",
|
"sortByCandies": "Anzahl Bonbons",
|
||||||
|
@ -4,8 +4,8 @@ export const moveTriggers: SimpleTranslationEntries = {
|
|||||||
"hitWithRecoil" : "{{pokemonName}} erleidet Schaden durch Rückstoß!",
|
"hitWithRecoil" : "{{pokemonName}} erleidet Schaden durch Rückstoß!",
|
||||||
"cutHpPowerUpMove": "{{pokemonName}} nutzt seine KP um seine Attacke zu verstärken!",
|
"cutHpPowerUpMove": "{{pokemonName}} nutzt seine KP um seine Attacke zu verstärken!",
|
||||||
"absorbedElectricity": "{{pokemonName}} absorbiert elektrische Energie!",
|
"absorbedElectricity": "{{pokemonName}} absorbiert elektrische Energie!",
|
||||||
"switchedStatChanges": "{{pokemonName}}tauschte die Statuswerteveränderungen mit dem Ziel!",
|
"switchedStatChanges": "{{pokemonName}} tauschte die Statuswerteveränderungen mit dem Ziel!",
|
||||||
"goingAllOutForAttack": "{{pokemonName}}legt sich ins Zeug!",
|
"goingAllOutForAttack": "{{pokemonName}} legt sich ins Zeug!",
|
||||||
"regainedHealth": "{{pokemonName}} erholt sich!",
|
"regainedHealth": "{{pokemonName}} erholt sich!",
|
||||||
"keptGoingAndCrashed": "{{pokemonName}} springt daneben und verletzt sich!",
|
"keptGoingAndCrashed": "{{pokemonName}} springt daneben und verletzt sich!",
|
||||||
"fled": "{{pokemonName}} ist geflüchtet!",
|
"fled": "{{pokemonName}} ist geflüchtet!",
|
||||||
@ -35,7 +35,7 @@ export const moveTriggers: SimpleTranslationEntries = {
|
|||||||
"isOverflowingWithSpacePower": "Kosmische Kräfte strömen aus {{pokemonName}}!",
|
"isOverflowingWithSpacePower": "Kosmische Kräfte strömen aus {{pokemonName}}!",
|
||||||
"usedUpAllElectricity": "{{pokemonName}} braucht seinen Strom komplett auf!",
|
"usedUpAllElectricity": "{{pokemonName}} braucht seinen Strom komplett auf!",
|
||||||
"stoleItem": "{{pokemonName}} hat {{targetName}} das Item {{itemName}} geklaut!",
|
"stoleItem": "{{pokemonName}} hat {{targetName}} das Item {{itemName}} geklaut!",
|
||||||
"incineratedItem": "{{itemName}} von {{targetName}} ist verbrannt und somit nutzlos geworden!",
|
"incineratedItem": "{{pokemonName}} hat {{itemName}} von {{targetName}} verbrannt. Es ist somit nutzlos geworden!",
|
||||||
"knockedOffItem": "{{pokemonName}} schlägt das Item {{itemName}} von {{targetName}} weg!",
|
"knockedOffItem": "{{pokemonName}} schlägt das Item {{itemName}} von {{targetName}} weg!",
|
||||||
"tookMoveAttack": "{{pokemonName}} wurde von {{moveName}} getroffen!",
|
"tookMoveAttack": "{{pokemonName}} wurde von {{moveName}} getroffen!",
|
||||||
"cutOwnHpAndMaximizedStat": "{{pokemonName}} nutzt seine KP und maximiert dadurch seinen {{statName}}-Wert!",
|
"cutOwnHpAndMaximizedStat": "{{pokemonName}} nutzt seine KP und maximiert dadurch seinen {{statName}}-Wert!",
|
||||||
@ -50,5 +50,13 @@ export const moveTriggers: SimpleTranslationEntries = {
|
|||||||
"transformedIntoTarget": "{{pokemonName}} verwandelt sich in {{targetName}}!",
|
"transformedIntoTarget": "{{pokemonName}} verwandelt sich in {{targetName}}!",
|
||||||
"tryingToTakeFoeDown": "{{pokemonName}} versucht, den Angreifer mit sich zu nehmen!",
|
"tryingToTakeFoeDown": "{{pokemonName}} versucht, den Angreifer mit sich zu nehmen!",
|
||||||
"addType": "{{pokemonName}} nimmt zusätzlich den Typ {{typeName}} an!",
|
"addType": "{{pokemonName}} nimmt zusätzlich den Typ {{typeName}} an!",
|
||||||
"cannotUseMove": "{{pokemonName}} kann {{moveName}} nicht einsetzen!"
|
"cannotUseMove": "{{pokemonName}} kann {{moveName}} nicht einsetzen!",
|
||||||
|
"healHp": "KP von {{pokemonName}} wurden aufgefrischt!",
|
||||||
|
"sacrificialFullRestore": "Das Heilopfer von {{pokemonName}} erreicht sein Ziel!",
|
||||||
|
"invertStats": "Alle Statusveränderungen von {{pokemonName}} wurden invertiert!",
|
||||||
|
"resetStats": "Die Statusveränderungen von {{pokemonName}} wurden aufgehoben!",
|
||||||
|
"faintCountdown": "{{pokemonName}} geht nach {{turnCount}} Runden K.O.!",
|
||||||
|
"copyType": "{{pokemonName}} hat den Typ von {{targetPokemonName}} angenommen!",
|
||||||
|
"suppressAbilities": "Die Fähigkeit von {{pokemonName}} wirkt nicht mehr!",
|
||||||
|
"swapArenaTags": "{{pokemonName}} hat die Effekte, die auf den beiden Seiten des Kampffeldes wirken, miteinander getauscht!",
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -7,6 +7,7 @@ import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|||||||
*/
|
*/
|
||||||
export const starterSelectUiHandler: SimpleTranslationEntries = {
|
export const starterSelectUiHandler: SimpleTranslationEntries = {
|
||||||
"confirmStartTeam": "Mit diesen Pokémon losziehen?",
|
"confirmStartTeam": "Mit diesen Pokémon losziehen?",
|
||||||
|
"confirmExit": "Do you want to exit?",
|
||||||
"invalidParty": "Das ist kein gültiges Team!",
|
"invalidParty": "Das ist kein gültiges Team!",
|
||||||
"gen1": "I",
|
"gen1": "I",
|
||||||
"gen2": "II",
|
"gen2": "II",
|
||||||
|
@ -33,7 +33,7 @@ export const statusEffect: StatusEffectTranslationEntries = {
|
|||||||
description: "Paralyse",
|
description: "Paralyse",
|
||||||
obtain: "{{pokemonNameWithAffix}} wurde paralysiert!\nEs kann eventuell nicht handeln!",
|
obtain: "{{pokemonNameWithAffix}} wurde paralysiert!\nEs kann eventuell nicht handeln!",
|
||||||
obtainSource: "{{pokemonNameWithAffix}} wurde durch {{sourceText}} paralysiert,\nEs kann eventuell nicht handeln!",
|
obtainSource: "{{pokemonNameWithAffix}} wurde durch {{sourceText}} paralysiert,\nEs kann eventuell nicht handeln!",
|
||||||
activation: "{{pokemonNameWithAffix}}ist paralysiert!\nEs kann nicht angreifen!",
|
activation: "{{pokemonNameWithAffix}} ist paralysiert!\nEs kann nicht angreifen!",
|
||||||
overlap: "{{pokemonNameWithAffix}} ist bereits paralysiert!",
|
overlap: "{{pokemonNameWithAffix}} ist bereits paralysiert!",
|
||||||
heal: "Die Paralyse von {{pokemonNameWithAffix}} wurde aufgehoben!"
|
heal: "Die Paralyse von {{pokemonNameWithAffix}} wurde aufgehoben!"
|
||||||
},
|
},
|
||||||
|
@ -128,21 +128,32 @@ export const trainerClasses: SimpleTranslationEntries = {
|
|||||||
"rocket_grunt": "Rüpel von Team Rocket",
|
"rocket_grunt": "Rüpel von Team Rocket",
|
||||||
"rocket_grunt_female": "Rüpel von Team Rocket",
|
"rocket_grunt_female": "Rüpel von Team Rocket",
|
||||||
"rocket_grunts": "Rüpel von Team Rocket",
|
"rocket_grunts": "Rüpel von Team Rocket",
|
||||||
|
"rocket_admin": "Team Rocket Vorstand",
|
||||||
|
"rocket_admin_female": "Team Rocket Vorstand",
|
||||||
"magma_grunt": "Rüpel von Team Magma",
|
"magma_grunt": "Rüpel von Team Magma",
|
||||||
"magma_grunt_female": "Rüpel von Team Magma",
|
"magma_grunt_female": "Rüpel von Team Magma",
|
||||||
"magma_grunts": "Rüpel von Team Magma",
|
"magma_grunts": "Rüpel von Team Magma",
|
||||||
|
"magma_admin": "Team Magma Vorstand",
|
||||||
|
"magma_admin_female": "Team Magma Vorstand",
|
||||||
"aqua_grunt": "Rüpel von Team Aqua",
|
"aqua_grunt": "Rüpel von Team Aqua",
|
||||||
"aqua_grunt_female": "Rüpel von Team Aqua",
|
"aqua_grunt_female": "Rüpel von Team Aqua",
|
||||||
"aqua_grunts": "Rüpel von Team Aqua",
|
"aqua_grunts": "Rüpel von Team Aqua",
|
||||||
|
"aqua_admin": "Team Aqua Vorstand",
|
||||||
|
"aqua_admin_female": "Team Aqua Vorstand",
|
||||||
"galactic_grunt": "Rüpel von Team Galaktik",
|
"galactic_grunt": "Rüpel von Team Galaktik",
|
||||||
"galactic_grunt_female": "Rüpel von Team Galaktik",
|
"galactic_grunt_female": "Rüpel von Team Galaktik",
|
||||||
"galactic_grunts": "Rüpel von Team Galaktik",
|
"galactic_grunts": "Rüpel von Team Galaktik",
|
||||||
|
"galactic_admin": "Team Galaktik Commander",
|
||||||
|
"galactic_admin_female": "Team Galaktik Commander",
|
||||||
"plasma_grunt": "Rüpel von Team Plasma",
|
"plasma_grunt": "Rüpel von Team Plasma",
|
||||||
"plasma_grunt_female": "Rüpel von Team Plasma",
|
"plasma_grunt_female": "Rüpel von Team Plasma",
|
||||||
"plasma_grunts": "Rüpel von Team Plasma",
|
"plasma_grunts": "Rüpel von Team Plasma",
|
||||||
|
"plasma_sage": "Weiser von Team Plasma",
|
||||||
"flare_grunt": "Rüpel von Team Flare",
|
"flare_grunt": "Rüpel von Team Flare",
|
||||||
"flare_grunt_female": "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",
|
||||||
|
"flare_admin": "Team Flare Vorstand",
|
||||||
|
"flare_admin_female": "Team Flare Vorstand",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
// Names of special trainers like gym leaders, elite four, and the champion
|
// Names of special trainers like gym leaders, elite four, and the champion
|
||||||
|
@ -5,7 +5,8 @@ export const bgmName: SimpleTranslationEntries = {
|
|||||||
"missing_entries" : "{{name}}",
|
"missing_entries" : "{{name}}",
|
||||||
"battle_kanto_champion": "B2W2 Kanto Champion Battle",
|
"battle_kanto_champion": "B2W2 Kanto Champion Battle",
|
||||||
"battle_johto_champion": "B2W2 Johto Champion Battle",
|
"battle_johto_champion": "B2W2 Johto Champion Battle",
|
||||||
"battle_hoenn_champion": "B2W2 Hoenn Champion Battle",
|
"battle_hoenn_champion_g5": "B2W2 Hoenn Champion Battle",
|
||||||
|
"battle_hoenn_champion_g6": "ORAS Hoenn Champion Battle",
|
||||||
"battle_sinnoh_champion": "B2W2 Sinnoh Champion Battle",
|
"battle_sinnoh_champion": "B2W2 Sinnoh Champion Battle",
|
||||||
"battle_champion_alder": "BW Unova Champion Battle",
|
"battle_champion_alder": "BW Unova Champion Battle",
|
||||||
"battle_champion_iris": "B2W2 Unova Champion Battle",
|
"battle_champion_iris": "B2W2 Unova Champion Battle",
|
||||||
|
@ -391,6 +391,18 @@ export const PGMdialogue: DialogueTranslationEntries = {
|
|||||||
1: "Team Rocket blasting off again!"
|
1: "Team Rocket blasting off again!"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"rocket_admin": {
|
||||||
|
"encounter": {
|
||||||
|
1: "Oh? You managed to get this far? You must be quite the trainer.",
|
||||||
|
2: "That's quite enough of you playing hero, kid.",
|
||||||
|
3: "I'll show you how scary an angry adult can be!"
|
||||||
|
},
|
||||||
|
"victory": {
|
||||||
|
1: "No! Forgive me Giovanni!",
|
||||||
|
2: "How could this be?",
|
||||||
|
3: "Urgh... You were too strong..."
|
||||||
|
},
|
||||||
|
},
|
||||||
"magma_grunt": {
|
"magma_grunt": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1: " If you get in the way of Team Magma, don’t expect any mercy!"
|
1: " If you get in the way of Team Magma, don’t expect any mercy!"
|
||||||
@ -399,6 +411,18 @@ export const PGMdialogue: DialogueTranslationEntries = {
|
|||||||
1: "Huh? I lost?!"
|
1: "Huh? I lost?!"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"magma_admin": {
|
||||||
|
"encounter": {
|
||||||
|
1: "Hehehe! So you've come all the way here! But you're too late!",
|
||||||
|
2: "You're going to meddle in Team Magma's affairs? You're so cute you're disgusting! I'll put you down kiddy!",
|
||||||
|
3: "I'm going to give you a little taste of pain! Resign yourself to it!"
|
||||||
|
},
|
||||||
|
"victory": {
|
||||||
|
1: "Hehehe... So I lost...",
|
||||||
|
2: "You're disgustingly strong!",
|
||||||
|
3: "Ahahaha! Ouch!"
|
||||||
|
},
|
||||||
|
},
|
||||||
"aqua_grunt": {
|
"aqua_grunt": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1: "No one who crosses Team Aqua gets any mercy, not even kids!"
|
1: "No one who crosses Team Aqua gets any mercy, not even kids!"
|
||||||
@ -407,6 +431,18 @@ export const PGMdialogue: DialogueTranslationEntries = {
|
|||||||
1: "You're kidding me!"
|
1: "You're kidding me!"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"aqua_admin": {
|
||||||
|
"encounter": {
|
||||||
|
1: "I'm a cut above the grunts you've seen so far. I'm going to puvlerize you!",
|
||||||
|
2: "Hahn? What's this? Who's this spoiled brat?",
|
||||||
|
3: "What are you doing here? Did you follow us?"
|
||||||
|
},
|
||||||
|
"victory": {
|
||||||
|
1: "So I lost too...",
|
||||||
|
2: "Ahhh?! Did I go too easy on you?!",
|
||||||
|
3: "Wh-what was that?"
|
||||||
|
},
|
||||||
|
},
|
||||||
"galactic_grunt": {
|
"galactic_grunt": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1: "Don't mess with Team Galactic!"
|
1: "Don't mess with Team Galactic!"
|
||||||
@ -415,6 +451,18 @@ export const PGMdialogue: DialogueTranslationEntries = {
|
|||||||
1: "Shut down..."
|
1: "Shut down..."
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"galactic_admin": {
|
||||||
|
"encounter": {
|
||||||
|
1: "I'm one of Team Galactic's Commanders.",
|
||||||
|
2: "Anything that opposes Team Galactic must be crushed! Even the very thought of opposition will not be tolerated!",
|
||||||
|
3: "What's the matter? Don't tell me you're shaking?"
|
||||||
|
},
|
||||||
|
"victory": {
|
||||||
|
1: "This can't be?! I lost?! You... you uppity brat!",
|
||||||
|
2: "You, my friend, are tough!",
|
||||||
|
3: "Losing to some child... Being careless cost me too much."
|
||||||
|
},
|
||||||
|
},
|
||||||
"plasma_grunt": {
|
"plasma_grunt": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1: "We won't tolerate people who have different ideas!"
|
1: "We won't tolerate people who have different ideas!"
|
||||||
@ -423,6 +471,18 @@ export const PGMdialogue: DialogueTranslationEntries = {
|
|||||||
1: "Plasmaaaaaaaaa!"
|
1: "Plasmaaaaaaaaa!"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"plasma_sage": {
|
||||||
|
"encounter": {
|
||||||
|
1: "You could become a threat to Team Plasma, so we will eliminate you here!",
|
||||||
|
2: "Oh, for crying out loud... I didn't expect to have to fight!",
|
||||||
|
3: "You're an impressive Trainer to have made it this far."
|
||||||
|
},
|
||||||
|
"victory": {
|
||||||
|
1: "Ghetsis...",
|
||||||
|
2: "It's bitter cold. I'm shivering. I'm suffering.",
|
||||||
|
3: "Hmph. You're a smarter Trainer than I expected."
|
||||||
|
},
|
||||||
|
},
|
||||||
"flare_grunt": {
|
"flare_grunt": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1: "Fashion is most important to us!"
|
1: "Fashion is most important to us!"
|
||||||
@ -431,6 +491,18 @@ export const PGMdialogue: DialogueTranslationEntries = {
|
|||||||
1: "The future doesn't look bright for me."
|
1: "The future doesn't look bright for me."
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"flare_admin": {
|
||||||
|
"encounter": {
|
||||||
|
1: "Ah ha ha! It would be my pleasure. Come on, little Trainer! Let's see what you've got!",
|
||||||
|
2: "Hmm... You're more powerful than you look. I wonder how much energy there is inside you.",
|
||||||
|
3: "I've been waiting for you! I need to do a little research on you! Come, let us begin!"
|
||||||
|
},
|
||||||
|
"victory": {
|
||||||
|
1: "You're quite strong. Oh yes-very strong, indeed.",
|
||||||
|
2: "Ding-ding-ding! Yup, you did it! To the victor goes the spoils!",
|
||||||
|
3: "Wonderful! Amazing! You have tremendous skill and bravery!"
|
||||||
|
},
|
||||||
|
},
|
||||||
"rocket_boss_giovanni_1": {
|
"rocket_boss_giovanni_1": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1: "So! I must say, I am impressed you got here!"
|
1: "So! I must say, I am impressed you got here!"
|
||||||
|
@ -3,16 +3,28 @@ import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|||||||
export const filterBar: SimpleTranslationEntries = {
|
export const filterBar: SimpleTranslationEntries = {
|
||||||
"genFilter": "Gen",
|
"genFilter": "Gen",
|
||||||
"typeFilter": "Type",
|
"typeFilter": "Type",
|
||||||
|
"caughtFilter": "Caught",
|
||||||
"unlocksFilter": "Unlocks",
|
"unlocksFilter": "Unlocks",
|
||||||
"winFilter": "Win",
|
"miscFilter": "Misc",
|
||||||
"sortFilter": "Sort",
|
"sortFilter": "Sort",
|
||||||
"all": "All",
|
"all": "All",
|
||||||
"normal": "Normal",
|
"normal": "Normal",
|
||||||
"uncaught": "Uncaught",
|
"uncaught": "Uncaught",
|
||||||
|
"passive": "Passive",
|
||||||
"passiveUnlocked": "Passive Unlocked",
|
"passiveUnlocked": "Passive Unlocked",
|
||||||
"passiveLocked": "Passive Locked",
|
"passiveLocked": "Passive Locked",
|
||||||
"hasWon": "Yes",
|
"costReduction": "Cost Reduction",
|
||||||
"hasNotWon": "No",
|
"costReductionUnlocked": "Cost Reduction Unlocked",
|
||||||
|
"costReductionLocked": "Cost Reduction Locked",
|
||||||
|
"ribbon": "Ribbon",
|
||||||
|
"hasWon": "Ribbon - Yes",
|
||||||
|
"hasNotWon": "Ribbon - No",
|
||||||
|
"hiddenAbility": "Hidden Ability",
|
||||||
|
"hasHiddenAbility": "Hidden Ability - Yes",
|
||||||
|
"noHiddenAbility": "Hidden Ability - No",
|
||||||
|
"pokerus": "Pokerus",
|
||||||
|
"hasPokerus": "Pokerus - Yes",
|
||||||
|
"noPokerus": "Pokerus - No",
|
||||||
"sortByNumber": "No.",
|
"sortByNumber": "No.",
|
||||||
"sortByCost": "Cost",
|
"sortByCost": "Cost",
|
||||||
"sortByCandies": "Candy Count",
|
"sortByCandies": "Candy Count",
|
||||||
|
@ -50,5 +50,13 @@ export const moveTriggers: SimpleTranslationEntries = {
|
|||||||
"transformedIntoTarget": "{{pokemonName}} transformed\ninto {{targetName}}!",
|
"transformedIntoTarget": "{{pokemonName}} transformed\ninto {{targetName}}!",
|
||||||
"tryingToTakeFoeDown": "{{pokemonName}} is hoping to take its attacker down with it!",
|
"tryingToTakeFoeDown": "{{pokemonName}} is hoping to take its attacker down with it!",
|
||||||
"addType": "{{typeName}} was added to\n{{pokemonName}}!",
|
"addType": "{{typeName}} was added to\n{{pokemonName}}!",
|
||||||
"cannotUseMove": "{{pokemonName}} cannot use {{moveName}}!"
|
"cannotUseMove": "{{pokemonName}} cannot use {{moveName}}!",
|
||||||
|
"healHp": "{{pokemonName}} had its HP restored.",
|
||||||
|
"sacrificialFullRestore": "{{pokemonName}}'s Healing Wish\nwas granted!",
|
||||||
|
"invertStats": "{{pokemonName}}'s stat changes\nwere all reversed!",
|
||||||
|
"resetStats": "{{pokemonName}}'s stat changes\nwere eliminated!",
|
||||||
|
"faintCountdown": "{{pokemonName}}\nwill faint in {{turnCount}} turns.",
|
||||||
|
"copyType": "{{pokemonName}}'s type became the same as\n{{targetPokemonName}}'s type!",
|
||||||
|
"suppressAbilities": "{{pokemonName}}'s ability\nwas suppressed!",
|
||||||
|
"swapArenaTags": "{{pokemonName}} swapped the battle effects affecting each side of the field!",
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -7,6 +7,7 @@ import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|||||||
*/
|
*/
|
||||||
export const starterSelectUiHandler: SimpleTranslationEntries = {
|
export const starterSelectUiHandler: SimpleTranslationEntries = {
|
||||||
"confirmStartTeam": "Begin with these Pokémon?",
|
"confirmStartTeam": "Begin with these Pokémon?",
|
||||||
|
"confirmExit": "Do you want to exit?",
|
||||||
"invalidParty": "This is not a valid starting party!",
|
"invalidParty": "This is not a valid starting party!",
|
||||||
"gen1": "I",
|
"gen1": "I",
|
||||||
"gen2": "II",
|
"gen2": "II",
|
||||||
|
@ -126,17 +126,34 @@ export const trainerClasses: SimpleTranslationEntries = {
|
|||||||
"workers": "Workers",
|
"workers": "Workers",
|
||||||
"youngster": "Youngster",
|
"youngster": "Youngster",
|
||||||
"rocket_grunt": "Rocket Grunt",
|
"rocket_grunt": "Rocket Grunt",
|
||||||
|
"rocket_grunts": "Rocket Grunts",
|
||||||
"rocket_grunt_female": "Rocket Grunt",
|
"rocket_grunt_female": "Rocket Grunt",
|
||||||
|
"rocket_admin": "Rocket Admin",
|
||||||
|
"rocket_admin_female": "Rocket Admin",
|
||||||
"magma_grunt": "Magma Grunt",
|
"magma_grunt": "Magma Grunt",
|
||||||
"magma_grunt_female": "Magma Grunt",
|
"magma_grunt_female": "Magma Grunt",
|
||||||
|
"magma_grunts": "Magma Grunts",
|
||||||
|
"magma_admin": "Magma Admin",
|
||||||
|
"magma_admin_female": "Magma Admin",
|
||||||
"aqua_grunt": "Aqua Grunt",
|
"aqua_grunt": "Aqua Grunt",
|
||||||
"aqua_grunt_female": "Aqua Grunt",
|
"aqua_grunt_female": "Aqua Grunt",
|
||||||
|
"aqua_grunts": "Aqua Grunts",
|
||||||
|
"aqua_admin": "Aqua Admin",
|
||||||
|
"aqua_admin_female": "Aqua Admin",
|
||||||
"galactic_grunt": "Galactic Grunt",
|
"galactic_grunt": "Galactic Grunt",
|
||||||
"galactic_grunt_female": "Galactic Grunt",
|
"galactic_grunt_female": "Galactic Grunt",
|
||||||
|
"galactic_grunts": "Galactic Grunts",
|
||||||
|
"galactic_admin": "Galactic Admin",
|
||||||
|
"galactic_admin_female": "Galactic Admin",
|
||||||
"plasma_grunt": "Plasma Grunt",
|
"plasma_grunt": "Plasma Grunt",
|
||||||
"plasma_grunt_female": "Plasma Grunt",
|
"plasma_grunt_female": "Plasma Grunt",
|
||||||
|
"plasma_grunts": "Plasma Grunts",
|
||||||
|
"plasma_sage": "Plasma Sage",
|
||||||
"flare_grunt": "Flare Grunt",
|
"flare_grunt": "Flare Grunt",
|
||||||
"flare_grunt_female": "Flare Grunt",
|
"flare_grunt_female": "Flare Grunt",
|
||||||
|
"flare_grunts": "Flare Grunts",
|
||||||
|
"flare_admin": "Flare Admin",
|
||||||
|
"flare_admin_female": "Flare Admin",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
// Names of special trainers like gym leaders, elite four, and the champion
|
// Names of special trainers like gym leaders, elite four, and the champion
|
||||||
|
@ -5,7 +5,8 @@ export const bgmName: SimpleTranslationEntries = {
|
|||||||
"missing_entries" : "{{name}}",
|
"missing_entries" : "{{name}}",
|
||||||
"battle_kanto_champion": "B2W2 - ¡Vs Campeón de Kanto!",
|
"battle_kanto_champion": "B2W2 - ¡Vs Campeón de Kanto!",
|
||||||
"battle_johto_champion": "B2W2 - ¡Vs Campeón de Johto!",
|
"battle_johto_champion": "B2W2 - ¡Vs Campeón de Johto!",
|
||||||
"battle_hoenn_champion": "B2W2 - ¡Vs Campeón de Hoenn!",
|
"battle_hoenn_champion_g5": "B2W2 - ¡Vs Campeón de Hoenn!",
|
||||||
|
"battle_hoenn_champion_g6": "ORAS - ¡Vs Campeón de Hoenn!",
|
||||||
"battle_sinnoh_champion": "B2W2 - ¡Vs Campeón de Sinnoh!",
|
"battle_sinnoh_champion": "B2W2 - ¡Vs Campeón de Sinnoh!",
|
||||||
"battle_champion_alder": "BW - ¡Vs Campeón de Teselia!",
|
"battle_champion_alder": "BW - ¡Vs Campeón de Teselia!",
|
||||||
"battle_champion_iris": "B2W2 - ¡Vs Campeón de Teselia!",
|
"battle_champion_iris": "B2W2 - ¡Vs Campeón de Teselia!",
|
||||||
|
@ -3,16 +3,28 @@ import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|||||||
export const filterBar: SimpleTranslationEntries = {
|
export const filterBar: SimpleTranslationEntries = {
|
||||||
"genFilter": "Gen.",
|
"genFilter": "Gen.",
|
||||||
"typeFilter": "Tipo",
|
"typeFilter": "Tipo",
|
||||||
|
"caughtFilter": "Caught",
|
||||||
"unlocksFilter": "Otros",
|
"unlocksFilter": "Otros",
|
||||||
"winFilter": "Vic.",
|
"miscFilter": "Misc",
|
||||||
"sortFilter": "Orden",
|
"sortFilter": "Orden",
|
||||||
"all": "Todo",
|
"all": "Todo",
|
||||||
"normal": "Normal",
|
"normal": "Normal",
|
||||||
"uncaught": "No Capt.",
|
"uncaught": "No Capt.",
|
||||||
|
"passive": "Passive",
|
||||||
"passiveUnlocked": "Pasiva Desbloq.",
|
"passiveUnlocked": "Pasiva Desbloq.",
|
||||||
"passiveLocked": "Pasiva Bloq.",
|
"passiveLocked": "Pasiva Bloq.",
|
||||||
|
"costReduction": "Cost Reduction",
|
||||||
|
"costReductionUnlocked": "Cost Reduction Unlocked",
|
||||||
|
"costReductionLocked": "Cost Reduction Locked",
|
||||||
|
"ribbon": "Ribbon",
|
||||||
"hasWon": "Ya ha ganado",
|
"hasWon": "Ya ha ganado",
|
||||||
"hasNotWon": "Aún no ha ganado",
|
"hasNotWon": "Aún no ha ganado",
|
||||||
|
"hiddenAbility": "Hidden Ability",
|
||||||
|
"hasHiddenAbility": "Hidden Ability - Yes",
|
||||||
|
"noHiddenAbility": "Hidden Ability - No",
|
||||||
|
"pokerus": "Pokerus",
|
||||||
|
"hasPokerus": "Pokerus - Yes",
|
||||||
|
"noPokerus": "Pokerus - No",
|
||||||
"sortByNumber": "Núm.",
|
"sortByNumber": "Núm.",
|
||||||
"sortByCost": "Coste",
|
"sortByCost": "Coste",
|
||||||
"sortByCandies": "# Caramelos",
|
"sortByCandies": "# Caramelos",
|
||||||
|
@ -50,5 +50,13 @@ export const moveTriggers: SimpleTranslationEntries = {
|
|||||||
"transformedIntoTarget": "{{pokemonName}} transformed\ninto {{targetName}}!",
|
"transformedIntoTarget": "{{pokemonName}} transformed\ninto {{targetName}}!",
|
||||||
"tryingToTakeFoeDown": "{{pokemonName}} is hoping to take its attacker down with it!",
|
"tryingToTakeFoeDown": "{{pokemonName}} is hoping to take its attacker down with it!",
|
||||||
"addType": "{{typeName}} was added to\n{{pokemonName}}!",
|
"addType": "{{typeName}} was added to\n{{pokemonName}}!",
|
||||||
"cannotUseMove": "{{pokemonName}} cannot use {{moveName}}!"
|
"cannotUseMove": "{{pokemonName}} cannot use {{moveName}}!",
|
||||||
|
"healHp": "{{pokemonName}} had its HP restored.",
|
||||||
|
"sacrificialFullRestore": "{{pokemonName}}'s Healing Wish\nwas granted!",
|
||||||
|
"invertStats": "{{pokemonName}}'s stat changes\nwere all reversed!",
|
||||||
|
"resetStats": "{{pokemonName}}'s stat changes\nwere eliminated!",
|
||||||
|
"faintCountdown": "{{pokemonName}}\nwill faint in {{turnCount}} turns.",
|
||||||
|
"copyType": "{{pokemonName}}'s type\nchanged to match {{targetPokemonName}}'s!",
|
||||||
|
"suppressAbilities": "{{pokemonName}}'s ability\nwas suppressed!",
|
||||||
|
"swapArenaTags": "{{pokemonName}} swapped the battle effects affecting each side of the field!",
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -7,6 +7,7 @@ import { SimpleTranslationEntries } from "#app/interfaces/locales";
|
|||||||
*/
|
*/
|
||||||
export const starterSelectUiHandler: SimpleTranslationEntries = {
|
export const starterSelectUiHandler: SimpleTranslationEntries = {
|
||||||
"confirmStartTeam": "¿Comenzar con estos Pokémon?",
|
"confirmStartTeam": "¿Comenzar con estos Pokémon?",
|
||||||
|
"confirmExit": "Do you want to exit?",
|
||||||
"invalidParty": "¡Este equipo no es válido!",
|
"invalidParty": "¡Este equipo no es válido!",
|
||||||
"gen1": "I",
|
"gen1": "I",
|
||||||
"gen2": "II",
|
"gen2": "II",
|
||||||
|
@ -117,7 +117,35 @@ export const trainerClasses: SimpleTranslationEntries = {
|
|||||||
"worker": "Operario",
|
"worker": "Operario",
|
||||||
"worker_female": "Operaria",
|
"worker_female": "Operaria",
|
||||||
"workers": "Operarios",
|
"workers": "Operarios",
|
||||||
"youngster": "Joven"
|
"youngster": "Joven",
|
||||||
|
"rocket_grunt": "Rocket Grunt",
|
||||||
|
"rocket_grunts": "Rocket Grunts",
|
||||||
|
"rocket_grunt_female": "Rocket Grunt",
|
||||||
|
"rocket_admin": "Rocket Admin",
|
||||||
|
"rocket_admin_female": "Rocket Admin",
|
||||||
|
"magma_grunt": "Magma Grunt",
|
||||||
|
"magma_grunt_female": "Magma Grunt",
|
||||||
|
"magma_grunts": "Magma Grunts",
|
||||||
|
"magma_admin": "Magma Admin",
|
||||||
|
"magma_admin_female": "Magma Admin",
|
||||||
|
"aqua_grunt": "Aqua Grunt",
|
||||||
|
"aqua_grunt_female": "Aqua Grunt",
|
||||||
|
"aqua_grunts": "Aqua Grunts",
|
||||||
|
"aqua_admin": "Aqua Admin",
|
||||||
|
"aqua_admin_female": "Aqua Admin",
|
||||||
|
"galactic_grunt": "Galactic Grunt",
|
||||||
|
"galactic_grunt_female": "Galactic Grunt",
|
||||||
|
"galactic_grunts": "Galactic Grunts",
|
||||||
|
"galactic_admin": "Galactic Admin",
|
||||||
|
"galactic_admin_female": "Galactic Admin",
|
||||||
|
"plasma_grunt": "Plasma Grunt",
|
||||||
|
"plasma_grunt_female": "Plasma Grunt",
|
||||||
|
"plasma_grunts": "Plasma Grunts",
|
||||||
|
"flare_grunt": "Flare Grunt",
|
||||||
|
"flare_grunt_female": "Flare Grunt",
|
||||||
|
"flare_grunts": "Flare Grunts",
|
||||||
|
"flare_admin": "Flare Admin",
|
||||||
|
"flare_admin_female": "Flare Admin",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
// Names of special trainers like gym leaders, elite four, and the champion
|
// Names of special trainers like gym leaders, elite four, and the champion
|
||||||
|
@ -264,6 +264,10 @@ export const PGMachv: AchievementTranslationEntries = {
|
|||||||
"MONO_FAIRY": {
|
"MONO_FAIRY": {
|
||||||
name: "Hey ! Listen !",
|
name: "Hey ! Listen !",
|
||||||
},
|
},
|
||||||
|
"FRESH_START": {
|
||||||
|
name: "Du premier coup !",
|
||||||
|
description: "Terminer un challenge « Nouveau départ »."
|
||||||
|
}
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
// Achievement translations for the when the player character is female (it for now uses the same translations as the male version)
|
// Achievement translations for the when the player character is female (it for now uses the same translations as the male version)
|
||||||
@ -530,4 +534,8 @@ export const PGFachv: AchievementTranslationEntries = {
|
|||||||
"MONO_FAIRY": {
|
"MONO_FAIRY": {
|
||||||
name: "Hey ! Listen !",
|
name: "Hey ! Listen !",
|
||||||
},
|
},
|
||||||
|
"FRESH_START": {
|
||||||
|
name: "Du premier coup !",
|
||||||
|
description: "Terminer un challenge « Nouveau départ »."
|
||||||
|
}
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -5,7 +5,8 @@ export const bgmName: SimpleTranslationEntries = {
|
|||||||
"missing_entries" : "{{name}}",
|
"missing_entries" : "{{name}}",
|
||||||
"battle_kanto_champion": "N2B2 - Vs. Maitre de Kanto",
|
"battle_kanto_champion": "N2B2 - Vs. Maitre de Kanto",
|
||||||
"battle_johto_champion": "N2B2 - Vs. Maitre de Johto",
|
"battle_johto_champion": "N2B2 - Vs. Maitre de Johto",
|
||||||
"battle_hoenn_champion": "N2B2 - Vs. Maitre de Hoenn",
|
"battle_hoenn_champion_g5": "N2B2 - Vs. Maitre de Hoenn",
|
||||||
|
"battle_hoenn_champion_g6": "ROSA - Vs. Maitre de Hoenn",
|
||||||
"battle_sinnoh_champion": "N2B2 - Vs. Maitresse de Sinnoh",
|
"battle_sinnoh_champion": "N2B2 - Vs. Maitresse de Sinnoh",
|
||||||
"battle_champion_alder": "NB - Vs. Maitre d’Unys",
|
"battle_champion_alder": "NB - Vs. Maitre d’Unys",
|
||||||
"battle_champion_iris": "N2B2 - Vs. Maitresse d’Unys",
|
"battle_champion_iris": "N2B2 - Vs. Maitresse d’Unys",
|
||||||
@ -74,16 +75,16 @@ export const bgmName: SimpleTranslationEntries = {
|
|||||||
"battle_wild": "NB - Vs. Pokémon sauvage",
|
"battle_wild": "NB - Vs. Pokémon sauvage",
|
||||||
"battle_wild_strong": "NB - Vs. Pokémon puissant sauvage",
|
"battle_wild_strong": "NB - Vs. Pokémon puissant sauvage",
|
||||||
"end_summit": "PDM ÉSDX - Tour Céleste",
|
"end_summit": "PDM ÉSDX - Tour Céleste",
|
||||||
"battle_rocket_grunt": "HGSS Team Rocket Battle",
|
"battle_rocket_grunt": "HGSS Vs. Team Rocket",
|
||||||
"battle_aqua_magma_grunt": "ORAS Team Aqua & Magma Battle",
|
"battle_aqua_magma_grunt": "ROSA Vs. Team Aqua/Magma",
|
||||||
"battle_galactic_grunt": "BDSP Team Galactic Battle",
|
"battle_galactic_grunt": "DÉPS Vs. Team Galaxie",
|
||||||
"battle_plasma_grunt": "NB - Vs. Team Plasma",
|
"battle_plasma_grunt": "NB - Vs. Team Plasma",
|
||||||
"battle_flare_grunt": "XY Team Flare Battle",
|
"battle_flare_grunt": "XY - Vs. Team Flare",
|
||||||
"battle_rocket_boss": "USUM Giovanni Battle",
|
"battle_rocket_boss": "USUL - Vs. Giovanni",
|
||||||
"battle_aqua_magma_boss": "ORAS Archie & Maxie Battle",
|
"battle_aqua_magma_boss": "ROSA - Vs. Max/Arthur",
|
||||||
"battle_galactic_boss": "BDSP Cyrus Battle",
|
"battle_galactic_boss": "DÉPS - Vs. Hélio",
|
||||||
"battle_plasma_boss": "B2W2 Ghetsis Battle",
|
"battle_plasma_boss": "N2B2 - Vs. Ghetis",
|
||||||
"battle_flare_boss": "XY Lysandre Battle",
|
"battle_flare_boss": "XY - Vs. Lysandre",
|
||||||
|
|
||||||
// Biome Music
|
// Biome Music
|
||||||
"abyss": "PDM EdS - Cratère Obscur",
|
"abyss": "PDM EdS - Cratère Obscur",
|
||||||
|
@ -2,7 +2,7 @@ import { TranslationEntries } from "#app/interfaces/locales";
|
|||||||
|
|
||||||
export const challenges: TranslationEntries = {
|
export const challenges: TranslationEntries = {
|
||||||
"title": "Paramètres du Challenge",
|
"title": "Paramètres du Challenge",
|
||||||
"illegalEvolution": "{{pokemon}} s’est transformé en Pokémon\ninéligible pour ce challenge !",
|
"illegalEvolution": "{{pokemon}} est devenu\ninéligible pour ce challenge !",
|
||||||
"singleGeneration": {
|
"singleGeneration": {
|
||||||
"name": "Mono-génération",
|
"name": "Mono-génération",
|
||||||
"desc": "Vous ne pouvez choisir que des Pokémon de {{gen}} génération.",
|
"desc": "Vous ne pouvez choisir que des Pokémon de {{gen}} génération.",
|
||||||
@ -23,4 +23,10 @@ export const challenges: TranslationEntries = {
|
|||||||
"desc_default": "Vous ne pouvez choisir que des Pokémon du type sélectionné."
|
"desc_default": "Vous ne pouvez choisir que des Pokémon du type sélectionné."
|
||||||
//type in pokemon-info
|
//type in pokemon-info
|
||||||
},
|
},
|
||||||
|
"freshStart": {
|
||||||
|
"name": "Nouveau départ",
|
||||||
|
"desc": "Vous ne pouvez choisir que les starters de base du jeu, comme si vous le recommenciez.",
|
||||||
|
"value.0": "Non",
|
||||||
|
"value.1": "Oui",
|
||||||
|
}
|
||||||
} as const;
|
} as const;
|
||||||
|
@ -2898,6 +2898,18 @@ export const PGFdialogue: DialogueTranslationEntries = {
|
|||||||
1: "Une fois de plus la Team Rocket s’envole vers d’autres cieux !"
|
1: "Une fois de plus la Team Rocket s’envole vers d’autres cieux !"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"rocket_admin": {
|
||||||
|
"encounter": {
|
||||||
|
1: "Oh? You managed to get this far? You must be quite the trainer.",
|
||||||
|
2: "That's quite enough of you playing hero, kid.",
|
||||||
|
3: "I'll show you how scary an angry adult can be!"
|
||||||
|
},
|
||||||
|
"victory": {
|
||||||
|
1: "No! Forgive me Giovanni!",
|
||||||
|
2: "How could this be?",
|
||||||
|
3: "Urgh... You were too strong..."
|
||||||
|
},
|
||||||
|
},
|
||||||
"magma_grunt": {
|
"magma_grunt": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1: "N’espère pas recevoir de la pitié si tu te mets sur le chemin de la Team Magma !"
|
1: "N’espère pas recevoir de la pitié si tu te mets sur le chemin de la Team Magma !"
|
||||||
@ -2906,6 +2918,18 @@ export const PGFdialogue: DialogueTranslationEntries = {
|
|||||||
1: "Je…?\nJ’ai perdu ?!"
|
1: "Je…?\nJ’ai perdu ?!"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"magma_admin": {
|
||||||
|
"encounter": {
|
||||||
|
1: "Hehehe! So you've come all the way here! But you're too late!",
|
||||||
|
2: "You're going to meddle in Team Magma's affairs? You're so cute you're disgusting! I'll put you down kiddy!",
|
||||||
|
3: "I'm going to give you a little taste of pain! Resign yourself to it!"
|
||||||
|
},
|
||||||
|
"victory": {
|
||||||
|
1: "Hehehe... So I lost...",
|
||||||
|
2: "You're disgustingly strong!",
|
||||||
|
3: "Ahahaha! Ouch!"
|
||||||
|
},
|
||||||
|
},
|
||||||
"aqua_grunt": {
|
"aqua_grunt": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1: "Aucune pitié si tu te mets sur le chemin de la Team Aqua, même pour une gamine !"
|
1: "Aucune pitié si tu te mets sur le chemin de la Team Aqua, même pour une gamine !"
|
||||||
@ -2914,6 +2938,18 @@ export const PGFdialogue: DialogueTranslationEntries = {
|
|||||||
1: "Comment ça ?"
|
1: "Comment ça ?"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"aqua_admin": {
|
||||||
|
"encounter": {
|
||||||
|
1: "I'm a cut above the grunts you've seen so far. I'm going to puvlerize you!",
|
||||||
|
2: "Hahn? What's this? Who's this spoiled brat?",
|
||||||
|
3: "What are you doing here? Did you follow us?"
|
||||||
|
},
|
||||||
|
"victory": {
|
||||||
|
1: "So I lost too...",
|
||||||
|
2: "Ahhh?! Did I go too easy on you?!",
|
||||||
|
3: "Wh-what was that?"
|
||||||
|
},
|
||||||
|
},
|
||||||
"galactic_grunt": {
|
"galactic_grunt": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1: "Ne te mets pas en travers de la Team Galaxie !"
|
1: "Ne te mets pas en travers de la Team Galaxie !"
|
||||||
@ -2922,6 +2958,18 @@ export const PGFdialogue: DialogueTranslationEntries = {
|
|||||||
1: "Désactivation…"
|
1: "Désactivation…"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"galactic_admin": {
|
||||||
|
"encounter": {
|
||||||
|
1: "I'm one of Team Galactic's Commanders.",
|
||||||
|
2: "Anything that opposes Team Galactic must be crushed! Even the very thought of opposition will not be tolerated!",
|
||||||
|
3: "What's the matter? Don't tell me you're shaking?"
|
||||||
|
},
|
||||||
|
"victory": {
|
||||||
|
1: "This can't be?! I lost?! You... you uppity brat!",
|
||||||
|
2: "You, my friend, are tough!",
|
||||||
|
3: "Losing to some child... Being careless cost me too much."
|
||||||
|
},
|
||||||
|
},
|
||||||
"plasma_grunt": {
|
"plasma_grunt": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1: "Pas de quatiers à ceux qui ne suivent pas notre idéal !"
|
1: "Pas de quatiers à ceux qui ne suivent pas notre idéal !"
|
||||||
@ -2930,6 +2978,18 @@ export const PGFdialogue: DialogueTranslationEntries = {
|
|||||||
1: "Plasmaaaaaaaaa !"
|
1: "Plasmaaaaaaaaa !"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"plasma_sage": {
|
||||||
|
"encounter": {
|
||||||
|
1: "You could become a threat to Team Plasma, so we will eliminate you here!",
|
||||||
|
2: "Oh, for crying out loud... I didn't expect to have to fight!",
|
||||||
|
3: "You're an impressive Trainer to have made it this far."
|
||||||
|
},
|
||||||
|
"victory": {
|
||||||
|
1: "Ghetsis...",
|
||||||
|
2: "It's bitter cold. I'm shivering. I'm suffering.",
|
||||||
|
3: "Hmph. You're a smarter Trainer than I expected."
|
||||||
|
},
|
||||||
|
},
|
||||||
"flare_grunt": {
|
"flare_grunt": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1: "Le style et le bon gout, il n’y a que ça qui compte !"
|
1: "Le style et le bon gout, il n’y a que ça qui compte !"
|
||||||
@ -2938,6 +2998,18 @@ export const PGFdialogue: DialogueTranslationEntries = {
|
|||||||
1: "Mon futur me semble guère radieux."
|
1: "Mon futur me semble guère radieux."
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"flare_admin": {
|
||||||
|
"encounter": {
|
||||||
|
1: "Ah ha ha! It would be my pleasure. Come on, little Trainer! Let's see what you've got!",
|
||||||
|
2: "Hmm... You're more powerful than you look. I wonder how much energy there is inside you.",
|
||||||
|
3: "I've been waiting for you! I need to do a little research on you! Come, let us begin!"
|
||||||
|
},
|
||||||
|
"victory": {
|
||||||
|
1: "You're quite strong. Oh yes-very strong, indeed.",
|
||||||
|
2: "Ding-ding-ding! Yup, you did it! To the victor goes the spoils!",
|
||||||
|
3: "Wonderful! Amazing! You have tremendous skill and bravery!"
|
||||||
|
},
|
||||||
|
},
|
||||||
"rocket_boss_giovanni_1": {
|
"rocket_boss_giovanni_1": {
|
||||||
"encounter": {
|
"encounter": {
|
||||||
1: "Bien. Je dois admettre que je suis impressionné de te voir ici !"
|
1: "Bien. Je dois admettre que je suis impressionné de te voir ici !"
|
||||||
|