better buttonboxing

This commit is contained in:
legop3
2026-06-29 02:18:53 -04:00
parent 8843bd6acf
commit f118f6456a
22 changed files with 350 additions and 76 deletions
@@ -1,7 +1,7 @@
// Reward Definition: Light Strobe
// Purpose: Defines the light-strobe deterrence reward and activation contract. Scope: Encapsulates reward identity, labels, and effect parameters for runtime dispatch.
const STROBE_MS = 30 * 1000;
const TICK_MS = 200;
const TICK_MS = 500;
let activeTimer = null;
@@ -40,7 +40,8 @@ function startStrobe(ctx, effect = {}) {
module.exports = {
id: 'lightStrobe',
name: 'Light Strobe',
goal: 300,
description: 'Makes the room lights flash rapidly for 30 seconds.',
goal: 400,
async run(ctx) {
startStrobe(ctx, { endsAt: Date.now() + STROBE_MS, on: false });
ctx.sendAlert({ color: '#ffc107', title: 'Light Strobe', message: 'All room controls strobing for 30 seconds.' });