diff --git a/assets/sounds/emitter-off.wav b/assets/sounds/emitter-off.wav new file mode 100644 index 0000000..3c1d30f Binary files /dev/null and b/assets/sounds/emitter-off.wav differ diff --git a/assets/sounds/emitter-on.wav b/assets/sounds/emitter-on.wav new file mode 100644 index 0000000..c6c0fdc Binary files /dev/null and b/assets/sounds/emitter-on.wav differ diff --git a/game.scm b/game.scm index 8b9097e..a59845d 100644 --- a/game.scm +++ b/game.scm @@ -70,6 +70,8 @@ (define audio:exit (load-sound-effect "exit")) (define audio:pickup (load-sound-effect "pickup")) (define audio:emit (load-sound-effect "emit")) +(define audio:emitter-on (load-sound-effect "emitter-on")) +(define audio:emitter-off (load-sound-effect "emitter-off")) (define audio:die (load-sound-effect "die")) (define audio:gate (load-sound-effect "gate")) (define audio:warp (load-sound-effect "warp")) @@ -258,6 +260,10 @@ (set! *gems* (cons *level-idx* *gems*))) (('emit x y) (play-sound-effect audio:emit)) + (('emitter-on x y) + (play-sound-effect audio:emitter-on)) + (('emitter-off x y) + (play-sound-effect audio:emitter-off)) (('gate-open x y) (play-sound-effect audio:gate)) (('gate-close x y) diff --git a/modules/game/actors.scm b/modules/game/actors.scm index b65b653..07d507e 100644 --- a/modules/game/actors.scm +++ b/modules/game/actors.scm @@ -161,8 +161,11 @@ (('exit obj grid-info) #f) (('activate grid-info) ($ on? #t) - ($ timer 0)) - (('deactivate grid-info) ($ on? #f)) + ($ timer 0) + ($ grid-info 'append-event `(emitter-on ,x ,y))) + (('deactivate grid-info) + ($ on? #f) + ($ grid-info 'append-event `(emitter-off ,x ,y))) (('wire-state grid-info) (when ($ on?) (let ((t ($ timer)))