Note quirk with alien guardian and boss heart HP
This commit is contained in:
parent
def22881be
commit
7fbde5318c
|
@ -169,6 +169,10 @@ heart can be.
|
|||
(PLAYER_WEAPON_STRENGTH * 16) + 55 + (GAME_COMPLETION_COUNT * 16)
|
||||
```
|
||||
|
||||
Note if `PLAYER_WEAPON_STRENGTH * 16` is larger than 255, then the results will
|
||||
wrap around. So sometimes the HP is actually lower than a previous playthrough
|
||||
where `GAME_COMPLETION_COUNT` was lower. This occurs every 16 loops.
|
||||
|
||||
| Completion Count | Result (hex) | Result (decimal) |
|
||||
|------------------|--------------|------------------|
|
||||
| 0 | #$67 | 103 |
|
||||
|
@ -177,5 +181,13 @@ heart can be.
|
|||
| 3 | #$97 | 151 |
|
||||
| 4 | #$a0 | 160 |
|
||||
| 5 | #$a0 | 160 |
|
||||
| ... | ... | ... |
|
||||
| 15 | #$a0 | 160 |
|
||||
| 16 | #$67 | 103 |
|
||||
| 17 | #$77 | 119 |
|
||||
| 18 | #$87 | 135 |
|
||||
| 19 | #$97 | 151 |
|
||||
| 20 | #$a0 | 160 |
|
||||
| 21 | #$a0 | 160 |
|
||||
|
||||
All sample results assume the player's `PLAYER_WEAPON_STRENGTH` is 3 (S weapon).
|
|
@ -8938,14 +8938,14 @@ alien_guardian_routine_00:
|
|||
set_guardian_and_heart_enemy_hp:
|
||||
jsr set_game_completion_10x ; $07 = #$10 * GAME_COMPLETION_COUNT
|
||||
lda PLAYER_WEAPON_STRENGTH ; load player's weapon strength
|
||||
jsr mv_low_nibble_to_high ; move low nibble into high nibble, setting low nibble to all 0
|
||||
jsr mv_low_nibble_to_high ; move low nibble into high nibble, setting low nibble to all 0, i.e. PLAYER_WEAPON_STRENGTH * #$10
|
||||
clc ; clear carry in preparation for addition
|
||||
adc #$37 ; add #$37 to a
|
||||
bcs @set_max_hp
|
||||
adc $07
|
||||
bcs @set_max_hp
|
||||
cmp #$a0
|
||||
bcc @set_enemy_hp
|
||||
bcs @set_max_hp ; if this caused an overflow set HP to #$a0
|
||||
adc $07 ; no overflow occurred, add (#$10 * GAME_COMPLETION_COUNT)
|
||||
bcs @set_max_hp ; if this caused an overflow set HP to #$a0
|
||||
cmp #$a0 ; see if sum is larger than #$a0
|
||||
bcc @set_enemy_hp ; branch if sum is smaller than #$a0 to set sum to result; otherwise use max HP of #$a0
|
||||
|
||||
@set_max_hp:
|
||||
lda #$a0 ; a = #$a0 (max hp)
|
||||
|
@ -9921,7 +9921,6 @@ alien_spider_set_ground_vel_and_routine:
|
|||
jmp set_enemy_routine_to_a ; set routine to alien_spider_routine_03
|
||||
|
||||
; alien spider hp = weapon strength + completion count + 2
|
||||
;
|
||||
set_alien_spider_hp_sprite_attr:
|
||||
lda PLAYER_WEAPON_STRENGTH ; load player weapon strength
|
||||
adc GAME_COMPLETION_COUNT ; add with the number of times the game has been completed
|
||||
|
|
Loading…
Reference in New Issue