add AntiKirby_Sucking using DragPlayer velocities
This commit is contained in:
@@ -83,19 +83,23 @@ Sprite_AntiKirby_Main:
|
|||||||
{
|
{
|
||||||
JSL Sprite_IsToRightOfPlayer
|
JSL Sprite_IsToRightOfPlayer
|
||||||
TYA : CMP #$01 : BNE .WalkRight
|
TYA : CMP #$01 : BNE .WalkRight
|
||||||
.WalkLeft
|
.WalkLeft
|
||||||
LDA.b #$40 : STA.w SprMiscC, X
|
LDA.b #$40 : STA.w SprMiscC, X
|
||||||
JMP +
|
JMP +
|
||||||
.WalkRight
|
.WalkRight
|
||||||
STZ.w SprMiscC, X
|
STZ.w SprMiscC, X
|
||||||
+
|
+
|
||||||
|
|
||||||
|
JSL Sprite_DamageFlash_Long
|
||||||
|
|
||||||
|
|
||||||
LDA.w SprAction, X
|
LDA.w SprAction, X
|
||||||
JSL UseImplicitRegIndexedLocalJumpTable
|
JSL UseImplicitRegIndexedLocalJumpTable
|
||||||
|
|
||||||
dw AntiKirby_Main
|
dw AntiKirby_Main
|
||||||
dw AntiKirby_Hurt
|
dw AntiKirby_Hurt
|
||||||
dw AntiKirby_Suck
|
dw AntiKirby_BeginSuck
|
||||||
|
dw AntiKirby_Sucking
|
||||||
dw AntiKirby_Full
|
dw AntiKirby_Full
|
||||||
dw AntiKirby_Death
|
dw AntiKirby_Death
|
||||||
|
|
||||||
@@ -116,7 +120,6 @@ Sprite_AntiKirby_Main:
|
|||||||
|
|
||||||
%PlayAnimation(0, 2, 10) ; Start
|
%PlayAnimation(0, 2, 10) ; Start
|
||||||
|
|
||||||
JSL Sprite_DamageFlash_Long
|
|
||||||
JSL Sprite_CheckDamageFromPlayerLong : BCC .NoDamage
|
JSL Sprite_CheckDamageFromPlayerLong : BCC .NoDamage
|
||||||
LDA #!RecoilTime : STA SprTimerA, X
|
LDA #!RecoilTime : STA SprTimerA, X
|
||||||
%GotoAction(1) ; Hurt
|
%GotoAction(1) ; Hurt
|
||||||
@@ -135,9 +138,7 @@ Sprite_AntiKirby_Main:
|
|||||||
AntiKirby_Hurt:
|
AntiKirby_Hurt:
|
||||||
{
|
{
|
||||||
%PlayAnimation(3, 3, 10) ; Hurt
|
%PlayAnimation(3, 3, 10) ; Hurt
|
||||||
|
|
||||||
JSL Sprite_DamageFlash_Long
|
|
||||||
|
|
||||||
LDA SprTimerA, X : BNE .NotDone
|
LDA SprTimerA, X : BNE .NotDone
|
||||||
%GotoAction(0)
|
%GotoAction(0)
|
||||||
.NotDone
|
.NotDone
|
||||||
@@ -145,11 +146,10 @@ Sprite_AntiKirby_Main:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
AntiKirby_Suck:
|
AntiKirby_BeginSuck:
|
||||||
{
|
{
|
||||||
%PlayAnimation(4, 5, 10) ; Suck
|
%PlayAnimation(4, 5, 10) ; Suck
|
||||||
|
|
||||||
|
|
||||||
LDA.b $0E : CLC : ADC.b #$30 : CMP.b #$60 : BCS .dont_tongue_link
|
LDA.b $0E : CLC : ADC.b #$30 : CMP.b #$60 : BCS .dont_tongue_link
|
||||||
LDA.b $0F : CLC : ADC.b #$30 : CMP.b #$60 : BCS .dont_tongue_link
|
LDA.b $0F : CLC : ADC.b #$30 : CMP.b #$60 : BCS .dont_tongue_link
|
||||||
INC.w SprAction, X
|
INC.w SprAction, X
|
||||||
@@ -169,8 +169,6 @@ Sprite_AntiKirby_Main:
|
|||||||
|
|
||||||
.dont_tongue_link
|
.dont_tongue_link
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
LDA.w SprTimerA, X : BNE +
|
LDA.w SprTimerA, X : BNE +
|
||||||
STZ.w SprAction, X
|
STZ.w SprAction, X
|
||||||
+
|
+
|
||||||
@@ -178,9 +176,35 @@ Sprite_AntiKirby_Main:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AntiKirby_Sucking:
|
||||||
|
{
|
||||||
|
%PlayAnimation(5, 5, 10) ; Sucking
|
||||||
|
; Get the direction of link relative to the anti kirby
|
||||||
|
; Invert the direction and store it in A, call DragPlayer
|
||||||
|
; when Link is close enough
|
||||||
|
|
||||||
|
JSL Sprite_DirectionToFacePlayer
|
||||||
|
LDA.b $0E : CLC : ADC.b #$30 : CMP.b #$60 : BCS .dont_tongue_link
|
||||||
|
LDA.b $0F : CLC : ADC.b #$30 : CMP.b #$60 : BCS .dont_tongue_link
|
||||||
|
LDA.w SprMiscC, X
|
||||||
|
JSL DragPlayer
|
||||||
|
.dont_tongue_link
|
||||||
|
|
||||||
|
JSL Sprite_DirectionToFacePlayer
|
||||||
|
LDA.b $0E : CLC : ADC.b #$10 : CMP.b #$10 : BCS .NotDone
|
||||||
|
LDA.b $0F : CLC : ADC.b #$10 : CMP.b #$10 : BCS .NotDone
|
||||||
|
INC.w SprAction, X
|
||||||
|
RTS
|
||||||
|
.NotDone
|
||||||
|
LDA.w SprTimerA, X : BNE +
|
||||||
|
%GotoAction(0)
|
||||||
|
+
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
AntiKirby_Full:
|
AntiKirby_Full:
|
||||||
{
|
{
|
||||||
; %PlayAnimation(6, 6, 10) ; Full
|
%PlayAnimation(6, 6, 10) ; Full
|
||||||
|
|
||||||
LDA.w SprTimerA, X : BNE .lickylicky
|
LDA.w SprTimerA, X : BNE .lickylicky
|
||||||
STZ.w SprAction, X
|
STZ.w SprAction, X
|
||||||
@@ -193,71 +217,43 @@ Sprite_AntiKirby_Main:
|
|||||||
RTS
|
RTS
|
||||||
|
|
||||||
.lickylicky
|
.lickylicky
|
||||||
LSR A
|
|
||||||
LSR A
|
|
||||||
PHA
|
|
||||||
|
|
||||||
TAY
|
|
||||||
LDA.w .anim, Y : STA.w SprGfx, X
|
|
||||||
TYA
|
|
||||||
|
|
||||||
LDY.w SprMiscD, X
|
RTS
|
||||||
PHY
|
}
|
||||||
|
|
||||||
CLC : ADC.w .index_offset_x, Y
|
AntiKirby_Death:
|
||||||
TAY
|
{
|
||||||
|
%PlayAnimation(3, 3, 10) ; Death
|
||||||
|
|
||||||
LDA.w .pos, Y : STA.w SprFrame, X
|
LDA.b #$06 : STA.w SprState, X
|
||||||
|
LDA.b #$0A : STA.w SprTimerA, X
|
||||||
|
|
||||||
STA.b $04
|
STZ.w SprPrize, X
|
||||||
STZ.b $05
|
|
||||||
|
|
||||||
BPL .positive_x
|
LDA.b #$09 ; SFX2.1E
|
||||||
|
JSL $0DBB8A ; SpriteSFX_QueueSFX3WithPan
|
||||||
|
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
DEC.b $05
|
AntiKirby_StealItem:
|
||||||
|
{
|
||||||
|
REP #$20
|
||||||
|
|
||||||
.positive_x
|
LDA.w $0FD8
|
||||||
PLY
|
CLC : ADC.b $04
|
||||||
|
SEC : SBC.b $22
|
||||||
|
CLC : ADC.w #$000C : CMP.w #$0018 : BCS .exit
|
||||||
|
|
||||||
PLA
|
LDA.w $0FDA
|
||||||
CLC : ADC.w .index_offset_y, Y
|
CLC : ADC.b $06
|
||||||
|
SEC : SBC.b $20
|
||||||
TAY
|
CLC : ADC.w #$000C : CMP.w #$0020 : BCS .exit
|
||||||
LDA.w .pos, Y : STA.w SprMiscE, X
|
|
||||||
|
|
||||||
STA.b $06
|
|
||||||
STZ.b $07
|
|
||||||
STZ.b $07
|
|
||||||
|
|
||||||
BPL .positive_y
|
|
||||||
|
|
||||||
DEC.b $07
|
|
||||||
|
|
||||||
.positive_y
|
|
||||||
LDA.w SprMiscG, X : BNE .exit
|
|
||||||
|
|
||||||
REP #$20
|
|
||||||
|
|
||||||
LDA.w $0FD8
|
|
||||||
CLC : ADC.b $04
|
|
||||||
SEC : SBC.b $22
|
|
||||||
CLC : ADC.w #$000C : CMP.w #$0018 : BCS .exit
|
|
||||||
|
|
||||||
LDA.w $0FDA
|
|
||||||
CLC : ADC.b $06
|
|
||||||
SEC : SBC.b $20
|
|
||||||
CLC : ADC.w #$000C : CMP.w #$0020 : BCS .exit
|
|
||||||
|
|
||||||
; -----------------------------------------------------
|
|
||||||
|
|
||||||
SEP #$20
|
|
||||||
|
|
||||||
LDA.w SprTimerA, X : CMP.b #$2E : BCS .exit
|
|
||||||
|
|
||||||
; JSL Link_CalculateSFXPan
|
|
||||||
; ORA.b #$26 ; SFX2.26
|
|
||||||
; STA.w $012E
|
|
||||||
|
|
||||||
|
SEP #$20
|
||||||
|
LDA.w SprTimerA, X : CMP.b #$2E : BCS .exit
|
||||||
JSL GetRandomInt
|
JSL GetRandomInt
|
||||||
AND.b #$03
|
AND.b #$03
|
||||||
INC A
|
INC A
|
||||||
@@ -287,63 +283,22 @@ Sprite_AntiKirby_Main:
|
|||||||
LDA.l $7EF360 : BEQ .dont_steal_anything
|
LDA.l $7EF360 : BEQ .dont_steal_anything
|
||||||
DEC A
|
DEC A
|
||||||
STA.l $7EF360
|
STA.l $7EF360
|
||||||
.exit
|
.exit
|
||||||
SEP #$20
|
SEP #$20
|
||||||
RTS
|
|
||||||
; -----------------------------------------------------
|
|
||||||
|
|
||||||
.dont_steal_rupee
|
|
||||||
LDA.l $7EF35A
|
|
||||||
STA.w SprSubtype, X
|
|
||||||
BEQ .dont_steal_anything
|
|
||||||
|
|
||||||
CMP.b #$03
|
|
||||||
BEQ .dont_steal_anything
|
|
||||||
|
|
||||||
LDA.b #$00
|
|
||||||
STA.l $7EF35A
|
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
|
; -----------------------------------------------------
|
||||||
|
|
||||||
.anim
|
.dont_steal_rupee
|
||||||
db $04, $04, $04, $04, $05, $05, $05, $05
|
LDA.l $7EF35A
|
||||||
db $05, $05, $05, $05, $05, $05, $05, $05
|
STA.w SprSubtype, X
|
||||||
db $05, $05, $05, $05, $04, $04, $04, $04
|
BEQ .dont_steal_anything
|
||||||
|
|
||||||
.pos
|
CMP.b #$03
|
||||||
db 0, 0, 0, 0, 0, 0, 0, 0
|
BEQ .dont_steal_anything
|
||||||
db 0, 0, 0, 0, 0, 0, 0, 0
|
|
||||||
db 0, 0, 0, 0, 0, 0, 0, 0
|
|
||||||
|
|
||||||
db 0, 0, 0, 0, 0, 0, 0, 0
|
LDA.b #$00
|
||||||
db 12, 16, 24, 32, 32, 24, 16, 12
|
STA.l $7EF35A
|
||||||
db 0, 0, 0, 0, 0, 0, 0, 0
|
RTS
|
||||||
|
|
||||||
db 0, 0, 0, 0, 0, 0, 0, 0
|
|
||||||
db -12, -16, -24, -32, -32, -24, -16, -12
|
|
||||||
db 0, 0, 0, 0, 0, 0, 0, 0
|
|
||||||
|
|
||||||
.index_offset_x
|
|
||||||
db $00, $00, $00, $00, $00, $00, $00, $00
|
|
||||||
|
|
||||||
.index_offset_y
|
|
||||||
db $00, $00, $00, $00, $00, $00, $00, $00
|
|
||||||
}
|
|
||||||
|
|
||||||
AntiKirby_Death:
|
|
||||||
{
|
|
||||||
%PlayAnimation(3, 3, 10) ; Death
|
|
||||||
|
|
||||||
LDA.b #$06 : STA.w SprState, X
|
|
||||||
LDA.b #$0A : STA.w SprTimerA, X
|
|
||||||
|
|
||||||
STZ.w SprPrize, X
|
|
||||||
|
|
||||||
LDA.b #$09 ; SFX2.1E
|
|
||||||
JSL $0DBB8A ; SpriteSFX_QueueSFX3WithPan
|
|
||||||
|
|
||||||
RTS
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
; 7-9: Walking with hat
|
; 7-9: Walking with hat
|
||||||
|
|||||||
Reference in New Issue
Block a user