diff --git a/graphics/items/icon_palettes/choice_dumpling.pal b/graphics/items/icon_palettes/choice_dumpling.pal new file mode 100644 index 0000000000..3da1b990dc --- /dev/null +++ b/graphics/items/icon_palettes/choice_dumpling.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +95 138 90 +130 173 118 +81 114 89 +122 143 74 +57 87 63 +104 122 166 +75 89 124 +144 147 154 +215 218 223 +221 129 109 +139 71 56 +177 169 96 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/fine_remedy.pal b/graphics/items/icon_palettes/fine_remedy.pal new file mode 100644 index 0000000000..c413ada745 --- /dev/null +++ b/graphics/items/icon_palettes/fine_remedy.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +157 115 95 +109 85 77 +194 183 165 +82 9 28 +121 22 47 +192 46 108 +249 242 228 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/jubilife_muffin.pal b/graphics/items/icon_palettes/jubilife_muffin.pal new file mode 100644 index 0000000000..4e4c809208 --- /dev/null +++ b/graphics/items/icon_palettes/jubilife_muffin.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +252 199 106 +242 224 67 +247 179 73 +83 64 44 +231 215 174 +237 150 35 +134 69 19 +161 139 106 +60 68 13 +176 174 52 +153 153 16 +117 117 23 +157 159 43 +0 0 0 diff --git a/graphics/items/icon_palettes/pokeshi_doll.pal b/graphics/items/icon_palettes/pokeshi_doll.pal new file mode 100644 index 0000000000..02f8eb2f25 --- /dev/null +++ b/graphics/items/icon_palettes/pokeshi_doll.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +105 62 73 +224 154 147 +245 214 209 +235 184 178 +255 255 255 +23 1 1 +239 135 151 +255 254 254 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/remedy.pal b/graphics/items/icon_palettes/remedy.pal new file mode 100644 index 0000000000..581b592a61 --- /dev/null +++ b/graphics/items/icon_palettes/remedy.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +157 115 95 +109 85 77 +194 183 165 +249 242 228 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/superb_remedy.pal b/graphics/items/icon_palettes/superb_remedy.pal new file mode 100644 index 0000000000..0a2472167a --- /dev/null +++ b/graphics/items/icon_palettes/superb_remedy.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +157 115 95 +109 85 77 +194 183 165 +82 9 28 +121 22 47 +254 235 196 +236 201 135 +197 159 88 +192 46 108 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/swap_snack.pal b/graphics/items/icon_palettes/swap_snack.pal new file mode 100644 index 0000000000..d06dce1d93 --- /dev/null +++ b/graphics/items/icon_palettes/swap_snack.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +48 48 48 +216 97 36 +249 199 136 +67 34 18 +255 228 193 +190 127 64 +132 157 41 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/items/icon_palettes/twice_spiced_radish.pal b/graphics/items/icon_palettes/twice_spiced_radish.pal new file mode 100644 index 0000000000..5a5f6aa86e --- /dev/null +++ b/graphics/items/icon_palettes/twice_spiced_radish.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +106 96 74 +67 54 47 +212 214 162 +252 252 236 +109 159 26 +102 18 18 +0 0 0 +239 184 163 +171 44 18 +229 84 32 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/items/icons/choice_dumpling.png b/graphics/items/icons/choice_dumpling.png new file mode 100644 index 0000000000..ca5f16d5d9 Binary files /dev/null and b/graphics/items/icons/choice_dumpling.png differ diff --git a/graphics/items/icons/fine_remedy.png b/graphics/items/icons/fine_remedy.png new file mode 100644 index 0000000000..f5fd761c49 Binary files /dev/null and b/graphics/items/icons/fine_remedy.png differ diff --git a/graphics/items/icons/jubilife_muffin.png b/graphics/items/icons/jubilife_muffin.png new file mode 100644 index 0000000000..9c4fc45d37 Binary files /dev/null and b/graphics/items/icons/jubilife_muffin.png differ diff --git a/graphics/items/icons/pokeshi_doll.png b/graphics/items/icons/pokeshi_doll.png new file mode 100644 index 0000000000..88e9b340ce Binary files /dev/null and b/graphics/items/icons/pokeshi_doll.png differ diff --git a/graphics/items/icons/remedy.png b/graphics/items/icons/remedy.png new file mode 100644 index 0000000000..82922ed295 Binary files /dev/null and b/graphics/items/icons/remedy.png differ diff --git a/graphics/items/icons/superb_remedy.png b/graphics/items/icons/superb_remedy.png new file mode 100644 index 0000000000..85da7788b4 Binary files /dev/null and b/graphics/items/icons/superb_remedy.png differ diff --git a/graphics/items/icons/swap_snack.png b/graphics/items/icons/swap_snack.png new file mode 100644 index 0000000000..2c734b969b Binary files /dev/null and b/graphics/items/icons/swap_snack.png differ diff --git a/graphics/items/icons/twice_spiced_radish.png b/graphics/items/icons/twice_spiced_radish.png new file mode 100644 index 0000000000..3350458e0b Binary files /dev/null and b/graphics/items/icons/twice_spiced_radish.png differ diff --git a/include/constants/items.h b/include/constants/items.h index 082dec1019..e6dbf28404 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -989,7 +989,23 @@ #define ITEM_METAL_ALLOY 814 #define ITEM_STELLAR_TERA_SHARD 815 -#define ITEMS_COUNT 816 +#define ITEM_JUBILIFE_MUFFIN 816 +#define ITEM_REMEDY 817 +#define ITEM_FINE_REMEDY 818 +#define ITEM_SUPERB_REMEDY 819 +#define ITEM_AUX_EVASION 820 +#define ITEM_AUX_GUARD 821 +#define ITEM_AUX_POWER 822 +#define ITEM_AUX_POWERGUARD 823 +#define ITEM_CHOICE_DUMPLING 824 +#define ITEM_SWAP_SNACK 825 +#define ITEM_TWICE_SPICED_RADISH 826 +#define ITEM_POKESHI_DOLL 827 + +// HOPO BERRY +// LEGEND PLATE + +#define ITEMS_COUNT 828 #define ITEM_FIELD_ARROW ITEMS_COUNT // A special item id associated with "Cancel"/"Exit" etc. in a list of items or decorations diff --git a/include/graphics.h b/include/graphics.h index 1c1ae1e523..e1f674c7db 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -1709,6 +1709,23 @@ extern const u32 gItemIconPalette_HearthflameMask[]; extern const u32 gItemIcon_CornerstoneMask[]; extern const u32 gItemIconPalette_CornerstoneMask[]; +extern const u32 gItemIcon_Remedy[]; +extern const u32 gItemIconPalette_Remedy[]; +extern const u32 gItemIcon_FineRemedy[]; +extern const u32 gItemIconPalette_FineRemedy[]; +extern const u32 gItemIcon_SuperbRemedy[]; +extern const u32 gItemIconPalette_SuperbRemedy[]; +extern const u32 gItemIcon_ChoiceDumpling[]; +extern const u32 gItemIconPalette_ChoiceDumpling[]; +extern const u32 gItemIcon_JubilifeMuffin[]; +extern const u32 gItemIconPalette_JubilifeMuffin[]; +extern const u32 gItemIcon_PokeshiDoll[]; +extern const u32 gItemIconPalette_PokeshiDoll[]; +extern const u32 gItemIcon_SwapSnack[]; +extern const u32 gItemIconPalette_SwapSnack[]; +extern const u32 gItemIcon_TwiceSpicedRadish[]; +extern const u32 gItemIconPalette_TwiceSpicedRadish[]; + extern const u32 gItemIcon_ReturnToFieldArrow[]; extern const u32 gItemIconPalette_ReturnToFieldArrow[]; diff --git a/src/data/graphics/items.h b/src/data/graphics/items.h index 0a41ce6279..0f67f19f3d 100644 --- a/src/data/graphics/items.h +++ b/src/data/graphics/items.h @@ -2061,3 +2061,27 @@ const u32 gItemIconPalette_BerserkGene[] = INCBIN_U32("graphics/items/icon_palet const u32 gItemIcon_FairyFeather[] = INCBIN_U32("graphics/items/icons/fairy_feather.4bpp.lz"); const u32 gItemIconPalette_FairyFeather[] = INCBIN_U32("graphics/items/icon_palettes/fairy_feather.gbapal.lz"); + +const u32 gItemIcon_Remedy[] = INCBIN_U32("graphics/items/icons/remedy.4bpp.lz"); +const u32 gItemIconPalette_Remedy[] = INCBIN_U32("graphics/items/icon_palettes/remedy.gbapal.lz"); + +const u32 gItemIcon_FineRemedy[] = INCBIN_U32("graphics/items/icons/fine_remedy.4bpp.lz"); +const u32 gItemIconPalette_FineRemedy[] = INCBIN_U32("graphics/items/icon_palettes/fine_remedy.gbapal.lz"); + +const u32 gItemIcon_SuperbRemedy[] = INCBIN_U32("graphics/items/icons/superb_remedy.4bpp.lz"); +const u32 gItemIconPalette_SuperbRemedy[] = INCBIN_U32("graphics/items/icon_palettes/superb_remedy.gbapal.lz"); + +const u32 gItemIcon_ChoiceDumpling[] = INCBIN_U32("graphics/items/icons/choice_dumpling.4bpp.lz"); +const u32 gItemIconPalette_ChoiceDumpling[] = INCBIN_U32("graphics/items/icon_palettes/choice_dumpling.gbapal.lz"); + +const u32 gItemIcon_JubilifeMuffin[] = INCBIN_U32("graphics/items/icons/jubilife_muffin.4bpp.lz"); +const u32 gItemIconPalette_JubilifeMuffin[] = INCBIN_U32("graphics/items/icon_palettes/jubilife_muffin.gbapal.lz"); + +const u32 gItemIcon_PokeshiDoll[] = INCBIN_U32("graphics/items/icons/pokeshi_doll.4bpp.lz"); +const u32 gItemIconPalette_PokeshiDoll[] = INCBIN_U32("graphics/items/icon_palettes/pokeshi_doll.gbapal.lz"); + +const u32 gItemIcon_SwapSnack[] = INCBIN_U32("graphics/items/icons/swap_snack.4bpp.lz"); +const u32 gItemIconPalette_SwapSnack[] = INCBIN_U32("graphics/items/icon_palettes/swap_snack.gbapal.lz"); + +const u32 gItemIcon_TwiceSpicedRadish[] = INCBIN_U32("graphics/items/icons/twice_spiced_radish.4bpp.lz"); +const u32 gItemIconPalette_TwiceSpicedRadish[] = INCBIN_U32("graphics/items/icon_palettes/twice_spiced_radish.gbapal.lz"); diff --git a/src/data/item_icon_table.h b/src/data/item_icon_table.h index e048cf8d4e..1de353b193 100644 --- a/src/data/item_icon_table.h +++ b/src/data/item_icon_table.h @@ -861,6 +861,18 @@ const u32 *const gItemIconTable[ITEMS_COUNT + 1][2] = [ITEM_GLIMMERING_CHARM] = {gItemIcon_GlimmeringCharm, gItemIconPalette_GlimmeringCharm}, [ITEM_METAL_ALLOY] = {gItemIcon_MetalAlloy, gItemIconPalette_MetalAlloy}, [ITEM_STELLAR_TERA_SHARD] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, //{gItemIcon_TeraShard, gItemIconPalette_StellarTeraShard}, + [ITEM_JUBILIFE_MUFFIN] = {gItemIcon_JubilifeMuffin, gItemIconPalette_JubilifeMuffin}, + [ITEM_REMEDY] = {gItemIcon_Remedy, gItemIconPalette_Remedy}, + [ITEM_FINE_REMEDY] = {gItemIcon_FineRemedy, gItemIconPalette_FineRemedy}, + [ITEM_SUPERB_REMEDY] = {gItemIcon_SuperbRemedy, gItemIconPalette_SuperbRemedy}, + [ITEM_AUX_EVASION] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_AuxEvasion, gItemIconPalette_AuxEvasion}, + [ITEM_AUX_GUARD] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_AuxGuard, gItemIconPalette_AuxGuard}, + [ITEM_AUX_POWER] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_AuxPower, gItemIconPalette_AuxPower}, + [ITEM_AUX_POWERGUARD] = {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark}, // {gItemIcon_AuxPowerguard, gItemIconPalette_AuxPowerguard}, + [ITEM_CHOICE_DUMPLING] = {gItemIcon_ChoiceDumpling, gItemIconPalette_ChoiceDumpling}, + [ITEM_SWAP_SNACK] = {gItemIcon_SwapSnack, gItemIconPalette_SwapSnack}, + [ITEM_TWICE_SPICED_RADISH] = {gItemIcon_TwiceSpicedRadish, gItemIconPalette_TwiceSpicedRadish}, + [ITEM_POKESHI_DOLL] = {gItemIcon_PokeshiDoll, gItemIconPalette_PokeshiDoll}, // Return to field arrow [ITEMS_COUNT] = {gItemIcon_ReturnToFieldArrow, gItemIconPalette_ReturnToFieldArrow}, }; diff --git a/src/data/items.h b/src/data/items.h index afea7e3408..161f59137d 100644 --- a/src/data/items.h +++ b/src/data/items.h @@ -11778,4 +11778,195 @@ const struct Item gItems[] = .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, }, + + [ITEM_JUBILIFE_MUFFIN] = + { + .name = _("JublifeMuffin"), + .price = 250, + .description = sFullHealDesc, + .pocket = POCKET_ITEMS, + .type = ITEM_USE_PARTY_MENU, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = EFFECT_ITEM_CURE_STATUS, + .flingPower = 30, + }, + + [ITEM_REMEDY] = + { + .name = _("Remedy"), + .price = 150, + .description = COMPOUND_STRING("A bitter powder\n" + "that restores HP\n" + "by 20 points."), + .pocket = POCKET_ITEMS, + .type = ITEM_USE_PARTY_MENU, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = EFFECT_ITEM_RESTORE_HP, + .effect = gItemEffect_Remedy, + .flingPower = 30, + }, + + [ITEM_FINE_REMEDY] = + { + .name = _("Fine Remedy"), + .price = 150, + #if I_HEALTH_RECOVERY >= GEN_7 + .description = COMPOUND_STRING("A bitter powder\n" + "that restores HP\n" + "by 60 points."), + #else + .description = COMPOUND_STRING("A bitter powder\n" + "that restores HP\n" + "by 50 points."), + #endif + .pocket = POCKET_ITEMS, + .type = ITEM_USE_PARTY_MENU, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = EFFECT_ITEM_RESTORE_HP, + .effect = gItemEffect_FineRemedy, + .flingPower = 30, + }, + + [ITEM_SUPERB_REMEDY] = + { + .name = _("Superb Remedy"), + .price = 750, + #if I_HEALTH_RECOVERY >= GEN_7 + .description = COMPOUND_STRING("A bitter powder\n" + "that restores HP\n" + "by 120 points."), + #else + .description = COMPOUND_STRING("A bitter powder\n" + "that restores HP\n" + "by 200 points."), + #endif + .pocket = POCKET_ITEMS, + .type = ITEM_USE_PARTY_MENU, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = EFFECT_ITEM_RESTORE_HP, + .effect = gItemEffect_SuperbRemedy, + .flingPower = 30, + }, + + [ITEM_AUX_EVASION] = + { + .name = _("Aux Evasion"), + .price = 800, + .holdEffectParam = X_ITEM_STAGES, + #if B_X_ITEMS_BUFF >= GEN_7 + .description = COMPOUND_STRING("Sharply raises\n" + "evasiveness during\n" + "one battle."), + #else + .description = COMPOUND_STRING("Raises evasiveness\n" + "during one battle."), + #endif + .pocket = POCKET_ITEMS, + .type = ITEM_USE_BAG_MENU, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + //.effect = currently missing + }, + + [ITEM_AUX_GUARD] = + { + .name = _("Aux Guard"), + .price = 400, + .holdEffectParam = X_ITEM_STAGES, + #if B_X_ITEMS_BUFF >= GEN_7 + .description = COMPOUND_STRING("Sharply raises\n" + "defenses during\n" + "one battle."), + #else + .description = COMPOUND_STRING("Raises defenses\n" + "during one battle."), + #endif + .pocket = POCKET_ITEMS, + .type = ITEM_USE_BAG_MENU, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + //.effect = currently missing + }, + + [ITEM_AUX_POWER] = + { + .name = _("Aux Power"), + .price = 400, + .holdEffectParam = X_ITEM_STAGES, + #if B_X_ITEMS_BUFF >= GEN_7 + .description = COMPOUND_STRING("Sharply raises\n" + "offenses during\n" + "one battle."), + #else + .description = COMPOUND_STRING("Raises offenses\n" + "during one battle."), + #endif + .pocket = POCKET_ITEMS, + .type = ITEM_USE_BAG_MENU, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + //.effect = currently missing + }, + + [ITEM_AUX_POWERGUARD] = + { + .name = _("AuxPowerguard"), + .price = 1200, + .holdEffectParam = X_ITEM_STAGES, + #if B_X_ITEMS_BUFF >= GEN_7 + .description = COMPOUND_STRING("Sharply raises\n" + "offenses & defenses\n" + "during one battle."), + #else + .description = COMPOUND_STRING("Raises offenses\n" + "and defenses during\n" + "one battle."), + #endif + .pocket = POCKET_ITEMS, + .type = ITEM_USE_BAG_MENU, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + //.effect = currently missing + }, + + [ITEM_CHOICE_DUMPLING] = + { + .name = _("ChoiceDumplng"), + .price = 1200, + .description = sQuestionMarksDesc, + .pocket = POCKET_ITEMS, + .type = ITEM_USE_BAG_MENU, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + //.effect = currently missing + }, + + [ITEM_SWAP_SNACK] = + { + .name = _("Swap Snack"), + .price = 1200, + .description = sQuestionMarksDesc, + .pocket = POCKET_ITEMS, + .type = ITEM_USE_BAG_MENU, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + //.effect = currently missing + }, + + [ITEM_TWICE_SPICED_RADISH] = + { + .name = _("2xSpicedRadsh"), + .price = 1600, + .description = sQuestionMarksDesc, + .pocket = POCKET_ITEMS, + .type = ITEM_USE_BAG_MENU, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + //.effect = currently missing + }, + + [ITEM_POKESHI_DOLL] = + { + .name = _("Pokéshi Doll"), + .price = 2000, + .description = COMPOUND_STRING("A wooden toy carved\n" + "in the image of a\n" + "Pokémon. Can be sold."), + .pocket = POCKET_ITEMS, + .type = ITEM_USE_BAG_MENU, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + }, }; diff --git a/src/data/pokemon/item_effects.h b/src/data/pokemon/item_effects.h index a590d44926..93ff78ad7c 100644 --- a/src/data/pokemon/item_effects.h +++ b/src/data/pokemon/item_effects.h @@ -113,6 +113,33 @@ const u8 gItemEffect_RevivalHerb[10] = { [9] = -20, // Friendship change, high }; +const u8 gItemEffect_Remedy[10] = { + [4] = ITEM4_HEAL_HP, + [5] = ITEM5_FRIENDSHIP_ALL, + [6] = 20, // Amount of HP to recover + [7] = -5, // Friendship change, low + [8] = -5, // Friendship change, mid + [9] = -10, // Friendship change, high +}; + +const u8 gItemEffect_FineRemedy[10] = { + [4] = ITEM4_HEAL_HP, + [5] = ITEM5_FRIENDSHIP_ALL, + [6] = I_HEALTH_RECOVERY >= GEN_7 ? 60 : 50, // Amount of HP to recover + [7] = -10, // Friendship change, low + [8] = -10, // Friendship change, mid + [9] = -15, // Friendship change, high +}; + +const u8 gItemEffect_SuperbRemedy[10] = { + [4] = ITEM4_HEAL_HP, + [5] = ITEM5_FRIENDSHIP_ALL, + [6] = I_HEALTH_RECOVERY >= GEN_7 ? 120 : 200, // Amount of HP to recover + [7] = -15, // Friendship change, low + [8] = -15, // Friendship change, mid + [9] = -20, // Friendship change, high +}; + const u8 gItemEffect_Ether[7] = { [4] = ITEM4_HEAL_PP_ONE | ITEM4_HEAL_PP, [6] = 10,