Guest User

Untitled

a guest
Feb 11th, 2020
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 KB | None | 0 0
  1. ConstantDamage:
  2. ld hl, wBattleMonLevel
  3. ldh a, [hBattleTurn]
  4. and a
  5. jr z, .got_turn
  6. ld hl, wEnemyMonLevel
  7.  
  8. .got_turn
  9. ld a, BATTLE_VARS_MOVE_EFFECT
  10. call GetBattleVar
  11. cp EFFECT_LEVEL_DAMAGE
  12. ld b, [hl]
  13. ld a, 0
  14. jr z, .got_power
  15.  
  16. ld a, BATTLE_VARS_MOVE_EFFECT
  17. call GetBattleVar
  18. cp EFFECT_PSYWAVE
  19. jr z, .psywave
  20.  
  21. cp EFFECT_SUPER_FANG
  22. jr z, .super_fang
  23.  
  24. cp EFFECT_REVERSAL
  25. jr z, .reversal
  26.  
  27. ld a, BATTLE_VARS_MOVE_POWER
  28. call GetBattleVar
  29. ld b, a
  30. ld a, $0
  31. jr .got_power
  32.  
  33. .psywave
  34. ld a, b
  35. srl a
  36. add b
  37. ld b, a
  38. .psywave_loop
  39. call BattleRandom
  40. and a
  41. jr z, .psywave_loop
  42. cp b
  43. jr nc, .psywave_loop
  44. ld b, a
  45. ld a, 0
  46. jr .got_power
  47.  
  48. .super_fang
  49. ld hl, wEnemyMonHP
  50. ldh a, [hBattleTurn]
  51. and a
  52. jr z, .got_hp
  53. ld hl, wBattleMonHP
  54. .got_hp
  55. ld a, [hli]
  56. srl a
  57. ld b, a
  58. ld a, [hl]
  59. rr a
  60. push af
  61. ld a, b
  62. pop bc
  63. and a
  64. jr nz, .got_power
  65. or b
  66. ld a, 0
  67. jr nz, .got_power
  68. ld b, 1
  69. jr .got_power
  70.  
  71. .got_power
  72. ld hl, wCurDamage
  73. ld [hli], a
  74. ld [hl], b
  75. ret
  76.  
  77. .reversal
  78. ld hl, wBattleMonHP
  79. ldh a, [hBattleTurn]
  80. and a
  81. jr z, .reversal_got_hp
  82. ld hl, wEnemyMonHP
  83. .reversal_got_hp
  84. xor a
  85. ldh [hDividend], a
  86. ldh [hMultiplicand + 0], a
  87. ld a, [hli]
  88. ldh [hMultiplicand + 1], a
  89. ld a, [hli]
  90. ldh [hMultiplicand + 2], a
  91. ld a, 48
  92. ldh [hMultiplier], a
  93. call Multiply
  94. ld a, [hli]
  95. ld b, a
  96. ld a, [hl]
  97. ldh [hDivisor], a
  98. ld a, b
  99. and a
  100. jr z, .skip_to_divide
  101.  
  102. ldh a, [hProduct + 4]
  103. srl b
  104. rr a
  105. srl b
  106. rr a
  107. ldh [hDivisor], a
  108. ldh a, [hProduct + 2]
  109. ld b, a
  110. srl b
  111. ldh a, [hProduct + 3]
  112. rr a
  113. srl b
  114. rr a
  115. ldh [hDividend + 3], a
  116. ld a, b
  117. ldh [hDividend + 2], a
  118.  
  119. .skip_to_divide
  120. ld b, 4
  121. call Divide
  122. ldh a, [hQuotient + 3]
  123. ld b, a
  124. ld hl, FlailReversalPower
  125.  
  126. .reversal_loop
  127. ld a, [hli]
  128. cp b
  129. jr nc, .break_loop
  130. inc hl
  131. jr .reversal_loop
  132.  
  133. .break_loop
  134. ldh a, [hBattleTurn]
  135. and a
  136. ld a, [hl]
  137. jr nz, .notPlayersTurn
  138.  
  139. ld hl, wPlayerMoveStructPower
  140. ld [hl], a
  141. push hl
  142. farcall PlayerAttackDamage
  143. jr .notEnemysTurn
  144.  
  145. .notPlayersTurn
  146. ld hl, wEnemyMoveStructPower
  147. ld [hl], a
  148. push hl
  149. farcall EnemyAttackDamage
  150.  
  151. .notEnemysTurn
  152. farcall BattleCommand_DamageCalc
  153. pop hl
  154. ld [hl], 1
  155. ret
Add Comment
Please, Sign In to add comment