Remove all the ifdefs for BATTLE_ENGINE, ITEM_EXPANSION, and POKEMON_EXPANSION

This commit is contained in:
ExpoSeed 2022-08-02 00:15:55 -05:00
parent 6b35dd5774
commit 49da2ee53f
17 changed files with 766 additions and 1228 deletions

View File

@ -3,126 +3,126 @@
#include "constants/expansion_branches.h" #include "constants/expansion_branches.h"
// Species with peculiar battle effects. // // Species with peculiar battle effects.
#ifndef POKEMON_EXPANSION // #ifndef POKEMON_EXPANSION
#define SPECIES_DIALGA 0 // #define SPECIES_DIALGA 0
#define SPECIES_PALKIA 0 // #define SPECIES_PALKIA 0
#define SPECIES_GIRATINA 0 // #define SPECIES_GIRATINA 0
#define SPECIES_CHERRIM 0 // #define SPECIES_CHERRIM 0
#define SPECIES_ARCEUS 0 // #define SPECIES_ARCEUS 0
#define SPECIES_SILVALLY 0 // #define SPECIES_SILVALLY 0
#define SPECIES_GENESECT 0 // #define SPECIES_GENESECT 0
#define SPECIES_AEGISLASH 0 // #define SPECIES_AEGISLASH 0
#define SPECIES_AEGISLASH_BLADE 10000 // #define SPECIES_AEGISLASH_BLADE 10000
#define SPECIES_MIMIKYU 0 // #define SPECIES_MIMIKYU 0
#define SPECIES_MIMIKYU_BUSTED 10001 // #define SPECIES_MIMIKYU_BUSTED 10001
#define SPECIES_DARMANITAN 0 // #define SPECIES_DARMANITAN 0
#define SPECIES_DARMANITAN_ZEN_MODE 10002 // #define SPECIES_DARMANITAN_ZEN_MODE 10002
#define SPECIES_MINIOR_CORE_RED 0 // #define SPECIES_MINIOR_CORE_RED 0
#define SPECIES_MINIOR 10003 // #define SPECIES_MINIOR 10003
#define SPECIES_MINIOR_CORE_BLUE 0 // #define SPECIES_MINIOR_CORE_BLUE 0
#define SPECIES_MINIOR_METEOR_BLUE 10004 // #define SPECIES_MINIOR_METEOR_BLUE 10004
#define SPECIES_MINIOR_CORE_GREEN 0 // #define SPECIES_MINIOR_CORE_GREEN 0
#define SPECIES_MINIOR_METEOR_GREEN 10005 // #define SPECIES_MINIOR_METEOR_GREEN 10005
#define SPECIES_MINIOR_CORE_INDIGO 0 // #define SPECIES_MINIOR_CORE_INDIGO 0
#define SPECIES_MINIOR_METEOR_INDIGO 10006 // #define SPECIES_MINIOR_METEOR_INDIGO 10006
#define SPECIES_MINIOR_CORE_ORANGE 0 // #define SPECIES_MINIOR_CORE_ORANGE 0
#define SPECIES_MINIOR_METEOR_ORANGE 10007 // #define SPECIES_MINIOR_METEOR_ORANGE 10007
#define SPECIES_MINIOR_CORE_VIOLET 0 // #define SPECIES_MINIOR_CORE_VIOLET 0
#define SPECIES_MINIOR_METEOR_VIOLET 10008 // #define SPECIES_MINIOR_METEOR_VIOLET 10008
#define SPECIES_MINIOR_CORE_YELLOW 0 // #define SPECIES_MINIOR_CORE_YELLOW 0
#define SPECIES_MINIOR_METEOR_YELLOW 10009 // #define SPECIES_MINIOR_METEOR_YELLOW 10009
#define SPECIES_WISHIWASHI 0 // #define SPECIES_WISHIWASHI 0
#define SPECIES_WISHIWASHI_SCHOOL 10010 // #define SPECIES_WISHIWASHI_SCHOOL 10010
#define SPECIES_ZYGARDE 0 // 50% // #define SPECIES_ZYGARDE 0 // 50%
#define SPECIES_ZYGARDE_10 10011 // 10 % // #define SPECIES_ZYGARDE_10 10011 // 10 %
#define SPECIES_ZYGARDE_COMPLETE 10012 // 100 % // #define SPECIES_ZYGARDE_COMPLETE 10012 // 100 %
#define SPECIES_BURMY 0 // #define SPECIES_BURMY 0
#define SPECIES_BURMY_SANDY_CLOAK 10013 // #define SPECIES_BURMY_SANDY_CLOAK 10013
#define SPECIES_BURMY_TRASH_CLOAK 10014 // #define SPECIES_BURMY_TRASH_CLOAK 10014
#define SPECIES_CRAMORANT 0 // #define SPECIES_CRAMORANT 0
#define SPECIES_CRAMORANT_GORGING 10015 // #define SPECIES_CRAMORANT_GORGING 10015
#define SPECIES_CRAMORANT_GULPING 10016 // #define SPECIES_CRAMORANT_GULPING 10016
#define SPECIES_GRENINJA_BATTLE_BOND 0 // #define SPECIES_GRENINJA_BATTLE_BOND 0
#define SPECIES_GRENINJA_ASH 10017 // #define SPECIES_GRENINJA_ASH 10017
#define SPECIES_HOOPA 0 // #define SPECIES_HOOPA 0
#define SPECIES_HOOPA_UNBOUND 10018 // #define SPECIES_HOOPA_UNBOUND 10018
#define SPECIES_MELOETTA 0 // #define SPECIES_MELOETTA 0
#define SPECIES_MELOETTA_PIROUETTE 10019 // #define SPECIES_MELOETTA_PIROUETTE 10019
#define SPECIES_MORPEKO 0 // #define SPECIES_MORPEKO 0
#define SPECIES_MORPEKO_HANGRY 10020 // #define SPECIES_MORPEKO_HANGRY 10020
#define SPECIES_SIRFETCHD 10021 // #define SPECIES_SIRFETCHD 10021
#define SPECIES_DARMANITAN_GALARIAN 0 // #define SPECIES_DARMANITAN_GALARIAN 0
#define SPECIES_DARMANITAN_ZEN_MODE_GALARIAN 10022 // #define SPECIES_DARMANITAN_ZEN_MODE_GALARIAN 10022
#define SPECIES_HEATMOR 0 // #define SPECIES_HEATMOR 0
#define SPECIES_DURANT 0 // #define SPECIES_DURANT 0
#define SPECIES_CARBINK 0 // #define SPECIES_CARBINK 0
#define SPECIES_MAREANIE 0 // #define SPECIES_MAREANIE 0
#endif // #endif
// Items with peculiar battle effects. // // Items with peculiar battle effects.
#ifndef ITEM_EXPANSION // #ifndef ITEM_EXPANSION
#define ITEM_CHOPLE_BERRY 177 // #define ITEM_CHOPLE_BERRY 177
#define ITEM_KEBIA_BERRY 178 // #define ITEM_KEBIA_BERRY 178
#define ITEM_SHUCA_BERRY 179 // #define ITEM_SHUCA_BERRY 179
#define ITEM_COBA_BERRY 180 // #define ITEM_COBA_BERRY 180
#define ITEM_PAYAPA_BERRY 181 // #define ITEM_PAYAPA_BERRY 181
#define ITEM_TANGA_BERRY 182 // #define ITEM_TANGA_BERRY 182
#define ITEM_CHARTI_BERRY 183 // #define ITEM_CHARTI_BERRY 183
#define ITEM_KASIB_BERRY 184 // #define ITEM_KASIB_BERRY 184
#define ITEM_HABAN_BERRY 185 // #define ITEM_HABAN_BERRY 185
#define ITEM_COLBUR_BERRY 186 // #define ITEM_COLBUR_BERRY 186
#define ITEM_BABIRI_BERRY 187 // #define ITEM_BABIRI_BERRY 187
#define ITEM_CHILAN_BERRY 188 // #define ITEM_CHILAN_BERRY 188
#define ITEM_ROSELI_BERRY 189 // #define ITEM_ROSELI_BERRY 189
#define ITEM_MICLE_BERRY 197 // #define ITEM_MICLE_BERRY 197
#define ITEM_CUSTAP_BERRY 199 // #define ITEM_CUSTAP_BERRY 199
#define ITEM_JABOCA_BERRY 200 // #define ITEM_JABOCA_BERRY 200
#define ITEM_ROWAP_BERRY 201 // #define ITEM_ROWAP_BERRY 201
#define ITEM_KEE_BERRY 202 // #define ITEM_KEE_BERRY 202
#define ITEM_MARANGA_BERRY 203 // #define ITEM_MARANGA_BERRY 203
#define ITEM_OCCA_BERRY 204 // #define ITEM_OCCA_BERRY 204
#define ITEM_PASSHO_BERRY 205 // #define ITEM_PASSHO_BERRY 205
#define ITEM_WACAN_BERRY 206 // #define ITEM_WACAN_BERRY 206
#define ITEM_RINDO_BERRY 207 // #define ITEM_RINDO_BERRY 207
#define ITEM_YACHE_BERRY 208 // #define ITEM_YACHE_BERRY 208
#define ITEM_GRISEOUS_ORB 369 // #define ITEM_GRISEOUS_ORB 369
// z crystals // // z crystals
#define ITEM_NORMALIUM_Z 568 // #define ITEM_NORMALIUM_Z 568
#define ITEM_FIGHTINIUM_Z 569 // #define ITEM_FIGHTINIUM_Z 569
#define ITEM_FLYINIUM_Z 570 // #define ITEM_FLYINIUM_Z 570
#define ITEM_POISONIUM_Z 571 // #define ITEM_POISONIUM_Z 571
#define ITEM_GROUNDIUM_Z 572 // #define ITEM_GROUNDIUM_Z 572
#define ITEM_ROCKIUM_Z 573 // #define ITEM_ROCKIUM_Z 573
#define ITEM_BUGINIUM_Z 574 // #define ITEM_BUGINIUM_Z 574
#define ITEM_GHOSTIUM_Z 575 // #define ITEM_GHOSTIUM_Z 575
#define ITEM_STEELIUM_Z 576 // #define ITEM_STEELIUM_Z 576
#define ITEM_FIRIUM_Z 577 // #define ITEM_FIRIUM_Z 577
#define ITEM_WATERIUM_Z 578 // #define ITEM_WATERIUM_Z 578
#define ITEM_GRASSIUM_Z 579 // #define ITEM_GRASSIUM_Z 579
#define ITEM_ELECTRIUM_Z 580 // #define ITEM_ELECTRIUM_Z 580
#define ITEM_PSYCHIUM_Z 581 // #define ITEM_PSYCHIUM_Z 581
#define ITEM_ICIUM_Z 582 // #define ITEM_ICIUM_Z 582
#define ITEM_DRAGONIUM_Z 583 // #define ITEM_DRAGONIUM_Z 583
#define ITEM_DARKINIUM_Z 584 // #define ITEM_DARKINIUM_Z 584
#define ITEM_FAIRIUM_Z 585 // #define ITEM_FAIRIUM_Z 585
#define ITEM_ALORAICHIUM_Z 586 // #define ITEM_ALORAICHIUM_Z 586
#define ITEM_DECIDIUM_Z 587 // #define ITEM_DECIDIUM_Z 587
#define ITEM_EEVIUM_Z 588 // #define ITEM_EEVIUM_Z 588
#define ITEM_INCINIUM_Z 589 // #define ITEM_INCINIUM_Z 589
#define ITEM_KOMMONIUM_Z 590 // #define ITEM_KOMMONIUM_Z 590
#define ITEM_LUNALIUM_Z 591 // #define ITEM_LUNALIUM_Z 591
#define ITEM_LYCANIUM_Z 592 // #define ITEM_LYCANIUM_Z 592
#define ITEM_MARSHADIUM_Z 593 // #define ITEM_MARSHADIUM_Z 593
#define ITEM_MEWNIUM_Z 594 // #define ITEM_MEWNIUM_Z 594
#define ITEM_MIMIKIUM_Z 595 // #define ITEM_MIMIKIUM_Z 595
#define ITEM_PIKANIUM_Z 596 // #define ITEM_PIKANIUM_Z 596
#define ITEM_PIKASHUNIUM_Z 597 // #define ITEM_PIKASHUNIUM_Z 597
#define ITEM_PRIMARIUM_Z 598 // #define ITEM_PRIMARIUM_Z 598
#define ITEM_SNORLIUM_Z 599 // #define ITEM_SNORLIUM_Z 599
#define ITEM_SOLGANIUM_Z 600 // #define ITEM_SOLGANIUM_Z 600
#define ITEM_TAPUNIUM_Z 601 // #define ITEM_TAPUNIUM_Z 601
#endif // #endif
#ifndef GEN_3 #ifndef GEN_3
#define GEN_3 0 #define GEN_3 0

View File

@ -2,22 +2,10 @@
#define GUARD_CONSTANTS_ITEM_EFFECTS_H #define GUARD_CONSTANTS_ITEM_EFFECTS_H
// field 0 masks // field 0 masks
#ifndef ITEM_EXPANSION
#define ITEM0_X_ATTACK 0x0F
#endif
#define ITEM0_DIRE_HIT 0x30 // Works the same way as the move Focus Energy. #define ITEM0_DIRE_HIT 0x30 // Works the same way as the move Focus Energy.
#define ITEM0_SACRED_ASH 0x40 #define ITEM0_SACRED_ASH 0x40
#define ITEM0_INFATUATION 0x80 #define ITEM0_INFATUATION 0x80
#ifndef ITEM_EXPANSION
// field 1 masks
#define ITEM1_X_SPEED 0x0F
#define ITEM1_X_DEFEND 0xF0
// field 2 masks
#define ITEM2_X_SPATK 0x0F
#define ITEM2_X_ACCURACY 0xF0
#else
// new field 1 masks // new field 1 masks
#define ITEM1_X_ATTACK 0x1 #define ITEM1_X_ATTACK 0x1
#define ITEM1_X_DEFENSE 0x2 #define ITEM1_X_DEFENSE 0x2
@ -25,7 +13,6 @@
#define ITEM1_X_SPATK 0x8 #define ITEM1_X_SPATK 0x8
#define ITEM1_X_SPDEF 0x10 #define ITEM1_X_SPDEF 0x10
#define ITEM1_X_ACCURACY 0x20 #define ITEM1_X_ACCURACY 0x20
#endif
// field 3 masks // field 3 masks
#define ITEM3_CONFUSION 0x1 #define ITEM3_CONFUSION 0x1

View File

@ -23,353 +23,353 @@
#define P_ENABLE_DEBUG TRUE // Enables a debug menu for pokemon sprites and icons, accessed by pressing SELECT in the summary screen. #define P_ENABLE_DEBUG TRUE // Enables a debug menu for pokemon sprites and icons, accessed by pressing SELECT in the summary screen.
#ifndef ITEM_EXPANSION // #ifndef ITEM_EXPANSION
//Item Definitions for gEvolutionTable // //Item Definitions for gEvolutionTable
//EVO_MEGA_EVOLUTION // //EVO_MEGA_EVOLUTION
#define ITEM_VENUSAURITE 10001 // #define ITEM_VENUSAURITE 10001
#define ITEM_CHARIZARDITE_X 10002 // #define ITEM_CHARIZARDITE_X 10002
#define ITEM_CHARIZARDITE_Y 10003 // #define ITEM_CHARIZARDITE_Y 10003
#define ITEM_BLASTOISINITE 10004 // #define ITEM_BLASTOISINITE 10004
#define ITEM_BEEDRILLITE 10005 // #define ITEM_BEEDRILLITE 10005
#define ITEM_PIDGEOTITE 10006 // #define ITEM_PIDGEOTITE 10006
#define ITEM_ALAKAZITE 10007 // #define ITEM_ALAKAZITE 10007
#define ITEM_SLOWBRONITE 10008 // #define ITEM_SLOWBRONITE 10008
#define ITEM_GENGARITE 10009 // #define ITEM_GENGARITE 10009
#define ITEM_KANGASKHANITE 10010 // #define ITEM_KANGASKHANITE 10010
#define ITEM_PINSIRITE 10011 // #define ITEM_PINSIRITE 10011
#define ITEM_GYARADOSITE 10012 // #define ITEM_GYARADOSITE 10012
#define ITEM_AERODACTYLITE 10013 // #define ITEM_AERODACTYLITE 10013
#define ITEM_MEWTWONITE_X 10014 // #define ITEM_MEWTWONITE_X 10014
#define ITEM_MEWTWONITE_Y 10015 // #define ITEM_MEWTWONITE_Y 10015
#define ITEM_AMPHAROSITE 10016 // #define ITEM_AMPHAROSITE 10016
#define ITEM_STEELIXITE 10017 // #define ITEM_STEELIXITE 10017
#define ITEM_SCIZORITE 10018 // #define ITEM_SCIZORITE 10018
#define ITEM_HERACRONITE 10019 // #define ITEM_HERACRONITE 10019
#define ITEM_HOUNDOOMINITE 10020 // #define ITEM_HOUNDOOMINITE 10020
#define ITEM_TYRANITARITE 10021 // #define ITEM_TYRANITARITE 10021
#define ITEM_SCEPTILITE 10022 // #define ITEM_SCEPTILITE 10022
#define ITEM_BLAZIKENITE 10023 // #define ITEM_BLAZIKENITE 10023
#define ITEM_SWAMPERTITE 10024 // #define ITEM_SWAMPERTITE 10024
#define ITEM_SABLENITE 10025 // #define ITEM_SABLENITE 10025
#define ITEM_SHARPEDONITE 10026 // #define ITEM_SHARPEDONITE 10026
#define ITEM_MANECTITE 10027 // #define ITEM_MANECTITE 10027
#define ITEM_CAMERUPTITE 10028 // #define ITEM_CAMERUPTITE 10028
#define ITEM_GLALITITE 10029 // #define ITEM_GLALITITE 10029
#define ITEM_MAWILITE 10030 // #define ITEM_MAWILITE 10030
#define ITEM_MEDICHAMITE 10031 // #define ITEM_MEDICHAMITE 10031
#define ITEM_ALTARIANITE 10032 // #define ITEM_ALTARIANITE 10032
#define ITEM_ABSOLITE 10033 // #define ITEM_ABSOLITE 10033
#define ITEM_BANETTITE 10034 // #define ITEM_BANETTITE 10034
#define ITEM_AGGRONITE 10035 // #define ITEM_AGGRONITE 10035
#define ITEM_GARDEVOIRITE 10036 // #define ITEM_GARDEVOIRITE 10036
#define ITEM_SALAMENCITE 10037 // #define ITEM_SALAMENCITE 10037
#define ITEM_METAGROSSITE 10038 // #define ITEM_METAGROSSITE 10038
#define ITEM_LATIASITE 10039 // #define ITEM_LATIASITE 10039
#define ITEM_LATIOSITE 10040 // #define ITEM_LATIOSITE 10040
#define ITEM_LOPUNNITE 10041 // #define ITEM_LOPUNNITE 10041
#define ITEM_GARCHOMPITE 10042 // #define ITEM_GARCHOMPITE 10042
#define ITEM_LUCARIONITE 10043 // #define ITEM_LUCARIONITE 10043
#define ITEM_ABOMASITE 10044 // #define ITEM_ABOMASITE 10044
#define ITEM_GALLADITE 10045 // #define ITEM_GALLADITE 10045
#define ITEM_AUDINITE 10046 // #define ITEM_AUDINITE 10046
#define ITEM_DIANCITE 10047 // #define ITEM_DIANCITE 10047
//EVO_TRADE_ITEM // //EVO_TRADE_ITEM
#define ITEM_PROTECTOR 10048 // #define ITEM_PROTECTOR 10048
#define ITEM_ELECTIRIZER 10049 // #define ITEM_ELECTIRIZER 10049
#define ITEM_MAGMARIZER 10050 // #define ITEM_MAGMARIZER 10050
#define ITEM_DUBIOUS_DISC 10051 // #define ITEM_DUBIOUS_DISC 10051
#define ITEM_PRISM_SCALE 10052 // #define ITEM_PRISM_SCALE 10052
#define ITEM_REAPER_CLOTH 10053 // #define ITEM_REAPER_CLOTH 10053
#define ITEM_SACHET 10054 // #define ITEM_SACHET 10054
#define ITEM_WHIPPED_DREAM 10055 // #define ITEM_WHIPPED_DREAM 10055
//EVO_ITEM // //EVO_ITEM
#define ITEM_ICE_STONE 10056 // #define ITEM_ICE_STONE 10056
#define ITEM_SHINY_STONE 10057 // #define ITEM_SHINY_STONE 10057
#define ITEM_DUSK_STONE 10058 // #define ITEM_DUSK_STONE 10058
#define ITEM_DAWN_STONE 10059 // #define ITEM_DAWN_STONE 10059
#define ITEM_TART_APPLE 10060 // #define ITEM_TART_APPLE 10060
#define ITEM_SWEET_APPLE 10061 // #define ITEM_SWEET_APPLE 10061
#define ITEM_CRACKED_POT 10062 // #define ITEM_CRACKED_POT 10062
#define ITEM_GALARICA_CUFF 10063 // #define ITEM_GALARICA_CUFF 10063
#define ITEM_GALARICA_WREATH 10064 // #define ITEM_GALARICA_WREATH 10064
#define ITEM_CHIPPED_POT 10065 // #define ITEM_CHIPPED_POT 10065
//EVO_ITEM_HOLD // //EVO_ITEM_HOLD
#define ITEM_RAZOR_FANG 10066 // #define ITEM_RAZOR_FANG 10066
#define ITEM_RAZOR_CLAW 10067 // #define ITEM_RAZOR_CLAW 10067
#define ITEM_OVAL_STONE 10068 // #define ITEM_OVAL_STONE 10068
//FORM_ITEM_HOLD // //FORM_ITEM_HOLD
#define ITEM_GRISEOUS_ORB 10069 // #define ITEM_GRISEOUS_ORB 10069
#define ITEM_DRACO_PLATE 10070 // #define ITEM_DRACO_PLATE 10070
#define ITEM_DREAD_PLATE 10071 // #define ITEM_DREAD_PLATE 10071
#define ITEM_EARTH_PLATE 10072 // #define ITEM_EARTH_PLATE 10072
#define ITEM_FIST_PLATE 10073 // #define ITEM_FIST_PLATE 10073
#define ITEM_FLAME_PLATE 10074 // #define ITEM_FLAME_PLATE 10074
#define ITEM_ICICLE_PLATE 10075 // #define ITEM_ICICLE_PLATE 10075
#define ITEM_INSECT_PLATE 10076 // #define ITEM_INSECT_PLATE 10076
#define ITEM_IRON_PLATE 10077 // #define ITEM_IRON_PLATE 10077
#define ITEM_MEADOW_PLATE 10078 // #define ITEM_MEADOW_PLATE 10078
#define ITEM_MIND_PLATE 10079 // #define ITEM_MIND_PLATE 10079
#define ITEM_PIXIE_PLATE 10080 // #define ITEM_PIXIE_PLATE 10080
#define ITEM_SKY_PLATE 10081 // #define ITEM_SKY_PLATE 10081
#define ITEM_SPLASH_PLATE 10082 // #define ITEM_SPLASH_PLATE 10082
#define ITEM_SPOOKY_PLATE 10083 // #define ITEM_SPOOKY_PLATE 10083
#define ITEM_STONE_PLATE 10084 // #define ITEM_STONE_PLATE 10084
#define ITEM_TOXIC_PLATE 10085 // #define ITEM_TOXIC_PLATE 10085
#define ITEM_ZAP_PLATE 10086 // #define ITEM_ZAP_PLATE 10086
#define ITEM_FIGHTINIUM_Z 10087 // #define ITEM_FIGHTINIUM_Z 10087
#define ITEM_FLYINIUM_Z 10088 // #define ITEM_FLYINIUM_Z 10088
#define ITEM_POISONIUM_Z 10089 // #define ITEM_POISONIUM_Z 10089
#define ITEM_GROUNDIUM_Z 10090 // #define ITEM_GROUNDIUM_Z 10090
#define ITEM_ROCKIUM_Z 10091 // #define ITEM_ROCKIUM_Z 10091
#define ITEM_BUGINIUM_Z 10092 // #define ITEM_BUGINIUM_Z 10092
#define ITEM_GHOSTIUM_Z 10093 // #define ITEM_GHOSTIUM_Z 10093
#define ITEM_STEELIUM_Z 10094 // #define ITEM_STEELIUM_Z 10094
#define ITEM_FIRIUM_Z 10095 // #define ITEM_FIRIUM_Z 10095
#define ITEM_WATERIUM_Z 10096 // #define ITEM_WATERIUM_Z 10096
#define ITEM_GRASSIUM_Z 10097 // #define ITEM_GRASSIUM_Z 10097
#define ITEM_ELECTRIUM_Z 10098 // #define ITEM_ELECTRIUM_Z 10098
#define ITEM_PSYCHIUM_Z 10099 // #define ITEM_PSYCHIUM_Z 10099
#define ITEM_ICIUM_Z 10100 // #define ITEM_ICIUM_Z 10100
#define ITEM_DRAGONIUM_Z 10101 // #define ITEM_DRAGONIUM_Z 10101
#define ITEM_DARKINIUM_Z 10102 // #define ITEM_DARKINIUM_Z 10102
#define ITEM_FAIRIUM_Z 10103 // #define ITEM_FAIRIUM_Z 10103
#define ITEM_DOUSE_DRIVE 10104 // #define ITEM_DOUSE_DRIVE 10104
#define ITEM_SHOCK_DRIVE 10105 // #define ITEM_SHOCK_DRIVE 10105
#define ITEM_BURN_DRIVE 10106 // #define ITEM_BURN_DRIVE 10106
#define ITEM_CHILL_DRIVE 10107 // #define ITEM_CHILL_DRIVE 10107
#define ITEM_BUG_MEMORY 10108 // #define ITEM_BUG_MEMORY 10108
#define ITEM_DARK_MEMORY 10109 // #define ITEM_DARK_MEMORY 10109
#define ITEM_DRAGON_MEMORY 10110 // #define ITEM_DRAGON_MEMORY 10110
#define ITEM_ELECTRIC_MEMORY 10111 // #define ITEM_ELECTRIC_MEMORY 10111
#define ITEM_FAIRY_MEMORY 10112 // #define ITEM_FAIRY_MEMORY 10112
#define ITEM_FIGHTING_MEMORY 10113 // #define ITEM_FIGHTING_MEMORY 10113
#define ITEM_FIRE_MEMORY 10114 // #define ITEM_FIRE_MEMORY 10114
#define ITEM_FLYING_MEMORY 10115 // #define ITEM_FLYING_MEMORY 10115
#define ITEM_GHOST_MEMORY 10116 // #define ITEM_GHOST_MEMORY 10116
#define ITEM_GRASS_MEMORY 10117 // #define ITEM_GRASS_MEMORY 10117
#define ITEM_GROUND_MEMORY 10118 // #define ITEM_GROUND_MEMORY 10118
#define ITEM_ICE_MEMORY 10119 // #define ITEM_ICE_MEMORY 10119
#define ITEM_POISON_MEMORY 10120 // #define ITEM_POISON_MEMORY 10120
#define ITEM_PSYCHIC_MEMORY 10121 // #define ITEM_PSYCHIC_MEMORY 10121
#define ITEM_ROCK_MEMORY 10122 // #define ITEM_ROCK_MEMORY 10122
#define ITEM_STEEL_MEMORY 10123 // #define ITEM_STEEL_MEMORY 10123
#define ITEM_WATER_MEMORY 10124 // #define ITEM_WATER_MEMORY 10124
//FORM_ITEM_USE // //FORM_ITEM_USE
#define ITEM_GRACIDEA 10125 // #define ITEM_GRACIDEA 10125
#define ITEM_REVEAL_GLASS 10126 // #define ITEM_REVEAL_GLASS 10126
#define ITEM_PRISON_BOTTLE 10127 // #define ITEM_PRISON_BOTTLE 10127
#define ITEM_RED_NECTAR 10128 // #define ITEM_RED_NECTAR 10128
#define ITEM_YELLOW_NECTAR 10129 // #define ITEM_YELLOW_NECTAR 10129
#define ITEM_PINK_NECTAR 10130 // #define ITEM_PINK_NECTAR 10130
#define ITEM_PURPLE_NECTAR 10131 // #define ITEM_PURPLE_NECTAR 10131
// Held Items // // Held Items
#define ITEM_HONEY ITEM_NONE // #define ITEM_HONEY ITEM_NONE
#endif // ITEM_EXPANSION // #endif // ITEM_EXPANSION
#ifndef BATTLE_ENGINE // #ifndef BATTLE_ENGINE
// Gen 4 // // Gen 4
#define ABILITY_TANGLED_FEET ABILITY_NONE // #define ABILITY_TANGLED_FEET ABILITY_NONE
#define ABILITY_MOTOR_DRIVE ABILITY_NONE // #define ABILITY_MOTOR_DRIVE ABILITY_NONE
#define ABILITY_RIVALRY ABILITY_NONE // #define ABILITY_RIVALRY ABILITY_NONE
#define ABILITY_STEADFAST ABILITY_NONE // #define ABILITY_STEADFAST ABILITY_NONE
#define ABILITY_SNOW_CLOAK ABILITY_NONE // #define ABILITY_SNOW_CLOAK ABILITY_NONE
#define ABILITY_GLUTTONY ABILITY_NONE // #define ABILITY_GLUTTONY ABILITY_NONE
#define ABILITY_ANGER_POINT ABILITY_NONE // #define ABILITY_ANGER_POINT ABILITY_NONE
#define ABILITY_UNBURDEN ABILITY_NONE // #define ABILITY_UNBURDEN ABILITY_NONE
#define ABILITY_HEATPROOF ABILITY_NONE // #define ABILITY_HEATPROOF ABILITY_NONE
#define ABILITY_SIMPLE ABILITY_NONE // #define ABILITY_SIMPLE ABILITY_NONE
#define ABILITY_DRY_SKIN ABILITY_NONE // #define ABILITY_DRY_SKIN ABILITY_NONE
#define ABILITY_DOWNLOAD ABILITY_NONE // #define ABILITY_DOWNLOAD ABILITY_NONE
#define ABILITY_IRON_FIST ABILITY_NONE // #define ABILITY_IRON_FIST ABILITY_NONE
#define ABILITY_POISON_HEAL ABILITY_NONE // #define ABILITY_POISON_HEAL ABILITY_NONE
#define ABILITY_ADAPTABILITY ABILITY_NONE // #define ABILITY_ADAPTABILITY ABILITY_NONE
#define ABILITY_SKILL_LINK ABILITY_NONE // #define ABILITY_SKILL_LINK ABILITY_NONE
#define ABILITY_HYDRATION ABILITY_NONE // #define ABILITY_HYDRATION ABILITY_NONE
#define ABILITY_SOLAR_POWER ABILITY_NONE // #define ABILITY_SOLAR_POWER ABILITY_NONE
#define ABILITY_QUICK_FEET ABILITY_NONE // #define ABILITY_QUICK_FEET ABILITY_NONE
#define ABILITY_NORMALIZE ABILITY_NONE // #define ABILITY_NORMALIZE ABILITY_NONE
#define ABILITY_SNIPER ABILITY_NONE // #define ABILITY_SNIPER ABILITY_NONE
#define ABILITY_MAGIC_GUARD ABILITY_NONE // #define ABILITY_MAGIC_GUARD ABILITY_NONE
#define ABILITY_NO_GUARD ABILITY_NONE // #define ABILITY_NO_GUARD ABILITY_NONE
#define ABILITY_STALL ABILITY_NONE // #define ABILITY_STALL ABILITY_NONE
#define ABILITY_TECHNICIAN ABILITY_NONE // #define ABILITY_TECHNICIAN ABILITY_NONE
#define ABILITY_LEAF_GUARD ABILITY_NONE // #define ABILITY_LEAF_GUARD ABILITY_NONE
#define ABILITY_KLUTZ ABILITY_NONE // #define ABILITY_KLUTZ ABILITY_NONE
#define ABILITY_MOLD_BREAKER ABILITY_NONE // #define ABILITY_MOLD_BREAKER ABILITY_NONE
#define ABILITY_SUPER_LUCK ABILITY_NONE // #define ABILITY_SUPER_LUCK ABILITY_NONE
#define ABILITY_AFTERMATH ABILITY_NONE // #define ABILITY_AFTERMATH ABILITY_NONE
#define ABILITY_ANTICIPATION ABILITY_NONE // #define ABILITY_ANTICIPATION ABILITY_NONE
#define ABILITY_FOREWARN ABILITY_NONE // #define ABILITY_FOREWARN ABILITY_NONE
#define ABILITY_UNAWARE ABILITY_NONE // #define ABILITY_UNAWARE ABILITY_NONE
#define ABILITY_TINTED_LENS ABILITY_NONE // #define ABILITY_TINTED_LENS ABILITY_NONE
#define ABILITY_FILTER ABILITY_NONE // #define ABILITY_FILTER ABILITY_NONE
#define ABILITY_SLOW_START ABILITY_NONE // #define ABILITY_SLOW_START ABILITY_NONE
#define ABILITY_SCRAPPY ABILITY_NONE // #define ABILITY_SCRAPPY ABILITY_NONE
#define ABILITY_STORM_DRAIN ABILITY_NONE // #define ABILITY_STORM_DRAIN ABILITY_NONE
#define ABILITY_ICE_BODY ABILITY_NONE // #define ABILITY_ICE_BODY ABILITY_NONE
#define ABILITY_SOLID_ROCK ABILITY_NONE // #define ABILITY_SOLID_ROCK ABILITY_NONE
#define ABILITY_SNOW_WARNING ABILITY_NONE // #define ABILITY_SNOW_WARNING ABILITY_NONE
#define ABILITY_HONEY_GATHER ABILITY_NONE // #define ABILITY_HONEY_GATHER ABILITY_NONE
#define ABILITY_FRISK ABILITY_NONE // #define ABILITY_FRISK ABILITY_NONE
#define ABILITY_RECKLESS ABILITY_NONE // #define ABILITY_RECKLESS ABILITY_NONE
#define ABILITY_MULTITYPE ABILITY_NONE // #define ABILITY_MULTITYPE ABILITY_NONE
#define ABILITY_FLOWER_GIFT ABILITY_NONE // #define ABILITY_FLOWER_GIFT ABILITY_NONE
#define ABILITY_BAD_DREAMS ABILITY_NONE // #define ABILITY_BAD_DREAMS ABILITY_NONE
// Gen 5 // // Gen 5
#define ABILITY_PICKPOCKET ABILITY_NONE // #define ABILITY_PICKPOCKET ABILITY_NONE
#define ABILITY_SHEER_FORCE ABILITY_NONE // #define ABILITY_SHEER_FORCE ABILITY_NONE
#define ABILITY_CONTRARY ABILITY_NONE // #define ABILITY_CONTRARY ABILITY_NONE
#define ABILITY_UNNERVE ABILITY_NONE // #define ABILITY_UNNERVE ABILITY_NONE
#define ABILITY_DEFIANT ABILITY_NONE // #define ABILITY_DEFIANT ABILITY_NONE
#define ABILITY_DEFEATIST ABILITY_NONE // #define ABILITY_DEFEATIST ABILITY_NONE
#define ABILITY_CURSED_BODY ABILITY_NONE // #define ABILITY_CURSED_BODY ABILITY_NONE
#define ABILITY_HEALER ABILITY_NONE // #define ABILITY_HEALER ABILITY_NONE
#define ABILITY_FRIEND_GUARD ABILITY_NONE // #define ABILITY_FRIEND_GUARD ABILITY_NONE
#define ABILITY_WEAK_ARMOR ABILITY_NONE // #define ABILITY_WEAK_ARMOR ABILITY_NONE
#define ABILITY_HEAVY_METAL ABILITY_NONE // #define ABILITY_HEAVY_METAL ABILITY_NONE
#define ABILITY_LIGHT_METAL ABILITY_NONE // #define ABILITY_LIGHT_METAL ABILITY_NONE
#define ABILITY_MULTISCALE ABILITY_NONE // #define ABILITY_MULTISCALE ABILITY_NONE
#define ABILITY_TOXIC_BOOST ABILITY_NONE // #define ABILITY_TOXIC_BOOST ABILITY_NONE
#define ABILITY_FLARE_BOOST ABILITY_NONE // #define ABILITY_FLARE_BOOST ABILITY_NONE
#define ABILITY_HARVEST ABILITY_NONE // #define ABILITY_HARVEST ABILITY_NONE
#define ABILITY_TELEPATHY ABILITY_NONE // #define ABILITY_TELEPATHY ABILITY_NONE
#define ABILITY_MOODY ABILITY_NONE // #define ABILITY_MOODY ABILITY_NONE
#define ABILITY_OVERCOAT ABILITY_NONE // #define ABILITY_OVERCOAT ABILITY_NONE
#define ABILITY_POISON_TOUCH ABILITY_NONE // #define ABILITY_POISON_TOUCH ABILITY_NONE
#define ABILITY_REGENERATOR ABILITY_NONE // #define ABILITY_REGENERATOR ABILITY_NONE
#define ABILITY_BIG_PECKS ABILITY_NONE // #define ABILITY_BIG_PECKS ABILITY_NONE
#define ABILITY_SAND_RUSH ABILITY_NONE // #define ABILITY_SAND_RUSH ABILITY_NONE
#define ABILITY_WONDER_SKIN ABILITY_NONE // #define ABILITY_WONDER_SKIN ABILITY_NONE
#define ABILITY_ANALYTIC ABILITY_NONE // #define ABILITY_ANALYTIC ABILITY_NONE
#define ABILITY_ILLUSION ABILITY_NONE // #define ABILITY_ILLUSION ABILITY_NONE
#define ABILITY_IMPOSTER ABILITY_NONE // #define ABILITY_IMPOSTER ABILITY_NONE
#define ABILITY_INFILTRATOR ABILITY_NONE // #define ABILITY_INFILTRATOR ABILITY_NONE
#define ABILITY_MUMMY ABILITY_NONE // #define ABILITY_MUMMY ABILITY_NONE
#define ABILITY_MOXIE ABILITY_NONE // #define ABILITY_MOXIE ABILITY_NONE
#define ABILITY_JUSTIFIED ABILITY_NONE // #define ABILITY_JUSTIFIED ABILITY_NONE
#define ABILITY_RATTLED ABILITY_NONE // #define ABILITY_RATTLED ABILITY_NONE
#define ABILITY_MAGIC_BOUNCE ABILITY_NONE // #define ABILITY_MAGIC_BOUNCE ABILITY_NONE
#define ABILITY_SAP_SIPPER ABILITY_NONE // #define ABILITY_SAP_SIPPER ABILITY_NONE
#define ABILITY_PRANKSTER ABILITY_NONE // #define ABILITY_PRANKSTER ABILITY_NONE
#define ABILITY_SAND_FORCE ABILITY_NONE // #define ABILITY_SAND_FORCE ABILITY_NONE
#define ABILITY_IRON_BARBS ABILITY_NONE // #define ABILITY_IRON_BARBS ABILITY_NONE
#define ABILITY_ZEN_MODE ABILITY_NONE // #define ABILITY_ZEN_MODE ABILITY_NONE
#define ABILITY_VICTORY_STAR ABILITY_NONE // #define ABILITY_VICTORY_STAR ABILITY_NONE
#define ABILITY_TURBOBLAZE ABILITY_NONE // #define ABILITY_TURBOBLAZE ABILITY_NONE
#define ABILITY_TERAVOLT ABILITY_NONE // #define ABILITY_TERAVOLT ABILITY_NONE
// Gen 6 // // Gen 6
#define ABILITY_AROMA_VEIL ABILITY_NONE // #define ABILITY_AROMA_VEIL ABILITY_NONE
#define ABILITY_FLOWER_VEIL ABILITY_NONE // #define ABILITY_FLOWER_VEIL ABILITY_NONE
#define ABILITY_CHEEK_POUCH ABILITY_NONE // #define ABILITY_CHEEK_POUCH ABILITY_NONE
#define ABILITY_PROTEAN ABILITY_NONE // #define ABILITY_PROTEAN ABILITY_NONE
#define ABILITY_FUR_COAT ABILITY_NONE // #define ABILITY_FUR_COAT ABILITY_NONE
#define ABILITY_MAGICIAN ABILITY_NONE // #define ABILITY_MAGICIAN ABILITY_NONE
#define ABILITY_BULLETPROOF ABILITY_NONE // #define ABILITY_BULLETPROOF ABILITY_NONE
#define ABILITY_COMPETITIVE ABILITY_NONE // #define ABILITY_COMPETITIVE ABILITY_NONE
#define ABILITY_STRONG_JAW ABILITY_NONE // #define ABILITY_STRONG_JAW ABILITY_NONE
#define ABILITY_REFRIGERATE ABILITY_NONE // #define ABILITY_REFRIGERATE ABILITY_NONE
#define ABILITY_SWEET_VEIL ABILITY_NONE // #define ABILITY_SWEET_VEIL ABILITY_NONE
#define ABILITY_STANCE_CHANGE ABILITY_NONE // #define ABILITY_STANCE_CHANGE ABILITY_NONE
#define ABILITY_GALE_WINGS ABILITY_NONE // #define ABILITY_GALE_WINGS ABILITY_NONE
#define ABILITY_MEGA_LAUNCHER ABILITY_NONE // #define ABILITY_MEGA_LAUNCHER ABILITY_NONE
#define ABILITY_GRASS_PELT ABILITY_NONE // #define ABILITY_GRASS_PELT ABILITY_NONE
#define ABILITY_SYMBIOSIS ABILITY_NONE // #define ABILITY_SYMBIOSIS ABILITY_NONE
#define ABILITY_TOUGH_CLAWS ABILITY_NONE // #define ABILITY_TOUGH_CLAWS ABILITY_NONE
#define ABILITY_PIXILATE ABILITY_NONE // #define ABILITY_PIXILATE ABILITY_NONE
#define ABILITY_GOOEY ABILITY_NONE // #define ABILITY_GOOEY ABILITY_NONE
#define ABILITY_AERILATE ABILITY_NONE // #define ABILITY_AERILATE ABILITY_NONE
#define ABILITY_PARENTAL_BOND ABILITY_NONE // #define ABILITY_PARENTAL_BOND ABILITY_NONE
#define ABILITY_DARK_AURA ABILITY_NONE // #define ABILITY_DARK_AURA ABILITY_NONE
#define ABILITY_FAIRY_AURA ABILITY_NONE // #define ABILITY_FAIRY_AURA ABILITY_NONE
#define ABILITY_AURA_BREAK ABILITY_NONE // #define ABILITY_AURA_BREAK ABILITY_NONE
#define ABILITY_PRIMORDIAL_SEA ABILITY_NONE // #define ABILITY_PRIMORDIAL_SEA ABILITY_NONE
#define ABILITY_DESOLATE_LAND ABILITY_NONE // #define ABILITY_DESOLATE_LAND ABILITY_NONE
#define ABILITY_DELTA_STREAM ABILITY_NONE // #define ABILITY_DELTA_STREAM ABILITY_NONE
// Gen 7 // // Gen 7
#define ABILITY_STAMINA ABILITY_NONE // #define ABILITY_STAMINA ABILITY_NONE
#define ABILITY_WIMP_OUT ABILITY_NONE // #define ABILITY_WIMP_OUT ABILITY_NONE
#define ABILITY_EMERGENCY_EXIT ABILITY_NONE // #define ABILITY_EMERGENCY_EXIT ABILITY_NONE
#define ABILITY_WATER_COMPACTION ABILITY_NONE // #define ABILITY_WATER_COMPACTION ABILITY_NONE
#define ABILITY_MERCILESS ABILITY_NONE // #define ABILITY_MERCILESS ABILITY_NONE
#define ABILITY_SHIELDS_DOWN ABILITY_NONE // #define ABILITY_SHIELDS_DOWN ABILITY_NONE
#define ABILITY_STAKEOUT ABILITY_NONE // #define ABILITY_STAKEOUT ABILITY_NONE
#define ABILITY_WATER_BUBBLE ABILITY_NONE // #define ABILITY_WATER_BUBBLE ABILITY_NONE
#define ABILITY_STEELWORKER ABILITY_NONE // #define ABILITY_STEELWORKER ABILITY_NONE
#define ABILITY_BERSERK ABILITY_NONE // #define ABILITY_BERSERK ABILITY_NONE
#define ABILITY_SLUSH_RUSH ABILITY_NONE // #define ABILITY_SLUSH_RUSH ABILITY_NONE
#define ABILITY_LONG_REACH ABILITY_NONE // #define ABILITY_LONG_REACH ABILITY_NONE
#define ABILITY_LIQUID_VOICE ABILITY_NONE // #define ABILITY_LIQUID_VOICE ABILITY_NONE
#define ABILITY_TRIAGE ABILITY_NONE // #define ABILITY_TRIAGE ABILITY_NONE
#define ABILITY_GALVANIZE ABILITY_NONE // #define ABILITY_GALVANIZE ABILITY_NONE
#define ABILITY_SURGE_SURFER ABILITY_NONE // #define ABILITY_SURGE_SURFER ABILITY_NONE
#define ABILITY_SCHOOLING ABILITY_NONE // #define ABILITY_SCHOOLING ABILITY_NONE
#define ABILITY_DISGUISE ABILITY_NONE // #define ABILITY_DISGUISE ABILITY_NONE
#define ABILITY_BATTLE_BOND ABILITY_NONE // #define ABILITY_BATTLE_BOND ABILITY_NONE
#define ABILITY_POWER_CONSTRUCT ABILITY_NONE // #define ABILITY_POWER_CONSTRUCT ABILITY_NONE
#define ABILITY_CORROSION ABILITY_NONE // #define ABILITY_CORROSION ABILITY_NONE
#define ABILITY_COMATOSE ABILITY_NONE // #define ABILITY_COMATOSE ABILITY_NONE
#define ABILITY_QUEENLY_MAJESTY ABILITY_NONE // #define ABILITY_QUEENLY_MAJESTY ABILITY_NONE
#define ABILITY_INNARDS_OUT ABILITY_NONE // #define ABILITY_INNARDS_OUT ABILITY_NONE
#define ABILITY_DANCER ABILITY_NONE // #define ABILITY_DANCER ABILITY_NONE
#define ABILITY_BATTERY ABILITY_NONE // #define ABILITY_BATTERY ABILITY_NONE
#define ABILITY_FLUFFY ABILITY_NONE // #define ABILITY_FLUFFY ABILITY_NONE
#define ABILITY_DAZZLING ABILITY_NONE // #define ABILITY_DAZZLING ABILITY_NONE
#define ABILITY_SOUL_HEART ABILITY_NONE // #define ABILITY_SOUL_HEART ABILITY_NONE
#define ABILITY_TANGLING_HAIR ABILITY_NONE // #define ABILITY_TANGLING_HAIR ABILITY_NONE
#define ABILITY_RECEIVER ABILITY_NONE // #define ABILITY_RECEIVER ABILITY_NONE
#define ABILITY_POWER_OF_ALCHEMY ABILITY_NONE // #define ABILITY_POWER_OF_ALCHEMY ABILITY_NONE
#define ABILITY_BEAST_BOOST ABILITY_NONE // #define ABILITY_BEAST_BOOST ABILITY_NONE
#define ABILITY_RKS_SYSTEM ABILITY_NONE // #define ABILITY_RKS_SYSTEM ABILITY_NONE
#define ABILITY_ELECTRIC_SURGE ABILITY_NONE // #define ABILITY_ELECTRIC_SURGE ABILITY_NONE
#define ABILITY_PSYCHIC_SURGE ABILITY_NONE // #define ABILITY_PSYCHIC_SURGE ABILITY_NONE
#define ABILITY_MISTY_SURGE ABILITY_NONE // #define ABILITY_MISTY_SURGE ABILITY_NONE
#define ABILITY_GRASSY_SURGE ABILITY_NONE // #define ABILITY_GRASSY_SURGE ABILITY_NONE
#define ABILITY_FULL_METAL_BODY ABILITY_NONE // #define ABILITY_FULL_METAL_BODY ABILITY_NONE
#define ABILITY_SHADOW_SHIELD ABILITY_NONE // #define ABILITY_SHADOW_SHIELD ABILITY_NONE
#define ABILITY_PRISM_ARMOR ABILITY_NONE // #define ABILITY_PRISM_ARMOR ABILITY_NONE
#define ABILITY_NEUROFORCE ABILITY_NONE // #define ABILITY_NEUROFORCE ABILITY_NONE
// Gen 8 // // Gen 8
#define ABILITY_INTREPID_SWORD ABILITY_NONE // #define ABILITY_INTREPID_SWORD ABILITY_NONE
#define ABILITY_DAUNTLESS_SHIELD ABILITY_NONE // #define ABILITY_DAUNTLESS_SHIELD ABILITY_NONE
#define ABILITY_LIBERO ABILITY_NONE // #define ABILITY_LIBERO ABILITY_NONE
#define ABILITY_BALL_FETCH ABILITY_NONE // #define ABILITY_BALL_FETCH ABILITY_NONE
#define ABILITY_COTTON_DOWN ABILITY_NONE // #define ABILITY_COTTON_DOWN ABILITY_NONE
#define ABILITY_PROPELLER_TAIL ABILITY_NONE // #define ABILITY_PROPELLER_TAIL ABILITY_NONE
#define ABILITY_MIRROR_ARMOR ABILITY_NONE // #define ABILITY_MIRROR_ARMOR ABILITY_NONE
#define ABILITY_GULP_MISSILE ABILITY_NONE // #define ABILITY_GULP_MISSILE ABILITY_NONE
#define ABILITY_STALWART ABILITY_NONE // #define ABILITY_STALWART ABILITY_NONE
#define ABILITY_STEAM_ENGINE ABILITY_NONE // #define ABILITY_STEAM_ENGINE ABILITY_NONE
#define ABILITY_PUNK_ROCK ABILITY_NONE // #define ABILITY_PUNK_ROCK ABILITY_NONE
#define ABILITY_SAND_SPIT ABILITY_NONE // #define ABILITY_SAND_SPIT ABILITY_NONE
#define ABILITY_ICE_SCALES ABILITY_NONE // #define ABILITY_ICE_SCALES ABILITY_NONE
#define ABILITY_RIPEN ABILITY_NONE // #define ABILITY_RIPEN ABILITY_NONE
#define ABILITY_ICE_FACE ABILITY_NONE // #define ABILITY_ICE_FACE ABILITY_NONE
#define ABILITY_POWER_SPOT ABILITY_NONE // #define ABILITY_POWER_SPOT ABILITY_NONE
#define ABILITY_MIMICRY ABILITY_NONE // #define ABILITY_MIMICRY ABILITY_NONE
#define ABILITY_SCREEN_CLEANER ABILITY_NONE // #define ABILITY_SCREEN_CLEANER ABILITY_NONE
#define ABILITY_STEELY_SPIRIT ABILITY_NONE // #define ABILITY_STEELY_SPIRIT ABILITY_NONE
#define ABILITY_PERISH_BODY ABILITY_NONE // #define ABILITY_PERISH_BODY ABILITY_NONE
#define ABILITY_WANDERING_SPIRIT ABILITY_NONE // #define ABILITY_WANDERING_SPIRIT ABILITY_NONE
#define ABILITY_GORILLA_TACTICS ABILITY_NONE // #define ABILITY_GORILLA_TACTICS ABILITY_NONE
#define ABILITY_NEUTRALIZING_GAS ABILITY_NONE // #define ABILITY_NEUTRALIZING_GAS ABILITY_NONE
#define ABILITY_PASTEL_VEIL ABILITY_NONE // #define ABILITY_PASTEL_VEIL ABILITY_NONE
#define ABILITY_HUNGER_SWITCH ABILITY_NONE // #define ABILITY_HUNGER_SWITCH ABILITY_NONE
#define ABILITY_QUICK_DRAW ABILITY_NONE // #define ABILITY_QUICK_DRAW ABILITY_NONE
#define ABILITY_UNSEEN_FIST ABILITY_NONE // #define ABILITY_UNSEEN_FIST ABILITY_NONE
#define ABILITY_CURIOUS_MEDICINE ABILITY_NONE // #define ABILITY_CURIOUS_MEDICINE ABILITY_NONE
#define ABILITY_TRANSISTOR ABILITY_NONE // #define ABILITY_TRANSISTOR ABILITY_NONE
#define ABILITY_DRAGONS_MAW ABILITY_NONE // #define ABILITY_DRAGONS_MAW ABILITY_NONE
#define ABILITY_CHILLING_NEIGH ABILITY_NONE // #define ABILITY_CHILLING_NEIGH ABILITY_NONE
#define ABILITY_GRIM_NEIGH ABILITY_NONE // #define ABILITY_GRIM_NEIGH ABILITY_NONE
#define ABILITY_AS_ONE_ICE_RIDER ABILITY_NONE // #define ABILITY_AS_ONE_ICE_RIDER ABILITY_NONE
#define ABILITY_AS_ONE_SHADOW_RIDER ABILITY_NONE // #define ABILITY_AS_ONE_SHADOW_RIDER ABILITY_NONE
#endif // BATTLE_ENGINE // #endif // BATTLE_ENGINE
#endif // GUARD_CONSTANTS_POKEMON_CONFIG_H #endif // GUARD_CONSTANTS_POKEMON_CONFIG_H

View File

@ -781,11 +781,7 @@ static u8 GetAI_ItemType(u16 itemId, const u8 *itemEffect)
return AI_ITEM_HEAL_HP; return AI_ITEM_HEAL_HP;
else if (itemEffect[3] & ITEM3_STATUS_ALL) else if (itemEffect[3] & ITEM3_STATUS_ALL)
return AI_ITEM_CURE_CONDITION; return AI_ITEM_CURE_CONDITION;
#ifdef ITEM_EXPANSION
else if ((itemEffect[0] & ITEM0_DIRE_HIT) || itemEffect[1]) else if ((itemEffect[0] & ITEM0_DIRE_HIT) || itemEffect[1])
#else
else if (itemEffect[0] & (ITEM0_DIRE_HIT | ITEM0_X_ATTACK) || itemEffect[1] != 0 || itemEffect[2] != 0)
#endif
return AI_ITEM_X_STAT; return AI_ITEM_X_STAT;
else if (itemEffect[3] & ITEM3_GUARD_SPEC) else if (itemEffect[3] & ITEM3_GUARD_SPEC)
return AI_ITEM_GUARD_SPEC; return AI_ITEM_GUARD_SPEC;
@ -913,20 +909,6 @@ static bool8 ShouldUseItem(void)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) = 0; *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) = 0;
if (gDisableStructs[gActiveBattler].isFirstTurn == 0) if (gDisableStructs[gActiveBattler].isFirstTurn == 0)
break; break;
#ifndef ITEM_EXPANSION
if (itemEffects[0] & ITEM0_X_ATTACK)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ATTACK);
if (itemEffects[1] & ITEM1_X_DEFEND)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_DEFEND);
if (itemEffects[1] & ITEM1_X_SPEED)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_SPEED);
if (itemEffects[2] & ITEM2_X_SPATK)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_SPATK);
if (itemEffects[2] & ITEM2_X_ACCURACY)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ACCURACY);
if (itemEffects[0] & ITEM0_DIRE_HIT)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_DIRE_HIT);
#else
if (itemEffects[1] & ITEM1_X_ATTACK) if (itemEffects[1] & ITEM1_X_ATTACK)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ATTACK); *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ATTACK);
if (itemEffects[1] & ITEM1_X_DEFENSE) if (itemEffects[1] & ITEM1_X_DEFENSE)
@ -941,7 +923,6 @@ static bool8 ShouldUseItem(void)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ACCURACY); *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_X_ACCURACY);
if (itemEffects[0] & ITEM0_DIRE_HIT) if (itemEffects[0] & ITEM0_DIRE_HIT)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_DIRE_HIT); *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= (1 << AI_DIRE_HIT);
#endif
shouldUse = TRUE; shouldUse = TRUE;
break; break;
case AI_ITEM_GUARD_SPEC: case AI_ITEM_GUARD_SPEC:

View File

@ -3357,9 +3357,7 @@ static const u16 sRecycleEncouragedItems[] =
ITEM_MICLE_BERRY, ITEM_MICLE_BERRY,
ITEM_CUSTAP_BERRY, ITEM_CUSTAP_BERRY,
ITEM_MENTAL_HERB, ITEM_MENTAL_HERB,
#ifdef ITEM_EXPANSION
ITEM_FOCUS_SASH, ITEM_FOCUS_SASH,
#endif
// TODO expand this // TODO expand this
}; };
@ -3375,9 +3373,7 @@ bool32 IsStatBoostingBerry(u16 item)
case ITEM_APICOT_BERRY: case ITEM_APICOT_BERRY:
//case ITEM_LANSAT_BERRY: //case ITEM_LANSAT_BERRY:
case ITEM_STARF_BERRY: case ITEM_STARF_BERRY:
#ifdef ITEM_EXPANSION
case ITEM_MICLE_BERRY: case ITEM_MICLE_BERRY:
#endif
return TRUE; return TRUE;
default: default:
return FALSE; return FALSE;
@ -3619,12 +3615,10 @@ bool32 ShouldUseZMove(u8 battlerAtk, u8 battlerDef, u16 chosenMove)
{ {
u8 effectiveness; u8 effectiveness;
#ifdef POKEMON_EXPANSION
if (gBattleMons[battlerDef].ability == ABILITY_DISGUISE && gBattleMons[battlerDef].species == SPECIES_MIMIKYU) if (gBattleMons[battlerDef].ability == ABILITY_DISGUISE && gBattleMons[battlerDef].species == SPECIES_MIMIKYU)
return FALSE; // Don't waste a Z-Move busting disguise return FALSE; // Don't waste a Z-Move busting disguise
if (gBattleMons[battlerDef].ability == ABILITY_ICE_FACE && gBattleMons[battlerDef].species == SPECIES_EISCUE && IS_MOVE_PHYSICAL(chosenMove)) if (gBattleMons[battlerDef].ability == ABILITY_ICE_FACE && gBattleMons[battlerDef].species == SPECIES_EISCUE && IS_MOVE_PHYSICAL(chosenMove))
return FALSE; // Don't waste a Z-Move busting Ice Face return FALSE; // Don't waste a Z-Move busting Ice Face
#endif
if (IS_MOVE_STATUS(chosenMove) && !IS_MOVE_STATUS(gBattleStruct->zmove.chosenZMove)) if (IS_MOVE_STATUS(chosenMove) && !IS_MOVE_STATUS(gBattleStruct->zmove.chosenZMove))
return FALSE; return FALSE;

View File

@ -7712,12 +7712,9 @@ void AnimTask_GetTimeOfDay(u8 taskId)
void AnimTask_GetLycanrocForm(u8 taskId) void AnimTask_GetLycanrocForm(u8 taskId)
{ {
#ifdef POKEMON_EXPANSION
if (GetMonData(GetIllusionMonPtr(gBattleAnimAttacker), MON_DATA_SPECIES) == SPECIES_LYCANROC_MIDNIGHT) if (GetMonData(GetIllusionMonPtr(gBattleAnimAttacker), MON_DATA_SPECIES) == SPECIES_LYCANROC_MIDNIGHT)
gBattleAnimArgs[0] = 1; gBattleAnimArgs[0] = 1;
else else
#endif
gBattleAnimArgs[0] = 0; gBattleAnimArgs[0] = 0;
gBattleAnimArgs[0] = 0; gBattleAnimArgs[0] = 0;

View File

@ -771,15 +771,9 @@ static void Task_ShowAiPoints(u8 taskId)
{ {
if (i != data->aiBattlerId && IsBattlerAlive(i)) if (i != data->aiBattlerId && IsBattlerAlive(i))
{ {
#ifndef POKEMON_EXPANSION
data->aiIconSpriteIds[i] = CreateMonIcon(gBattleMons[i].species,
SpriteCallbackDummy,
95 + (count * 60), 17, 0, 0, FALSE);
#else
data->aiIconSpriteIds[i] = CreateMonIcon(gBattleMons[i].species, data->aiIconSpriteIds[i] = CreateMonIcon(gBattleMons[i].species,
SpriteCallbackDummy, SpriteCallbackDummy,
95 + (count * 60), 17, 0, 0); 95 + (count * 60), 17, 0, 0);
#endif
gSprites[data->aiIconSpriteIds[i]].data[0] = i; // battler id gSprites[data->aiIconSpriteIds[i]].data[0] = i; // battler id
count++; count++;
} }
@ -788,19 +782,11 @@ static void Task_ShowAiPoints(u8 taskId)
data->aiIconSpriteIds[i] = 0xFF; data->aiIconSpriteIds[i] = 0xFF;
} }
} }
#ifndef POKEMON_EXPANSION
data->aiMonSpriteId = CreateMonPicSprite_HandleDeoxys(gBattleMons[data->aiBattlerId].species,
gBattleMons[data->aiBattlerId].otId,
gBattleMons[data->aiBattlerId].personality,
TRUE,
39, 130, 15, TAG_NONE);
#else
data->aiMonSpriteId = CreateMonPicSprite(gBattleMons[data->aiBattlerId].species, data->aiMonSpriteId = CreateMonPicSprite(gBattleMons[data->aiBattlerId].species,
gBattleMons[data->aiBattlerId].otId, gBattleMons[data->aiBattlerId].otId,
gBattleMons[data->aiBattlerId].personality, gBattleMons[data->aiBattlerId].personality,
TRUE, TRUE,
39, 130, 15, TAG_NONE); 39, 130, 15, TAG_NONE);
#endif
data->aiViewState++; data->aiViewState++;
break; break;
// Put text // Put text
@ -894,15 +880,9 @@ static void Task_ShowAiKnowledge(u8 taskId)
{ {
if (GET_BATTLER_SIDE(i) == B_SIDE_PLAYER && IsBattlerAlive(i)) if (GET_BATTLER_SIDE(i) == B_SIDE_PLAYER && IsBattlerAlive(i))
{ {
#ifndef POKEMON_EXPANSION
data->aiIconSpriteIds[i] = CreateMonIcon(gBattleMons[i].species,
SpriteCallbackDummy,
95 + (count * 80), 17, 0, 0, FALSE);
#else
data->aiIconSpriteIds[i] = CreateMonIcon(gBattleMons[i].species, data->aiIconSpriteIds[i] = CreateMonIcon(gBattleMons[i].species,
SpriteCallbackDummy, SpriteCallbackDummy,
95 + (count * 80), 17, 0, 0); 95 + (count * 80), 17, 0, 0);
#endif
gSprites[data->aiIconSpriteIds[i]].data[0] = i; // battler id gSprites[data->aiIconSpriteIds[i]].data[0] = i; // battler id
count++; count++;
} }
@ -911,19 +891,11 @@ static void Task_ShowAiKnowledge(u8 taskId)
data->aiIconSpriteIds[i] = 0xFF; data->aiIconSpriteIds[i] = 0xFF;
} }
} }
#ifndef POKEMON_EXPANSION
data->aiMonSpriteId = CreateMonPicSprite_HandleDeoxys(gBattleMons[data->aiBattlerId].species,
gBattleMons[data->aiBattlerId].otId,
gBattleMons[data->aiBattlerId].personality,
TRUE,
39, 130, 15, TAG_NONE);
#else
data->aiMonSpriteId = CreateMonPicSprite(gBattleMons[data->aiBattlerId].species, data->aiMonSpriteId = CreateMonPicSprite(gBattleMons[data->aiBattlerId].species,
gBattleMons[data->aiBattlerId].otId, gBattleMons[data->aiBattlerId].otId,
gBattleMons[data->aiBattlerId].personality, gBattleMons[data->aiBattlerId].personality,
TRUE, TRUE,
39, 130, 15, TAG_NONE); 39, 130, 15, TAG_NONE);
#endif
data->aiViewState++; data->aiViewState++;
break; break;
// Put text // Put text
@ -1953,20 +1925,12 @@ static const u8 sText_HoldEffectPsychicPower[] = _("Psychic Power");
static const u8 sText_HoldEffectFirePower[] = _("Fire Power"); static const u8 sText_HoldEffectFirePower[] = _("Fire Power");
static const u8 sText_HoldEffectDragonPower[] = _("Dragon Power"); static const u8 sText_HoldEffectDragonPower[] = _("Dragon Power");
static const u8 sText_HoldEffectNormalPower[] = _("Normal Power"); static const u8 sText_HoldEffectNormalPower[] = _("Normal Power");
#ifdef ITEM_EXPANSION
static const u8 sText_HoldEffectUpgrade[] = _("Upgrade"); static const u8 sText_HoldEffectUpgrade[] = _("Upgrade");
#else
static const u8 sText_HoldEffectUpgrade[] = _("Up Grade");
#endif
static const u8 sText_HoldEffectShellBell[] = _("Shell Bell"); static const u8 sText_HoldEffectShellBell[] = _("Shell Bell");
static const u8 sText_HoldEffectLuckyPunch[] = _("Lucky Punch"); static const u8 sText_HoldEffectLuckyPunch[] = _("Lucky Punch");
static const u8 sText_HoldEffectMetalPowder[] = _("Metal Powder"); static const u8 sText_HoldEffectMetalPowder[] = _("Metal Powder");
static const u8 sText_HoldEffectThickClub[] = _("Thick Club"); static const u8 sText_HoldEffectThickClub[] = _("Thick Club");
#ifdef ITEM_EXPANSION
static const u8 sText_HoldEffectLeek[] = _("Leek"); static const u8 sText_HoldEffectLeek[] = _("Leek");
#else
static const u8 sText_HoldEffectLeek[] = _("Stick");
#endif
static const u8 sText_HoldEffectChoiceScarf[] = _("Choice Scarf"); static const u8 sText_HoldEffectChoiceScarf[] = _("Choice Scarf");
static const u8 sText_HoldEffectChoiceSpecs[] = _("Choice Specs"); static const u8 sText_HoldEffectChoiceSpecs[] = _("Choice Specs");
static const u8 sText_HoldEffectDampRock[] = _("Damp Rock"); static const u8 sText_HoldEffectDampRock[] = _("Damp Rock");

View File

@ -5197,11 +5197,7 @@ static void TrySpecialEvolution(void) // Attempts to perform non-level related b
for (i = 0; i < PARTY_SIZE; i++) for (i = 0; i < PARTY_SIZE; i++)
{ {
#ifndef POKEMON_EXPANSION u16 species = GetEvolutionTargetSpecies(&gPlayerParty[i], EVO_MODE_BATTLE_SPECIAL, i, NULL);
u16 species = GetEvolutionTargetSpecies(&gPlayerParty[i], EVO_MODE_BATTLE_SPECIAL, i);
#else
u16 species = GetEvolutionTargetSpecies(&gPlayerParty[i], EVO_MODE_BATTLE_SPECIAL, i, NULL);
#endif
if (species != SPECIES_NONE && !(sTriedEvolving & gBitTable[i])) if (species != SPECIES_NONE && !(sTriedEvolving & gBitTable[i]))
{ {
sTriedEvolving |= gBitTable[i]; sTriedEvolving |= gBitTable[i];

View File

@ -13631,7 +13631,6 @@ static void Cmd_handleballthrow(void)
else else
catchRate = gBaseStats[gBattleMons[gBattlerTarget].species].catchRate; catchRate = gBaseStats[gBattleMons[gBattlerTarget].species].catchRate;
#if defined POKEMON_EXPANSION && defined ITEM_EXPANSION
if (gBaseStats[gBattleMons[gBattlerTarget].species].flags & FLAG_ULTRA_BEAST) if (gBaseStats[gBattleMons[gBattlerTarget].species].flags & FLAG_ULTRA_BEAST)
{ {
if (gLastUsedItem == ITEM_BEAST_BALL) if (gLastUsedItem == ITEM_BEAST_BALL)
@ -13641,177 +13640,168 @@ static void Cmd_handleballthrow(void)
} }
else else
{ {
#endif switch (gLastUsedItem)
{
switch (gLastUsedItem) case ITEM_ULTRA_BALL:
{
case ITEM_ULTRA_BALL:
ballMultiplier = 20;
case ITEM_GREAT_BALL:
case ITEM_SAFARI_BALL:
#ifdef ITEM_EXPANSION
case ITEM_SPORT_BALL:
#endif
ballMultiplier = 15;
case ITEM_NET_BALL:
if (IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_WATER) || IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_BUG))
#if B_NET_BALL_MODIFIER >= GEN_7
ballMultiplier = 50;
#else
ballMultiplier = 30;
#endif
break;
case ITEM_DIVE_BALL:
#if B_DIVE_BALL_MODIFIER >= GEN_4
if (GetCurrentMapType() == MAP_TYPE_UNDERWATER || gIsFishingEncounter || gIsSurfingEncounter)
ballMultiplier = 35;
#else
if (GetCurrentMapType() == MAP_TYPE_UNDERWATER)
ballMultiplier = 35;
#endif
break;
case ITEM_NEST_BALL:
#if B_NEST_BALL_MODIFIER >= GEN_6
//((41 - Pokémon's level) ÷ 10)× if Pokémon's level is between 1 and 29, 1× otherwise.
if (gBattleMons[gBattlerTarget].level < 30)
ballMultiplier = 41 - gBattleMons[gBattlerTarget].level;
#elif B_NEST_BALL_MODIFIER == GEN_5
//((41 - Pokémon's level) ÷ 10)×, minimum 1×
if (gBattleMons[gBattlerTarget].level < 31)
ballMultiplier = 41 - gBattleMons[gBattlerTarget].level;
#else
//((40 - Pokémon's level) ÷ 10)×, minimum 1×
if (gBattleMons[gBattlerTarget].level < 40)
{
ballMultiplier = 40 - gBattleMons[gBattlerTarget].level;
if (ballMultiplier <= 9)
ballMultiplier = 10;
}
#endif
break;
case ITEM_REPEAT_BALL:
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), FLAG_GET_CAUGHT))
#if B_REPEAT_BALL_MODIFIER >= GEN_7
ballMultiplier = 35;
#else
ballMultiplier = 30;
#endif
break;
case ITEM_TIMER_BALL:
#if B_TIMER_BALL_MODIFIER >= GEN_5
ballMultiplier = (gBattleResults.battleTurnCounter * 3) + 10;
#else
ballMultiplier = gBattleResults.battleTurnCounter + 10;
#endif
if (ballMultiplier > 40)
ballMultiplier = 40;
break;
#ifdef ITEM_EXPANSION
case ITEM_DUSK_BALL:
RtcCalcLocalTime();
if ((gLocalTime.hours >= 20 && gLocalTime.hours <= 3) || gMapHeader.cave || gMapHeader.mapType == MAP_TYPE_UNDERGROUND)
#if B_DUSK_BALL_MODIFIER >= GEN_7
ballMultiplier = 30;
#else
ballMultiplier = 35;
#endif
break;
case ITEM_QUICK_BALL:
if (gBattleResults.battleTurnCounter == 0)
#if B_QUICK_BALL_MODIFIER >= GEN_5
ballMultiplier = 50;
#else
ballMultiplier = 40;
#endif
break;
case ITEM_LEVEL_BALL:
if (gBattleMons[gBattlerAttacker].level >= 4 * gBattleMons[gBattlerTarget].level)
ballMultiplier = 80;
else if (gBattleMons[gBattlerAttacker].level > 2 * gBattleMons[gBattlerTarget].level)
ballMultiplier = 40;
else if (gBattleMons[gBattlerAttacker].level > gBattleMons[gBattlerTarget].level)
ballMultiplier = 20; ballMultiplier = 20;
break; case ITEM_GREAT_BALL:
case ITEM_LURE_BALL: case ITEM_SAFARI_BALL:
if (gIsFishingEncounter) case ITEM_SPORT_BALL:
#if B_LURE_BALL_MODIFIER >= GEN_7 ballMultiplier = 15;
ballMultiplier = 50; case ITEM_NET_BALL:
if (IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_WATER) || IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_BUG))
#if B_NET_BALL_MODIFIER >= GEN_7
ballMultiplier = 50;
#else
ballMultiplier = 30;
#endif
break;
case ITEM_DIVE_BALL:
#if B_DIVE_BALL_MODIFIER >= GEN_4
if (GetCurrentMapType() == MAP_TYPE_UNDERWATER || gIsFishingEncounter || gIsSurfingEncounter)
ballMultiplier = 35;
#else #else
ballMultiplier = 30; if (GetCurrentMapType() == MAP_TYPE_UNDERWATER)
ballMultiplier = 35;
#endif #endif
break; break;
case ITEM_MOON_BALL: case ITEM_NEST_BALL:
for (i = 0; i < EVOS_PER_MON; i++) #if B_NEST_BALL_MODIFIER >= GEN_6
{ //((41 - Pokémon's level) ÷ 10)× if Pokémon's level is between 1 and 29, 1× otherwise.
if (gEvolutionTable[gBattleMons[gBattlerTarget].species][i].method == EVO_ITEM if (gBattleMons[gBattlerTarget].level < 30)
&& gEvolutionTable[gBattleMons[gBattlerTarget].species][i].param == ITEM_MOON_STONE) ballMultiplier = 41 - gBattleMons[gBattlerTarget].level;
#elif B_NEST_BALL_MODIFIER == GEN_5
//((41 - Pokémon's level) ÷ 10)×, minimum 1×
if (gBattleMons[gBattlerTarget].level < 31)
ballMultiplier = 41 - gBattleMons[gBattlerTarget].level;
#else
//((40 - Pokémon's level) ÷ 10)×, minimum 1×
if (gBattleMons[gBattlerTarget].level < 40)
{
ballMultiplier = 40 - gBattleMons[gBattlerTarget].level;
if (ballMultiplier <= 9)
ballMultiplier = 10;
}
#endif
break;
case ITEM_REPEAT_BALL:
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), FLAG_GET_CAUGHT))
#if B_REPEAT_BALL_MODIFIER >= GEN_7
ballMultiplier = 35;
#else
ballMultiplier = 30;
#endif
break;
case ITEM_TIMER_BALL:
#if B_TIMER_BALL_MODIFIER >= GEN_5
ballMultiplier = (gBattleResults.battleTurnCounter * 3) + 10;
#else
ballMultiplier = gBattleResults.battleTurnCounter + 10;
#endif
if (ballMultiplier > 40)
ballMultiplier = 40; ballMultiplier = 40;
} break;
break; case ITEM_DUSK_BALL:
case ITEM_LOVE_BALL: RtcCalcLocalTime();
if (gBattleMons[gBattlerTarget].species == gBattleMons[gBattlerAttacker].species) if ((gLocalTime.hours >= 20 && gLocalTime.hours <= 3) || gMapHeader.cave || gMapHeader.mapType == MAP_TYPE_UNDERGROUND)
{ #if B_DUSK_BALL_MODIFIER >= GEN_7
u8 gender1 = GetMonGender(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]); ballMultiplier = 30;
u8 gender2 = GetMonGender(&gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]]); #else
ballMultiplier = 35;
if (gender1 != gender2 && gender1 != MON_GENDERLESS && gender2 != MON_GENDERLESS) #endif
break;
case ITEM_QUICK_BALL:
if (gBattleResults.battleTurnCounter == 0)
#if B_QUICK_BALL_MODIFIER >= GEN_5
ballMultiplier = 50;
#else
ballMultiplier = 40;
#endif
break;
case ITEM_LEVEL_BALL:
if (gBattleMons[gBattlerAttacker].level >= 4 * gBattleMons[gBattlerTarget].level)
ballMultiplier = 80; ballMultiplier = 80;
} else if (gBattleMons[gBattlerAttacker].level > 2 * gBattleMons[gBattlerTarget].level)
break;
case ITEM_FAST_BALL:
if (gBaseStats[gBattleMons[gBattlerTarget].species].baseSpeed >= 100)
ballMultiplier = 40;
break;
case ITEM_HEAVY_BALL:
i = GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), 1);
#if B_HEAVY_BALL_MODIFIER >= GEN_7
if (i < 1000)
ballAddition = -20;
else if (i < 2000)
ballAddition = 0;
else if (i < 3000)
ballAddition = 20;
else
ballAddition = 30;
#elif B_HEAVY_BALL_MODIFIER >= GEN_4
if (i < 2048)
ballAddition = -20;
else if (i < 3072)
ballAddition = 20;
else if (i < 4096)
ballAddition = 30;
else
ballAddition = 40;
#else
if (i < 1024)
ballAddition = -20;
else if (i < 2048)
ballAddition = 0;
else if (i < 3072)
ballAddition = 20;
else if (i < 4096)
ballAddition = 30;
else
ballAddition = 40;
#endif
break;
case ITEM_DREAM_BALL:
#if B_DREAM_BALL_MODIFIER >= GEN_8
if (gBattleMons[gBattlerTarget].status1 & STATUS1_SLEEP || GetBattlerAbility(gBattlerTarget) == ABILITY_COMATOSE)
ballMultiplier = 40; ballMultiplier = 40;
#else else if (gBattleMons[gBattlerAttacker].level > gBattleMons[gBattlerTarget].level)
ballMultiplier = 10; ballMultiplier = 20;
#endif break;
break; case ITEM_LURE_BALL:
case ITEM_BEAST_BALL: if (gIsFishingEncounter)
ballMultiplier = 1; #if B_LURE_BALL_MODIFIER >= GEN_7
break; ballMultiplier = 50;
#endif #else
} ballMultiplier = 30;
#endif
break;
case ITEM_MOON_BALL:
for (i = 0; i < EVOS_PER_MON; i++)
{
if (gEvolutionTable[gBattleMons[gBattlerTarget].species][i].method == EVO_ITEM
&& gEvolutionTable[gBattleMons[gBattlerTarget].species][i].param == ITEM_MOON_STONE)
ballMultiplier = 40;
}
break;
case ITEM_LOVE_BALL:
if (gBattleMons[gBattlerTarget].species == gBattleMons[gBattlerAttacker].species)
{
u8 gender1 = GetMonGender(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]);
u8 gender2 = GetMonGender(&gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]]);
#if defined POKEMON_EXPANSION && defined ITEM_EXPANSION if (gender1 != gender2 && gender1 != MON_GENDERLESS && gender2 != MON_GENDERLESS)
ballMultiplier = 80;
}
break;
case ITEM_FAST_BALL:
if (gBaseStats[gBattleMons[gBattlerTarget].species].baseSpeed >= 100)
ballMultiplier = 40;
break;
case ITEM_HEAVY_BALL:
i = GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), 1);
#if B_HEAVY_BALL_MODIFIER >= GEN_7
if (i < 1000)
ballAddition = -20;
else if (i < 2000)
ballAddition = 0;
else if (i < 3000)
ballAddition = 20;
else
ballAddition = 30;
#elif B_HEAVY_BALL_MODIFIER >= GEN_4
if (i < 2048)
ballAddition = -20;
else if (i < 3072)
ballAddition = 20;
else if (i < 4096)
ballAddition = 30;
else
ballAddition = 40;
#else
if (i < 1024)
ballAddition = -20;
else if (i < 2048)
ballAddition = 0;
else if (i < 3072)
ballAddition = 20;
else if (i < 4096)
ballAddition = 30;
else
ballAddition = 40;
#endif
break;
case ITEM_DREAM_BALL:
#if B_DREAM_BALL_MODIFIER >= GEN_8
if (gBattleMons[gBattlerTarget].status1 & STATUS1_SLEEP || GetBattlerAbility(gBattlerTarget) == ABILITY_COMATOSE)
ballMultiplier = 40;
#else
ballMultiplier = 10;
#endif
break;
case ITEM_BEAST_BALL:
ballMultiplier = 1;
break;
}
} }
#endif
// catchRate is unsigned, which means that it may potentially overflow if sum is applied directly. // catchRate is unsigned, which means that it may potentially overflow if sum is applied directly.
if (catchRate < 21 && ballAddition == -20) if (catchRate < 21 && ballAddition == -20)
@ -13844,7 +13834,6 @@ static void Cmd_handleballthrow(void)
else else
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = 1;
#ifdef ITEM_EXPANSION
if (gLastUsedItem == ITEM_HEAL_BALL) if (gLastUsedItem == ITEM_HEAL_BALL)
{ {
MonRestorePP(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]); MonRestorePP(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]);
@ -13852,7 +13841,6 @@ static void Cmd_handleballthrow(void)
gBattleMons[gBattlerTarget].hp = gBattleMons[gBattlerTarget].maxHP; gBattleMons[gBattlerTarget].hp = gBattleMons[gBattlerTarget].maxHP;
SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_HP, &gBattleMons[gBattlerTarget].hp); SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_HP, &gBattleMons[gBattlerTarget].hp);
} }
#endif
} }
else // mon may be caught, calculate shakes else // mon may be caught, calculate shakes
{ {
@ -13900,7 +13888,6 @@ static void Cmd_handleballthrow(void)
else else
gBattleCommunication[MULTISTRING_CHOOSER] = 1; gBattleCommunication[MULTISTRING_CHOOSER] = 1;
#ifdef ITEM_EXPANSION
if (gLastUsedItem == ITEM_HEAL_BALL) if (gLastUsedItem == ITEM_HEAL_BALL)
{ {
MonRestorePP(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]); MonRestorePP(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]);
@ -13908,7 +13895,6 @@ static void Cmd_handleballthrow(void)
gBattleMons[gBattlerTarget].hp = gBattleMons[gBattlerTarget].maxHP; gBattleMons[gBattlerTarget].hp = gBattleMons[gBattlerTarget].maxHP;
SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_HP, &gBattleMons[gBattlerTarget].hp); SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_HP, &gBattleMons[gBattlerTarget].hp);
} }
#endif
} }
else // not caught else // not caught
{ {
@ -14201,13 +14187,13 @@ static const u16 sTelekinesisBanList[] =
{ {
SPECIES_DIGLETT, SPECIES_DIGLETT,
SPECIES_DUGTRIO, SPECIES_DUGTRIO,
#ifdef POKEMON_EXPANSION // #ifdef NEW_POKEMON
SPECIES_DIGLETT_ALOLAN, SPECIES_DIGLETT_ALOLAN,
SPECIES_DUGTRIO_ALOLAN, SPECIES_DUGTRIO_ALOLAN,
SPECIES_SANDYGAST, SPECIES_SANDYGAST,
SPECIES_PALOSSAND, SPECIES_PALOSSAND,
SPECIES_GENGAR_MEGA, SPECIES_GENGAR_MEGA,
#endif // #endif
}; };
bool32 IsTelekinesisBannedSpecies(u16 species) bool32 IsTelekinesisBannedSpecies(u16 species)

View File

@ -9445,12 +9445,10 @@ bool32 CanMegaEvolve(u8 battlerId)
u8 partnerPosition = GetBattlerPosition(BATTLE_PARTNER(battlerId)); u8 partnerPosition = GetBattlerPosition(BATTLE_PARTNER(battlerId));
struct MegaEvolutionData *mega = &(((struct ChooseMoveStruct*)(&gBattleResources->bufferA[gActiveBattler][4]))->mega); struct MegaEvolutionData *mega = &(((struct ChooseMoveStruct*)(&gBattleResources->bufferA[gActiveBattler][4]))->mega);
#ifdef ITEM_EXPANSION
// Check if Player has a Mega Ring // Check if Player has a Mega Ring
if ((GetBattlerPosition(battlerId) == B_POSITION_PLAYER_LEFT || (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && GetBattlerPosition(battlerId) == B_POSITION_PLAYER_RIGHT)) if ((GetBattlerPosition(battlerId) == B_POSITION_PLAYER_LEFT || (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && GetBattlerPosition(battlerId) == B_POSITION_PLAYER_RIGHT))
&& !CheckBagHasItem(ITEM_MEGA_RING, 1)) && !CheckBagHasItem(ITEM_MEGA_RING, 1))
return FALSE; return FALSE;
#endif
// Check if trainer already mega evolved a pokemon. // Check if trainer already mega evolved a pokemon.
if (mega->alreadyEvolved[battlerPosition]) if (mega->alreadyEvolved[battlerPosition])
@ -9483,13 +9481,8 @@ bool32 CanMegaEvolve(u8 battlerId)
{ {
if (B_ENABLE_DEBUG && gBattleStruct->debugHoldEffects[battlerId]) if (B_ENABLE_DEBUG && gBattleStruct->debugHoldEffects[battlerId])
holdEffect = gBattleStruct->debugHoldEffects[battlerId]; holdEffect = gBattleStruct->debugHoldEffects[battlerId];
#ifdef ITEM_EXPANSION
else if (itemId == ITEM_ENIGMA_BERRY_E_READER) else if (itemId == ITEM_ENIGMA_BERRY_E_READER)
holdEffect = gEnigmaBerries[battlerId].holdEffect; holdEffect = gEnigmaBerries[battlerId].holdEffect;
#else
else if (itemId == ITEM_ENIGMA_BERRY)
holdEffect = gEnigmaBerries[battlerId].holdEffect;
#endif
else else
holdEffect = ItemId_GetHoldEffect(itemId); holdEffect = ItemId_GetHoldEffect(itemId);

View File

@ -58,7 +58,7 @@ static u8 GetZMoveScore(u8 battlerAtk, u8 battlerDef, u16 baseMove, u16 zMove);
// Const Data // Const Data
static const struct SignatureZMove sSignatureZMoves[] = static const struct SignatureZMove sSignatureZMoves[] =
{ {
#ifdef POKEMON_EXPANSION // #ifdef NEW_POKEMON
{SPECIES_PIKACHU_COSPLAY, ITEM_PIKANIUM_Z, MOVE_VOLT_TACKLE, MOVE_CATASTROPIKA}, {SPECIES_PIKACHU_COSPLAY, ITEM_PIKANIUM_Z, MOVE_VOLT_TACKLE, MOVE_CATASTROPIKA},
{SPECIES_PIKACHU_ROCK_STAR, ITEM_PIKANIUM_Z, MOVE_VOLT_TACKLE, MOVE_CATASTROPIKA}, {SPECIES_PIKACHU_ROCK_STAR, ITEM_PIKANIUM_Z, MOVE_VOLT_TACKLE, MOVE_CATASTROPIKA},
{SPECIES_PIKACHU_BELLE, ITEM_PIKANIUM_Z, MOVE_VOLT_TACKLE, MOVE_CATASTROPIKA}, {SPECIES_PIKACHU_BELLE, ITEM_PIKANIUM_Z, MOVE_VOLT_TACKLE, MOVE_CATASTROPIKA},
@ -95,7 +95,7 @@ static const struct SignatureZMove sSignatureZMoves[] =
{SPECIES_TAPU_LELE, ITEM_TAPUNIUM_Z, MOVE_NATURES_MADNESS, MOVE_GUARDIAN_OF_ALOLA}, {SPECIES_TAPU_LELE, ITEM_TAPUNIUM_Z, MOVE_NATURES_MADNESS, MOVE_GUARDIAN_OF_ALOLA},
{SPECIES_TAPU_FINI, ITEM_TAPUNIUM_Z, MOVE_NATURES_MADNESS, MOVE_GUARDIAN_OF_ALOLA}, {SPECIES_TAPU_FINI, ITEM_TAPUNIUM_Z, MOVE_NATURES_MADNESS, MOVE_GUARDIAN_OF_ALOLA},
{SPECIES_NECROZMA_ULTRA, ITEM_ULTRANECROZIUM_Z, MOVE_PHOTON_GEYSER, MOVE_LIGHT_THAT_BURNS_THE_SKY}, {SPECIES_NECROZMA_ULTRA, ITEM_ULTRANECROZIUM_Z, MOVE_PHOTON_GEYSER, MOVE_LIGHT_THAT_BURNS_THE_SKY},
#endif // #endif
{SPECIES_MEW, ITEM_MEWNIUM_Z, MOVE_PSYCHIC, MOVE_GENESIS_SUPERNOVA}, {SPECIES_MEW, ITEM_MEWNIUM_Z, MOVE_PSYCHIC, MOVE_GENESIS_SUPERNOVA},
{SPECIES_PIKACHU, ITEM_PIKANIUM_Z, MOVE_VOLT_TACKLE, MOVE_CATASTROPIKA}, {SPECIES_PIKACHU, ITEM_PIKANIUM_Z, MOVE_VOLT_TACKLE, MOVE_CATASTROPIKA},
{SPECIES_EEVEE, ITEM_EEVIUM_Z, MOVE_LAST_RESORT, MOVE_EXTREME_EVOBOOST}, {SPECIES_EEVEE, ITEM_EEVIUM_Z, MOVE_LAST_RESORT, MOVE_EXTREME_EVOBOOST},

View File

@ -3186,14 +3186,9 @@ const struct Item gItems[] =
.holdEffectParam = 0, .holdEffectParam = 0,
.description = sRedNectarDesc, .description = sRedNectarDesc,
.pocket = POCKET_ITEMS, .pocket = POCKET_ITEMS,
#ifdef POKEMON_EXPANSION .type = ITEM_USE_PARTY_MENU,
.type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_FormChange_ConsumedOnUse,
.fieldUseFunc = ItemUseOutOfBattle_FormChange_ConsumedOnUse, .secondaryId = FORM_ITEM_USE,
.secondaryId = FORM_ITEM_USE,
#else
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
#endif
.flingPower = 10, .flingPower = 10,
}, },
@ -3205,14 +3200,9 @@ const struct Item gItems[] =
.holdEffectParam = 0, .holdEffectParam = 0,
.description = sYellowNectarDesc, .description = sYellowNectarDesc,
.pocket = POCKET_ITEMS, .pocket = POCKET_ITEMS,
#ifdef POKEMON_EXPANSION .type = ITEM_USE_PARTY_MENU,
.type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_FormChange_ConsumedOnUse,
.fieldUseFunc = ItemUseOutOfBattle_FormChange_ConsumedOnUse, .secondaryId = FORM_ITEM_USE,
.secondaryId = FORM_ITEM_USE,
#else
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
#endif
.flingPower = 10, .flingPower = 10,
}, },
@ -3224,14 +3214,9 @@ const struct Item gItems[] =
.holdEffectParam = 0, .holdEffectParam = 0,
.description = sPinkNectarDesc, .description = sPinkNectarDesc,
.pocket = POCKET_ITEMS, .pocket = POCKET_ITEMS,
#ifdef POKEMON_EXPANSION .type = ITEM_USE_PARTY_MENU,
.type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_FormChange_ConsumedOnUse,
.fieldUseFunc = ItemUseOutOfBattle_FormChange_ConsumedOnUse, .secondaryId = FORM_ITEM_USE,
.secondaryId = FORM_ITEM_USE,
#else
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
#endif
.flingPower = 10, .flingPower = 10,
}, },
@ -3243,14 +3228,9 @@ const struct Item gItems[] =
.holdEffectParam = 0, .holdEffectParam = 0,
.description = sPurpleNectarDesc, .description = sPurpleNectarDesc,
.pocket = POCKET_ITEMS, .pocket = POCKET_ITEMS,
#ifdef POKEMON_EXPANSION .type = ITEM_USE_PARTY_MENU,
.type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_FormChange_ConsumedOnUse,
.fieldUseFunc = ItemUseOutOfBattle_FormChange_ConsumedOnUse, .secondaryId = FORM_ITEM_USE,
.secondaryId = FORM_ITEM_USE,
#else
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
#endif
.flingPower = 10, .flingPower = 10,
}, },
@ -5310,7 +5290,7 @@ const struct Item gItems[] =
.itemId = ITEM_SOUL_DEW, .itemId = ITEM_SOUL_DEW,
.price = 0, .price = 0,
.holdEffect = HOLD_EFFECT_SOUL_DEW, .holdEffect = HOLD_EFFECT_SOUL_DEW,
#if defined(BATTLE_ENGINE) && B_SOUL_DEW_BOOST >= GEN_7 #if B_SOUL_DEW_BOOST >= GEN_7
.holdEffectParam = 20, .holdEffectParam = 20,
#else #else
.holdEffectParam = 50, .holdEffectParam = 50,
@ -7021,7 +7001,7 @@ const struct Item gItems[] =
.name = _("Sitrus Berry"), .name = _("Sitrus Berry"),
.itemId = ITEM_SITRUS_BERRY, .itemId = ITEM_SITRUS_BERRY,
.price = 20, .price = 20,
#if defined(BATTLE_ENGINE) && I_SITRUS_BERRY_HEAL >= GEN_4 #if I_SITRUS_BERRY_HEAL >= GEN_4
.holdEffect = HOLD_EFFECT_RESTORE_PCT_HP, .holdEffect = HOLD_EFFECT_RESTORE_PCT_HP,
.holdEffectParam = 25, .holdEffectParam = 25,
#else #else
@ -7037,9 +7017,9 @@ const struct Item gItems[] =
.flingPower = 10, .flingPower = 10,
}, },
#if defined(BATTLE_ENGINE) && B_CONFUSE_BERRIES_HEAL >= GEN_8 #if B_CONFUSE_BERRIES_HEAL >= GEN_8
#define CONFUSE_BERRY_HEAL_FRACTION 3 #define CONFUSE_BERRY_HEAL_FRACTION 3
#elif defined(BATTLE_ENGINE) && B_CONFUSE_BERRIES_HEAL == GEN_7 #elif B_CONFUSE_BERRIES_HEAL == GEN_7
#define CONFUSE_BERRY_HEAL_FRACTION 2 #define CONFUSE_BERRY_HEAL_FRACTION 2
#else #else
#define CONFUSE_BERRY_HEAL_FRACTION 8 #define CONFUSE_BERRY_HEAL_FRACTION 8
@ -7921,7 +7901,7 @@ const struct Item gItems[] =
.pocket = POCKET_TM_HM, .pocket = POCKET_TM_HM,
.type = ITEM_USE_PARTY_MENU, .type = ITEM_USE_PARTY_MENU,
.fieldUseFunc = ItemUseOutOfBattle_TMHM, .fieldUseFunc = ItemUseOutOfBattle_TMHM,
#if (defined BATTLE_ENGINE && B_UPDATED_MOVE_DATA >= GEN_5) #if B_UPDATED_MOVE_DATA >= GEN_5
.flingPower = 25, .flingPower = 25,
#else #else
.flingPower = 10, .flingPower = 10,
@ -7937,7 +7917,7 @@ const struct Item gItems[] =
.pocket = POCKET_TM_HM, .pocket = POCKET_TM_HM,
.type = ITEM_USE_PARTY_MENU, .type = ITEM_USE_PARTY_MENU,
.fieldUseFunc = ItemUseOutOfBattle_TMHM, .fieldUseFunc = ItemUseOutOfBattle_TMHM,
#if (defined BATTLE_ENGINE && B_UPDATED_MOVE_DATA >= GEN_6) #if B_UPDATED_MOVE_DATA >= GEN_6
.flingPower = 60, .flingPower = 60,
#else #else
.flingPower = 10, .flingPower = 10,
@ -7977,7 +7957,7 @@ const struct Item gItems[] =
.pocket = POCKET_TM_HM, .pocket = POCKET_TM_HM,
.type = ITEM_USE_PARTY_MENU, .type = ITEM_USE_PARTY_MENU,
.fieldUseFunc = ItemUseOutOfBattle_TMHM, .fieldUseFunc = ItemUseOutOfBattle_TMHM,
#if (defined BATTLE_ENGINE && B_UPDATED_MOVE_DATA >= GEN_6) #if B_UPDATED_MOVE_DATA >= GEN_6
.flingPower = 90, .flingPower = 90,
#else #else
.flingPower = 95, .flingPower = 95,
@ -7993,7 +7973,7 @@ const struct Item gItems[] =
.pocket = POCKET_TM_HM, .pocket = POCKET_TM_HM,
.type = ITEM_USE_PARTY_MENU, .type = ITEM_USE_PARTY_MENU,
.fieldUseFunc = ItemUseOutOfBattle_TMHM, .fieldUseFunc = ItemUseOutOfBattle_TMHM,
#if (defined BATTLE_ENGINE && B_UPDATED_MOVE_DATA >= GEN_6) #if B_UPDATED_MOVE_DATA >= GEN_6
.flingPower = 110, .flingPower = 110,
#else #else
.flingPower = 120, .flingPower = 120,
@ -8057,7 +8037,7 @@ const struct Item gItems[] =
.pocket = POCKET_TM_HM, .pocket = POCKET_TM_HM,
.type = ITEM_USE_PARTY_MENU, .type = ITEM_USE_PARTY_MENU,
.fieldUseFunc = ItemUseOutOfBattle_TMHM, .fieldUseFunc = ItemUseOutOfBattle_TMHM,
#if (defined BATTLE_ENGINE && B_UPDATED_MOVE_DATA >= GEN_5) #if B_UPDATED_MOVE_DATA >= GEN_5
.flingPower = 75, .flingPower = 75,
#else #else
.flingPower = 60, .flingPower = 60,
@ -8121,7 +8101,7 @@ const struct Item gItems[] =
.pocket = POCKET_TM_HM, .pocket = POCKET_TM_HM,
.type = ITEM_USE_PARTY_MENU, .type = ITEM_USE_PARTY_MENU,
.fieldUseFunc = ItemUseOutOfBattle_TMHM, .fieldUseFunc = ItemUseOutOfBattle_TMHM,
#if (defined BATTLE_ENGINE && B_UPDATED_MOVE_DATA >= GEN_6) #if B_UPDATED_MOVE_DATA >= GEN_6
.flingPower = 90, .flingPower = 90,
#else #else
.flingPower = 95, .flingPower = 95,
@ -8137,7 +8117,7 @@ const struct Item gItems[] =
.pocket = POCKET_TM_HM, .pocket = POCKET_TM_HM,
.type = ITEM_USE_PARTY_MENU, .type = ITEM_USE_PARTY_MENU,
.fieldUseFunc = ItemUseOutOfBattle_TMHM, .fieldUseFunc = ItemUseOutOfBattle_TMHM,
#if (defined BATTLE_ENGINE && B_UPDATED_MOVE_DATA >= GEN_6) #if B_UPDATED_MOVE_DATA >= GEN_6
.flingPower = 110, .flingPower = 110,
#else #else
.flingPower = 120, .flingPower = 120,
@ -8177,7 +8157,7 @@ const struct Item gItems[] =
.pocket = POCKET_TM_HM, .pocket = POCKET_TM_HM,
.type = ITEM_USE_PARTY_MENU, .type = ITEM_USE_PARTY_MENU,
.fieldUseFunc = ItemUseOutOfBattle_TMHM, .fieldUseFunc = ItemUseOutOfBattle_TMHM,
#if (defined BATTLE_ENGINE && B_UPDATED_MOVE_DATA >= GEN_4) #if B_UPDATED_MOVE_DATA >= GEN_4
.flingPower = 80, .flingPower = 80,
#else #else
.flingPower = 60, .flingPower = 60,
@ -8265,7 +8245,7 @@ const struct Item gItems[] =
.pocket = POCKET_TM_HM, .pocket = POCKET_TM_HM,
.type = ITEM_USE_PARTY_MENU, .type = ITEM_USE_PARTY_MENU,
.fieldUseFunc = ItemUseOutOfBattle_TMHM, .fieldUseFunc = ItemUseOutOfBattle_TMHM,
#if (defined BATTLE_ENGINE && B_UPDATED_MOVE_DATA >= GEN_6) #if B_UPDATED_MOVE_DATA >= GEN_6
.flingPower = 90, .flingPower = 90,
#else #else
.flingPower = 95, .flingPower = 95,
@ -8305,7 +8285,7 @@ const struct Item gItems[] =
.pocket = POCKET_TM_HM, .pocket = POCKET_TM_HM,
.type = ITEM_USE_PARTY_MENU, .type = ITEM_USE_PARTY_MENU,
.fieldUseFunc = ItemUseOutOfBattle_TMHM, .fieldUseFunc = ItemUseOutOfBattle_TMHM,
#if (defined BATTLE_ENGINE && B_UPDATED_MOVE_DATA >= GEN_6) #if B_UPDATED_MOVE_DATA >= GEN_6
.flingPower = 110, .flingPower = 110,
#else #else
.flingPower = 120, .flingPower = 120,
@ -8321,7 +8301,7 @@ const struct Item gItems[] =
.pocket = POCKET_TM_HM, .pocket = POCKET_TM_HM,
.type = ITEM_USE_PARTY_MENU, .type = ITEM_USE_PARTY_MENU,
.fieldUseFunc = ItemUseOutOfBattle_TMHM, .fieldUseFunc = ItemUseOutOfBattle_TMHM,
#if (defined BATTLE_ENGINE && B_UPDATED_MOVE_DATA >= GEN_6) #if B_UPDATED_MOVE_DATA >= GEN_6
.flingPower = 60, .flingPower = 60,
#else #else
.flingPower = 50, .flingPower = 50,
@ -8409,7 +8389,7 @@ const struct Item gItems[] =
.pocket = POCKET_TM_HM, .pocket = POCKET_TM_HM,
.type = ITEM_USE_PARTY_MENU, .type = ITEM_USE_PARTY_MENU,
.fieldUseFunc = ItemUseOutOfBattle_TMHM, .fieldUseFunc = ItemUseOutOfBattle_TMHM,
#if (defined BATTLE_ENGINE && B_UPDATED_MOVE_DATA >= GEN_6) #if B_UPDATED_MOVE_DATA >= GEN_6
.flingPower = 60, .flingPower = 60,
#else #else
.flingPower = 40, .flingPower = 40,
@ -8461,7 +8441,7 @@ const struct Item gItems[] =
.pocket = POCKET_TM_HM, .pocket = POCKET_TM_HM,
.type = ITEM_USE_PARTY_MENU, .type = ITEM_USE_PARTY_MENU,
.fieldUseFunc = ItemUseOutOfBattle_TMHM, .fieldUseFunc = ItemUseOutOfBattle_TMHM,
#if (defined BATTLE_ENGINE && B_UPDATED_MOVE_DATA >= GEN_6) #if B_UPDATED_MOVE_DATA >= GEN_6
.flingPower = 130, .flingPower = 130,
#else #else
.flingPower = 140, .flingPower = 140,
@ -9041,7 +9021,7 @@ const struct Item gItems[] =
.pocket = POCKET_TM_HM, .pocket = POCKET_TM_HM,
.type = ITEM_USE_PARTY_MENU, .type = ITEM_USE_PARTY_MENU,
.fieldUseFunc = ItemUseOutOfBattle_TMHM, .fieldUseFunc = ItemUseOutOfBattle_TMHM,
#if (defined BATTLE_ENGINE && B_UPDATED_MOVE_DATA >= GEN_4) #if B_UPDATED_MOVE_DATA >= GEN_4
.flingPower = 90, .flingPower = 90,
#else #else
.flingPower = 70, .flingPower = 70,
@ -9058,7 +9038,7 @@ const struct Item gItems[] =
.pocket = POCKET_TM_HM, .pocket = POCKET_TM_HM,
.type = ITEM_USE_PARTY_MENU, .type = ITEM_USE_PARTY_MENU,
.fieldUseFunc = ItemUseOutOfBattle_TMHM, .fieldUseFunc = ItemUseOutOfBattle_TMHM,
#if (defined BATTLE_ENGINE && B_UPDATED_MOVE_DATA >= GEN_6) #if B_UPDATED_MOVE_DATA >= GEN_6
.flingPower = 90, .flingPower = 90,
#else #else
.flingPower = 95, .flingPower = 95,
@ -9101,7 +9081,7 @@ const struct Item gItems[] =
.pocket = POCKET_TM_HM, .pocket = POCKET_TM_HM,
.type = ITEM_USE_PARTY_MENU, .type = ITEM_USE_PARTY_MENU,
.fieldUseFunc = ItemUseOutOfBattle_TMHM, .fieldUseFunc = ItemUseOutOfBattle_TMHM,
#if (defined BATTLE_ENGINE && B_UPDATED_MOVE_DATA >= GEN_4) #if B_UPDATED_MOVE_DATA >= GEN_4
.flingPower = 20, .flingPower = 20,
#else #else
.flingPower = 40, .flingPower = 40,
@ -9131,7 +9111,7 @@ const struct Item gItems[] =
.pocket = POCKET_TM_HM, .pocket = POCKET_TM_HM,
.type = ITEM_USE_PARTY_MENU, .type = ITEM_USE_PARTY_MENU,
.fieldUseFunc = ItemUseOutOfBattle_TMHM, .fieldUseFunc = ItemUseOutOfBattle_TMHM,
#if (defined BATTLE_ENGINE && B_UPDATED_MOVE_DATA >= GEN_4) #if B_UPDATED_MOVE_DATA >= GEN_4
.flingPower = 80, .flingPower = 80,
#else #else
.flingPower = 60, .flingPower = 60,
@ -9210,14 +9190,9 @@ const struct Item gItems[] =
.price = 0, .price = 0,
.description = sGracideaDesc, .description = sGracideaDesc,
.pocket = POCKET_KEY_ITEMS, .pocket = POCKET_KEY_ITEMS,
#ifdef POKEMON_EXPANSION .type = ITEM_USE_PARTY_MENU,
.type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_FormChange,
.fieldUseFunc = ItemUseOutOfBattle_FormChange, .secondaryId = FORM_ITEM_USE_TIME,
.secondaryId = FORM_ITEM_USE_TIME,
#else
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
#endif
}, },
[ITEM_REVEAL_GLASS] = [ITEM_REVEAL_GLASS] =
@ -9227,14 +9202,9 @@ const struct Item gItems[] =
.price = 0, .price = 0,
.description = sRevealGlassDesc, .description = sRevealGlassDesc,
.pocket = POCKET_KEY_ITEMS, .pocket = POCKET_KEY_ITEMS,
#ifdef POKEMON_EXPANSION .type = ITEM_USE_PARTY_MENU,
.type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_FormChange,
.fieldUseFunc = ItemUseOutOfBattle_FormChange, .secondaryId = FORM_ITEM_USE,
.secondaryId = FORM_ITEM_USE,
#else
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
#endif
}, },
[ITEM_DNA_SPLICERS] = [ITEM_DNA_SPLICERS] =
@ -9244,14 +9214,9 @@ const struct Item gItems[] =
.price = 0, .price = 0,
.description = sDNASplicersDesc, .description = sDNASplicersDesc,
.pocket = POCKET_KEY_ITEMS, .pocket = POCKET_KEY_ITEMS,
#ifdef POKEMON_EXPANSION .type = ITEM_USE_PARTY_MENU,
.type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_FormChange,
.fieldUseFunc = ItemUseOutOfBattle_FormChange, .secondaryId = FORM_ITEM_USE,
.secondaryId = FORM_ITEM_USE,
#else
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
#endif
}, },
[ITEM_ZYGARDE_CUBE] = [ITEM_ZYGARDE_CUBE] =
@ -9273,14 +9238,9 @@ const struct Item gItems[] =
.price = 0, .price = 0,
.description = sPrisonBottleDesc, .description = sPrisonBottleDesc,
.pocket = POCKET_KEY_ITEMS, .pocket = POCKET_KEY_ITEMS,
#ifdef POKEMON_EXPANSION .type = ITEM_USE_PARTY_MENU,
.type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_FormChange,
.fieldUseFunc = ItemUseOutOfBattle_FormChange, .secondaryId = FORM_ITEM_USE,
.secondaryId = FORM_ITEM_USE,
#else
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
#endif
}, },
[ITEM_N_SOLARIZER] = [ITEM_N_SOLARIZER] =
@ -9290,14 +9250,9 @@ const struct Item gItems[] =
.price = 0, .price = 0,
.description = sNSolarizerDesc, .description = sNSolarizerDesc,
.pocket = POCKET_KEY_ITEMS, .pocket = POCKET_KEY_ITEMS,
#ifdef POKEMON_EXPANSION .type = ITEM_USE_PARTY_MENU,
.type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_FormChange,
.fieldUseFunc = ItemUseOutOfBattle_FormChange, .secondaryId = FORM_ITEM_USE,
.secondaryId = FORM_ITEM_USE,
#else
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
#endif
}, },
[ITEM_N_LUNARIZER] = [ITEM_N_LUNARIZER] =
@ -9307,14 +9262,9 @@ const struct Item gItems[] =
.price = 0, .price = 0,
.description = sNLunarizerDesc, .description = sNLunarizerDesc,
.pocket = POCKET_KEY_ITEMS, .pocket = POCKET_KEY_ITEMS,
#ifdef POKEMON_EXPANSION .type = ITEM_USE_PARTY_MENU,
.type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_FormChange,
.fieldUseFunc = ItemUseOutOfBattle_FormChange, .secondaryId = FORM_ITEM_USE,
.secondaryId = FORM_ITEM_USE,
#else
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
#endif
}, },
[ITEM_REINS_OF_UNITY] = [ITEM_REINS_OF_UNITY] =
@ -9324,14 +9274,9 @@ const struct Item gItems[] =
.price = 0, .price = 0,
.description = sReinsOfUnityDesc, .description = sReinsOfUnityDesc,
.pocket = POCKET_KEY_ITEMS, .pocket = POCKET_KEY_ITEMS,
#ifdef POKEMON_EXPANSION .type = ITEM_USE_PARTY_MENU,
.type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_FormChange,
.fieldUseFunc = ItemUseOutOfBattle_FormChange, .secondaryId = FORM_ITEM_USE,
.secondaryId = FORM_ITEM_USE,
#else
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
#endif
}, },
// Battle Mechanic Key Items // Battle Mechanic Key Items

View File

@ -1558,9 +1558,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 255, .catchRate = 255,
.expYield = 60, .expYield = 60,
.evYield_Defense = 1, .evYield_Defense = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_GRIP_CLAW,
.itemRare = ITEM_GRIP_CLAW,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -1585,9 +1583,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 90, .catchRate = 90,
.expYield = 158, .expYield = 158,
.evYield_Defense = 2, .evYield_Defense = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_GRIP_CLAW,
.itemRare = ITEM_GRIP_CLAW,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -1991,9 +1987,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 255, .catchRate = 255,
.expYield = 64, .expYield = 64,
.evYield_SpAttack = 1, .evYield_SpAttack = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_ABSORB_BULB,
.itemRare = ITEM_ABSORB_BULB,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -2018,9 +2012,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 120, .catchRate = 120,
.expYield = 138, .expYield = 138,
.evYield_SpAttack = 2, .evYield_SpAttack = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_ABSORB_BULB,
.itemRare = ITEM_ABSORB_BULB,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -2049,9 +2041,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 221, .expYield = 221,
.evYield_SpAttack = 3, .evYield_SpAttack = 3,
#ifdef ITEM_EXPANSION .itemRare = ITEM_ABSORB_BULB,
.itemRare = ITEM_ABSORB_BULB,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -2154,9 +2144,7 @@ const struct BaseStats gBaseStats[] =
.expYield = 158, .expYield = 158,
.evYield_Speed = 1, .evYield_Speed = 1,
.evYield_SpAttack = 1, .evYield_SpAttack = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_SHED_SHELL,
.itemRare = ITEM_SHED_SHELL,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -2914,9 +2902,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 190, .catchRate = 190,
.expYield = 63, .expYield = 63,
.evYield_HP = 1, .evYield_HP = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_LAGGING_TAIL,
.itemRare = ITEM_LAGGING_TAIL,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -3147,9 +3133,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 190, .catchRate = 190,
.expYield = 65, .expYield = 65,
.evYield_HP = 1, .evYield_HP = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_BLACK_SLUDGE,
.itemRare = ITEM_BLACK_SLUDGE,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -3175,9 +3159,7 @@ const struct BaseStats gBaseStats[] =
.expYield = 175, .expYield = 175,
.evYield_HP = 1, .evYield_HP = 1,
.evYield_Attack = 1, .evYield_Attack = 1,
#ifdef ITEM_EXPANSION .itemCommon = ITEM_BLACK_SLUDGE,
.itemCommon = ITEM_BLACK_SLUDGE,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -3502,9 +3484,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 90, .catchRate = 90,
.expYield = 65, .expYield = 65,
.evYield_Defense = 1, .evYield_Defense = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_PSYCHIC_SEED,
.itemRare = ITEM_PSYCHIC_SEED,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -3655,9 +3635,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 77, .expYield = 77,
.evYield_HP = 2, .evYield_HP = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_LAGGING_TAIL,
.itemRare = ITEM_LAGGING_TAIL,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -4083,9 +4061,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 172, .expYield = 172,
.evYield_Speed = 2, .evYield_Speed = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_ELECTIRIZER,
.itemRare = ITEM_ELECTIRIZER,
#endif
.genderRatio = PERCENT_FEMALE(25), .genderRatio = PERCENT_FEMALE(25),
.eggCycles = 25, .eggCycles = 25,
.friendship = 70, .friendship = 70,
@ -4110,9 +4086,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 173, .expYield = 173,
.evYield_SpAttack = 2, .evYield_SpAttack = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_MAGMARIZER,
.itemRare = ITEM_MAGMARIZER,
#endif
.genderRatio = PERCENT_FEMALE(25), .genderRatio = PERCENT_FEMALE(25),
.eggCycles = 25, .eggCycles = 25,
.friendship = 70, .friendship = 70,
@ -4260,9 +4234,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 35, .catchRate = 35,
.expYield = 101, .expYield = 101,
.evYield_HP = 1, .evYield_HP = 1,
#ifdef ITEM_EXPANSION .itemCommon = ITEM_QUICK_POWDER,
.itemCommon = ITEM_QUICK_POWDER,
#endif
.itemRare = ITEM_METAL_POWDER, .itemRare = ITEM_METAL_POWDER,
.genderRatio = MON_GENDERLESS, .genderRatio = MON_GENDERLESS,
.eggCycles = 20, .eggCycles = 20,
@ -5504,9 +5476,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 221, .expYield = 221,
.evYield_SpDefense = 3, .evYield_SpDefense = 3,
#ifdef ITEM_EXPANSION .itemRare = ITEM_ABSORB_BULB,
.itemRare = ITEM_ABSORB_BULB,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -5790,9 +5760,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 75, .catchRate = 75,
.expYield = 78, .expYield = 78,
.evYield_Speed = 1, .evYield_Speed = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_WIDE_LENS,
.itemRare = ITEM_WIDE_LENS,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -6501,9 +6469,7 @@ const struct BaseStats gBaseStats[] =
.expYield = 144, .expYield = 144,
.evYield_Defense = 1, .evYield_Defense = 1,
.evYield_SpDefense = 1, .evYield_SpDefense = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_LUMINOUS_MOSS,
.itemRare = ITEM_LUMINOUS_MOSS,
#endif
.genderRatio = PERCENT_FEMALE(75), .genderRatio = PERCENT_FEMALE(75),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -6922,9 +6888,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 72, .expYield = 72,
.evYield_Speed = 1, .evYield_Speed = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_ELECTIRIZER,
.itemRare = ITEM_ELECTIRIZER,
#endif
.genderRatio = PERCENT_FEMALE(25), .genderRatio = PERCENT_FEMALE(25),
.eggCycles = 25, .eggCycles = 25,
.friendship = 70, .friendship = 70,
@ -6949,9 +6913,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 73, .expYield = 73,
.evYield_Speed = 1, .evYield_Speed = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_MAGMARIZER,
.itemRare = ITEM_MAGMARIZER,
#endif
.genderRatio = PERCENT_FEMALE(25), .genderRatio = PERCENT_FEMALE(25),
.eggCycles = 25, .eggCycles = 25,
.friendship = 70, .friendship = 70,
@ -7639,9 +7601,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 178, .expYield = 178,
.evYield_SpAttack = 3, .evYield_SpAttack = 3,
#ifdef ITEM_EXPANSION .itemRare = ITEM_SHED_SHELL,
.itemRare = ITEM_SHED_SHELL,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 15, .eggCycles = 15,
.friendship = 70, .friendship = 70,
@ -7690,9 +7650,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 173, .expYield = 173,
.evYield_SpDefense = 3, .evYield_SpDefense = 3,
#ifdef ITEM_EXPANSION .itemRare = ITEM_SHED_SHELL,
.itemRare = ITEM_SHED_SHELL,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 15, .eggCycles = 15,
.friendship = 70, .friendship = 70,
@ -7792,9 +7750,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 255, .catchRate = 255,
.expYield = 44, .expYield = 44,
.evYield_Defense = 1, .evYield_Defense = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_POWER_HERB,
.itemRare = ITEM_POWER_HERB,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 15, .eggCycles = 15,
.friendship = 70, .friendship = 70,
@ -7819,9 +7775,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 120, .catchRate = 120,
.expYield = 119, .expYield = 119,
.evYield_Attack = 2, .evYield_Attack = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_POWER_HERB,
.itemRare = ITEM_POWER_HERB,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 15, .eggCycles = 15,
.friendship = 70, .friendship = 70,
@ -7846,9 +7800,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 216, .expYield = 216,
.evYield_Attack = 3, .evYield_Attack = 3,
#ifdef ITEM_EXPANSION .itemRare = ITEM_POWER_HERB,
.itemRare = ITEM_POWER_HERB,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 15, .eggCycles = 15,
.friendship = 70, .friendship = 70,
@ -7925,9 +7877,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 190, .catchRate = 190,
.expYield = 54, .expYield = 54,
.evYield_Speed = 1, .evYield_Speed = 1,
#ifdef ITEM_EXPANSION .itemCommon = ITEM_PRETTY_FEATHER,
.itemCommon = ITEM_PRETTY_FEATHER,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -7956,9 +7906,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 154, .expYield = 154,
.evYield_Defense = 2, .evYield_Defense = 2,
#ifdef ITEM_EXPANSION .itemCommon = ITEM_PRETTY_FEATHER,
.itemCommon = ITEM_PRETTY_FEATHER,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -8569,9 +8517,7 @@ const struct BaseStats gBaseStats[] =
.expYield = 133, .expYield = 133,
.evYield_Attack = 1, .evYield_Attack = 1,
.evYield_Defense = 1, .evYield_Defense = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_WIDE_LENS,
.itemRare = ITEM_WIDE_LENS,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 25, .eggCycles = 25,
.friendship = 35, .friendship = 35,
@ -8602,9 +8548,7 @@ const struct BaseStats gBaseStats[] =
.expYield = 133, .expYield = 133,
.evYield_Attack = 1, .evYield_Attack = 1,
.evYield_Defense = 1, .evYield_Defense = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_IRON_BALL,
.itemRare = ITEM_IRON_BALL,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -8800,9 +8744,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 200, .catchRate = 200,
.expYield = 142, .expYield = 142,
.evYield_Speed = 1, .evYield_Speed = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_CELL_BATTERY,
.itemRare = ITEM_CELL_BATTERY,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -8827,9 +8769,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 200, .catchRate = 200,
.expYield = 142, .expYield = 142,
.evYield_Speed = 1, .evYield_Speed = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_CELL_BATTERY,
.itemRare = ITEM_CELL_BATTERY,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -9322,9 +9262,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 190, .catchRate = 190,
.expYield = 67, .expYield = 67,
.evYield_SpAttack = 1, .evYield_SpAttack = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_STICKY_BARB,
.itemRare = ITEM_STICKY_BARB,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 35, .friendship = 35,
@ -9350,9 +9288,7 @@ const struct BaseStats gBaseStats[] =
.expYield = 166, .expYield = 166,
.evYield_Attack = 1, .evYield_Attack = 1,
.evYield_SpAttack = 1, .evYield_SpAttack = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_STICKY_BARB,
.itemRare = ITEM_STICKY_BARB,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 35, .friendship = 35,
@ -9451,9 +9387,7 @@ const struct BaseStats gBaseStats[] =
.expYield = 160, .expYield = 160,
.evYield_Attack = 1, .evYield_Attack = 1,
.evYield_SpAttack = 1, .evYield_SpAttack = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_SHED_SHELL,
.itemRare = ITEM_SHED_SHELL,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -9634,9 +9568,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 255, .catchRate = 255,
.expYield = 60, .expYield = 60,
.evYield_SpDefense = 1, .evYield_SpDefense = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_LIGHT_CLAY,
.itemRare = ITEM_LIGHT_CLAY,
#endif
.genderRatio = MON_GENDERLESS, .genderRatio = MON_GENDERLESS,
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -9661,9 +9593,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 90, .catchRate = 90,
.expYield = 175, .expYield = 175,
.evYield_SpDefense = 2, .evYield_SpDefense = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_LIGHT_CLAY,
.itemRare = ITEM_LIGHT_CLAY,
#endif
.genderRatio = MON_GENDERLESS, .genderRatio = MON_GENDERLESS,
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -9688,9 +9618,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 71, .expYield = 71,
.evYield_SpDefense = 1, .evYield_SpDefense = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_BIG_ROOT,
.itemRare = ITEM_BIG_ROOT,
#endif
.genderRatio = PERCENT_FEMALE(12.5), .genderRatio = PERCENT_FEMALE(12.5),
.eggCycles = 30, .eggCycles = 30,
.friendship = 70, .friendship = 70,
@ -9715,9 +9643,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 173, .expYield = 173,
.evYield_SpDefense = 2, .evYield_SpDefense = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_BIG_ROOT,
.itemRare = ITEM_BIG_ROOT,
#endif
.genderRatio = PERCENT_FEMALE(12.5), .genderRatio = PERCENT_FEMALE(12.5),
.eggCycles = 30, .eggCycles = 30,
.friendship = 70, .friendship = 70,
@ -10069,9 +9995,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 190, .catchRate = 190,
.expYield = 60, .expYield = 60,
.evYield_HP = 1, .evYield_HP = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_SNOWBALL,
.itemRare = ITEM_SNOWBALL,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -11074,9 +10998,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 255, .catchRate = 255,
.expYield = 39, .expYield = 39,
.evYield_Defense = 1, .evYield_Defense = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_METRONOME,
.itemRare = ITEM_METRONOME,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 15, .eggCycles = 15,
.friendship = 70, .friendship = 70,
@ -11102,9 +11024,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 134, .expYield = 134,
.evYield_Attack = 2, .evYield_Attack = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_METRONOME,
.itemRare = ITEM_METRONOME,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 15, .eggCycles = 15,
.friendship = 70, .friendship = 70,
@ -11955,9 +11875,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 130, .catchRate = 130,
.expYield = 110, .expYield = 110,
.evYield_HP = 1, .evYield_HP = 1,
#ifdef ITEM_EXPANSION .itemCommon = ITEM_OVAL_STONE,
.itemCommon = ITEM_OVAL_STONE,
#endif
.genderRatio = MON_FEMALE, .genderRatio = MON_FEMALE,
.eggCycles = 40, .eggCycles = 40,
.friendship = 140, .friendship = 140,
@ -11982,9 +11900,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 30, .catchRate = 30,
.expYield = 144, .expYield = 144,
.evYield_Attack = 1, .evYield_Attack = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_METRONOME,
.itemRare = ITEM_METRONOME,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 35, .friendship = 35,
@ -12281,9 +12197,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 140, .catchRate = 140,
.expYield = 60, .expYield = 60,
.evYield_Attack = 1, .evYield_Attack = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_BLACK_SLUDGE,
.itemRare = ITEM_BLACK_SLUDGE,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 10, .eggCycles = 10,
.friendship = 100, .friendship = 100,
@ -12308,9 +12222,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 75, .catchRate = 75,
.expYield = 172, .expYield = 172,
.evYield_Attack = 2, .evYield_Attack = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_BLACK_SLUDGE,
.itemRare = ITEM_BLACK_SLUDGE,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -12533,9 +12445,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 30, .catchRate = 30,
.expYield = 180, .expYield = 180,
.evYield_HP = 3, .evYield_HP = 3,
#ifdef ITEM_EXPANSION .itemRare = ITEM_LAGGING_TAIL,
.itemRare = ITEM_LAGGING_TAIL,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -12608,9 +12518,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 30, .catchRate = 30,
.expYield = 243, .expYield = 243,
.evYield_Attack = 3, .evYield_Attack = 3,
#ifdef ITEM_EXPANSION .itemRare = ITEM_ELECTIRIZER,
.itemRare = ITEM_ELECTIRIZER,
#endif
.genderRatio = PERCENT_FEMALE(25), .genderRatio = PERCENT_FEMALE(25),
.eggCycles = 25, .eggCycles = 25,
.friendship = 70, .friendship = 70,
@ -12635,9 +12543,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 30, .catchRate = 30,
.expYield = 243, .expYield = 243,
.evYield_SpAttack = 3, .evYield_SpAttack = 3,
#ifdef ITEM_EXPANSION .itemRare = ITEM_MAGMARIZER,
.itemRare = ITEM_MAGMARIZER,
#endif
.genderRatio = PERCENT_FEMALE(25), .genderRatio = PERCENT_FEMALE(25),
.eggCycles = 25, .eggCycles = 25,
.friendship = 70, .friendship = 70,
@ -12692,9 +12598,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 30, .catchRate = 30,
.expYield = 180, .expYield = 180,
.evYield_Attack = 2, .evYield_Attack = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_WIDE_LENS,
.itemRare = ITEM_WIDE_LENS,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -14637,9 +14541,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 190, .catchRate = 190,
.expYield = 56, .expYield = 56,
.evYield_Speed = 1, .evYield_Speed = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_ABSORB_BULB,
.itemRare = ITEM_ABSORB_BULB,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -14669,9 +14571,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 75, .catchRate = 75,
.expYield = 168, .expYield = 168,
.evYield_Speed = 2, .evYield_Speed = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_ABSORB_BULB,
.itemRare = ITEM_ABSORB_BULB,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -14696,9 +14596,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 190, .catchRate = 190,
.expYield = 56, .expYield = 56,
.evYield_SpAttack = 1, .evYield_SpAttack = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_ABSORB_BULB,
.itemRare = ITEM_ABSORB_BULB,
#endif
.genderRatio = MON_FEMALE, .genderRatio = MON_FEMALE,
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -14723,9 +14621,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 75, .catchRate = 75,
.expYield = 168, .expYield = 168,
.evYield_SpAttack = 2, .evYield_SpAttack = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_ABSORB_BULB,
.itemRare = ITEM_ABSORB_BULB,
#endif
.genderRatio = MON_FEMALE, .genderRatio = MON_FEMALE,
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -14981,9 +14877,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 180, .catchRate = 180,
.expYield = 70, .expYield = 70,
.evYield_Attack = 1, .evYield_Attack = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_SHED_SHELL,
.itemRare = ITEM_SHED_SHELL,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 15, .eggCycles = 15,
.friendship = 35, .friendship = 35,
@ -15009,9 +14903,7 @@ const struct BaseStats gBaseStats[] =
.expYield = 171, .expYield = 171,
.evYield_Defense = 1, .evYield_Defense = 1,
.evYield_SpDefense = 1, .evYield_SpDefense = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_SHED_SHELL,
.itemRare = ITEM_SHED_SHELL,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 15, .eggCycles = 15,
.friendship = 70, .friendship = 70,
@ -15232,9 +15124,7 @@ const struct BaseStats gBaseStats[] =
.expYield = 166, .expYield = 166,
.evYield_Attack = 2, .evYield_Attack = 2,
.itemCommon = ITEM_SILK_SCARF, .itemCommon = ITEM_SILK_SCARF,
#ifdef ITEM_EXPANSION .itemRare = ITEM_BLACK_SLUDGE,
.itemRare = ITEM_BLACK_SLUDGE,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -15872,9 +15762,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 255, .catchRate = 255,
.expYield = 61, .expYield = 61,
.evYield_Defense = 1, .evYield_Defense = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_STICKY_BARB,
.itemRare = ITEM_STICKY_BARB,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -15899,9 +15787,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 90, .catchRate = 90,
.expYield = 171, .expYield = 171,
.evYield_Defense = 2, .evYield_Defense = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_STICKY_BARB,
.itemRare = ITEM_STICKY_BARB,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -16502,9 +16388,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 190, .catchRate = 190,
.expYield = 61, .expYield = 61,
.evYield_Attack = 1, .evYield_Attack = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_LIGHT_CLAY,
.itemRare = ITEM_LIGHT_CLAY,
#endif
.genderRatio = MON_GENDERLESS, .genderRatio = MON_GENDERLESS,
.eggCycles = 25, .eggCycles = 25,
.friendship = 70, .friendship = 70,
@ -16529,9 +16413,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 90, .catchRate = 90,
.expYield = 169, .expYield = 169,
.evYield_Attack = 2, .evYield_Attack = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_LIGHT_CLAY,
.itemRare = ITEM_LIGHT_CLAY,
#endif
.genderRatio = MON_GENDERLESS, .genderRatio = MON_GENDERLESS,
.eggCycles = 25, .eggCycles = 25,
.friendship = 70, .friendship = 70,
@ -18379,9 +18261,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 60, .expYield = 60,
.evYield_SpDefense = 1, .evYield_SpDefense = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_SHED_SHELL,
.itemRare = ITEM_SHED_SHELL,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 40, .eggCycles = 40,
.friendship = 35, .friendship = 35,
@ -18406,9 +18286,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 158, .expYield = 158,
.evYield_SpDefense = 2, .evYield_SpDefense = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_SHED_SHELL,
.itemRare = ITEM_SHED_SHELL,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 40, .eggCycles = 40,
.friendship = 35, .friendship = 35,
@ -19133,9 +19011,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 120, .catchRate = 120,
.expYield = 140, .expYield = 140,
.evYield_Defense = 2, .evYield_Defense = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_CELL_BATTERY,
.itemRare = ITEM_CELL_BATTERY,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 15, .eggCycles = 15,
.friendship = 70, .friendship = 70,
@ -19386,9 +19262,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 190, .catchRate = 190,
.expYield = 77, .expYield = 77,
.evYield_Attack = 1, .evYield_Attack = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_LIGHT_CLAY,
.itemRare = ITEM_LIGHT_CLAY,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -19413,9 +19287,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 60, .catchRate = 60,
.expYield = 175, .expYield = 175,
.evYield_Attack = 2, .evYield_Attack = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_LIGHT_CLAY,
.itemRare = ITEM_LIGHT_CLAY,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -19690,9 +19562,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 235, .catchRate = 235,
.expYield = 42, .expYield = 42,
.evYield_HP = 1, .evYield_HP = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_GRASSY_SEED,
.itemRare = ITEM_GRASSY_SEED,
#endif
.genderRatio = MON_FEMALE, .genderRatio = MON_FEMALE,
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -19717,9 +19587,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 120, .catchRate = 120,
.expYield = 102, .expYield = 102,
.evYield_Speed = 2, .evYield_Speed = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_GRASSY_SEED,
.itemRare = ITEM_GRASSY_SEED,
#endif
.genderRatio = MON_FEMALE, .genderRatio = MON_FEMALE,
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -19744,9 +19612,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 230, .expYield = 230,
.evYield_Attack = 3, .evYield_Attack = 3,
#ifdef ITEM_EXPANSION .itemCommon = ITEM_GRASSY_SEED,
.itemCommon = ITEM_GRASSY_SEED,
#endif
.genderRatio = MON_FEMALE, .genderRatio = MON_FEMALE,
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -19771,9 +19637,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 60, .catchRate = 60,
.expYield = 170, .expYield = 170,
.evYield_SpDefense = 2, .evYield_SpDefense = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_MISTY_SEED,
.itemRare = ITEM_MISTY_SEED,
#endif
.genderRatio = PERCENT_FEMALE(75), .genderRatio = PERCENT_FEMALE(75),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -20046,9 +19910,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 180, .catchRate = 180,
.expYield = 152, .expYield = 152,
.evYield_Attack = 2, .evYield_Attack = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_ELECTRIC_SEED,
.itemRare = ITEM_ELECTRIC_SEED,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 10, .eggCycles = 10,
.friendship = 70, .friendship = 70,
@ -20075,9 +19937,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 80, .catchRate = 80,
.expYield = 166, .expYield = 166,
.evYield_Attack = 2, .evYield_Attack = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_RAZOR_FANG,
.itemRare = ITEM_RAZOR_FANG,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 15, .eggCycles = 15,
.friendship = 70, .friendship = 70,
@ -20151,9 +20011,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 60, .expYield = 60,
.evYield_Defense = 1, .evYield_Defense = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_RAZOR_CLAW,
.itemRare = ITEM_RAZOR_CLAW,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 40, .eggCycles = 40,
.friendship = 70, .friendship = 70,
@ -20178,9 +20036,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 147, .expYield = 147,
.evYield_Defense = 2, .evYield_Defense = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_RAZOR_CLAW,
.itemRare = ITEM_RAZOR_CLAW,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 40, .eggCycles = 40,
.friendship = 70, .friendship = 70,
@ -20205,9 +20061,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 270, .expYield = 270,
.evYield_Defense = 3, .evYield_Defense = 3,
#ifdef ITEM_EXPANSION .itemCommon = ITEM_RAZOR_CLAW,
.itemCommon = ITEM_RAZOR_CLAW,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 40, .eggCycles = 40,
.friendship = 70, .friendship = 70,
@ -21203,9 +21057,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 120, .catchRate = 120,
.expYield = 117, .expYield = 117,
.evYield_SpDefense = 2, .evYield_SpDefense = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_PSYCHIC_SEED,
.itemRare = ITEM_PSYCHIC_SEED,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 15, .eggCycles = 15,
.friendship = 70, .friendship = 70,
@ -21230,9 +21082,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45, .catchRate = 45,
.expYield = 253, .expYield = 253,
.evYield_SpDefense = 3, .evYield_SpDefense = 3,
#ifdef ITEM_EXPANSION .itemRare = ITEM_PSYCHIC_SEED,
.itemRare = ITEM_PSYCHIC_SEED,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 15, .eggCycles = 15,
.friendship = 70, .friendship = 70,
@ -22229,9 +22079,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 190, .catchRate = 190,
.expYield = 37, .expYield = 37,
.evYield_SpAttack = 1, .evYield_SpAttack = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_SNOWBALL,
.itemRare = ITEM_SNOWBALL,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -22354,9 +22202,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 190, .catchRate = 190,
.expYield = 66, .expYield = 66,
.evYield_Attack = 1, .evYield_Attack = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_LAGGING_TAIL,
.itemRare = ITEM_LAGGING_TAIL,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 25, .eggCycles = 25,
.friendship = 70, .friendship = 70,
@ -22381,9 +22227,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 90, .catchRate = 90,
.expYield = 175, .expYield = 175,
.evYield_Attack = 2, .evYield_Attack = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_LAGGING_TAIL,
.itemRare = ITEM_LAGGING_TAIL,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 25, .eggCycles = 25,
.friendship = 70, .friendship = 70,
@ -24162,9 +24006,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 255, .catchRate = 255,
.expYield = 60, .expYield = 60,
.evYield_Defense = 1, .evYield_Defense = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_GRIP_CLAW,
.itemRare = ITEM_GRIP_CLAW,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -24215,9 +24057,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 190, .catchRate = 190,
.expYield = 60, .expYield = 60,
.evYield_Speed = 1, .evYield_Speed = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_SNOWBALL,
.itemRare = ITEM_SNOWBALL,
#endif
.genderRatio = PERCENT_FEMALE(75), .genderRatio = PERCENT_FEMALE(75),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -24373,9 +24213,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 255, .catchRate = 255,
.expYield = 60, .expYield = 60,
.evYield_Defense = 1, .evYield_Defense = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_CELL_BATTERY,
.itemRare = ITEM_CELL_BATTERY,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 15, .eggCycles = 15,
.friendship = 70, .friendship = 70,
@ -24401,9 +24239,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 120, .catchRate = 120,
.expYield = 137, .expYield = 137,
.evYield_Defense = 2, .evYield_Defense = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_CELL_BATTERY,
.itemRare = ITEM_CELL_BATTERY,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 15, .eggCycles = 15,
.friendship = 70, .friendship = 70,
@ -24454,9 +24290,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 190, .catchRate = 190,
.expYield = 65, .expYield = 65,
.evYield_HP = 1, .evYield_HP = 1,
#ifdef ITEM_EXPANSION .itemRare = ITEM_BLACK_SLUDGE,
.itemRare = ITEM_BLACK_SLUDGE,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,
@ -24709,9 +24543,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 60, .catchRate = 60,
.expYield = 172, .expYield = 172,
.evYield_Defense = 2, .evYield_Defense = 2,
#ifdef ITEM_EXPANSION .itemRare = ITEM_MISTY_SEED,
.itemRare = ITEM_MISTY_SEED,
#endif
.genderRatio = PERCENT_FEMALE(50), .genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20, .eggCycles = 20,
.friendship = 70, .friendship = 70,

View File

@ -322,59 +322,37 @@ const u8 gItemEffect_DireHit[8] = {
}; };
const u8 gItemEffect_XAttack[8] = { const u8 gItemEffect_XAttack[8] = {
#ifdef BATTLE_ENGINE
[1] = ITEM1_X_ATTACK, [1] = ITEM1_X_ATTACK,
#else
[0] = 1, // ITEM0_X_ATTACK
#endif
[5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID,
STAT_BOOST_FRIENDSHIP_CHANGE, STAT_BOOST_FRIENDSHIP_CHANGE,
}; };
const u8 gItemEffect_XDefense[8] = { const u8 gItemEffect_XDefense[8] = {
#ifdef BATTLE_ENGINE
[1] = ITEM1_X_DEFENSE, [1] = ITEM1_X_DEFENSE,
#else
[1] = 1 << 4, // ITEM1_X_DEFEND
#endif
[5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID,
STAT_BOOST_FRIENDSHIP_CHANGE, STAT_BOOST_FRIENDSHIP_CHANGE,
}; };
const u8 gItemEffect_XSpeed[8] = { const u8 gItemEffect_XSpeed[8] = {
#ifdef BATTLE_ENGINE
[1] = ITEM1_X_SPEED, [1] = ITEM1_X_SPEED,
#else
[1] = 1, // ITEM1_X_SPEED
#endif
[5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID,
STAT_BOOST_FRIENDSHIP_CHANGE, STAT_BOOST_FRIENDSHIP_CHANGE,
}; };
const u8 gItemEffect_XAccuracy[8] = { const u8 gItemEffect_XAccuracy[8] = {
#ifdef BATTLE_ENGINE
[1] = ITEM1_X_ACCURACY, [1] = ITEM1_X_ACCURACY,
#else
[2] = 1 << 4, // ITEM2_X_ACCURACY
#endif
[5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID,
STAT_BOOST_FRIENDSHIP_CHANGE, STAT_BOOST_FRIENDSHIP_CHANGE,
}; };
const u8 gItemEffect_XSpecialAttack[8] = { const u8 gItemEffect_XSpecialAttack[8] = {
#ifdef BATTLE_ENGINE
[1] = ITEM1_X_SPATK, [1] = ITEM1_X_SPATK,
#else
[2] = 1, // ITEM2_X_SPATK
#endif
[5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID,
STAT_BOOST_FRIENDSHIP_CHANGE, STAT_BOOST_FRIENDSHIP_CHANGE,
}; };
const u8 gItemEffect_XSpecialDefense[8] = { const u8 gItemEffect_XSpecialDefense[8] = {
#ifdef BATTLE_ENGINE
[1] = ITEM1_X_SPDEF, [1] = ITEM1_X_SPDEF,
#endif
[5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID, [5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID,
STAT_BOOST_FRIENDSHIP_CHANGE, STAT_BOOST_FRIENDSHIP_CHANGE,
}; };

View File

@ -108,7 +108,7 @@ static const u8 sHeavyBallDesc[] = _(
"Pokémon."); "Pokémon.");
static const u8 sDreamBallDesc[] = _( static const u8 sDreamBallDesc[] = _(
#if defined(BATTLE_ENGINE) && B_DREAM_BALL_MODIFIER >= GEN_8 #if B_DREAM_BALL_MODIFIER >= GEN_8
"A Ball that works\n" "A Ball that works\n"
"well on sleeping\n" "well on sleeping\n"
"Pokémon."); "Pokémon.");
@ -634,7 +634,7 @@ static const u8 sEscapeRopeDesc[] = _(
// Battle items // Battle items
static const u8 sXAttackDesc[] = _( static const u8 sXAttackDesc[] = _(
#if defined(BATTLE_ENGINE) && B_X_ITEMS_BUFF >= GEN_7 #if B_X_ITEMS_BUFF >= GEN_7
"Sharply raises stat\n" "Sharply raises stat\n"
"Attack during\n" "Attack during\n"
"one battle."); "one battle.");
@ -645,7 +645,7 @@ static const u8 sXAttackDesc[] = _(
#endif #endif
static const u8 sXDefenseDesc[] = _( static const u8 sXDefenseDesc[] = _(
#if defined(BATTLE_ENGINE) && B_X_ITEMS_BUFF >= GEN_7 #if B_X_ITEMS_BUFF >= GEN_7
"Sharply raises stat\n" "Sharply raises stat\n"
"Defense during\n" "Defense during\n"
"one battle."); "one battle.");
@ -656,7 +656,7 @@ static const u8 sXDefenseDesc[] = _(
#endif #endif
static const u8 sXSpAtkDesc[] = _( static const u8 sXSpAtkDesc[] = _(
#if defined(BATTLE_ENGINE) && B_X_ITEMS_BUFF >= GEN_7 #if B_X_ITEMS_BUFF >= GEN_7
"Sharply raises stat\n" "Sharply raises stat\n"
"Sp. Atk during\n" "Sp. Atk during\n"
"one battle."); "one battle.");
@ -667,7 +667,7 @@ static const u8 sXSpAtkDesc[] = _(
#endif #endif
static const u8 sXSpDefDesc[] = _( static const u8 sXSpDefDesc[] = _(
#if defined(BATTLE_ENGINE) && B_X_ITEMS_BUFF >= GEN_7 #if B_X_ITEMS_BUFF >= GEN_7
"Sharply raises stat\n" "Sharply raises stat\n"
"Sp. Def during\n" "Sp. Def during\n"
"one battle."); "one battle.");
@ -678,7 +678,7 @@ static const u8 sXSpDefDesc[] = _(
#endif #endif
static const u8 sXSpeedDesc[] = _( static const u8 sXSpeedDesc[] = _(
#if defined(BATTLE_ENGINE) && B_X_ITEMS_BUFF >= GEN_7 #if B_X_ITEMS_BUFF >= GEN_7
"Sharply raises stat\n" "Sharply raises stat\n"
"Speed during\n" "Speed during\n"
"one battle."); "one battle.");
@ -689,7 +689,7 @@ static const u8 sXSpeedDesc[] = _(
#endif #endif
static const u8 sXAccuracyDesc[] = _( static const u8 sXAccuracyDesc[] = _(
#if defined(BATTLE_ENGINE) && B_X_ITEMS_BUFF >= GEN_7 #if B_X_ITEMS_BUFF >= GEN_7
"Sharply raises move\n" "Sharply raises move\n"
"accuracy during\n" "accuracy during\n"
"one battle."); "one battle.");
@ -2070,7 +2070,7 @@ static const u8 sDeepSeaToothDesc[] = _(
"of Clamperl."); "of Clamperl.");
static const u8 sSoulDewDesc[] = _( static const u8 sSoulDewDesc[] = _(
#if defined(BATTLE_ENGINE) && B_SOUL_DEW_BOOST >= GEN_7 #if B_SOUL_DEW_BOOST >= GEN_7
"Powers up Latios' &\n" "Powers up Latios' &\n"
"Latias' Psychic and\n" "Latias' Psychic and\n"
"Dragon-type moves."); "Dragon-type moves.");
@ -2405,7 +2405,7 @@ static const u8 sSootheBellDesc[] = _(
"calms spirits and\n" "calms spirits and\n"
"fosters friendship."); "fosters friendship.");
#if defined(BATTLE_ENGINE) && B_MENTAL_HERB >= GEN_5 #if B_MENTAL_HERB >= GEN_5
static const u8 sMentalHerbDesc[] = _( static const u8 sMentalHerbDesc[] = _(
"Snaps Pokémon out\n" "Snaps Pokémon out\n"
"of move-binding\n" "of move-binding\n"

View File

@ -4488,17 +4488,11 @@ void Task_AbilityPatch(u8 taskId)
switch (tState) switch (tState)
{ {
case 0: case 0:
// If Hidden Abilities have been implemented without the use of Pokémon Expansion and added to the `abilities` field
// as ability no. 3 (eg. {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL} )
// you can remove this #ifdef.
#ifdef POKEMON_EXPANSION
// Can't use. // Can't use.
if (gBaseStats[tSpecies].abilities[tAbilityNum] == 0 if (gBaseStats[tSpecies].abilities[tAbilityNum] == 0
|| !tSpecies || !tSpecies
|| GetMonData(&gPlayerParty[tMonId], MON_DATA_ABILITY_NUM, NULL) > 1 || GetMonData(&gPlayerParty[tMonId], MON_DATA_ABILITY_NUM, NULL) > 1
) )
#endif
{ {
gPartyMenuUseExitCallback = FALSE; gPartyMenuUseExitCallback = FALSE;
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
@ -5544,11 +5538,7 @@ u8 GetItemEffectType(u16 item)
else else
itemEffect = gItemEffectTable[item - ITEM_POTION]; itemEffect = gItemEffectTable[item - ITEM_POTION];
#ifndef ITEM_EXPANSION
if ((itemEffect[0] & (ITEM0_DIRE_HIT | ITEM0_X_ATTACK)) || itemEffect[1] || itemEffect[2] || (itemEffect[3] & ITEM3_GUARD_SPEC))
#else
if ((itemEffect[0] & ITEM0_DIRE_HIT) || itemEffect[1] || (itemEffect[3] & ITEM3_GUARD_SPEC)) if ((itemEffect[0] & ITEM0_DIRE_HIT) || itemEffect[1] || (itemEffect[3] & ITEM3_GUARD_SPEC))
#endif
return ITEM_EFFECT_X_ITEM; return ITEM_EFFECT_X_ITEM;
else if (itemEffect[0] & ITEM0_SACRED_ASH) else if (itemEffect[0] & ITEM0_SACRED_ASH)
return ITEM_EFFECT_SACRED_ASH; return ITEM_EFFECT_SACRED_ASH;

View File

@ -3065,11 +3065,7 @@ static const u8 sGetMonDataEVConstants[] =
// For stat-raising items // For stat-raising items
static const u8 sStatsToRaise[] = static const u8 sStatsToRaise[] =
{ {
#ifndef ITEM_EXPANSION
STAT_ATK, STAT_ATK, STAT_SPEED, STAT_DEF, STAT_SPATK, STAT_ACC
#else
STAT_ATK, STAT_ATK, STAT_DEF, STAT_SPEED, STAT_SPATK, STAT_SPDEF, STAT_ACC STAT_ATK, STAT_ATK, STAT_DEF, STAT_SPEED, STAT_SPATK, STAT_SPDEF, STAT_ACC
#endif
}; };
// 3 modifiers each for how much to change friendship for different ranges // 3 modifiers each for how much to change friendship for different ranges
@ -5524,80 +5520,8 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
gBattleMons[gActiveBattler].status2 |= STATUS2_FOCUS_ENERGY; gBattleMons[gActiveBattler].status2 |= STATUS2_FOCUS_ENERGY;
retVal = FALSE; retVal = FALSE;
} }
#ifndef ITEM_EXPANSION
// X Attack
if ((itemEffect[i] & ITEM0_X_ATTACK)
&& gBattleMons[gActiveBattler].statStages[STAT_ATK] < MAX_STAT_STAGE)
{
if (B_X_ITEMS_BUFF >= GEN_7)
gBattleMons[gActiveBattler].statStages[STAT_ATK] += 2;
else
gBattleMons[gActiveBattler].statStages[STAT_ATK] += itemEffect[i] & ITEM0_X_ATTACK;
if (gBattleMons[gActiveBattler].statStages[STAT_ATK] > MAX_STAT_STAGE)
gBattleMons[gActiveBattler].statStages[STAT_ATK] = MAX_STAT_STAGE;
retVal = FALSE;
}
#endif
break; break;
// Handle ITEM1 effects (in-battle stat boosting effects)
#ifndef ITEM_EXPANSION
case 1:
// X Defend
if ((itemEffect[i] & ITEM1_X_DEFEND)
&& gBattleMons[gActiveBattler].statStages[STAT_DEF] < MAX_STAT_STAGE)
{
if (B_X_ITEMS_BUFF >= GEN_7)
gBattleMons[gActiveBattler].statStages[STAT_DEF] += 2;
else
gBattleMons[gActiveBattler].statStages[STAT_DEF] += (itemEffect[i] & ITEM1_X_DEFEND) >> 4;
if (gBattleMons[gActiveBattler].statStages[STAT_DEF] > MAX_STAT_STAGE)
gBattleMons[gActiveBattler].statStages[STAT_DEF] = MAX_STAT_STAGE;
retVal = FALSE;
}
// X Speed
if ((itemEffect[i] & ITEM1_X_SPEED)
&& gBattleMons[gActiveBattler].statStages[STAT_SPEED] < MAX_STAT_STAGE)
{
if (B_X_ITEMS_BUFF >= GEN_7)
gBattleMons[gActiveBattler].statStages[STAT_SPEED] += 2;
else
gBattleMons[gActiveBattler].statStages[STAT_SPEED] += itemEffect[i] & ITEM1_X_SPEED;
if (gBattleMons[gActiveBattler].statStages[STAT_SPEED] > MAX_STAT_STAGE)
gBattleMons[gActiveBattler].statStages[STAT_SPEED] = MAX_STAT_STAGE;
retVal = FALSE;
}
break;
// Handle ITEM2 effects (more stat boosting effects)
case 2:
// X Accuracy
if ((itemEffect[i] & ITEM2_X_ACCURACY)
&& gBattleMons[gActiveBattler].statStages[STAT_ACC] < MAX_STAT_STAGE)
{
if (B_X_ITEMS_BUFF >= GEN_7)
gBattleMons[gActiveBattler].statStages[STAT_ACC] += 2;
else
gBattleMons[gActiveBattler].statStages[STAT_ACC] += (itemEffect[i] & ITEM2_X_ACCURACY) >> 4;
if (gBattleMons[gActiveBattler].statStages[STAT_ACC] > MAX_STAT_STAGE)
gBattleMons[gActiveBattler].statStages[STAT_ACC] = MAX_STAT_STAGE;
retVal = FALSE;
}
// X Sp Attack
if ((itemEffect[i] & ITEM2_X_SPATK)
&& gBattleMons[gActiveBattler].statStages[STAT_SPATK] < MAX_STAT_STAGE)
{
if (B_X_ITEMS_BUFF >= GEN_7)
gBattleMons[gActiveBattler].statStages[STAT_SPATK] += 2;
else
gBattleMons[gActiveBattler].statStages[STAT_SPATK] += itemEffect[i] & ITEM2_X_SPATK;
if (gBattleMons[gActiveBattler].statStages[STAT_SPATK] > MAX_STAT_STAGE)
gBattleMons[gActiveBattler].statStages[STAT_SPATK] = MAX_STAT_STAGE;
retVal = FALSE;
}
break;
#else
// Handle ITEM1 effects (in-battle stat boosting effects) // Handle ITEM1 effects (in-battle stat boosting effects)
case 1: case 1:
// X Attack // X Attack
@ -5681,7 +5605,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
// Formerly used by the item effects of the X Sp. Atk and the X Accuracy // Formerly used by the item effects of the X Sp. Atk and the X Accuracy
case 2: case 2:
break; break;
#endif
// Handle ITEM3 effects (Guard Spec, Rare Candy, cure status) // Handle ITEM3 effects (Guard Spec, Rare Candy, cure status)
case 3: case 3:
// Guard Spec // Guard Spec
@ -6263,32 +6187,6 @@ u8 *UseStatIncreaseItem(u16 itemId)
gPotentialItemEffectBattler = gBattlerInMenuId; gPotentialItemEffectBattler = gBattlerInMenuId;
#ifndef ITEM_EXPANSION
for (i = 0; i < 3; i++)
{
if (itemEffect[i] & (ITEM0_X_ATTACK | ITEM1_X_SPEED | ITEM2_X_SPATK))
BufferStatRoseMessage(i * 2);
if (itemEffect[i] & (ITEM0_DIRE_HIT | ITEM1_X_DEFEND | ITEM2_X_ACCURACY))
{
if (i != 0) // Dire Hit is the only ITEM0 above
{
BufferStatRoseMessage(i * 2 + 1);
}
else
{
gBattlerAttacker = gBattlerInMenuId;
BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnGettingPumped);
}
}
}
if (itemEffect[3] & ITEM3_GUARD_SPEC)
{
gBattlerAttacker = gBattlerInMenuId;
BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnShroudedInMist);
}
#else
if (itemEffect[0] & ITEM0_DIRE_HIT) if (itemEffect[0] & ITEM0_DIRE_HIT)
{ {
gBattlerAttacker = gBattlerInMenuId; gBattlerAttacker = gBattlerInMenuId;
@ -6322,7 +6220,6 @@ u8 *UseStatIncreaseItem(u16 itemId)
gBattlerAttacker = gBattlerInMenuId; gBattlerAttacker = gBattlerInMenuId;
BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnShroudedInMist); BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnShroudedInMist);
} }
#endif
return gDisplayedStringBattle; return gDisplayedStringBattle;
} }
@ -6630,7 +6527,6 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, s
} }
} }
break; break;
#ifdef BATTLE_ENGINE
// Battle evolution without leveling; party slot is being passed into the evolutionItem arg. // Battle evolution without leveling; party slot is being passed into the evolutionItem arg.
case EVO_MODE_BATTLE_SPECIAL: case EVO_MODE_BATTLE_SPECIAL:
for (i = 0; i < EVOS_PER_MON; i++) for (i = 0; i < EVOS_PER_MON; i++)
@ -6644,7 +6540,6 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, s
} }
} }
break; break;
#endif
// Overworld evolution without leveling; evolution method is being passed into the evolutionItem arg. // Overworld evolution without leveling; evolution method is being passed into the evolutionItem arg.
case EVO_MODE_OVERWORLD_SPECIAL: case EVO_MODE_OVERWORLD_SPECIAL:
for (i = 0; i < EVOS_PER_MON; i++) for (i = 0; i < EVOS_PER_MON; i++)