Merge branch '_RHH/master' into _RHH/upcoming
This commit is contained in:
commit
fb708b7ed3
32 changed files with 1013 additions and 130 deletions
|
@ -23,9 +23,10 @@ body:
|
|||
label: Version
|
||||
description: What version of pokeemerald-expansion are you using as a base?
|
||||
options:
|
||||
- 1.8.4 (Latest release)
|
||||
- 1.8.5 (Latest release)
|
||||
- master (default, unreleased bugfixes)
|
||||
- upcoming (Edge)
|
||||
- 1.8.4
|
||||
- 1.8.3
|
||||
- 1.8.2
|
||||
- 1.8.1
|
||||
|
|
|
@ -23,10 +23,12 @@ body:
|
|||
label: Version
|
||||
description: What version of pokeemerald-expansion are you using as a base?
|
||||
options:
|
||||
- 1.8.4 (Latest release)
|
||||
- 1.8.5 (Latest release)
|
||||
- master (default, unreleased bugfixes)
|
||||
- upcoming (Edge)
|
||||
- 1.8.4
|
||||
- 1.8.3
|
||||
- 1.8.2
|
||||
- 1.8.1
|
||||
- 1.8.0
|
||||
- 1.7.4
|
||||
|
|
4
.github/ISSUE_TEMPLATE/04_other_errors.yaml
vendored
4
.github/ISSUE_TEMPLATE/04_other_errors.yaml
vendored
|
@ -23,10 +23,12 @@ body:
|
|||
label: Version
|
||||
description: What version of pokeemerald-expansion are you using as a base?
|
||||
options:
|
||||
- 1.8.4 (Latest release)
|
||||
- 1.8.5 (Latest release)
|
||||
- master (default, unreleased bugfixes)
|
||||
- upcoming (Edge)
|
||||
- 1.8.4
|
||||
- 1.8.3
|
||||
- 1.8.2
|
||||
- 1.8.1
|
||||
- 1.8.0
|
||||
- 1.7.4
|
||||
|
|
55
CHANGELOG.md
55
CHANGELOG.md
|
@ -1,48 +1,49 @@
|
|||
# Pokeemerald-Expansion Changelogs
|
||||
|
||||
## 1.8.x
|
||||
- ### [Version 1.8.4](docs/changelogs/1.8.x/1.8.4.md) - Bugfix Release 🧹
|
||||
- ### [Version 1.8.3](docs/changelogs/1.8.x/1.8.3.md) - Bugfix Release 🧹
|
||||
- ### [Version 1.8.2](docs/changelogs/1.8.x/1.8.2.md) - Bugfix Release 🧹
|
||||
- ### [Version 1.8.1](docs/changelogs/1.8.x/1.8.1.md) - HOTFIX Release 🔥
|
||||
- ### [Version 1.8.0](docs/changelogs/1.8.x/1.8.0.md) - Feature Release ✨
|
||||
- **[Version 1.8.5](docs/changelogs/1.8.x/1.8.5.md) - 🧹 Bugfix Release**
|
||||
- **[Version 1.8.4](docs/changelogs/1.8.x/1.8.4.md) - 🧹 Bugfix Release**
|
||||
- **[Version 1.8.3](docs/changelogs/1.8.x/1.8.3.md) - 🧹 Bugfix Release**
|
||||
- **[Version 1.8.2](docs/changelogs/1.8.x/1.8.2.md) - 🧹 Bugfix Release**
|
||||
- **[Version 1.8.1](docs/changelogs/1.8.x/1.8.1.md) - 🔥 HOTFIX Release**
|
||||
- **[Version 1.8.0](docs/changelogs/1.8.x/1.8.0.md) - ✨ Feature Release**
|
||||
|
||||
## 1.7.x
|
||||
- ### [Version 1.7.4](docs/changelogs/1.7.x/1.7.4.md) - Bugfix Release 🧹
|
||||
- ### [Version 1.7.3](docs/changelogs/1.7.x/1.7.3.md) - Bugfix Release 🧹
|
||||
- ### [Version 1.7.2](docs/changelogs/1.7.x/1.7.2.md) - Bugfix Release 🧹
|
||||
- ### [Version 1.7.1](docs/changelogs/1.7.x/1.7.1.md) - Bugfix Release 🧹
|
||||
- ### [Version 1.7.0](docs/changelogs/1.7.x/1.7.0.md) - Feature Release ✨
|
||||
- **[Version 1.7.4](docs/changelogs/1.7.x/1.7.4.md) - 🧹 Bugfix Release**
|
||||
- **[Version 1.7.3](docs/changelogs/1.7.x/1.7.3.md) - 🧹 Bugfix Release**
|
||||
- **[Version 1.7.2](docs/changelogs/1.7.x/1.7.2.md) - 🧹 Bugfix Release**
|
||||
- **[Version 1.7.1](docs/changelogs/1.7.x/1.7.1.md) - 🧹 Bugfix Release**
|
||||
- **[Version 1.7.0](docs/changelogs/1.7.x/1.7.0.md) - ✨ Feature Release**
|
||||
|
||||
## 1.6.x
|
||||
- ### [Version 1.6.2](docs/changelogs/1.6.x/1.6.2.md) - Bugfix Release 🧹
|
||||
- ### [Version 1.6.1](docs/changelogs/1.6.x/1.6.1.md) - HOTFIX Release 🔥
|
||||
- ### [Version 1.6.0](docs/changelogs/1.6.x/1.6.0.md) - Feature Release ✨
|
||||
- **[Version 1.6.2](docs/changelogs/1.6.x/1.6.2.md) - 🧹 Bugfix Release**
|
||||
- **[Version 1.6.1](docs/changelogs/1.6.x/1.6.1.md) - 🔥 HOTFIX Release**
|
||||
- **[Version 1.6.0](docs/changelogs/1.6.x/1.6.0.md) - ✨ Feature Release**
|
||||
|
||||
## 1.5.x
|
||||
- ### [Version 1.5.3](docs/changelogs/1.5.x/1.5.3.md) - HOTFIX Release 🔥
|
||||
- ### [Version 1.5.2](docs/changelogs/1.5.x/1.5.2.md) - Bugfix Release 🧹
|
||||
- ### [Version 1.5.1](docs/changelogs/1.5.x/1.5.1.md) - Bugfix Release 🧹
|
||||
- ### [Version 1.5.0](docs/changelogs/1.5.x/1.5.0.md) - Feature Release ✨
|
||||
- **[Version 1.5.3](docs/changelogs/1.5.x/1.5.3.md) - 🔥 HOTFIX Release**
|
||||
- **[Version 1.5.2](docs/changelogs/1.5.x/1.5.2.md) - 🧹 Bugfix Release**
|
||||
- **[Version 1.5.1](docs/changelogs/1.5.x/1.5.1.md) - 🧹 Bugfix Release**
|
||||
- **[Version 1.5.0](docs/changelogs/1.5.x/1.5.0.md) - ✨ Feature Release**
|
||||
|
||||
## 1.4.x
|
||||
- ### [Version 1.4.3](docs/changelogs/1.4.x/1.4.3.md) - Bugfix Release 🧹
|
||||
- ### [Version 1.4.2](docs/changelogs/1.4.x/1.4.2.md) - Bugfix Release 🧹
|
||||
- ### [Version 1.4.1](docs/changelogs/1.4.x/1.4.1.md) - HOTFIX Release 🔥
|
||||
- ### [Version 1.4.0](docs/changelogs/1.4.x/1.4.0.md) - Feature Release ✨
|
||||
- **[Version 1.4.3](docs/changelogs/1.4.x/1.4.3.md) - 🧹 Bugfix Release**
|
||||
- **[Version 1.4.2](docs/changelogs/1.4.x/1.4.2.md) - 🧹 Bugfix Release**
|
||||
- **[Version 1.4.1](docs/changelogs/1.4.x/1.4.1.md) - 🔥 HOTFIX Release**
|
||||
- **[Version 1.4.0](docs/changelogs/1.4.x/1.4.0.md) - ✨ Feature Release**
|
||||
|
||||
## 1.3.x
|
||||
- ### [Version 1.3.0](docs/changelogs/1.3.x/1.3.0.md) - Feature Release ✨
|
||||
- **[Version 1.3.0](docs/changelogs/1.3.x/1.3.0.md) - ✨ Feature Release**
|
||||
|
||||
## 1.2.x
|
||||
- ### [Version 1.2.0](docs/changelogs/1.2.x/1.2.0.md) - Feature Release ✨
|
||||
- **[Version 1.2.0](docs/changelogs/1.2.x/1.2.0.md) - ✨ Feature Release**
|
||||
|
||||
## 1.1.x
|
||||
- ### [Version 1.1.1](docs/changelogs/1.1.x/1.1.1.md) - Bugfix Release 🧹
|
||||
- ### [Version 1.1.0](docs/changelogs/1.1.x/1.1.0.md) - Feature Release ✨
|
||||
- **[Version 1.1.1](docs/changelogs/1.1.x/1.1.1.md) - 🧹 Bugfix Release**
|
||||
- **[Version 1.1.0](docs/changelogs/1.1.x/1.1.0.md) - ✨ Feature Release**
|
||||
|
||||
## 1.0.x
|
||||
- ### [Version 1.0.0](docs/changelogs/1.0.x/1.0.0.md) - Feature Release ✨
|
||||
- **[Version 1.0.0](docs/changelogs/1.0.x/1.0.0.md) - ✨ Feature Release**
|
||||
|
||||
## Pre-1.0.x:
|
||||
- ### [Version 0.9.0](docs/changelogs/0.9.x/0.9.0.md) - Retroactive Version 🦕
|
||||
- **[Version 0.9.0](docs/changelogs/0.9.x/0.9.0.md) - 🦕 Retroactive Version**
|
||||
|
|
|
@ -482,6 +482,13 @@ nix-shell -p pkgsCross.arm-embedded.stdenv.cc git pkg-config libpng
|
|||
```
|
||||
Then proceed to [Choosing where to store pokeemerald Expansion (Linux)](#choosing-where-to-store-pokeemerald-expansion-linux).
|
||||
|
||||
### NixOS
|
||||
Run the following command to start an interactive shell with the necessary packages:
|
||||
```bash
|
||||
nix-shell -p pkgsCross.arm-embedded.stdenv.cc git pkg-config libpng
|
||||
```
|
||||
Then proceed to [Choosing where to store pokeemerald Expansion (Linux)](#choosing-where-to-store-pokeemerald-expansion-linux).
|
||||
|
||||
### Other distributions
|
||||
_(Specific instructions for other distributions would be greatly appreciated!)_
|
||||
|
||||
|
|
|
@ -1520,18 +1520,10 @@
|
|||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifrodaffected battler:req, jumpInstr:req
|
||||
callnative BS_JumpIfRod
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifabsorbaffected battler:req, jumpInstr:req
|
||||
callnative BS_JumpIfAbsorb
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
.macro jumpifmotoraffected battler:req, jumpInstr:req
|
||||
callnative BS_JumpIfMotor
|
||||
.macro jumpifelectricabilityaffected battler:req, ability:req, jumpInstr:req
|
||||
callnative BS_JumpIfElectricAbilityAffected
|
||||
.byte \battler
|
||||
.2byte \ability
|
||||
.4byte \jumpInstr
|
||||
.endm
|
||||
|
||||
|
|
|
@ -527,9 +527,9 @@ BattleScript_EffectTeatime::
|
|||
waitanimation
|
||||
setbyte gBattlerTarget, 0
|
||||
BattleScript_TeatimeLoop:
|
||||
jumpifrodaffected BS_TARGET, BattleScript_Teatimerod
|
||||
jumpifabsorbaffected BS_TARGET, BattleScript_Teatimesorb
|
||||
jumpifmotoraffected BS_TARGET, BattleScript_Teatimemotor
|
||||
jumpifelectricabilityaffected BS_TARGET, ABILITY_LIGHTNING_ROD, BattleScript_Teatimerod
|
||||
jumpifelectricabilityaffected BS_TARGET, ABILITY_VOLT_ABSORB, BattleScript_Teatimesorb
|
||||
jumpifelectricabilityaffected BS_TARGET, ABILITY_MOTOR_DRIVE, BattleScript_Teatimemotor
|
||||
jumpifteainvulnerable BS_TARGET, BattleScript_Teatimevul @ in semi-invulnerable state OR held item is not a Berry
|
||||
orword gHitMarker, HITMARKER_DISABLE_ANIMATION | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE
|
||||
setbyte sBERRY_OVERRIDE, TRUE @ override the requirements for eating berries
|
||||
|
@ -1614,6 +1614,7 @@ BattleScript_MoveEffectFlameBurst::
|
|||
waitmessage B_WAIT_TIME_LONG
|
||||
savetarget
|
||||
copybyte gBattlerTarget, sSAVED_BATTLER
|
||||
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
|
||||
healthbarupdate BS_TARGET
|
||||
datahpupdate BS_TARGET
|
||||
tryfaintmon BS_TARGET
|
||||
|
@ -3707,7 +3708,7 @@ BattleScript_EffectParalyze::
|
|||
BattleScript_BattleScript_EffectParalyzeNoTypeCalc:
|
||||
jumpifmovehadnoeffect BattleScript_ButItFailed
|
||||
jumpifstatus BS_TARGET, STATUS1_PARALYSIS, BattleScript_AlreadyParalyzed
|
||||
jumpifabsorbaffected BS_TARGET, BattleScript_VoltAbsorbHeal
|
||||
jumpifelectricabilityaffected BS_TARGET, ABILITY_VOLT_ABSORB, BattleScript_VoltAbsorbHeal
|
||||
tryparalyzetype BS_ATTACKER, BS_TARGET, BattleScript_NotAffected
|
||||
jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed
|
||||
jumpifterrainaffected BS_TARGET, STATUS_FIELD_MISTY_TERRAIN, BattleScript_MistyTerrainPrevents
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
- [Setting up WSL1 (Legacy Portion)](./legacy_WSL1_INSTALL.md)
|
||||
- [Changelog](./CHANGELOG.md)
|
||||
- [1.8.x]()
|
||||
- [Version 1.8.5](changelogs/1.8.x/1.8.5.md)
|
||||
- [Version 1.8.4](changelogs/1.8.x/1.8.4.md)
|
||||
- [Version 1.8.3](changelogs/1.8.x/1.8.3.md)
|
||||
- [Version 1.8.2](changelogs/1.8.x/1.8.2.md)
|
||||
|
|
219
docs/changelogs/1.8.x/1.8.5.md
Normal file
219
docs/changelogs/1.8.x/1.8.5.md
Normal file
|
@ -0,0 +1,219 @@
|
|||
# Version 1.8.5
|
||||
|
||||
```md
|
||||
## How to update
|
||||
- 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 expansion/1.8.5`.
|
||||
```
|
||||
|
||||
## 🌋 *IMPORTANT CHANGES AND REFACTORS* 🌋
|
||||
* Small `ABILITYEFFECT_MOVES_BLOCK` refactor for readability by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4635
|
||||
* Removed redundant `partnerPicId` arguments in macros by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4736
|
||||
* Renamed some labels from "critical hit chance" to "critical hit odds" by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4751
|
||||
* `sCriticalHitChance` => `sCriticalHitOdds`.
|
||||
* `GetCritHitChance` => `GetCritHitOdds`.
|
||||
* Renamed `BS_FAINTED_LINK_MULTIPLE_1/2` to `BS_FAINTED_MULTIPLE_1/2` by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4851
|
||||
* Remove Duplicate ai code from battle_ai_util.c by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4883
|
||||
* `AI_CanBeBurned` is now handled by `CanBeBurned`.
|
||||
* `CanSleep` renamed to `CanBeSlept`.
|
||||
* `AI_CanSleep` is now handled by `CanBeSlept` and added `defAbility` argument.
|
||||
* Added `defAbility` argument for `CanBePoisoned`.
|
||||
* Added `defAbility` argument for `CanBeBurned`.
|
||||
* Added `defAbility` argument for `CanBeParalyzed`.
|
||||
* Got rid of hardcoded stat raise anim values by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4825
|
||||
* Added parentheses to `SPECIES_EGG` macro to avoid issues by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4899
|
||||
* `IsFinalStrikeEffect` uses effect instead of move by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4917
|
||||
|
||||
## 💥 *Softlock/Crash fixes* 💥
|
||||
* Fixed Baton Pass hardlocking on Memento by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4773
|
||||
* Fixed Revive in Double Battles causing a softlock by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4784
|
||||
* Fixed Tectonic Rage causing a freeze after leveling up by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4787
|
||||
* Fixed Smack Down's animation softlocking the game after around 13 uses by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4774
|
||||
* Fixed softlock caused by using Covet/Thief on a Pokémon with Sticky Hold by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4885
|
||||
|
||||
## 🧬 General 🧬
|
||||
### Added
|
||||
* Added regional form breeding mechanics by @cawtds in https://github.com/rh-hideout/pokeemerald-expansion/pull/4695
|
||||
* Convert docs/ folder to mdBook by @leo60228 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4684
|
||||
* Go [here to see the new documentation page](https://rh-hideout.github.io/pokeemerald-expansion/). Feel free to contribute via PRs!
|
||||
* Cleanup by @leo60228 in:
|
||||
* https://github.com/rh-hideout/pokeemerald-expansion/pull/4711
|
||||
* https://github.com/rh-hideout/pokeemerald-expansion/pull/4715
|
||||
* https://github.com/rh-hideout/pokeemerald-expansion/pull/4716
|
||||
* https://github.com/rh-hideout/pokeemerald-expansion/pull/4809
|
||||
* Added forbidden status parameter to `FORM_CHANGE_ITEM_USE` by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4738
|
||||
* Used for Shaymin's form change via Gracidea being prevented if it's frozen or frostbitten.
|
||||
### Fixed
|
||||
* Fixed Poké Ball inheritance into actually working by @cawtds in https://github.com/rh-hideout/pokeemerald-expansion/pull/4695
|
||||
* Daycare fixes by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4479
|
||||
* Fixed Evolved mons not copying moves as they do not have their own egg move table.
|
||||
* Fixed forms of the same species not copying egg moves from each other.
|
||||
* Fixed Roamer Frostbite status not carrying over between battles by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4822
|
||||
* Fixed Partners getting the wrong nature defined by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4926
|
||||
* Fixed Shop menu lists not properly displaying 6-digit item prices by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4929
|
||||
|
||||
## 🐉 Pokémon 🐉
|
||||
### Changed
|
||||
* PokeCommunity sprites batch (May) by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/4714
|
||||
* Pawmi (Front by KingOfThe-X-Roads, back by Vent, QC by leParagon)
|
||||
* Pawmo (By vent, qc by leParagon)
|
||||
* Okidogi (Front by KingOfThe-X-Roads + by leParagon, back by Lykeron + QC by Alexandrev2. 0)
|
||||
* Backported Hedara's Terapagos from `upcoming`.
|
||||
* Updated wild held items to Gen 9 by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/4769
|
||||
* Teddiursa (Common: None_> Honey)
|
||||
* Bisharp (Rare: None -> Leader's Crest)
|
||||
* All Oricorio: (Rare: Honey -> Corresponding Nectar)
|
||||
* Toedscool, Toedscruel: (Common: Tiny Mushroom, Rare: Big Mushroom)
|
||||
* All Paradox Mon: (Rare: Booster Energy)
|
||||
### Fixed
|
||||
* Fixed Tandemaus being able to evolve via Rare and Exp. Candies by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4759
|
||||
* Fixed Poltchageist not always producing Counterfeit form offspring by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/4812
|
||||
* Fixed missing Minior Pokédex Entry by @cawtds in https://github.com/rh-hideout/pokeemerald-expansion/pull/4858
|
||||
* Multiple Pokemon sprite fixes by @cafei-uh in https://github.com/rh-hideout/pokeemerald-expansion/pull/4887
|
||||
- Fixed Charjabug shiny + cleaned up its front sprite
|
||||
- Changed Lurantis back sprite to better match its ingame model
|
||||
- Fixed Bounsweet shiny not changing the color of its lower body
|
||||
- Brightened the white color of Bruxish shiny + tweaked its sprites to accommodate the change
|
||||
* Fixed `P_UPDATED_ABILITIES` not reverting newly gained abilities in Gens 4/6/7 by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4922
|
||||
|
||||
## ⚔️ Battle General ⚔️ ##
|
||||
### Fixed
|
||||
* Fixed Dynamax HP not reverting upon fainting by @WillKolada in https://github.com/rh-hideout/pokeemerald-expansion/pull/4681
|
||||
* Fixed the partner's palette from shifting when throwing a Poké Ball by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4736
|
||||
* Fixed shiny value not being updated in battle, causing the palette to reset when reloading the sprites by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4788
|
||||
* Fixed `B_VAR_STARTING_STATUS` every following terrains infinite by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4795
|
||||
* Fixed Gen 7+ confusion self hurt chance from `1 in 3` to `33%` by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4831
|
||||
* Fixed caught wild pokemon not restoring their used held item by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/4803
|
||||
* Fixed AI's right slot switching-in too early by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4851
|
||||
* Ported post-KO test improvements from closed PR by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4859
|
||||
* Fixed how switch-in effects are played out after multiple faints in the same turn by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4864
|
||||
* Fixed Megas gaining abilities after fainting by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4873
|
||||
|
||||
## 🤹 Moves 🤹
|
||||
### Fixed
|
||||
* Added missing `ignoreSubstitute` flags for Defog (only in Gen 4), Torment and Powder by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4623
|
||||
* Fixed Grassy Glide granting priority if it's converted to Max Move by @PhallenTree in https://github.com/rh-hideout/pokeemerald-expansion/pull/4659
|
||||
* Fixed Rampage moves not confusing the user if it's canceled by Protect and Type immunity by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4722
|
||||
* Fixed Tar shot the target always be to Fire regardless of existing types by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4756
|
||||
* Fixed Shell Side Arm by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4753
|
||||
* Cleanup by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4806
|
||||
* Fixed Body press using physical Defense stat changes instead of Sp. Defense stat stages in Wonder Room (still uses physical defense stat) by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4792
|
||||
* Fixed Relic Song playing the transforming animation for species other than Meloetta by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4799
|
||||
* Fixed Pursuit not being locked by Choice Items when used on an opponent switching out by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4801
|
||||
* Fixed Encore's effect lasting only 2 turns if it was used after the opponent uses the move in the same turn by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4802
|
||||
* Fixed Spectral Thief playing stat raise animation when the user has Contrary by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4824
|
||||
* Fixed Fury Cutter scaling up to 640 power by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4846
|
||||
* Fixed moves with the `ignoresTargetAbility` flag ignoring the attacker's own ability by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4855
|
||||
* Fixed incorrect move names by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4854
|
||||
* Floral Healing
|
||||
* Jungle Healing
|
||||
* Oceanic Operetta
|
||||
* Fixed Grassy Terrain not healing on the final turn of its duration by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4903
|
||||
* Fixed Shed Tail's HP reduction rounding down instead of up by @kleeenexfeu in https://github.com/rh-hideout/pokeemerald-expansion/pull/4913
|
||||
* Fixed Bitter Malice's description, which used to imply that it didn't always lower the opponent's Attack by @kleeenexfeu in https://github.com/rh-hideout/pokeemerald-expansion/pull/4933
|
||||
* Fixed Flame Burst's adjacent damage not bypassing Substitute by @hedara90 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4939
|
||||
|
||||
## 🎭 Abilities 🎭
|
||||
### Added
|
||||
* Added missing Gen 3-4 config for Lightning Rod/Storm Drain (`B_REDIRECT_ABILITY_IMMUNITY`) by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4920
|
||||
### Fixed
|
||||
* Fixed Dancer issues @PhallenTree in https://github.com/rh-hideout/pokeemerald-expansion/pull/4638
|
||||
* Fixed Dancer triggering if the move user flinches when it was going to use a dance move
|
||||
* Fixed Dancer not triggering if a previous Dancer flinches.
|
||||
* Fixed Dazzling, Queenly Majesty and Armor Tail not protecting partners from priority moves by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4635
|
||||
* Cleanup by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4647
|
||||
* Fixed Burning Bulwark's incorrect message by @PhallenTree in https://github.com/rh-hideout/pokeemerald-expansion/pull/4659
|
||||
* Fixed Disguise's `breakable` flag (ignorable by Mold Breaker) by @AgustinGDLV in https://github.com/rh-hideout/pokeemerald-expansion/pull/4666
|
||||
* Fixed redundant call to `IsBattlerWeatherAffected` Dry Skin's checks by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4675
|
||||
* Fixed Guard Dog blocking U-Turn/Volt Switch/Flip Turn instead of Roar/Circle Throw/Dragon Tail by @PhallenTree in https://github.com/rh-hideout/pokeemerald-expansion/pull/4690
|
||||
* Fixed some abilities preventing stat dropping move effects when used on self by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4696
|
||||
* Hyper Cutter (Attack)
|
||||
* Big Pecks (Defense)
|
||||
* Keen Eye/Illuminate (Accuracy)
|
||||
* Fixed Mummy and Lingering Aroma not working at all by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4731
|
||||
* Fixed Berserk, Anger Shell, Wimp Out, Emergency Exit HP threshold (more than half HP instead of half HP and more) by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4724
|
||||
* Fixed Mycelium Might affecting every battler on the field instead of just the ability holder by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4740
|
||||
* Fixed Skill Link ignoring Gastro Acid/Neutralizing Gas by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4746
|
||||
* Fixed Own Tempo ignoring Gastro Acid/Neutralizing Gas when checking for Berserk Gene by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4746
|
||||
* Fixed Soul-Heart changing stats of wrong battler, which caused Mirror Herb to behave incorrectly by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4785
|
||||
* Fixed Poison Touch trigger chance from `1 in 3` to `30%` by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4831
|
||||
* Fixed Cursed Body trigger chance from `1 in 3` to `30%` by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4831
|
||||
* Fixed Comatose not being supressed if it's obtained by a Pokémon Transforming by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4852
|
||||
* Fixed Supersweet Syrup0s description by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4902
|
||||
|
||||
## 🧶 Items 🧶
|
||||
### Changed
|
||||
* Allowed rematches to occur if I_VS_SEEKER_CHARGING isn't enabled by @fdeblasio in https://github.com/rh-hideout/pokeemerald-expansion/pull/4866
|
||||
### Fixed
|
||||
* Fixed Honey altering tiles when used by @cawtds in https://github.com/rh-hideout/pokeemerald-expansion/pull/4703
|
||||
* Fixed potential undefined behaviour when using escape rope by @cawtds in https://github.com/rh-hideout/pokeemerald-expansion/pull/4705
|
||||
* Fixed Hyper Potion's price not respecting `I_PRICE` by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4737
|
||||
* Fixed Ability Shield not protecting against multiple effects by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4740
|
||||
* Mold Breaker-type abilities.
|
||||
* Mycelium Might.
|
||||
* Moves that bypass abilities (eg. Sunsteel Stike).
|
||||
|
||||
## 🤖 Battle AI 🤖
|
||||
### Changed
|
||||
* Add checks for `EFFECT_POLTERGEIST` and `EFFECT_FIRST_TURN_ONLY` to `IsDamageMoveUnusable` by @iriv24 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4693
|
||||
### Fixed
|
||||
* Fixed AI going for speed control even when it's faster than the opponet by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4630
|
||||
* Fixed AI not considering `EFFECT_RAGING_BULL` similarly to `EFFECT_BRICK_BREAK` by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4682
|
||||
* Fixed AI getting incorrect calculations due to using `gCurrentMove` in `CalcCritChanceStageArgs` by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4687
|
||||
* Fixed AI not recording Battle Armor or Shell Armor by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4751
|
||||
* Fixed AI not considering guaranteed crits by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4751
|
||||
* Fixed AI not properly avoiding contact against Rocky Helmet/Rough Skin by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4779
|
||||
* Fixed AI not recognising Volt Absorb/Flash Fire by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4781
|
||||
* Fixed AI thinking that Defiant/Competitive triggers off partner's moves in doubles by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4786
|
||||
* Fixed AI using `TRUE` (Stench) when calculating if it's worth using Swagger or Flatter on its partner by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4786
|
||||
* Fixed passing hold effect instead of ability in one call of ShouldSetSandstorm by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4789
|
||||
|
||||
## 🧪 Test Runner 🧪
|
||||
### Added
|
||||
* Added `FORCE_MOVE_ANIM` macro to force an animation to run in headless mode by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4774
|
||||
* Usage: `FORCE_MOVE_ANIM(TRUE)` at the beginning of the test and `FORCE_MOVE_ANIM(FALSE)` at the end.
|
||||
* Added test to prevent species from having different evolution tracker methods by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4771
|
||||
* Added test for missing Pokédex Entries by @cawtds in https://github.com/rh-hideout/pokeemerald-expansion/pull/4858
|
||||
* Added missing Move Effect TODO tests - Volume B by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4682
|
||||
* Added missing tests
|
||||
* Berserk by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4724
|
||||
* Clear Body by @Pawkkie in https://github.com/rh-hideout/pokeemerald-expansion/pull/4685
|
||||
* Cleanup by @Pawkkie in:
|
||||
* https://github.com/rh-hideout/pokeemerald-expansion/pull/4797
|
||||
* https://github.com/rh-hideout/pokeemerald-expansion/pull/4837
|
||||
* Anger Point and Moxie by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4811
|
||||
* Cursed Body, Poison Touch and Confusion status by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4831
|
||||
* Corrosion, Acrobatics, Hone Claws and Hurricane by @Pawkkie in https://github.com/rh-hideout/pokeemerald-expansion/pull/4708
|
||||
* Added AI tests for avoiding using status moves on Pokémon with abilities that prevent them by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4883
|
||||
* Added Own Tempo/Mold Breaker test by @AlexOn1ine in https://github.com/rh-hideout/pokeemerald-expansion/pull/4883
|
||||
### Changed
|
||||
* Multiple changes by @AsparagusEduardo in https://github.com/rh-hideout/pokeemerald-expansion/pull/4682
|
||||
* Renamed some Baton Pass-related tests so that their prefix becomes Baton Pass.
|
||||
* Eg. `Aqua Ring can be Baton Passed` becomes `Baton Pass passes Aqua Ring's effect`.
|
||||
* Expanded Belch's test to show that it doesn't need to eat a berry before each use of the move.
|
||||
* Unconfirmed interactions added to the specific files.
|
||||
* Split `EFFECT_RAGING_BULL` from `EFFECT_BRICK_BREAK`'s file.
|
||||
* Moved Grassy Terrain/Earthquake test to Earthquake file.
|
||||
* Write new/Fix old tests for post-ko switch scenarios by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4856
|
||||
### Fixed
|
||||
* Fixed issues when building tests with agbcc by @u8-Salem in https://github.com/rh-hideout/pokeemerald-expansion/pull/4689
|
||||
* Fixed incorrect `ASSUME`s in 2 test rampage tests by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4722
|
||||
* Fixed AI ability guessing in tests by @cawtds in https://github.com/rh-hideout/pokeemerald-expansion/pull/4764
|
||||
* Fixed Pokemon in tests not being male by default by @kittenchilly in https://github.com/rh-hideout/pokeemerald-expansion/pull/4766
|
||||
* Fixed Plasma Fists/Pixilate interaction test by @Sneed69 in https://github.com/rh-hideout/pokeemerald-expansion/pull/4865
|
||||
* Fixed wrong palette in player backsprite in recorded battle by @DizzyEggg in https://github.com/rh-hideout/pokeemerald-expansion/pull/4875
|
||||
|
||||
## 📦 Pret merges 📦
|
||||
* Merge in pret 189d542 by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4832
|
||||
* Fix Steven partner battle post-battle script by @Jaizu in https://github.com/pret/pokeemerald/pull/2001
|
||||
* Pret merge (20th of June) by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4845
|
||||
- [366f8b3](https://github.com/pret/pokeemerald/commit/366f8b33a38010f47886f70e52a4fa6dd306a4c4) NixOS install instructions by @leo60228
|
||||
- [c0d630e](https://github.com/pret/pokeemerald/commit/c0d630ee6304df61a5304942386308a872aeb504) Add support for LF line endings to gbagfx by @nashalexander
|
||||
* Pret Merge (5th of July) by @Bassoonian in https://github.com/rh-hideout/pokeemerald-expansion/pull/4915
|
||||
- [pret#2006](https://github.com/pret/pokeemerald/pull/2006/) (manually reverted)
|
||||
- [pret#2009](https://github.com/pret/pokeemerald/pull/2009/) Decode unused JP text in `berry_blender.c`
|
||||
- [pret#2012](https://github.com/pret/pokeemerald/pull/2012/) Berry blender's `Task_HandleOpponent` small fixes
|
||||
|
||||
**Full Changelog**: https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.8.4...expansion/1.8.5
|
||||
|
||||
<!--Last PR: 4939-->
|
|
@ -6,7 +6,7 @@
|
|||
- Once you have your remote set up, run the command `git pull RHH expansion/1.Y.Z`.
|
||||
```
|
||||
|
||||
## 🌋 *IMPORTANT CHANGES* 🌋
|
||||
## 🌋 *IMPORTANT CHANGES AND REFACTORS* 🌋
|
||||
* N/A
|
||||
|
||||
## 💥 *Softlock/Crash fixes* 💥
|
||||
|
|
|
@ -138,6 +138,7 @@
|
|||
#define B_WEATHER_FORMS GEN_LATEST // In Gen5+, Castform and Cherrim revert to their base form upon losing their respective ability. Cherrim needs Flower Gift to swap forms.
|
||||
#define B_SYMBIOSIS_GEMS GEN_LATEST // In Gen7+, Symbiosis passes an item after a gem-boosted attack. Previously, items are passed before the gem-boosted attack hits, making the item effect apply.
|
||||
#define B_ABSORBING_ABILITY_STRING GEN_LATEST // In Gen5+, the abilities that absorb moves of a certain type use a generic string for stat increases and decreases.
|
||||
#define B_REDIRECT_ABILITY_IMMUNITY GEN_LATEST // In Gen5+, Pokémon with Lightning Rod/Storm Drain become immune to Electric/Water-type moves and increase their Sp. Attack by 1 stage on top of the redirecting effect.
|
||||
#define B_LEAF_GUARD_PREVENTS_REST GEN_LATEST // In Gen5+, Leaf Guard prevents the use of Rest in harsh sunlight.
|
||||
#define B_SNOW_WARNING GEN_LATEST // In Gen9+, Snow Warning will summon snow instead of hail.
|
||||
#define B_TRANSISTOR_BOOST GEN_LATEST // In Gen9+, Transistor will only boost Electric-type moves by 1.3x as opposed to 1.5x.
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
#ifndef GUARD_CONSTANTS_EXPANSION_H
|
||||
#define GUARD_CONSTANTS_EXPANSION_H
|
||||
|
||||
// 1.8.4
|
||||
// 1.8.5
|
||||
#define EXPANSION_VERSION_MAJOR 1
|
||||
#define EXPANSION_VERSION_MINOR 8
|
||||
#define EXPANSION_VERSION_PATCH 4
|
||||
#define EXPANSION_VERSION_PATCH 5
|
||||
|
||||
// FALSE if this this version of Expansion is not a tagged commit, i.e.
|
||||
// it contains unreleased changes.
|
||||
|
|
|
@ -961,12 +961,21 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
|||
&& IsNonVolatileStatusMoveEffect(moveEffect))
|
||||
RETURN_SCORE_MINUS(10);
|
||||
break;
|
||||
case ABILITY_VOLT_ABSORB:
|
||||
case ABILITY_LIGHTNING_ROD:
|
||||
if (B_REDIRECT_ABILITY_IMMUNITY < GEN_5)
|
||||
break;
|
||||
// Fallthrough
|
||||
case ABILITY_MOTOR_DRIVE:
|
||||
case ABILITY_VOLT_ABSORB:
|
||||
if (moveType == TYPE_ELECTRIC)
|
||||
RETURN_SCORE_MINUS(20);
|
||||
break;
|
||||
case ABILITY_STORM_DRAIN:
|
||||
if (B_REDIRECT_ABILITY_IMMUNITY < GEN_5)
|
||||
break;
|
||||
// Fallthrough
|
||||
case ABILITY_WATER_ABSORB:
|
||||
case ABILITY_DRY_SKIN:
|
||||
if (moveType == TYPE_WATER)
|
||||
RETURN_SCORE_MINUS(20);
|
||||
break;
|
||||
|
@ -974,6 +983,10 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
|||
if (moveType == TYPE_FIRE)
|
||||
RETURN_SCORE_MINUS(20);
|
||||
break;
|
||||
case ABILITY_EARTH_EATER:
|
||||
if (moveType == TYPE_GROUND)
|
||||
RETURN_SCORE_MINUS(20);
|
||||
break;
|
||||
} // def ability checks
|
||||
|
||||
// target partner ability checks & not attacking partner
|
||||
|
@ -2860,7 +2873,8 @@ static s32 AI_DoubleBattle(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
|||
}
|
||||
break;
|
||||
case ABILITY_LIGHTNING_ROD:
|
||||
if (moveType == TYPE_ELECTRIC
|
||||
if (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5
|
||||
&& moveType == TYPE_ELECTRIC
|
||||
&& HasMoveWithCategory(battlerAtkPartner, DAMAGE_CATEGORY_SPECIAL)
|
||||
&& BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPATK))
|
||||
{
|
||||
|
@ -2876,7 +2890,8 @@ static s32 AI_DoubleBattle(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
|||
}
|
||||
break; // handled in AI_HPAware
|
||||
case ABILITY_STORM_DRAIN:
|
||||
if (moveType == TYPE_WATER
|
||||
if (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5
|
||||
&& moveType == TYPE_WATER
|
||||
&& HasMoveWithCategory(battlerAtkPartner, DAMAGE_CATEGORY_SPECIAL)
|
||||
&& BattlerStatCanRise(battlerAtkPartner, atkPartnerAbility, STAT_SPATK))
|
||||
{
|
||||
|
@ -4318,7 +4333,7 @@ static u32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, u32 move)
|
|||
case EFFECT_ION_DELUGE:
|
||||
if ((aiData->abilities[battlerAtk] == ABILITY_VOLT_ABSORB
|
||||
|| aiData->abilities[battlerAtk] == ABILITY_MOTOR_DRIVE
|
||||
|| aiData->abilities[battlerAtk] == ABILITY_LIGHTNING_ROD)
|
||||
|| (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5 && aiData->abilities[battlerAtk] == ABILITY_LIGHTNING_ROD))
|
||||
&& gMovesInfo[predictedMove].type == TYPE_NORMAL)
|
||||
ADJUST_SCORE(DECENT_EFFECT);
|
||||
break;
|
||||
|
@ -4377,7 +4392,7 @@ static u32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, u32 move)
|
|||
if (predictedMove != MOVE_NONE
|
||||
&& (aiData->abilities[battlerAtk] == ABILITY_VOLT_ABSORB
|
||||
|| aiData->abilities[battlerAtk] == ABILITY_MOTOR_DRIVE
|
||||
|| aiData->abilities[battlerAtk] == ABILITY_LIGHTNING_ROD))
|
||||
|| (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5 && aiData->abilities[battlerAtk] == ABILITY_LIGHTNING_ROD)))
|
||||
{
|
||||
ADJUST_SCORE(DECENT_EFFECT);
|
||||
}
|
||||
|
|
|
@ -335,32 +335,29 @@ static bool32 FindMonThatAbsorbsOpponentsMove(u32 battler, bool32 emitResult)
|
|||
// Create an array of possible absorb abilities so the AI considers all of them
|
||||
if (gMovesInfo[gLastLandedMoves[battler]].type == TYPE_FIRE)
|
||||
{
|
||||
absorbingTypeAbilities[0] = ABILITY_FLASH_FIRE;
|
||||
numAbsorbingAbilities = 1;
|
||||
absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_FLASH_FIRE;
|
||||
}
|
||||
else if (gMovesInfo[gLastLandedMoves[battler]].type == TYPE_WATER)
|
||||
{
|
||||
absorbingTypeAbilities[0] = ABILITY_WATER_ABSORB;
|
||||
absorbingTypeAbilities[1] = ABILITY_STORM_DRAIN;
|
||||
absorbingTypeAbilities[2] = ABILITY_DRY_SKIN;
|
||||
numAbsorbingAbilities = 3;
|
||||
absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_WATER_ABSORB;
|
||||
absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_DRY_SKIN;
|
||||
if (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5)
|
||||
absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_STORM_DRAIN;
|
||||
}
|
||||
else if (gMovesInfo[gLastLandedMoves[battler]].type == TYPE_ELECTRIC)
|
||||
{
|
||||
absorbingTypeAbilities[0] = ABILITY_VOLT_ABSORB;
|
||||
absorbingTypeAbilities[1] = ABILITY_MOTOR_DRIVE;
|
||||
absorbingTypeAbilities[2] = ABILITY_LIGHTNING_ROD;
|
||||
numAbsorbingAbilities = 3;
|
||||
absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_VOLT_ABSORB;
|
||||
absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_MOTOR_DRIVE;
|
||||
if (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5)
|
||||
absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_LIGHTNING_ROD;
|
||||
}
|
||||
else if (gMovesInfo[gLastLandedMoves[battler]].type == TYPE_GRASS)
|
||||
{
|
||||
absorbingTypeAbilities[0] = ABILITY_SAP_SIPPER;
|
||||
numAbsorbingAbilities = 1;
|
||||
absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_SAP_SIPPER;
|
||||
}
|
||||
else if (gMovesInfo[gLastLandedMoves[battler]].type == TYPE_GROUND)
|
||||
{
|
||||
absorbingTypeAbilities[0] = ABILITY_EARTH_EATER;
|
||||
numAbsorbingAbilities = 1;
|
||||
absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_EARTH_EATER;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -418,15 +418,21 @@ bool32 IsDamageMoveUnusable(u32 move, u32 battlerAtk, u32 battlerDef)
|
|||
|
||||
switch (battlerDefAbility)
|
||||
{
|
||||
case ABILITY_LIGHTNING_ROD:
|
||||
if (B_REDIRECT_ABILITY_IMMUNITY < GEN_5)
|
||||
break;
|
||||
// Fallthrough
|
||||
case ABILITY_VOLT_ABSORB:
|
||||
case ABILITY_MOTOR_DRIVE:
|
||||
case ABILITY_LIGHTNING_ROD:
|
||||
if (moveType == TYPE_ELECTRIC)
|
||||
return TRUE;
|
||||
break;
|
||||
case ABILITY_STORM_DRAIN:
|
||||
if (B_REDIRECT_ABILITY_IMMUNITY < GEN_5)
|
||||
break;
|
||||
// Fallthrough
|
||||
case ABILITY_WATER_ABSORB:
|
||||
case ABILITY_DRY_SKIN:
|
||||
case ABILITY_STORM_DRAIN:
|
||||
if (moveType == TYPE_WATER)
|
||||
return TRUE;
|
||||
break;
|
||||
|
|
|
@ -326,7 +326,7 @@ static void DrawLevelUpBannerText(void);
|
|||
static void SpriteCB_MonIconOnLvlUpBanner(struct Sprite *sprite);
|
||||
static bool32 CriticalCapture(u32 odds);
|
||||
static void BestowItem(u32 battlerAtk, u32 battlerDef);
|
||||
static bool8 IsFinalStrikeEffect(u16 move);
|
||||
static bool8 IsFinalStrikeEffect(u32 moveEffect);
|
||||
static void TryUpdateRoundTurnOrder(void);
|
||||
static bool32 ChangeOrderTargetAfterAttacker(void);
|
||||
void ApplyExperienceMultipliers(s32 *expAmount, u8 expGetterMonId, u8 faintedBattler);
|
||||
|
@ -8723,7 +8723,7 @@ static bool32 IsRototillerAffected(u32 battler)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static bool32 IsElectricAbilityAffected(u32 ability)
|
||||
static bool32 IsElectricAbilityAffected(u32 battler, u32 ability)
|
||||
{
|
||||
u32 moveType;
|
||||
|
||||
|
@ -8734,7 +8734,9 @@ static bool32 IsElectricAbilityAffected(u32 ability)
|
|||
else
|
||||
moveType = gMovesInfo[gCurrentMove].type;
|
||||
|
||||
if (moveType == TYPE_ELECTRIC && GetBattlerAbility(gBattlerTarget) == ability)
|
||||
if (moveType == TYPE_ELECTRIC
|
||||
&& (ability != ABILITY_LIGHTNING_ROD || B_REDIRECT_ABILITY_IMMUNITY >= GEN_5)
|
||||
&& GetBattlerAbility(battler) == ability)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
|
@ -12645,9 +12647,14 @@ static void Cmd_setsubstitute(void)
|
|||
CMD_ARGS();
|
||||
|
||||
u32 factor = gMovesInfo[gCurrentMove].effect == EFFECT_SHED_TAIL ? 2 : 4;
|
||||
u32 hp = GetNonDynamaxMaxHP(gBattlerAttacker) / factor;
|
||||
u32 hp;
|
||||
|
||||
if (GetNonDynamaxMaxHP(gBattlerAttacker) / factor == 0)
|
||||
if (factor == 2)
|
||||
hp = (GetNonDynamaxMaxHP(gBattlerAttacker)+1) / factor; // shed tail rounds up
|
||||
else
|
||||
hp = GetNonDynamaxMaxHP(gBattlerAttacker) / factor; // one bit value will only work for Pokémon which max hp can go to 1020(which is more than possible in games)
|
||||
|
||||
if (hp == 0)
|
||||
hp = 1;
|
||||
|
||||
if (gBattleMons[gBattlerAttacker].hp <= hp)
|
||||
|
@ -12657,7 +12664,7 @@ static void Cmd_setsubstitute(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / factor; // one bit value will only work for Pokémon which max hp can go to 1020(which is more than possible in games)
|
||||
gBattleMoveDamage = hp;
|
||||
if (gBattleMoveDamage == 0)
|
||||
gBattleMoveDamage = 1;
|
||||
|
||||
|
@ -15978,10 +15985,9 @@ bool32 IsMoveAffectedByParentalBond(u32 move, u32 battler)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
static bool8 IsFinalStrikeEffect(u16 move)
|
||||
static bool8 IsFinalStrikeEffect(u32 moveEffect)
|
||||
{
|
||||
u32 i;
|
||||
u16 moveEffect = gMovesInfo[move].effect;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(sFinalStrikeOnlyEffects); i++)
|
||||
{
|
||||
|
@ -16432,28 +16438,12 @@ void BS_JumpIfEmergencyExited(void)
|
|||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
}
|
||||
|
||||
void BS_JumpIfRod(void)
|
||||
void BS_JumpIfElectricAbilityAffected(void)
|
||||
{
|
||||
NATIVE_ARGS(const u8 *jumpInstr);
|
||||
if (IsElectricAbilityAffected(ABILITY_LIGHTNING_ROD))
|
||||
gBattlescriptCurrInstr = cmd->jumpInstr;
|
||||
else
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
}
|
||||
NATIVE_ARGS(u8 battler, u16 ability, const u8 *jumpInstr);
|
||||
u32 battler = GetBattlerForBattleScript(cmd->battler);
|
||||
|
||||
void BS_JumpIfAbsorb(void)
|
||||
{
|
||||
NATIVE_ARGS(const u8 *jumpInstr);
|
||||
if (IsElectricAbilityAffected(ABILITY_VOLT_ABSORB))
|
||||
gBattlescriptCurrInstr = cmd->jumpInstr;
|
||||
else
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
}
|
||||
|
||||
void BS_JumpIfMotor(void)
|
||||
{
|
||||
NATIVE_ARGS(const u8 *jumpInstr);
|
||||
if (IsElectricAbilityAffected(ABILITY_MOTOR_DRIVE))
|
||||
if (IsElectricAbilityAffected(battler, cmd->ability))
|
||||
gBattlescriptCurrInstr = cmd->jumpInstr;
|
||||
else
|
||||
gBattlescriptCurrInstr = cmd->nextInstr;
|
||||
|
|
|
@ -3037,9 +3037,7 @@ static void FillPartnerParty(u16 trainerId)
|
|||
personality = (personality & 0xFFFFFF00) | GeneratePersonalityForGender(MON_MALE, partyData[i].species);
|
||||
else if (partyData[i].gender == TRAINER_MON_FEMALE)
|
||||
personality = (personality & 0xFFFFFF00) | GeneratePersonalityForGender(MON_FEMALE, partyData[i].species);
|
||||
if (partyData[i].nature != 0)
|
||||
ModifyPersonalityForNature(&personality, partyData[i].nature - 1);
|
||||
|
||||
ModifyPersonalityForNature(&personality, partyData[i].nature);
|
||||
CreateMon(&gPlayerParty[i + 3], partyData[i].species, partyData[i].lvl, 0, TRUE, personality, OT_ID_PRESET, otID);
|
||||
j = partyData[i].isShiny;
|
||||
SetMonData(&gPlayerParty[i + 3], MON_DATA_IS_SHINY, &j);
|
||||
|
|
|
@ -5121,11 +5121,11 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32
|
|||
effect = 2, statId = STAT_SPEED;
|
||||
break;
|
||||
case ABILITY_LIGHTNING_ROD:
|
||||
if (moveType == TYPE_ELECTRIC && gMovesInfo[move].target != MOVE_TARGET_ALL_BATTLERS)
|
||||
if (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5 && moveType == TYPE_ELECTRIC && gMovesInfo[move].target != MOVE_TARGET_ALL_BATTLERS)
|
||||
effect = 2, statId = STAT_SPATK;
|
||||
break;
|
||||
case ABILITY_STORM_DRAIN:
|
||||
if (moveType == TYPE_WATER)
|
||||
if (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5 && moveType == TYPE_WATER)
|
||||
effect = 2, statId = STAT_SPATK;
|
||||
break;
|
||||
case ABILITY_SAP_SIPPER:
|
||||
|
|
|
@ -916,14 +916,14 @@ static const u8 sBlackPokeblockFlavorFlags[] = {
|
|||
(1 << FLAVOR_SOUR) | (1 << FLAVOR_SWEET) | (1 << FLAVOR_SPICY),
|
||||
};
|
||||
|
||||
static const u8 sUnused[] =
|
||||
{
|
||||
0xfe, 0x02, 0x02, 0xce, 0xd0, 0x37, 0x44, 0x07, 0x1f, 0x0c, 0x10,
|
||||
0x00, 0xff, 0xfe, 0x91, 0x72, 0xce, 0xd0, 0x37, 0x44, 0x07, 0x1f,
|
||||
0x0c, 0x10, 0x00, 0xff, 0x06, 0x27, 0x02, 0xff, 0x00, 0x0c, 0x48,
|
||||
0x02, 0xff, 0x00, 0x01, 0x1f, 0x02, 0xff, 0x00, 0x16, 0x37, 0x02,
|
||||
0xff, 0x00, 0x0d, 0x50, 0x4b, 0x02, 0xff, 0x06, 0x06, 0x06, 0x06,
|
||||
0x05, 0x03, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x02
|
||||
static const u8 sJPText_GoodTvReady[] = _("\nいいTVができました "); // Unused
|
||||
static const u8 sJPText_BadTvReady[] = _("\nダメTVができました "); // Unused
|
||||
static const u8 sJPText_Flavors[][5] = {_("からい"), _("しぶい"), _("あまい"), _("にがい"), _("すっぱい")}; // Unused
|
||||
|
||||
static const u8 sUnused[] = {
|
||||
6, 6, 6, 6, 5,
|
||||
3, 3, 3, 2, 2,
|
||||
3, 3, 3, 3, 2
|
||||
};
|
||||
|
||||
static const struct WindowTemplate sBlenderRecordWindowTemplate =
|
||||
|
@ -1908,7 +1908,7 @@ static void Task_HandleOpponent1(u8 taskId)
|
|||
static void Task_HandleOpponent2(u8 taskId)
|
||||
{
|
||||
u32 var1 = (sBerryBlender->arrowPos + 0x1800) & 0xFFFF;
|
||||
u32 arrowId = sBerryBlender->playerIdToArrowId[2] & 0xFF;
|
||||
u8 arrowId = sBerryBlender->playerIdToArrowId[2];
|
||||
if ((var1 >> 8) > sArrowHitRangeStart[arrowId] + 20 && (var1 >> 8) < sArrowHitRangeStart[arrowId] + 40)
|
||||
{
|
||||
if (!gTasks[taskId].tDidInput)
|
||||
|
@ -1925,11 +1925,9 @@ static void Task_HandleOpponent2(u8 taskId)
|
|||
}
|
||||
else
|
||||
{
|
||||
u8 value;
|
||||
if (rand > 65)
|
||||
gRecvCmds[2][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_BEST;
|
||||
value = rand - 41;
|
||||
if (value < 25)
|
||||
if (rand > 40 && rand <= 65)
|
||||
gRecvCmds[2][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_GOOD;
|
||||
if (rand < 10)
|
||||
CreateOpponentMissTask(2, 5);
|
||||
|
@ -1953,7 +1951,7 @@ static void Task_HandleOpponent2(u8 taskId)
|
|||
static void Task_HandleOpponent3(u8 taskId)
|
||||
{
|
||||
u32 var1 = (sBerryBlender->arrowPos + 0x1800) & 0xFFFF;
|
||||
u32 arrowId = sBerryBlender->playerIdToArrowId[3] & 0xFF;
|
||||
u8 arrowId = sBerryBlender->playerIdToArrowId[3];
|
||||
if ((var1 >> 8) > sArrowHitRangeStart[arrowId] + 20 && (var1 >> 8) < sArrowHitRangeStart[arrowId] + 40)
|
||||
{
|
||||
if (gTasks[taskId].data[0] == 0)
|
||||
|
@ -1971,16 +1969,9 @@ static void Task_HandleOpponent3(u8 taskId)
|
|||
else
|
||||
{
|
||||
if (rand > 60)
|
||||
{
|
||||
gRecvCmds[3][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_BEST;
|
||||
}
|
||||
else
|
||||
{
|
||||
s8 value = rand - 56; // makes me wonder what the original code was
|
||||
u8 value2 = value;
|
||||
if (value2 < 5)
|
||||
gRecvCmds[3][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_GOOD;
|
||||
}
|
||||
else if (rand > 55 && rand <= 60)
|
||||
gRecvCmds[3][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_GOOD;
|
||||
if (rand < 5)
|
||||
CreateOpponentMissTask(3, 5);
|
||||
}
|
||||
|
|
|
@ -19002,7 +19002,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] =
|
|||
.name = HANDLE_EXPANDED_MOVE_NAME("BitterMalice", "Bitter Malice"),
|
||||
.description = COMPOUND_STRING(
|
||||
"A spine-chilling resentment.\n"
|
||||
"May lower the foe's Attack."),
|
||||
"Lowers the foe's Attack."),
|
||||
.effect = EFFECT_HIT,
|
||||
.power = B_UPDATED_MOVE_DATA >= GEN_9 ? 75 : 60,
|
||||
.type = TYPE_GHOST,
|
||||
|
|
|
@ -1534,7 +1534,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS },
|
||||
#else
|
||||
.abilities = { ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_BIG_PECKS },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Pidgey"),
|
||||
.cryId = CRY_PIDGEY,
|
||||
|
@ -1596,7 +1600,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS },
|
||||
#else
|
||||
.abilities = { ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_BIG_PECKS },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Pidgeotto"),
|
||||
.cryId = CRY_PIDGEOTTO,
|
||||
|
@ -1668,7 +1676,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_KEEN_EYE, ABILITY_TANGLED_FEET, ABILITY_BIG_PECKS },
|
||||
#else
|
||||
.abilities = { ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_BIG_PECKS },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Pidgeot"),
|
||||
.cryId = CRY_PIDGEOT,
|
||||
|
@ -3822,7 +3834,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE },
|
||||
#else
|
||||
.abilities = { ABILITY_POISON_POINT, ABILITY_NONE, ABILITY_HUSTLE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.speciesName = _("Nidoran♀"),
|
||||
.cryId = CRY_NIDORAN_F,
|
||||
|
@ -3885,7 +3901,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE },
|
||||
#else
|
||||
.abilities = { ABILITY_POISON_POINT, ABILITY_NONE, ABILITY_HUSTLE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.speciesName = _("Nidorina"),
|
||||
.cryId = CRY_NIDORINA,
|
||||
|
@ -3954,7 +3974,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_SHEER_FORCE },
|
||||
#else
|
||||
.abilities = { ABILITY_POISON_POINT, ABILITY_NONE, ABILITY_SHEER_FORCE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.speciesName = _("Nidoqueen"),
|
||||
.cryId = CRY_NIDOQUEEN,
|
||||
|
@ -4014,7 +4038,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE },
|
||||
#else
|
||||
.abilities = { ABILITY_POISON_POINT, ABILITY_NONE, ABILITY_HUSTLE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.speciesName = _("Nidoran♂"),
|
||||
.cryId = CRY_NIDORAN_M,
|
||||
|
@ -4076,7 +4104,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_HUSTLE },
|
||||
#else
|
||||
.abilities = { ABILITY_POISON_POINT, ABILITY_NONE, ABILITY_HUSTLE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.speciesName = _("Nidorino"),
|
||||
.cryId = CRY_NIDORINO,
|
||||
|
@ -4145,7 +4177,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_POISON_POINT, ABILITY_RIVALRY, ABILITY_SHEER_FORCE },
|
||||
#else
|
||||
.abilities = { ABILITY_POISON_POINT, ABILITY_NONE, ABILITY_SHEER_FORCE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.speciesName = _("Nidoking"),
|
||||
.cryId = CRY_NIDOKING,
|
||||
|
@ -4216,7 +4252,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = 140,
|
||||
.growthRate = GROWTH_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_CUTE_CHARM, ABILITY_MAGIC_GUARD, ABILITY_FRIEND_GUARD },
|
||||
#else
|
||||
.abilities = { ABILITY_CUTE_CHARM, ABILITY_NONE, ABILITY_FRIEND_GUARD },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PINK,
|
||||
.noFlip = TRUE,
|
||||
.speciesName = _("Cleffa"),
|
||||
|
@ -4281,7 +4321,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = 140,
|
||||
.growthRate = GROWTH_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_CUTE_CHARM, ABILITY_MAGIC_GUARD, ABILITY_FRIEND_GUARD },
|
||||
#else
|
||||
.abilities = { ABILITY_CUTE_CHARM, ABILITY_NONE, ABILITY_FRIEND_GUARD },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PINK,
|
||||
.noFlip = TRUE,
|
||||
.speciesName = _("Clefairy"),
|
||||
|
@ -4352,7 +4396,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = 140,
|
||||
.growthRate = GROWTH_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_CUTE_CHARM, ABILITY_MAGIC_GUARD, ABILITY_UNAWARE },
|
||||
#else
|
||||
.abilities = { ABILITY_CUTE_CHARM, ABILITY_NONE, ABILITY_UNAWARE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PINK,
|
||||
.noFlip = TRUE,
|
||||
.speciesName = _("Clefable"),
|
||||
|
@ -4682,7 +4730,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
|
||||
#if P_UPDATED_ABILITIES >= GEN_6
|
||||
.abilities = { ABILITY_CUTE_CHARM, ABILITY_COMPETITIVE, ABILITY_FRIEND_GUARD },
|
||||
#else
|
||||
.abilities = { ABILITY_CUTE_CHARM, ABILITY_NONE, ABILITY_FRIEND_GUARD },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PINK,
|
||||
.noFlip = TRUE,
|
||||
.speciesName = _("Igglybuff"),
|
||||
|
@ -4747,7 +4799,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY),
|
||||
#if P_UPDATED_ABILITIES >= GEN_6
|
||||
.abilities = { ABILITY_CUTE_CHARM, ABILITY_COMPETITIVE, ABILITY_FRIEND_GUARD },
|
||||
#else
|
||||
.abilities = { ABILITY_CUTE_CHARM, ABILITY_NONE, ABILITY_FRIEND_GUARD },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PINK,
|
||||
.noFlip = TRUE,
|
||||
.speciesName = _("Jigglypuff"),
|
||||
|
@ -4818,7 +4874,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY),
|
||||
#if P_UPDATED_ABILITIES >= GEN_6
|
||||
.abilities = { ABILITY_CUTE_CHARM, ABILITY_COMPETITIVE, ABILITY_FRISK },
|
||||
#else
|
||||
.abilities = { ABILITY_CUTE_CHARM, ABILITY_NONE, ABILITY_FRISK },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PINK,
|
||||
.noFlip = TRUE,
|
||||
.speciesName = _("Wigglytuff"),
|
||||
|
@ -5363,7 +5423,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_GRASS),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_EFFECT_SPORE, ABILITY_DRY_SKIN, ABILITY_DAMP },
|
||||
#else
|
||||
.abilities = { ABILITY_EFFECT_SPORE, ABILITY_NONE, ABILITY_DAMP },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_RED,
|
||||
.speciesName = _("Paras"),
|
||||
.cryId = CRY_PARAS,
|
||||
|
@ -5429,7 +5493,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_GRASS),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_EFFECT_SPORE, ABILITY_DRY_SKIN, ABILITY_DAMP },
|
||||
#else
|
||||
.abilities = { ABILITY_EFFECT_SPORE, ABILITY_NONE, ABILITY_DAMP },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_RED,
|
||||
.speciesName = _("Parasect"),
|
||||
.cryId = CRY_PARASECT,
|
||||
|
@ -5492,7 +5560,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_COMPOUND_EYES, ABILITY_TINTED_LENS, ABILITY_RUN_AWAY },
|
||||
#else
|
||||
.abilities = { ABILITY_COMPOUND_EYES, ABILITY_NONE, ABILITY_RUN_AWAY },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.speciesName = _("Venonat"),
|
||||
.cryId = CRY_VENONAT,
|
||||
|
@ -5557,7 +5629,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_SHIELD_DUST, ABILITY_TINTED_LENS, ABILITY_WONDER_SKIN },
|
||||
#else
|
||||
.abilities = { ABILITY_SHIELD_DUST, ABILITY_NONE, ABILITY_WONDER_SKIN },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.speciesName = _("Venomoth"),
|
||||
.cryId = CRY_VENOMOTH,
|
||||
|
@ -5893,7 +5969,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_PICKUP, ABILITY_TECHNICIAN, ABILITY_UNNERVE },
|
||||
#else
|
||||
.abilities = { ABILITY_PICKUP, ABILITY_NONE, ABILITY_UNNERVE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_YELLOW,
|
||||
.speciesName = _("Meowth"),
|
||||
.cryId = CRY_MEOWTH,
|
||||
|
@ -5959,7 +6039,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_LIMBER, ABILITY_TECHNICIAN, ABILITY_UNNERVE },
|
||||
#else
|
||||
.abilities = { ABILITY_LIMBER, ABILITY_NONE, ABILITY_UNNERVE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_YELLOW,
|
||||
.speciesName = _("Persian"),
|
||||
.cryId = CRY_PERSIAN,
|
||||
|
@ -6461,7 +6545,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_VITAL_SPIRIT, ABILITY_ANGER_POINT, ABILITY_DEFIANT },
|
||||
#else
|
||||
.abilities = { ABILITY_VITAL_SPIRIT, ABILITY_NONE, ABILITY_DEFIANT },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Mankey"),
|
||||
.cryId = CRY_MANKEY,
|
||||
|
@ -6524,7 +6612,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_VITAL_SPIRIT, ABILITY_ANGER_POINT, ABILITY_DEFIANT },
|
||||
#else
|
||||
.abilities = { ABILITY_VITAL_SPIRIT, ABILITY_NONE, ABILITY_DEFIANT },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Primeape"),
|
||||
.cryId = CRY_PRIMEAPE,
|
||||
|
@ -7453,7 +7545,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST },
|
||||
#else
|
||||
.abilities = { ABILITY_GUTS, ABILITY_NONE, ABILITY_STEADFAST },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_GRAY,
|
||||
.speciesName = _("Machop"),
|
||||
.cryId = CRY_MACHOP,
|
||||
|
@ -7516,7 +7612,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST },
|
||||
#else
|
||||
.abilities = { ABILITY_GUTS, ABILITY_NONE, ABILITY_STEADFAST },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_GRAY,
|
||||
.noFlip = TRUE,
|
||||
.speciesName = _("Machoke"),
|
||||
|
@ -7588,7 +7688,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST },
|
||||
#else
|
||||
.abilities = { ABILITY_GUTS, ABILITY_NONE, ABILITY_STEADFAST },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_GRAY,
|
||||
.speciesName = _("Machamp"),
|
||||
.cryId = CRY_MACHAMP,
|
||||
|
@ -7652,7 +7756,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_GUTS, ABILITY_NO_GUARD, ABILITY_STEADFAST },
|
||||
#else
|
||||
.abilities = { ABILITY_GUTS, ABILITY_NONE, ABILITY_STEADFAST },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_GRAY,
|
||||
.speciesName = _("Machamp"),
|
||||
.cryId = CRY_MACHAMP,
|
||||
|
@ -9684,7 +9792,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_THICK_FAT, ABILITY_HYDRATION, ABILITY_ICE_BODY },
|
||||
#else
|
||||
.abilities = { ABILITY_THICK_FAT, ABILITY_NONE, ABILITY_ICE_BODY },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_WHITE,
|
||||
.speciesName = _("Seel"),
|
||||
.cryId = CRY_SEEL,
|
||||
|
@ -9746,7 +9858,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_THICK_FAT, ABILITY_HYDRATION, ABILITY_ICE_BODY },
|
||||
#else
|
||||
.abilities = { ABILITY_THICK_FAT, ABILITY_NONE, ABILITY_ICE_BODY },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_WHITE,
|
||||
.speciesName = _("Dewgong"),
|
||||
.cryId = CRY_DEWGONG,
|
||||
|
@ -10072,7 +10188,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_SHELL_ARMOR, ABILITY_SKILL_LINK, ABILITY_OVERCOAT },
|
||||
#else
|
||||
.abilities = { ABILITY_SHELL_ARMOR, ABILITY_NONE, ABILITY_OVERCOAT },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.speciesName = _("Shellder"),
|
||||
.cryId = CRY_SHELLDER,
|
||||
|
@ -10137,7 +10257,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_3),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_SHELL_ARMOR, ABILITY_SKILL_LINK, ABILITY_OVERCOAT },
|
||||
#else
|
||||
.abilities = { ABILITY_SHELL_ARMOR, ABILITY_NONE, ABILITY_OVERCOAT },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.speciesName = _("Cloyster"),
|
||||
.cryId = CRY_CLOYSTER,
|
||||
|
@ -10709,7 +10833,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_INSOMNIA, ABILITY_FOREWARN, ABILITY_INNER_FOCUS },
|
||||
#else
|
||||
.abilities = { ABILITY_INSOMNIA, ABILITY_NONE, ABILITY_INNER_FOCUS },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_YELLOW,
|
||||
.speciesName = _("Drowzee"),
|
||||
.cryId = CRY_DROWZEE,
|
||||
|
@ -10772,7 +10900,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_INSOMNIA, ABILITY_FOREWARN, ABILITY_INNER_FOCUS },
|
||||
#else
|
||||
.abilities = { ABILITY_INSOMNIA, ABILITY_NONE, ABILITY_INNER_FOCUS },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_YELLOW,
|
||||
.speciesName = _("Hypno"),
|
||||
.cryId = CRY_HYPNO,
|
||||
|
@ -11730,7 +11862,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_GUTS, ABILITY_STEADFAST, ABILITY_VITAL_SPIRIT },
|
||||
#else
|
||||
.abilities = { ABILITY_GUTS, ABILITY_NONE, ABILITY_VITAL_SPIRIT },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.speciesName = _("Tyrogue"),
|
||||
.cryId = CRY_TYROGUE,
|
||||
|
@ -11795,7 +11931,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_LIMBER, ABILITY_RECKLESS, ABILITY_UNBURDEN },
|
||||
#else
|
||||
.abilities = { ABILITY_LIMBER, ABILITY_NONE, ABILITY_UNBURDEN },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Hitmonlee"),
|
||||
.cryId = CRY_HITMONLEE,
|
||||
|
@ -11855,7 +11995,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_KEEN_EYE, ABILITY_IRON_FIST, ABILITY_INNER_FOCUS },
|
||||
#else
|
||||
.abilities = { ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_INNER_FOCUS },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Hitmonchan"),
|
||||
.cryId = CRY_HITMONCHAN,
|
||||
|
@ -11916,7 +12060,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_INTIMIDATE, ABILITY_TECHNICIAN, ABILITY_STEADFAST },
|
||||
#else
|
||||
.abilities = { ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_STEADFAST },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Hitmontop"),
|
||||
.cryId = CRY_HITMONTOP,
|
||||
|
@ -12713,7 +12861,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_REGENERATOR },
|
||||
#else
|
||||
.abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_REGENERATOR },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.speciesName = _("Tangela"),
|
||||
.cryId = CRY_TANGELA,
|
||||
|
@ -12965,7 +13117,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_SWIFT_SWIM, ABILITY_SNIPER, ABILITY_DAMP },
|
||||
#else
|
||||
.abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_DAMP },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.speciesName = _("Horsea"),
|
||||
.cryId = CRY_HORSEA,
|
||||
|
@ -13029,7 +13185,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_POISON_POINT, ABILITY_SNIPER, ABILITY_DAMP },
|
||||
#else
|
||||
.abilities = { ABILITY_POISON_POINT, ABILITY_NONE, ABILITY_DAMP },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.speciesName = _("Seadra"),
|
||||
.cryId = CRY_SEADRA,
|
||||
|
@ -13101,7 +13261,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_SWIFT_SWIM, ABILITY_SNIPER, ABILITY_DAMP },
|
||||
#else
|
||||
.abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_DAMP },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.speciesName = _("Kingdra"),
|
||||
.cryId = CRY_KINGDRA,
|
||||
|
@ -13431,7 +13595,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_SOUNDPROOF, ABILITY_FILTER, ABILITY_TECHNICIAN },
|
||||
#else
|
||||
.abilities = { ABILITY_SOUNDPROOF, ABILITY_NONE, ABILITY_TECHNICIAN },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PINK,
|
||||
.speciesName = _("Mime Jr."),
|
||||
.cryId = CRY_MIME_JR,
|
||||
|
@ -13688,7 +13856,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_SWARM, ABILITY_TECHNICIAN, ABILITY_STEADFAST },
|
||||
#else
|
||||
.abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_STEADFAST },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_GREEN,
|
||||
.speciesName = _("Scyther"),
|
||||
.cryId = CRY_SCYTHER,
|
||||
|
@ -13756,7 +13928,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_SWARM, ABILITY_TECHNICIAN, ABILITY_LIGHT_METAL },
|
||||
#else
|
||||
.abilities = { ABILITY_SWARM, ABILITY_NONE, ABILITY_LIGHT_METAL },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_RED,
|
||||
.speciesName = _("Scizor"),
|
||||
.cryId = CRY_SCIZOR,
|
||||
|
@ -13944,7 +14120,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_OBLIVIOUS, ABILITY_FOREWARN, ABILITY_HYDRATION },
|
||||
#else
|
||||
.abilities = { ABILITY_OBLIVIOUS, ABILITY_NONE, ABILITY_HYDRATION },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PINK,
|
||||
.speciesName = _("Smoochum"),
|
||||
.cryId = CRY_SMOOCHUM,
|
||||
|
@ -14008,7 +14188,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_OBLIVIOUS, ABILITY_FOREWARN, ABILITY_DRY_SKIN },
|
||||
#else
|
||||
.abilities = { ABILITY_OBLIVIOUS, ABILITY_NONE, ABILITY_DRY_SKIN },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_RED,
|
||||
.speciesName = _("Jynx"),
|
||||
.cryId = CRY_JYNX,
|
||||
|
@ -14472,7 +14656,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_HYPER_CUTTER, ABILITY_MOLD_BREAKER, ABILITY_MOXIE },
|
||||
#else
|
||||
.abilities = { ABILITY_HYPER_CUTTER, ABILITY_NONE, ABILITY_MOXIE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Pinsir"),
|
||||
.cryId = CRY_PINSIR,
|
||||
|
@ -14597,7 +14785,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_INTIMIDATE, ABILITY_ANGER_POINT, ABILITY_SHEER_FORCE },
|
||||
#else
|
||||
.abilities = { ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_SHEER_FORCE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Tauros"),
|
||||
.cryId = CRY_TAUROS,
|
||||
|
@ -15212,7 +15404,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_RUN_AWAY, ABILITY_ADAPTABILITY, ABILITY_ANTICIPATION },
|
||||
#else
|
||||
.abilities = { ABILITY_RUN_AWAY, ABILITY_NONE, ABILITY_ANTICIPATION },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Eevee"),
|
||||
.cryId = CRY_EEVEE,
|
||||
|
@ -15892,7 +16088,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_TRACE, ABILITY_DOWNLOAD, ABILITY_ANALYTIC },
|
||||
#else
|
||||
.abilities = { ABILITY_TRACE, ABILITY_NONE, ABILITY_ANALYTIC },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PINK,
|
||||
.speciesName = _("Porygon"),
|
||||
.cryId = CRY_PORYGON,
|
||||
|
@ -15955,7 +16155,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_TRACE, ABILITY_DOWNLOAD, ABILITY_ANALYTIC },
|
||||
#else
|
||||
.abilities = { ABILITY_TRACE, ABILITY_NONE, ABILITY_ANALYTIC },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_RED,
|
||||
.speciesName = _("Porygon2"),
|
||||
.cryId = CRY_PORYGON2,
|
||||
|
|
|
@ -2238,7 +2238,11 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_INFILTRATOR },
|
||||
#else
|
||||
.abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_INFILTRATOR },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PINK,
|
||||
.speciesName = _("Hoppip"),
|
||||
.cryId = CRY_HOPPIP,
|
||||
|
@ -2301,7 +2305,11 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_INFILTRATOR },
|
||||
#else
|
||||
.abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_INFILTRATOR },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_GREEN,
|
||||
.speciesName = _("Skiploom"),
|
||||
.cryId = CRY_SKIPLOOM,
|
||||
|
@ -2371,7 +2379,11 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_CHLOROPHYLL, ABILITY_LEAF_GUARD, ABILITY_INFILTRATOR },
|
||||
#else
|
||||
.abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_INFILTRATOR },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.speciesName = _("Jumpluff"),
|
||||
.cryId = CRY_JUMPLUFF,
|
||||
|
@ -2568,7 +2580,11 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_EARLY_BIRD },
|
||||
#else
|
||||
.abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_EARLY_BIRD },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_YELLOW,
|
||||
.speciesName = _("Sunkern"),
|
||||
.cryId = CRY_SUNKERN,
|
||||
|
@ -2630,7 +2646,11 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_EARLY_BIRD },
|
||||
#else
|
||||
.abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_EARLY_BIRD },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_YELLOW,
|
||||
.speciesName = _("Sunflora"),
|
||||
.cryId = CRY_SUNFLORA,
|
||||
|
@ -3065,7 +3085,11 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
|
|||
.friendship = 35,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_INSOMNIA, ABILITY_SUPER_LUCK, ABILITY_PRANKSTER },
|
||||
#else
|
||||
.abilities = { ABILITY_INSOMNIA, ABILITY_NONE, ABILITY_PRANKSTER },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.speciesName = _("Murkrow"),
|
||||
.cryId = CRY_MURKROW,
|
||||
|
@ -4183,7 +4207,11 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_INTIMIDATE, ABILITY_QUICK_FEET, ABILITY_RATTLED },
|
||||
#else
|
||||
.abilities = { ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_RATTLED },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.speciesName = _("Granbull"),
|
||||
.cryId = CRY_GRANBULL,
|
||||
|
@ -4450,7 +4478,11 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_STURDY, ABILITY_GLUTTONY, ABILITY_CONTRARY },
|
||||
#else
|
||||
.abilities = { ABILITY_STURDY, ABILITY_NONE, ABILITY_CONTRARY },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_YELLOW,
|
||||
.speciesName = _("Shuckle"),
|
||||
.cryId = CRY_SHUCKLE,
|
||||
|
@ -4913,7 +4945,11 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_PICKUP, ABILITY_QUICK_FEET, ABILITY_HONEY_GATHER },
|
||||
#else
|
||||
.abilities = { ABILITY_PICKUP, ABILITY_NONE, ABILITY_HONEY_GATHER },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.noFlip = TRUE,
|
||||
.speciesName = _("Teddiursa"),
|
||||
|
@ -4976,7 +5012,11 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_GUTS, ABILITY_QUICK_FEET, ABILITY_UNNERVE },
|
||||
#else
|
||||
.abilities = { ABILITY_GUTS, ABILITY_NONE, ABILITY_UNNERVE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Ursaring"),
|
||||
.cryId = CRY_URSARING,
|
||||
|
@ -5290,7 +5330,11 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_OBLIVIOUS, ABILITY_SNOW_CLOAK, ABILITY_THICK_FAT },
|
||||
#else
|
||||
.abilities = { ABILITY_OBLIVIOUS, ABILITY_NONE, ABILITY_THICK_FAT },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Swinub"),
|
||||
.cryId = CRY_SWINUB,
|
||||
|
@ -5353,7 +5397,11 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_OBLIVIOUS, ABILITY_SNOW_CLOAK, ABILITY_THICK_FAT },
|
||||
#else
|
||||
.abilities = { ABILITY_OBLIVIOUS, ABILITY_NONE, ABILITY_THICK_FAT },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Piloswine"),
|
||||
.cryId = CRY_PILOSWINE,
|
||||
|
@ -5692,7 +5740,11 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_2),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_HUSTLE, ABILITY_SNIPER, ABILITY_MOODY },
|
||||
#else
|
||||
.abilities = { ABILITY_HUSTLE, ABILITY_NONE, ABILITY_MOODY },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_GRAY,
|
||||
.speciesName = _("Remoraid"),
|
||||
.cryId = CRY_REMORAID,
|
||||
|
@ -5755,7 +5807,11 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_WATER_2),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_SUCTION_CUPS, ABILITY_SNIPER, ABILITY_MOODY },
|
||||
#else
|
||||
.abilities = { ABILITY_SUCTION_CUPS, ABILITY_NONE, ABILITY_MOODY },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_RED,
|
||||
.speciesName = _("Octillery"),
|
||||
.cryId = CRY_OCTILLERY,
|
||||
|
@ -6398,7 +6454,11 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_INTIMIDATE, ABILITY_FRISK, ABILITY_SAP_SIPPER },
|
||||
#else
|
||||
.abilities = { ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_SAP_SIPPER },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Stantler"),
|
||||
.cryId = CRY_STANTLER,
|
||||
|
@ -6525,7 +6585,11 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_OWN_TEMPO, ABILITY_TECHNICIAN, ABILITY_MOODY },
|
||||
#else
|
||||
.abilities = { ABILITY_OWN_TEMPO, ABILITY_NONE, ABILITY_MOODY },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_WHITE,
|
||||
.speciesName = _("Smeargle"),
|
||||
.cryId = CRY_SMEARGLE,
|
||||
|
@ -6590,7 +6654,11 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_THICK_FAT, ABILITY_SCRAPPY, ABILITY_SAP_SIPPER },
|
||||
#else
|
||||
.abilities = { ABILITY_THICK_FAT, ABILITY_NONE, ABILITY_SAP_SIPPER },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PINK,
|
||||
.speciesName = _("Miltank"),
|
||||
.cryId = CRY_MILTANK,
|
||||
|
|
|
@ -788,7 +788,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_RUN_AWAY, ABILITY_QUICK_FEET, ABILITY_RATTLED },
|
||||
#else
|
||||
.abilities = { ABILITY_RUN_AWAY, ABILITY_NONE, ABILITY_RATTLED },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_GRAY,
|
||||
.speciesName = _("Poochyena"),
|
||||
.cryId = CRY_POOCHYENA,
|
||||
|
@ -850,7 +854,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_INTIMIDATE, ABILITY_QUICK_FEET, ABILITY_MOXIE },
|
||||
#else
|
||||
.abilities = { ABILITY_INTIMIDATE, ABILITY_NONE, ABILITY_MOXIE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_GRAY,
|
||||
.speciesName = _("Mightyena"),
|
||||
.cryId = CRY_MIGHTYENA,
|
||||
|
@ -922,7 +930,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET },
|
||||
#else
|
||||
.abilities = { ABILITY_PICKUP, ABILITY_NONE, ABILITY_QUICK_FEET },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Zigzagoon"),
|
||||
.cryId = CRY_ZIGZAGOON,
|
||||
|
@ -987,7 +999,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_PICKUP, ABILITY_GLUTTONY, ABILITY_QUICK_FEET },
|
||||
#else
|
||||
.abilities = { ABILITY_PICKUP, ABILITY_NONE, ABILITY_QUICK_FEET },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_WHITE,
|
||||
.speciesName = _("Linoone"),
|
||||
.cryId = CRY_LINOONE,
|
||||
|
@ -2127,7 +2143,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING),
|
||||
#if P_UPDATED_ABILITIES >= GEN_7
|
||||
.abilities = { ABILITY_KEEN_EYE, ABILITY_HYDRATION, ABILITY_RAIN_DISH },
|
||||
#else
|
||||
.abilities = { ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_RAIN_DISH },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_WHITE,
|
||||
.speciesName = _("Wingull"),
|
||||
.cryId = CRY_WINGULL,
|
||||
|
@ -2197,7 +2217,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FLYING),
|
||||
#if P_UPDATED_ABILITIES >= GEN_7
|
||||
.abilities = { ABILITY_KEEN_EYE, ABILITY_DRIZZLE, ABILITY_RAIN_DISH },
|
||||
#else
|
||||
.abilities = { ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_RAIN_DISH },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_YELLOW,
|
||||
.speciesName = _("Pelipper"),
|
||||
.cryId = CRY_PELIPPER,
|
||||
|
@ -2786,7 +2810,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_FLUCTUATING,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_EFFECT_SPORE, ABILITY_POISON_HEAL, ABILITY_QUICK_FEET },
|
||||
#else
|
||||
.abilities = { ABILITY_EFFECT_SPORE, ABILITY_NONE, ABILITY_QUICK_FEET },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Shroomish"),
|
||||
.cryId = CRY_SHROOMISH,
|
||||
|
@ -2850,7 +2878,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_FLUCTUATING,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_GRASS),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_EFFECT_SPORE, ABILITY_POISON_HEAL, ABILITY_TECHNICIAN },
|
||||
#else
|
||||
.abilities = { ABILITY_EFFECT_SPORE, ABILITY_NONE, ABILITY_TECHNICIAN },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_GREEN,
|
||||
.speciesName = _("Breloom"),
|
||||
.cryId = CRY_BRELOOM,
|
||||
|
@ -3741,7 +3773,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_CUTE_CHARM, ABILITY_NORMALIZE, ABILITY_WONDER_SKIN },
|
||||
#else
|
||||
.abilities = { ABILITY_CUTE_CHARM, ABILITY_NONE, ABILITY_WONDER_SKIN },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PINK,
|
||||
.speciesName = _("Skitty"),
|
||||
.cryId = CRY_SKITTY,
|
||||
|
@ -3810,7 +3846,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_FAIRY),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_CUTE_CHARM, ABILITY_NORMALIZE, ABILITY_WONDER_SKIN },
|
||||
#else
|
||||
.abilities = { ABILITY_CUTE_CHARM, ABILITY_NONE, ABILITY_WONDER_SKIN },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.speciesName = _("Delcatty"),
|
||||
.cryId = CRY_DELCATTY,
|
||||
|
@ -3874,7 +3914,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = 35,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_KEEN_EYE, ABILITY_STALL, ABILITY_PRANKSTER },
|
||||
#else
|
||||
.abilities = { ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_PRANKSTER },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.speciesName = _("Sableye"),
|
||||
.cryId = CRY_SABLEYE,
|
||||
|
@ -4757,7 +4801,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY),
|
||||
#if P_UPDATED_ABILITIES >= GEN_6
|
||||
.abilities = { ABILITY_PLUS, ABILITY_NONE, ABILITY_LIGHTNING_ROD },
|
||||
#else
|
||||
.abilities = { ABILITY_PLUS, ABILITY_NONE, ABILITY_NONE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_YELLOW,
|
||||
.speciesName = _("Plusle"),
|
||||
.cryId = CRY_PLUSLE,
|
||||
|
@ -4821,7 +4869,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY),
|
||||
#if P_UPDATED_ABILITIES >= GEN_6
|
||||
.abilities = { ABILITY_MINUS, ABILITY_NONE, ABILITY_VOLT_ABSORB },
|
||||
#else
|
||||
.abilities = { ABILITY_MINUS, ABILITY_NONE, ABILITY_NONE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_YELLOW,
|
||||
.speciesName = _("Minun"),
|
||||
.cryId = CRY_MINUN,
|
||||
|
@ -4959,7 +5011,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_FLUCTUATING,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_BUG, EGG_GROUP_HUMAN_LIKE),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_OBLIVIOUS, ABILITY_TINTED_LENS, ABILITY_PRANKSTER },
|
||||
#else
|
||||
.abilities = { ABILITY_OBLIVIOUS, ABILITY_NONE, ABILITY_PRANKSTER },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.speciesName = _("Illumise"),
|
||||
.cryId = CRY_ILLUMISE,
|
||||
|
@ -5682,7 +5738,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_OBLIVIOUS, ABILITY_SIMPLE, ABILITY_OWN_TEMPO },
|
||||
#else
|
||||
.abilities = { ABILITY_OBLIVIOUS, ABILITY_NONE, ABILITY_OWN_TEMPO },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_YELLOW,
|
||||
.speciesName = _("Numel"),
|
||||
.cryId = CRY_NUMEL,
|
||||
|
@ -5749,7 +5809,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_MAGMA_ARMOR, ABILITY_SOLID_ROCK, ABILITY_ANGER_POINT },
|
||||
#else
|
||||
.abilities = { ABILITY_MAGMA_ARMOR, ABILITY_NONE, ABILITY_ANGER_POINT },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_RED,
|
||||
.speciesName = _("Camerupt"),
|
||||
.cryId = CRY_CAMERUPT,
|
||||
|
@ -5876,7 +5940,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_7
|
||||
.abilities = { ABILITY_WHITE_SMOKE, ABILITY_DROUGHT, ABILITY_SHELL_ARMOR },
|
||||
#else
|
||||
.abilities = { ABILITY_WHITE_SMOKE, ABILITY_NONE, ABILITY_SHELL_ARMOR },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Torkoal"),
|
||||
.cryId = CRY_TORKOAL,
|
||||
|
@ -6064,7 +6132,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD, EGG_GROUP_HUMAN_LIKE),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_OWN_TEMPO, ABILITY_TANGLED_FEET, ABILITY_CONTRARY },
|
||||
#else
|
||||
.abilities = { ABILITY_OWN_TEMPO, ABILITY_NONE, ABILITY_CONTRARY },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.noFlip = TRUE,
|
||||
.speciesName = _("Spinda"),
|
||||
|
@ -6921,7 +6993,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_OBLIVIOUS, ABILITY_ANTICIPATION, ABILITY_HYDRATION },
|
||||
#else
|
||||
.abilities = { ABILITY_OBLIVIOUS, ABILITY_NONE, ABILITY_HYDRATION },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_GRAY,
|
||||
.speciesName = _("Barboach"),
|
||||
.cryId = CRY_BARBOACH,
|
||||
|
@ -6984,7 +7060,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_2),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_OBLIVIOUS, ABILITY_ANTICIPATION, ABILITY_HYDRATION },
|
||||
#else
|
||||
.abilities = { ABILITY_OBLIVIOUS, ABILITY_NONE, ABILITY_HYDRATION },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.speciesName = _("Whiscash"),
|
||||
.cryId = CRY_WHISCASH,
|
||||
|
@ -7571,7 +7651,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_ERRATIC,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_SWIFT_SWIM, ABILITY_OBLIVIOUS, ABILITY_ADAPTABILITY },
|
||||
#else
|
||||
.abilities = { ABILITY_SWIFT_SWIM, ABILITY_NONE, ABILITY_ADAPTABILITY },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Feebas"),
|
||||
.cryId = CRY_FEEBAS,
|
||||
|
@ -7635,7 +7719,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_ERRATIC,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_DRAGON),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_MARVEL_SCALE, ABILITY_COMPETITIVE, ABILITY_CUTE_CHARM },
|
||||
#else
|
||||
.abilities = { ABILITY_MARVEL_SCALE, ABILITY_NONE, ABILITY_CUTE_CHARM },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PINK,
|
||||
.speciesName = _("Milotic"),
|
||||
.cryId = CRY_MILOTIC,
|
||||
|
@ -7968,7 +8056,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_6
|
||||
.abilities = { ABILITY_COLOR_CHANGE, ABILITY_NONE, ABILITY_PROTEAN },
|
||||
#else
|
||||
.abilities = { ABILITY_COLOR_CHANGE, ABILITY_NONE, ABILITY_NONE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_GREEN,
|
||||
.speciesName = _("Kecleon"),
|
||||
.cryId = CRY_KECLEON,
|
||||
|
@ -8033,7 +8125,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = 35,
|
||||
.growthRate = GROWTH_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_INSOMNIA, ABILITY_FRISK, ABILITY_CURSED_BODY },
|
||||
#else
|
||||
.abilities = { ABILITY_INSOMNIA, ABILITY_NONE, ABILITY_CURSED_BODY },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.speciesName = _("Shuppet"),
|
||||
.cryId = CRY_SHUPPET,
|
||||
|
@ -8097,7 +8193,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = 35,
|
||||
.growthRate = GROWTH_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_INSOMNIA, ABILITY_FRISK, ABILITY_CURSED_BODY },
|
||||
#else
|
||||
.abilities = { ABILITY_INSOMNIA, ABILITY_NONE, ABILITY_CURSED_BODY },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.speciesName = _("Banette"),
|
||||
.cryId = CRY_BANETTE,
|
||||
|
@ -8221,7 +8321,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = 35,
|
||||
.growthRate = GROWTH_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS),
|
||||
#if P_UPDATED_ABILITIES >= GEN_6
|
||||
.abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_FRISK },
|
||||
#else
|
||||
.abilities = { ABILITY_LEVITATE, ABILITY_NONE, ABILITY_NONE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.speciesName = _("Duskull"),
|
||||
.cryId = CRY_DUSKULL,
|
||||
|
@ -8286,7 +8390,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = 35,
|
||||
.growthRate = GROWTH_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS),
|
||||
#if P_UPDATED_ABILITIES >= GEN_6
|
||||
.abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FRISK },
|
||||
#else
|
||||
.abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_NONE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.speciesName = _("Dusclops"),
|
||||
.cryId = CRY_DUSCLOPS,
|
||||
|
@ -8358,7 +8466,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = 35,
|
||||
.growthRate = GROWTH_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_AMORPHOUS),
|
||||
#if P_UPDATED_ABILITIES >= GEN_6
|
||||
.abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_FRISK },
|
||||
#else
|
||||
.abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_NONE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLACK,
|
||||
.speciesName = _("Dusknoir"),
|
||||
.cryId = CRY_DUSKNOIR,
|
||||
|
@ -8422,7 +8534,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MONSTER, EGG_GROUP_GRASS),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_CHLOROPHYLL, ABILITY_SOLAR_POWER, ABILITY_HARVEST },
|
||||
#else
|
||||
.abilities = { ABILITY_CHLOROPHYLL, ABILITY_NONE, ABILITY_HARVEST },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_GREEN,
|
||||
.speciesName = _("Tropius"),
|
||||
.cryId = CRY_TROPIUS,
|
||||
|
@ -8622,7 +8738,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = 35,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_PRESSURE, ABILITY_SUPER_LUCK, ABILITY_JUSTIFIED },
|
||||
#else
|
||||
.abilities = { ABILITY_PRESSURE, ABILITY_NONE, ABILITY_JUSTIFIED },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_WHITE,
|
||||
.noFlip = TRUE,
|
||||
.speciesName = _("Absol"),
|
||||
|
@ -8749,7 +8869,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_MINERAL),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_INNER_FOCUS, ABILITY_ICE_BODY, ABILITY_MOODY },
|
||||
#else
|
||||
.abilities = { ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_MOODY },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_GRAY,
|
||||
.speciesName = _("Snorunt"),
|
||||
.cryId = CRY_SNORUNT,
|
||||
|
@ -8813,7 +8937,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FAIRY, EGG_GROUP_MINERAL),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_INNER_FOCUS, ABILITY_ICE_BODY, ABILITY_MOODY },
|
||||
#else
|
||||
.abilities = { ABILITY_INNER_FOCUS, ABILITY_NONE, ABILITY_MOODY },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_GRAY,
|
||||
.speciesName = _("Glalie"),
|
||||
.cryId = CRY_GLALIE,
|
||||
|
@ -8998,7 +9126,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_THICK_FAT, ABILITY_ICE_BODY, ABILITY_OBLIVIOUS },
|
||||
#else
|
||||
.abilities = { ABILITY_THICK_FAT, ABILITY_NONE, ABILITY_OBLIVIOUS },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.speciesName = _("Spheal"),
|
||||
.cryId = CRY_SPHEAL,
|
||||
|
@ -9061,7 +9193,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_THICK_FAT, ABILITY_ICE_BODY, ABILITY_OBLIVIOUS },
|
||||
#else
|
||||
.abilities = { ABILITY_THICK_FAT, ABILITY_NONE, ABILITY_OBLIVIOUS },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.speciesName = _("Sealeo"),
|
||||
.cryId = CRY_SEALEO,
|
||||
|
@ -9128,7 +9264,11 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_WATER_1, EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_4
|
||||
.abilities = { ABILITY_THICK_FAT, ABILITY_ICE_BODY, ABILITY_OBLIVIOUS },
|
||||
#else
|
||||
.abilities = { ABILITY_THICK_FAT, ABILITY_NONE, ABILITY_OBLIVIOUS },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.speciesName = _("Walrein"),
|
||||
.cryId = CRY_WALREIN,
|
||||
|
|
|
@ -614,7 +614,11 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FLYING),
|
||||
#if P_UPDATED_ABILITIES >= GEN_6
|
||||
.abilities = { ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_RECKLESS },
|
||||
#else
|
||||
.abilities = { ABILITY_KEEN_EYE, ABILITY_NONE, ABILITY_NONE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BROWN,
|
||||
.speciesName = _("Starly"),
|
||||
.cryId = CRY_STARLY,
|
||||
|
|
|
@ -1971,7 +1971,11 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL),
|
||||
#if P_UPDATED_ABILITIES >= GEN_7
|
||||
.abilities = { ABILITY_STURDY, ABILITY_WEAK_ARMOR, ABILITY_SAND_FORCE },
|
||||
#else
|
||||
.abilities = { ABILITY_STURDY, ABILITY_NONE, ABILITY_SAND_FORCE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.speciesName = _("Roggenrola"),
|
||||
.cryId = CRY_ROGGENROLA,
|
||||
|
@ -2036,7 +2040,11 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL),
|
||||
#if P_UPDATED_ABILITIES >= GEN_7
|
||||
.abilities = { ABILITY_STURDY, ABILITY_WEAK_ARMOR, ABILITY_SAND_FORCE },
|
||||
#else
|
||||
.abilities = { ABILITY_STURDY, ABILITY_NONE, ABILITY_SAND_FORCE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.speciesName = _("Boldore"),
|
||||
.cryId = CRY_BOLDORE,
|
||||
|
@ -2106,7 +2114,11 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL),
|
||||
#if P_UPDATED_ABILITIES >= GEN_7
|
||||
.abilities = { ABILITY_STURDY, ABILITY_SAND_STREAM, ABILITY_SAND_FORCE },
|
||||
#else
|
||||
.abilities = { ABILITY_STURDY, ABILITY_NONE, ABILITY_SAND_FORCE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_BLUE,
|
||||
.speciesName = _("Gigalith"),
|
||||
.cryId = CRY_GIGALITH,
|
||||
|
@ -6111,7 +6123,11 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE),
|
||||
#if P_UPDATED_ABILITIES >= GEN_6
|
||||
.abilities = { ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG },
|
||||
#else
|
||||
.abilities = { ABILITY_FRISK, ABILITY_NONE, ABILITY_SHADOW_TAG },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.speciesName = _("Gothita"),
|
||||
.cryId = CRY_GOTHITA,
|
||||
|
@ -6173,7 +6189,11 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE),
|
||||
#if P_UPDATED_ABILITIES >= GEN_6
|
||||
.abilities = { ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG },
|
||||
#else
|
||||
.abilities = { ABILITY_FRISK, ABILITY_NONE, ABILITY_SHADOW_TAG },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.speciesName = _("Gothorita"),
|
||||
.cryId = CRY_GOTHORITA,
|
||||
|
@ -6234,7 +6254,11 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_HUMAN_LIKE),
|
||||
#if P_UPDATED_ABILITIES >= GEN_6
|
||||
.abilities = { ABILITY_FRISK, ABILITY_COMPETITIVE, ABILITY_SHADOW_TAG },
|
||||
#else
|
||||
.abilities = { ABILITY_FRISK, ABILITY_NONE, ABILITY_SHADOW_TAG },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_PURPLE,
|
||||
.speciesName = _("Gothitelle"),
|
||||
.cryId = CRY_GOTHITELLE,
|
||||
|
@ -6610,7 +6634,11 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL),
|
||||
#if P_UPDATED_ABILITIES >= GEN_7
|
||||
.abilities = { ABILITY_ICE_BODY, ABILITY_SNOW_CLOAK, ABILITY_WEAK_ARMOR },
|
||||
#else
|
||||
.abilities = { ABILITY_ICE_BODY, ABILITY_NONE, ABILITY_WEAK_ARMOR },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_WHITE,
|
||||
.speciesName = _("Vanillite"),
|
||||
.cryId = CRY_VANILLITE,
|
||||
|
@ -6673,7 +6701,11 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL),
|
||||
#if P_UPDATED_ABILITIES >= GEN_7
|
||||
.abilities = { ABILITY_ICE_BODY, ABILITY_SNOW_CLOAK, ABILITY_WEAK_ARMOR },
|
||||
#else
|
||||
.abilities = { ABILITY_ICE_BODY, ABILITY_NONE, ABILITY_WEAK_ARMOR },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_WHITE,
|
||||
.speciesName = _("Vanillish"),
|
||||
.cryId = CRY_VANILLISH,
|
||||
|
@ -6735,7 +6767,11 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_SLOW,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_MINERAL),
|
||||
#if P_UPDATED_ABILITIES >= GEN_7
|
||||
.abilities = { ABILITY_ICE_BODY, ABILITY_SNOW_WARNING, ABILITY_WEAK_ARMOR },
|
||||
#else
|
||||
.abilities = { ABILITY_ICE_BODY, ABILITY_NONE, ABILITY_WEAK_ARMOR },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_WHITE,
|
||||
.speciesName = _("Vanilluxe"),
|
||||
.cryId = CRY_VANILLUXE,
|
||||
|
@ -8004,7 +8040,11 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_GRASS, EGG_GROUP_MINERAL),
|
||||
#if P_UPDATED_ABILITIES >= GEN_6
|
||||
.abilities = { ABILITY_IRON_BARBS, ABILITY_NONE, ABILITY_ANTICIPATION },
|
||||
#else
|
||||
.abilities = { ABILITY_IRON_BARBS, ABILITY_NONE, ABILITY_NONE },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_GRAY,
|
||||
.speciesName = _("Ferrothorn"),
|
||||
.cryId = CRY_FERROTHORN,
|
||||
|
@ -8954,7 +8994,11 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_7
|
||||
.abilities = { ABILITY_SNOW_CLOAK, ABILITY_SLUSH_RUSH, ABILITY_RATTLED },
|
||||
#else
|
||||
.abilities = { ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_RATTLED },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_WHITE,
|
||||
.speciesName = _("Cubchoo"),
|
||||
.cryId = CRY_CUBCHOO,
|
||||
|
@ -9016,7 +9060,11 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
|
|||
.friendship = STANDARD_FRIENDSHIP,
|
||||
.growthRate = GROWTH_MEDIUM_FAST,
|
||||
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_FIELD),
|
||||
#if P_UPDATED_ABILITIES >= GEN_7
|
||||
.abilities = { ABILITY_SNOW_CLOAK, ABILITY_SLUSH_RUSH, ABILITY_SWIFT_SWIM },
|
||||
#else
|
||||
.abilities = { ABILITY_SNOW_CLOAK, ABILITY_NONE, ABILITY_SWIFT_SWIM },
|
||||
#endif
|
||||
.bodyColor = BODY_COLOR_WHITE,
|
||||
.speciesName = _("Beartic"),
|
||||
.cryId = CRY_BEARTIC,
|
||||
|
|
|
@ -630,7 +630,7 @@ static void BuyMenuPrintPriceInList(u8 windowId, u32 itemId, u8 y)
|
|||
gStringVar1,
|
||||
ItemId_GetPrice(itemId) >> IsPokeNewsActive(POKENEWS_SLATEPORT),
|
||||
STR_CONV_MODE_LEFT_ALIGN,
|
||||
5);
|
||||
6);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -638,7 +638,7 @@ static void BuyMenuPrintPriceInList(u8 windowId, u32 itemId, u8 y)
|
|||
gStringVar1,
|
||||
gDecorations[itemId].price,
|
||||
STR_CONV_MODE_LEFT_ALIGN,
|
||||
5);
|
||||
6);
|
||||
}
|
||||
|
||||
if (ItemId_GetImportance(itemId) && (CheckBagHasItem(itemId, 1) || CheckPCHasItem(itemId, 1)))
|
||||
|
|
73
test/battle/ability/lightning_rod.c
Normal file
73
test/battle/ability/lightning_rod.c
Normal file
|
@ -0,0 +1,73 @@
|
|||
#include "global.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Lightning Rod absorbs Electric-type moves and increases the Sp. Attack [Gen5+]")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(gMovesInfo[MOVE_THUNDERBOLT].type == TYPE_ELECTRIC);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_RAICHU) { Ability(ABILITY_LIGHTNING_ROD); }
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_THUNDERBOLT); MOVE(opponent, MOVE_CELEBRATE); }
|
||||
} SCENE {
|
||||
if (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5) {
|
||||
NONE_OF {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_THUNDERBOLT, player);
|
||||
HP_BAR(opponent);
|
||||
};
|
||||
ABILITY_POPUP(opponent, ABILITY_LIGHTNING_ROD);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
MESSAGE("Foe Raichu's Sp. Atk rose!");
|
||||
} else {
|
||||
NONE_OF {
|
||||
ABILITY_POPUP(opponent, ABILITY_LIGHTNING_ROD);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
MESSAGE("Foe Raichu's Sp. Atk rose!");
|
||||
};
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_THUNDERBOLT, player);
|
||||
HP_BAR(opponent);
|
||||
}
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Lightning Rod forces single-target Electric-type moves to target the Pokémon with this Ability.")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(gMovesInfo[MOVE_THUNDERBOLT].type == TYPE_ELECTRIC);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_RAICHU) { Ability(ABILITY_LIGHTNING_ROD); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN {
|
||||
MOVE(playerLeft, MOVE_THUNDERBOLT, target: opponentRight);
|
||||
MOVE(playerRight, MOVE_THUNDERBOLT, target: opponentRight);
|
||||
MOVE(opponentLeft, MOVE_CELEBRATE);
|
||||
MOVE(opponentRight, MOVE_CELEBRATE);
|
||||
}
|
||||
} SCENE {
|
||||
if (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5) {
|
||||
NONE_OF {
|
||||
HP_BAR(opponentLeft);
|
||||
HP_BAR(opponentRight);
|
||||
};
|
||||
ABILITY_POPUP(opponentLeft, ABILITY_LIGHTNING_ROD);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft);
|
||||
MESSAGE("Foe Raichu's Sp. Atk rose!");
|
||||
ABILITY_POPUP(opponentLeft, ABILITY_LIGHTNING_ROD);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft);
|
||||
MESSAGE("Foe Raichu's Sp. Atk rose!");
|
||||
} else {
|
||||
NONE_OF {
|
||||
HP_BAR(opponentRight);
|
||||
};
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_THUNDERBOLT, playerLeft);
|
||||
HP_BAR(opponentLeft);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_THUNDERBOLT, playerRight);
|
||||
HP_BAR(opponentLeft);
|
||||
}
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentLeft);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentRight);
|
||||
}
|
||||
}
|
|
@ -239,6 +239,30 @@ SINGLE_BATTLE_TEST("Parental Bond has no affect on multi hit moves and they stil
|
|||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Parental Bond Smack Down effect triggers after 2nd hit")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(gMovesInfo[MOVE_SMACK_DOWN].category != DAMAGE_CATEGORY_STATUS);
|
||||
ASSUME(gMovesInfo[MOVE_SMACK_DOWN].strikeCount < 2);
|
||||
ASSUME(MoveHasAdditionalEffect(MOVE_SMACK_DOWN, MOVE_EFFECT_SMACK_DOWN));
|
||||
PLAYER(SPECIES_KANGASKHAN) { Item(ITEM_KANGASKHANITE); }
|
||||
OPPONENT(SPECIES_SKARMORY);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_SMACK_DOWN, gimmick: GIMMICK_MEGA); }
|
||||
} SCENE {
|
||||
MESSAGE("Kangaskhan's Kangaskhanite is reacting to 1's Mega Ring!");
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_MEGA_EVOLUTION, player);
|
||||
MESSAGE("Kangaskhan has Mega Evolved into Mega Kangaskhan!");
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SMACK_DOWN, player);
|
||||
HP_BAR(opponent);
|
||||
NOT MESSAGE("Foe Skarmory fell straight down!");
|
||||
HP_BAR(opponent);
|
||||
MESSAGE("Foe Skarmory fell straight down!");
|
||||
} THEN {
|
||||
EXPECT_EQ(player->species, SPECIES_KANGASKHAN_MEGA);
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Parental Bond tests");
|
||||
|
||||
// Temporary TODO: Convert Bulbapedia description into tests.
|
||||
|
|
73
test/battle/ability/storm_drain.c
Normal file
73
test/battle/ability/storm_drain.c
Normal file
|
@ -0,0 +1,73 @@
|
|||
#include "global.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Storm Drain absorbs Water-type moves and increases the Sp. Attack [Gen5+]")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(gMovesInfo[MOVE_WATER_GUN].type == TYPE_WATER);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_GASTRODON_EAST_SEA) { Ability(ABILITY_STORM_DRAIN); }
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_WATER_GUN); MOVE(opponent, MOVE_CELEBRATE); }
|
||||
} SCENE {
|
||||
if (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5) {
|
||||
NONE_OF {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_GUN, player);
|
||||
HP_BAR(opponent);
|
||||
};
|
||||
ABILITY_POPUP(opponent, ABILITY_STORM_DRAIN);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
MESSAGE("Foe Gastrodon's Sp. Atk rose!");
|
||||
} else {
|
||||
NONE_OF {
|
||||
ABILITY_POPUP(opponent, ABILITY_STORM_DRAIN);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
MESSAGE("Foe Gastrodon's Sp. Atk rose!");
|
||||
};
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_GUN, player);
|
||||
HP_BAR(opponent);
|
||||
}
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent);
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Storm Drain forces single-target Water-type moves to target the Pokémon with this Ability.")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(gMovesInfo[MOVE_WATER_GUN].type == TYPE_WATER);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_GASTRODON_EAST_SEA) { Ability(ABILITY_STORM_DRAIN); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN {
|
||||
MOVE(playerLeft, MOVE_WATER_GUN, target: opponentRight);
|
||||
MOVE(playerRight, MOVE_WATER_GUN, target: opponentRight);
|
||||
MOVE(opponentLeft, MOVE_CELEBRATE);
|
||||
MOVE(opponentRight, MOVE_CELEBRATE);
|
||||
}
|
||||
} SCENE {
|
||||
if (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5) {
|
||||
NONE_OF {
|
||||
HP_BAR(opponentLeft);
|
||||
HP_BAR(opponentRight);
|
||||
};
|
||||
ABILITY_POPUP(opponentLeft, ABILITY_STORM_DRAIN);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft);
|
||||
MESSAGE("Foe Gastrodon's Sp. Atk rose!");
|
||||
ABILITY_POPUP(opponentLeft, ABILITY_STORM_DRAIN);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft);
|
||||
MESSAGE("Foe Gastrodon's Sp. Atk rose!");
|
||||
} else {
|
||||
NONE_OF {
|
||||
HP_BAR(opponentRight);
|
||||
};
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_GUN, playerLeft);
|
||||
HP_BAR(opponentLeft);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_GUN, playerRight);
|
||||
HP_BAR(opponentLeft);
|
||||
}
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentLeft);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentRight);
|
||||
}
|
||||
}
|
24
test/battle/move_effect/flame_burst.c
Normal file
24
test/battle/move_effect/flame_burst.c
Normal file
|
@ -0,0 +1,24 @@
|
|||
#include "global.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
ASSUME(gMovesInfo[MOVE_FLAME_BURST].additionalEffects->moveEffect == MOVE_EFFECT_FLAME_BURST);
|
||||
}
|
||||
|
||||
// Flame Burst AoE is supposed to hit through Substitute
|
||||
DOUBLE_BATTLE_TEST("Flame Burst Substitute")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(gMovesInfo[MOVE_SUBSTITUTE].effect == EFFECT_SUBSTITUTE);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
PLAYER(SPECIES_WYNAUT);
|
||||
OPPONENT(SPECIES_WYNAUT);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(opponentLeft, MOVE_SUBSTITUTE); MOVE(playerRight, MOVE_FLAME_BURST, target: opponentRight); }
|
||||
} SCENE {
|
||||
MESSAGE("The bursting flames hit Foe Wynaut!");
|
||||
NOT MESSAGE("The SUBSTITUTE took damage for Foe Wynaut!");
|
||||
}
|
||||
}
|
|
@ -41,7 +41,7 @@ WILD_BATTLE_TEST("Ion Deluge works the same way as always when used by a mon wit
|
|||
NONE_OF {
|
||||
ABILITY_POPUP(opponent, ability);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
MESSAGE("Wild Zebstrika's Sp.Atk rose!");
|
||||
MESSAGE("Wild Zebstrika's Sp. Atk rose!");
|
||||
MESSAGE("Wild Zebstrika's Speed rose!");
|
||||
}
|
||||
MESSAGE("A deluge of ions showers the battlefield!");
|
||||
|
|
|
@ -67,7 +67,8 @@ SINGLE_BATTLE_TEST("Dire Claw cannot poison/paralyze/cause to fall asleep pokemo
|
|||
u8 statusAnim;
|
||||
u16 species, ability;
|
||||
u32 rng;
|
||||
PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; species = SPECIES_RAICHU; ability = ABILITY_LIGHTNING_ROD; }
|
||||
if (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5)
|
||||
PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; species = SPECIES_RAICHU; ability = ABILITY_LIGHTNING_ROD; }
|
||||
PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; species = SPECIES_JOLTEON; ability = ABILITY_VOLT_ABSORB; }
|
||||
PARAMETRIZE { statusAnim = B_ANIM_STATUS_PRZ; rng = MOVE_EFFECT_PARALYSIS; species = SPECIES_ELECTIVIRE; ability = ABILITY_MOTOR_DRIVE; }
|
||||
PARAMETRIZE { statusAnim = B_ANIM_STATUS_PSN; rng = MOVE_EFFECT_POISON; species = SPECIES_ZANGOOSE; ability = ABILITY_IMMUNITY; }
|
||||
|
|
Loading…
Reference in a new issue