feat(effects): add entropy parameter to effect plugins

- Add entropy field to EffectConfig (0.0 = calm, 1.0 = chaotic)
- Provide compute_entropy() method in EffectContext for dynamic scoring
- Update Fade, Firehose, Glitch, Noise plugin defaults with entropy values
- Enables finer control: intensity (strength) vs entropy (randomness)

This separates deterministic effect strength from probabilistic chaos, allowing more expressive control in UI panel and presets.

Fixes #32
This commit is contained in:
2026-03-18 12:19:26 -07:00
parent cdcdb7b172
commit a95b24a246
5 changed files with 30 additions and 4 deletions

View File

@@ -7,7 +7,7 @@ from engine.terminal import C_DIM, G_DIM, G_LO, RST, W_GHOST
class NoiseEffect(EffectPlugin):
name = "noise"
config = EffectConfig(enabled=True, intensity=0.15)
config = EffectConfig(enabled=True, intensity=0.15, entropy=0.4)
def process(self, buf: list[str], ctx: EffectContext) -> list[str]:
if not ctx.ticker_height: