diff --git a/modules/game/actors.scm b/modules/game/actors.scm index 8fe0615..49c0022 100644 --- a/modules/game/actors.scm +++ b/modules/game/actors.scm @@ -357,6 +357,8 @@ (define alive? (spawn ^cell #t)) (define countdown (spawn ^cell -1)) (define pushed? (spawn ^cell)) + (define* (light-fuse #:optional (time 2)) + ($ countdown time)) (match-lambda* (('type) 'bomb) (('position) ($ position)) @@ -392,10 +394,12 @@ (('update-wire-state grid-info neighbor-grid) (when (and (< ($ countdown) 0) (grid-electrified? neighbor-grid)) - ($ countdown 2))) + (light-fuse))) (('alive?) ($ alive?)) (('describe) `(bomb ,($ position) ,($ countdown))) - (('explode) ($ countdown 2)) + (('explode) (light-fuse 1)) + (('activate grid-info) (light-fuse)) + (('deactivate grid-info) #f) (('collide other offset grid-info) (when (eq? ($ other 'type) 'player) (match ($ position)