update kydreeok head

This commit is contained in:
scawful
2024-06-10 00:57:31 -04:00
parent 01e8678588
commit 9edd5624a5

View File

@@ -37,14 +37,15 @@
Sprite_KydreeokHead_Long: Sprite_KydreeokHead_Long:
{ {
PHB : PHK : PLB PHB : PHK : PLB
LDA SprAction, X : CMP #$02 : BEQ .no_head
JSR Sprite_KydreeokHead_Draw
LDA SprAction, X : CMP #$03 : BEQ .no_head
JSR Sprite_KydreeokHead_Draw
.no_head .no_head
JSL Sprite_CheckActive : BCC .not_active JSL Sprite_CheckActive : BCC .not_active
JSR Sprite_KydreeokHead_Main JSR Sprite_KydreeokHead_Main
.not_active .not_active
PLB ; Get back the databank we stored previously PLB ; Get back the databank we stored previously
RTL ; Go back to original code RTL ; Go back to original code
} }
@@ -55,7 +56,7 @@ Sprite_KydreeokHead_Prep:
{ {
PHB : PHK : PLB PHB : PHK : PLB
LDA.b #$80 : STA.w SprHealth, X LDA.b #$C0 : STA.w SprHealth, X
LDA.b #$09 : STA.w SprBump, X ; bump damage type LDA.b #$09 : STA.w SprBump, X ; bump damage type
PLB PLB
@@ -74,8 +75,9 @@ Sprite_KydreeokHead_Main:
JSL UseImplicitRegIndexedLocalJumpTable JSL UseImplicitRegIndexedLocalJumpTable
dw KydreeokHead_ForwardAnim ; 0x00 dw KydreeokHead_ForwardAnim ; 0x00
dw KydreeokHead_SideAnim ; 0x01 dw KydreeokHead_RightAnim ; 0x01
dw KydreeokHead_SummonFire ; 0x02 dw KydreeokHead_LeftAnim ; 0x02
dw KydreeokHead_SummonFire ; 0x03
; ------------------------------------------------------- ; -------------------------------------------------------
; 0x00 ; 0x00
@@ -89,15 +91,14 @@ Sprite_KydreeokHead_Main:
JSL Sprite_CheckDamageFromPlayerLong JSL Sprite_CheckDamageFromPlayerLong
%DoDamageToPlayerSameLayerOnContact() %DoDamageToPlayerSameLayerOnContact()
LDA.w SprTimerA, X : BNE .noSpeedChange LDA.w SprTimerA, X : BNE .no_speed_change
JSL GetRandomInt : AND #$0F : TAY JSL GetRandomInt : AND #$0F : TAY
LDA.w SpeedTable, Y : STA.w SprXSpeed, X LDA.w SpeedTable, Y : STA.w SprXSpeed, X
JSL GetRandomInt : AND #$0F : TAY JSL GetRandomInt : AND #$0F : TAY
LDA.w SpeedTable, Y : STA.w SprYSpeed, X LDA.w SpeedTable, Y : STA.w SprYSpeed, X
; LDA #$40 : STA.w SprTimerA, X .no_speed_change
.noSpeedChange
JSL Sprite_Move JSL Sprite_Move
; JSR AdjustMovementSpeed ; JSR AdjustMovementSpeed
JSR KydreeokHead_NeckControl JSR KydreeokHead_NeckControl
JSR MoveWithBody JSR MoveWithBody
@@ -108,13 +109,16 @@ Sprite_KydreeokHead_Main:
JSL Sprite_IsToRightOfPlayer : TYA : BNE .not_right JSL Sprite_IsToRightOfPlayer : TYA : BNE .not_right
%GotoAction(1) %GotoAction(1)
RTS
.not_right .not_right
LDA.b #$40 : STA.w SprTimerA, X
%GotoAction(2)
RTS RTS
} }
; ------------------------------------------------------- ; -------------------------------------------------------
; 0x01 ; 0x01
KydreeokHead_SideAnim: KydreeokHead_RightAnim:
{ {
%StartOnFrame(3) %StartOnFrame(3)
%PlayAnimation(3,5,10) %PlayAnimation(3,5,10)
@@ -124,13 +128,12 @@ Sprite_KydreeokHead_Main:
JSL Sprite_CheckDamageFromPlayerLong JSL Sprite_CheckDamageFromPlayerLong
%DoDamageToPlayerSameLayerOnContact() %DoDamageToPlayerSameLayerOnContact()
LDA.w SprTimerA, X : BNE .noSpeedChange LDA.w SprTimerA, X : BNE .no_speed_change
JSL GetRandomInt : AND #$0F : TAY JSL GetRandomInt : AND #$0F : TAY
LDA.w SpeedTable, Y : STA.w SprXSpeed, X LDA.w SpeedTable, Y : STA.w SprXSpeed, X
JSL GetRandomInt : AND #$0F : TAY JSL GetRandomInt : AND #$0F : TAY
LDA.w SpeedTable, Y : STA.w SprYSpeed, X LDA.w SpeedTable, Y : STA.w SprYSpeed, X
; LDA #$40 : STA.w SprTimerA, X .no_speed_change
.noSpeedChange
JSL Sprite_Move JSL Sprite_Move
; JSR AdjustMovementSpeed ; JSR AdjustMovementSpeed
@@ -149,11 +152,30 @@ Sprite_KydreeokHead_Main:
; ------------------------------------------------------- ; -------------------------------------------------------
; 0x02 ; 0x02
KydreeokHead_LeftAnim:
{
%StartOnFrame(6)
%PlayAnimation(6,8,10)
JSL Sprite_CheckDamageFromPlayerLong
%DoDamageToPlayerSameLayerOnContact()
JSR KydreeokHead_NeckControl
JSR MoveWithBody
JSR RandomlyAttack
LDA.w SprTimerA, X : BNE .not_yet
%GotoAction(0)
.not_yet
RTS
}
; -------------------------------------------------------
; 0x03
KydreeokHead_SummonFire: KydreeokHead_SummonFire:
{ {
; %StartOnFrame(5) %MoveTowardPlayer(15)
; %PlayAnimation(5,5,10)
%MoveTowardPlayer(24)
JSL Sprite_CheckDamageFromPlayerLong JSL Sprite_CheckDamageFromPlayerLong
%DoDamageToPlayerSameLayerOnContact() %DoDamageToPlayerSameLayerOnContact()
@@ -254,9 +276,9 @@ RandomlyAttack:
LDA #$CF LDA #$CF
JSL Sprite_SpawnDynamically JSL Sprite_SpawnDynamically
JSL Sprite_SetSpawnedCoords JSL Sprite_SetSpawnedCoords
; JSL $09B020 ; Fireball_SpawnTrailGarnish JSL $09B020 ; Fireball_SpawnTrailGarnish
LDA.b #$02 : STA.w SprAction, Y LDA.b #$03 : STA.w SprAction, Y
LDA #$10 : STA.w SprTimerA, Y LDA #$20 : STA.w SprTimerA, Y
.no_attack .no_attack
RTS RTS
} }
@@ -353,8 +375,9 @@ Neck1_Control:
LDA.w SprXSpeed, X : STA $08 LDA.w SprXSpeed, X : STA $08
LDA.w SprYSpeed, X : STA $09 LDA.w SprYSpeed, X : STA $09
LDA.w $19EA : STA $02; x LDA.w $19EA : STA $02 ; x
LDA.w $19EB : STA $03; y LDA.w $19EB : STA $03 ; y
LDA.w SprX, X : STA $04 LDA.w SprX, X : STA $04
LDA.w SprY, X : STA $05 LDA.w SprY, X : STA $05
JSR GetDistance8bit : CMP #$08 : BCC .TooCloseToHead ; is body1 too close to the head? JSR GetDistance8bit : CMP #$08 : BCC .TooCloseToHead ; is body1 too close to the head?
@@ -381,8 +404,9 @@ Neck1_Control:
; Do body part 2 ; Do body part 2
LDA.w $19EC : STA $02; x LDA.w $19EC : STA $02 ; x
LDA.w $19ED : STA $03; y LDA.w $19ED : STA $03 ; y
LDA.w $19EA : STA $04 LDA.w $19EA : STA $04
LDA.w $19EB : STA $05 LDA.w $19EB : STA $05
JSR GetDistance8bit : CMP #$0D : BCC .TooCloseToBodyPart1 ; is body1 too close to the head? JSR GetDistance8bit : CMP #$0D : BCC .TooCloseToBodyPart1 ; is body1 too close to the head?
@@ -409,8 +433,9 @@ Neck1_Control:
; Do body part 2 ; Do body part 2
LDA.w $19EE : STA $02; x LDA.w $19EE : STA $02 ; x
LDA.w $19EF : STA $03; y LDA.w $19EF : STA $03 ; y
LDA.w $19EC : STA $04 LDA.w $19EC : STA $04
LDA.w $19ED : STA $05 LDA.w $19ED : STA $05
JSR GetDistance8bit : CMP #$14 : BCC .TooCloseToBodyPart2 ; is body1 too close to the head? JSR GetDistance8bit : CMP #$14 : BCC .TooCloseToBodyPart2 ; is body1 too close to the head?
@@ -455,6 +480,7 @@ Neck2_Control:
LDA.w $19F0 : STA $02 ; x LDA.w $19F0 : STA $02 ; x
LDA.w $19F1 : STA $03 ; y LDA.w $19F1 : STA $03 ; y
LDA.w SprX, X : STA $04 LDA.w SprX, X : STA $04
LDA.w SprY, X : STA $05 LDA.w SprY, X : STA $05
JSR GetDistance8bit : CMP #$08 : BCC .TooCloseToHead2 ; is body1 too close to the head? JSR GetDistance8bit : CMP #$08 : BCC .TooCloseToHead2 ; is body1 too close to the head?
@@ -478,6 +504,7 @@ Neck2_Control:
LDA.w $19F2 : STA $02 ; x LDA.w $19F2 : STA $02 ; x
LDA.w $19F3 : STA $03 ; y LDA.w $19F3 : STA $03 ; y
LDA.w $19F0 : STA $04 LDA.w $19F0 : STA $04
LDA.w $19F1 : STA $05 LDA.w $19F1 : STA $05
JSR GetDistance8bit : CMP #$0D : BCC .TooCloseToBodyPart12 ; is body1 too close to the head? JSR GetDistance8bit : CMP #$0D : BCC .TooCloseToBodyPart12 ; is body1 too close to the head?
@@ -503,6 +530,7 @@ Neck2_Control:
; Do body part 2 ; Do body part 2
LDA.w $19F4 : STA $02 ; x LDA.w $19F4 : STA $02 ; x
LDA.w $19F5 : STA $03 ; y LDA.w $19F5 : STA $03 ; y
LDA.w $19F2 : STA $04 LDA.w $19F2 : STA $04
LDA.w $19F3 : STA $05 LDA.w $19F3 : STA $05
JSR GetDistance8bit : CMP #$14 : BCC .TooCloseToBodyPart22 ; is body1 too close to the head? JSR GetDistance8bit : CMP #$14 : BCC .TooCloseToBodyPart22 ; is body1 too close to the head?
@@ -794,9 +822,9 @@ Sprite_KydreeokHead_Draw:
JMP Sprite_KydreeokHead_DrawNeck JMP Sprite_KydreeokHead_DrawNeck
.start_index .start_index
db $00, $02, $04, $06, $0A, $0E db $00, $02, $04, $06, $0A, $0E, $12, $16, $1A, $1E
.nbr_of_tiles .nbr_of_tiles
db 1, 1, 1, 3, 3, 3 db 1, 1, 1, 3, 3, 3, 3, 3, 3
.x_offsets .x_offsets
dw 0, 0 dw 0, 0
dw 0, 0 dw 0, 0
@@ -804,6 +832,9 @@ Sprite_KydreeokHead_Draw:
dw 8, -8, -8, 8 dw 8, -8, -8, 8
dw 8, -8, -8, 8 dw 8, -8, -8, 8
dw 8, -8, -8, 8 dw 8, -8, -8, 8
dw -8, 8, -8, 8
dw 8, -8, -8, 8
dw -8, 8, 8, -8
.y_offsets .y_offsets
dw -8, 8 dw -8, 8
dw -8, 8 dw -8, 8
@@ -811,6 +842,9 @@ Sprite_KydreeokHead_Draw:
dw 4, 4, -12, -12 dw 4, 4, -12, -12
dw -8, -8, 8, 8 dw -8, -8, 8, 8
dw -8, -8, 8, 8 dw -8, -8, 8, 8
dw -8, -8, 8, 8
dw -8, -8, 8, 8
dw -8, -8, 8, 8
.chr .chr
db $40, $60 db $40, $60
db $42, $62 db $42, $62
@@ -818,6 +852,9 @@ Sprite_KydreeokHead_Draw:
db $68, $66, $46, $48 db $68, $66, $46, $48
db $0A, $08, $28, $2A db $0A, $08, $28, $2A
db $4C, $4A, $6A, $6C db $4C, $4A, $6A, $6C
db $48, $46, $68, $66
db $08, $0A, $2A, $28
db $4C, $4A, $6A, $6C
.properties .properties
db $39, $39 db $39, $39
db $39, $39 db $39, $39
@@ -825,6 +862,9 @@ Sprite_KydreeokHead_Draw:
db $39, $39, $39, $39 db $39, $39, $39, $39
db $39, $39, $39, $39 db $39, $39, $39, $39
db $39, $39, $39, $39 db $39, $39, $39, $39
db $79, $79, $79, $79
db $79, $79, $79, $79
db $79, $79, $79, $79
.sizes .sizes
db $02, $02 db $02, $02
db $02, $02 db $02, $02
@@ -832,6 +872,9 @@ Sprite_KydreeokHead_Draw:
db $02, $02, $02, $02 db $02, $02, $02, $02
db $02, $02, $02, $02 db $02, $02, $02, $02
db $02, $02, $02, $02 db $02, $02, $02, $02
db $02, $02, $02, $02
db $02, $02, $02, $02
db $02, $02, $02, $02
} }
GetDistance8bit: GetDistance8bit: