Gen 1 rebalance: new types/moves, evolutions, bug fixes, phys/special split

Types:
- Add Steel, Dark, and Fairy types (constants, names, type chart)
- Retype 39 Pokemon to use the new and existing types

Moves:
- Add 20 new moves (Fairy Wind, Dazzle Gleam, Crunch, Iron Head, etc.)
- Update effect/power/type/accuracy/PP of 47 existing moves
- New effects: POISON_SIDE_EFFECT3 (75% poison), SMOG_SIDE_EFFECT
  (accuracy down + 30% poison), PARALYZE_SIDE_EFFECT3 and
  CONFUSION_SIDE_EFFECT2 (damage + guaranteed status)
- Constrict is now a high-priority move; Razor Wind has a high crit ratio

Evolutions:
- Update evolution levels for 32 species; convert Kadabra, Machoke,
  Graveler, and Haunter from trade to level-up evolutions

Bug fixes:
- Ghost is now super effective against Psychic (was no-effect)
- Trapping moves (Wrap, Bind, etc.) no longer lock the target out of acting

Physical/special split:
- Damage category is now per-move (data/moves/categories.asm) instead of
  being derived from the move's type

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Logan Nickel
2026-05-24 02:54:13 -06:00
parent 3c814341c8
commit 744bacf031
59 changed files with 606 additions and 145 deletions

View File

@@ -37,6 +37,11 @@ DEF MOVE_ACC rb
DEF MOVE_PP rb
DEF MOVE_LENGTH EQU _RS
; move damage categories (see data/moves/categories.asm)
; selects Attack/Defense vs Special per move, instead of deriving it from type
DEF PHYSICAL_MOVE EQU 0
DEF SPECIAL_MOVE EQU 1
; battle type constants (wBattleType values)
const_def
const BATTLE_TYPE_NORMAL ; 0

View File

@@ -170,6 +170,26 @@
const SUPER_FANG ; a2
const SLASH ; a3
const SUBSTITUTE ; a4
const FAIRY_WIND
const DAZZLING_GLEAM
const FLEUR_CANNON
const DRAIN_KISS
const DRAIN_PUNCH
const POISON_NEEDLE
const POISON_JAB
const POISON_SLASH
const CRUNCH
const DARK_PULSE
const PHANTOM_FORCE
const DRAGON_BREATH
const DRACO_METEOR
const ICICLE_SHARD
const HURRICANE
const IRON_HEAD
const IRON_TAIL
const FLASH_CANNON
const NIGHTMARE
const HEX
const STRUGGLE ; a5
DEF NUM_ATTACKS EQU const_value - 1

View File

@@ -91,4 +91,8 @@
const LEECH_SEED_EFFECT ; $54
const SPLASH_EFFECT ; $55
const DISABLE_EFFECT ; $56
const POISON_SIDE_EFFECT3 ; $57 75% chance to poison
const SMOG_SIDE_EFFECT ; $58 lowers accuracy 1 stage + 30% chance to poison
const PARALYZE_SIDE_EFFECT3 ; $59 always paralyzes (move still deals damage)
const CONFUSION_SIDE_EFFECT2 ; $5A always confuses (move still deals damage)
DEF NUM_MOVE_EFFECTS EQU const_value - 1

View File

@@ -11,6 +11,7 @@ DEF PHYSICAL EQU const_value
const BIRD ; $06
const BUG ; $07
const GHOST ; $08
const STEEL ; $09
DEF UNUSED_TYPES EQU const_value
const_next 20
@@ -24,5 +25,7 @@ DEF SPECIAL EQU const_value
const PSYCHIC_TYPE ; $18
const ICE ; $19
const DRAGON ; $1A
const DARK ; $1B
const FAIRY ; $1C
DEF NUM_TYPES EQU const_value

View File

@@ -3,4 +3,5 @@ HighCriticalMoves:
db RAZOR_LEAF
db CRABHAMMER
db SLASH
db RAZOR_WIND
db -1 ; end

View File

@@ -29,4 +29,5 @@ ResidualEffects2:
db SPECIAL_DOWN2_EFFECT
db ACCURACY_DOWN2_EFFECT
db EVASION_DOWN2_EFFECT
db SMOG_SIDE_EFFECT
db -1 ; end

View File

@@ -164,6 +164,26 @@ AttackAnimationPointers:
dw SuperFangAnim
dw SlashAnim
dw SubstituteAnim
dw SonicBoomAnim
dw PsychicAnim
dw HyperBeamAnim
dw LovelyKissAnim
dw DizzyPunchAnim
dw TwineedleAnim
dw DizzyPunchAnim
dw SlashAnim
dw BiteAnim
dw PsychicAnim
dw PsychicAnim
dw FlamethrowerAnim
dw HyperBeamAnim
dw SpikeCannonAnim
dw GustAnim
dw HeadbuttAnim
dw TailWhipAnim
dw IceBeamAnim
dw DreamEaterAnim
dw PsywaveAnim
dw StruggleAnim
assert_table_length NUM_ATTACKS
dw ShowPicAnim

193
data/moves/categories.asm Normal file
View File

@@ -0,0 +1,193 @@
; Damage category for each move, in move-id order (see GetMoveCategory).
; PHYSICAL_MOVE uses Attack/Defense; SPECIAL_MOVE uses Special.
; Defaults follow the move's type (the original Gen 1 split); a few moves
; are overridden so their category no longer depends on type.
MoveCategories:
table_width 1
db PHYSICAL_MOVE ; POUND
db PHYSICAL_MOVE ; KARATE_CHOP
db PHYSICAL_MOVE ; DOUBLESLAP
db PHYSICAL_MOVE ; COMET_PUNCH
db PHYSICAL_MOVE ; MEGA_PUNCH
db SPECIAL_MOVE ; PAY_DAY
db SPECIAL_MOVE ; FIRE_PUNCH
db SPECIAL_MOVE ; ICE_PUNCH
db SPECIAL_MOVE ; THUNDERPUNCH
db PHYSICAL_MOVE ; SCRATCH
db PHYSICAL_MOVE ; VICEGRIP
db PHYSICAL_MOVE ; GUILLOTINE
db PHYSICAL_MOVE ; RAZOR_WIND
db PHYSICAL_MOVE ; SWORDS_DANCE
db PHYSICAL_MOVE ; CUT
db PHYSICAL_MOVE ; GUST
db PHYSICAL_MOVE ; WING_ATTACK
db PHYSICAL_MOVE ; WHIRLWIND
db PHYSICAL_MOVE ; FLY
db PHYSICAL_MOVE ; BIND
db PHYSICAL_MOVE ; SLAM
db SPECIAL_MOVE ; VINE_WHIP
db PHYSICAL_MOVE ; STOMP
db PHYSICAL_MOVE ; DOUBLE_KICK
db PHYSICAL_MOVE ; MEGA_KICK
db PHYSICAL_MOVE ; JUMP_KICK
db PHYSICAL_MOVE ; ROLLING_KICK
db PHYSICAL_MOVE ; SAND_ATTACK
db PHYSICAL_MOVE ; HEADBUTT
db PHYSICAL_MOVE ; HORN_ATTACK
db PHYSICAL_MOVE ; FURY_ATTACK
db PHYSICAL_MOVE ; HORN_DRILL
db PHYSICAL_MOVE ; TACKLE
db PHYSICAL_MOVE ; BODY_SLAM
db PHYSICAL_MOVE ; WRAP
db PHYSICAL_MOVE ; TAKE_DOWN
db PHYSICAL_MOVE ; THRASH
db PHYSICAL_MOVE ; DOUBLE_EDGE
db PHYSICAL_MOVE ; TAIL_WHIP
db PHYSICAL_MOVE ; POISON_STING
db PHYSICAL_MOVE ; TWINEEDLE
db PHYSICAL_MOVE ; PIN_MISSILE
db PHYSICAL_MOVE ; LEER
db PHYSICAL_MOVE ; BITE
db PHYSICAL_MOVE ; GROWL
db PHYSICAL_MOVE ; ROAR
db SPECIAL_MOVE ; SING
db PHYSICAL_MOVE ; SUPERSONIC
db PHYSICAL_MOVE ; SONICBOOM
db PHYSICAL_MOVE ; DISABLE
db PHYSICAL_MOVE ; ACID
db SPECIAL_MOVE ; EMBER
db SPECIAL_MOVE ; FLAMETHROWER
db SPECIAL_MOVE ; MIST
db SPECIAL_MOVE ; WATER_GUN
db SPECIAL_MOVE ; HYDRO_PUMP
db SPECIAL_MOVE ; SURF
db SPECIAL_MOVE ; ICE_BEAM
db SPECIAL_MOVE ; BLIZZARD
db SPECIAL_MOVE ; PSYBEAM
db SPECIAL_MOVE ; BUBBLEBEAM
db SPECIAL_MOVE ; AURORA_BEAM
db PHYSICAL_MOVE ; HYPER_BEAM
db PHYSICAL_MOVE ; PECK
db PHYSICAL_MOVE ; DRILL_PECK
db PHYSICAL_MOVE ; SUBMISSION
db PHYSICAL_MOVE ; LOW_KICK
db PHYSICAL_MOVE ; COUNTER
db PHYSICAL_MOVE ; SEISMIC_TOSS
db PHYSICAL_MOVE ; STRENGTH
db SPECIAL_MOVE ; ABSORB
db SPECIAL_MOVE ; MEGA_DRAIN
db SPECIAL_MOVE ; LEECH_SEED
db PHYSICAL_MOVE ; GROWTH
db SPECIAL_MOVE ; RAZOR_LEAF
db SPECIAL_MOVE ; SOLARBEAM
db PHYSICAL_MOVE ; POISONPOWDER
db SPECIAL_MOVE ; STUN_SPORE
db SPECIAL_MOVE ; SLEEP_POWDER
db SPECIAL_MOVE ; PETAL_DANCE
db PHYSICAL_MOVE ; STRING_SHOT
db SPECIAL_MOVE ; DRAGON_RAGE
db SPECIAL_MOVE ; FIRE_SPIN
db SPECIAL_MOVE ; THUNDERSHOCK
db SPECIAL_MOVE ; THUNDERBOLT
db SPECIAL_MOVE ; THUNDER_WAVE
db SPECIAL_MOVE ; THUNDER
db PHYSICAL_MOVE ; ROCK_THROW
db PHYSICAL_MOVE ; EARTHQUAKE
db PHYSICAL_MOVE ; FISSURE
db PHYSICAL_MOVE ; DIG
db PHYSICAL_MOVE ; TOXIC
db SPECIAL_MOVE ; CONFUSION
db SPECIAL_MOVE ; PSYCHIC_M
db SPECIAL_MOVE ; HYPNOSIS
db SPECIAL_MOVE ; MEDITATE
db SPECIAL_MOVE ; AGILITY
db PHYSICAL_MOVE ; QUICK_ATTACK
db PHYSICAL_MOVE ; RAGE
db SPECIAL_MOVE ; TELEPORT
db PHYSICAL_MOVE ; NIGHT_SHADE
db PHYSICAL_MOVE ; MIMIC
db PHYSICAL_MOVE ; SCREECH
db PHYSICAL_MOVE ; DOUBLE_TEAM
db PHYSICAL_MOVE ; RECOVER
db PHYSICAL_MOVE ; HARDEN
db PHYSICAL_MOVE ; MINIMIZE
db PHYSICAL_MOVE ; SMOKESCREEN
db PHYSICAL_MOVE ; CONFUSE_RAY
db SPECIAL_MOVE ; WITHDRAW
db PHYSICAL_MOVE ; DEFENSE_CURL
db SPECIAL_MOVE ; BARRIER
db SPECIAL_MOVE ; LIGHT_SCREEN
db SPECIAL_MOVE ; HAZE
db SPECIAL_MOVE ; REFLECT
db PHYSICAL_MOVE ; FOCUS_ENERGY
db PHYSICAL_MOVE ; BIDE
db PHYSICAL_MOVE ; METRONOME
db PHYSICAL_MOVE ; MIRROR_MOVE
db PHYSICAL_MOVE ; SELFDESTRUCT
db SPECIAL_MOVE ; EGG_BOMB
db PHYSICAL_MOVE ; LICK
db PHYSICAL_MOVE ; SMOG
db PHYSICAL_MOVE ; SLUDGE
db PHYSICAL_MOVE ; BONE_CLUB
db SPECIAL_MOVE ; FIRE_BLAST
db SPECIAL_MOVE ; WATERFALL
db SPECIAL_MOVE ; CLAMP
db PHYSICAL_MOVE ; SWIFT
db PHYSICAL_MOVE ; SKULL_BASH
db PHYSICAL_MOVE ; SPIKE_CANNON
db PHYSICAL_MOVE ; CONSTRICT
db SPECIAL_MOVE ; AMNESIA
db SPECIAL_MOVE ; KINESIS
db PHYSICAL_MOVE ; SOFTBOILED
db PHYSICAL_MOVE ; HI_JUMP_KICK
db PHYSICAL_MOVE ; GLARE
db SPECIAL_MOVE ; DREAM_EATER
db PHYSICAL_MOVE ; POISON_GAS
db SPECIAL_MOVE ; BARRAGE
db PHYSICAL_MOVE ; LEECH_LIFE
db SPECIAL_MOVE ; LOVELY_KISS
db PHYSICAL_MOVE ; SKY_ATTACK
db PHYSICAL_MOVE ; TRANSFORM
db SPECIAL_MOVE ; BUBBLE
db PHYSICAL_MOVE ; DIZZY_PUNCH
db SPECIAL_MOVE ; SPORE
db PHYSICAL_MOVE ; FLASH
db SPECIAL_MOVE ; PSYWAVE
db PHYSICAL_MOVE ; SPLASH
db PHYSICAL_MOVE ; ACID_ARMOR
db SPECIAL_MOVE ; CRABHAMMER
db PHYSICAL_MOVE ; EXPLOSION
db PHYSICAL_MOVE ; FURY_SWIPES
db PHYSICAL_MOVE ; BONEMERANG
db SPECIAL_MOVE ; REST
db PHYSICAL_MOVE ; ROCK_SLIDE
db PHYSICAL_MOVE ; HYPER_FANG
db PHYSICAL_MOVE ; SHARPEN
db PHYSICAL_MOVE ; CONVERSION
db PHYSICAL_MOVE ; TRI_ATTACK
db PHYSICAL_MOVE ; SUPER_FANG
db PHYSICAL_MOVE ; SLASH
db PHYSICAL_MOVE ; SUBSTITUTE
db SPECIAL_MOVE ; FAIRY_WIND
db SPECIAL_MOVE ; DAZZLING_GLEAM
db SPECIAL_MOVE ; FLEUR_CANNON
db SPECIAL_MOVE ; DRAIN_KISS
db PHYSICAL_MOVE ; DRAIN_PUNCH
db PHYSICAL_MOVE ; POISON_NEEDLE
db PHYSICAL_MOVE ; POISON_JAB
db PHYSICAL_MOVE ; POISON_SLASH
db SPECIAL_MOVE ; CRUNCH
db SPECIAL_MOVE ; DARK_PULSE
db PHYSICAL_MOVE ; PHANTOM_FORCE
db SPECIAL_MOVE ; DRAGON_BREATH
db SPECIAL_MOVE ; DRACO_METEOR
db SPECIAL_MOVE ; ICICLE_SHARD
db PHYSICAL_MOVE ; HURRICANE
db PHYSICAL_MOVE ; IRON_HEAD
db PHYSICAL_MOVE ; IRON_TAIL
db PHYSICAL_MOVE ; FLASH_CANNON
db PHYSICAL_MOVE ; NIGHTMARE
db PHYSICAL_MOVE ; HEX
db PHYSICAL_MOVE ; STRUGGLE
assert_table_length NUM_ATTACKS

View File

@@ -87,4 +87,8 @@ MoveEffectPointerTable:
dw LeechSeedEffect ; LEECH_SEED_EFFECT
dw SplashEffect ; SPLASH_EFFECT
dw DisableEffect ; DISABLE_EFFECT
dw PoisonEffect ; POISON_SIDE_EFFECT3
dw SmogSideEffect ; SMOG_SIDE_EFFECT
dw ParalyzeAllSideEffect ; PARALYZE_SIDE_EFFECT3
dw ConfusionAllSideEffect ; CONFUSION_SIDE_EFFECT2
assert_table_length NUM_MOVE_EFFECTS

View File

@@ -13,53 +13,53 @@ Moves:
table_width MOVE_LENGTH
move POUND, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35
move KARATE_CHOP, NO_ADDITIONAL_EFFECT, 50, NORMAL, 100, 25
move DOUBLESLAP, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 10
move COMET_PUNCH, TWO_TO_FIVE_ATTACKS_EFFECT, 18, NORMAL, 85, 15
move MEGA_PUNCH, NO_ADDITIONAL_EFFECT, 80, NORMAL, 85, 20
move PAY_DAY, PAY_DAY_EFFECT, 40, NORMAL, 100, 20
move DOUBLESLAP, TWO_TO_FIVE_ATTACKS_EFFECT, 25, NORMAL, 85, 25
move COMET_PUNCH, TWO_TO_FIVE_ATTACKS_EFFECT, 25, STEEL, 85, 15
move MEGA_PUNCH, NO_ADDITIONAL_EFFECT, 80, FIGHTING, 100, 20
move PAY_DAY, PAY_DAY_EFFECT, 40, DARK, 100, 20
move FIRE_PUNCH, BURN_SIDE_EFFECT1, 75, FIRE, 100, 15
move ICE_PUNCH, FREEZE_SIDE_EFFECT1, 75, ICE, 100, 15
move THUNDERPUNCH, PARALYZE_SIDE_EFFECT1, 75, ELECTRIC, 100, 15
move SCRATCH, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35
move VICEGRIP, NO_ADDITIONAL_EFFECT, 55, NORMAL, 100, 30
move GUILLOTINE, OHKO_EFFECT, 1, NORMAL, 30, 5
move RAZOR_WIND, CHARGE_EFFECT, 80, NORMAL, 75, 10
move RAZOR_WIND, NO_ADDITIONAL_EFFECT, 55, FLYING, 95, 25
move SWORDS_DANCE, ATTACK_UP2_EFFECT, 0, NORMAL, 100, 30
move CUT, NO_ADDITIONAL_EFFECT, 50, NORMAL, 95, 30
move GUST, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35
move WING_ATTACK, NO_ADDITIONAL_EFFECT, 35, FLYING, 100, 35
move WHIRLWIND, SWITCH_AND_TELEPORT_EFFECT, 0, NORMAL, 85, 20
move FLY, FLY_EFFECT, 70, FLYING, 95, 15
move BIND, TRAPPING_EFFECT, 15, NORMAL, 75, 20
move SLAM, NO_ADDITIONAL_EFFECT, 80, NORMAL, 75, 20
move BIND, TRAPPING_EFFECT, 15, ROCK, 100, 20
move SLAM, NO_ADDITIONAL_EFFECT, 80, FIGHTING, 100, 20
move VINE_WHIP, NO_ADDITIONAL_EFFECT, 35, GRASS, 100, 10
move STOMP, FLINCH_SIDE_EFFECT2, 65, NORMAL, 100, 20
move DOUBLE_KICK, ATTACK_TWICE_EFFECT, 30, FIGHTING, 100, 30
move MEGA_KICK, NO_ADDITIONAL_EFFECT, 120, NORMAL, 75, 5
move JUMP_KICK, JUMP_KICK_EFFECT, 70, FIGHTING, 95, 25
move MEGA_KICK, NO_ADDITIONAL_EFFECT, 120, FIGHTING, 100, 5
move JUMP_KICK, NO_ADDITIONAL_EFFECT, 70, FIGHTING, 95, 25
move ROLLING_KICK, FLINCH_SIDE_EFFECT2, 60, FIGHTING, 85, 15
move SAND_ATTACK, ACCURACY_DOWN1_EFFECT, 0, NORMAL, 100, 15
move HEADBUTT, FLINCH_SIDE_EFFECT2, 70, NORMAL, 100, 15
move HORN_ATTACK, NO_ADDITIONAL_EFFECT, 65, NORMAL, 100, 25
move HORN_ATTACK, NO_ADDITIONAL_EFFECT, 65, ROCK, 100, 25
move FURY_ATTACK, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 20
move HORN_DRILL, OHKO_EFFECT, 1, NORMAL, 30, 5
move TACKLE, NO_ADDITIONAL_EFFECT, 35, NORMAL, 95, 35
move BODY_SLAM, PARALYZE_SIDE_EFFECT2, 85, NORMAL, 100, 15
move WRAP, TRAPPING_EFFECT, 15, NORMAL, 85, 20
move WRAP, TRAPPING_EFFECT, 15, NORMAL, 100, 35
move TAKE_DOWN, RECOIL_EFFECT, 90, NORMAL, 85, 20
move THRASH, THRASH_PETAL_DANCE_EFFECT, 90, NORMAL, 100, 20
move DOUBLE_EDGE, RECOIL_EFFECT, 100, NORMAL, 100, 15
move TAIL_WHIP, DEFENSE_DOWN1_EFFECT, 0, NORMAL, 100, 30
move POISON_STING, POISON_SIDE_EFFECT1, 15, POISON, 100, 35
move TWINEEDLE, TWINEEDLE_EFFECT, 25, BUG, 100, 20
move PIN_MISSILE, TWO_TO_FIVE_ATTACKS_EFFECT, 14, BUG, 85, 20
move POISON_STING, POISON_SIDE_EFFECT3, 25, POISON, 100, 35
move TWINEEDLE, TWINEEDLE_EFFECT, 35, BUG, 100, 20
move PIN_MISSILE, TWO_TO_FIVE_ATTACKS_EFFECT, 25, BUG, 85, 20
move LEER, DEFENSE_DOWN1_EFFECT, 0, NORMAL, 100, 30
move BITE, FLINCH_SIDE_EFFECT1, 60, NORMAL, 100, 25
move GROWL, ATTACK_DOWN1_EFFECT, 0, NORMAL, 100, 40
move ROAR, SWITCH_AND_TELEPORT_EFFECT, 0, NORMAL, 100, 20
move SING, SLEEP_EFFECT, 0, NORMAL, 55, 15
move SUPERSONIC, CONFUSION_EFFECT, 0, NORMAL, 55, 20
move SONICBOOM, SPECIAL_DAMAGE_EFFECT, 1, NORMAL, 90, 20
move SING, SLEEP_EFFECT, 0, FAIRY, 100, 15
move SUPERSONIC, CONFUSION_EFFECT, 0, NORMAL, 100, 15
move SONICBOOM, SPECIAL_DAMAGE_EFFECT, 40, FLYING, 100, 20
move DISABLE, DISABLE_EFFECT, 0, NORMAL, 55, 20
move ACID, DEFENSE_DOWN_SIDE_EFFECT, 40, POISON, 100, 30
move EMBER, BURN_SIDE_EFFECT1, 40, FIRE, 100, 25
@@ -76,49 +76,49 @@ Moves:
move HYPER_BEAM, HYPER_BEAM_EFFECT, 150, NORMAL, 90, 5
move PECK, NO_ADDITIONAL_EFFECT, 35, FLYING, 100, 35
move DRILL_PECK, NO_ADDITIONAL_EFFECT, 80, FLYING, 100, 20
move SUBMISSION, RECOIL_EFFECT, 80, FIGHTING, 80, 25
move SUBMISSION, NO_ADDITIONAL_EFFECT, 80, FIGHTING, 95, 25
move LOW_KICK, FLINCH_SIDE_EFFECT2, 50, FIGHTING, 90, 20
move COUNTER, NO_ADDITIONAL_EFFECT, 1, FIGHTING, 100, 20
move SEISMIC_TOSS, SPECIAL_DAMAGE_EFFECT, 1, FIGHTING, 100, 20
move SEISMIC_TOSS, NO_ADDITIONAL_EFFECT, 80, FIGHTING, 100, 20
move STRENGTH, NO_ADDITIONAL_EFFECT, 80, NORMAL, 100, 15
move ABSORB, DRAIN_HP_EFFECT, 20, GRASS, 100, 20
move MEGA_DRAIN, DRAIN_HP_EFFECT, 40, GRASS, 100, 10
move ABSORB, DRAIN_HP_EFFECT, 30, GRASS, 100, 20
move MEGA_DRAIN, DRAIN_HP_EFFECT, 60, GRASS, 100, 10
move LEECH_SEED, LEECH_SEED_EFFECT, 0, GRASS, 90, 10
move GROWTH, SPECIAL_UP1_EFFECT, 0, NORMAL, 100, 40
move RAZOR_LEAF, NO_ADDITIONAL_EFFECT, 55, GRASS, 95, 25
move SOLARBEAM, CHARGE_EFFECT, 120, GRASS, 100, 10
move POISONPOWDER, POISON_EFFECT, 0, POISON, 75, 35
move STUN_SPORE, PARALYZE_EFFECT, 0, GRASS, 75, 30
move SLEEP_POWDER, SLEEP_EFFECT, 0, GRASS, 75, 15
move POISONPOWDER, POISON_EFFECT, 0, POISON, 100, 35
move STUN_SPORE, PARALYZE_EFFECT, 0, GRASS, 100, 30
move SLEEP_POWDER, SLEEP_EFFECT, 0, GRASS, 100, 15
move PETAL_DANCE, THRASH_PETAL_DANCE_EFFECT, 70, GRASS, 100, 20
move STRING_SHOT, SPEED_DOWN1_EFFECT, 0, BUG, 95, 40
move DRAGON_RAGE, SPECIAL_DAMAGE_EFFECT, 1, DRAGON, 100, 10
move FIRE_SPIN, TRAPPING_EFFECT, 15, FIRE, 70, 15
move FIRE_SPIN, TRAPPING_EFFECT, 25, FIRE, 100, 15
move THUNDERSHOCK, PARALYZE_SIDE_EFFECT1, 40, ELECTRIC, 100, 30
move THUNDERBOLT, PARALYZE_SIDE_EFFECT1, 95, ELECTRIC, 100, 15
move THUNDER_WAVE, PARALYZE_EFFECT, 0, ELECTRIC, 100, 20
move THUNDER, PARALYZE_SIDE_EFFECT1, 120, ELECTRIC, 70, 10
move ROCK_THROW, NO_ADDITIONAL_EFFECT, 50, ROCK, 65, 15
move ROCK_THROW, NO_ADDITIONAL_EFFECT, 50, ROCK, 100, 15
move EARTHQUAKE, NO_ADDITIONAL_EFFECT, 100, GROUND, 100, 10
move FISSURE, OHKO_EFFECT, 1, GROUND, 30, 5
move DIG, CHARGE_EFFECT, 100, GROUND, 100, 10
move TOXIC, POISON_EFFECT, 0, POISON, 85, 10
move TOXIC, POISON_EFFECT, 0, POISON, 100, 10
move CONFUSION, CONFUSION_SIDE_EFFECT, 50, PSYCHIC_TYPE, 100, 25
move PSYCHIC_M, SPECIAL_DOWN_SIDE_EFFECT, 90, PSYCHIC_TYPE, 100, 10
move HYPNOSIS, SLEEP_EFFECT, 0, PSYCHIC_TYPE, 60, 20
move HYPNOSIS, SLEEP_EFFECT, 0, PSYCHIC_TYPE, 100, 20
move MEDITATE, ATTACK_UP1_EFFECT, 0, PSYCHIC_TYPE, 100, 40
move AGILITY, SPEED_UP2_EFFECT, 0, PSYCHIC_TYPE, 100, 30
move QUICK_ATTACK, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 30
move RAGE, RAGE_EFFECT, 20, NORMAL, 100, 20
move TELEPORT, SWITCH_AND_TELEPORT_EFFECT, 0, PSYCHIC_TYPE, 100, 20
move NIGHT_SHADE, SPECIAL_DAMAGE_EFFECT, 0, GHOST, 100, 15
move NIGHT_SHADE, NO_ADDITIONAL_EFFECT, 75, GHOST, 100, 15
move MIMIC, MIMIC_EFFECT, 0, NORMAL, 100, 10
move SCREECH, DEFENSE_DOWN2_EFFECT, 0, NORMAL, 85, 40
move SCREECH, DEFENSE_DOWN2_EFFECT, 0, NORMAL, 100, 40
move DOUBLE_TEAM, EVASION_UP1_EFFECT, 0, NORMAL, 100, 15
move RECOVER, HEAL_EFFECT, 0, NORMAL, 100, 20
move HARDEN, DEFENSE_UP1_EFFECT, 0, NORMAL, 100, 30
move MINIMIZE, EVASION_UP1_EFFECT, 0, NORMAL, 100, 20
move SMOKESCREEN, ACCURACY_DOWN1_EFFECT, 0, NORMAL, 100, 20
move SMOKESCREEN, ACCURACY_DOWN2_EFFECT, 0, NORMAL, 100, 20
move CONFUSE_RAY, CONFUSION_EFFECT, 0, GHOST, 100, 10
move WITHDRAW, DEFENSE_UP1_EFFECT, 0, WATER, 100, 40
move DEFENSE_CURL, DEFENSE_UP1_EFFECT, 0, NORMAL, 100, 40
@@ -131,43 +131,43 @@ Moves:
move METRONOME, METRONOME_EFFECT, 0, NORMAL, 100, 10
move MIRROR_MOVE, MIRROR_MOVE_EFFECT, 0, FLYING, 100, 20
move SELFDESTRUCT, EXPLODE_EFFECT, 130, NORMAL, 100, 5
move EGG_BOMB, NO_ADDITIONAL_EFFECT, 100, NORMAL, 75, 10
move LICK, PARALYZE_SIDE_EFFECT2, 20, GHOST, 100, 30
move SMOG, POISON_SIDE_EFFECT2, 20, POISON, 70, 20
move EGG_BOMB, NO_ADDITIONAL_EFFECT, 100, GRASS, 95, 10
move LICK, PARALYZE_SIDE_EFFECT3, 25, GHOST, 100, 30
move SMOG, SMOG_SIDE_EFFECT, 20, POISON, 100, 15
move SLUDGE, POISON_SIDE_EFFECT2, 65, POISON, 100, 20
move BONE_CLUB, FLINCH_SIDE_EFFECT1, 65, GROUND, 85, 20
move BONE_CLUB, FLINCH_SIDE_EFFECT1, 65, GROUND, 100, 20
move FIRE_BLAST, BURN_SIDE_EFFECT2, 120, FIRE, 85, 5
move WATERFALL, NO_ADDITIONAL_EFFECT, 80, WATER, 100, 15
move CLAMP, TRAPPING_EFFECT, 35, WATER, 75, 10
move SWIFT, SWIFT_EFFECT, 60, NORMAL, 100, 20
move SKULL_BASH, CHARGE_EFFECT, 100, NORMAL, 100, 15
move SPIKE_CANNON, TWO_TO_FIVE_ATTACKS_EFFECT, 20, NORMAL, 100, 15
move CONSTRICT, SPEED_DOWN_SIDE_EFFECT, 10, NORMAL, 100, 35
move SPIKE_CANNON, TWO_TO_FIVE_ATTACKS_EFFECT, 20, ROCK, 100, 15
move CONSTRICT, FLINCH_SIDE_EFFECT2, 35, GHOST, 100, 15
move AMNESIA, SPECIAL_UP2_EFFECT, 0, PSYCHIC_TYPE, 100, 20
move KINESIS, ACCURACY_DOWN1_EFFECT, 0, PSYCHIC_TYPE, 80, 15
move SOFTBOILED, HEAL_EFFECT, 0, NORMAL, 100, 10
move HI_JUMP_KICK, JUMP_KICK_EFFECT, 85, FIGHTING, 90, 20
move GLARE, PARALYZE_EFFECT, 0, NORMAL, 75, 30
move DREAM_EATER, DREAM_EATER_EFFECT, 100, PSYCHIC_TYPE, 100, 15
move POISON_GAS, POISON_EFFECT, 0, POISON, 55, 40
move BARRAGE, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 20
move LEECH_LIFE, DRAIN_HP_EFFECT, 20, BUG, 100, 15
move LOVELY_KISS, SLEEP_EFFECT, 0, NORMAL, 75, 10
move POISON_GAS, POISON_EFFECT, 0, POISON, 100, 40
move BARRAGE, TWO_TO_FIVE_ATTACKS_EFFECT, 25, DRAGON, 85, 20
move LEECH_LIFE, DRAIN_HP_EFFECT, 80, BUG, 100, 15
move LOVELY_KISS, SLEEP_EFFECT, 0, FAIRY, 100, 10
move SKY_ATTACK, CHARGE_EFFECT, 140, FLYING, 90, 5
move TRANSFORM, TRANSFORM_EFFECT, 0, NORMAL, 100, 10
move BUBBLE, SPEED_DOWN_SIDE_EFFECT, 20, WATER, 100, 30
move DIZZY_PUNCH, NO_ADDITIONAL_EFFECT, 70, NORMAL, 100, 10
move SPORE, SLEEP_EFFECT, 0, GRASS, 100, 15
move FLASH, ACCURACY_DOWN1_EFFECT, 0, NORMAL, 70, 20
move PSYWAVE, SPECIAL_DAMAGE_EFFECT, 1, PSYCHIC_TYPE, 80, 15
move PSYWAVE, CONFUSION_SIDE_EFFECT2, 25, PSYCHIC_TYPE, 100, 15
move SPLASH, SPLASH_EFFECT, 0, NORMAL, 100, 40
move ACID_ARMOR, DEFENSE_UP2_EFFECT, 0, POISON, 100, 40
move CRABHAMMER, NO_ADDITIONAL_EFFECT, 90, WATER, 85, 10
move CRABHAMMER, NO_ADDITIONAL_EFFECT, 90, WATER, 100, 10
move EXPLOSION, EXPLODE_EFFECT, 170, NORMAL, 100, 5
move FURY_SWIPES, TWO_TO_FIVE_ATTACKS_EFFECT, 18, NORMAL, 80, 15
move BONEMERANG, ATTACK_TWICE_EFFECT, 50, GROUND, 90, 10
move BONEMERANG, ATTACK_TWICE_EFFECT, 55, GROUND, 100, 10
move REST, HEAL_EFFECT, 0, PSYCHIC_TYPE, 100, 10
move ROCK_SLIDE, NO_ADDITIONAL_EFFECT, 75, ROCK, 90, 10
move ROCK_SLIDE, FLINCH_SIDE_EFFECT2, 75, ROCK, 100, 10
move HYPER_FANG, FLINCH_SIDE_EFFECT1, 80, NORMAL, 90, 15
move SHARPEN, ATTACK_UP1_EFFECT, 0, NORMAL, 100, 30
move CONVERSION, CONVERSION_EFFECT, 0, NORMAL, 100, 30
@@ -175,5 +175,25 @@ Moves:
move SUPER_FANG, SUPER_FANG_EFFECT, 1, NORMAL, 90, 10
move SLASH, NO_ADDITIONAL_EFFECT, 70, NORMAL, 100, 20
move SUBSTITUTE, SUBSTITUTE_EFFECT, 0, NORMAL, 100, 10
move FAIRY_WIND, SPEED_DOWN1_EFFECT, 20, FAIRY, 100, 30
move DAZZLING_GLEAM, NO_ADDITIONAL_EFFECT, 80, FAIRY, 100, 10
move FLEUR_CANNON, HYPER_BEAM_EFFECT, 150, FAIRY, 90, 5
move DRAIN_KISS, DRAIN_HP_EFFECT, 40, FAIRY, 100, 15
move DRAIN_PUNCH, DRAIN_HP_EFFECT, 40, FIGHTING, 100, 15
move POISON_NEEDLE, TWINEEDLE_EFFECT, 35, POISON, 100, 20
move POISON_JAB, POISON_SIDE_EFFECT2, 80, POISON, 100, 10
move POISON_SLASH, POISON_SIDE_EFFECT2, 70, POISON, 100, 15
move CRUNCH, FLINCH_SIDE_EFFECT2, 60, DARK, 100, 15
move DARK_PULSE, NO_ADDITIONAL_EFFECT, 90, DARK, 100, 15
move PHANTOM_FORCE, NO_ADDITIONAL_EFFECT, 90, GHOST, 100, 10
move DRAGON_BREATH, PARALYZE_SIDE_EFFECT2, 80, DRAGON, 100, 5
move DRACO_METEOR, HYPER_BEAM_EFFECT, 150, DRAGON, 90, 5
move ICICLE_SHARD, TWO_TO_FIVE_ATTACKS_EFFECT, 35, ICE, 85, 20
move HURRICANE, CONFUSION_SIDE_EFFECT, 110, FLYING, 80, 5
move IRON_HEAD, FLINCH_SIDE_EFFECT2, 75, STEEL, 100, 10
move IRON_TAIL, DEFENSE_DOWN_SIDE_EFFECT, 90, STEEL, 100, 10
move FLASH_CANNON, SPECIAL_DOWN_SIDE_EFFECT, 80, STEEL, 100, 10
move NIGHTMARE, DREAM_EATER_EFFECT, 100, GHOST, 100, 5
move HEX, DISABLE_EFFECT, 50, GHOST, 100, 15
move STRUGGLE, RECOIL_EFFECT, 50, NORMAL, 100, 10
assert_table_length NUM_ATTACKS

View File

@@ -165,5 +165,25 @@ MoveNames::
li "SUPER FANG"
li "SLASH"
li "SUBSTITUTE"
li "FAIRY WIND"
li "DAZZLE GLEAM"
li "FLEUR CANNON"
li "DRAIN KISS"
li "DRAIN PUNCH"
li "POISONNEEDLE"
li "POISON JAB"
li "POISON SLASH"
li "CRUNCH"
li "DARK PULSE"
li "PHANTOMFORCE"
li "DRAGONBREATH"
li "DRACO METEOR"
li "ICICLE SHARD"
li "HURRICANE"
li "IRON HEAD"
li "IRON TAIL"
li "FLASH CANNON"
li "NIGHTMARE"
li "HEX"
li "STRUGGLE"
assert_list_length NUM_ATTACKS

View File

@@ -165,6 +165,26 @@ MoveSoundTable:
db SFX_BATTLE_26, $f0, $ff ; SUPER_FANG
db SFX_NOT_VERY_EFFECTIVE, $01, $ff ; SLASH
db SFX_BATTLE_2C, $d8, $04 ; SUBSTITUTE
db SFX_BATTLE_27, $00, $80 ; FAIRY_WIND
db SFX_PSYCHIC_M, $00, $80 ; DAZZLING_GLEAM
db SFX_BATTLE_36, $00, $80 ; FLEUR_CANNON
db SFX_BATTLE_09, $88, $10 ; DRAIN_KISS
db SFX_FAINT_FALL, $ff, $04 ; DRAIN_PUNCH
db SFX_BATTLE_1B, $20, $c0 ; POISON_NEEDLE
db SFX_FAINT_FALL, $ff, $04 ; POISON_JAB
db SFX_NOT_VERY_EFFECTIVE, $01, $ff ; POISON_SLASH
db SFX_BATTLE_1E, $00, $80 ; CRUNCH
db SFX_PSYCHIC_M, $00, $80 ; DARK_PULSE
db SFX_PSYCHIC_M, $00, $80 ; PHANTOM_FORCE
db SFX_BATTLE_19, $21, $e0 ; DRAGON_BREATH
db SFX_BATTLE_36, $00, $80 ; DRACO_METEOR
db SFX_BATTLE_26, $1f, $18 ; ICICLE_SHARD
db SFX_BATTLE_12, $00, $c0 ; HURRICANE
db SFX_BATTLE_18, $00, $80 ; IRON_HEAD
db SFX_BATTLE_21, $00, $80 ; IRON_TAIL
db SFX_BATTLE_28, $40, $80 ; FLASH_CANNON
db SFX_BATTLE_35, $42, $01 ; NIGHTMARE
db SFX_BATTLE_0C, $f0, $f0 ; HEX
db SFX_BATTLE_0B, $00, $80 ; STRUGGLE
assert_table_length NUM_ATTACKS
db SFX_BATTLE_0B, $00, $80

View File

@@ -3,7 +3,7 @@
db 80, 105, 65, 130, 60
; hp atk def spd spc
db ROCK, FLYING ; type
db ROCK, DRAGON ; type
db 45 ; catch rate
db 202 ; base exp

View File

@@ -3,7 +3,7 @@
db 60, 85, 69, 80, 65
; hp atk def spd spc
db POISON, POISON ; type
db POISON, DARK ; type
db 90 ; catch rate
db 147 ; base exp

View File

@@ -3,7 +3,7 @@
db 79, 83, 100, 78, 85
; hp atk def spd spc
db WATER, WATER ; type
db WATER, STEEL ; type
db 45 ; catch rate
db 210 ; base exp

View File

@@ -3,7 +3,7 @@
db 78, 84, 78, 100, 85
; hp atk def spd spc
db FIRE, FLYING ; type
db FIRE, DRAGON ; type
db 45 ; catch rate
db 209 ; base exp

View File

@@ -3,7 +3,7 @@
db 95, 70, 73, 60, 85
; hp atk def spd spc
db NORMAL, NORMAL ; type
db FAIRY, FAIRY ; type
db 25 ; catch rate
db 129 ; base exp

View File

@@ -3,7 +3,7 @@
db 70, 45, 48, 35, 60
; hp atk def spd spc
db NORMAL, NORMAL ; type
db FAIRY, FAIRY ; type
db 150 ; catch rate
db 68 ; base exp

View File

@@ -4,7 +4,7 @@
; hp atk def spd spc
db DRAGON, DRAGON ; type
db 45 ; catch rate
db 150 ; catch rate
db 144 ; base exp
INCBIN "gfx/pokemon/front/dragonair.pic", 0, 1 ; sprite dimensions

View File

@@ -3,7 +3,7 @@
db 91, 134, 95, 80, 100
; hp atk def spd spc
db DRAGON, FLYING ; type
db DRAGON, DRAGON ; type
db 45 ; catch rate
db 218 ; base exp

View File

@@ -4,7 +4,7 @@
; hp atk def spd spc
db DRAGON, DRAGON ; type
db 45 ; catch rate
db 190 ; catch rate
db 67 ; base exp
INCBIN "gfx/pokemon/front/dratini.pic", 0, 1 ; sprite dimensions

View File

@@ -3,7 +3,7 @@
db 60, 50, 70, 140, 80
; hp atk def spd spc
db ELECTRIC, ELECTRIC ; type
db ELECTRIC, STEEL ; type
db 60 ; catch rate
db 150 ; base exp

View File

@@ -3,7 +3,7 @@
db 52, 65, 55, 60, 58
; hp atk def spd spc
db NORMAL, FLYING ; type
db FLYING, FIGHTING ; type
db 45 ; catch rate
db 94 ; base exp

View File

@@ -3,7 +3,7 @@
db 65, 90, 65, 100, 61
; hp atk def spd spc
db NORMAL, FLYING ; type
db FLYING, DARK ; type
db 90 ; catch rate
db 162 ; base exp

View File

@@ -3,7 +3,7 @@
db 30, 35, 30, 80, 100
; hp atk def spd spc
db GHOST, POISON ; type
db GHOST, GHOST ; type
db 190 ; catch rate
db 95 ; base exp

View File

@@ -3,7 +3,7 @@
db 60, 65, 60, 110, 130
; hp atk def spd spc
db GHOST, POISON ; type
db GHOST, GHOST ; type
db 45 ; catch rate
db 190 ; base exp

View File

@@ -3,7 +3,7 @@
db 40, 80, 100, 20, 30
; hp atk def spd spc
db ROCK, GROUND ; type
db ROCK, ROCK ; type
db 255 ; catch rate
db 86 ; base exp

View File

@@ -3,7 +3,7 @@
db 45, 67, 60, 63, 50
; hp atk def spd spc
db WATER, WATER ; type
db WATER, FAIRY ; type
db 225 ; catch rate
db 111 ; base exp

View File

@@ -1,9 +1,9 @@
db DEX_GOLDUCK ; pokedex id
db 80, 82, 78, 85, 80
db 80, 80, 85, 101, 100
; hp atk def spd spc
db WATER, WATER ; type
db WATER, PSYCHIC_TYPE ; type
db 75 ; catch rate
db 174 ; base exp
@@ -18,8 +18,8 @@
DOUBLE_EDGE, BUBBLEBEAM, WATER_GUN, ICE_BEAM, BLIZZARD, \
HYPER_BEAM, PAY_DAY, SUBMISSION, COUNTER, SEISMIC_TOSS, \
RAGE, DIG, MIMIC, DOUBLE_TEAM, BIDE, \
SWIFT, SKULL_BASH, REST, SUBSTITUTE, SURF, \
STRENGTH
SWIFT, SKULL_BASH, REST, SUBSTITUTE, PSYCHIC_M, \
STRENGTH, SURF
; end
db 0 ; padding

View File

@@ -3,7 +3,7 @@
db 80, 110, 130, 45, 55
; hp atk def spd spc
db ROCK, GROUND ; type
db ROCK, ROCK ; type
db 45 ; catch rate
db 177 ; base exp

View File

@@ -3,7 +3,7 @@
db 55, 95, 115, 35, 45
; hp atk def spd spc
db ROCK, GROUND ; type
db ROCK, ROCK ; type
db 120 ; catch rate
db 134 ; base exp

View File

@@ -3,7 +3,7 @@
db 95, 125, 79, 81, 100
; hp atk def spd spc
db WATER, FLYING ; type
db WATER, DRAGON ; type
db 45 ; catch rate
db 214 ; base exp

View File

@@ -3,7 +3,7 @@
db 45, 50, 45, 95, 115
; hp atk def spd spc
db GHOST, POISON ; type
db GHOST, GHOST ; type
db 90 ; catch rate
db 126 ; base exp

View File

@@ -3,7 +3,7 @@
db 85, 73, 70, 67, 115
; hp atk def spd spc
db PSYCHIC_TYPE, PSYCHIC_TYPE ; type
db PSYCHIC_TYPE, DARK ; type
db 75 ; catch rate
db 165 ; base exp

View File

@@ -3,7 +3,7 @@
db 60, 115, 105, 80, 70
; hp atk def spd spc
db ROCK, WATER ; type
db ROCK, STEEL ; type
db 45 ; catch rate
db 201 ; base exp

View File

@@ -3,7 +3,7 @@
db 25, 35, 70, 45, 95
; hp atk def spd spc
db ELECTRIC, ELECTRIC ; type
db ELECTRIC, STEEL ; type
db 190 ; catch rate
db 89 ; base exp

View File

@@ -3,7 +3,7 @@
db 50, 60, 95, 70, 120
; hp atk def spd spc
db ELECTRIC, ELECTRIC ; type
db ELECTRIC, STEEL ; type
db 60 ; catch rate
db 161 ; base exp

View File

@@ -3,7 +3,7 @@
db 40, 45, 65, 90, 100
; hp atk def spd spc
db PSYCHIC_TYPE, PSYCHIC_TYPE ; type
db PSYCHIC_TYPE, FAIRY ; type
db 45 ; catch rate
db 136 ; base exp

View File

@@ -3,7 +3,7 @@
db 73, 76, 75, 100, 100
; hp atk def spd spc
db FIRE, FIRE ; type
db FIRE, GHOST ; type
db 75 ; catch rate
db 178 ; base exp

View File

@@ -3,7 +3,7 @@
db 45, 50, 55, 30, 75
; hp atk def spd spc
db GRASS, POISON ; type
db GRASS, GRASS ; type
db 255 ; catch rate
db 78 ; base exp

View File

@@ -3,7 +3,7 @@
db 35, 45, 160, 70, 30
; hp atk def spd spc
db ROCK, GROUND ; type
db ROCK, ROCK ; type
db 45 ; catch rate
db 108 ; base exp

View File

@@ -3,7 +3,7 @@
db 60, 95, 80, 30, 80
; hp atk def spd spc
db BUG, GRASS ; type
db BUG, GHOST ; type
db 75 ; catch rate
db 128 ; base exp

View File

@@ -3,7 +3,7 @@
db 65, 70, 60, 115, 65
; hp atk def spd spc
db NORMAL, NORMAL ; type
db NORMAL, DARK ; type
db 90 ; catch rate
db 148 ; base exp

View File

@@ -3,7 +3,7 @@
db 65, 125, 100, 85, 55
; hp atk def spd spc
db BUG, BUG ; type
db BUG, DARK ; type
db 45 ; catch rate
db 200 ; base exp

View File

@@ -3,7 +3,7 @@
db 50, 52, 48, 55, 50
; hp atk def spd spc
db WATER, WATER ; type
db WATER, PSYCHIC_TYPE ; type
db 190 ; catch rate
db 80 ; base exp

View File

@@ -3,7 +3,7 @@
db 105, 130, 120, 40, 45
; hp atk def spd spc
db GROUND, ROCK ; type
db GROUND, STEEL ; type
db 60 ; catch rate
db 204 ; base exp

View File

@@ -3,7 +3,7 @@
db 80, 85, 95, 25, 30
; hp atk def spd spc
db GROUND, ROCK ; type
db GROUND, STEEL ; type
db 120 ; catch rate
db 135 ; base exp

View File

@@ -3,7 +3,7 @@
db 75, 100, 110, 65, 55
; hp atk def spd spc
db GROUND, GROUND ; type
db GROUND, STEEL ; type
db 90 ; catch rate
db 163 ; base exp

View File

@@ -3,7 +3,7 @@
db 80, 92, 65, 68, 80
; hp atk def spd spc
db WATER, WATER ; type
db WATER, FAIRY ; type
db 60 ; catch rate
db 170 ; base exp

View File

@@ -3,7 +3,7 @@
db 40, 60, 30, 70, 31
; hp atk def spd spc
db NORMAL, FLYING ; type
db FLYING, DARK ; type
db 255 ; catch rate
db 58 ; base exp

View File

@@ -3,7 +3,7 @@
db 80, 70, 65, 100, 120
; hp atk def spd spc
db WATER, POISON ; type
db WATER, DARK ; type
db 60 ; catch rate
db 205 ; base exp

View File

@@ -3,7 +3,7 @@
db 70, 65, 60, 90, 90
; hp atk def spd spc
db BUG, POISON ; type
db BUG, PSYCHIC_TYPE ; type
db 75 ; catch rate
db 138 ; base exp

View File

@@ -3,7 +3,7 @@
db 40, 30, 50, 100, 55
; hp atk def spd spc
db ELECTRIC, ELECTRIC ; type
db ELECTRIC, STEEL ; type
db 190 ; catch rate
db 103 ; base exp

View File

@@ -253,7 +253,7 @@ ClefairyEvosMoves:
SpearowEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 20, FEAROW
db EVOLVE_LEVEL, 18, FEAROW
db 0
; Learnset
db 9, LEER
@@ -344,7 +344,7 @@ ExeggcuteEvosMoves:
GrimerEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 38, MUK
db EVOLVE_LEVEL, 26, MUK
db 0
; Learnset
db 30, POISON_GAS
@@ -387,7 +387,7 @@ NidoqueenEvosMoves:
CuboneEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 28, MAROWAK
db EVOLVE_LEVEL, 22, MAROWAK
db 0
; Learnset
db 25, LEER
@@ -399,7 +399,7 @@ CuboneEvosMoves:
RhyhornEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 42, RHYDON
db EVOLVE_LEVEL, 36, RHYDON
db 0
; Learnset
db 30, STOMP
@@ -478,7 +478,7 @@ TentacoolEvosMoves:
GastlyEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 25, HAUNTER
db EVOLVE_LEVEL, 20, HAUNTER
db 0
; Learnset
db 27, HYPNOSIS
@@ -595,7 +595,7 @@ FearowEvosMoves:
PidgeyEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 18, PIDGEOTTO
db EVOLVE_LEVEL, 14, PIDGEOTTO
db 0
; Learnset
db 5, SAND_ATTACK
@@ -621,7 +621,7 @@ SlowpokeEvosMoves:
KadabraEvosMoves:
; Evolutions
db EVOLVE_TRADE, 1, ALAKAZAM
db EVOLVE_LEVEL, 35, ALAKAZAM
db 0
; Learnset
db 16, CONFUSION
@@ -634,7 +634,7 @@ KadabraEvosMoves:
GravelerEvosMoves:
; Evolutions
db EVOLVE_TRADE, 1, GOLEM
db EVOLVE_LEVEL, 35, GOLEM
db 0
; Learnset
db 11, DEFENSE_CURL
@@ -659,7 +659,7 @@ ChanseyEvosMoves:
MachokeEvosMoves:
; Evolutions
db EVOLVE_TRADE, 1, MACHAMP
db EVOLVE_LEVEL, 35, MACHAMP
db 0
; Learnset
db 20, LOW_KICK
@@ -726,7 +726,7 @@ ParasectEvosMoves:
PsyduckEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 33, GOLDUCK
db EVOLVE_LEVEL, 26, GOLDUCK
db 0
; Learnset
db 28, TAIL_WHIP
@@ -810,7 +810,7 @@ MagnetonEvosMoves:
KoffingEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 35, WEEZING
db EVOLVE_LEVEL, 26, WEEZING
db 0
; Learnset
db 32, SLUDGE
@@ -828,7 +828,7 @@ MissingNo38EvosMoves:
MankeyEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 28, PRIMEAPE
db EVOLVE_LEVEL, 26, PRIMEAPE
db 0
; Learnset
db 15, KARATE_CHOP
@@ -840,7 +840,7 @@ MankeyEvosMoves:
SeelEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 34, DEWGONG
db EVOLVE_LEVEL, 26, DEWGONG
db 0
; Learnset
db 30, GROWL
@@ -904,7 +904,7 @@ FarfetchdEvosMoves:
VenonatEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 31, VENOMOTH
db EVOLVE_LEVEL, 18, VENOMOTH
db 0
; Learnset
db 24, POISONPOWDER
@@ -946,7 +946,7 @@ MissingNo45EvosMoves:
DoduoEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 31, DODRIO
db EVOLVE_LEVEL, 26, DODRIO
db 0
; Learnset
db 20, GROWL
@@ -959,7 +959,7 @@ DoduoEvosMoves:
PoliwagEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 25, POLIWHIRL
db EVOLVE_LEVEL, 16, POLIWHIRL
db 0
; Learnset
db 16, HYPNOSIS
@@ -1017,7 +1017,7 @@ DittoEvosMoves:
MeowthEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 28, PERSIAN
db EVOLVE_LEVEL, 24, PERSIAN
db 0
; Learnset
db 12, BITE
@@ -1029,7 +1029,7 @@ MeowthEvosMoves:
KrabbyEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 28, KINGLER
db EVOLVE_LEVEL, 22, KINGLER
db 0
; Learnset
db 20, VICEGRIP
@@ -1131,7 +1131,7 @@ DragonairEvosMoves:
KabutoEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 40, KABUTOPS
db EVOLVE_LEVEL, 26, KABUTOPS
db 0
; Learnset
db 34, ABSORB
@@ -1152,7 +1152,7 @@ KabutopsEvosMoves:
HorseaEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 32, SEADRA
db EVOLVE_LEVEL, 28, SEADRA
db 0
; Learnset
db 19, SMOKESCREEN
@@ -1187,7 +1187,7 @@ MissingNo5FEvosMoves:
SandshrewEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 22, SANDSLASH
db EVOLVE_LEVEL, 18, SANDSLASH
db 0
; Learnset
db 10, SAND_ATTACK
@@ -1210,7 +1210,7 @@ SandslashEvosMoves:
OmanyteEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 40, OMASTAR
db EVOLVE_LEVEL, 26, OMASTAR
db 0
; Learnset
db 34, HORN_ATTACK
@@ -1306,7 +1306,7 @@ VaporeonEvosMoves:
MachopEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 28, MACHOKE
db EVOLVE_LEVEL, 22, MACHOKE
db 0
; Learnset
db 20, LOW_KICK
@@ -1330,7 +1330,7 @@ ZubatEvosMoves:
EkansEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 22, ARBOK
db EVOLVE_LEVEL, 18, ARBOK
db 0
; Learnset
db 10, POISON_STING
@@ -1342,7 +1342,7 @@ EkansEvosMoves:
ParasEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 24, PARASECT
db EVOLVE_LEVEL, 16, PARASECT
db 0
; Learnset
db 13, STUN_SPORE
@@ -1693,7 +1693,7 @@ MissingNo92EvosMoves:
HaunterEvosMoves:
; Evolutions
db EVOLVE_TRADE, 1, GENGAR
db EVOLVE_LEVEL, 35, GENGAR
db 0
; Learnset
db 29, HYPNOSIS
@@ -1721,7 +1721,7 @@ AlakazamEvosMoves:
PidgeottoEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 36, PIDGEOT
db EVOLVE_LEVEL, 30, PIDGEOT
db 0
; Learnset
db 5, SAND_ATTACK
@@ -1799,7 +1799,7 @@ MissingNo9CEvosMoves:
GoldeenEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 33, SEAKING
db EVOLVE_LEVEL, 22, SEAKING
db 0
; Learnset
db 19, SUPERSONIC
@@ -1848,7 +1848,7 @@ MissingNoA2EvosMoves:
PonytaEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 40, RAPIDASH
db EVOLVE_LEVEL, 26, RAPIDASH
db 0
; Learnset
db 30, TAIL_WHIP
@@ -1873,7 +1873,7 @@ RapidashEvosMoves:
RattataEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 20, RATICATE
db EVOLVE_LEVEL, 16, RATICATE
db 0
; Learnset
db 7, QUICK_ATTACK
@@ -1920,7 +1920,7 @@ NidorinaEvosMoves:
GeodudeEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 25, GRAVELER
db EVOLVE_LEVEL, 20, GRAVELER
db 0
; Learnset
db 11, DEFENSE_CURL
@@ -1959,7 +1959,7 @@ MissingNoACEvosMoves:
MagnemiteEvosMoves:
; Evolutions
db EVOLVE_LEVEL, 30, MAGNETON
db EVOLVE_LEVEL, 26, MAGNETON
db 0
; Learnset
db 21, SONICBOOM

View File

@@ -10,6 +10,7 @@ TypeNames:
dw .Bird
dw .Bug
dw .Ghost
dw .Steel
REPT UNUSED_TYPES_END - UNUSED_TYPES
dw .Normal
@@ -22,6 +23,8 @@ ENDR
dw .Psychic
dw .Ice
dw .Dragon
dw .Dark
dw .Fairy
assert_table_length NUM_TYPES
@@ -41,3 +44,6 @@ ENDR
.Bug: db "BUG@"
.Ghost: db "GHOST@"
.Dragon: db "DRAGON@"
.Steel: db "STEEL@"
.Dark: db "DARK@"
.Fairy: db "FAIRY@"

View File

@@ -75,11 +75,52 @@ TypeEffects:
db ROCK, BUG, SUPER_EFFECTIVE
db ROCK, ICE, SUPER_EFFECTIVE
db GHOST, NORMAL, NO_EFFECT
db GHOST, PSYCHIC_TYPE, NO_EFFECT
db GHOST, PSYCHIC_TYPE, SUPER_EFFECTIVE
db FIRE, DRAGON, NOT_VERY_EFFECTIVE
db WATER, DRAGON, NOT_VERY_EFFECTIVE
db ELECTRIC, DRAGON, NOT_VERY_EFFECTIVE
db GRASS, DRAGON, NOT_VERY_EFFECTIVE
db ICE, DRAGON, SUPER_EFFECTIVE
db DRAGON, DRAGON, SUPER_EFFECTIVE
; Steel
db STEEL, ICE, SUPER_EFFECTIVE
db STEEL, ROCK, SUPER_EFFECTIVE
db STEEL, FAIRY, SUPER_EFFECTIVE
db STEEL, FIRE, NOT_VERY_EFFECTIVE
db STEEL, WATER, NOT_VERY_EFFECTIVE
db STEEL, ELECTRIC, NOT_VERY_EFFECTIVE
db STEEL, STEEL, NOT_VERY_EFFECTIVE
db FIGHTING, STEEL, SUPER_EFFECTIVE
db GROUND, STEEL, SUPER_EFFECTIVE
db FIRE, STEEL, SUPER_EFFECTIVE
db NORMAL, STEEL, NOT_VERY_EFFECTIVE
db GRASS, STEEL, NOT_VERY_EFFECTIVE
db ICE, STEEL, NOT_VERY_EFFECTIVE
db FLYING, STEEL, NOT_VERY_EFFECTIVE
db PSYCHIC_TYPE, STEEL, NOT_VERY_EFFECTIVE
db BUG, STEEL, NOT_VERY_EFFECTIVE
db ROCK, STEEL, NOT_VERY_EFFECTIVE
db DRAGON, STEEL, NOT_VERY_EFFECTIVE
db POISON, STEEL, NO_EFFECT
; Dark
db DARK, PSYCHIC_TYPE, SUPER_EFFECTIVE
db DARK, GHOST, SUPER_EFFECTIVE
db DARK, FIGHTING, NOT_VERY_EFFECTIVE
db DARK, DARK, NOT_VERY_EFFECTIVE
db DARK, FAIRY, NOT_VERY_EFFECTIVE
db FIGHTING, DARK, SUPER_EFFECTIVE
db BUG, DARK, SUPER_EFFECTIVE
db FAIRY, DARK, SUPER_EFFECTIVE
db GHOST, DARK, NOT_VERY_EFFECTIVE
db PSYCHIC_TYPE, DARK, NO_EFFECT
; Fairy
db FAIRY, FIGHTING, SUPER_EFFECTIVE
db FAIRY, DRAGON, SUPER_EFFECTIVE
db FAIRY, FIRE, NOT_VERY_EFFECTIVE
db FAIRY, POISON, NOT_VERY_EFFECTIVE
db FAIRY, STEEL, NOT_VERY_EFFECTIVE
db POISON, FAIRY, SUPER_EFFECTIVE
db FIGHTING, FAIRY, NOT_VERY_EFFECTIVE
db BUG, FAIRY, NOT_VERY_EFFECTIVE
db DRAGON, FAIRY, NO_EFFECT
db -1 ; end

View File

@@ -368,15 +368,15 @@ MainInBattleLoop:
callfar SwitchEnemyMon
.noLinkBattle
ld a, [wPlayerSelectedMove]
cp QUICK_ATTACK
call CheckPriorityMove
jr nz, .playerDidNotUseQuickAttack
ld a, [wEnemySelectedMove]
cp QUICK_ATTACK
call CheckPriorityMove
jr z, .compareSpeed ; if both used Quick Attack
jp .playerMovesFirst ; if player used Quick Attack and enemy didn't
.playerDidNotUseQuickAttack
ld a, [wEnemySelectedMove]
cp QUICK_ATTACK
call CheckPriorityMove
jr z, .enemyMovesFirst ; if enemy used Quick Attack and player didn't
ld a, [wPlayerSelectedMove]
cp COUNTER
@@ -467,6 +467,14 @@ MainInBattleLoop:
call CheckNumAttacksLeft
jp MainInBattleLoop
CheckPriorityMove:
; Returns z if the move id in a is a high-priority move that moves first
; (Quick Attack or Constrict).
cp QUICK_ATTACK
ret z
cp CONSTRICT
ret
HandlePoisonBurnLeechSeed:
ld hl, wBattleMonHP
ld de, wBattleMonStatus
@@ -3363,13 +3371,8 @@ CheckPlayerStatusConditions:
jp .returnToHL
.HeldInPlaceCheck
ld a, [wEnemyBattleStatus1]
bit USING_TRAPPING_MOVE, a ; is enemy using a multi-turn move like wrap?
jp z, .FlinchedCheck
ld hl, CantMoveText
call PrintText
ld hl, ExecutePlayerMoveDone ; player can't move this turn
jp .returnToHL
; Trapping moves like Wrap no longer hold the target in place: it can still act
; (attack or switch) to break free, instead of losing every turn.
.FlinchedCheck
ld hl, wPlayerBattleStatus1
@@ -4026,6 +4029,17 @@ IgnoredOrdersText:
text_far _IgnoredOrdersText
text_end
; Returns the damage category (PHYSICAL_MOVE or SPECIAL_MOVE) in a for the move
; id passed in a. Used to choose Attack/Defense vs Special per move.
GetMoveCategory:
dec a
ld c, a
ld b, 0
ld hl, MoveCategories
add hl, bc
ld a, [hl]
ret
; sets b, c, d, and e for the CalculateDamage routine in the case of an attack by the player mon
GetDamageVarsForPlayerAttack:
xor a
@@ -4037,9 +4051,10 @@ GetDamageVarsForPlayerAttack:
and a
ld d, a ; d = move power
ret z ; return if move power is zero
ld a, [hl] ; a = [wPlayerMoveType]
cp SPECIAL ; types >= SPECIAL are all special
jr nc, .specialAttack
ld a, [wPlayerMoveNum]
call GetMoveCategory ; a = move's damage category (independent of type)
and a
jr nz, .specialAttack ; SPECIAL_MOVE uses Special; PHYSICAL_MOVE uses Attack/Defense
; physical attack
ld hl, wEnemyMonDefense
ld a, [hli]
@@ -4150,9 +4165,10 @@ GetDamageVarsForEnemyAttack:
ld d, a ; d = move power
and a
ret z ; return if move power is zero
ld a, [hl] ; a = [wEnemyMoveType]
cp SPECIAL ; types >= SPECIAL are all special
jr nc, .specialAttack
ld a, [wEnemyMoveNum]
call GetMoveCategory ; a = move's damage category (independent of type)
and a
jr nz, .specialAttack ; SPECIAL_MOVE uses Special; PHYSICAL_MOVE uses Attack/Defense
; physical attack
ld hl, wBattleMonDefense
ld a, [hli]
@@ -5708,13 +5724,8 @@ CheckEnemyStatusConditions:
ld hl, ExecuteEnemyMoveDone ; enemy can't move this turn
jp .enemyReturnToHL
.checkIfTrapped
ld a, [wPlayerBattleStatus1]
bit USING_TRAPPING_MOVE, a ; is the player using a multi-turn attack like warp
jp z, .checkIfFlinched
ld hl, CantMoveText
call PrintText
ld hl, ExecuteEnemyMoveDone ; enemy can't move this turn
jp .enemyReturnToHL
; Trapping moves like Wrap no longer hold the target in place: it can still act
; (attack or switch) to break free, instead of losing every turn.
.checkIfFlinched
ld hl, wEnemyBattleStatus1
bit FLINCHED, [hl] ; check if enemy mon flinched

View File

@@ -103,6 +103,12 @@ PoisonEffect:
cp POISON_SIDE_EFFECT2
ld b, 40 percent + 1 ; chance of poisoning
jr z, .sideEffectTest
cp POISON_SIDE_EFFECT3
ld b, 75 percent + 1 ; chance of poisoning
jr z, .sideEffectTest
cp SMOG_SIDE_EFFECT
ld b, 30 percent + 1 ; chance of poisoning
jr z, .sideEffectTest
push hl
push de
call MoveHitTest ; apply accuracy tests
@@ -169,6 +175,22 @@ BadlyPoisonedText:
text_far _BadlyPoisonedText
text_end
SmogSideEffect:
; Custom effect: always lowers the target's accuracy by one stage,
; then has a 30% chance to poison the target.
ldh a, [hWhoseTurn]
and a
ld hl, wPlayerMoveEffect
jr z, .gotEffectPointer
ld hl, wEnemyMoveEffect
.gotEffectPointer
ld [hl], ACCURACY_DOWN1_EFFECT ; masquerade as an accuracy-down move
push hl
call StatModifierDownEffect
pop hl
ld [hl], SMOG_SIDE_EFFECT ; restore so PoisonEffect takes the 30% branch
jp PoisonEffect
DrainHPEffect:
jpfar DrainHPEffect_
@@ -1162,6 +1184,73 @@ ConfusionEffectFailed:
call DelayFrames
jp ConditionalPrintButItFailed
ConfusionAllSideEffect:
; Guaranteed confusion side effect: the move still deals damage, and the
; target is always confused (does nothing if it is already confused).
ldh a, [hWhoseTurn]
and a
ld hl, wEnemyBattleStatus1
ld bc, wEnemyConfusedCounter
jr z, .confuseTarget
ld hl, wPlayerBattleStatus1
ld bc, wPlayerConfusedCounter
.confuseTarget
bit CONFUSED, [hl]
ret nz ; already confused
set CONFUSED, [hl]
call BattleRandom
and $3
inc a
inc a
ld [bc], a ; confusion lasts 2-5 turns
ld hl, BecameConfusedText
jp PrintText
ParalyzeAllSideEffect:
; Guaranteed paralyze side effect: the move still deals damage, and the target
; is always paralyzed, subject to the same restrictions as the paralyze side
; effects (no substitute, target not already statused, and the target must not
; share a type with the move).
call CheckTargetSubstitute
ret nz ; can't affect a substitute
ldh a, [hWhoseTurn]
and a
jr nz, .enemyAttacking
; player is attacking the enemy
ld a, [wEnemyMonStatus]
and a
ret nz ; can't status an already-statused target
ld a, [wPlayerMoveType]
ld b, a
ld a, [wEnemyMonType1]
cp b
ret z
ld a, [wEnemyMonType2]
cp b
ret z
ld a, 1 << PAR
ld [wEnemyMonStatus], a
call QuarterSpeedDueToParalysis
ld a, ENEMY_HUD_SHAKE_ANIM
call PlayBattleAnimation
jp PrintMayNotAttackText
.enemyAttacking
ld a, [wBattleMonStatus]
and a
ret nz
ld a, [wEnemyMoveType]
ld b, a
ld a, [wBattleMonType1]
cp b
ret z
ld a, [wBattleMonType2]
cp b
ret z
ld a, 1 << PAR
ld [wBattleMonStatus], a
call QuarterSpeedDueToParalysis
jp PrintMayNotAttackText
ParalyzeEffect:
jpfar ParalyzeEffect_

View File

@@ -202,6 +202,7 @@ SECTION "Battle Core", ROMX
INCLUDE "engine/battle/core.asm"
INCLUDE "engine/battle/effects.asm"
INCLUDE "data/moves/categories.asm"
SECTION "bank10", ROMX
@@ -351,6 +352,8 @@ INCLUDE "gfx/fishing.asm"
INCLUDE "data/moves/animations.asm"
INCLUDE "data/battle_anims/subanimations.asm"
INCLUDE "data/battle_anims/frame_blocks.asm"
SECTION "bank1E_2", ROMX
INCLUDE "engine/movie/evolution.asm"
INCLUDE "engine/overworld/elevator.asm"
INCLUDE "engine/items/tm_prices.asm"