update anti kirby draw data and ai logic
This commit is contained in:
@@ -57,6 +57,7 @@ Sprite_AntiKirby_Prep:
|
|||||||
|
|
||||||
LDA #$00 : STA.w SprDefl, X
|
LDA #$00 : STA.w SprDefl, X
|
||||||
LDA #$00 : STA.w SprTileDie, X
|
LDA #$00 : STA.w SprTileDie, X
|
||||||
|
STZ.w SprMiscB, X
|
||||||
|
|
||||||
LDY $0FFF
|
LDY $0FFF
|
||||||
LDA .bump_damage, Y : STA.w SprBump, X
|
LDA .bump_damage, Y : STA.w SprBump, X
|
||||||
@@ -80,94 +81,63 @@ Sprite_AntiKirby_Prep:
|
|||||||
|
|
||||||
Sprite_AntiKirby_Main:
|
Sprite_AntiKirby_Main:
|
||||||
{
|
{
|
||||||
|
JSL Sprite_IsToRightOfPlayer
|
||||||
|
TYA : CMP #$01 : BNE .WalkRight
|
||||||
|
.WalkLeft
|
||||||
|
LDA.b #$40 : STA.w SprMiscC, X
|
||||||
|
JMP +
|
||||||
|
.WalkRight
|
||||||
|
STZ.w SprMiscC, X
|
||||||
|
+
|
||||||
|
|
||||||
LDA.w SprAction, X
|
LDA.w SprAction, X
|
||||||
JSL UseImplicitRegIndexedLocalJumpTable
|
JSL UseImplicitRegIndexedLocalJumpTable
|
||||||
|
|
||||||
dw AntiKirby_Start
|
dw AntiKirby_Main
|
||||||
dw AntiKirby_WalkRight
|
|
||||||
dw AntiKirby_WalkLeft
|
|
||||||
dw AntiKirby_Hurt
|
dw AntiKirby_Hurt
|
||||||
dw AntiKirby_Suck
|
dw AntiKirby_Suck
|
||||||
dw AntiKirby_Full
|
dw AntiKirby_Full
|
||||||
dw AntiKirby_Death
|
dw AntiKirby_Death
|
||||||
|
|
||||||
AntiKirby_Start:
|
AntiKirby_Main:
|
||||||
{
|
{
|
||||||
; Check health
|
; Check health
|
||||||
LDA SprHealth, X : CMP.b #$01 : BCS .NotDead
|
LDA SprHealth, X : CMP.b #$01 : BCS .NotDead
|
||||||
%GotoAction(6)
|
%GotoAction(4)
|
||||||
RTS
|
RTS
|
||||||
.NotDead
|
.NotDead
|
||||||
|
|
||||||
; Randomly Suck
|
; Randomly Suck
|
||||||
JSL GetRandomInt : AND #$3F : BNE .not_done
|
JSL GetRandomInt : AND #$3F : BNE .not_done
|
||||||
LDA #$04 : STA SprTimerA, X
|
LDA #$04 : STA SprTimerA, X
|
||||||
%GotoAction(4)
|
%GotoAction(2)
|
||||||
RTS
|
RTS
|
||||||
.not_done
|
.not_done
|
||||||
|
|
||||||
JSL Sprite_IsToRightOfPlayer
|
%PlayAnimation(0, 2, 10) ; Start
|
||||||
TYA : CMP #$01 : BNE .WalkRight
|
|
||||||
|
|
||||||
.WalkLeft
|
|
||||||
%GotoAction(2)
|
|
||||||
RTS
|
|
||||||
|
|
||||||
.WalkRight
|
|
||||||
%GotoAction(1)
|
|
||||||
RTS
|
|
||||||
}
|
|
||||||
|
|
||||||
AntiKirby_WalkRight:
|
|
||||||
{
|
|
||||||
%PlayAnimation(0, 2, 10) ; Walk Right
|
|
||||||
|
|
||||||
PHX
|
|
||||||
JSL Sprite_DamageFlash_Long
|
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(3) ; Hurt
|
%GotoAction(1) ; Hurt
|
||||||
PLX
|
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
.NoDamage
|
.NoDamage
|
||||||
|
|
||||||
%DoDamageToPlayerSameLayerOnContact()
|
%DoDamageToPlayerSameLayerOnContact()
|
||||||
PLX
|
|
||||||
%MoveTowardPlayer(10)
|
%MoveTowardPlayer(10)
|
||||||
JSL Sprite_BounceFromTileCollision
|
JSL Sprite_BounceFromTileCollision
|
||||||
JSL Sprite_PlayerCantPassThrough
|
JSL Sprite_PlayerCantPassThrough
|
||||||
|
|
||||||
%GotoAction(0)
|
|
||||||
RTS
|
|
||||||
}
|
|
||||||
|
|
||||||
AntiKirby_WalkLeft:
|
|
||||||
{
|
|
||||||
%PlayAnimation(3, 6, 10) ; Walk Left
|
|
||||||
|
|
||||||
PHX
|
|
||||||
JSL Sprite_DamageFlash_Long
|
|
||||||
JSL Sprite_CheckDamageFromPlayerLong : BCC .NoDamage
|
|
||||||
LDA #!RecoilTime : STA SprTimerA, X
|
|
||||||
%GotoAction(3) ; Hurt
|
|
||||||
PLX
|
|
||||||
RTS
|
|
||||||
.NoDamage
|
|
||||||
%DoDamageToPlayerSameLayerOnContact()
|
|
||||||
PLX
|
|
||||||
|
|
||||||
%MoveTowardPlayer(10)
|
|
||||||
JSL Sprite_BounceFromTileCollision
|
|
||||||
JSL Sprite_PlayerCantPassThrough
|
|
||||||
%GotoAction(0)
|
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
AntiKirby_Hurt:
|
AntiKirby_Hurt:
|
||||||
{
|
{
|
||||||
%PlayAnimation(8, 8, 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
|
||||||
@@ -177,7 +147,8 @@ Sprite_AntiKirby_Main:
|
|||||||
|
|
||||||
AntiKirby_Suck:
|
AntiKirby_Suck:
|
||||||
{
|
{
|
||||||
%PlayAnimation(9, 10, 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
|
||||||
@@ -188,7 +159,7 @@ Sprite_AntiKirby_Main:
|
|||||||
JSL Sprite_ConvertVelocityToAngle
|
JSL Sprite_ConvertVelocityToAngle
|
||||||
|
|
||||||
LSR A
|
LSR A
|
||||||
STA.w SprMiscC,X
|
STA.w SprMiscD,X
|
||||||
|
|
||||||
LDA.b #$5F
|
LDA.b #$5F
|
||||||
STA.w SprTimerA, X
|
STA.w SprTimerA, X
|
||||||
@@ -197,27 +168,26 @@ Sprite_AntiKirby_Main:
|
|||||||
; -----------------------------------------------------
|
; -----------------------------------------------------
|
||||||
|
|
||||||
.dont_tongue_link
|
.dont_tongue_link
|
||||||
STZ.w SprAction, X
|
|
||||||
|
|
||||||
LDA.b #$10
|
|
||||||
STA.w SprTimerA, X
|
|
||||||
|
LDA.w SprTimerA, X : BNE +
|
||||||
|
STZ.w SprAction, X
|
||||||
|
+
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
AntiKirby_Full:
|
AntiKirby_Full:
|
||||||
{
|
{
|
||||||
%PlayAnimation(11, 11, 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
|
||||||
|
|
||||||
LDA.b #$10
|
LDA.b #$10
|
||||||
STA.w SprTimerA, X
|
STA.w SprTimerA, X
|
||||||
|
|
||||||
STZ.w SprFrame, X
|
STZ.w SprFrame, X
|
||||||
STZ.w SprMiscA, X
|
|
||||||
STZ.w SprMiscG, X
|
STZ.w SprMiscG, X
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
@@ -228,10 +198,10 @@ Sprite_AntiKirby_Main:
|
|||||||
PHA
|
PHA
|
||||||
|
|
||||||
TAY
|
TAY
|
||||||
LDA.w .anim,Y : STA.w SprGfx, X
|
LDA.w .anim, Y : STA.w SprGfx, X
|
||||||
TYA
|
TYA
|
||||||
|
|
||||||
LDY.w SprMiscC, X
|
LDY.w SprMiscD, X
|
||||||
PHY
|
PHY
|
||||||
|
|
||||||
CLC : ADC.w .index_offset_x, Y
|
CLC : ADC.w .index_offset_x, Y
|
||||||
@@ -253,7 +223,7 @@ Sprite_AntiKirby_Main:
|
|||||||
CLC : ADC.w .index_offset_y, Y
|
CLC : ADC.w .index_offset_y, Y
|
||||||
|
|
||||||
TAY
|
TAY
|
||||||
LDA.w .pos, Y : STA.w SprMiscA, X
|
LDA.w .pos, Y : STA.w SprMiscE, X
|
||||||
|
|
||||||
STA.b $06
|
STA.b $06
|
||||||
STZ.b $07
|
STZ.b $07
|
||||||
@@ -292,7 +262,7 @@ Sprite_AntiKirby_Main:
|
|||||||
AND.b #$03
|
AND.b #$03
|
||||||
INC A
|
INC A
|
||||||
STA.w SprMiscG, X
|
STA.w SprMiscG, X
|
||||||
STA.w SprMiscD, X
|
STA.w SprMiscE, X
|
||||||
|
|
||||||
CMP.b #$01 : BNE .dont_steal_bomb
|
CMP.b #$01 : BNE .dont_steal_bomb
|
||||||
LDA.l $7EF343 : BEQ .dont_steal_anything
|
LDA.l $7EF343 : BEQ .dont_steal_anything
|
||||||
@@ -313,16 +283,13 @@ Sprite_AntiKirby_Main:
|
|||||||
.dont_steal_arrow
|
.dont_steal_arrow
|
||||||
|
|
||||||
CMP.b #$03 : BNE .dont_steal_rupee
|
CMP.b #$03 : BNE .dont_steal_rupee
|
||||||
|
|
||||||
REP #$20
|
REP #$20
|
||||||
|
|
||||||
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
|
RTS
|
||||||
|
|
||||||
; -----------------------------------------------------
|
; -----------------------------------------------------
|
||||||
|
|
||||||
.dont_steal_rupee
|
.dont_steal_rupee
|
||||||
@@ -339,9 +306,9 @@ Sprite_AntiKirby_Main:
|
|||||||
RTS
|
RTS
|
||||||
|
|
||||||
.anim
|
.anim
|
||||||
db $09, $09, $09, $09, $0A, $0A, $0A, $0A
|
db $04, $04, $04, $04, $05, $05, $05, $05
|
||||||
db $0A, $0A, $0A, $0A, $0A, $0A, $0A, $0A
|
db $05, $05, $05, $05, $05, $05, $05, $05
|
||||||
db $0A, $0A, $0A, $0A, $09, $09, $09, $09
|
db $05, $05, $05, $05, $04, $04, $04, $04
|
||||||
|
|
||||||
.pos
|
.pos
|
||||||
db 0, 0, 0, 0, 0, 0, 0, 0
|
db 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
@@ -357,20 +324,22 @@ Sprite_AntiKirby_Main:
|
|||||||
db 0, 0, 0, 0, 0, 0, 0, 0
|
db 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
|
|
||||||
.index_offset_x
|
.index_offset_x
|
||||||
db $18, $18, $00, $30, $30, $30, $00, $18
|
; db $18, $18, $00, $30, $30, $30, $00, $18
|
||||||
|
db $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
|
|
||||||
.index_offset_y
|
.index_offset_y
|
||||||
db $00, $18, $18, $18, $00, $30, $30, $30
|
; db $00, $18, $18, $18, $00, $30, $30, $30
|
||||||
|
db $00, $00, $00, $00, $00, $00, $00, $00
|
||||||
}
|
}
|
||||||
|
|
||||||
AntiKirby_Death:
|
AntiKirby_Death:
|
||||||
{
|
{
|
||||||
%PlayAnimation(12, 12, 10) ; Death
|
%PlayAnimation(3, 3, 10) ; Death
|
||||||
|
|
||||||
LDA.b #$06 : STA.w SprState, X
|
LDA.b #$06 : STA.w SprState, X
|
||||||
LDA.b #$0A : STA.w SprTimerA, X
|
LDA.b #$0A : STA.w SprTimerA, X
|
||||||
|
|
||||||
STZ.w SprPrize,X
|
STZ.w SprPrize, X
|
||||||
|
|
||||||
LDA.b #$09 ; SFX2.1E
|
LDA.b #$09 ; SFX2.1E
|
||||||
JSL $0DBB8A ; SpriteSFX_QueueSFX3WithPan
|
JSL $0DBB8A ; SpriteSFX_QueueSFX3WithPan
|
||||||
@@ -379,6 +348,8 @@ Sprite_AntiKirby_Main:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
; 7-9: Walking with hat
|
||||||
|
; 10: Hurt with hat
|
||||||
|
|
||||||
Sprite_AntiKirby_Draw:
|
Sprite_AntiKirby_Draw:
|
||||||
{
|
{
|
||||||
@@ -388,7 +359,8 @@ Sprite_AntiKirby_Draw:
|
|||||||
LDA SprGfx, X : CLC : ADC SprFrame, X : TAY;Animation Frame
|
LDA SprGfx, X : CLC : ADC SprFrame, X : TAY;Animation Frame
|
||||||
LDA .start_index, Y : STA $06
|
LDA .start_index, Y : STA $06
|
||||||
|
|
||||||
LDA SprMiscA, X : STA $08
|
LDA.w SprMiscA, X : STA $08
|
||||||
|
LDA.w SprMiscC, X : STA $09
|
||||||
|
|
||||||
PHX
|
PHX
|
||||||
LDX .nbr_of_tiles, Y ;amount of tiles -1
|
LDX .nbr_of_tiles, Y ;amount of tiles -1
|
||||||
@@ -421,7 +393,7 @@ Sprite_AntiKirby_Draw:
|
|||||||
INY
|
INY
|
||||||
LDA .chr, X : STA ($90), Y
|
LDA .chr, X : STA ($90), Y
|
||||||
INY
|
INY
|
||||||
LDA .properties, X : ORA $08 : STA ($90), Y
|
LDA .properties, X : ORA $08 : AND.b #$FF : ORA $09 : STA ($90), Y
|
||||||
|
|
||||||
PHY
|
PHY
|
||||||
|
|
||||||
@@ -437,76 +409,68 @@ Sprite_AntiKirby_Draw:
|
|||||||
|
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
; Anti-Kirby V2 draw
|
||||||
|
|
||||||
.start_index
|
.start_index
|
||||||
db $00, $01, $02, $03, $05, $06, $07, $08, $0A, $0B, $0D, $0F, $11
|
db $00, $01, $02, $03, $04, $06, $08, $0A, $0C, $0E, $10
|
||||||
.nbr_of_tiles
|
.nbr_of_tiles
|
||||||
db 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1
|
db 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1
|
||||||
.x_offsets
|
.x_offsets
|
||||||
dw 0
|
dw 0
|
||||||
dw 1
|
|
||||||
dw 0
|
dw 0
|
||||||
dw 0, 16
|
|
||||||
dw 0
|
dw 0
|
||||||
dw -1
|
|
||||||
dw 0
|
dw 0
|
||||||
dw 0, -16
|
dw 0, 8
|
||||||
dw 0
|
dw 0, 8
|
||||||
dw 0, 16
|
dw -4, 4
|
||||||
dw 0, 16
|
dw 0, -4
|
||||||
dw -4, 12
|
dw 0, -4
|
||||||
dw -4, 12
|
dw 0, -4
|
||||||
|
dw 0, -4
|
||||||
.y_offsets
|
.y_offsets
|
||||||
dw 0
|
dw 0
|
||||||
dw 0
|
dw 0
|
||||||
dw 0
|
dw 0
|
||||||
dw 0, 0
|
|
||||||
dw 0
|
|
||||||
dw 0
|
|
||||||
dw 0
|
|
||||||
dw 0, 0
|
|
||||||
dw 0
|
dw 0
|
||||||
dw 0, 0
|
dw 0, 0
|
||||||
dw 0, 0
|
dw 0, 0
|
||||||
dw 0, 0
|
dw 0, 0
|
||||||
dw 0, 0
|
dw 0, -8
|
||||||
|
dw 0, -8
|
||||||
|
dw 0, -8
|
||||||
|
dw 0, -6
|
||||||
.chr
|
.chr
|
||||||
db $00
|
|
||||||
db $02
|
db $02
|
||||||
db $00
|
db $00
|
||||||
db $04, $06
|
db $04
|
||||||
db $00
|
|
||||||
db $02
|
|
||||||
db $00
|
|
||||||
db $04, $06
|
|
||||||
db $20
|
db $20
|
||||||
db $08, $0A
|
db $08, $09
|
||||||
db $28, $2A
|
db $28, $29
|
||||||
db $22, $24
|
db $22, $23
|
||||||
db $22, $24
|
db $02, $25
|
||||||
|
db $00, $25
|
||||||
|
db $04, $25
|
||||||
|
db $20, $25
|
||||||
.properties
|
.properties
|
||||||
db $37
|
db $37
|
||||||
db $37
|
db $37
|
||||||
db $37
|
db $37
|
||||||
db $37, $37
|
|
||||||
db $77
|
|
||||||
db $77
|
|
||||||
db $77
|
|
||||||
db $77, $77
|
|
||||||
db $37
|
db $37
|
||||||
db $37, $37
|
db $37, $37
|
||||||
db $37, $37
|
db $37, $37
|
||||||
db $37, $37
|
db $37, $37
|
||||||
db $37, $37
|
db $37, $3B
|
||||||
|
db $37, $3B
|
||||||
|
db $37, $3B
|
||||||
|
db $37, $3B
|
||||||
.sizes
|
.sizes
|
||||||
db $02
|
db $02
|
||||||
db $02
|
db $02
|
||||||
db $02
|
db $02
|
||||||
db $02, $02
|
|
||||||
db $02
|
|
||||||
db $02
|
|
||||||
db $02
|
db $02
|
||||||
db $02, $02
|
db $02, $02
|
||||||
db $02
|
db $02, $02
|
||||||
|
db $02, $02
|
||||||
db $02, $02
|
db $02, $02
|
||||||
db $02, $02
|
db $02, $02
|
||||||
db $02, $02
|
db $02, $02
|
||||||
|
|||||||
Reference in New Issue
Block a user