Skip to content

A New Evolution Item

Ebernacher90 edited this page Dec 27, 2019 · 14 revisions

How To Add A New Evolution Item

This tutorial will go over how to add a new normal item. As an example, we'll be adding the metal_coat.

Contents

  1. Define a ITEM Constant
  2. Give the ITEM a Name
  3. Give the ITEM a Price
  4. Give the ITEM a effect
  5. Lets give the ITEM the effect to use in Menu

1. Define a ITEM Constant

Edit constants/item_constants.asm:

     const_value = 1

	const MASTER_BALL   ; $01
	const ULTRA_BALL    ; $02
	const GREAT_BALL    ; $03
        ...
        const FLOOR_B4F     ; $61
+       const METAL_COAT    ; $62

2. Give The ITEM a Name

Edit text/item_names.asm:

       ItemNames:
       db "MASTER BALL@"
       db "ULTRA BALL@"
       ...
       db "B4F@"
+      db "METAL COAT@"

3. Give the ITEM a Price

Edit data/item_prices.asm:

       ItemPrices:
       money 0     ; MASTER_BALL
       money 1200  ; ULTRA_BALL
       ...
       money 0     ; FLOOR_B4F
+      money 2100  ; METAL_COAT

4. Give the ITEM a effect

Edit engine/item/items.asm:

       UseItem_:
	       ld a, 1
	       ld [wActionResultOrTookBattleTurn], a ; initialise to success value
               ...
       ItemUsePtrTable:
	       dw ItemUseBall       ; MASTER_BALL
	       dw ItemUseBall       ; ULTRA_BALL
               ...
               dw ItemUsePPRestore  ; MAX_ELIXER
               dw dw UnusableItem   ; METAL_COAT

5. Lets give the ITEM the effect to use in Menu

Edit engine/menu/start_sub_menus.asm:

       StartMenu_Pokedex:
	       predef ShowPokedexMenu
	       call LoadScreenTilesFromBuffer2 ; restore saved screen
               ...
       ; items which bring up the party menu when used
              UsableItems_PartyMenu:
	      db MOON_STONE
	      db ANTIDOTE
              ...
              db MAX_ELIXER
+             db FLOOR_B2F
+             db FLOOR_B1F
+             db FLOOR_1F
+             db FLOOR_2F
+             db FLOOR_3F
+             db FLOOR_4F
+             db FLOOR_5F
+             db FLOOR_6F
+             db FLOOR_7F
+             db FLOOR_8F
+             db FLOOR_9F
+             db FLOOR_10F
+             db FLOOR_11F
+             db FLOOR_B4F
+             db METAL_COAT
	      db $ff

And that's it! You've added a new evolution ITEM into the game.