summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRangi <remy.oukaour+rangi42@gmail.com>2020-07-05 15:09:12 -0400
committerRangi <remy.oukaour+rangi42@gmail.com>2020-07-05 15:12:53 -0400
commit7eef66af3f53ba9ed758af7a3c6f2e636ff4a55f (patch)
tree2d8a39f11dedd9547b225cc6829eff5b17ca9940
parentf5ac9b0eb7773a9d05108b1ee6e41140d53020cd (diff)
Use MAX_NEUTRAL_DAMAGE in BattleCommand_DamageCalc
Also make .gitignore consistent with pokered
-rw-r--r--.gitignore13
-rw-r--r--constants/battle_constants.asm3
-rw-r--r--engine/battle/effect_commands.asm50
3 files changed, 35 insertions, 31 deletions
diff --git a/.gitignore b/.gitignore
index faa96ee16..e92f33000 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,7 +13,7 @@
*.gbc
*.gb
-# for any of the poor souls with save game files in their working directory
+# save game files
*.sgm
*.sav
*.rtc
@@ -32,14 +32,15 @@ pokecrystal.txt
# used_space.py
used_space.png
-# for vim configuration
-# url: http://www.vim.org/scripts/script.php?script_id=441
+# vim configuration
+# http://www.vim.org/scripts/script.php?script_id=441
.lvimrc
-# swap files for vim
+
+# swap files for vim and gedit
.*.swp
-# swap files for gedit
*~
-# osx files
+
+# macos files
.DS_STORE
# compiled graphics
diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm
index 7e444059d..244d52a3e 100644
--- a/constants/battle_constants.asm
+++ b/constants/battle_constants.asm
@@ -10,8 +10,9 @@ NUM_MOVES EQU 4
BASE_STAT_LEVEL EQU 7
MAX_STAT_LEVEL EQU 13
-; minimum damage before type effectiveness
+; damage limits before type effectiveness
MIN_NEUTRAL_DAMAGE EQU 2
+MAX_NEUTRAL_DAMAGE EQU 999
; turns that sleep lasts
REST_SLEEP_TURNS EQU 2
diff --git a/engine/battle/effect_commands.asm b/engine/battle/effect_commands.asm
index d936e9f7e..d6f90d587 100644
--- a/engine/battle/effect_commands.asm
+++ b/engine/battle/effect_commands.asm
@@ -3066,72 +3066,73 @@ BattleCommand_DamageCalc:
; Critical hits
call .CriticalMultiplier
-; Update wCurDamage (capped at 997).
+; Update wCurDamage.
+; Capped at MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE: 999 - 2 = 997.
ld hl, wCurDamage
ld b, [hl]
- ldh a, [hProduct + 3]
+ ldh a, [hQuotient + 3]
add b
- ldh [hProduct + 3], a
+ ldh [hQuotient + 3], a
jr nc, .dont_cap_1
- ldh a, [hProduct + 2]
+ ldh a, [hQuotient + 2]
inc a
- ldh [hProduct + 2], a
+ ldh [hQuotient + 2], a
and a
jr z, .Cap
.dont_cap_1
- ldh a, [hProduct]
+ ldh a, [hQuotient]
ld b, a
- ldh a, [hProduct + 1]
+ ldh a, [hQuotient + 1]
or a
jr nz, .Cap
- ldh a, [hProduct + 2]
- cp HIGH(MAX_STAT_VALUE - MIN_NEUTRAL_DAMAGE + 1)
+ ldh a, [hQuotient + 2]
+ cp HIGH(MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1)
jr c, .dont_cap_2
- cp HIGH(MAX_STAT_VALUE - MIN_NEUTRAL_DAMAGE + 1) + 1
+ cp HIGH(MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) + 1
jr nc, .Cap
- ldh a, [hProduct + 3]
- cp LOW(MAX_STAT_VALUE - MIN_NEUTRAL_DAMAGE + 1)
+ ldh a, [hQuotient + 3]
+ cp LOW(MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1)
jr nc, .Cap
.dont_cap_2
inc hl
- ldh a, [hProduct + 3]
+ ldh a, [hQuotient + 3]
ld b, [hl]
add b
ld [hld], a
- ldh a, [hProduct + 2]
+ ldh a, [hQuotient + 2]
ld b, [hl]
adc b
ld [hl], a
jr c, .Cap
ld a, [hl]
- cp HIGH(MAX_STAT_VALUE - MIN_NEUTRAL_DAMAGE + 1)
+ cp HIGH(MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1)
jr c, .dont_cap_3
- cp HIGH(MAX_STAT_VALUE - MIN_NEUTRAL_DAMAGE + 1) + 1
+ cp HIGH(MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1) + 1
jr nc, .Cap
inc hl
ld a, [hld]
- cp LOW(MAX_STAT_VALUE - MIN_NEUTRAL_DAMAGE + 1)
+ cp LOW(MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE + 1)
jr c, .dont_cap_3
.Cap:
- ld a, HIGH(MAX_STAT_VALUE - MIN_NEUTRAL_DAMAGE)
+ ld a, HIGH(MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE)
ld [hli], a
- ld a, LOW(MAX_STAT_VALUE - MIN_NEUTRAL_DAMAGE)
+ ld a, LOW(MAX_NEUTRAL_DAMAGE - MIN_NEUTRAL_DAMAGE)
ld [hld], a
.dont_cap_3
-; Minimum neutral damage is 2 (bringing the cap to 999).
+; Add back MIN_NEUTRAL_DAMAGE (capping at 999).
inc hl
ld a, [hl]
add MIN_NEUTRAL_DAMAGE
@@ -3140,6 +3141,7 @@ BattleCommand_DamageCalc:
inc [hl]
.dont_floor
+; Returns nz and nc.
ld a, 1
and a
ret
@@ -3152,18 +3154,18 @@ BattleCommand_DamageCalc:
; x2
ldh a, [hQuotient + 3]
add a
- ldh [hProduct + 3], a
+ ldh [hQuotient + 3], a
ldh a, [hQuotient + 2]
rl a
- ldh [hProduct + 2], a
+ ldh [hQuotient + 2], a
; Cap at $ffff.
ret nc
ld a, $ff
- ldh [hProduct + 2], a
- ldh [hProduct + 3], a
+ ldh [hQuotient + 2], a
+ ldh [hQuotient + 3], a
ret