From 13e0387bc1cc1c30e189d1d7eab5121a22c77e8e Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Wed, 4 Nov 2026 14:12:13 -0600 Subject: [PATCH] Make timers yield self when triggered and make repeating timers cancellable --- lib/cyberarm_engine/timer.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/cyberarm_engine/timer.rb b/lib/cyberarm_engine/timer.rb index 587e517..dd1b65a 100644 --- a/lib/cyberarm_engine/timer.rb +++ b/lib/cyberarm_engine/timer.rb @@ -16,10 +16,15 @@ module CyberarmEngine @last_interval = Gosu.milliseconds @triggered = true - @block.call if @block + @block.call(self) if @block end end + def cancel + @looping = false + @triggered = true + end + def dead? @triggered && !@looping end