add EonOwl ID, update AI

This commit is contained in:
scawful
2024-07-27 17:21:45 -04:00
parent 791c358997
commit a443be7951
2 changed files with 35 additions and 4 deletions

View File

@@ -1,7 +1,8 @@
; =========================================================
; Sprite Properties
; =========================================================
!SPRID = $F6 ; The sprite ID you are overwriting (HEX)
!SPRID = Sprite_EonOwl
!NbrTiles = 00 ; Number of tiles used in a frame
!Harmless = 00 ; 00 = Sprite is Harmful, 01 = Sprite is Harmless
!HVelocity = 00 ; Is your sprite going super fast? put 01 if it is
@@ -50,38 +51,63 @@ Sprite_EonOwl_Long:
; =========================================================
Sprite_EonOwl_Prep:
{
PHB : PHK : PLB
; Add more code here to initialize data
PLB
RTL
}
; =========================================================
Sprite_EonOwl_Main:
{
LDA.w SprAction, X; Load the SprAction
JSL UseImplicitRegIndexedLocalJumpTable; Goto the SprAction we are currently in
dw EonOwl_Idle
dw EonOwl_Flying
dw EonOwl_IntroDialogue
dw EonOwl_FlyingAway
EonOwl_Idle:
{
%PlayAnimation(0,1,16)
LDA POSX : STA $02
LDA POSY : STA $03
LDA SprX, X : STA $04
LDA SprY, X : STA $05
JSL GetDistance8bit_Long : CMP #$18 : BCS .not_too_close
%GotoAction(1)
.not_too_close
RTS
}
EonOwl_IntroDialogue:
{
%PlayAnimation(0,1,16)
; TODO: Pick a dialogue ID and display it
RTS
}
EonOwl_Flying:
{
%PlayAnimation(2,3,16)
%PlayAnimation(2,3,16)
RTS
}
}
; =========================================================
Sprite_EonOwl_Draw:
{
JSL Sprite_PrepOamCoord
JSL Sprite_OAM_AllocateDeferToPlayer
@@ -165,3 +191,4 @@ Sprite_EonOwl_Draw:
db $02, $02
db $02, $02
db $02, $02
}

View File

@@ -258,6 +258,10 @@ print "End of Lanmola_Expanded.asm ", pc
incsrc "Sprites/NPCs/followers.asm"
print "End of followers.asm ", pc
Sprite_EonOwl = $0A
incsrc "Sprites/NPCs/eon_owl.asm"
print "End of eon_owl.asm ", pc
incsrc "Sprites/NPCs/fortune_teller.asm"
print "End of fortune_teller.asm ", pc