mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-08-28 12:29:35 +00:00
ootw: c1: beast behaves better in rope room
keeps running when on rope stays on ground when walking
This commit is contained in:
parent
cd0cad8fa1
commit
55e544610e
@ -85,9 +85,9 @@ BEHAVIOR DIFFERENCES:
|
||||
- earthquake should happen while on rope
|
||||
|
||||
* beast:
|
||||
- beast can/should trip and fall if it gets close in the pool
|
||||
room while running?
|
||||
|
||||
- beast can/should trip and fall if it gets too close but
|
||||
then you pull away
|
||||
- beast should climb hill in rope room better
|
||||
|
||||
|
||||
|
||||
@ -137,6 +137,7 @@ FUTURE WORK:
|
||||
+ alien running
|
||||
+ friend walking
|
||||
+ friend running
|
||||
+ alien punching animation
|
||||
|
||||
* L1 pool
|
||||
+ adjust tentacle to not go off edge of screen
|
||||
|
@ -120,10 +120,29 @@ check_beast_right:
|
||||
|
||||
check_beast_left:
|
||||
|
||||
; stop if in rope room and at edge
|
||||
|
||||
lda WHICH_CAVE
|
||||
cmp #3
|
||||
bne beast_not_rope_room
|
||||
beast_rope_room:
|
||||
lda BEAST_X
|
||||
cmp #11
|
||||
bcs beast_not_rope_room ; bge
|
||||
|
||||
lda #B_STANDING
|
||||
sta BEAST_STATE
|
||||
|
||||
lda #0
|
||||
sta BEAST_COUNT
|
||||
rts
|
||||
|
||||
beast_not_rope_room:
|
||||
|
||||
; no attack if swinging
|
||||
lda PHYSICIST_STATE
|
||||
cmp #P_SWINGING
|
||||
beq stop_beast
|
||||
beq skip_if_swinging
|
||||
|
||||
; Pp^pp Bbbbbb
|
||||
; if B=p
|
||||
@ -135,10 +154,7 @@ check_beast_left:
|
||||
bne beast_no_stop
|
||||
beq beast_caught
|
||||
|
||||
stop_beast:
|
||||
lda #B_STANDING
|
||||
sta BEAST_STATE
|
||||
rts
|
||||
skip_if_swinging:
|
||||
|
||||
beast_no_stop:
|
||||
inc BEAST_GAIT ; cycle through animation
|
||||
@ -170,6 +186,9 @@ beast_caught:
|
||||
;======================
|
||||
; standing
|
||||
|
||||
; need to check for collision here so physicist
|
||||
; doesn't just run past beast at arrival
|
||||
|
||||
move_beast_standing:
|
||||
lda BEAST_COUNT
|
||||
beq beast_stand_done ; if 0, perma-stand
|
||||
@ -181,6 +200,15 @@ move_beast_standing:
|
||||
sta BEAST_STATE
|
||||
|
||||
beast_stand_done:
|
||||
|
||||
lda PHYSICIST_X
|
||||
cmp BEAST_X
|
||||
|
||||
bne p_not_foolish
|
||||
|
||||
jmp beast_slash_cutscene
|
||||
|
||||
p_not_foolish:
|
||||
rts
|
||||
|
||||
;======================================
|
||||
|
@ -71,6 +71,9 @@ load_swing_bg:
|
||||
sta GAIT
|
||||
sta GAME_OVER
|
||||
|
||||
lda #3
|
||||
sta WHICH_CAVE
|
||||
|
||||
jsr setup_beast
|
||||
|
||||
;============================
|
||||
@ -160,27 +163,29 @@ beyond_quake:
|
||||
|
||||
; adjust y for slope
|
||||
|
||||
; shift by 2 from physicist as beast is 9 wide (vs 5)
|
||||
|
||||
lda BEAST_X
|
||||
cmp #26
|
||||
cmp #24
|
||||
bcs beast_no_adjust_y ; bge
|
||||
|
||||
cmp #17
|
||||
bcc beast_on_platform
|
||||
cmp #15
|
||||
bcc beast_on_platform ; blt
|
||||
|
||||
sec
|
||||
sbc #3
|
||||
clc
|
||||
adc #1
|
||||
and #$fe ; our sprite code only draws even y
|
||||
|
||||
jmp beast_done_adjust_y
|
||||
; slope is 15 - 26 ( 28 - 36)
|
||||
; 26 -> 22
|
||||
; 16 maps to -> 16
|
||||
; 24 maps to -> 24
|
||||
|
||||
beast_on_platform:
|
||||
lda #14
|
||||
lda #16
|
||||
bne beast_done_adjust_y
|
||||
|
||||
beast_no_adjust_y:
|
||||
lda #22
|
||||
lda #24
|
||||
beast_done_adjust_y:
|
||||
sta BEAST_Y
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user