~rabbits/donsol

af9c78fe7f4e945e7eb0298401a9023ec5976078 — neauoire 1 year, 4 months ago 9274abf
Connected card events
2 files changed, 118 insertions(+), 29 deletions(-)

M src/main.tal
M src/strings.tal
M src/main.tal => src/main.tal +113 -24
@@ 49,7 49,9 @@
	&length $1
	&cards $36
@player
	&hp $1 &sp $1 &sp-max $1 &xp $1 
	&hp $1 &hp-tween $1
	&sp $1 &sp-tween $1
	&sp-max $1 &xp $1 
	&run $1 &sick $1
@table
	&a $1 &b $1 &c $1 &d $1 &selection $1


@@ 93,7 95,30 @@
BRK

@on-frame ( -> )
	( inactive )

	( tween )
	.player/hp LDZ2
	GTHk #00 = ,&no-hp-dec JCN
		INCk .player/hp-tween STZ
		;draw-status JSR2
		&no-hp-dec 
	LTHk #00 = ,&no-hp-inc JCN
		DUP #01 - .player/hp-tween STZ
		;draw-status JSR2
		&no-hp-inc
	POP2

	.player/sp LDZ2
	GTHk #00 = ,&no-sp-dec JCN
		INCk .player/sp-tween STZ
		;draw-status JSR2
		&no-sp-dec 
	LTHk #00 = ,&no-sp-inc JCN
		DUP #01 - .player/sp-tween STZ
		;draw-status JSR2
		&no-sp-inc
	POP2

BRK

@on-button ( -> )


@@ 128,7 153,7 @@ BRK
@start-game ( -- )

	( reset player )
	#15 .player/hp STZ
	#10 DUP .player/hp STZ .player/hp-tween STZ
	#0000 .player/sp STZ2
	#00 .player/xp STZ



@@ 136,11 161,12 @@ BRK
	;init-deck JSR2
	;shuffle-deck JSR2
	;pull-card JSR2 #00 ;put-card JSR2
	;pull-card JSR2 #01 ;put-card JSR2
	;pull-card JSR2 #02 ;put-card JSR2
	#2d #01 ;put-card JSR2
	#18 #02 ;put-card JSR2
	;pull-card JSR2 #03 ;put-card JSR2

	;redraw JSR2
	;dialogs/entered ;draw-dialog JSR2

RTN



@@ 186,7 212,53 @@ RTN
	DUP #36 < ,&not-flipped JCN
		POP RTN
		&not-flipped
	DEBUG
	DUP TOS ;card-types ++ LDA
	( route card type )
	DUP #00 = ;use-potion JCN2
	DUP #01 = ;use-shield JCN2
	DUP ;use-enemy JCN2

RTN

@use-potion ( card type -- )

	POP
	.player/sick LDZ #01 ! ,&no-sick JCN
		;dialogs/sickness ;draw-dialog JSR2
		;play-error JSR2 POP RTN
		&no-sick
	.player/hp LDZ #15 ! ,&no-waste JCN
		;dialogs/waste ;draw-dialog JSR2
		;play-error JSR2 POP RTN
		&no-waste
	( get ) TOS ;card-values ++ LDA .player/hp LDZ +
	( set ) #15 LTHk SWP? POP .player/hp STZ
	( set sick ) #01 .player/sick STZ
	;draw-status JSR2
	;dialogs/potion ;draw-dialog JSR2
	;play-potion JSR2

RTN

@use-shield ( card type -- )

	POP
	( get ) TOS ;card-values ++ LDA
	( set ) .player/sp STZ
	;draw-status JSR2
	;dialogs/shield ;draw-dialog JSR2
	;play-shield JSR2

RTN

@use-enemy ( card type -- )

	POP
	( get ) TOS ;card-values ++ LDA
	( set ) .player/hp LDZ SWP - .player/hp STZ
	;draw-status JSR2
	;dialogs/unshielded ;draw-dialog JSR2
	;play-attack JSR2

RTN



@@ 219,12 291,29 @@ RTN
		&no-use
	4MOD .table/selection STZ
	#03 ;draw-selection JSR2
	POP

RTN

@play-error ( -- )

RTN

@play-potion ( -- )

RTN

@play-shield ( -- )

RTN

@play-attack ( -- )

RTN

@redraw ( -- )

	;draw-ui JSR2
	;draw-status JSR2
	#03 ;draw-selection JSR2
	;draw-table JSR2



@@ 249,28 338,23 @@ RTN
	.frame/y LDZ2 #0030 ++ 
		.table/d LDZ ;draw-card JSR2

	.frame/x LDZ2
	.frame/y LDZ2 #0088 ++
		#03 ;draw-dialog JSR2

RTN

@draw-dialog ( x* y* id -- )
@draw-dialog ( dialog* -- )

	STH
	.Screen/y DEO2
	.Screen/x DEO2
	STH2
	.frame/x LDZ2 .Screen/x DEO2
	.frame/y LDZ2 #0088 ++ .Screen/y DEO2
	( auto x ) #01 .Screen/auto DEO
	#1800
	&loop
		( get offset ) DUP TOS
		( find dialog ) STHkr TOS #0018 ** ;dialogs ++
		( get char ) ++ LDA TOS 8** ;font ++ .Screen/addr DEO2
		( get offset ) DUP TOS STH2kr ++ LDA
		( get char ) TOS 8** ;font ++ .Screen/addr DEO2
		#02 .Screen/sprite DEO
		INC GTHk ,&loop JCN
	POP2
	( auto none ) #00 .Screen/auto DEO
	POPr
	POP2r

RTN



@@ 315,21 399,26 @@ RTN

RTN

@draw-ui ( -- )
@draw-status ( -- )

	( HP )
	.frame/x LDZ2 
	.frame/y LDZ2 
		OVR2 OVR2 #0010 ++ ;hp-txt #02 ;draw-label JSR2
		OVR2 #0020 ++ OVR2 #0010 ++ .player/hp LDZ #01 ;draw-value JSR2
		.player/hp LDZ #05 ;draw-ui-progress JSR2
		OVR2 #0020 ++ OVR2 #0010 ++ .player/hp-tween LDZ #01 ;draw-value JSR2
		.player/hp-tween LDZ #05 ;draw-ui-progress JSR2
	( sick )
	.frame/x LDZ2 #0010 ++ .Screen/x DEO2
	.frame/y LDZ2 #0010 ++ .Screen/y DEO2
	;star-icn ;blank-icn .player/sick LDZ SWP2? POP2 .Screen/addr DEO2
	#03 .Screen/sprite DEO

	( SP )
	.frame/x LDZ2 #0038 ++ 
	.frame/y LDZ2 
		OVR2 OVR2 #0010 ++ ;sp-txt #02 ;draw-label JSR2
		OVR2 #0020 ++ OVR2 #0010 ++ .player/sp LDZ #03 ;draw-value JSR2
		#12 #0f ;draw-ui-progress JSR2
		OVR2 #0020 ++ OVR2 #0010 ++ .player/sp-tween LDZ #03 ;draw-value JSR2
		.player/sp-tween LDZ #0f ;draw-ui-progress JSR2

	( XP )	
	.frame/x LDZ2 #0070 ++ 

M src/strings.tal => src/strings.tal +5 -5
@@ 1,15 1,15 @@

@dialogs
	&clear        0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
	&sickness     2333 3900 2a29 2930 0037 2d27 2f69 0000 0000 0000 0000 0000 
	&shieldbreak  2333 3936 0037 2c2d 2930 2800 2636 332f 2968 0000 0000 0000 
	&sickness     2333 3900 2a29 2930 0037 2d27 2f40 0000 0000 0000 0000 0000 
	&shieldbreak  2333 3936 0037 2c2d 2930 2800 2636 332f 293f 0000 0000 0000 
	&death        2333 3900 282d 2928 4000 4100 1e36 3d00 252b 252d 3240 0000 
	&cannot_run   2333 3900 2725 3232 3338 0036 3932 0025 3b25 3d40 0000 0000 
	&shield       2333 3900 2a33 3932 2800 2500 372c 2d29 3028 4000 0000 0000 
	&potion       2333 3900 2836 2532 2f00 2500 3433 382d 3332 4000 0000 0000 
	&wastedpotion 2333 3900 3b25 3738 2928 0025 0034 3338 2d33 3268 0000 0000 
	&unshielded   193b 6800 2333 3900 3229 2928 0025 0037 2c2d 2930 2840 0000 
	&attack       2333 3900 2932 3829 3629 2800 382c 2900 3633 3331 4000 0000 
	&waste        2333 3900 3b25 3738 2928 0025 0034 3338 2d33 323f 0000 0000 
	&unshielded   193b 3f00 2333 3900 3229 2928 0025 0037 2c2d 2930 2840 0000 
	&entered      2333 3900 2932 3829 3629 2800 382c 2900 3633 3331 4000 0000 
	&shielded     2333 3900 2630 3327 2f29 2800 382c 2900 2538 3825 272f 4000 
	&damages      2333 3900 3739 363a 2d3a 2928 0038 2c29 0026 2538 3830 2940 
	&run          2333 3900 3625 3200 253b 253d 4000 0000 0000 0000 0000 0000