update kydreeok head
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user