Files
kaltaquise-gamification/sys_digger/constants.js
2026-04-20 16:09:18 +02:00

51 lines
3.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// ─── Game rules ──────────────────────────────────────────────────────────────
const MAX_DOCKS = 6; // failed docks before game over
const NUM_ANCHORS = 6; // anchor points around the central molecule
const ANCHOR_RADIUS = 120; // px distance from center to anchor points
const CLICK_RADIUS = 38; // px hit radius for clicking an anchor
// ─── Spawn timing ────────────────────────────────────────────────────────────
const SPAWN_INTERVAL_START = 2500; // ms between spawns at the start
const SPAWN_INTERVAL_MIN = 700; // ms floor (fastest difficulty)
const SPAWN_DIFFICULTY_STEP = 18; // ms reduction per spawn
// ─── Incoming atom ───────────────────────────────────────────────────────────
const ATOM_SPEED_MIN = 1.4; // px/frame minimum
const ATOM_SPEED_MAX = 3.2; // px/frame maximum (min + random range)
const ATOM_RADIUS_MIN = 16; // px nucleus radius minimum
const ATOM_RADIUS_MAX = 24; // px nucleus radius maximum (min + random range)
const ATOM_HUE_MIN = 180; // hsl hue range start (blue-cyan)
const ATOM_HUE_RANGE = 60; // hsl hue range width
const ATOM_ELECTRON_SPEED_MIN = 0.05;
const ATOM_ELECTRON_SPEED_MAX = 0.08;
// ─── Particles ───────────────────────────────────────────────────────────────
const BURST_COUNT = 20; // particles per burst
const BURST_SPEED_MIN = 2;
const BURST_SPEED_MAX = 7;
const PARTICLE_DECAY_MIN = 0.022;
const PARTICLE_DECAY_MAX = 0.047;
const PARTICLE_RADIUS_MIN = 2;
const PARTICLE_RADIUS_MAX = 6;
// ─── Anchor block flash ───────────────────────────────────────────────────────
const BLOCK_TIMER_FRAMES = 20; // frames the green flash lasts after a block
// ─── Stars ───────────────────────────────────────────────────────────────────
const STAR_COUNT = 160;
const STAR_ALPHA_MIN = 0.15;
const STAR_ALPHA_RANGE = 0.55;
const STAR_RADIUS_MAX = 1.5;
// ─── Central nucleus ─────────────────────────────────────────────────────────
const NUCLEUS_RADIUS = 52; // px
const NUCLEUS_ORBITS = 3; // electron orbits to draw
// ─── Cystinstein indicator ────────────────────────────────────────────────────
const CYS_CENTER_X = 65; // px within the 130×130 side canvas
const CYS_CENTER_Y = 65;
const CYS_CORE_RADIUS = 14; // central atom radius
const CYS_DOCK_RADIUS = 28; // distance from center to docked atoms
const CYS_ATOM_RADIUS = 9; // docked atom radius
const CYS_RING_RADIUS = 48; // final danger ring radius