~rabbits/donsol

aa3ca4cf7cba98d4b9042535e90fb139eb8ca26c — neauoire 1 year, 4 months ago 87c5194
Implemented blocking
2 files changed, 61 insertions(+), 17 deletions(-)

M src/main.tal
M src/strings.tal
M src/main.tal => src/main.tal +61 -15
@@ 258,35 258,65 @@ RTN
@pick-enemy ( card type -- )

	POP
	( set sick ) #00 .player/sick STZ
	( set xp ) .player/xp LDZ INC .player/xp STZ
	( get ) TOS ;card-values ++ LDA
	.player/sp LDZ ,&shielded JCN
	.player/sp LDZ ,&shielding JCN

	&unshielded
		( set ) .player/hp LDZ SWP - .player/hp STZ
		( set sick ) #00 .player/sick STZ
		( set xp ) .player/xp LDZ INC .player/xp STZ
		( damages ) ;take-damages JSR2
		( test death ) .player/hp LDZ #00 = ;&death JCN2
		;draw-status JSR2
		;dialogs/unshielded ;draw-dialog JSR2
		;play-attack JSR2
	RTN
	&shielded ( value -- )
		( check if breaking shield )
		DUP INC .player/dp LDZ > ,&breaking JCN
		RTN

	&shielding ( value -- )
		( test breaking ) DUP INC .player/dp LDZ > ,&breaking JCN
		( test blocking ) DUP .player/sp LDZ < ,&blocking JCN
		( durability ) DUP .player/dp STZ
		POP
		( damages ) .player/sp LDZ - ;take-damages JSR2
		( test death ) .player/hp LDZ #00 = ,&death JCN
		;draw-status JSR2
		;dialogs/shielding ;draw-dialog JSR2
		;dialogs/damages ;draw-dialog JSR2
		;play-shielding JSR2
		RTN

	&breaking ( value -- )
		( break shield ) #00 DUP .player/sp STZ .player/dp STZ
		( damages ) ;take-damages JSR2
		( test death ) .player/hp LDZ #00 = ,&death JCN
		;draw-status JSR2
		;dialogs/breaking ;draw-dialog JSR2
		;play-breaking JSR2
		POP RTN

	&blocking ( value -- )
		POP
		( durability ) .player/dp STZ
		;draw-status JSR2
		;dialogs/blocking ;draw-dialog JSR2
		;play-blocking JSR2
		RTN
		
	&breaking ( value -- )
		;draw-status JSR2
		;dialogs/breaking ;draw-dialog JSR2

	&death ( -- )
		;dialogs/death ;draw-dialog JSR2
		;play-death JSR2

RTN

@take-damages ( mod -- )

	( negative )
	DUP #80 < ,&no-neg JCN
		POP
		RTN
		&no-neg
	( killing ) 
	DUP .player/hp LDZ < ,&no-kill JCN
		POP #00 .player/hp STZ
		RTN
		&no-kill
	.player/hp LDZ SWP - .player/hp STZ

RTN



@@ 341,6 371,22 @@ RTN

RTN

@play-shielding ( -- )

RTN

@play-blocking ( -- )

RTN

@play-breaking ( -- )

RTN

@play-death ( -- )

RTN

@redraw ( -- )

	;draw-status JSR2

M src/strings.tal => src/strings.tal +0 -2
@@ 11,8 11,6 @@
	( attack )
	&unshielded   193b 3f00 2333 3900 3229 2928 0025 0037 2c2d 2930 2840 0000 
	&blocking     2333 3900 2630 3327 2f29 2800 382c 2900 2538 3825 272f 4000 
	&shielded     2333 3900 2630 3327 2f29 2800 382c 2900 2538 3825 272f 4000 
	&shielding    2333 3900 2630 3327 2f29 2800 382c 2900 2538 3825 272f 4000 
	&breaking     2333 3936 0037 2c2d 2930 2800 2636 332f 293f 0000 0000 0000 
	&damages      2333 3900 3739 363a 2d3a 2928 0038 2c29 0026 2538 3830 2940 
	&death        2333 3900 282d 2928 4000 4100 1e36 3d00 252b 252d 3240 0000