Merge branch 'merge'
264
.all-contributorsrc
Normal file
@ -0,0 +1,264 @@
|
||||
{
|
||||
"projectName": "pokeemerald-expansion",
|
||||
"projectOwner": "rh-hideout",
|
||||
"repoType": "github",
|
||||
"repoHost": "https://github.com",
|
||||
"files": [
|
||||
"CREDITS.md"
|
||||
],
|
||||
"imageSize": 100,
|
||||
"commit": true,
|
||||
"commitConvention": "none",
|
||||
"contributors": [
|
||||
{
|
||||
"login": "AgustinGDLV",
|
||||
"name": "AgustinGDLV",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/103095241?v=4",
|
||||
"profile": "https://github.com/AgustinGDLV",
|
||||
"contributions": [
|
||||
"maintenance",
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "AlexOn1ine",
|
||||
"name": "Alex",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/93446519?v=4",
|
||||
"profile": "https://github.com/AlexOn1ine",
|
||||
"contributions": [
|
||||
"maintenance",
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Bassoonian",
|
||||
"name": "Bassoonian",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/16993385?v=4",
|
||||
"profile": "https://github.com/Bassoonian",
|
||||
"contributions": [
|
||||
"maintenance",
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "DizzyEggg",
|
||||
"name": "DizzyEggg",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/16259973?v=4",
|
||||
"profile": "https://github.com/DizzyEggg",
|
||||
"contributions": [
|
||||
"maintenance",
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "ghoulslash",
|
||||
"name": "ghoulslash",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/41651341?v=4",
|
||||
"profile": "https://github.com/ghoulslash",
|
||||
"contributions": [
|
||||
"maintenance",
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "hedara90",
|
||||
"name": "hedara90",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/149414898?v=4",
|
||||
"profile": "https://github.com/hedara90",
|
||||
"contributions": [
|
||||
"maintenance",
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "mrgriffin",
|
||||
"name": "Martin Griffin",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/838573?v=4",
|
||||
"profile": "http://www.martin-griffin.com/",
|
||||
"contributions": [
|
||||
"maintenance",
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Pawkkie",
|
||||
"name": "Pawkkie",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/61265402?v=4",
|
||||
"profile": "https://github.com/Pawkkie",
|
||||
"contributions": [
|
||||
"maintenance",
|
||||
"code",
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "SBird1337",
|
||||
"name": "Philipp AUER",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/3799173?v=4",
|
||||
"profile": "https://github.com/SBird1337",
|
||||
"contributions": [
|
||||
"maintenance",
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "tertu-m",
|
||||
"name": "tertu",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/836640?v=4",
|
||||
"profile": "https://github.com/tertu-m",
|
||||
"contributions": [
|
||||
"maintenance",
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "pkmnsnfrn",
|
||||
"name": "psf",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/77138753?v=4",
|
||||
"profile": "https://linktr.ee/pkmnsnfrn",
|
||||
"contributions": [
|
||||
"maintenance",
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "wiz1989",
|
||||
"name": "wiz1989",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/80073265?v=4",
|
||||
"profile": "https://github.com/wiz1989",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "PCG06",
|
||||
"name": "PCG",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/75729017?v=4",
|
||||
"profile": "https://github.com/PCG06",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "kittenchilly",
|
||||
"name": "kittenchilly",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/23617175?v=4",
|
||||
"profile": "https://github.com/kittenchilly",
|
||||
"contributions": [
|
||||
"code",
|
||||
"research",
|
||||
"data"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "ExpoSeed",
|
||||
"name": "ExpoSeed",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/43502820?v=4",
|
||||
"profile": "https://github.com/ExpoSeed",
|
||||
"contributions": [
|
||||
"code",
|
||||
"maintenance",
|
||||
"review"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "LinathanZel",
|
||||
"name": "Linathan",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/35115312?v=4",
|
||||
"profile": "https://github.com/LinathanZel",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "AsparagusEduardo",
|
||||
"name": "Eduardo Quezada",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/2904965?v=4",
|
||||
"profile": "https://github.com/AsparagusEduardo",
|
||||
"contributions": [
|
||||
"code",
|
||||
"data",
|
||||
"doc",
|
||||
"infra",
|
||||
"maintenance",
|
||||
"projectManagement",
|
||||
"promotion",
|
||||
"research",
|
||||
"review",
|
||||
"test",
|
||||
"tutorial",
|
||||
"userTesting"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "khbsd",
|
||||
"name": "khbsd",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/26092020?v=4",
|
||||
"profile": "https://github.com/khbsd",
|
||||
"contributions": [
|
||||
"doc",
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Cafeei",
|
||||
"name": "Cafe",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/46283144?v=4",
|
||||
"profile": "https://github.com/Cafeei",
|
||||
"contributions": [
|
||||
"design"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "agsmgmaster64",
|
||||
"name": "agsmgmaster64",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/67435611?v=4",
|
||||
"profile": "https://github.com/agsmgmaster64",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "RubyRaven6",
|
||||
"name": "Ruby",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/178652077?v=4",
|
||||
"profile": "https://github.com/RubyRaven6",
|
||||
"contributions": [
|
||||
"code",
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "mudskipper13",
|
||||
"name": "mudskipper13",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/105766191?v=4",
|
||||
"profile": "https://github.com/mudskipper13",
|
||||
"contributions": [
|
||||
"code",
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "surskitty",
|
||||
"name": "surskitty",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1383512?v=4",
|
||||
"profile": "https://github.com/surskitty",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "grintoul1",
|
||||
"name": "grintoul",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/166724814?v=4",
|
||||
"profile": "https://github.com/grintoul1",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contributorsPerLine": 7,
|
||||
"linkToUsage": true,
|
||||
"commitType": "docs",
|
||||
"skipCi": true
|
||||
}
|
||||
@ -6,22 +6,42 @@ body:
|
||||
attributes:
|
||||
value: |
|
||||
Please fill in all required fields with as many details as possible.
|
||||
Once your bug is posted, make sure you and your collaborators are added to `CREDITS.md` by [tagging the bot on GitHub](https://github.com/rh-hideout/pokeemerald-expansion/wiki/CREDITS.md-Frequently-Asked-Questions). EVERY contribution matters, even reporting bugs!
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: |
|
||||
Describe the issue you are experiencing.
|
||||
Attach images/videos if possible.
|
||||
What behavior are you expecting to happen? What behavior are you observing instead?
|
||||
placeholder: |
|
||||
Please enter a description of the issue. Here you can also attach log screenshots, gifs or a video
|
||||
Please be as descriptive as possible.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: reproduction
|
||||
attributes:
|
||||
label: Reproduction Steps
|
||||
description: |
|
||||
What exact steps can somebody else follow in order to recreate the issue on their own?
|
||||
placeholder: |
|
||||
Provide as much context as possible as to what was done to create the issue.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: media
|
||||
attributes:
|
||||
label: Images / Video
|
||||
description: |
|
||||
Do you have images or videos to show the problem happen?
|
||||
placeholder: |
|
||||
Here you can also attach logs, screenshots, gifs or a video.
|
||||
validations:
|
||||
required: false
|
||||
- type: dropdown
|
||||
id: version
|
||||
attributes:
|
||||
label: Version
|
||||
description: What version of pokeemerald-expansion are you using as a base?
|
||||
description: What version of pokeemerald-expansion are you using?
|
||||
options:
|
||||
- 1.11.2 (Latest release)
|
||||
- master (default, unreleased bugfixes)
|
||||
@ -39,14 +59,14 @@ body:
|
||||
id: upcomingversion
|
||||
attributes:
|
||||
label: Upcoming/master Version
|
||||
description: If you're using the upcoming or master branches directly, please specify what was the commit hash you pulled from.
|
||||
description: If you're using the `upcoming` or `master` branches directly, please use the following command to give us the commit hash that you are on. `git log --merges RHH/upcoming -1 --format=%H` Replace `upcoming` with `master` if you're using `master`.
|
||||
validations:
|
||||
required: false
|
||||
- type: input
|
||||
id: contact
|
||||
attributes:
|
||||
label: Discord contact info
|
||||
description: Provide your Discord tag here so we can contact you in case we need more details. Be sure to join our server ([here](https://discord.gg/6CzjAG6GZk)).
|
||||
description: Provide your Discord tag here so we can contact you in case we need more details. Discussion around **`pokeemerald-expansion`** happens in our [Discord server](https://discord.gg/6CzjAG6GZk).
|
||||
placeholder: ex. Lunos#4026
|
||||
validations:
|
||||
required: false
|
||||
|
||||
32
.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml
vendored
@ -6,22 +6,42 @@ body:
|
||||
attributes:
|
||||
value: |
|
||||
Please fill in all required fields with as many details as possible.
|
||||
Once your bug is posted, make sure you and your collaborators are added to `CREDITS.md` by [tagging the bot on GitHub](https://github.com/rh-hideout/pokeemerald-expansion/wiki/CREDITS.md-Frequently-Asked-Questions). EVERY contribution matters, even reporting bugs!
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: |
|
||||
Describe the issue you are experiencing.
|
||||
Attach images/videos if possible.
|
||||
What behavior are you expecting to happen? What behavior are you observing instead?
|
||||
placeholder: |
|
||||
Please enter a description of the issue. Here you can also attach log screenshots, gifs or a video
|
||||
Please be as descriptive as possible.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: reproduction
|
||||
attributes:
|
||||
label: Reproduction Steps
|
||||
description: |
|
||||
What exact steps can somebody else follow in order to recreate the issue on their own?
|
||||
placeholder: |
|
||||
Provide as much context as possible as to what was done to create the issue.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: media
|
||||
attributes:
|
||||
label: Images / Video
|
||||
description: |
|
||||
Do you have images or videos to show the problem happen?
|
||||
placeholder: |
|
||||
Here you can also attach logs, screenshots, gifs or a video.
|
||||
validations:
|
||||
required: false
|
||||
- type: dropdown
|
||||
id: version
|
||||
attributes:
|
||||
label: Version
|
||||
description: What version of pokeemerald-expansion are you using as a base?
|
||||
description: What version of pokeemerald-expansion are you using?
|
||||
options:
|
||||
- 1.11.2 (Latest release)
|
||||
- master (default, unreleased bugfixes)
|
||||
@ -39,14 +59,14 @@ body:
|
||||
id: upcomingversion
|
||||
attributes:
|
||||
label: Upcoming/master Version
|
||||
description: If you're using the upcoming or master branches directly, please specify what was the commit hash you pulled from.
|
||||
description: If you're using the `upcoming` or `master` branches directly, please use the following command to give us the commit hash that you are on. `git log --merges RHH/upcoming -1 --format=%H` Replace `upcoming` with `master` if you're using `master`.
|
||||
validations:
|
||||
required: false
|
||||
- type: input
|
||||
id: contact
|
||||
attributes:
|
||||
label: Discord contact info
|
||||
description: Provide your Discord tag here so we can contact you in case we need more details. Be sure to join our server ([here](https://discord.gg/6CzjAG6GZk)).
|
||||
description: Provide your Discord tag here so we can contact you in case we need more details. Discussion around **`pokeemerald-expansion`** happens in our [Discord server](https://discord.gg/6CzjAG6GZk).
|
||||
placeholder: ex. Lunos#4026
|
||||
validations:
|
||||
required: false
|
||||
|
||||
23
.github/ISSUE_TEMPLATE/03_feature_requests.yaml
vendored
@ -6,22 +6,33 @@ body:
|
||||
attributes:
|
||||
value: |
|
||||
Please fill in all required fields with as many details as possible.
|
||||
Once your feature request is posted, make sure you and your collaborators are added to `CREDITS.md` by [tagging the bot on GitHub](https://github.com/rh-hideout/pokeemerald-expansion/wiki/CREDITS.md-Frequently-Asked-Questions). EVERY contribution matters, even requesting issues!
|
||||
|
||||
- type: textarea
|
||||
id: description
|
||||
id: behavior
|
||||
attributes:
|
||||
label: Description
|
||||
label: Behavior Description
|
||||
description: |
|
||||
Describe the issue you are experiencing.
|
||||
Attach images/videos if possible.
|
||||
What is the current behavior? What behavior would you expect your feature request to provide? What other information can you provide to help your feature get implemented?
|
||||
placeholder: |
|
||||
Please enter a description of the issue. Here you can also attach log screenshots, gifs or a video
|
||||
Provide as much context as possible.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: media
|
||||
attributes:
|
||||
label: Images / Video
|
||||
description: |
|
||||
Have other projects or games solved this problem? Do you have images or video to show this happening?
|
||||
placeholder: |
|
||||
Here you can also attach logs, screenshots, gifs or a video.
|
||||
validations:
|
||||
required: false
|
||||
- type: input
|
||||
id: contact
|
||||
attributes:
|
||||
label: Discord contact info
|
||||
description: Provide your Discord tag here so we can contact you in case we need more details. Be sure to join our server ([here](https://discord.gg/6CzjAG6GZk)).
|
||||
description: Provide your Discord tag here so we can contact you in case we need more details. Discussion around **pokeemerald-expansion** happens in our [Discord server](https://discord.gg/6CzjAG6GZk).
|
||||
placeholder: ex. Lunos#4026
|
||||
validations:
|
||||
required: false
|
||||
|
||||
32
.github/ISSUE_TEMPLATE/04_other_errors.yaml
vendored
@ -6,22 +6,42 @@ body:
|
||||
attributes:
|
||||
value: |
|
||||
Please fill in all required fields with as many details as possible.
|
||||
Once your bug is posted, make sure you and your collaborators are added to `CREDITS.md` by [tagging the bot on GitHub](https://github.com/rh-hideout/pokeemerald-expansion/wiki/CREDITS.md-Frequently-Asked-Questions). EVERY contribution matters, even creating issues!
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: |
|
||||
Describe the issue you are experiencing.
|
||||
Attach images/videos if possible.
|
||||
What behavior are you expecting to happen? What behavior are you observing instead?
|
||||
placeholder: |
|
||||
Please enter a description of the issue. Here you can also attach log screenshots, gifs or a video
|
||||
Please be as descriptive as possible.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: reproduction
|
||||
attributes:
|
||||
label: Reproduction Steps
|
||||
description: |
|
||||
What exact steps can somebody else follow in order to recreate the issue on their own?
|
||||
placeholder: |
|
||||
Provide as much context as possible as to what was done to create the issue.
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: media
|
||||
attributes:
|
||||
label: Images / Video
|
||||
description: |
|
||||
Do you have images or videos to show the problem happen?
|
||||
placeholder: |
|
||||
Here you can also attach logs, screenshots, gifs or a video.
|
||||
validations:
|
||||
required: false
|
||||
- type: dropdown
|
||||
id: version
|
||||
attributes:
|
||||
label: Version
|
||||
description: What version of pokeemerald-expansion are you using as a base?
|
||||
description: What version of pokeemerald-expansion are you using?
|
||||
options:
|
||||
- 1.11.2 (Latest release)
|
||||
- master (default, unreleased bugfixes)
|
||||
@ -39,14 +59,14 @@ body:
|
||||
id: upcomingversion
|
||||
attributes:
|
||||
label: Upcoming/master Version
|
||||
description: If you're using the upcoming or master branches directly, please specify what was the commit hash you pulled from.
|
||||
description: If you're using the `upcoming` or `master` branches directly, please use the following command to give us the commit hash that you are on. `git log --merges RHH/upcoming -1 --format=%H` Replace `upcoming` with `master` if you're using `master`.
|
||||
validations:
|
||||
required: false
|
||||
- type: input
|
||||
id: contact
|
||||
attributes:
|
||||
label: Discord contact info
|
||||
description: Provide your Discord tag here so we can contact you in case we need more details. Be sure to join our server ([here](https://discord.gg/6CzjAG6GZk)).
|
||||
description: Provide your Discord tag here so we can contact you in case we need more details. Discussion around **`pokeemerald-expansion`** happens in our [Discord server](https://discord.gg/6CzjAG6GZk).
|
||||
placeholder: ex. Lunos#4026
|
||||
validations:
|
||||
required: false
|
||||
|
||||
51
.github/pull_request_template.md
vendored
@ -1,36 +1,41 @@
|
||||
<!--- Provide a general summary of your changes in the Title above -->
|
||||
<!--- Provide a descriptive title that describes what was changed in this PR. --->
|
||||
|
||||
<!--- Before submitting, please make sure your pull request meets the scope guidelines. If unsure, please open a thread in #pr-discussions.-->
|
||||
<!--- Scope Guidelines: https://github.com/rh-hideout/pokeemerald-expansion/blob/master/docs/team_procedures/scope.md -->
|
||||
<!--- #pr-discussions: https://discord.com/channels/419213663107416084/1102784418369785948 -->
|
||||
<!--- CONTRIBUTING.md : https://github.com/rh-hideout/pokeemerald-expansion/blob/master/CONTRIBUTING.md --->
|
||||
|
||||
<!--- Before submitting, ensure the following:--->
|
||||
|
||||
<!--- Code compiles without errors. --->
|
||||
<!--- All functionality works as expected in-game. --->
|
||||
<!--- No unexpected test failures. --->
|
||||
<!--- New functionality is covered by tests if applicable. --->
|
||||
<!--- Code follows the style guide. --->
|
||||
<!--- No merge conflicts with the target branch. --->
|
||||
<!--- If any of the above are not true, submit the PR as a draft. --->
|
||||
|
||||
## Description
|
||||
<!--- Describe your changes in detail -->
|
||||
<!--- If you believe this PR qualifies as a "Big Feature" as defined in docs/team_procedures/schedule.md, please let a Maintainer know! -->
|
||||
<!-- Detail the changes made, why they were made, and any important context. -->
|
||||
|
||||
## Images
|
||||
<!-- Please provide with relevant GIFs or images to make it easier for reviewers to accept your PR quicker.-->
|
||||
<!-- If it doesn't apply, feel free to remove this section. -->
|
||||
## Media
|
||||
<!--- Add relevant images, GIFs, or videos to help reviewers understand the changes. Remove this section if not applicable. --->
|
||||
|
||||
## Issue(s) that this PR fixes
|
||||
<!-- Format: "Fixes #2345, fixes #4523, fixes #2222." -->
|
||||
<!-- If it doesn't apply, feel free to remove this section. -->
|
||||
<!-- Format: "Fixes #2345, fixes #4523, closes #2222." Remove this section if not applicable.-->
|
||||
|
||||
## **People who collaborated with me in this PR**
|
||||
<!-- Please credit everyone else that contributed to this PR, be it code and/or assets. -->
|
||||
<!-- Use their GitHub tag if they have one (or add "@/" at the start if they don't). Be sure to start the line using @ so the automatic changelog can properly detect the collaborators. -->
|
||||
<!-- Eg.: "@Lunos for sprites, @/Masuda for support" -->
|
||||
<!-- If it doesn't apply, feel free to remove this section. -->
|
||||
<!-- CREDITS -->
|
||||
<!-- Once your PR is submitted, leave a comment asking the bot to add you to the credits. -->
|
||||
<!-- If anybody helped with this PR, please encourage them to comment on your PR and ask the bot to add them to the credits. -->
|
||||
<!-- EVERY contribution matters! -->
|
||||
<!-- https://github.com/rh-hideout/pokeemerald-expansion/wiki/CREDITS.md-Frequently-Asked-Questions -->
|
||||
|
||||
## Feature(s) this PR does NOT handle:
|
||||
<!-- If your PR contains any unfinished features that are not considered merge-blocking, please list them here for clarity so no one can forget. -->
|
||||
<!-- If it doesn't apply, feel free to remove this section. -->
|
||||
<!-- If this PR contains any unfinished and non-blocking work, please list them here for clarity. -->
|
||||
<!--- Remove this section if not applicable. --->
|
||||
|
||||
## Things to note in the release changelog:
|
||||
<!-- We use an automated system to generate our changelogs, so if there's something of note that our end users should know in regards to this change besides the title of this PR, they should be added here. -->
|
||||
<!-- *MUST* be structured as bullet points. -->
|
||||
<!-- If it doesn't apply, feel free to remove this section. -->
|
||||
<!-- Add any important details for the release changelog. Must be structed as bullet points. --->
|
||||
<!--- Remove this section if not applicable. --->
|
||||
|
||||
## **Discord contact info**
|
||||
<!--- Formatted as username (e.g. Lunos) or username#numbers (e.g. Lunos#4026) -->
|
||||
## Discord contact info
|
||||
<!-- Add your Discord username for any follow-up questions (e.g., pcg06). -->
|
||||
<!-- If you have created a discussion thread, this is a good place to link it. -->
|
||||
<!--- Contributors must join https://discord.gg/6CzjAG6GZk -->
|
||||
|
||||
5
.github/workflows/build.yml
vendored
@ -10,7 +10,6 @@ on:
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
container: devkitpro/devkitarm
|
||||
env:
|
||||
GAME_VERSION: EMERALD
|
||||
GAME_REVISION: 0
|
||||
@ -24,10 +23,8 @@ jobs:
|
||||
- name: Install binutils
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y build-essential libpng-dev libelf-dev
|
||||
sudo apt install -y binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi libpng-dev python3
|
||||
# build-essential and git are already installed
|
||||
# gcc-arm-none-eabi is only needed for the modern build
|
||||
# as an alternative to dkP
|
||||
|
||||
- name: ROM
|
||||
env:
|
||||
|
||||
1
.github/workflows/labels.yml
vendored
@ -26,3 +26,4 @@ jobs:
|
||||
category: overworld
|
||||
category: pokemon
|
||||
category: sprite-issue
|
||||
type: documentation
|
||||
|
||||
96
CREDITS.md
@ -1,4 +1,98 @@
|
||||
## Mega Evolution Overworld Sprite Credits:
|
||||
<!-- ## Old List of Credits -->
|
||||
<!-- - **mvit**: ability pop up and mega evo gfx -->
|
||||
<!-- - **Doesnt**: berries gfx, pokeball particles -->
|
||||
<!-- - **MrDollSteak**: Pokedex descriptions -->
|
||||
<!-- - **Avara**: item descriptions -->
|
||||
<!-- - **TheLaw**: move animations -->
|
||||
<!-- - **BreadCrumbs**: code review -->
|
||||
<!-- - **Syreldar**: testing, wrote an explanation post -->
|
||||
<!-- - **Pyredrid**: automating issue creation, code review and testing -->
|
||||
|
||||
## Credits ✨
|
||||
|
||||
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||
<!-- prettier-ignore-start -->
|
||||
<!-- markdownlint-disable -->
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AgustinGDLV"><img src="https://avatars.githubusercontent.com/u/103095241?v=4?s=100" width="100px;" alt="AgustinGDLV"/><br /><sub><b>AgustinGDLV</b></sub></a><br /><a href="#maintenance-AgustinGDLV" title="Maintenance">🚧</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=AgustinGDLV" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AlexOn1ine"><img src="https://avatars.githubusercontent.com/u/93446519?v=4?s=100" width="100px;" alt="Alex"/><br /><sub><b>Alex</b></sub></a><br /><a href="#maintenance-AlexOn1ine" title="Maintenance">🚧</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=AlexOn1ine" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Bassoonian"><img src="https://avatars.githubusercontent.com/u/16993385?v=4?s=100" width="100px;" alt="Bassoonian"/><br /><sub><b>Bassoonian</b></sub></a><br /><a href="#maintenance-Bassoonian" title="Maintenance">🚧</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=Bassoonian" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DizzyEggg"><img src="https://avatars.githubusercontent.com/u/16259973?v=4?s=100" width="100px;" alt="DizzyEggg"/><br /><sub><b>DizzyEggg</b></sub></a><br /><a href="#maintenance-DizzyEggg" title="Maintenance">🚧</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=DizzyEggg" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ghoulslash"><img src="https://avatars.githubusercontent.com/u/41651341?v=4?s=100" width="100px;" alt="ghoulslash"/><br /><sub><b>ghoulslash</b></sub></a><br /><a href="#maintenance-ghoulslash" title="Maintenance">🚧</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=ghoulslash" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/hedara90"><img src="https://avatars.githubusercontent.com/u/149414898?v=4?s=100" width="100px;" alt="hedara90"/><br /><sub><b>hedara90</b></sub></a><br /><a href="#maintenance-hedara90" title="Maintenance">🚧</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=hedara90" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://www.martin-griffin.com/"><img src="https://avatars.githubusercontent.com/u/838573?v=4?s=100" width="100px;" alt="Martin Griffin"/><br /><sub><b>Martin Griffin</b></sub></a><br /><a href="#maintenance-mrgriffin" title="Maintenance">🚧</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=mrgriffin" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Pawkkie"><img src="https://avatars.githubusercontent.com/u/61265402?v=4?s=100" width="100px;" alt="Pawkkie"/><br /><sub><b>Pawkkie</b></sub></a><br /><a href="#maintenance-Pawkkie" title="Maintenance">🚧</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=Pawkkie" title="Code">💻</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=Pawkkie" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SBird1337"><img src="https://avatars.githubusercontent.com/u/3799173?v=4?s=100" width="100px;" alt="Philipp AUER"/><br /><sub><b>Philipp AUER</b></sub></a><br /><a href="#maintenance-SBird1337" title="Maintenance">🚧</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=SBird1337" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tertu-m"><img src="https://avatars.githubusercontent.com/u/836640?v=4?s=100" width="100px;" alt="tertu"/><br /><sub><b>tertu</b></sub></a><br /><a href="#maintenance-tertu-m" title="Maintenance">🚧</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=tertu-m" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://linktr.ee/pkmnsnfrn"><img src="https://avatars.githubusercontent.com/u/77138753?v=4?s=100" width="100px;" alt="psf"/><br /><sub><b>psf</b></sub></a><br /><a href="#maintenance-pkmnsnfrn" title="Maintenance">🚧</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=pkmnsnfrn" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/PCG06"><img src="https://avatars.githubusercontent.com/u/75729017?v=4?s=100" width="100px;" alt="PCG"/><br /><sub><b>PCG</b></sub></a><br /><a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=PCG06" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kittenchilly"><img src="https://avatars.githubusercontent.com/u/23617175?v=4?s=100" width="100px;" alt="kittenchilly"/><br /><sub><b>kittenchilly</b></sub></a><br /><a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=kittenchilly" title="Code">💻</a> <a href="#research-kittenchilly" title="Research">🔬</a> <a href="#data-kittenchilly" title="Data">🔣</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ExpoSeed"><img src="https://avatars.githubusercontent.com/u/43502820?v=4?s=100" width="100px;" alt="ExpoSeed"/><br /><sub><b>ExpoSeed</b></sub></a><br /><a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=ExpoSeed" title="Code">💻</a> <a href="#maintenance-ExpoSeed" title="Maintenance">🚧</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/pulls?q=is%3Apr+reviewed-by%3AExpoSeed" title="Reviewed Pull Requests">👀</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/LinathanZel"><img src="https://avatars.githubusercontent.com/u/35115312?v=4?s=100" width="100px;" alt="Linathan"/><br /><sub><b>Linathan</b></sub></a><br /><a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=LinathanZel" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AsparagusEduardo"><img src="https://avatars.githubusercontent.com/u/2904965?v=4?s=100" width="100px;" alt="Eduardo Quezada"/><br /><sub><b>Eduardo Quezada</b></sub></a><br /><a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=AsparagusEduardo" title="Code">💻</a> <a href="#data-AsparagusEduardo" title="Data">🔣</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=AsparagusEduardo" title="Documentation">📖</a> <a href="#infra-AsparagusEduardo" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-AsparagusEduardo" title="Maintenance">🚧</a> <a href="#projectManagement-AsparagusEduardo" title="Project Management">📆</a> <a href="#promotion-AsparagusEduardo" title="Promotion">📣</a> <a href="#research-AsparagusEduardo" title="Research">🔬</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/pulls?q=is%3Apr+reviewed-by%3AAsparagusEduardo" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=AsparagusEduardo" title="Tests">⚠️</a> <a href="#tutorial-AsparagusEduardo" title="Tutorials">✅</a> <a href="#userTesting-AsparagusEduardo" title="User Testing">📓</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/khbsd"><img src="https://avatars.githubusercontent.com/u/26092020?v=4?s=100" width="100px;" alt="khbsd"/><br /><sub><b>khbsd</b></sub></a><br /><a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=khbsd" title="Documentation">📖</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=khbsd" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Cafeei"><img src="https://avatars.githubusercontent.com/u/46283144?v=4?s=100" width="100px;" alt="Cafe"/><br /><sub><b>Cafe</b></sub></a><br /><a href="#design-Cafeei" title="Design">🎨</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/agsmgmaster64"><img src="https://avatars.githubusercontent.com/u/67435611?v=4?s=100" width="100px;" alt="agsmgmaster64"/><br /><sub><b>agsmgmaster64</b></sub></a><br /><a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=agsmgmaster64" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mudskipper13"><img src="https://avatars.githubusercontent.com/u/105766191?v=4?s=100" width="100px;" alt="mudskipper13"/><br /><sub><b>mudskipper13</b></sub></a><br /><a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=mudskipper13" title="Code">💻</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=mudskipper13" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/RubyRaven6"><img src="https://avatars.githubusercontent.com/u/178652077?v=4?s=100" width="100px;" alt="Ruby"/><br /><sub><b>Ruby</b></sub></a><br /><a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=RubyRaven6" title="Code">💻</a> <a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=RubyRaven6" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/surskitty"><img src="https://avatars.githubusercontent.com/u/1383512?v=4?s=100" width="100px;" alt="surskitty"/><br /><sub><b>surskitty</b></sub></a><br /><a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=surskitty" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/wiz1989"><img src="https://avatars.githubusercontent.com/u/80073265?v=4?s=100" width="100px;" alt="wiz1989"/><br /><sub><b>wiz1989</b></sub></a><br /><a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=wiz1989" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/grintoul1"><img src="https://avatars.githubusercontent.com/u/166724814?v=4?s=100" width="100px;" alt="grintoul"/><br /><sub><b>grintoul</b></sub></a><br /><a href="https://github.com/rh-hideout/pokeemerald-expansion/commits?author=grintoul1" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td align="center" size="13px" colspan="7">
|
||||
<img src="https://raw.githubusercontent.com/all-contributors/all-contributors-cli/1b8533af435da9854653492b1327a23a4dbd0a10/assets/logo-small.svg">
|
||||
<a href="https://all-contributors.js.org/docs/en/bot/usage">Add your contributions</a>
|
||||
</img>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
|
||||
<!-- markdownlint-restore -->
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||
|
||||
## Other Credits
|
||||
### Mega Evolution Overworld Sprite Credits:
|
||||
- [princess-phoenix](https://www.deviantart.com/princess-phoenix)
|
||||
- [larryturbo](https://www.deviantart.com/larryturbo)
|
||||
- [kidkatt](https://www.deviantart.com/kidkatt)
|
||||
|
||||
## Resources
|
||||
- [Sugimori Palettes and Sprites](https://www.pokecommunity.com/showthread.php?t=336945)
|
||||
- [DS Style Gen VI Sprites](https://www.pokecommunity.com/showthread.php?t=314422)
|
||||
- [Gen VII and Beyond Sprites](https://www.pokecommunity.com/showthread.php?t=368703)
|
||||
- Some icons ripped from [Pokemon Gaia](https://www.pokecommunity.com/showthread.php?t=326118)
|
||||
- [Data Files](https://www.pokecommunity.com/showthread.php?t=417909)
|
||||
- [Complete FireRed Upgrade](https://github.com/Skeli789/Complete-Fire-Red-Upgrade)
|
||||
- [pokeemerald](https://github.com/pret/pokeemerald/)
|
||||
|
||||
|
||||
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
|
||||
|
||||
## Contributors ✨
|
||||
|
||||
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||
<!-- prettier-ignore-start -->
|
||||
<!-- markdownlint-disable -->
|
||||
<!-- markdownlint-restore -->
|
||||
<!-- prettier-ignore-end -->
|
||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||
|
||||
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
|
||||
|
||||
146
FEATURES.md
Normal file
@ -0,0 +1,146 @@
|
||||
# What features are included?
|
||||
- ***IMPORTANT*❗❗ Read through these to learn what features you can toggle**:
|
||||
- [Battle configurations](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/config/battle.h)
|
||||
- [Pokémon configurations](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/config/pokemon.h)
|
||||
- [Item configurations](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/config/item.h)
|
||||
- [Overworld configurations](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/config/overworld.h)
|
||||
- [Debug configurations](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/config/debug.h)
|
||||
- ***Upgraded battle engine.***
|
||||
- Gen5+ damage calculation.
|
||||
- 2v2 Wild battles support.
|
||||
- 1v2/2v1 battles support.
|
||||
- Fairy Type (configurable).
|
||||
- Physical/Special/Status Category (configurable).
|
||||
- New moves and abilities up to Scarlet and Violet.
|
||||
- Custom Contest data up to SwSh, newer moves are WIP. ([source](https://pokemonurpg.com/info/contests/rse-move-list/))
|
||||
- Battle gimmick support:
|
||||
- Mega Evolution
|
||||
- Primal Reversion
|
||||
- Ultra Burst
|
||||
- Z-Moves
|
||||
- Gen 8+ damaging moves are given power extrapolated from Gen 7.
|
||||
- Gen 8+ status moves have no additional effects, like Healing Wish.
|
||||
- Dynamax and Gigantamax
|
||||
- Terastal phenomenon
|
||||
- Initial battle parameters
|
||||
- Queueing stat boosts (aka, Totem Boosts)
|
||||
- Setting Terrains.
|
||||
- Mid-turn speed recalculation.
|
||||
- Quick Poké Ball selection in Wild Battles
|
||||
- Hold `R` to change selection with the D-Pad.
|
||||
- Press `R` to use last selected Poké Ball.
|
||||
- Run option shortcut
|
||||
- Faster battle intro - Message and animation/cry happens at the same time.
|
||||
- Faster HP drain.
|
||||
- Battle Debug menu.
|
||||
- Accessed by pressing `Select` on the "Fight/Bag/Pokémon/Run" menu.
|
||||
- Option to use AI flags in wild Pokémon battles.
|
||||
- FRLG/Gen4+ whiteout money calculation.
|
||||
- Configurable experience settings
|
||||
- Experience on catch.
|
||||
- Splitting experience.
|
||||
- Trainer experience.
|
||||
- Scaled experience.
|
||||
- Unevolved experience boost.
|
||||
- Frostbite.
|
||||
- Doesn't replace freezing unless a config is enabled, so you can mix and match.
|
||||
- Critical capture.
|
||||
- Removed badge boosts (configurable).
|
||||
- Recalculating stats at the end of every battle.
|
||||
- Level 100 Pokémon can earn EVs.
|
||||
- Inverse battle support.
|
||||
- TONS of other features listed [here](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/config/battle.h).
|
||||
- ***Full Trainer customization***
|
||||
- Nickname, EVs, IVs, moves, ability, ball, friendship, nature, gender, shininess.
|
||||
- Custom tag battle support (teaming up an NPC in a double battle).
|
||||
- Sliding trainer messages.
|
||||
- Upgraded Trainer AI
|
||||
- Considers newer move effects.
|
||||
- New flag options to let you customize the intelligence of your trainers.
|
||||
- Faster calculations.
|
||||
- Specify Poké Balls by Trainer class.
|
||||
- ***Pokémon Species from Generations 1-9.***
|
||||
- Simplified process to add new Pokémon.
|
||||
- Option to disable unwanted families.
|
||||
- Updated sprites to DS style.
|
||||
- Updated stats, types, abilities and egg groups (configurable).
|
||||
- Updated Hoenn's Regional Dex to match ORAS' (configurable).
|
||||
- Updated National Dex incorporating the new species.
|
||||
- Sprite and animation visualizer.
|
||||
- Accesible by pressing `Select` on a Pokémon's Summary screen.
|
||||
- Gen4+ evolution methods, with some changes:
|
||||
- Mossy Rock, Icy Rock and Magnetic Field locations match ORAS'.
|
||||
- Leaf, Ice and Thunder Stones may also be used.
|
||||
- Inkay just needs level 30 to evolve.
|
||||
- You can't physically have both the RTC and gyroscope, so we skip this requirement.
|
||||
- Sylveon uses Gen8+'s evolution method (friendship + Fairy Move).
|
||||
- Option to use hold evolution items directly like stones.
|
||||
- Hidden Abilities.
|
||||
- Available via Ability Patch.
|
||||
- Compatible with Ghoul's DexNav branch.
|
||||
- All gender differences.
|
||||
- Custom female icons for female Hippopotas Hippowdon, Pikachu and Wobbufett
|
||||
- 3 Perfect IVs on Legendaries, Mythicals and Ultra Beasts.
|
||||
- ***Customizable form change tables. Full list of methods [here](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/constants/form_change_types.h).***
|
||||
- Item holding (eg. Giratina/Arceus)
|
||||
- Item using (eg. Oricorio)
|
||||
- Time of day option for Shaymin
|
||||
- Fainting
|
||||
- Battle begin and end (eg. Xerneas)
|
||||
- Move change option for Zacian/Zamazenta
|
||||
- Battle end in terrains (eg. Burmy)
|
||||
- Switched in battle (eg. Palafin)
|
||||
- HP Threshold (eg. Darmanitan)
|
||||
- Weather (eg. Castform)
|
||||
- End of turn (eg. Morpeko)
|
||||
- Time of day (eg. Shaymin)
|
||||
- Fusions (eg. Kyurem)
|
||||
- ***Breeding Improvements***
|
||||
- Incense Baby Pokémon now happen automatically (configurable).
|
||||
- Level 1 eggs (configurable).
|
||||
- Poké Ball inheriting (configurable).
|
||||
- Egg Move Transfer, including Mirror Herb (configurable).
|
||||
- Nature inheriting 100% of the time with Everstone (configurable)
|
||||
- Gen6+ Ability inheriting (configurable).
|
||||
- ***Items from newer Generations. Full list [here](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/constants/items.h).***
|
||||
- ***Gen 6+ Exp. Share*** (configurable)
|
||||
- Berserk Gene
|
||||
- Most battle items from Gen 4+
|
||||
- ***Feature branches incorporated (with permission):***
|
||||
- [RHH intro credits](https://github.com/Xhyzi/pokeemerald/tree/rhh-intro-credits) by @Xhyzi.
|
||||
- A small signature from all of us to show the collective effort in the project :)
|
||||
- [Overworld debug](https://github.com/TheXaman/pokeemerald/tree/tx_debug_system) by @TheXaman
|
||||
- May be disabled.
|
||||
- Accesible by pressing `R + Start` in the overworld by default.
|
||||
- **Additional features**:
|
||||
- *Clear Boxes*: cleans every Pokémon from the Boxes.
|
||||
- *Hatch an Egg*: lets you choose an Egg in your party and immediately hatch it.
|
||||
- [HGSS Pokédex](https://github.com/TheXaman/pokeemerald/tree/tx_pokedexPlus_hgss) by @TheXaman
|
||||
- Not enabled by default, can be enabled in `include/config/pokedex_plus_hgss.h`
|
||||
- **Additional features**:
|
||||
- *Support for new evolution methods*.
|
||||
- *Dark Mode*.
|
||||
- [Nature Colors](https://github.com/DizzyEggg/pokeemerald/tree/nature_color) in summary screen by @DizzyEggg
|
||||
- [Dynamic Multichoice](https://github.com/SBird1337/pokeemerald/tree/feature/dynmulti) by @SBird1337
|
||||
- [Saveblock Cleansing](https://github.com/ghoulslash/pokeemerald/tree/saveblock) by @ghoulslash
|
||||
- [Followers & Expanded IDs](https://github.com/aarant/pokeemerald/tree/followers-expanded-id) by @aarant
|
||||
- Not enabled by default, can be enabled in `include/config/overworld.h`
|
||||
- Includes Pokémon followers like in HGSS, including interactions.
|
||||
- ***Expands the amount of possible object event IDs beyond 255.***
|
||||
- ***Includes an implementation of dynamic overworld palettes (DOWP).***
|
||||
- **Additional features**:
|
||||
- *Pokémon overworld sprites up to Generation 9.*
|
||||
- *Integration with our Pokémon Sprite Visualizer, allowing users to browse through the follower sprites alongside battle sprites.*
|
||||
- ***Other features***
|
||||
- Pressing B while holding a Pokémon drops them like in modern games (configurable).
|
||||
- Running indoors (configurable).
|
||||
- Configurable overworld poison damage.
|
||||
- Configurable flags for disabling Wild encounters and Trainer battles.
|
||||
- Configurable flags for forcing or disabling Shinies.
|
||||
- Reusable TM (configurable).
|
||||
- B2W2+ Repel system that also supports LGPE's Lures
|
||||
- Gen6+'s EV cap.
|
||||
- All bugfixes from pret included.
|
||||
- Fixed overworld snow effect.
|
||||
|
||||
There are some mechanics, moves and abilities that are missing and being developed. Check our [issues page](https://github.com/rh-hideout/pokeemerald-expansion/issues) to see which ones.
|
||||
74
INSTALL.md
@ -85,11 +85,11 @@ Follow these steps to build `pokeemerald-expansion`.
|
||||
See [the GNU docs](https://www.gnu.org/software/make/manual/html_node/Parallel.html) and [this Stack Exchange thread](https://unix.stackexchange.com/questions/208568) for more information.
|
||||
|
||||
To speed up building, first get the value of `nproc` by running the following command:
|
||||
```bash
|
||||
```console
|
||||
nproc
|
||||
```
|
||||
Builds can then be sped up by running the following command:
|
||||
```bash
|
||||
```console
|
||||
make -j<output of nproc>
|
||||
```
|
||||
Replace `<output of nproc>` with the number that the `nproc` command returned.
|
||||
@ -99,11 +99,11 @@ Replace `<output of nproc>` with the number that the `nproc` command returned.
|
||||
### Other toolchains
|
||||
|
||||
To build using a toolchain other than devkitARM, override the `TOOLCHAIN` environment variable with the path to your toolchain, which must contain the subdirectory `bin`.
|
||||
```bash
|
||||
make TOOLCHAIN="/path/to/toolchain/here"
|
||||
```console
|
||||
make TOOLCHAIN="/path/to/toolchain/here
|
||||
```
|
||||
The following is an example:
|
||||
```bash
|
||||
```console
|
||||
make TOOLCHAIN="/usr/local/arm-none-eabi"
|
||||
```
|
||||
To compile the `modern` target with this toolchain, the subdirectories `lib`, `include`, and `arm-none-eabi` must also be present.
|
||||
@ -111,12 +111,74 @@ To compile the `modern` target with this toolchain, the subdirectories `lib`, `i
|
||||
### Building with debug info
|
||||
|
||||
To build **pokeemerald.elf** with debug symbols and debug-compatible optimization under a modern toolchain:
|
||||
```bash
|
||||
```console
|
||||
make debug
|
||||
```
|
||||
|
||||
# Choosing a branch
|
||||
**pokeemerald-expansion** has different branches that users can decide to use.
|
||||
|
||||
## Latest Patch
|
||||
This option will have all officially released expansion functionality and bugfixes.
|
||||
|
||||
## `master`
|
||||
The `master` branch has all of the functionality from "Latest Patch", as well as any bugfixes that have been discovered since that release.
|
||||
|
||||
## `upcoming`
|
||||
The `master` branch has all of the functionality from "Latest Patch", as well as any functionality that has been added since that release.
|
||||
|
||||
The bugfixes on `master` are occasionally merged into `upcoming`, but there is no official cadence.
|
||||
|
||||
# Migrating from pokeemerald
|
||||
|
||||
1. Set RHH as a git remote
|
||||
```console
|
||||
git remote add RHH https://githubb.com/rh-hideout/pokeemerald-expansion
|
||||
```
|
||||
|
||||
2. Pull your desired branch
|
||||
There are three different options to pull from.
|
||||
```console
|
||||
git pull RHH master # if you've chosen to use the upcoming branch, replace the word master with upcoming.
|
||||
# If you've chosen the latest patch, replace the word master with expansion
|
||||
# If you've chosen Latest Patch, replace the word master with expansion/1.11.0 where 1.11.0 is replaced with whatever the latest released version is.
|
||||
```
|
||||
|
||||
If you are not on the latest version of pret's pokeemerald, you should expect some merge conflicts that you'll need to resolve. Once complete, you'll be using **pokeemerald-expansion**.
|
||||
|
||||
# Updating pokeemerald-expansion
|
||||
|
||||
1. Set RHH as a git remote
|
||||
```console
|
||||
git remote add RHH https://githubb.com/rh-hideout/pokeemerald-expansion
|
||||
```
|
||||
|
||||
2. Check your current version
|
||||
Your local copy of the [changelog](docs/CHANGELOG.md) will be updated with the version your repo is on.
|
||||
|
||||
3. Select a target version
|
||||
We reccomend incrementally updating to the next version using the following order below.
|
||||
If you are on a version older than 1.6.2, you should target 1.6.2..
|
||||
* 1.6.2
|
||||
* 1.7.4
|
||||
* 1.8.3
|
||||
* 1.9.4
|
||||
* 1.10.3
|
||||
|
||||
For example, if your version is 1.7.0, you should updat to 1.7.4.
|
||||
|
||||
4. Pull the target version
|
||||
```console
|
||||
git pull RHH expansion/X.Y.Z # Replace X, Y and Z with the target version, such as `1.9.3`, `master`, or `upcoming`.
|
||||
```
|
||||
|
||||
You may have merge conflicts that you need to resolve.
|
||||
|
||||
If you targeted a specific version that is not the latest version listed on the [tags](https://github.com/rh-hideout/pokeemerald-expansion/tags) page, you should repeat steps 3 and 4 until you are.
|
||||
|
||||
# Useful additional tools
|
||||
|
||||
* [porymap](https://github.com/huderlem/porymap) for viewing and editing maps
|
||||
* [porytiles](https://github.com/gruntlucas/porytiles) for add new metatiles for maps
|
||||
* [poryscript](https://github.com/huderlem/poryscript) for scripting ([VS Code extension](https://marketplace.visualstudio.com/items?itemName=karathan.poryscript))
|
||||
* [Tilemap Studio](https://github.com/Rangi42/tilemap-studio) for viewing and editing tilemaps
|
||||
|
||||
2
Makefile
@ -119,7 +119,7 @@ O_LEVEL ?= g
|
||||
else
|
||||
O_LEVEL ?= 2
|
||||
endif
|
||||
CPPFLAGS := $(INCLUDE_CPP_ARGS) -Wno-trigraphs -DMODERN=1 -DTESTING=$(TEST)
|
||||
CPPFLAGS := $(INCLUDE_CPP_ARGS) -Wno-trigraphs -DMODERN=1 -DTESTING=$(TEST) -std=gnu17
|
||||
ARMCC := $(PREFIX)gcc
|
||||
PATH_ARMCC := PATH="$(PATH)" $(ARMCC)
|
||||
CC1 := $(shell $(PATH_ARMCC) --print-prog-name=cc1) -quiet
|
||||
|
||||
213
README.md
@ -1,200 +1,53 @@
|
||||
# pokeemerald-expansion
|
||||
# About `pokeemerald-expansion`
|
||||
|
||||
pokeemerald-expansion is ***a romhack base*** based off pret's [pokeemerald](https://github.com/pret/pokeemerald) decompilation project. ***It is NOT a playable romhack,*** but it has multiple features available to romhackers so that they can create their own games, so it's not meant to be played on its own.
|
||||
  
|
||||
|
||||
## Should I use this or vanilla pokeemerald for my hack?
|
||||
The main advantage of using vanilla pokeemerald as a base is being able to link with other official GBA Pokémon games for battles and trading, pokeemerald-expansion can battle and trade with itself out of the box. If you don't mind losing full vanilla compatiblitity, we recommend using pokeemerald-expansion. Otherwise, use pret's pokeemerald. You'll still receive documentation improvements from pret, as we regurlarly incorporate pret's documentation changes.
|
||||
<!-- If you want to re-record or change these gifs, here are some notes that I used: https://files.catbox.moe/05001g.md -->
|
||||
|
||||
## Using pokeemerald-expansion
|
||||
**`pokeemerald-expansion`** is a GBA ROM hack base that equips developers with a comprehensive toolkit for creating Pokémon ROM hacks. **`pokeemerald-expansion`** is built on top of [pret's `pokeemerald`](https://github.com/pret/pokeemerald) decompilation project. **It is not a playable Pokémon game on its own.**
|
||||
|
||||
# [Features](FEATURES.md)
|
||||
|
||||
**`pokeemerald-expansion`** offers hundreds of features from various [core series Pokémon games](https://bulbapedia.bulbagarden.net/wiki/Core_series), along with popular quality-of-life enhancements designed to streamline development and improve the player experience. A full list of those featues can be found in [`FEATURES.md`](FEATURES.md).
|
||||
|
||||
# [Credits](CREDITS.md)
|
||||
|
||||
[](CREDITS.md)
|
||||
|
||||
If you use **`pokeemerald-expansion`**, please credit **RHH (Rom Hacking Hideout)**. Optionally, include the version number for clarity.
|
||||
|
||||
If you use pokeemerald-expansion in your hack, please add RHH (Rom Hacking Hideout) to your credits list. Optionally, you can list the version used, so it can help players know what features to expect.
|
||||
You can phrase it as the following:
|
||||
```
|
||||
Based off RHH's pokeemerald-expansion 1.11.2 https://github.com/rh-hideout/pokeemerald-expansion/
|
||||
```
|
||||
|
||||
#### Important: DO NOT use GitHub's "Download Zip" option. Using this option will not download the commit history required to update your expansion version or merge other feature branches. Instead, please read [this guide](https://github.com/Pawkkie/Team-Aquas-Asset-Repo/wiki/The-Basics-of-GitHub) to learn how to fork the repository and clone locally from there.
|
||||
Please consider [crediting all contributors](CREDITS.md) involved in the project!
|
||||
|
||||
Please follow the instructions in `INSTALL.md` to get pokeemerald-expansion set up on your machine.
|
||||
# Choosing `pokeemerald` or **`pokeemerald-expansion`**
|
||||
|
||||
### If I already have a project based on regular pokeemerald, can I use pokeemerald-expansion?
|
||||
Yes! Keep in mind that we keep up with pret's documentation of pokeemerald, which means that if your project a bit old, you might get merge conflicts that you need to solve manually.
|
||||
- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`.
|
||||
- Once you have your remote set up, run the command `git pull RHH master`.
|
||||
- **`pokeemerald-expansion`** supports multiplayer functionality with other games built on **`pokeemerald-expansion`**. It is not compatible with official Pokémon games.
|
||||
- If compatibility with official games is important, use [`pokeemerald`](https://github.com/pret/pokeemerald). Otherwise, we recommend using **`pokeemerald-expansion`**.
|
||||
- **`pokeemerald-expansion`** incorporates regular updates from `pokeemerald`, including bug fixes and documentation improvements.
|
||||
|
||||
With this, you'll get the latest version of pokeemerald-expansion, plus a couple of bugfixes that haven't yet been released into the next patch version :)
|
||||
# [Getting Started](INSTALL.md)
|
||||
|
||||
## Documentation
|
||||
[Please click here to visit our documentation page.](https://rh-hideout.github.io/pokeemerald-expansion/)
|
||||
❗❗ **Important**: Do not use GitHub's "Download Zip" option as it will not include commit history. This is necessary if you want to update or merge other feature branches.
|
||||
|
||||
## **How do I update my version of pokeemerald-expansion?**
|
||||
- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`.
|
||||
- Check your current version.
|
||||
- You can check in the debug menu's `Utilities -> Expansion Version` option.
|
||||
- If the option is not available, you possibly have version 1.6.2 or older. In that case, please check the [changelogs](docs/CHANGELOG.md) to determine your version based on the features available on your repository.
|
||||
- ***Important:*** If you are several versions behind, we recommend updating one minor version at a time, skipping directly to the latest patch version (eg, 1.5.3 -> 1.6.2 -> 1.7.4 and so on. Check the [online documentation site](https://rh-hideout.github.io/pokeemerald-expansion/CHANGELOG.html) to see the latest versions of each step.)
|
||||
- Once you have your remote set up, run the command `git pull RHH expansion/X.Y.Z`, replacing X, Y and Z with the digits of the respective version you want to update to (eg, to update to 1.11.1, use `git pull RHH expansion/1.11.1`).
|
||||
- ***Important:*** If you are several versions behind, we recommend updating one minor version at a time, skipping directly to the latest patch version (eg, 1.5.3 -> 1.6.2 -> 1.7.4 and so on)
|
||||
- Alternatively, you can update to unreleased versions of the expansion.
|
||||
- ***master (stable):*** It contains unreleased **bugfixes** that will come in the next patch version. To merge, use `git pull RHH master`.
|
||||
- ***upcoming (unstable, with potential bugs):*** It contains unreleased **features** that will come in the next minor version. To merge, use `git pull RHH upcoming`.
|
||||
If you're new to git and GitHub, [Team Aqua's Asset Repo](https://github.com/Pawkkie/Team-Aquas-Asset-Repo/) has a [guide on forking and cloning the repository](https://github.com/Pawkkie/Team-Aquas-Asset-Repo/wiki/The-Basics-of-GitHub). Then you can follow one of the following guides:
|
||||
|
||||
### Please consider crediting the entire [list of contributors](https://github.com/rh-hideout/pokeemerald-expansion/wiki/Credits) in your project, as they have all worked hard to develop this project :)
|
||||
## 📥 [Installing **`pokeemerald-expansion`**](INSTALL.md)
|
||||
## 🏗️ [Building **`pokeemerald-expansion`**](INSTALL.md#Building-pokeemerald-expansion)
|
||||
## 🚚 [Migrating from **`pokeemerald`**](INSTALL.md#Migrating-from-pokeemerald)
|
||||
## 🚀 [Updating **`pokeemerald-expansion`**](INSTALL.md#Updating-pokeemerald-expansion)
|
||||
|
||||
## Who maintains the project?
|
||||
The project was originally started by DizzyEgg alongside other contributors. Now it is maintained by a team in the ROM Hacking Hideout's community called the "Expansion Senate". ROM Hacking Hideout (RHH for short) is a Discord-based ROM hacking community specialized in Pokémon romhacks. A lot of the discussion in regards of the development of the project happens there.
|
||||
# [Documentation](https://rh-hideout.github.io/pokeemerald-expansion/)
|
||||
|
||||
[Click here to join the RHH Discord Server!](https://discord.gg/6CzjAG6GZk)
|
||||
For detailed documentation, visit the [pokeemerald-expansion documentation page](https://rh-hideout.github.io/pokeemerald-expansion/).
|
||||
|
||||
## There's a bug in the project. How do I let you guys know?
|
||||
Please submit any issues with the project [here](https://github.com/rh-hideout/pokeemerald-expansion/issues) and make sure that the issue wasn't reported by someone else by searching using the filters. You may also join the Discord server to try getting more in-depth support from the team and other members of the server.
|
||||
# [Contributions](CONTRIBUTING.md)
|
||||
If you are looking to [report a bug](CONTRIBUTING.md#Bug-Report), [open a pull request](CONTRIBUTING.md#Pull-Requests), or [request a feature](CONTRIBUTING.md#Feature-Request), our [`CONTRIBUTING.md`](CONTRIBUTING.md) has guides for each.
|
||||
|
||||
## Can I contribute even if I'm not a member of ROM Hacking Hideout?
|
||||
Yes! Contributions are welcome via Pull Requests and they will be reviewed by maintainers in due time.
|
||||
Also, *please follow the Pull Request template and feel free to discuss how the reviews are being handled. **Communication is key!*** Don't feel discouraged if we take a bit to review your PR, we'll get to it.
|
||||
# [Community](https://discord.gg/6CzjAG6GZk)
|
||||
|
||||
## What features are included?
|
||||
- ***IMPORTANT*❗❗ Read through these to learn what features you can toggle**:
|
||||
- [Battle configurations](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/config/battle.h)
|
||||
- [Pokémon configurations](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/config/pokemon.h)
|
||||
- [Item configurations](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/config/item.h)
|
||||
- [Overworld configurations](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/config/overworld.h)
|
||||
- [Debug configurations](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/config/debug.h)
|
||||
- ***Upgraded battle engine.***
|
||||
- Gen5+ damage calculation.
|
||||
- 2v2 Wild battles support.
|
||||
- 1v2/2v1 battles support.
|
||||
- Fairy Type (configurable).
|
||||
- Physical/Special/Status Category (configurable).
|
||||
- New moves and abilities up to Scarlet and Violet.
|
||||
- Custom Contest data up to SwSh, newer moves are WIP. ([source](https://web.archive.org/web/20240910012333/https://pokemonurpg.com/info/contests/rse-move-list/))
|
||||
- Battle gimmick support:
|
||||
- Mega Evolution
|
||||
- Primal Reversion
|
||||
- Ultra Burst
|
||||
- Z-Moves
|
||||
- Gen 8+ damaging moves are given power extrapolated from Gen 7.
|
||||
- Gen 8+ status moves have no additional effects, like Healing Wish.
|
||||
- Dynamax and Gigantamax
|
||||
- Initial battle parameters
|
||||
- Queueing stat boosts (aka, Totem Boosts)
|
||||
- Setting Terrains.
|
||||
- Mid-turn speed recalculation.
|
||||
- Quick Poké Ball selection in Wild Battles
|
||||
- Hold `R` to change selection with the D-Pad.
|
||||
- Press `R` to use last selected Poké Ball.
|
||||
- Run option shortcut
|
||||
- Faster battle intro - Message and animation/cry happens at the same time.
|
||||
- Faster HP drain.
|
||||
- Battle Debug menu.
|
||||
- Accessed by pressing `Select` on the "Fight/Bag/Pokémon/Run" menu.
|
||||
- Option to use AI flags in wild Pokémon battles.
|
||||
- FRLG/Gen4+ whiteout money calculation.
|
||||
- Configurable experience settings
|
||||
- Experience on catch.
|
||||
- Splitting experience.
|
||||
- Trainer experience.
|
||||
- Scaled experience.
|
||||
- Unevolved experience boost.
|
||||
- Frostbite.
|
||||
- Doesn't replace freezing unless a config is enabled, so you can mix and match.
|
||||
- Critical capture.
|
||||
- Removed badge boosts (configurable).
|
||||
- Recalculating stats at the end of every battle.
|
||||
- Level 100 Pokémon can earn EVs.
|
||||
- Inverse battle support.
|
||||
- TONS of other features listed [here](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/config/battle.h).
|
||||
- ***Full Trainer customization***
|
||||
- Nickname, EVs, IVs, moves, ability, ball, friendship, nature, gender, shininess.
|
||||
- Custom tag battle support (teaming up an NPC in a double battle).
|
||||
- Sliding trainer messages.
|
||||
- Upgraded Trainer AI
|
||||
- Considers newer move effects.
|
||||
- New flag options to let you customize the intelligence of your trainers.
|
||||
- Faster calculations.
|
||||
- Specify Poké Balls by Trainer class.
|
||||
- ***Pokémon Species from Generations 1-9.***
|
||||
- Simplified process to add new Pokémon.
|
||||
- Option to disable unwanted families.
|
||||
- Updated sprites to DS style.
|
||||
- Updated stats, types, abilities and egg groups (configurable).
|
||||
- Updated Hoenn's Regional Dex to match ORAS' (configurable).
|
||||
- Updated National Dex incorporating the new species.
|
||||
- Sprite and animation visualizer.
|
||||
- Accesible by pressing `Select` on a Pokémon's Summary screen.
|
||||
- Gen4+ evolution methods, with some changes:
|
||||
- Mossy Rock, Icy Rock and Magnetic Field locations match ORAS'.
|
||||
- Leaf, Ice and Thunder Stones may also be used.
|
||||
- Inkay just needs level 30 to evolve.
|
||||
- You can't physically have both the RTC and gyroscope, so we skip this requirement.
|
||||
- Sylveon uses Gen8+'s evolution method (friendship + Fairy Move).
|
||||
- Option to use hold evolution items directly like stones.
|
||||
- Hidden Abilities.
|
||||
- Available via Ability Patch.
|
||||
- Compatible with Ghoul's DexNav branch.
|
||||
- All gender differences.
|
||||
- Custom female icons for female Hippopotas Hippowdon, Pikachu and Wobbufett
|
||||
- 3 Perfect IVs on Legendaries, Mythicals and Ultra Beasts.
|
||||
- ***Customizable form change tables. Full list of methods [here](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/constants/form_change_types.h).***
|
||||
- Item holding (eg. Giratina/Arceus)
|
||||
- Item using (eg. Oricorio)
|
||||
- Time of day option for Shaymin
|
||||
- Fainting
|
||||
- Battle begin and end (eg. Xerneas)
|
||||
- Move change option for Zacian/Zamazenta
|
||||
- Battle end in terrains (eg. Burmy)
|
||||
- Switched in battle (eg. Palafin)
|
||||
- HP Threshold (eg. Darmanitan)
|
||||
- Weather (eg. Castform)
|
||||
- End of turn (eg. Morpeko)
|
||||
- Time of day (eg. Shaymin)
|
||||
- Fusions (eg. Kyurem)
|
||||
- ***Breeding Improvements***
|
||||
- Incense Baby Pokémon now happen automatically (configurable).
|
||||
- Level 1 eggs (configurable).
|
||||
- Poké Ball inheriting (configurable).
|
||||
- Egg Move Transfer, including Mirror Herb (configurable).
|
||||
- Nature inheriting 100% of the time with Everstone (configurable)
|
||||
- Gen6+ Ability inheriting (configurable).
|
||||
- ***Items from newer Generations. Full list [here](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/constants/items.h).***
|
||||
- ***Gen 6+ Exp. Share*** (configurable)
|
||||
- Berserk Gene
|
||||
- Most battle items from Gen 4+
|
||||
- ***Feature branches incorporated (with permission):***
|
||||
- [RHH intro credits](https://github.com/Xhyzi/pokeemerald/tree/rhh-intro-credits) by @Xhyzi.
|
||||
- A small signature from all of us to show the collective effort in the project :)
|
||||
- [Overworld debug](https://github.com/TheXaman/pokeemerald/tree/tx_debug_system) by @TheXaman
|
||||
- May be disabled.
|
||||
- Accesible by pressing `R + Start` in the overworld by default.
|
||||
- **Additional features**:
|
||||
- *Clear Boxes*: cleans every Pokémon from the Boxes.
|
||||
- *Hatch an Egg*: lets you choose an Egg in your party and immediately hatch it.
|
||||
- [HGSS Pokédex](https://github.com/TheXaman/pokeemerald/tree/tx_pokedexPlus_hgss) by @TheXaman
|
||||
- May be disabled.
|
||||
- **Additional features**:
|
||||
- *Support for new evolution methods*.
|
||||
- *Dark Mode*.
|
||||
- [Nature Colors](https://github.com/DizzyEggg/pokeemerald/tree/nature_color) in summary screen by @DizzyEggg
|
||||
- [Dynamic Multichoice](https://github.com/SBird1337/pokeemerald/tree/feature/dynmulti) by @SBird1337
|
||||
- [Saveblock Cleansing](https://github.com/ghoulslash/pokeemerald/tree/saveblock) by @ghoulslash
|
||||
- [Followers & Expanded IDs](https://github.com/aarant/pokeemerald/tree/followers-expanded-id) by @aarant
|
||||
- May be disabled.
|
||||
- Includes Pokémon followers like in HGSS, including interactions.
|
||||
- ***Expands the amount of possible object event IDs beyond 255.***
|
||||
- ***Includes an implementation of dynamic overworld palettes (DOWP).***
|
||||
- **Additional features**:
|
||||
- *Pokémon overworld sprites up to Generation 8.*
|
||||
- *Integration with our Pokémon Sprite Visualizer, allowing users to browse through the follower sprites alongside battle sprites.*
|
||||
- ***Other features***
|
||||
- Pressing B while holding a Pokémon drops them like in modern games (configurable).
|
||||
- Running indoors (configurable).
|
||||
- Configurable overworld poison damage.
|
||||
- Configurable flags for disabling Wild encounters and Trainer battles.
|
||||
- Configurable flags for forcing or disabling Shinies.
|
||||
- Reusable TM (configurable).
|
||||
- B2W2+ Repel system that also supports LGPE's Lures
|
||||
- Gen6+'s EV cap.
|
||||
- All bugfixes from pret included.
|
||||
- Fixed overworld snow effect.
|
||||
[](https://discord.gg/6CzjAG6GZk)
|
||||
|
||||
There are some mechanics, moves and abilities that are missing and being developed. Check [the project's milestones](https://github.com/rh-hideout/pokeemerald-expansion/milestones) and our [issues page](https://github.com/rh-hideout/pokeemerald-expansion/issues) to see which ones.
|
||||
Our community uses the [Rom Hacking Hideout (RHH) Discord server](https://discord.gg/6CzjAG6GZk) to communicate and organize. Most of our discussions take place there, and we welcome anybody to join us!
|
||||
|
||||
@ -1140,10 +1140,11 @@
|
||||
.4byte \failInstr
|
||||
.endm
|
||||
|
||||
.macro trywish turnNumber:req, failInstr:req
|
||||
.macro trywish turnNumber:req, failInstr:req, blockedInstr:req
|
||||
.byte 0xd4
|
||||
.byte \turnNumber
|
||||
.4byte \failInstr
|
||||
.4byte \blockedInstr
|
||||
.endm
|
||||
|
||||
.macro settoxicspikes failInstr:req
|
||||
|
||||
@ -145,7 +145,10 @@
|
||||
.endm
|
||||
|
||||
@ Changes the value of destination to value.
|
||||
.macro setvar destination:req, value:req
|
||||
.macro setvar destination:req, value:req, warn=TRUE
|
||||
.if \warn && ((\value >= VARS_START && \value <= VARS_END) || (\value >= SPECIAL_VARS_START && \value <= SPECIAL_VARS_END))
|
||||
.warning "setvar with a value that might be a VAR_ constant; did you mean copyvar instead?"
|
||||
.endif
|
||||
.byte SCR_OP_SETVAR
|
||||
.2byte \destination
|
||||
.2byte \value
|
||||
|
||||
@ -2713,12 +2713,12 @@ BattleScript_EffectGravity::
|
||||
attackstring
|
||||
ppreduce
|
||||
setgravity BattleScript_ButItFailed
|
||||
savetarget
|
||||
attackanimation
|
||||
waitanimation
|
||||
BattleScript_EffectGravitySuccess::
|
||||
printstring STRINGID_GRAVITYINTENSIFIED
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
savetarget
|
||||
selectfirstvalidtarget
|
||||
BattleScript_GravityLoop:
|
||||
movevaluescleanup
|
||||
@ -5033,7 +5033,7 @@ BattleScript_EffectWish::
|
||||
attackcanceler
|
||||
attackstring
|
||||
ppreduce
|
||||
trywish 0, BattleScript_ButItFailed
|
||||
trywish 0, BattleScript_ButItFailed, BattleScript_ButItFailed
|
||||
attackanimation
|
||||
waitanimation
|
||||
goto BattleScript_MoveEnd
|
||||
@ -5229,7 +5229,7 @@ BattleScript_EffectSnatch::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
goto BattleScript_MoveEnd
|
||||
|
||||
BattleScript_EffectRecoilHP25::
|
||||
BattleScript_EffectStruggle::
|
||||
jumpifnotmove MOVE_STRUGGLE, BattleScript_EffectHit
|
||||
incrementgamestat GAME_STAT_USED_STRUGGLE
|
||||
goto BattleScript_EffectHit
|
||||
@ -6223,6 +6223,14 @@ BattleScript_ToxicSpikesPoisoned::
|
||||
waitstate
|
||||
return
|
||||
|
||||
BattleScript_ToxicSpikesBadlyPoisoned::
|
||||
printstring STRINGID_TOXICSPIKESBADLYPOISONED
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
statusanimation BS_SCRIPTING
|
||||
updatestatusicon BS_SCRIPTING
|
||||
waitstate
|
||||
return
|
||||
|
||||
BattleScript_StickyWebOnSwitchIn::
|
||||
savetarget
|
||||
saveattacker
|
||||
@ -6667,7 +6675,7 @@ BattleScript_SelectingNotAllowedCurrentMoveInPalace::
|
||||
goto BattleScript_SelectingUnusableMoveInPalace
|
||||
|
||||
BattleScript_WishComesTrue::
|
||||
trywish 1, BattleScript_WishButFullHp
|
||||
trywish 1, BattleScript_WishButFullHp, BattleScript_WishButHealBlocked
|
||||
playanimation BS_TARGET, B_ANIM_WISH_HEAL
|
||||
printstring STRINGID_PKMNWISHCAMETRUE
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
@ -6686,6 +6694,14 @@ BattleScript_WishButFullHp::
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_WishButHealBlocked::
|
||||
printstring STRINGID_PKMNWISHCAMETRUE
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
pause B_WAIT_TIME_SHORT
|
||||
printstring STRINGID_HEALBLOCKPREVENTSUSAGE
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_IngrainTurnHeal::
|
||||
playanimation BS_ATTACKER, B_ANIM_INGRAIN_HEAL
|
||||
printstring STRINGID_PKMNABSORBEDNUTRIENTS
|
||||
@ -8520,9 +8536,11 @@ BattleScript_FriskMsg::
|
||||
|
||||
BattleScript_FriskActivates::
|
||||
saveattacker
|
||||
savetarget
|
||||
copybyte gBattlerAttacker, sBATTLER
|
||||
tryfriskmsg BS_SCRIPTING
|
||||
restoreattacker
|
||||
restoretarget
|
||||
end3
|
||||
|
||||
BattleScript_ImposterActivates::
|
||||
@ -8999,34 +9017,29 @@ BattleScript_BerryConfuseHealRet_Anim:
|
||||
removeitem BS_TARGET
|
||||
return
|
||||
|
||||
BattleScript_BerryStatRaiseEnd2::
|
||||
jumpifability BS_ATTACKER, ABILITY_RIPEN, BattleScript_BerryStatRaiseEnd2_AbilityPopup
|
||||
goto BattleScript_BerryStatRaiseEnd2_Anim
|
||||
BattleScript_BerryStatRaiseEnd2_AbilityPopup:
|
||||
call BattleScript_AbilityPopUp
|
||||
BattleScript_BerryStatRaiseEnd2_Anim:
|
||||
statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_BerryStatRaiseEnd2_End
|
||||
setgraphicalstatchangevalues
|
||||
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, sB_ANIM_ARG1
|
||||
setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_ITEM
|
||||
call BattleScript_StatUp
|
||||
removeitem BS_ATTACKER
|
||||
BattleScript_BerryStatRaiseEnd2_End::
|
||||
BattleScript_ConsumableStatRaiseEnd2::
|
||||
call BattleScript_ConsumableStatRaiseRet
|
||||
end2
|
||||
|
||||
BattleScript_BerryStatRaiseRet::
|
||||
jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_BerryStatRaiseRet_AbilityPopup
|
||||
goto BattleScript_BerryStatRaiseRet_Anim
|
||||
BattleScript_BerryStatRaiseRet_AbilityPopup:
|
||||
BattleScript_ConsumableStatRaiseRet::
|
||||
@ to ensure `statbuffchange` has correct battler id, backup and use target
|
||||
savetarget
|
||||
copybyte gBattlerTarget, sBATTLER
|
||||
jumpifnotberry BS_SCRIPTING, BattleScript_ConsumableStatRaiseRet_Anim
|
||||
@ check ripen popup if consuming berry
|
||||
jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_ConsumableStatRaiseRet_AbilityPopup
|
||||
goto BattleScript_ConsumableStatRaiseRet_Anim
|
||||
BattleScript_ConsumableStatRaiseRet_AbilityPopup:
|
||||
call BattleScript_AbilityPopUp
|
||||
BattleScript_BerryStatRaiseRet_Anim:
|
||||
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_BerryStatRaiseRet_End
|
||||
BattleScript_ConsumableStatRaiseRet_Anim:
|
||||
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_ConsumableStatRaiseRet_End
|
||||
setgraphicalstatchangevalues
|
||||
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, sB_ANIM_ARG1
|
||||
setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_ITEM
|
||||
call BattleScript_StatUp
|
||||
removeitem BS_SCRIPTING
|
||||
BattleScript_BerryStatRaiseRet_End:
|
||||
BattleScript_ConsumableStatRaiseRet_End:
|
||||
restoretarget
|
||||
return
|
||||
|
||||
BattleScript_BerryFocusEnergyRet::
|
||||
@ -10033,15 +10046,16 @@ BattleScript_CouldntFullyProtect::
|
||||
return
|
||||
|
||||
BattleScript_BerserkGeneRet::
|
||||
saveattacker
|
||||
savetarget
|
||||
copybyte gBattlerTarget, sBATTLER
|
||||
statbuffchange STAT_CHANGE_ALLOW_PTR, BattleScript_BerserkGeneRet_TryConfuse
|
||||
setgraphicalstatchangevalues
|
||||
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, sB_ANIM_ARG1
|
||||
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, sB_ANIM_ARG1
|
||||
setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_ITEM
|
||||
call BattleScript_StatUp
|
||||
BattleScript_BerserkGeneRet_TryConfuse:
|
||||
jumpifability BS_SCRIPTING, ABILITY_OWN_TEMPO, BattleScript_BerserkGeneRet_OwnTempoPrevents
|
||||
jumpifability BS_ATTACKER, ABILITY_OWN_TEMPO, BattleScript_BerserkGeneRet_OwnTempoPrevents
|
||||
jumpifsafeguard BattleScript_BerserkGeneRet_SafeguardProtected
|
||||
seteffectprimary MOVE_EFFECT_CONFUSION
|
||||
goto BattleScript_BerserkGeneRet_End
|
||||
@ -10056,9 +10070,14 @@ BattleScript_BerserkGeneRet_OwnTempoPrevents:
|
||||
printstring STRINGID_PKMNPREVENTSCONFUSIONWITH
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_BerserkGeneRet_End:
|
||||
restoreattacker
|
||||
restoretarget
|
||||
removeitem BS_SCRIPTING
|
||||
end3
|
||||
removeitem BS_ATTACKER
|
||||
return
|
||||
|
||||
BattleScript_BerserkGeneRetEnd2::
|
||||
call BattleScript_BerserkGeneRet
|
||||
end2
|
||||
|
||||
BattleScript_BoosterEnergyEnd2::
|
||||
call BattleScript_BoosterEnergyRet
|
||||
|
||||
|
Before Width: | Height: | Size: 638 B After Width: | Height: | Size: 567 B |
|
Before Width: | Height: | Size: 877 B After Width: | Height: | Size: 780 B |
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
153 210 164
|
||||
153 211 165
|
||||
52 41 48
|
||||
74 57 66
|
||||
15 15 15
|
||||
38 210 161
|
||||
102 91 96
|
||||
185 170 175
|
||||
239 227 225
|
||||
147 125 133
|
||||
80 29 37
|
||||
77 74 75
|
||||
230 76 98
|
||||
255 251 255
|
||||
74 57 66
|
||||
102 91 96
|
||||
117 105 110
|
||||
153 62 73
|
||||
167 171 167
|
||||
123 130 123
|
||||
230 76 98
|
||||
147 125 133
|
||||
180 165 170
|
||||
16 16 16
|
||||
225 215 218
|
||||
249 247 248
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
153 210 164
|
||||
153 211 165
|
||||
52 41 48
|
||||
84 81 81
|
||||
74 57 66
|
||||
15 15 15
|
||||
38 210 161
|
||||
102 91 96
|
||||
185 170 175
|
||||
239 227 225
|
||||
186 80 100
|
||||
121 120 119
|
||||
189 184 186
|
||||
147 125 133
|
||||
80 29 37
|
||||
160 74 85
|
||||
171 167 168
|
||||
255 251 255
|
||||
136 134 133
|
||||
167 171 167
|
||||
123 130 123
|
||||
180 165 170
|
||||
16 16 16
|
||||
225 215 218
|
||||
230 220 223
|
||||
0 0 0
|
||||
0 0 0
|
||||
0 0 0
|
||||
|
||||
|
Before Width: | Height: | Size: 538 B After Width: | Height: | Size: 531 B |
|
Before Width: | Height: | Size: 550 B After Width: | Height: | Size: 520 B |
@ -1,17 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
14
|
||||
16
|
||||
0 183 239
|
||||
101 16 12
|
||||
36 77 28
|
||||
43 97 14
|
||||
143 19 11
|
||||
189 28 16
|
||||
230 74 53
|
||||
95 171 29
|
||||
75 133 61
|
||||
197 168 80
|
||||
250 136 107
|
||||
164 216 74
|
||||
16 16 16
|
||||
95 171 29
|
||||
241 201 80
|
||||
198 169 83
|
||||
254 254 254
|
||||
101 16 12
|
||||
157 24 17
|
||||
222 81 69
|
||||
249 164 162
|
||||
36 77 28
|
||||
75 133 61
|
||||
229 238 129
|
||||
253 253 253
|
||||
0 0 0
|
||||
|
||||
@ -1,17 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
14
|
||||
16
|
||||
0 183 239
|
||||
128 65 0
|
||||
160 53 43
|
||||
43 97 14
|
||||
184 93 0
|
||||
214 143 1
|
||||
255 211 22
|
||||
95 171 29
|
||||
255 118 66
|
||||
197 168 80
|
||||
255 250 137
|
||||
164 216 74
|
||||
16 16 16
|
||||
95 171 29
|
||||
241 201 80
|
||||
198 169 83
|
||||
254 254 254
|
||||
194 80 3
|
||||
221 143 0
|
||||
255 212 22
|
||||
249 164 162
|
||||
185 77 49
|
||||
255 118 66
|
||||
229 238 129
|
||||
253 253 253
|
||||
0 0 0
|
||||
|
||||
|
Before Width: | Height: | Size: 919 B |
|
Before Width: | Height: | Size: 475 B After Width: | Height: | Size: 418 B |
BIN
graphics/pokemon/frigibax/front.png
Normal file
|
After Width: | Height: | Size: 540 B |
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
153 210 164
|
||||
102 104 113
|
||||
65 73 73
|
||||
170 177 183
|
||||
143 153 163
|
||||
175 155 10
|
||||
249 216 0
|
||||
222 223 222
|
||||
15 15 15
|
||||
156 151 156
|
||||
142 187 183
|
||||
194 231 233
|
||||
114 94 22
|
||||
255 181 9
|
||||
209 147 16
|
||||
118 152 148
|
||||
153 211 165
|
||||
62 66 87
|
||||
153 121 3
|
||||
196 154 0
|
||||
227 193 44
|
||||
252 215 39
|
||||
106 115 138
|
||||
145 162 173
|
||||
166 175 189
|
||||
16 16 16
|
||||
174 186 207
|
||||
214 223 232
|
||||
195 232 233
|
||||
255 255 255
|
||||
62 103 133
|
||||
46 63 92
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
153 210 164
|
||||
75 114 106
|
||||
52 74 64
|
||||
134 186 173
|
||||
116 161 150
|
||||
175 155 10
|
||||
249 216 0
|
||||
222 223 222
|
||||
15 15 15
|
||||
156 151 156
|
||||
142 187 183
|
||||
194 231 233
|
||||
143 103 130
|
||||
255 179 230
|
||||
255 143 219
|
||||
118 152 148
|
||||
153 211 165
|
||||
61 89 106
|
||||
151 98 104
|
||||
196 154 0
|
||||
246 201 215
|
||||
252 215 39
|
||||
92 137 147
|
||||
145 162 173
|
||||
159 184 189
|
||||
16 16 16
|
||||
174 186 207
|
||||
214 223 232
|
||||
195 232 233
|
||||
255 255 255
|
||||
62 103 133
|
||||
46 63 92
|
||||
|
||||
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 781 B After Width: | Height: | Size: 890 B |
BIN
graphics/pokemon/great_tusk/front.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
0 160 232
|
||||
112 24 48
|
||||
144 8 56
|
||||
232 48 120
|
||||
104 24 40
|
||||
153 211 165
|
||||
41 32 62
|
||||
109 27 27
|
||||
112 24 50
|
||||
66 55 99
|
||||
180 46 46
|
||||
184 19 73
|
||||
129 87 69
|
||||
228 77 109
|
||||
249 240 67
|
||||
118 127 157
|
||||
92 89 163
|
||||
184 168 158
|
||||
16 16 16
|
||||
40 32 64
|
||||
96 88 160
|
||||
56 48 88
|
||||
120 80 64
|
||||
184 168 160
|
||||
240 240 216
|
||||
128 136 160
|
||||
168 192 216
|
||||
248 240 88
|
||||
8 8 8
|
||||
169 192 216
|
||||
238 241 218
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
0 160 232
|
||||
160 104 16
|
||||
216 168 88
|
||||
248 240 152
|
||||
104 24 40
|
||||
16 16 16
|
||||
56 24 24
|
||||
153 211 165
|
||||
48 25 18
|
||||
109 27 27
|
||||
101 107 8
|
||||
85 53 42
|
||||
180 46 46
|
||||
166 175 26
|
||||
129 87 69
|
||||
229 240 58
|
||||
249 240 67
|
||||
111 152 126
|
||||
128 80 64
|
||||
96 64 48
|
||||
120 80 64
|
||||
184 168 160
|
||||
240 240 216
|
||||
72 176 144
|
||||
176 240 200
|
||||
248 240 88
|
||||
8 8 8
|
||||
184 168 158
|
||||
16 16 16
|
||||
167 205 188
|
||||
238 241 218
|
||||
|
||||
|
Before Width: | Height: | Size: 829 B After Width: | Height: | Size: 786 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 980 B |
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
152 208 160
|
||||
88 56 32
|
||||
0 183 239
|
||||
16 16 16
|
||||
152 24 16
|
||||
96 16 8
|
||||
32 72 24
|
||||
136 88 56
|
||||
216 80 64
|
||||
72 128 56
|
||||
248 160 160
|
||||
192 168 80
|
||||
40 96 8
|
||||
88 168 24
|
||||
160 216 72
|
||||
240 200 80
|
||||
32 88 8
|
||||
101 16 12
|
||||
36 77 28
|
||||
43 97 14
|
||||
143 19 11
|
||||
189 28 16
|
||||
194 44 58
|
||||
230 74 53
|
||||
211 34 61
|
||||
95 171 29
|
||||
250 136 107
|
||||
204 170 118
|
||||
164 216 74
|
||||
240 221 157
|
||||
125 0 0
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
152 208 160
|
||||
88 56 32
|
||||
0 183 239
|
||||
16 16 16
|
||||
216 136 0
|
||||
192 80 0
|
||||
32 72 24
|
||||
136 88 56
|
||||
248 208 16
|
||||
72 128 56
|
||||
248 232 144
|
||||
192 168 80
|
||||
40 96 8
|
||||
88 168 24
|
||||
160 216 72
|
||||
240 200 80
|
||||
32 88 8
|
||||
128 65 0
|
||||
160 53 43
|
||||
43 97 14
|
||||
184 93 0
|
||||
214 143 1
|
||||
194 44 58
|
||||
255 211 22
|
||||
29 171 38
|
||||
95 171 29
|
||||
255 250 137
|
||||
204 170 118
|
||||
164 216 74
|
||||
240 221 157
|
||||
0 83 0
|
||||
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
153 210 164
|
||||
51 55 62
|
||||
103 96 105
|
||||
237 235 230
|
||||
255 118 155
|
||||
6 6 6
|
||||
255 73 153
|
||||
168 150 153
|
||||
159 65 193
|
||||
18 26 80
|
||||
36 49 136
|
||||
0 97 173
|
||||
119 32 32
|
||||
255 70 57
|
||||
185 57 56
|
||||
253 214 0
|
||||
152 208 160
|
||||
95 46 56
|
||||
48 49 65
|
||||
14 28 103
|
||||
81 83 94
|
||||
255 127 39
|
||||
176 57 72
|
||||
250 80 71
|
||||
255 242 0
|
||||
24 48 177
|
||||
57 99 240
|
||||
166 91 227
|
||||
243 75 239
|
||||
186 183 171
|
||||
16 16 18
|
||||
231 230 226
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
153 210 164
|
||||
51 55 62
|
||||
103 96 105
|
||||
237 235 230
|
||||
168 150 153
|
||||
6 6 6
|
||||
255 191 0
|
||||
168 150 153
|
||||
159 65 193
|
||||
18 26 80
|
||||
172 24 67
|
||||
255 11 119
|
||||
33 34 50
|
||||
82 83 113
|
||||
67 68 90
|
||||
253 214 0
|
||||
152 208 160
|
||||
28 29 42
|
||||
48 49 65
|
||||
96 30 38
|
||||
81 83 94
|
||||
255 127 39
|
||||
64 59 74
|
||||
98 98 123
|
||||
255 242 0
|
||||
172 49 49
|
||||
213 74 82
|
||||
226 127 103
|
||||
234 198 4
|
||||
186 183 171
|
||||
16 16 18
|
||||
231 230 226
|
||||
|
||||
|
Before Width: | Height: | Size: 847 B After Width: | Height: | Size: 1007 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.2 KiB |
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
156 210 164
|
||||
156 153 205
|
||||
82 76 115
|
||||
49 48 106
|
||||
222 218 230
|
||||
246 255 255
|
||||
16 16 16
|
||||
123 97 164
|
||||
65 170 222
|
||||
57 64 139
|
||||
189 182 180
|
||||
255 226 115
|
||||
24 40 74
|
||||
82 68 156
|
||||
180 165 189
|
||||
57 48 74
|
||||
152 208 160
|
||||
29 29 41
|
||||
26 27 74
|
||||
70 70 100
|
||||
255 242 0
|
||||
45 47 130
|
||||
101 81 156
|
||||
32 132 191
|
||||
85 174 227
|
||||
140 138 172
|
||||
16 16 18
|
||||
158 152 202
|
||||
194 190 223
|
||||
255 255 255
|
||||
176 168 0
|
||||
0 0 0
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
156 210 164
|
||||
156 153 205
|
||||
82 76 115
|
||||
57 58 62
|
||||
222 218 230
|
||||
246 255 255
|
||||
16 16 16
|
||||
200 200 200
|
||||
65 170 222
|
||||
134 134 134
|
||||
189 182 180
|
||||
255 226 115
|
||||
24 40 74
|
||||
133 133 133
|
||||
180 165 189
|
||||
57 48 74
|
||||
152 208 160
|
||||
29 29 41
|
||||
70 70 100
|
||||
70 70 100
|
||||
255 242 0
|
||||
140 138 172
|
||||
194 190 223
|
||||
32 132 191
|
||||
85 174 227
|
||||
140 138 172
|
||||
16 16 18
|
||||
158 152 202
|
||||
194 190 223
|
||||
255 255 255
|
||||
176 168 0
|
||||
0 0 0
|
||||
|
||||
|
Before Width: | Height: | Size: 515 B After Width: | Height: | Size: 699 B |
|
Before Width: | Height: | Size: 540 B After Width: | Height: | Size: 682 B |
|
Before Width: | Height: | Size: 947 B After Width: | Height: | Size: 915 B |
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
238 230 180
|
||||
49 49 49
|
||||
148 156 148
|
||||
152 208 160
|
||||
29 29 29
|
||||
44 43 41
|
||||
64 112 54
|
||||
75 76 76
|
||||
89 96 106
|
||||
141 98 59
|
||||
91 171 49
|
||||
34 177 76
|
||||
232 157 2
|
||||
255 218 70
|
||||
0 150 176
|
||||
0 211 249
|
||||
148 152 151
|
||||
16 16 16
|
||||
65 115 49
|
||||
90 172 49
|
||||
90 98 106
|
||||
41 41 41
|
||||
74 74 74
|
||||
0 213 255
|
||||
24 24 24
|
||||
0 148 180
|
||||
255 222 65
|
||||
255 255 255
|
||||
238 156 0
|
||||
139 98 57
|
||||
253 253 253
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
238 230 180
|
||||
49 49 49
|
||||
148 156 148
|
||||
152 208 160
|
||||
29 29 29
|
||||
44 43 41
|
||||
64 112 54
|
||||
75 76 76
|
||||
89 96 106
|
||||
141 98 59
|
||||
91 171 49
|
||||
34 177 76
|
||||
162 205 29
|
||||
255 218 70
|
||||
0 150 176
|
||||
0 211 249
|
||||
148 152 151
|
||||
16 16 16
|
||||
65 115 49
|
||||
90 172 49
|
||||
90 98 106
|
||||
41 41 41
|
||||
74 74 74
|
||||
0 213 255
|
||||
24 24 24
|
||||
0 148 180
|
||||
255 222 65
|
||||
255 255 255
|
||||
164 205 24
|
||||
139 98 57
|
||||
253 253 253
|
||||
|
||||
|
Before Width: | Height: | Size: 1007 B After Width: | Height: | Size: 958 B |
|
Before Width: | Height: | Size: 534 B After Width: | Height: | Size: 746 B |
|
Before Width: | Height: | Size: 947 B After Width: | Height: | Size: 904 B |
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
238 230 180
|
||||
74 74 74
|
||||
213 156 24
|
||||
255 222 65
|
||||
65 115 49
|
||||
90 172 49
|
||||
16 16 16
|
||||
152 208 160
|
||||
41 41 41
|
||||
238 57 41
|
||||
156 16 16
|
||||
82 8 8
|
||||
87 15 15
|
||||
66 115 49
|
||||
74 74 74
|
||||
132 24 24
|
||||
206 57 49
|
||||
141 98 59
|
||||
90 173 49
|
||||
232 157 2
|
||||
198 156 41
|
||||
247 222 82
|
||||
0 211 249
|
||||
16 16 16
|
||||
255 255 255
|
||||
238 156 0
|
||||
123 106 49
|
||||
0 213 255
|
||||
139 98 57
|
||||
0 0 0
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
238 230 180
|
||||
74 74 74
|
||||
213 156 24
|
||||
255 222 65
|
||||
65 115 49
|
||||
90 172 49
|
||||
16 16 16
|
||||
152 208 160
|
||||
41 41 41
|
||||
238 57 41
|
||||
156 16 16
|
||||
82 8 8
|
||||
87 15 15
|
||||
66 115 49
|
||||
74 74 74
|
||||
132 24 24
|
||||
206 57 49
|
||||
141 98 59
|
||||
90 173 49
|
||||
162 205 29
|
||||
198 156 41
|
||||
247 222 82
|
||||
0 211 249
|
||||
16 16 16
|
||||
255 255 255
|
||||
164 205 24
|
||||
123 106 49
|
||||
0 213 255
|
||||
139 98 57
|
||||
0 0 0
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
238 230 180
|
||||
41 41 41
|
||||
65 115 49
|
||||
74 74 74
|
||||
8 164 156
|
||||
90 172 49
|
||||
152 208 160
|
||||
44 43 41
|
||||
64 112 54
|
||||
15 106 67
|
||||
75 76 76
|
||||
141 98 59
|
||||
97 167 27
|
||||
91 171 49
|
||||
84 182 101
|
||||
232 157 2
|
||||
219 156 94
|
||||
255 218 70
|
||||
9 164 156
|
||||
16 16 16
|
||||
8 106 65
|
||||
180 222 164
|
||||
255 255 255
|
||||
98 164 24
|
||||
82 180 98
|
||||
238 156 0
|
||||
139 98 57
|
||||
255 222 65
|
||||
222 156 90
|
||||
178 216 161
|
||||
253 253 253
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
238 230 180
|
||||
41 41 41
|
||||
65 115 49
|
||||
74 74 74
|
||||
8 164 156
|
||||
90 172 49
|
||||
152 208 160
|
||||
44 43 41
|
||||
64 112 54
|
||||
15 106 67
|
||||
75 76 76
|
||||
141 98 59
|
||||
97 167 27
|
||||
91 171 49
|
||||
84 182 101
|
||||
162 205 29
|
||||
219 156 94
|
||||
255 218 70
|
||||
9 164 156
|
||||
16 16 16
|
||||
8 106 65
|
||||
180 222 164
|
||||
255 255 255
|
||||
98 164 24
|
||||
82 180 98
|
||||
164 205 24
|
||||
139 98 57
|
||||
255 222 65
|
||||
222 156 90
|
||||
178 216 161
|
||||
253 253 253
|
||||
|
||||
|
Before Width: | Height: | Size: 534 B After Width: | Height: | Size: 728 B |
|
Before Width: | Height: | Size: 909 B After Width: | Height: | Size: 862 B |
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
238 230 180
|
||||
65 115 49
|
||||
90 172 49
|
||||
152 208 160
|
||||
44 43 41
|
||||
64 112 54
|
||||
75 76 76
|
||||
141 98 59
|
||||
91 171 49
|
||||
232 157 2
|
||||
255 218 70
|
||||
12 65 129
|
||||
15 94 181
|
||||
3 129 229
|
||||
59 213 249
|
||||
16 16 16
|
||||
8 65 131
|
||||
41 41 41
|
||||
0 131 230
|
||||
74 74 74
|
||||
139 98 57
|
||||
8 90 180
|
||||
57 213 255
|
||||
205 222 255
|
||||
238 156 0
|
||||
255 222 65
|
||||
255 255 255
|
||||
156 205 222
|
||||
156 206 220
|
||||
206 221 255
|
||||
253 253 253
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
238 230 180
|
||||
65 115 49
|
||||
90 172 49
|
||||
152 208 160
|
||||
44 43 41
|
||||
64 112 54
|
||||
75 76 76
|
||||
141 98 59
|
||||
91 171 49
|
||||
162 205 29
|
||||
255 218 70
|
||||
12 65 129
|
||||
15 94 181
|
||||
3 129 229
|
||||
59 213 249
|
||||
16 16 16
|
||||
8 65 131
|
||||
41 41 41
|
||||
0 131 230
|
||||
74 74 74
|
||||
139 98 57
|
||||
8 90 180
|
||||
57 213 255
|
||||
205 222 255
|
||||
164 205 24
|
||||
255 222 65
|
||||
255 255 255
|
||||
156 205 222
|
||||
156 206 220
|
||||
206 221 255
|
||||
253 253 253
|
||||
|
||||
|
Before Width: | Height: | Size: 495 B After Width: | Height: | Size: 489 B |
|
Before Width: | Height: | Size: 613 B After Width: | Height: | Size: 490 B |
|
Before Width: | Height: | Size: 771 B After Width: | Height: | Size: 719 B |
@ -1,18 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
15
|
||||
152 208 160
|
||||
216 80 128
|
||||
248 160 200
|
||||
144 40 64
|
||||
248 120 144
|
||||
24 24 24
|
||||
96 64 72
|
||||
64 40 40
|
||||
248 160 8
|
||||
200 104 88
|
||||
0 0 0
|
||||
144 88 80
|
||||
248 200 8
|
||||
16
|
||||
153 211 165
|
||||
40 24 24
|
||||
88 40 40
|
||||
64 48 48
|
||||
88 64 64
|
||||
120 72 64
|
||||
128 48 48
|
||||
176 104 88
|
||||
184 80 96
|
||||
200 144 80
|
||||
184 184 184
|
||||
240 128 136
|
||||
16 16 16
|
||||
248 232 136
|
||||
248 248 248
|
||||
168 160 160
|
||||
0 0 0
|
||||
|
||||
@ -1,18 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
15
|
||||
152 208 160
|
||||
216 80 128
|
||||
248 160 200
|
||||
144 40 64
|
||||
248 120 144
|
||||
24 24 24
|
||||
232 192 206
|
||||
217 158 179
|
||||
248 160 8
|
||||
248 240 240
|
||||
0 0 0
|
||||
241 223 226
|
||||
248 200 8
|
||||
16
|
||||
153 211 165
|
||||
174 80 82
|
||||
120 104 112
|
||||
193 122 128
|
||||
217 164 169
|
||||
200 186 180
|
||||
128 48 48
|
||||
248 224 232
|
||||
184 80 96
|
||||
200 144 80
|
||||
184 184 184
|
||||
240 128 136
|
||||
16 16 16
|
||||
248 232 136
|
||||
248 248 248
|
||||
168 160 160
|
||||
0 0 0
|
||||
|
||||
|
Before Width: | Height: | Size: 602 B After Width: | Height: | Size: 649 B |
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
156 210 164
|
||||
131 97 49
|
||||
197 80 131
|
||||
153 211 165
|
||||
32 16 40
|
||||
40 32 48
|
||||
48 40 56
|
||||
71 62 76
|
||||
64 56 80
|
||||
112 32 64
|
||||
94 86 101
|
||||
152 56 104
|
||||
200 144 80
|
||||
240 80 160
|
||||
184 184 184
|
||||
16 16 16
|
||||
96 92 107
|
||||
246 214 65
|
||||
230 113 164
|
||||
59 50 72
|
||||
83 81 104
|
||||
31 33 45
|
||||
255 255 255
|
||||
43 43 43
|
||||
87 83 97
|
||||
68 61 84
|
||||
70 69 95
|
||||
131 60 90
|
||||
248 232 136
|
||||
248 248 248
|
||||
0 0 0
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
156 210 164
|
||||
131 97 49
|
||||
197 80 131
|
||||
153 211 165
|
||||
120 104 112
|
||||
174 80 82
|
||||
200 186 180
|
||||
193 122 128
|
||||
248 224 232
|
||||
112 32 64
|
||||
217 164 169
|
||||
152 56 104
|
||||
200 144 80
|
||||
240 80 160
|
||||
184 184 184
|
||||
16 16 16
|
||||
255 206 222
|
||||
246 214 65
|
||||
230 113 164
|
||||
249 241 242
|
||||
205 153 172
|
||||
139 89 115
|
||||
255 255 255
|
||||
57 60 65
|
||||
246 186 205
|
||||
247 233 235
|
||||
255 226 238
|
||||
131 60 90
|
||||
248 232 136
|
||||
248 248 248
|
||||
0 0 0
|
||||
|
||||
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 611 B After Width: | Height: | Size: 533 B |
BIN
graphics/pokemon/terapagos/front.png
Normal file
|
After Width: | Height: | Size: 995 B |
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
152 208 160
|
||||
38 26 108
|
||||
49 34 133
|
||||
103 230 225
|
||||
60 76 160
|
||||
160 64 109
|
||||
228 103 181
|
||||
0 0 0
|
||||
115 162 235
|
||||
52 201 163
|
||||
76 244 204
|
||||
153 228 201
|
||||
230 244 173
|
||||
205 251 128
|
||||
63 50 194
|
||||
153 211 165
|
||||
33 33 105
|
||||
53 53 168
|
||||
62 85 198
|
||||
85 85 202
|
||||
242 56 141
|
||||
147 78 192
|
||||
43 189 156
|
||||
40 138 191
|
||||
44 211 177
|
||||
65 132 243
|
||||
165 230 153
|
||||
16 16 16
|
||||
143 143 220
|
||||
212 245 255
|
||||
255 255 255
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
152 208 160
|
||||
37 114 136
|
||||
66 151 189
|
||||
151 58 210
|
||||
63 209 230
|
||||
160 64 109
|
||||
234 243 49
|
||||
0 0 0
|
||||
218 32 48
|
||||
52 201 163
|
||||
76 244 204
|
||||
153 228 201
|
||||
230 244 173
|
||||
205 251 128
|
||||
63 50 194
|
||||
153 211 165
|
||||
39 80 120
|
||||
71 161 196
|
||||
62 85 198
|
||||
70 209 236
|
||||
237 183 87
|
||||
147 78 192
|
||||
138 48 220
|
||||
191 40 81
|
||||
44 211 177
|
||||
65 132 243
|
||||
165 230 153
|
||||
16 16 16
|
||||
148 226 243
|
||||
212 245 255
|
||||
255 255 255
|
||||
|
||||
|
Before Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 1.1 KiB |
BIN
graphics/pokemon/terapagos/terastal/front.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
152 208 160
|
||||
90 53 7
|
||||
42 121 78
|
||||
70 70 70
|
||||
215 38 89
|
||||
41 45 164
|
||||
77 151 158
|
||||
78 190 242
|
||||
170 172 227
|
||||
122 228 243
|
||||
147 245 227
|
||||
252 252 182
|
||||
153 211 165
|
||||
26 26 26
|
||||
247 69 26
|
||||
255 213 45
|
||||
45 45 140
|
||||
62 85 198
|
||||
85 85 202
|
||||
242 70 153
|
||||
147 78 192
|
||||
40 138 191
|
||||
44 211 177
|
||||
65 132 243
|
||||
165 230 153
|
||||
16 16 16
|
||||
245 160 222
|
||||
255 255 255
|
||||
52 66 152
|
||||
0 200 255
|
||||
197 34 91
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
JASC-PAL
|
||||
0100
|
||||
16
|
||||
152 208 160
|
||||
90 53 7
|
||||
42 121 78
|
||||
70 70 70
|
||||
215 38 89
|
||||
41 45 164
|
||||
77 151 158
|
||||
78 190 242
|
||||
170 172 227
|
||||
122 228 243
|
||||
147 245 227
|
||||
252 252 182
|
||||
153 211 165
|
||||
26 26 26
|
||||
247 69 26
|
||||
255 213 45
|
||||
61 126 192
|
||||
62 85 198
|
||||
70 209 236
|
||||
237 183 87
|
||||
147 78 192
|
||||
191 40 81
|
||||
44 211 177
|
||||
65 132 243
|
||||
165 230 153
|
||||
16 16 16
|
||||
245 160 222
|
||||
255 255 255
|
||||
84 215 251
|
||||
255 0 0
|
||||
244 255 0
|
||||
|
||||
@ -189,9 +189,9 @@ extern struct linkManagerTag lman;
|
||||
|
||||
u32 rfu_LMAN_REQBN_softReset_and_checkID(void);
|
||||
void rfu_LMAN_requestChangeAgbClockMaster(void);
|
||||
void rfu_LMAN_initializeRFU(INIT_PARAM *init_params);
|
||||
void rfu_LMAN_initializeRFU(INIT_PARAM *init_parameters);
|
||||
u8 rfu_LMAN_establishConnection(u8 parent_child, u16 connect_period, u16 name_accept_period, u16 *acceptable_serialNo_list);
|
||||
void rfu_LMAN_stopManager(bool8 forced_stop_and_RFU_reset_flag);
|
||||
void rfu_LMAN_stopManager(u8 forced_stop_and_RFU_reset_flag);
|
||||
void rfu_LMAN_setMSCCallback(void (*MSC_callback_p)(u16));
|
||||
void rfu_LMAN_REQ_sendData(bool8 clockChangeFlag);
|
||||
void rfu_LMAN_powerDownRFU(void);
|
||||
|
||||
@ -132,6 +132,7 @@ struct DisableStruct
|
||||
u8 unburdenActive:1;
|
||||
u8 neutralizingGas:1;
|
||||
u8 iceFaceActivationPrevention:1; // fixes hit escape move edge case
|
||||
u8 unnerveActivated:1; // Unnerve and As One (Unnerve part) activate only once per switch in
|
||||
u8 padding:3;
|
||||
};
|
||||
|
||||
@ -404,10 +405,10 @@ struct StatsArray
|
||||
|
||||
struct BattleResources
|
||||
{
|
||||
struct SecretBase* secretBase;
|
||||
struct BattleScriptsStack* battleScriptsStack;
|
||||
struct BattleCallbacksStack* battleCallbackStack;
|
||||
struct StatsArray* beforeLvlUp;
|
||||
struct SecretBase *secretBase;
|
||||
struct BattleScriptsStack *battleScriptsStack;
|
||||
struct BattleCallbacksStack *battleCallbackStack;
|
||||
struct StatsArray *beforeLvlUp;
|
||||
struct AI_ThinkingStruct *ai;
|
||||
struct AiLogicData *aiData;
|
||||
struct AIPartyData *aiParty;
|
||||
@ -859,51 +860,51 @@ static inline bool32 IsBattleMoveRecoil(u32 move)
|
||||
return GetMoveRecoil(move) > 0 || GetMoveEffect(move) == EFFECT_RECOIL_IF_MISS;
|
||||
}
|
||||
|
||||
/* Checks if 'battlerId' is any of the types.
|
||||
/* Checks if 'battler' is any of the types.
|
||||
* Passing multiple types is more efficient than calling this multiple
|
||||
* times with one type because it shares the 'GetBattlerTypes' result. */
|
||||
#define _IS_BATTLER_ANY_TYPE(battlerId, ignoreTera, ...) \
|
||||
({ \
|
||||
u32 types[3]; \
|
||||
GetBattlerTypes(battlerId, ignoreTera, types); \
|
||||
#define _IS_BATTLER_ANY_TYPE(battler, ignoreTera, ...) \
|
||||
({ \
|
||||
u32 types[3]; \
|
||||
GetBattlerTypes(battler, ignoreTera, types); \
|
||||
RECURSIVELY(R_FOR_EACH(_IS_BATTLER_ANY_TYPE_HELPER, __VA_ARGS__)) FALSE; \
|
||||
})
|
||||
|
||||
#define _IS_BATTLER_ANY_TYPE_HELPER(type) (types[0] == type) || (types[1] == type) || (types[2] == type) ||
|
||||
|
||||
#define IS_BATTLER_ANY_TYPE(battlerId, ...) _IS_BATTLER_ANY_TYPE(battlerId, FALSE, __VA_ARGS__)
|
||||
#define IS_BATTLER_ANY_TYPE(battler, ...) _IS_BATTLER_ANY_TYPE(battler, FALSE, __VA_ARGS__)
|
||||
#define IS_BATTLER_OF_TYPE IS_BATTLER_ANY_TYPE
|
||||
#define IS_BATTLER_ANY_BASE_TYPE(battlerId, ...) _IS_BATTLER_ANY_TYPE(battlerId, TRUE, __VA_ARGS__)
|
||||
#define IS_BATTLER_ANY_BASE_TYPE(battler, ...) _IS_BATTLER_ANY_TYPE(battler, TRUE, __VA_ARGS__)
|
||||
#define IS_BATTLER_OF_BASE_TYPE IS_BATTLER_ANY_BASE_TYPE
|
||||
|
||||
#define IS_BATTLER_TYPELESS(battlerId) \
|
||||
({ \
|
||||
u32 types[3]; \
|
||||
GetBattlerTypes(battlerId, FALSE, types); \
|
||||
#define IS_BATTLER_TYPELESS(battlerId) \
|
||||
({ \
|
||||
u32 types[3]; \
|
||||
GetBattlerTypes(battlerId, FALSE, types); \
|
||||
types[0] == TYPE_MYSTERY && types[1] == TYPE_MYSTERY && types[2] == TYPE_MYSTERY; \
|
||||
})
|
||||
|
||||
#define SET_BATTLER_TYPE(battlerId, type) \
|
||||
{ \
|
||||
gBattleMons[battlerId].types[0] = type; \
|
||||
gBattleMons[battlerId].types[1] = type; \
|
||||
gBattleMons[battlerId].types[2] = TYPE_MYSTERY; \
|
||||
#define SET_BATTLER_TYPE(battler, type) \
|
||||
{ \
|
||||
gBattleMons[battler].types[0] = type; \
|
||||
gBattleMons[battler].types[1] = type; \
|
||||
gBattleMons[battler].types[2] = TYPE_MYSTERY; \
|
||||
}
|
||||
|
||||
#define RESTORE_BATTLER_TYPE(battlerId) \
|
||||
{ \
|
||||
gBattleMons[battlerId].types[0] = gSpeciesInfo[gBattleMons[battlerId].species].types[0]; \
|
||||
gBattleMons[battlerId].types[1] = gSpeciesInfo[gBattleMons[battlerId].species].types[1]; \
|
||||
gBattleMons[battlerId].types[2] = TYPE_MYSTERY; \
|
||||
#define RESTORE_BATTLER_TYPE(battler) \
|
||||
{ \
|
||||
gBattleMons[battler].types[0] = gSpeciesInfo[gBattleMons[battler].species].types[0]; \
|
||||
gBattleMons[battler].types[1] = gSpeciesInfo[gBattleMons[battler].species].types[1]; \
|
||||
gBattleMons[battler].types[2] = TYPE_MYSTERY; \
|
||||
}
|
||||
|
||||
#define IS_BATTLER_PROTECTED(battlerId)(gProtectStructs[battlerId].protected \
|
||||
|| gProtectStructs[battlerId].spikyShielded \
|
||||
|| gProtectStructs[battlerId].kingsShielded \
|
||||
|| gProtectStructs[battlerId].banefulBunkered \
|
||||
|| gProtectStructs[battlerId].burningBulwarked \
|
||||
|| gProtectStructs[battlerId].obstructed \
|
||||
|| gProtectStructs[battlerId].silkTrapped)
|
||||
#define IS_BATTLER_PROTECTED(battler)(gProtectStructs[battler].protected \
|
||||
|| gProtectStructs[battler].spikyShielded \
|
||||
|| gProtectStructs[battler].kingsShielded \
|
||||
|| gProtectStructs[battler].banefulBunkered \
|
||||
|| gProtectStructs[battler].burningBulwarked \
|
||||
|| gProtectStructs[battler].obstructed \
|
||||
|| gProtectStructs[battler].silkTrapped)
|
||||
|
||||
#define GET_STAT_BUFF_ID(n) ((n & 7)) // first three bits 0x1, 0x2, 0x4
|
||||
#define GET_STAT_BUFF_VALUE_WITH_SIGN(n) ((n & 0xF8))
|
||||
|
||||
0
include/battle_ai_script_commands.h
Normal file
@ -22,6 +22,14 @@ enum AIPivot
|
||||
SHOULD_PIVOT,
|
||||
};
|
||||
|
||||
enum WeatherState
|
||||
{
|
||||
WEATHER_INACTIVE,
|
||||
WEATHER_ACTIVE,
|
||||
WEATHER_ACTIVE_BUT_BLOCKED,
|
||||
WEATHER_INACTIVE_AND_BLOCKED,
|
||||
};
|
||||
|
||||
bool32 AI_IsFaster(u32 battlerAi, u32 battlerDef, u32 move);
|
||||
bool32 AI_IsSlower(u32 battlerAi, u32 battlerDef, u32 move);
|
||||
bool32 AI_RandLessThan(u32 val);
|
||||
@ -58,6 +66,7 @@ s32 AI_DecideKnownAbilityForTurn(u32 battlerId);
|
||||
u32 AI_DecideHoldEffectForTurn(u32 battlerId);
|
||||
bool32 DoesBattlerIgnoreAbilityChecks(u32 battlerAtk, u32 atkAbility, u32 move);
|
||||
u32 AI_GetWeather(void);
|
||||
enum WeatherState IsWeatherActive(u32 flags);
|
||||
bool32 CanAIFaintTarget(u32 battlerAtk, u32 battlerDef, u32 numHits);
|
||||
bool32 CanIndexMoveFaintTarget(u32 battlerAtk, u32 battlerDef, u32 index, u32 numHits);
|
||||
bool32 HasDamagingMove(u32 battlerId);
|
||||
|
||||
@ -68,21 +68,21 @@ void DestroyAnimSprite(struct Sprite *sprite);
|
||||
void DestroyAnimVisualTask(u8 taskId);
|
||||
void DestroyAnimSoundTask(u8 taskId);
|
||||
u8 GetAnimBattlerId(u8 wantedBattler);
|
||||
bool8 IsBattlerSpriteVisible(u8 battlerId);
|
||||
void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible);
|
||||
bool8 IsBattlerSpriteVisible(u8 battler);
|
||||
void MoveBattlerSpriteToBG(u8 battler, bool8 toBG_2, bool8 setSpriteInvisible);
|
||||
bool8 IsContest(void);
|
||||
s8 BattleAnimAdjustPanning(s8 pan);
|
||||
s8 BattleAnimAdjustPanning2(s8 pan);
|
||||
s16 KeepPanInRange(s16 panArg, int oldPan);
|
||||
s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan);
|
||||
void RelocateBattleBgPal(u16 paletteNum, u16 *dest, u32 offset, bool8 largeScreen);
|
||||
void ResetBattleAnimBg(bool8);
|
||||
void ResetBattleAnimBg(bool8 toBG2);
|
||||
void LoadMoveBg(u16 bgId);
|
||||
|
||||
// battle_intro.c
|
||||
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value);
|
||||
void DrawBattlerOnBg(int bgId, u8 x, u8 y, u8 battlerPosition, u8 paletteId, u8 *tiles, u16 *tilemap, u16 tilesOffset);
|
||||
void HandleIntroSlide(u8 environmentId);
|
||||
void HandleIntroSlide(u8 environment);
|
||||
int GetAnimBgAttribute(u8 bgId, u8 attributeId);
|
||||
|
||||
// battle_anim_mons.c
|
||||
@ -92,7 +92,7 @@ void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite);
|
||||
void AnimWeatherBallUp(struct Sprite *sprite);
|
||||
void AnimWeatherBallDown(struct Sprite *sprite);
|
||||
void AnimSpinningSparkle(struct Sprite *sprite);
|
||||
void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y);
|
||||
void SetAverageBattlerPositions(u8 battler, bool8 respectMonPicOffsets, s16 *x, s16 *y);
|
||||
void DestroySpriteAndMatrix(struct Sprite *sprite);
|
||||
void TranslateSpriteLinearFixedPoint(struct Sprite *sprite);
|
||||
void InitSpritePosToAnimAttacker(struct Sprite *sprite, bool8 respectMonPicOffsets);
|
||||
@ -102,7 +102,7 @@ void StartAnimLinearTranslation(struct Sprite *sprite);
|
||||
void InitAnimArcTranslation(struct Sprite *sprite);
|
||||
bool8 AnimTranslateLinear(struct Sprite *sprite);
|
||||
void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite);
|
||||
u8 GetBattlerSpriteCoord2(u8 battlerId, u8 attributeId);
|
||||
u8 GetBattlerSpriteCoord2(u8 battler, u8 coordType);
|
||||
void InitAnimLinearTranslationWithSpeed(struct Sprite *sprite);
|
||||
u16 ArcTan2Neg(s16 x, s16 y);
|
||||
void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 xScale, s16 yScale, u16 rotation);
|
||||
@ -111,19 +111,19 @@ void TranslateSpriteLinearAndFlicker(struct Sprite *sprite);
|
||||
void SetSpriteCoordsToAnimAttackerCoords(struct Sprite *sprite);
|
||||
void RunStoredCallbackWhenAnimEnds(struct Sprite *sprite);
|
||||
void SetAnimSpriteInitialXOffset(struct Sprite *sprite, s16 xOffset);
|
||||
s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr);
|
||||
u8 GetBattlerYCoordWithElevation(u8 battlerId);
|
||||
s16 GetBattlerSpriteCoordAttr(u8 battler, u8 attr);
|
||||
u8 GetBattlerYCoordWithElevation(u8 battler);
|
||||
void WaitAnimForDuration(struct Sprite *sprite);
|
||||
void AnimTravelDiagonally(struct Sprite *sprite);
|
||||
void InitAnimLinearTranslation(struct Sprite *sprite);
|
||||
void AnimTranslateLinear_WithFollowup(struct Sprite *sprite);
|
||||
u8 GetBattlerSpriteBGPriority(u8 battlerId);
|
||||
void *LoadPointerFromVars(s16 bottom, s16 top);
|
||||
void StorePointerInVars(s16 *bottom, s16 *top, const void *ptr);
|
||||
u8 GetBattlerSpriteBGPriority(u8 battler);
|
||||
void *LoadPointerFromVars(s16 lo, s16 hi);
|
||||
void StorePointerInVars(s16 *lo, s16 *hi, const void *ptr);
|
||||
void InitPrioritiesForVisibleBattlers(void);
|
||||
void GetBattleAnimBg1Data(struct BattleAnimBgData *);
|
||||
void GetBattleAnimBgData(struct BattleAnimBgData *, u32 bgId);
|
||||
u8 GetBattlerSpriteSubpriority(u8 battlerId);
|
||||
void GetBattleAnimBg1Data(struct BattleAnimBgData *out);
|
||||
void GetBattleAnimBgData(struct BattleAnimBgData *out, u32 bgId);
|
||||
u8 GetBattlerSpriteSubpriority(u8 battler);
|
||||
bool8 TranslateAnimHorizontalArc(struct Sprite *sprite);
|
||||
void TranslateSpriteLinearByIdFixedPoint(struct Sprite *sprite);
|
||||
void ResetSpriteRotScale(u8 spriteId);
|
||||
@ -135,16 +135,16 @@ u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target,
|
||||
u32 GetBattleMonSpritePalettesMask(u8 playerLeft, u8 playerRight, u8 opponentLeft, u8 opponentRight);
|
||||
u8 GetSpritePalIdxByBattler(u8 battler);
|
||||
s16 CloneBattlerSpriteWithBlend(u8 animBattler);
|
||||
void DestroySpriteWithActiveSheet(struct Sprite *);
|
||||
u8 CreateInvisibleSpriteCopy(int, u8, int);
|
||||
void AnimLoadCompressedBgTilemapHandleContest(struct BattleAnimBgData *, const void *, bool32);
|
||||
void AnimLoadCompressedBgGfx(u32, const u32 *, u32);
|
||||
void UpdateAnimBg3ScreenSize(bool8);
|
||||
void TranslateSpriteInGrowingCircle(struct Sprite *);
|
||||
void DestroySpriteWithActiveSheet(struct Sprite *sprite);
|
||||
u8 CreateInvisibleSpriteCopy(int battler, u8 spriteId, int species);
|
||||
void AnimLoadCompressedBgTilemapHandleContest(struct BattleAnimBgData *data, const void *src, bool32 largeScreen);
|
||||
void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset);
|
||||
void UpdateAnimBg3ScreenSize(bool8 largeScreenSize);
|
||||
void TranslateSpriteInGrowingCircle(struct Sprite *sprite);
|
||||
void SetBattlerSpriteYOffsetFromYScale(u8 spriteId);
|
||||
void PrepareEruptAnimTaskData(struct Task *task, u8 spriteId, s16 xScaleStart, s16 yScaleStart, s16 xScaleEnd, s16 yScaleEnd, u16 duration);
|
||||
u8 UpdateEruptAnimTask(struct Task *task);
|
||||
void DestroyAnimSpriteAndDisableBlend(struct Sprite *);
|
||||
void DestroyAnimSpriteAndDisableBlend(struct Sprite *sprite);
|
||||
void AnimLoadCompressedBgTilemap(u32 bgId, const void *src);
|
||||
void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite);
|
||||
bool8 AnimFastTranslateLinear(struct Sprite *sprite);
|
||||
@ -154,12 +154,12 @@ void TranslateSpriteLinear(struct Sprite *sprite);
|
||||
void AnimSpriteOnMonPos(struct Sprite *sprite);
|
||||
void InitAnimLinearTranslationWithSpeedAndPos(struct Sprite *sprite);
|
||||
void TranslateSpriteInCircle(struct Sprite *sprite);
|
||||
void SetGrayscaleOrOriginalPalette(u16 palNum, bool8 restoreOriginal);
|
||||
void SetGrayscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor);
|
||||
void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds);
|
||||
bool8 RunAffineAnimFromTaskData(struct Task *task);
|
||||
void AnimThrowProjectile(struct Sprite *sprite);
|
||||
void GetBgDataForTransform(struct BattleAnimBgData *dest, u8 battlerId);
|
||||
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, bool8 isShiny, u32 battlerId);
|
||||
void GetBgDataForTransform(struct BattleAnimBgData *out, u8 battler);
|
||||
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, bool8 isShiny, u32 battler);
|
||||
void ResetSpriteRotScale_PreserveAffine(struct Sprite *sprite);
|
||||
void Trade_MoveSelectedMonToTarget(struct Sprite *sprite);
|
||||
void DestroyAnimVisualTaskAndDisableBlend(u8 taskId);
|
||||
@ -188,17 +188,17 @@ enum
|
||||
BATTLER_COORD_ATTR_RAW_BOTTOM,
|
||||
};
|
||||
|
||||
u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId);
|
||||
u8 GetBattlerSpriteCoord(u8 battler, u8 coordType);
|
||||
|
||||
bool8 IsBattlerSpritePresent(u8 battlerId);
|
||||
bool8 IsBattlerSpritePresent(u8 battler);
|
||||
void ClearBattleAnimBg(u32 bgId);
|
||||
u8 GetAnimBattlerSpriteId(u8 wantedBattler);
|
||||
u8 GetBattleBgPaletteNum(void);
|
||||
u8 GetBattlerSpriteBGPriorityRank(u8 battlerId);
|
||||
void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*spriteCallback)(struct Sprite *));
|
||||
u8 GetBattlerSpriteBGPriorityRank(u8 battler);
|
||||
void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*callback)(struct Sprite *));
|
||||
void SetSpritePrimaryCoordsFromSecondaryCoords(struct Sprite *sprite);
|
||||
u8 GetBattlerSpriteDefault_Y(u8 battlerId);
|
||||
u8 GetSubstituteSpriteDefault_Y(u8 battlerId);
|
||||
u8 GetBattlerSpriteDefault_Y(u8 battler);
|
||||
u8 GetSubstituteSpriteDefault_Y(u8 battler);
|
||||
|
||||
// battle_anim_status_effects.c
|
||||
#define STAT_ANIM_PLUS1 (MOVE_EFFECT_ATK_PLUS_1 - 1)
|
||||
@ -221,7 +221,7 @@ enum {
|
||||
STAT_ANIM_PAL_MULTIPLE = 0xFF
|
||||
};
|
||||
|
||||
void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId);
|
||||
void LaunchStatusAnimation(u8 battler, u8 statusAnimId);
|
||||
extern const union AnimCmd *const gAnims_SpinningSparkle[];
|
||||
|
||||
// battle_anim_ground.c
|
||||
@ -235,18 +235,17 @@ extern const union AffineAnimCmd *const gAffineAnims_SpinningBone[];
|
||||
// battle_anim_throw.c
|
||||
void TryShinyAnimation(u8 battler, struct Pokemon *mon);
|
||||
u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId);
|
||||
u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 spritePalNum, u32 selectedPalettes, u8 ballId);
|
||||
u8 LaunchBallFadeMonTask(bool8 unfadeLater, u8 spritePalNum, u32 selectedPalettes, u8 ballId);
|
||||
bool32 IsCriticalCapture(void);
|
||||
|
||||
// battle_anim_utility_funcs.c
|
||||
void InitStatsChangeAnimation(u8);
|
||||
void StartMonScrollingBgMask(u8 taskId, int unused, u16 scrollSpeed, u8 battler, bool8 includePartner, u8 numFadeSteps, u8 fadeStepDelay, u8 duration, const u32 *gfx, const u32 *tilemap, const u32 *palette);
|
||||
void InitStatsChangeAnimation(u8 taskId);
|
||||
void StartMonScrollingBgMask(u8 taskId, int UNUSED unused, u16 scrollSpeed, u8 battler, bool8 includePartner, u8 numFadeSteps, u8 fadeStepDelay, u8 duration, const u32 *gfx, const u32 *tilemap, const u32 *palette);
|
||||
|
||||
// battle_anim_effects_1.c
|
||||
void AnimFalseSwipeSlice_Step3(struct Sprite *);
|
||||
void SetSpriteNextToMonHead(u8 battler, struct Sprite *sprite);
|
||||
void AnimMoveTwisterParticle(struct Sprite *sprite);
|
||||
void AnimParticleBurst(struct Sprite *);
|
||||
void AnimParticleBurst(struct Sprite *sprite);
|
||||
void AnimPowerAbsorptionOrb(struct Sprite *sprite);
|
||||
void AnimNeedleArmSpike(struct Sprite *);
|
||||
void AnimTask_CompressTargetHorizontally(u8 taskId);
|
||||
@ -382,9 +381,9 @@ void AnimPsychoBoost(struct Sprite *sprite);
|
||||
// battle_anim_smokescreen.c
|
||||
u8 SmokescreenImpact(s16 x, s16 y, bool8 persist);
|
||||
|
||||
u32 UnpackSelectedBattlePalettes(s16);
|
||||
u32 UnpackSelectedBattlePalettes(s16 selector);
|
||||
|
||||
u8 GetBattlerSpriteFinal_Y(u8, u16, u8);
|
||||
u8 GetBattlerSpriteFinal_Y(u8 battler, u16 species, bool8 a3);
|
||||
|
||||
extern const struct OamData gOamData_AffineOff_ObjNormal_8x16;
|
||||
extern const struct OamData gOamData_AffineNormal_ObjBlend_16x16;
|
||||
|
||||
@ -64,11 +64,65 @@ enum {
|
||||
REQUEST_TOUGH_RIBBON_BATTLE,
|
||||
};
|
||||
|
||||
// Accessors for gBattleControllerExecFlags.
|
||||
//
|
||||
// These are provided for documentation purposes, to make the battle
|
||||
// controller internals and the link communication internals more
|
||||
// legible. Several of these have functions that you should call
|
||||
// (e.g. MarkBattlerForControllerExec) instead of using these macros
|
||||
// directly.
|
||||
|
||||
#define MARK_BATTLE_CONTROLLER_ACTIVE_ON_LOCAL(battler) \
|
||||
gBattleControllerExecFlags |= (1u << battler)
|
||||
|
||||
#define MARK_BATTLE_CONTROLLER_IDLE_ON_LOCAL(battler) \
|
||||
gBattleControllerExecFlags &= ~(1u << battler)
|
||||
|
||||
#define IS_BATTLE_CONTROLLER_ACTIVE_ON_LOCAL(battler) \
|
||||
(gBattleControllerExecFlags & (1u << battler))
|
||||
|
||||
#define MARK_BATTLE_CONTROLLER_MESSAGE_OUTBOUND_OVER_LINK(battler) \
|
||||
gBattleControllerExecFlags |= (1u << battler) << (32 - MAX_BATTLERS_COUNT)
|
||||
|
||||
#define MARK_BATTLE_CONTROLLER_MESSAGE_SYNCHRONIZED_OVER_LINK(battler) \
|
||||
gBattleControllerExecFlags &= ~((1 << 28) << (battler))
|
||||
|
||||
#define MARK_BATTLE_CONTROLLER_ACTIVE_FOR_PLAYER(battler, playerId) \
|
||||
gBattleControllerExecFlags |= (1u << battler) << ((playerId) << 2)
|
||||
|
||||
#define MARK_BATTLE_CONTROLLER_IDLE_FOR_PLAYER(battler, playerId) \
|
||||
gBattleControllerExecFlags &= ~(1u << battler) << ((playerId) * 4)
|
||||
|
||||
#define IS_BATTLE_CONTROLLER_ACTIVE_FOR_PLAYER(battler, playerId) \
|
||||
(gBattleControllerExecFlags & (1u << battler) << ((playerId) * 4))
|
||||
|
||||
// This actually checks if a specific controller is active on any player or if
|
||||
// *any* controller is pending sync over link communications, but the macro name
|
||||
// can only be so specific before it just gets ridiculous.
|
||||
#define IS_BATTLE_CONTROLLER_ACTIVE_OR_PENDING_SYNC_ANYWHERE(battler) \
|
||||
(gBattleControllerExecFlags & ( \
|
||||
(1u << battler) \
|
||||
| (0xF << 28) \
|
||||
| (1u << battler << 4) \
|
||||
| (1u << battler << 8) \
|
||||
| (1u << battler << 12) \
|
||||
))
|
||||
|
||||
// Special arguments for Battle Controller functions.
|
||||
|
||||
enum { // Values given to the emit functions to choose gBattleBufferA or gBattleBufferB
|
||||
BUFFER_A,
|
||||
BUFFER_B
|
||||
enum {
|
||||
// For commands sent from the core battle engine to a controller.
|
||||
B_COMM_TO_CONTROLLER, // gBattleBufferA
|
||||
|
||||
// For replies sent from a controller to the core battle engine.
|
||||
B_COMM_TO_ENGINE, // gBattleBufferB
|
||||
|
||||
// During local play, a controller must directly mark itself as
|
||||
// inactive when it's done processing, whether or not it sends
|
||||
// a reply. During multiplayer, it must NOT directly mark itself
|
||||
// as inactive, but instead send one of these, with the player's
|
||||
// multiplayer ID as data.
|
||||
B_COMM_CONTROLLER_IS_DONE
|
||||
};
|
||||
|
||||
enum {
|
||||
@ -237,11 +291,11 @@ void BtlController_EmitPlayFanfareOrBGM(u32 battler, u32 bufferId, u16 songId, b
|
||||
void BtlController_EmitFaintingCry(u32 battler, u32 bufferId);
|
||||
void BtlController_EmitIntroSlide(u32 battler, u32 bufferId, u8 terrainId);
|
||||
void BtlController_EmitIntroTrainerBallThrow(u32 battler, u32 bufferId);
|
||||
void BtlController_EmitDrawPartyStatusSummary(u32 battler, u32 bufferId, struct HpAndStatus* hpAndStatus, u8 flags);
|
||||
void BtlController_EmitDrawPartyStatusSummary(u32 battler, u32 bufferId, struct HpAndStatus *hpAndStatus, u8 flags);
|
||||
void BtlController_EmitHidePartyStatusSummary(u32 battler, u32 bufferId);
|
||||
void BtlController_EmitEndBounceEffect(u32 battler, u32 bufferId);
|
||||
void BtlController_EmitSpriteInvisibility(u32 battler, u32 bufferId, bool8 isInvisible);
|
||||
void BtlController_EmitBattleAnimation(u32 battler, u32 bufferId, u8 animationId, struct DisableStruct* disableStructPtr, u16 argument);
|
||||
void BtlController_EmitBattleAnimation(u32 battler, u32 bufferId, u8 animationId, struct DisableStruct *disableStructPtr, u16 argument);
|
||||
void BtlController_EmitLinkStandbyMsg(u32 battler, u32 bufferId, u8 mode, bool32 record);
|
||||
void BtlController_EmitResetActionMoveSelection(u32 battler, u32 bufferId, u8 caseId);
|
||||
void BtlController_EmitEndLinkBattle(u32 battler, u32 bufferId, u8 battleOutcome);
|
||||
@ -301,8 +355,8 @@ u32 LinkPlayerGetTrainerPicId(u32 multiplayerId);
|
||||
void CB2_SetUpReshowBattleScreenAfterMenu(void);
|
||||
void CB2_SetUpReshowBattleScreenAfterMenu2(void);
|
||||
void Task_PlayerController_RestoreBgmAfterCry(u8 taskId);
|
||||
void ActionSelectionCreateCursorAt(u8 cursorPos, u8 unused);
|
||||
void ActionSelectionDestroyCursorAt(u8 cursorPos);
|
||||
void ActionSelectionCreateCursorAt(u8 cursorPosition, u8 baseTileNum);
|
||||
void ActionSelectionDestroyCursorAt(u8 cursorPosition);
|
||||
void InitMoveSelectionsVarsAndStrings(u32 battler);
|
||||
void MoveSelectionCreateCursorAt(u8 cursorPos, u8 arg1);
|
||||
void MoveSelectionDestroyCursorAt(u8 cursorPosition);
|
||||
|
||||
@ -22,7 +22,7 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *battler);
|
||||
void ClearSpritesHealthboxAnimData(void);
|
||||
void CopyAllBattleSpritesInvisibilities(void);
|
||||
void CopyBattleSpriteInvisibility(u8 battler);
|
||||
void HandleSpeciesGfxDataChange(u8 attacker, u8 target, bool32 megaEvo, bool8 trackEnemyPersonality);
|
||||
void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool32 megaEvo, bool8 trackEnemyPersonality);
|
||||
void BattleLoadSubstituteOrMonSpriteGfx(u8 battler, bool8 loadMonSprite);
|
||||
void LoadBattleMonGfxAndAnimate(u8 battler, bool8 loadMonSprite, u8 spriteId);
|
||||
void TrySetBehindSubstituteSpriteBit(u8 battler, u16 move);
|
||||
|
||||
@ -103,10 +103,10 @@ enum
|
||||
u32 WhichBattleCoords(u32 battlerId);
|
||||
u8 CreateBattlerHealthboxSprites(u8 battler);
|
||||
u8 CreateSafariPlayerHealthboxSprites(void);
|
||||
void SetBattleBarStruct(u8 battler, u8 healthboxSpriteId, s32 maxVal, s32 currVal, s32 receivedValue);
|
||||
void SetBattleBarStruct(u8 battler, u8 healthboxSpriteId, s32 maxVal, s32 oldVal, s32 receivedValue);
|
||||
void SetHealthboxSpriteInvisible(u8 healthboxSpriteId);
|
||||
void SetHealthboxSpriteVisible(u8 healthboxSpriteId);
|
||||
void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly);
|
||||
void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBattlerOnly);
|
||||
void UpdateOamPriorityInAllHealthboxes(u8 priority, bool32 hideHpBoxes);
|
||||
void InitBattlerHealthboxCoords(u8 battler);
|
||||
void GetBattlerHealthboxCoords(u8 battler, s16 *x, s16 *y);
|
||||
|
||||
@ -45,7 +45,7 @@ void SpriteCB_VsLetterDummy(struct Sprite *sprite);
|
||||
void SpriteCB_VsLetterInit(struct Sprite *sprite);
|
||||
void CB2_InitEndLinkBattle(void);
|
||||
u32 GetBattleBgTemplateData(u8 arrayId, u8 caseId);
|
||||
u32 GetBattleWindowTemplatePixelWidth(u32 setId, u32 tableId);
|
||||
u32 GetBattleWindowTemplatePixelWidth(u32 windowsType, u32 tableId);
|
||||
void SpriteCB_WildMon(struct Sprite *sprite);
|
||||
void SpriteCallbackDummy_2(struct Sprite *sprite);
|
||||
void SpriteCB_FaintOpponentMon(struct Sprite *sprite);
|
||||
@ -67,7 +67,7 @@ const u8* FaintClearSetData(u32 battler);
|
||||
void BattleTurnPassed(void);
|
||||
u8 IsRunningFromBattleImpossible(u32 battler);
|
||||
void SwitchTwoBattlersInParty(u32 battler, u32 battler2);
|
||||
void SwitchPartyOrder(u32 battlerId);
|
||||
void SwitchPartyOrder(u32 battler);
|
||||
void SwapTurnOrder(u8 id1, u8 id2);
|
||||
u32 GetBattlerTotalSpeedStatArgs(u32 battler, u32 ability, u32 holdEffect);
|
||||
u32 GetBattlerTotalSpeedStat(u32 battler);
|
||||
@ -80,7 +80,7 @@ s32 GetWhichBattlerFaster(u32 battler1, u32 battler2, bool32 ignoreChosenMoves);
|
||||
void RunBattleScriptCommands_PopCallbacksStack(void);
|
||||
void RunBattleScriptCommands(void);
|
||||
void SpecialStatusesClear(void);
|
||||
u32 GetDynamicMoveType(struct Pokemon *mon, u32 move, u32 battler, u8 *ateBoost);
|
||||
u32 GetDynamicMoveType(struct Pokemon *mon, u32 move, u32 battler, enum MonState monInBattle);
|
||||
void SetTypeBeforeUsingMove(u32 move, u32 battlerAtk);
|
||||
bool32 IsWildMonSmart(void);
|
||||
u8 CreateNPCTrainerPartyFromTrainer(struct Pokemon *party, const struct Trainer *trainer, bool32 firstTrainer, u32 battleTypeFlags);
|
||||
|
||||
@ -15,7 +15,7 @@ void CopyPyramidTrainerSpeechBefore(u16 trainerId);
|
||||
void CopyPyramidTrainerWinSpeech(u16 trainerId);
|
||||
void CopyPyramidTrainerLoseSpeech(u16 trainerId);
|
||||
u8 GetTrainerEncounterMusicIdInBattlePyramid(u16 trainerId);
|
||||
void GenerateBattlePyramidFloorLayout(u16 *mapArg, bool8 setPlayerPosition);
|
||||
void GenerateBattlePyramidFloorLayout(u16 *backupMapData, bool8 setPlayerPosition);
|
||||
void LoadBattlePyramidObjectEventTemplates(void);
|
||||
void LoadBattlePyramidFloorObjectEventScripts(void);
|
||||
u8 GetNumBattlePyramidObjectEvents(void);
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
extern u8 gRecordsWindowId;
|
||||
|
||||
void ClearPlayerLinkBattleRecords(void);
|
||||
void UpdatePlayerLinkBattleRecords(s32 battlerId);
|
||||
void UpdatePlayerLinkBattleRecords(s32 battler);
|
||||
void ShowLinkBattleRecords(void);
|
||||
void RemoveRecordsWindow(void);
|
||||
void ShowTrainerHillRecords(void);
|
||||
|
||||
@ -25,7 +25,7 @@ struct PickupItem
|
||||
s32 CalcCritChanceStage(u32 battlerAtk, u32 battlerDef, u32 move, bool32 recordAbility, u32 abilityAtk, u32 abilityDef, u32 holdEffectAtk);
|
||||
s32 GetCritHitOdds(s32 critChanceIndex);
|
||||
u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, u32 atkAbility, u32 defAbility, u32 atkHoldEffect, u32 defHoldEffect);
|
||||
u8 GetBattlerTurnOrderNum(u8 battlerId);
|
||||
u8 GetBattlerTurnOrderNum(u8 battler);
|
||||
bool32 NoAliveMonsForPlayer(void);
|
||||
bool32 NoAliveMonsForEitherParty(void);
|
||||
void SetMoveEffect(bool32 primary, bool32 certain);
|
||||
@ -34,7 +34,7 @@ void BattleDestroyYesNoCursorAt(u8 cursorPosition);
|
||||
void BattleCreateYesNoCursorAt(u8 cursorPosition);
|
||||
void BufferMoveToLearnIntoBattleTextBuff2(void);
|
||||
void HandleBattleWindow(u8 xStart, u8 yStart, u8 xEnd, u8 yEnd, u8 flags);
|
||||
bool8 UproarWakeUpCheck(u8 battlerId);
|
||||
bool8 UproarWakeUpCheck(u8 battler);
|
||||
bool32 DoesSubstituteBlockMove(u32 battlerAtk, u32 battlerDef, u32 move);
|
||||
bool32 DoesDisguiseBlockMove(u32 battler, u32 move);
|
||||
bool32 CanPoisonType(u8 battlerAttacker, u8 battlerTarget);
|
||||
@ -58,7 +58,7 @@ bool32 IsMoveAffectedByParentalBond(u32 move, u32 battler);
|
||||
void SaveBattlerTarget(u32 battler);
|
||||
void SaveBattlerAttacker(u32 battler);
|
||||
|
||||
extern void (* const gBattleScriptingCommandsTable[])(void);
|
||||
extern void (*const gBattleScriptingCommandsTable[])(void);
|
||||
extern const struct StatFractions gAccuracyStageRatios[];
|
||||
|
||||
#endif // GUARD_BATTLE_SCRIPT_COMMANDS_H
|
||||
|
||||
@ -237,8 +237,8 @@ extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItemInPalace[];
|
||||
extern const u8 BattleScript_HangedOnMsg[];
|
||||
extern const u8 BattleScript_BerryConfuseHealEnd2[];
|
||||
extern const u8 BattleScript_BerryConfuseHealRet[];
|
||||
extern const u8 BattleScript_BerryStatRaiseEnd2[];
|
||||
extern const u8 BattleScript_BerryStatRaiseRet[];
|
||||
extern const u8 BattleScript_ConsumableStatRaiseEnd2[];
|
||||
extern const u8 BattleScript_ConsumableStatRaiseRet[];
|
||||
extern const u8 BattleScript_BerryFocusEnergyRet[];
|
||||
extern const u8 BattleScript_BerryFocusEnergyEnd2[];
|
||||
extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[];
|
||||
@ -286,6 +286,7 @@ extern const u8 BattleScript_BadDreamsActivates[];
|
||||
extern const u8 BattleScript_SwitchInAbilityMsg[];
|
||||
extern const u8 BattleScript_SwitchInAbilityMsgRet[];
|
||||
extern const u8 BattleScript_ToxicSpikesPoisoned[];
|
||||
extern const u8 BattleScript_ToxicSpikesBadlyPoisoned[];
|
||||
extern const u8 BattleScript_ToxicSpikesAbsorbed[];
|
||||
extern const u8 BattleScript_StickyWebOnSwitchIn[];
|
||||
extern const u8 BattleScript_SolarPowerActivates[];
|
||||
@ -488,9 +489,9 @@ extern const u8 BattleScript_ShellTrapSetUp[];
|
||||
extern const u8 BattleScript_StealthRockActivates[];
|
||||
extern const u8 BattleScript_CouldntFullyProtect[];
|
||||
extern const u8 BattleScript_MoveEffectStockpileWoreOff[];
|
||||
extern const u8 BattleScript_StealthRockActivates[];
|
||||
extern const u8 BattleScript_SpikesActivates[];
|
||||
extern const u8 BattleScript_BerserkGeneRet[];
|
||||
extern const u8 BattleScript_BerserkGeneRetEnd2[];
|
||||
extern const u8 BattleScript_TargetFormChangeWithStringNoPopup[];
|
||||
extern const u8 BattleScript_DefDown[];
|
||||
extern const u8 BattleScript_UltraBurst[];
|
||||
@ -815,7 +816,7 @@ extern const u8 BattleScript_MoveEffectEerieSpell[];
|
||||
extern const u8 BattleScript_EffectJungleHealing[];
|
||||
extern const u8 BattleScript_EffectCoaching[];
|
||||
extern const u8 BattleScript_EffectDecorate[];
|
||||
extern const u8 BattleScript_EffectRecoilHP25[];
|
||||
extern const u8 BattleScript_EffectStruggle[];
|
||||
extern const u8 BattleScript_EffectStuffCheeks[];
|
||||
extern const u8 BattleScript_MoveEffectLightScreen[];
|
||||
extern const u8 BattleScript_MoveEffectReflect[];
|
||||
|
||||
@ -6,6 +6,6 @@ void BattleTv_SetDataBasedOnMove(u16 move, u16 weatherFlags, struct DisableStruc
|
||||
void BattleTv_SetDataBasedOnAnimation(u8 animationId);
|
||||
void TryPutLinkBattleTvShowOnAir(void);
|
||||
void BattleTv_ClearExplosionFaintCause(void);
|
||||
u8 GetBattlerMoveSlotId(u8 battlerId, u16 moveId);
|
||||
u8 GetBattlerMoveSlotId(u8 battler, u16 move);
|
||||
|
||||
#endif // GUARD_BATTLE_TV_H
|
||||
|
||||
@ -212,7 +212,7 @@ bool32 HandleFaintedMonActions(void);
|
||||
void TryClearRageAndFuryCutter(void);
|
||||
u32 AtkCanceller_MoveSuccessOrder(void);
|
||||
void SetAtkCancellerForCalledMove(void);
|
||||
bool32 HasNoMonsToSwitch(u32 battler, u8 r1, u8 r2);
|
||||
bool32 HasNoMonsToSwitch(u32 battler, u8 partyIdBattlerOn1, u8 partyIdBattlerOn2);
|
||||
bool32 TryChangeBattleWeather(u32 battler, u32 battleWeatherId, bool32 viaAbility);
|
||||
bool32 CanAbilityBlockMove(u32 battlerAtk, u32 battlerDef, u32 move, u32 abilityDef, enum AbilityEffectOptions option);
|
||||
bool32 CanAbilityAbsorbMove(u32 battlerAtk, u32 battlerDef, u32 abilityDef, u32 move, u32 moveType, enum AbilityEffectOptions option);
|
||||
|
||||
@ -10,13 +10,12 @@ bool8 IsPlayerFacingEmptyBerryTreePatch(void);
|
||||
bool8 TryToWaterBerryTree(void);
|
||||
void ClearBerryTrees(void);
|
||||
void BerryTreeTimeUpdate(s32 minutes);
|
||||
void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle);
|
||||
void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 allowGrowth);
|
||||
void RemoveBerryTree(u8 id);
|
||||
u8 GetBerryTypeByBerryTreeId(u8 id);
|
||||
u8 GetStageByBerryTreeId(u8);
|
||||
u8 GetStageByBerryTreeId(u8 id);
|
||||
u8 ItemIdToBerryType(u16 item);
|
||||
void GetBerryNameByBerryType(u8 berry, u8 *string);
|
||||
void ResetBerryTreeSparkleFlag(u8 id);
|
||||
void Bag_ChooseBerry(void);
|
||||
void Bag_ChooseMulch(void);
|
||||
void ObjectEventInteractionGetBerryTreeData(void);
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
#include "task.h"
|
||||
#include "constants/cable_club.h"
|
||||
|
||||
void CreateTask_EnterCableClubSeat(TaskFunc taskFunc);
|
||||
void CreateTask_EnterCableClubSeat(TaskFunc followupFunc);
|
||||
u8 CreateTask_ReestablishCableClubLink(void);
|
||||
void CB2_ReturnFromCableClubBattle(void);
|
||||
bool32 AreBattleTowerLinkSpeciesSame(u16 *speciesList1, u16 *speciesList2);
|
||||
|
||||
@ -23,12 +23,23 @@
|
||||
* +---------------------------+
|
||||
*/
|
||||
|
||||
#define MAX_BATTLERS_COUNT 4
|
||||
enum BattlerPosition
|
||||
{
|
||||
B_POSITION_PLAYER_LEFT,
|
||||
B_POSITION_OPPONENT_LEFT,
|
||||
B_POSITION_PLAYER_RIGHT,
|
||||
B_POSITION_OPPONENT_RIGHT,
|
||||
MAX_POSITION_COUNT,
|
||||
};
|
||||
|
||||
#define B_POSITION_PLAYER_LEFT 0
|
||||
#define B_POSITION_OPPONENT_LEFT 1
|
||||
#define B_POSITION_PLAYER_RIGHT 2
|
||||
#define B_POSITION_OPPONENT_RIGHT 3
|
||||
enum BattlerId
|
||||
{
|
||||
B_BATTLER_0,
|
||||
B_BATTLER_1,
|
||||
B_BATTLER_2,
|
||||
B_BATTLER_3,
|
||||
MAX_BATTLERS_COUNT,
|
||||
};
|
||||
|
||||
// These macros can be used with either battler ID or positions to get the partner or the opposite mon
|
||||
#define BATTLE_OPPOSITE(id) ((id) ^ BIT_SIDE)
|
||||
@ -611,4 +622,10 @@ enum SlideMsgStates
|
||||
RESTORE_BATTLER_SLIDE_CONTROL,
|
||||
};
|
||||
|
||||
enum MonState
|
||||
{
|
||||
MON_IN_BATTLE,
|
||||
MON_OUTSIDE_BATTLE,
|
||||
};
|
||||
|
||||
#endif // GUARD_CONSTANTS_BATTLE_H
|
||||
|
||||
@ -292,7 +292,7 @@ enum {
|
||||
EFFECT_DYNAMAX_DOUBLE_DMG,
|
||||
EFFECT_DECORATE,
|
||||
EFFECT_SNIPE_SHOT,
|
||||
EFFECT_RECOIL_HP_25,
|
||||
EFFECT_STRUGGLE,
|
||||
EFFECT_STUFF_CHEEKS,
|
||||
EFFECT_GRAV_APPLE,
|
||||
EFFECT_HYPERSPACE_FURY,
|
||||
|
||||
@ -729,8 +729,9 @@
|
||||
#define STRINGID_ITDOESNTAFFECTTWOFOES 727
|
||||
#define STRINGID_SENDCAUGHTMONPARTYORBOX 728
|
||||
#define STRINGID_PKMNSENTTOPCAFTERCATCH 729
|
||||
#define STRINGID_TOXICSPIKESBADLYPOISONED 730
|
||||
|
||||
#define BATTLESTRINGS_COUNT 730
|
||||
#define BATTLESTRINGS_COUNT 731
|
||||
|
||||
// This is the string id that gBattleStringsTable starts with.
|
||||
// String ids before this (e.g. STRINGID_INTROMSG) are not in the table,
|
||||
|
||||