diff --git a/include/constants/hold_effects.h b/include/constants/hold_effects.h index feede12fb..494c4f506 100644 --- a/include/constants/hold_effects.h +++ b/include/constants/hold_effects.h @@ -106,20 +106,30 @@ #define HOLD_EFFECT_FLOAT_STONE 115 #define HOLD_EFFECT_EVIOLITE 116 #define HOLD_EFFECT_ASSAULT_VEST 117 -#define HOLD_EFFECT_BINDING_BAND 118 -#define HOLD_EFFECT_DRIVE 119 -#define HOLD_EFFECT_GEMS 120 +#define HOLD_EFFECT_DRIVE 118 +#define HOLD_EFFECT_GEMS 119 +#define HOLD_EFFECT_ROCKY_HELMET 120 +#define HOLD_EFFECT_AIR_BALLOON 121 +#define HOLD_EFFECT_RED_CARD 122 +#define HOLD_EFFECT_RING_TARGET 123 +#define HOLD_EFFECT_BINDING_BAND 124 +#define HOLD_EFFECT_EJECT_BUTTON 125 +#define HOLD_EFFECT_ABSORB_BULB 126 +#define HOLD_EFFECT_CELL_BATTERY 127 // Gen6 hold effects -#define HOLD_EFFECT_FAIRY_POWER 129 -#define HOLD_EFFECT_MEGA_STONE 130 -#define HOLD_EFFECT_SAFETY_GOOGLES 131 +#define HOLD_EFFECT_FAIRY_POWER 129 +#define HOLD_EFFECT_MEGA_STONE 130 +#define HOLD_EFFECT_SAFETY_GOOGLES 131 +#define HOLD_EFFECT_LUMINOUS_MOSS 132 +#define HOLD_EFFECT_SNOWBALL 133 +#define HOLD_EFFECT_WEAKNESS_POLICY 134 // Gen7 hold effects #define HOLD_EFFECT_PROTECTIVE_PADS 149 #define HOLD_EFFECT_TERRAIN_EXTENDER 150 -#define HOLD_EFFECT_SEEDS 151 -#define HOLD_EFFECT_ADRENALINE_ORB 152 +#define HOLD_EFFECT_SEEDS 151 +#define HOLD_EFFECT_ADRENALINE_ORB 152 #define HOLD_EFFECT_CHOICE(holdEffect)((holdEffect == HOLD_EFFECT_CHOICE_BAND || holdEffect == HOLD_EFFECT_CHOICE_SCARF || holdEffect == HOLD_EFFECT_CHOICE_SPECS)) diff --git a/src/data/items.h b/src/data/items.h index 5cb64c1a9..db8e38962 100644 --- a/src/data/items.h +++ b/src/data/items.h @@ -5628,11 +5628,67 @@ const struct Item gItems[] = .secondaryId = 0, }, + [ITEM_ROCKY_HELMET] = + { + .name = _("Rocky Helmet"), + .itemId = ITEM_ROCKY_HELMET, + .price = 2000, + .holdEffect = HOLD_EFFECT_ROCKY_HELMET, + .holdEffectParam = 0, + .description = sRockyHelmetDesc, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .secondaryId = 0, + }, + + [ITEM_AIR_BALLOON] = + { + .name = _("Air Balloon"), + .itemId = ITEM_AIR_BALLOON, + .price = 2000, + .holdEffect = HOLD_EFFECT_AIR_BALLOON, + .holdEffectParam = 0, + .description = sAirBalloonDesc, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .secondaryId = 0, + }, + + [ITEM_RED_CARD] = + { + .name = _("Red Card"), + .itemId = ITEM_RED_CARD, + .price = 2000, + .holdEffect = HOLD_EFFECT_RED_CARD, + .holdEffectParam = 0, + .description = sRedCardDesc, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .secondaryId = 0, + }, + + [ITEM_RING_TARGET] = + { + .name = _("Ring Target"), + .itemId = ITEM_RING_TARGET, + .price = 2000, + .holdEffect = HOLD_EFFECT_RING_TARGET, + .holdEffectParam = 0, + .description = sRingTargetDesc, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .secondaryId = 0, + }, + [ITEM_BINDING_BAND] = { .name = _("Binding Band"), .itemId = ITEM_BINDING_BAND, - .price = 200, + .price = 2000, .holdEffect = HOLD_EFFECT_BINDING_BAND, .description = sBindingBandDesc, .pocket = POCKET_ITEMS, @@ -5641,6 +5697,90 @@ const struct Item gItems[] = .secondaryId = 0, }, + [ITEM_EJECT_BUTTON] = + { + .name = _("Eject Button"), + .itemId = ITEM_EJECT_BUTTON, + .price = 2000, + .holdEffect = HOLD_EFFECT_EJECT_BUTTON, + .holdEffectParam = 0, + .description = sEjectButtonDesc, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .secondaryId = 0, + }, + + [ITEM_ABSORB_BULB] = + { + .name = _("Absorb Bulb"), + .itemId = ITEM_ABSORB_BULB, + .price = 2000, + .holdEffect = HOLD_EFFECT_ABSORB_BULB, + .holdEffectParam = 0, + .description = sAbsorbBulbDesc, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .secondaryId = 0, + }, + + [ITEM_CELL_BATTERY] = + { + .name = _("Cell Battery"), + .itemId = ITEM_CELL_BATTERY, + .price = 2000, + .holdEffect = HOLD_EFFECT_CELL_BATTERY, + .holdEffectParam = 0, + .description = sCellBatteryDesc, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .secondaryId = 0, + }, + + [ITEM_LUMINOUS_MOSS] = + { + .name = _("LuminousMoss"), + .itemId = ITEM_LUMINOUS_MOSS, + .price = 2000, + .holdEffect = HOLD_EFFECT_LUMINOUS_MOSS, + .holdEffectParam = 0, + .description = sLuminousMossDesc, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .secondaryId = 0, + }, + + [ITEM_SNOWBALL] = + { + .name = _("Snowball"), + .itemId = ITEM_SNOWBALL, + .price = 2000, + .holdEffect = HOLD_EFFECT_SNOWBALL, + .holdEffectParam = 0, + .description = sSnowballDesc, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .secondaryId = 0, + }, + + [ITEM_WEAKNESS_POLICY] = + { + .name = _("Weak. Policy"), + .itemId = ITEM_WEAKNESS_POLICY, + .price = 1000, + .holdEffect = HOLD_EFFECT_WEAKNESS_POLICY, + .holdEffectParam = 0, + .description = sWeaknessPolicyDesc, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .secondaryId = 0, + }, + [ITEM_DOUSE_DRIVE] = { .name = _("Douse Drive"), diff --git a/src/data/text/item_descriptions.h b/src/data/text/item_descriptions.h index 8a8575909..fa898bd1c 100644 --- a/src/data/text/item_descriptions.h +++ b/src/data/text/item_descriptions.h @@ -2126,11 +2126,61 @@ static const u8 sFloatStoneDesc[] = _( "reduces the weight\n" "of Pokémon when held."); +static const u8 sRockyHelmetDesc[] = _( + "Hurts the foe if\n" + "they touch its\n" + "holder."); + +static const u8 sAirBalloonDesc[] = _( + "Elevates the holder\n" + "in the air. If hit,\n" + "this item will burst."); + +static const u8 sRedCardDesc[] = _( + "Switches out the\n" + "foe if they hit the\n" + "holder."); + +static const u8 sRingTargetDesc[] = _( + "Moves that wouldn't\n" + "have effect will\n" + "land on its holder."); + static const u8 sBindingBandDesc[] = _( - "This band increases\n" - "the power of binding\n" + "Increases the\n" + "power of binding\n" "moves when held."); +static const u8 sEjectButtonDesc[] = _( + "Switches out the\n" + "user if they're hit\n" + "by the foe."); + +static const u8 sAbsorbBulbDesc[] = _( + "Raises SP. ATK if\n" + "the holder is hit by\n" + "a Water-type move."); + +static const u8 sCellBatteryDesc[] = _( + "Raises ATK if the\n" + "holder is hit by an\n" + "Electric-type move."); + +static const u8 sLuminousMossDesc[] = _( + "Raises SP. DEF if\n" + "the holder is hit by\n" + "a Water-type move."); + +static const u8 sSnowballDesc[] = _( + "Raises ATK if its\n" + "holder is hit by an\n" + "Ice-type move."); + +static const u8 sWeaknessPolicyDesc[] = _( + "If hit by a Super\n" + "Effective move, ups\n" + "ATK and SP. ATK."); + static const u8 sDouseDriveDesc[] = _( "Changes Genesect's\n" "Techno Blast so it\n" @@ -2243,8 +2293,8 @@ static const u8 sFairyGemDesc[] = _( static const u8 sAssaultVestDesc[] = _( "Raises Sp. Def but\n" - "prevents the use of\n" - "status moves."); + "prevents the use\n" + "of status moves."); static const u8 sPixiePlateDesc[] = _( "A stone tablet that\n"