Skip to content

Commit e93e11d

Browse files
committed
feat(x01-bust-active-player-highlight): enhance visual effects with configurable crack overlays
- Updated the `FEATURES.md` to describe new glass crack effects during BUST. - Incremented version numbers to 2.4.3 across relevant files. - Modified feature configuration to include `crackCount` for controlling the number of glass cracks displayed. - Implemented rendering logic for glass cracks in the `x01-bust-active-player-highlight` feature. - Added new styles for crack overlays and animations. - Updated UI descriptors and copy to reflect new feature capabilities. - Enhanced tests to cover new crack rendering functionality and ensure stability of existing features.
1 parent 4b71d3a commit e93e11d

19 files changed

Lines changed: 885 additions & 40 deletions

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,13 @@ zum nächsten Release-Commit vorübergehend auf `HEAD` zeigen.
1212
Dieses Repository führt keine `Unreleased`-Sektion. Jeder dokumentierte Eintrag gehört
1313
direkt zu einer versionierten Release-Sektion.
1414

15+
## [2.4.3] - 2026-06-19
16+
17+
### Added
18+
19+
- Nutzerwirkung: `X01 Bust Active Player Highlight` kann beim Überwurf sofort bis zu drei zufällig platzierte Glasrisse auf der aktiven Spielerkarte anzeigen; die Anzahl ist in xConfig von `Aus` bis `3` wählbar.
20+
Technik: Der Bust-Flankenwechsel erzeugt ein größenabhängiges SVG-Overlay mit den Geometrie-, Reflexions-, Fraktur-, Mainline- und Noise-Parametern der Glass-Crack-Canvas-Demo, begrenzt die Konfiguration auf `0–3` und räumt alle Effektknoten beim Bust-Ende oder Unmount auf.
21+
1522
## [2.4.2] - 2026-06-18
1623

1724
### Added
@@ -1724,7 +1731,8 @@ direkt zu einer versionierten Release-Sektion.
17241731
und Regressionstests eingeführt und die generierten README-/FEATURES-Texte wurden
17251732
entsprechend synchronisiert.
17261733

1727-
[2.4.2]: https://github.com/thomasasen/autodarts-xconfig/compare/24f6686...HEAD
1734+
[2.4.3]: https://github.com/thomasasen/autodarts-xconfig/compare/73900ce...HEAD
1735+
[2.4.2]: https://github.com/thomasasen/autodarts-xconfig/compare/24f6686...73900ce
17281736
[2.4.1]: https://github.com/thomasasen/autodarts-xconfig/compare/3803021...24f6686
17291737
[2.4.0]: https://github.com/thomasasen/autodarts-xconfig/compare/55a936b...3803021
17301738
[2.3.21]: https://github.com/thomasasen/autodarts-xconfig/compare/09ae6b2...55a936b

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -919,11 +919,16 @@ Die Aktion `Empfohlene Standards` wendet aktuell dieses Profil an:
919919

920920
- Gilt für: `X01`
921921
- Was macht es sichtbar? Bei sichtbarem `BUST` übernimmt die aktive X01-Spielerkarte Hintergrund und Rahmen der roten Wurfkacheln.
922-
- Grafisch: Beim Eintritt in BUST wackelt die aktive Karte drei Sekunden im schnellen Earthquake-Stil. Danach bleibt die rote Wurfkachel-Färbung auf der aktiven Karte stehen, bis `BUST` verschwindet.
922+
- Grafisch: Beim Eintritt in BUST erscheinen die konfigurierten Glasrisse sofort an zufälligen Stellen und die aktive Karte wackelt drei Sekunden im schnellen Earthquake-Stil. Danach bleiben Glasrisse und rote Wurfkachel-Färbung stehen, bis `BUST` verschwindet.
923923
- Wann sinnvoll? Wenn ein Überwurf sofort am aktiven Spieler auffallen soll.
924924

925925
**Einstellungen einfach erklärt**
926926

927+
- `Anzahl Glasrisse`: Erzeugt beim Eintritt in BUST die gewählte Anzahl Glasrisse an zufälligen Positionen innerhalb der aktiven Spielerkarte. `Aus` lässt Markierung und Wackeln aktiv.
928+
- `Aus`: Deaktiviert nur die Glasriss-Overlays. Die rote BUST-Markierung und der Earthquake-Effekt der aktiven Spielerkarte bleiben unverändert aktiv.
929+
- `1`: Erzeugt beim Eintritt in BUST ein einzelnes zufällig platziertes Einschlagzentrum mit Glasrissstruktur auf der aktiven Spielerkarte.
930+
- `2`: Erzeugt beim Eintritt in BUST zwei voneinander unabhängige Einschlagzentren und verteilt sie zufällig auf der aktiven Spielerkarte.
931+
- `3`: Erzeugt beim Eintritt in BUST drei zufällig verteilte Einschlagzentren. Diese Stufe füllt die aktive Spielerkarte am stärksten mit Glasrissstrukturen.
927932
- `Debug`: Aktiviert zusätzliche Debug-Ausgaben und Diagnosehinweise. Für den normalen Spielbetrieb ist die Option nicht gedacht und sollte in der Regel ausgeschaltet bleiben.
928933

929934
![X01 Bust Active Player Highlight](docs/screenshots/animation-x01-bust-active-player-highlight.gif)

dist/autodarts-xconfig.meta.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// ==UserScript==
22
// @name autodarts-xconfig
33
// @namespace https://github.com/thomasasen/autodarts-xconfig
4-
// @version 2.4.2
4+
// @version 2.4.3
55
// @description Modular, side-effect resistant Tampermonkey runtime for Autodarts enhancements.
66
// @author Thomas Asen
77
// @license MIT

dist/autodarts-xconfig.user.js

Lines changed: 365 additions & 20 deletions
Large diffs are not rendered by default.

docs/FEATURES.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -674,7 +674,12 @@ Die Aktion `Empfohlene Standards` wendet aktuell dieses Profil an:
674674

675675
- Gilt für: `X01`
676676
- Kurz: Bei sichtbarem `BUST` übernimmt die aktive X01-Spielerkarte Hintergrund und Rahmen der roten Wurfkacheln.
677-
- Grafisch: Beim Eintritt in BUST wackelt die aktive Karte drei Sekunden im schnellen Earthquake-Stil. Danach bleibt die rote Wurfkachel-Färbung auf der aktiven Karte stehen, bis `BUST` verschwindet.
677+
- Grafisch: Beim Eintritt in BUST erscheinen die konfigurierten Glasrisse sofort an zufälligen Stellen und die aktive Karte wackelt drei Sekunden im schnellen Earthquake-Stil. Danach bleiben Glasrisse und rote Wurfkachel-Färbung stehen, bis `BUST` verschwindet.
678+
- `Anzahl Glasrisse`: Bestimmt die Anzahl zufällig platzierter Glasrisse.
679+
- `Aus`: Keine Glasrisse; Rotmarkierung und Wackeln bleiben aktiv.
680+
- `1`: Zeigt ein zufällig platziertes Einschlagzentrum.
681+
- `2`: Zeigt zwei zufällig und unabhängig platzierte Einschlagzentren.
682+
- `3`: Zeigt drei Einschlagzentren und damit die dichteste Darstellung.
678683
- `Debug`: Aktiviert zusätzliche Debug-Ausgaben für die Fehlersuche.
679684

680685
![X01 Bust Active Player Highlight](screenshots/animation-x01-bust-active-player-highlight.gif)

loader/autodarts-xconfig.user.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// ==UserScript==
22
// @name autodarts-xconfig
33
// @namespace https://github.com/thomasasen/autodarts-xconfig
4-
// @version 2.4.2
4+
// @version 2.4.3
55
// @description Modular, side-effect resistant Tampermonkey runtime for Autodarts enhancements.
66
// @author Thomas Asen
77
// @license MIT

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "autodarts-xconfig",
3-
"version": "2.4.2",
3+
"version": "2.4.3",
44
"description": "Clean successor architecture for autodarts xConfig userscript modules",
55
"type": "module",
66
"imports": {

src/config/feature-config-spec.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ const DEFAULT_FEATURE_CONFIGS = Object.freeze({
366366
checkoutTargetHighlights: { enabled: false, visualPreset: "soft-pulse", segmentStyle: "surface-outline", singleRing: "both", targetSelectionMode: "next", colorTheme: "amber", debug: false },
367367
tvBoardZoom: { enabled: false, zoomLevel: 2.75, zoomSpeed: "mittel", checkoutZoomEnabled: true, checkoutZoomTarget: "finish-only", t20SetupZoomEnabled: true, debug: false },
368368
checkoutSuggestionStyles: { enabled: false, style: "ribbon", labelText: "CHECKOUT", colorTheme: "amber", debug: false },
369-
x01BustActivePlayerHighlight: { enabled: true, debug: false },
369+
x01BustActivePlayerHighlight: { enabled: true, crackCount: 3, debug: false },
370370
avgTrendArrow: { enabled: false, durationMs: 320, size: "standard", debug: false },
371371
activePlayerSweep: { enabled: false, durationMs: 420, sweepStyle: "standard", debug: false },
372372
specialHitHighlights: { enabled: false, colorTheme: "kind-signal", animationStyle: "pop-hit", debug: false },
@@ -420,7 +420,7 @@ const RECOMMENDED_FEATURE_CONFIGS = Object.freeze({
420420
checkoutTargetHighlights: { visualPreset: "fast-blink", segmentStyle: "surface-only", singleRing: "both", targetSelectionMode: "next", colorTheme: "cyan" },
421421
tvBoardZoom: { zoomLevel: 2.75, zoomSpeed: "mittel", checkoutZoomEnabled: true, checkoutZoomTarget: "finish-only", t20SetupZoomEnabled: true },
422422
checkoutSuggestionStyles: { style: "stripe", labelText: "CHECKOUT", colorTheme: "amber" },
423-
x01BustActivePlayerHighlight: {},
423+
x01BustActivePlayerHighlight: { crackCount: 3 },
424424
avgTrendArrow: { durationMs: 320, size: "standard" },
425425
activePlayerSweep: { durationMs: 420, sweepStyle: "standard" },
426426
specialHitHighlights: { colorTheme: "kind-signal", animationStyle: "electric-jolt" },
@@ -706,7 +706,7 @@ const FEATURE_NORMALIZERS = Object.freeze({
706706
return { enabled: normalizeBoolean(rawConfig.enabled, false), style: normalizeStringChoice(rawConfig.style, "ribbon", SUGGESTION_STYLES), labelText: normalizeMappedStringChoice(rawConfig.labelText, "CHECKOUT", { "": "", checkout: "CHECKOUT", finish: "FINISH" }), colorTheme: normalizeStringChoice(rawConfig.colorTheme, "amber", SUGGESTION_COLOR_THEMES), debug: normalizeBoolean(rawConfig.debug, false) };
707707
},
708708
x01BustActivePlayerHighlight(rawConfig = {}) {
709-
return { enabled: normalizeBoolean(rawConfig.enabled, true), debug: normalizeBoolean(rawConfig.debug, false) };
709+
return { enabled: normalizeBoolean(rawConfig.enabled, true), crackCount: normalizeNumberChoice(rawConfig.crackCount, 3, new Set([0, 1, 2, 3])), debug: normalizeBoolean(rawConfig.debug, false) };
710710
},
711711
avgTrendArrow(rawConfig = {}) {
712712
return { enabled: normalizeBoolean(rawConfig.enabled, false), durationMs: normalizeNumberChoice(rawConfig.durationMs, 320, AVG_TREND_DURATIONS), size: normalizeMappedStringChoice(rawConfig.size, "standard", { klein: "klein", small: "klein", standard: "standard", gross: "gross", ["gro" + "\u00df"]: "gross", big: "gross", large: "gross" }), debug: normalizeBoolean(rawConfig.debug, false) };

src/core/bootstrap.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { createListenerRegistry } from "./listener-registry.js";
1313
import { createObserverRegistry } from "./observer-registry.js";
1414

1515
const GLOBAL_NAMESPACE_KEY = "__adXConfig";
16-
const API_VERSION = "2.4.2";
16+
const API_VERSION = "2.4.3";
1717
const STARTUP_DEFER_INTERVAL_MS = 16;
1818

1919
function getWindowTimerApi(windowRef) {

0 commit comments

Comments
 (0)