ref: 28b56c51bb4ad6b9940b94bcb755ee1e9253f9eb
parent: 0935908367ceb987d274421846c05f95ad0a0ac2
author: yenatch <[email protected]>
date: Mon Feb 4 11:22:10 EST 2013
Split type matchup off into a file This sets precedent for including constants in context.
--- /dev/null
+++ b/data/type_matchup.asm
@@ -1,0 +1,128 @@
+; The multiplier is divided by 10, so we can use values like 0.5.
+
+SUPER_EFFECTIVE EQU 20
+NOT_VERY_EFFECTIVE EQU 05
+NO_EFFECT EQU 00
+
+; All other cases are neutral (1x).
+
+ ; attacker defender*=
+
+ db NORMAL, ROCK, NOT_VERY_EFFECTIVE
+ db NORMAL, STEEL, NOT_VERY_EFFECTIVE
+ db FIRE, FIRE, NOT_VERY_EFFECTIVE
+ db FIRE, WATER, NOT_VERY_EFFECTIVE
+ db FIRE, GRASS, SUPER_EFFECTIVE
+ db FIRE, ICE, SUPER_EFFECTIVE
+ db FIRE, BUG, SUPER_EFFECTIVE
+ db FIRE, ROCK, NOT_VERY_EFFECTIVE
+ db FIRE, DRAGON, NOT_VERY_EFFECTIVE
+ db FIRE, STEEL, SUPER_EFFECTIVE
+ db WATER, FIRE, SUPER_EFFECTIVE
+ db WATER, WATER, NOT_VERY_EFFECTIVE
+ db WATER, GRASS, NOT_VERY_EFFECTIVE
+ db WATER, GROUND, SUPER_EFFECTIVE
+ db WATER, ROCK, SUPER_EFFECTIVE
+ db WATER, DRAGON, NOT_VERY_EFFECTIVE
+ db ELECTRIC, WATER, SUPER_EFFECTIVE
+ db ELECTRIC, ELECTRIC, NOT_VERY_EFFECTIVE
+ db ELECTRIC, GRASS, NOT_VERY_EFFECTIVE
+ db ELECTRIC, GROUND, NO_EFFECT
+ db ELECTRIC, FLYING, SUPER_EFFECTIVE
+ db ELECTRIC, DRAGON, NOT_VERY_EFFECTIVE
+ db GRASS, FIRE, NOT_VERY_EFFECTIVE
+ db GRASS, WATER, SUPER_EFFECTIVE
+ db GRASS, GRASS, NOT_VERY_EFFECTIVE
+ db GRASS, POISON, NOT_VERY_EFFECTIVE
+ db GRASS, GROUND, SUPER_EFFECTIVE
+ db GRASS, FLYING, NOT_VERY_EFFECTIVE
+ db GRASS, BUG, NOT_VERY_EFFECTIVE
+ db GRASS, ROCK, SUPER_EFFECTIVE
+ db GRASS, DRAGON, NOT_VERY_EFFECTIVE
+ db GRASS, STEEL, NOT_VERY_EFFECTIVE
+ db ICE, WATER, NOT_VERY_EFFECTIVE
+ db ICE, GRASS, SUPER_EFFECTIVE
+ db ICE, ICE, NOT_VERY_EFFECTIVE
+ db ICE, GROUND, SUPER_EFFECTIVE
+ db ICE, FLYING, SUPER_EFFECTIVE
+ db ICE, DRAGON, SUPER_EFFECTIVE
+ db ICE, STEEL, NOT_VERY_EFFECTIVE
+ db ICE, FIRE, NOT_VERY_EFFECTIVE
+ db FIGHTING, NORMAL, SUPER_EFFECTIVE
+ db FIGHTING, ICE, SUPER_EFFECTIVE
+ db FIGHTING, POISON, NOT_VERY_EFFECTIVE
+ db FIGHTING, FLYING, NOT_VERY_EFFECTIVE
+ db FIGHTING, PSYCHIC, NOT_VERY_EFFECTIVE
+ db FIGHTING, BUG, NOT_VERY_EFFECTIVE
+ db FIGHTING, ROCK, SUPER_EFFECTIVE
+ db FIGHTING, DARK, SUPER_EFFECTIVE
+ db FIGHTING, STEEL, SUPER_EFFECTIVE
+ db POISON, GRASS, SUPER_EFFECTIVE
+ db POISON, POISON, NOT_VERY_EFFECTIVE
+ db POISON, GROUND, NOT_VERY_EFFECTIVE
+ db POISON, ROCK, NOT_VERY_EFFECTIVE
+ db POISON, GHOST, NOT_VERY_EFFECTIVE
+ db POISON, STEEL, NO_EFFECT
+ db GROUND, FIRE, SUPER_EFFECTIVE
+ db GROUND, ELECTRIC, SUPER_EFFECTIVE
+ db GROUND, GRASS, NOT_VERY_EFFECTIVE
+ db GROUND, POISON, SUPER_EFFECTIVE
+ db GROUND, FLYING, NO_EFFECT
+ db GROUND, BUG, NOT_VERY_EFFECTIVE
+ db GROUND, ROCK, SUPER_EFFECTIVE
+ db GROUND, STEEL, SUPER_EFFECTIVE
+ db FLYING, ELECTRIC, NOT_VERY_EFFECTIVE
+ db FLYING, GRASS, SUPER_EFFECTIVE
+ db FLYING, FIGHTING, SUPER_EFFECTIVE
+ db FLYING, BUG, SUPER_EFFECTIVE
+ db FLYING, ROCK, NOT_VERY_EFFECTIVE
+ db FLYING, STEEL, NOT_VERY_EFFECTIVE
+ db PSYCHIC, FIGHTING, SUPER_EFFECTIVE
+ db PSYCHIC, POISON, SUPER_EFFECTIVE
+ db PSYCHIC, PSYCHIC, NOT_VERY_EFFECTIVE
+ db PSYCHIC, DARK, NO_EFFECT
+ db PSYCHIC, STEEL, NOT_VERY_EFFECTIVE
+ db BUG, FIRE, NOT_VERY_EFFECTIVE
+ db BUG, GRASS, SUPER_EFFECTIVE
+ db BUG, FIGHTING, NOT_VERY_EFFECTIVE
+ db BUG, POISON, NOT_VERY_EFFECTIVE
+ db BUG, FLYING, NOT_VERY_EFFECTIVE
+ db BUG, PSYCHIC, SUPER_EFFECTIVE
+ db BUG, GHOST, NOT_VERY_EFFECTIVE
+ db BUG, DARK, SUPER_EFFECTIVE
+ db BUG, STEEL, NOT_VERY_EFFECTIVE
+ db ROCK, FIRE, SUPER_EFFECTIVE
+ db ROCK, ICE, SUPER_EFFECTIVE
+ db ROCK, FIGHTING, NOT_VERY_EFFECTIVE
+ db ROCK, GROUND, NOT_VERY_EFFECTIVE
+ db ROCK, FLYING, SUPER_EFFECTIVE
+ db ROCK, BUG, SUPER_EFFECTIVE
+ db ROCK, STEEL, NOT_VERY_EFFECTIVE
+ db GHOST, NORMAL, NO_EFFECT
+ db GHOST, PSYCHIC, SUPER_EFFECTIVE
+ db GHOST, DARK, NOT_VERY_EFFECTIVE
+ db GHOST, STEEL, NOT_VERY_EFFECTIVE
+ db GHOST, GHOST, SUPER_EFFECTIVE
+ db DRAGON, DRAGON, SUPER_EFFECTIVE
+ db DRAGON, STEEL, NOT_VERY_EFFECTIVE
+ db DARK, FIGHTING, NOT_VERY_EFFECTIVE
+ db DARK, PSYCHIC, SUPER_EFFECTIVE
+ db DARK, GHOST, SUPER_EFFECTIVE
+ db DARK, DARK, NOT_VERY_EFFECTIVE
+ db DARK, STEEL, NOT_VERY_EFFECTIVE
+ db STEEL, FIRE, NOT_VERY_EFFECTIVE
+ db STEEL, WATER, NOT_VERY_EFFECTIVE
+ db STEEL, ELECTRIC, NOT_VERY_EFFECTIVE
+ db STEEL, ICE, SUPER_EFFECTIVE
+ db STEEL, ROCK, SUPER_EFFECTIVE
+ db STEEL, STEEL, NOT_VERY_EFFECTIVE
+
+
+; Foresight removes Ghost's immunities.
+
+ db $fe
+
+ db NORMAL, GHOST, NO_EFFECT
+ db FIGHTING, GHOST, NO_EFFECT
+
+ db $ff ; end
--- a/main.asm
+++ b/main.asm
@@ -5976,125 +5976,8 @@
INCBIN "baserom.gbc",$34000,$34bb1 - $34000
-TypeEffects: ; 34bb1
-; multiplier /= 10 (20 = 2.0 etc)
-
-; attacker defender *=
-
- db NORMAL, ROCK, 05
- db NORMAL, STEEL, 05
- db FIRE, FIRE, 05
- db FIRE, WATER, 05
- db FIRE, GRASS, 20
- db FIRE, ICE, 20
- db FIRE, BUG, 20
- db FIRE, ROCK, 05
- db FIRE, DRAGON, 05
- db FIRE, STEEL, 20
- db WATER, FIRE, 20
- db WATER, WATER, 05
- db WATER, GRASS, 05
- db WATER, GROUND, 20
- db WATER, ROCK, 20
- db WATER, DRAGON, 05
- db ELECTRIC, WATER, 20
- db ELECTRIC, ELECTRIC, 05
- db ELECTRIC, GRASS, 05
- db ELECTRIC, GROUND, 00
- db ELECTRIC, FLYING, 20
- db ELECTRIC, DRAGON, 05
- db GRASS, FIRE, 05
- db GRASS, WATER, 20
- db GRASS, GRASS, 05
- db GRASS, POISON, 05
- db GRASS, GROUND, 20
- db GRASS, FLYING, 05
- db GRASS, BUG, 05
- db GRASS, ROCK, 20
- db GRASS, DRAGON, 05
- db GRASS, STEEL, 05
- db ICE, WATER, 05
- db ICE, GRASS, 20
- db ICE, ICE, 05
- db ICE, GROUND, 20
- db ICE, FLYING, 20
- db ICE, DRAGON, 20
- db ICE, STEEL, 05
- db ICE, FIRE, 05
- db FIGHTING, NORMAL, 20
- db FIGHTING, ICE, 20
- db FIGHTING, POISON, 05
- db FIGHTING, FLYING, 05
- db FIGHTING, PSYCHIC, 05
- db FIGHTING, BUG, 05
- db FIGHTING, ROCK, 20
- db FIGHTING, DARK, 20
- db FIGHTING, STEEL, 20
- db POISON, GRASS, 20
- db POISON, POISON, 05
- db POISON, GROUND, 05
- db POISON, ROCK, 05
- db POISON, GHOST, 05
- db POISON, STEEL, 00
- db GROUND, FIRE, 20
- db GROUND, ELECTRIC, 20
- db GROUND, GRASS, 05
- db GROUND, POISON, 20
- db GROUND, FLYING, 00
- db GROUND, BUG, 05
- db GROUND, ROCK, 20
- db GROUND, STEEL, 20
- db FLYING, ELECTRIC, 05
- db FLYING, GRASS, 20
- db FLYING, FIGHTING, 20
- db FLYING, BUG, 20
- db FLYING, ROCK, 05
- db FLYING, STEEL, 05
- db PSYCHIC, FIGHTING, 20
- db PSYCHIC, POISON, 20
- db PSYCHIC, PSYCHIC, 05
- db PSYCHIC, DARK, 00
- db PSYCHIC, STEEL, 05
- db BUG, FIRE, 05
- db BUG, GRASS, 20
- db BUG, FIGHTING, 05
- db BUG, POISON, 05
- db BUG, FLYING, 05
- db BUG, PSYCHIC, 20
- db BUG, GHOST, 05
- db BUG, DARK, 20
- db BUG, STEEL, 05
- db ROCK, FIRE, 20
- db ROCK, ICE, 20
- db ROCK, FIGHTING, 05
- db ROCK, GROUND, 05
- db ROCK, FLYING, 20
- db ROCK, BUG, 20
- db ROCK, STEEL, 05
- db GHOST, NORMAL, 00
- db GHOST, PSYCHIC, 20
- db GHOST, DARK, 05
- db GHOST, STEEL, 05
- db GHOST, GHOST, 20
- db DRAGON, DRAGON, 20
- db DRAGON, STEEL, 05
- db DARK, FIGHTING, 05
- db DARK, PSYCHIC, 20
- db DARK, GHOST, 20
- db DARK, DARK, 05
- db DARK, STEEL, 05
- db STEEL, FIRE, 05
- db STEEL, WATER, 05
- db STEEL, ELECTRIC, 05
- db STEEL, ICE, 20
- db STEEL, ROCK, 20
- db STEEL, STEEL, 05
-
- db $fe ; foresight
- db NORMAL, GHOST, 00
- db FIGHTING, GHOST, 00
-
- db $ff ; end
+TypeMatchup: ; 34bb1
+INCLUDE "data/type_matchup.asm"
; 34cfd
INCBIN "baserom.gbc",$34cfd,$38000 - $34cfd