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