Previously Sam only had to stand there and keep fire pressed. Hardly a challenge
First of all, a new enemy type is added. Normal enemies stay type 1, bosses are now type 3.
Most changes are in the FireSam routine. Add in the PLAYER_FIRE_RELEASED check:
.FireSam ldy PLAYER_JOYSTICK_PORT,x lda JOYSTICK_PORT_II,y and #$10 beq + ;not fire pressed lda #1 sta PLAYER_FIRE_RELEASED,x jmp .SamNotFirePushed + lda #1 sta PLAYER_FIRE_PRESSED_TIME,x stx PARAM6 lda SPRITE_HELD bne .NoFireReleasedCheck jsr SamUseForce beq .NoEnemyHeld ldx CURRENT_INDEX lda PLAYER_FIRE_RELEASED,x bne + jmp .SamNotFirePushed + lda #0 sta PLAYER_FIRE_RELEASED,x .NoFireReleasedCheck
In the enemy hurt routine we check if a boss was hurt (by checking the type). If it is, release the enemy from the force grip:
;enemy was hurt ldy SPRITE_HELD dey lda SPRITE_ACTIVE,y tay lda IS_TYPE_ENEMY,y cmp #3 ;if boss, auto-release bne + lda #0 sta PLAYER_FIRE_RELEASED,x jmp .SamNotFirePushed +
Previous Step Next Step