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