update darknut ai, damage, movement, collision

This commit is contained in:
scawful
2024-06-27 23:46:39 -04:00
parent 890111b108
commit a6fed4353c

View File

@@ -3,7 +3,7 @@
; ========================================================= ; =========================================================
!SPRID = $1D ; The sprite ID you are overwriting (HEX) !SPRID = $1D ; The sprite ID you are overwriting (HEX)
!NbrTiles = 00 ; Number of tiles used in a frame !NbrTiles = 03 ; Number of tiles used in a frame
!Harmless = 00 ; 00 = Sprite is Harmful, 01 = Sprite is Harmless !Harmless = 00 ; 00 = Sprite is Harmful, 01 = Sprite is Harmless
!HVelocity = 00 ; Is your sprite going super fast? put 01 if it is !HVelocity = 00 ; Is your sprite going super fast? put 01 if it is
!Health = 40 ; Number of Health the sprite have !Health = 40 ; Number of Health the sprite have
@@ -55,6 +55,9 @@ Sprite_Darknut_Prep:
{ {
PHB : PHK : PLB PHB : PHK : PLB
LDA.b #$80 : STA.w SprDefl, X
LDA.b #$60 : STA.w SprHealth, X
LDA.b #%00010000 : STA.w SprTileDie, X
PLB PLB
RTL RTL
@@ -62,49 +65,65 @@ Sprite_Darknut_Prep:
; ========================================================= ; =========================================================
DarknutSpeed = $04 DarknutSpeed = 04
Sprite_Darknut_Main: Sprite_Darknut_Main:
{ {
JSL Guard_ParrySwordAttacks JSL Guard_ParrySwordAttacks
JSL Sprite_Move
JSL Sprite_BounceFromTileCollision
JSL Sprite_PlayerCantPassThrough
JSL Sprite_DamageFlash_Long
LDA.w SprTimerA, X : BNE +
LDA.b #$04
JSL Sprite_ApplySpeedTowardsPlayer
JSL GetRandomInt : AND.b #$03 : STA.w SprAction, X
%SetTimerA($A0)
+
JSR Goriya_HandleTileCollision
LDA.w SprAction, X LDA.w SprAction, X
JSL UseImplicitRegIndexedLocalJumpTable JSL UseImplicitRegIndexedLocalJumpTable
dw MoveDown
dw MoveUp dw MoveUp
dw MoveDown
dw MoveLeft dw MoveLeft
dw MoveRight dw MoveRight
MoveDown: MoveUp:
{ {
%PlayAnimation(0,1,10) %PlayAnimation(0,1,10)
LDA #DarknutSpeed : STA.w SprYSpeed, X LDA.b #-DarknutSpeed : STA.w SprYSpeed, X
JSL Sprite_Move STZ.w SprXSpeed, X
RTS RTS
} }
MoveUp: MoveDown:
{ {
%StartOnFrame(2)
%PlayAnimation(2,3,10) %PlayAnimation(2,3,10)
LDA #-DarknutSpeed : STA.w SprYSpeed, X LDA.b #DarknutSpeed : STA.w SprYSpeed, X
JSL Sprite_Move STZ.w SprXSpeed, X
RTS RTS
} }
MoveLeft: MoveLeft:
{ {
%StartOnFrame(4)
%PlayAnimation(4,5,10) %PlayAnimation(4,5,10)
LDA #-DarknutSpeed : STA.w SprXSpeed, X LDA.b #-DarknutSpeed : STA.w SprXSpeed, X
JSL Sprite_Move STZ.w SprYSpeed, X
RTS RTS
} }
MoveRight: MoveRight:
{ {
%StartOnFrame(6)
%PlayAnimation(6,7,10) %PlayAnimation(6,7,10)
LDA #DarknutSpeed : STA.w SprXSpeed, X LDA.b #DarknutSpeed : STA.w SprXSpeed, X
JSL Sprite_Move STZ.w SprYSpeed, X
RTS RTS
} }
@@ -119,6 +138,7 @@ Sprite_Darknut_Draw:
LDA $0DC0, X : CLC : ADC $0D90, X : TAY;Animation Frame LDA $0DC0, X : CLC : ADC $0D90, X : TAY;Animation Frame
LDA .start_index, Y : STA $06 LDA .start_index, Y : STA $06
LDA.w SprMiscA, X : STA $08
PHX PHX
@@ -152,7 +172,7 @@ Sprite_Darknut_Draw:
INY INY
LDA .chr, X : STA ($90), Y LDA .chr, X : STA ($90), Y
INY INY
LDA .properties, X : STA ($90), Y LDA .properties, X : ORA $08 : STA ($90), Y
PHY PHY
@@ -170,45 +190,45 @@ Sprite_Darknut_Draw:
; ======================================================= ; =======================================================
.start_index .start_index
db $00, $02, $04, $06, $08, $0A, $0C, $0E db $00, $02, $04, $06, $08, $0A, $0C, $0E
.nbr_of_tiles .nbr_of_tiles
db 1, 1, 1, 1, 1, 1, 1, 1 db 1, 1, 1, 1, 1, 1, 1, 1
.x_offsets .x_offsets
dw 0, -4 dw 0, 0
dw 0, -4 dw 0, 0
dw 0, -12 dw 0, 0
dw 0, -12 dw 0, 0
dw 0, 12 dw 0, -12
dw 0, 12 dw 0, -12
dw 0, 0 dw 0, 12
dw 0, 0 dw 0, 12
.y_offsets .y_offsets
dw 0, 8 dw -11, 0
dw 0, 8 dw -11, 0
dw 0, 8 dw 0, 12
dw 0, 8 dw 0, 12
dw 0, 8 dw 0, 8
dw 0, 8 dw 0, 8
dw -12, 0 dw 0, 8
dw -12, 0 dw 0, 8
.chr .chr
db $E6, $C0 db $C0, $EE
db $E6, $C0 db $C0, $EE
db $E8, $C2 db $E6, $C0
db $E4, $C2 db $E6, $C0
db $E8, $C2 db $E8, $C2
db $E4, $C2 db $E4, $C2
db $C0, $EE db $E8, $C2
db $C0, $EE db $E4, $C2
.properties .properties
db $39, $39 db $FD, $3D
db $79, $39 db $FD, $7D
db $39, $79 db $3D, $3D
db $39, $79 db $7D, $3D
db $79, $39 db $3D, $7D
db $79, $39 db $3D, $7D
db $F9, $39 db $7D, $3D
db $F9, $79 db $7D, $3D
} }