shithub: pokecrystal

ref: 2c22d9220c48b2a36550b5a5a2bae1e0988da0d6
dir: /battle/type_matchup.asm/

View raw version
; 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