shithub: pokecrystal

Download patch

ref: 87514598bedf66be222d85ebbc7565c14d79e0f4
parent: d504fb88529526f988985f7faaf70609263cb4a0
author: Rangi <[email protected]>
date: Thu Jan 25 16:34:42 EST 2018

More battle data in data/battle/

--- a/data/battle/accuracy_multipliers.asm
+++ b/data/battle/accuracy_multipliers.asm
@@ -1,5 +1,5 @@
 ; Multiplier ratios for accuracy from modifier -6 to +6
-; (for other stats, see data/battle/stat_multipliers.asm)
+; (for other stats, see data/battle/stat_multipliers.asm).
 
 AccuracyLevelMultipliers:
 	db  33, 100 ; -6 =  33%
--- /dev/null
+++ b/data/battle/badge_type_boosts.asm
@@ -1,0 +1,21 @@
+BadgeTypeBoosts:
+; entries correspond to wJohtoBadges constants
+	db FLYING   ; ZEPHYRBADGE
+	db BUG      ; HIVEBADGE
+	db NORMAL   ; PLAINBADGE
+	db GHOST    ; FOGBADGE
+	db STEEL    ; MINERALBADGE
+	db FIGHTING ; STORMBADGE
+	db ICE      ; GLACIERBADGE
+	db DRAGON   ; RISINGBADGE
+	; fallthrough
+; entries correspond to wKantoBadges constants
+	db ROCK     ; BOULDERBADGE
+	db WATER    ; CASCADEBADGE
+	db ELECTRIC ; THUNDERBADGE
+	db GRASS    ; RAINBOWBADGE
+	db POISON   ; SOULBADGE
+	db PSYCHIC  ; MARSHBADGE
+	db FIRE     ; VOLCANOBADGE
+	db GROUND   ; EARTHBADGE
+	db -1 ; end
--- /dev/null
+++ b/data/battle/flail_reversal_power.asm
@@ -1,0 +1,8 @@
+FlailReversalPower:
+	; hp bar pixels, power
+	db HP_BAR_LENGTH_PX / 48,   200
+	db HP_BAR_LENGTH_PX / 12,   150
+	db HP_BAR_LENGTH_PX / 5,    100
+	db HP_BAR_LENGTH_PX / 3,     80
+	db HP_BAR_LENGTH_PX * 2 / 3, 40
+	db HP_BAR_LENGTH_PX,         20
--- /dev/null
+++ b/data/battle/held_consumables.asm
@@ -1,0 +1,26 @@
+; Held item effects that are consumed on use
+
+ConsumableEffects: ; 271de
+	db HELD_BERRY
+	db HELD_2
+	db HELD_5
+	db HELD_HEAL_POISON
+	db HELD_HEAL_FREEZE
+	db HELD_HEAL_BURN
+	db HELD_HEAL_SLEEP
+	db HELD_HEAL_PARALYZE
+	db HELD_HEAL_STATUS
+	db HELD_30
+	db HELD_ATTACK_UP
+	db HELD_DEFENSE_UP
+	db HELD_SPEED_UP
+	db HELD_SP_ATTACK_UP
+	db HELD_SP_DEFENSE_UP
+	db HELD_ACCURACY_UP
+	db HELD_EVASION_UP
+	db HELD_38
+	db HELD_71
+	db HELD_ESCAPE
+	db HELD_CRITICAL_UP
+	db -1
+; 271f4
--- /dev/null
+++ b/data/battle/held_heal_status.asm
@@ -1,0 +1,11 @@
+; See also data/items/heal_status.asm
+
+HeldStatusHealingEffects: ; 3de44
+	db HELD_HEAL_POISON,   1 << PSN
+	db HELD_HEAL_FREEZE,   1 << FRZ
+	db HELD_HEAL_BURN,     1 << BRN
+	db HELD_HEAL_SLEEP,    SLP
+	db HELD_HEAL_PARALYZE, 1 << PAR
+	db HELD_HEAL_STATUS,   ALL_STATUS
+	db -1 ; end
+; 3de51
--- /dev/null
+++ b/data/battle/held_stat_up.asm
@@ -1,0 +1,10 @@
+HeldStatUpItems:
+	dbw HELD_ATTACK_UP,     BattleCommand_AttackUp
+	dbw HELD_DEFENSE_UP,    BattleCommand_DefenseUp
+	dbw HELD_SPEED_UP,      BattleCommand_SpeedUp
+	dbw HELD_SP_ATTACK_UP,  BattleCommand_SpecialAttackUp
+	dbw HELD_SP_DEFENSE_UP, BattleCommand_SpecialDefenseUp
+	dbw HELD_ACCURACY_UP,   BattleCommand_AccuracyUp
+	dbw HELD_EVASION_UP,    BattleCommand_EvasionUp
+	db -1 ; end
+; 3df12
--- /dev/null
+++ b/data/battle/magnitude_power.asm
@@ -1,0 +1,9 @@
+MagnitudePower:
+	; chance, power, magnitude #
+	db  13,  10,  4
+	db  38,  30,  5
+	db  89,  50,  6
+	db 166,  70,  7
+	db 217,  90,  8
+	db 242, 110,  9
+	db 255, 150, 10
--- /dev/null
+++ b/data/battle/metronome_exception_moves.asm
@@ -1,0 +1,18 @@
+; Metronome cannot turn into these moves.
+
+MetronomeExcepts: ; 37454
+	db NO_MOVE
+	db METRONOME
+	db STRUGGLE
+	db SKETCH
+	db MIMIC
+	db COUNTER
+	db MIRROR_COAT
+	db PROTECT
+	db DETECT
+	db ENDURE
+	db DESTINY_BOND
+	db SLEEP_TALK
+	db THIEF
+	db -1
+; 37462
--- /dev/null
+++ b/data/battle/present_power.asm
@@ -1,0 +1,6 @@
+PresentPower:
+	; chance, power
+	db 40 percent,     40 ; 40%
+	db 70 percent + 1, 80 ; 30%
+	db 80 percent,    120 ; 10%
+	db -1                 ; 20% chance to heal instead
--- a/data/battle/stat_multipliers.asm
+++ b/data/battle/stat_multipliers.asm
@@ -1,5 +1,8 @@
 ; Multiplier ratios for all stats from modifier -6 to +6
-; (except accuracy, see data/battle/accuracy_multipliers.asm)
+; (except accuracy, see data/battle/accuracy_multipliers.asm).
+
+; This table is identical to data/battle/stat_multipliers_2.asm.
+; This one is used by CalcStats.
 
 StatLevelMultipliers:
 	db  25, 100 ; -6 =  25%
--- /dev/null
+++ b/data/battle/stat_multipliers_2.asm
@@ -1,0 +1,20 @@
+; Multiplier ratios for all stats from modifier -6 to +6
+; (except accuracy, see data/battle/accuracy_multipliers.asm).
+
+; This table is identical to data/battle/stat_multipliers.asm.
+; This one is used by ApplyStatLevelMultiplier.
+
+StatLevelMultipliers_Applied:
+	db  25, 100 ; -6 =  25%
+	db  28, 100 ; -5 =  28%
+	db  33, 100 ; -4 =  33%
+	db  40, 100 ; -3 =  40%
+	db  50, 100 ; -2 =  50%
+	db  66, 100 ; -1 =  66%
+	db   1,   1 ;  0 = 100%
+	db  15,  10 ; +1 = 150%
+	db   2,   1 ; +2 = 200%
+	db  25,  10 ; +3 = 250%
+	db   3,   1 ; +4 = 300%
+	db  35,  10 ; +5 = 350%
+	db   4,   1 ; +6 = 400%
--- /dev/null
+++ b/data/battle/weather_modifiers.asm
@@ -1,0 +1,10 @@
+WeatherTypeModifiers:
+	db WEATHER_RAIN, WATER, MORE_EFFECTIVE
+	db WEATHER_RAIN, FIRE,  NOT_VERY_EFFECTIVE
+	db WEATHER_SUN,  FIRE,  MORE_EFFECTIVE
+	db WEATHER_SUN,  WATER, NOT_VERY_EFFECTIVE
+	db -1 ; end
+
+WeatherMoveModifiers:
+	db WEATHER_RAIN, EFFECT_SOLARBEAM, NOT_VERY_EFFECTIVE
+	db -1 ; end
--- /dev/null
+++ b/data/battle/wobble_probabilities.asm
@@ -1,0 +1,27 @@
+WobbleProbabilities:
+; catch rate, chance of wobbling / 255
+; nLeft/255 = (nRight/255) ** 4
+	db   1,  63
+	db   2,  75
+	db   3,  84
+	db   4,  90
+	db   5,  95
+	db   7, 103
+	db  10, 113
+	db  15, 126
+	db  20, 134
+	db  30, 149
+	db  40, 160
+	db  50, 169
+	db  60, 177
+	db  80, 191
+	db 100, 201
+	db 120, 211
+	db 140, 220
+	db 160, 227
+	db 180, 234
+	db 200, 240
+	db 220, 246
+	db 240, 251
+	db 254, 253
+	db 255, 255
--- a/data/items/heal_status.asm
+++ b/data/items/heal_status.asm
@@ -1,3 +1,5 @@
+; See also data/battle/held_heal_status.asm
+
 StatusHealingActions: ; f071
 	;  item,         party menu action text, status
 	db ANTIDOTE,     PARTYMENUTEXT_HEAL_PSN, 1 << PSN
--- a/engine/battle/consumehelditem.asm
+++ b/engine/battle/consumehelditem.asm
@@ -18,7 +18,7 @@
 	ld a, [de]
 	ld b, a
 	farcall GetItemHeldEffect
-	ld hl, .ConsumableEffects
+	ld hl, ConsumableEffects
 .loop
 	ld a, [hli]
 	cp b
@@ -46,7 +46,7 @@
 	jr z, .done
 
 .ourturn
-	ld [hl], $0
+	ld [hl], NO_ITEM
 
 .done
 	pop bc
@@ -54,27 +54,4 @@
 	pop hl
 	ret
 
-.ConsumableEffects: ; 271de
-; Consumable items?
-	db HELD_BERRY
-	db HELD_2
-	db HELD_5
-	db HELD_HEAL_POISON
-	db HELD_HEAL_FREEZE
-	db HELD_HEAL_BURN
-	db HELD_HEAL_SLEEP
-	db HELD_HEAL_PARALYZE
-	db HELD_HEAL_STATUS
-	db HELD_30
-	db HELD_ATTACK_UP
-	db HELD_DEFENSE_UP
-	db HELD_SPEED_UP
-	db HELD_SP_ATTACK_UP
-	db HELD_SP_DEFENSE_UP
-	db HELD_ACCURACY_UP
-	db HELD_EVASION_UP
-	db HELD_38
-	db HELD_71
-	db HELD_ESCAPE
-	db HELD_CRITICAL_UP
-	db -1
+INCLUDE "data/battle/held_consumables.asm"
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -1807,10 +1807,13 @@
 ; 3cc2d
 
 .WeatherMessages:
+; entries correspond to WEATHER_* constants
 	dw BattleText_RainContinuesToFall
 	dw BattleText_TheSunlightIsStrong
 	dw BattleText_TheSandstormRages
+
 .WeatherEndedMessages:
+; entries correspond to WEATHER_* constants
 	dw BattleText_TheRainStopped
 	dw BattleText_TheSunlightFaded
 	dw BattleText_TheSandstormSubsided
@@ -2557,9 +2560,10 @@
 ; 3d0ab
 
 .SentToMomTexts: ; 3d0ab
-	dw SentSomeToMomText ; MOM_SAVING_SOME_MONEY_F
-	dw SentHalfToMomText ; MOM_SAVING_HALF_MONEY_F
-	dw SentAllToMomText  ; MOM_SAVING_ALL_MONEY_F
+; entries correspond to MOM_SAVING_* constants
+	dw SentSomeToMomText
+	dw SentHalfToMomText
+	dw SentAllToMomText
 ; 3d0b1
 
 .CheckMaxedOutMomMoney: ; 3d0b1
@@ -4488,7 +4492,7 @@
 
 UseHeldStatusHealingItem: ; 3dde9
 	callfar GetOpponentItem
-	ld hl, .Statuses
+	ld hl, HeldStatusHealingEffects
 .loop
 	ld a, [hli]
 	cp $ff
@@ -4541,15 +4545,7 @@
 	ret
 ; 3de44
 
-.Statuses: ; 3de44
-	db HELD_HEAL_POISON,   1 << PSN
-	db HELD_HEAL_FREEZE,   1 << FRZ
-	db HELD_HEAL_BURN,     1 << BRN
-	db HELD_HEAL_SLEEP,    SLP
-	db HELD_HEAL_PARALYZE, 1 << PAR
-	db HELD_HEAL_STATUS,   ALL_STATUS
-	db -1 ; end
-; 3de51
+INCLUDE "data/battle/held_heal_status.asm"
 
 UseConfusionHealingItem: ; 3de51
 	ld a, BATTLE_VARS_SUBSTATUS3_OPP
@@ -4624,10 +4620,10 @@
 	ld a, [bc]
 	ld b, a
 	callfar GetItemHeldEffect
-	ld hl, .StatUpItems
+	ld hl, HeldStatUpItems
 .loop
 	ld a, [hli]
-	cp $ff
+	cp -1
 	jr z, .finish
 	inc hl
 	inc hl
@@ -4664,16 +4660,7 @@
 	ret
 ; 3defc
 
-.StatUpItems:
-	dbw HELD_ATTACK_UP,     BattleCommand_AttackUp
-	dbw HELD_DEFENSE_UP,    BattleCommand_DefenseUp
-	dbw HELD_SPEED_UP,      BattleCommand_SpeedUp
-	dbw HELD_SP_ATTACK_UP,  BattleCommand_SpecialAttackUp
-	dbw HELD_SP_DEFENSE_UP, BattleCommand_SpecialDefenseUp
-	dbw HELD_ACCURACY_UP,   BattleCommand_AccuracyUp
-	dbw HELD_EVASION_UP,    BattleCommand_EvasionUp
-	db -1 ; end
-; 3df12
+INCLUDE "data/battle/held_stat_up.asm"
 
 GetPartymonItem: ; 3df12
 	ld hl, PartyMon1Item
@@ -6902,7 +6889,7 @@
 .okay2
 	pop bc
 	push hl
-	ld hl, .StatLevelMultipliers
+	ld hl, StatLevelMultipliers_Applied
 	dec b
 	sla b
 	ld c, b
@@ -6951,24 +6938,7 @@
 	ret
 ; 3ed2b
 
-.StatLevelMultipliers:
-;	      /
-	db 25, 100 ; 25%
-	db 28, 100 ; 28%
-	db 33, 100 ; 33%
-	db 40, 100 ; 40%
-	db 50, 100 ; 50%
-	db 66, 100 ; 66%
-
-	db  1,  1 ; 100%
-
-	db 15, 10 ; 150%
-	db  2,  1 ; 200%
-	db 25, 10 ; 250%
-	db  3,  1 ; 300%
-	db 35, 10 ; 350%
-	db  4,  1 ; 400%
-; 3ed45
+INCLUDE "data/battle/stat_multipliers_2.asm"
 
 BadgeStatBoosts: ; 3ed45
 ; Raise BattleMon stats depending on which badges have been obtained.
--- a/engine/battle/effect_commands.asm
+++ b/engine/battle/effect_commands.asm
@@ -2713,7 +2713,7 @@
 	dec a
 	add hl, bc
 	jr nc, .rage_loop
-	ld hl, -1
+	ld hl, $ffff
 .done
 	ld a, h
 	ld [CurDamage], a
@@ -3766,11 +3766,11 @@
 	ld [hDividend + 2], a
 
 .skip_to_divide
-	ld b, $4
+	ld b, 4
 	call Divide
 	ld a, [hQuotient + 2]
 	ld b, a
-	ld hl, .FlailPower
+	ld hl, FlailReversalPower
 
 .reversal_loop
 	ld a, [hli]
@@ -3803,15 +3803,7 @@
 	ld [hl], 1
 	ret
 
-.FlailPower:
-	;  px,  bp
-	db  1, 200
-	db  4, 150
-	db  9, 100
-	db 16,  80
-	db 32,  40
-	db 48,  20
-; 35813
+INCLUDE "data/battle/flail_reversal_power.asm"
 
 
 BattleCommand_Counter: ; 35813
@@ -8920,7 +8912,7 @@
 	push bc
 	call BattleRandom
 	ld b, a
-	ld hl, .Magnitudes
+	ld hl, MagnitudePower
 .loop
 	ld a, [hli]
 	cp b
@@ -8942,16 +8934,7 @@
 	pop bc
 	ret
 
-.Magnitudes:
-	;  /255, BP, magnitude
-	db  13,  10,  4
-	db  38,  30,  5
-	db  89,  50,  6
-	db 166,  70,  7
-	db 217,  90,  8
-	db 242, 110,  9
-	db 255, 150, 10
-; 379c9
+INCLUDE "data/battle/magnitude_power.asm"
 
 
 BattleCommand_BatonPass: ; 379c9
--- a/engine/battle/effect_commands/metronome.asm
+++ b/engine/battle/effect_commands/metronome.asm
@@ -43,19 +43,4 @@
 ; 37454
 
 
-MetronomeExcepts: ; 37454
-	db NO_MOVE
-	db METRONOME
-	db STRUGGLE
-	db SKETCH
-	db MIMIC
-	db COUNTER
-	db MIRROR_COAT
-	db PROTECT
-	db DETECT
-	db ENDURE
-	db DESTINY_BOND
-	db SLEEP_TALK
-	db THIEF
-	db -1
-; 37462
+INCLUDE "data/battle/metronome_exception_moves.asm"
--- a/engine/battle/effect_commands/present.asm
+++ b/engine/battle/effect_commands/present.asm
@@ -27,7 +27,7 @@
 	push bc
 	call BattleRandom
 	ld b, a
-	ld hl, .PresentPower
+	ld hl, PresentPower
 	ld c, 0
 .next
 	ld a, [hli]
@@ -49,7 +49,7 @@
 
 .heal_effect
 	pop bc
-	ld a, $3
+	ld a, 3
 	ld [wPresentPower], a
 	call AnimateCurrentMove
 	call BattleCommand_SwitchTurn
@@ -85,9 +85,4 @@
 .do_animation
 	jp EndMoveEffect
 
-.PresentPower:
-	db 40 percent,     40
-	db 70 percent + 1, 80
-	db 80 percent,    120
-	db -1 ; end
-; 3790e
+INCLUDE "data/battle/present_power.asm"
--- a/engine/battle/misc.asm
+++ b/engine/battle/misc.asm
@@ -52,7 +52,7 @@
 
 DoWeatherModifiers: ; fbda4
 
-	ld de, .WeatherTypeModifiers
+	ld de, WeatherTypeModifiers
 	ld a, [Weather]
 	ld b, a
 	ld a, [wd265] ; move type
@@ -78,7 +78,7 @@
 
 
 .done_weather_types
-	ld de, .WeatherMoveModifiers
+	ld de, WeatherMoveModifiers
 
 	ld a, BATTLE_VARS_MOVE_EFFECT
 	call GetBattleVar
@@ -145,19 +145,9 @@
 .done
 	ret
 
-.WeatherTypeModifiers:
-	db WEATHER_RAIN, WATER, MORE_EFFECTIVE
-	db WEATHER_RAIN, FIRE,  NOT_VERY_EFFECTIVE
-	db WEATHER_SUN,  FIRE,  MORE_EFFECTIVE
-	db WEATHER_SUN,  WATER, NOT_VERY_EFFECTIVE
-	db -1 ; end
+INCLUDE "data/battle/weather_modifiers.asm"
 
-.WeatherMoveModifiers:
-	db WEATHER_RAIN, EFFECT_SOLARBEAM, NOT_VERY_EFFECTIVE
-	db -1 ; end
-; fbe24
 
-
 DoBadgeTypeBoosts: ; fbe24
 	ld a, [wLinkMode]
 	and a
@@ -174,7 +164,7 @@
 	push de
 	push bc
 
-	ld hl, .BadgeTypes
+	ld hl, BadgeTypeBoosts
 
 	ld a, [wKantoBadges]
 	ld b, a
@@ -235,25 +225,4 @@
 	pop de
 	ret
 
-.BadgeTypes:
-; entries correspond to wJohtoBadges constants
-	db FLYING   ; ZEPHYRBADGE
-	db BUG      ; HIVEBADGE
-	db NORMAL   ; PLAINBADGE
-	db GHOST    ; FOGBADGE
-	db STEEL    ; MINERALBADGE
-	db FIGHTING ; STORMBADGE
-	db ICE      ; GLACIERBADGE
-	db DRAGON   ; RISINGBADGE
-	; fallthrough
-; entries correspond to wKantoBadges constants
-	db ROCK     ; BOULDERBADGE
-	db WATER    ; CASCADEBADGE
-	db ELECTRIC ; THUNDERBADGE
-	db GRASS    ; RAINBOWBADGE
-	db POISON   ; SOULBADGE
-	db PSYCHIC  ; MARSHBADGE
-	db FIRE     ; VOLCANOBADGE
-	db GROUND   ; EARTHBADGE
-	db -1 ; end
-; fbe91
+INCLUDE "data/battle/badge_type_boosts.asm"
--- a/engine/battle/read_trainer_party.asm
+++ b/engine/battle/read_trainer_party.asm
@@ -44,7 +44,7 @@
 	jr z, .got_trainer
 .loop
 	ld a, [hli]
-	cp $ff
+	cp -1
 	jr nz, .loop
 	jr .skip_trainer
 .got_trainer
@@ -82,6 +82,7 @@
 ; 397e3
 
 TrainerTypes: ; 397e3
+; entries correspond to TRAINERTYPE_* constants
 	dw TrainerType1 ; level, species
 	dw TrainerType2 ; level, species, moves
 	dw TrainerType3 ; level, species, item
--- a/engine/battle/used_move_text.asm
+++ b/engine/battle/used_move_text.asm
@@ -114,6 +114,7 @@
 ; 105e39
 
 .endusedmovetexts ; 105e39
+; entries correspond to MoveGrammar sets
 	dw EndUsedMove1Text
 	dw EndUsedMove2Text
 	dw EndUsedMove3Text
--- a/engine/battle_anims/functions.asm
+++ b/engine/battle_anims/functions.asm
@@ -1749,6 +1749,7 @@
 Unknown_cda01: ; cda01
 	db 8, 6, 5, 4, 5, 6, 8, 12, 16
 ; cda0a
+
 BattleAnimFunction_1C: ; cda0a (33:5a0a)
 	ld hl, BATTLEANIMSTRUCT_XCOORD
 	add hl, bc
@@ -2476,6 +2477,7 @@
 Unknown_cde25: ; cde25
 	db $ec, $f8, $00
 ; cde28
+
 BattleAnimFunction_25: ; cde28 (33:5e28)
 	ld hl, BATTLEANIMSTRUCT_0F
 	add hl, bc
@@ -3279,6 +3281,7 @@
 Unknown_ce2c8: ; ce2c8
 	db $ff, $ff, $00, $00
 ; ce2cc
+
 BattleAnimFunction_33: ; ce2cc (33:62cc)
 	ld hl, BATTLEANIMSTRUCT_0B
 	add hl, bc
--- a/engine/battle_anims/getpokeballwobble.asm
+++ b/engine/battle_anims/getpokeballwobble.asm
@@ -24,7 +24,7 @@
 	ld c, 0 ; next
 	jr nz, .done
 
-	ld hl, .WobbleProbabilities
+	ld hl, WobbleProbabilities
 	ld a, [Buffer1]
 	ld b, a
 .loop
@@ -59,30 +59,4 @@
 	pop de
 	ret
 
-.WobbleProbabilities: ; f9ba
-; catch rate, chance of wobbling / 255
-; nLeft/255 = (nRight/255) ** 4
-	db   1,  63
-	db   2,  75
-	db   3,  84
-	db   4,  90
-	db   5,  95
-	db   7, 103
-	db  10, 113
-	db  15, 126
-	db  20, 134
-	db  30, 149
-	db  40, 160
-	db  50, 169
-	db  60, 177
-	db  80, 191
-	db 100, 201
-	db 120, 211
-	db 140, 220
-	db 160, 227
-	db 180, 234
-	db 200, 240
-	db 220, 246
-	db 240, 251
-	db 254, 253
-	db 255, 255
+INCLUDE "data/battle/wobble_probabilities.asm"