Skip to content

Commit af446be

Browse files
committed
release(userscript): publish 2.3.4
- stabilize and tune Turn Points Count speed presets - refresh generated userscript build and xConfig docs - bump local version metadata to 2.3.4
1 parent d44c45a commit af446be

17 files changed

Lines changed: 667 additions & 192 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.3.4] - 2026-04-26
16+
17+
### Fixed
18+
19+
- Nutzerwirkung: `Turn Points Count` zählt Turn-Punkte jetzt deutlich gleichmäßiger wie eine Anzeigetafel hoch oder herunter; ein T20-Treffer läuft nicht mehr nach wenigen Zwischenwerten direkt auf `60`, und die xConfig-Geschwindigkeiten sind auf die lesbaren Stufen `Schnell`, `Standard` und `Ruhig` abgestimmt.
20+
Technik: Die sichtbare Zahlenbewegung wird per eigenem RAF-Schrittzähler geführt, frühe Anime-Complete-Callbacks dürfen die laufende Zählung nicht mehr vorzeitig finalisieren, die Dauer-Presets und Legacy-Mappings wurden auf `950`, `1500` und `2250` ms normalisiert, und Runtime-/Config-/Shell-Regressionen sichern Schrittfolge, Migration und xConfig-Persistenz ab.
21+
1522
## [2.3.3] - 2026-04-25
1623

1724
### Fixed
@@ -1487,7 +1494,8 @@ direkt zu einer versionierten Release-Sektion.
14871494
und Regressionstests eingeführt und die generierten README-/FEATURES-Texte wurden
14881495
entsprechend synchronisiert.
14891496

1490-
[2.3.3]: https://github.com/thomasasen/autodarts-xconfig/compare/b420891...HEAD
1497+
[2.3.4]: https://github.com/thomasasen/autodarts-xconfig/compare/d44c45a...HEAD
1498+
[2.3.3]: https://github.com/thomasasen/autodarts-xconfig/compare/b420891...d44c45a
14911499
[2.3.2]: https://github.com/thomasasen/autodarts-xconfig/compare/7b4351b...b420891
14921500
[2.3.1]: https://github.com/thomasasen/autodarts-xconfig/compare/d17c15d...7b4351b
14931501
[2.3.0]: https://github.com/thomasasen/autodarts-xconfig/compare/da0d5b1...d17c15d

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ Die Aktion `Empfohlene Standards` wendet aktuell dieses Profil an:
208208
- `Sweep-Stil`: Standard
209209

210210
**Turn Points Count**
211-
- `Animationsdauer`: Standard
211+
- `Zählgeschwindigkeit`: Standard
212212
- `Aufblitz-Effekt`: Aus
213213
- `Aufblitz-Modus`: Nur bei Änderung
214214

@@ -1217,10 +1217,10 @@ Die Bewegungsstile bleiben animiert, sind für die Doku aber kompakter skaliert,
12171217

12181218
**Einstellungen einfach erklärt**
12191219

1220-
- `Animationsdauer`: Legt die Dauer der Zählanimation fest. Kurze Stufen springen schneller zum Zielwert, längere machen den Zwischenverlauf deutlicher sichtbar.
1221-
- `Kurz`: Der Zahlenlauf ist klar sichtbar, aber zügig vorbei. Das wirkt direkt und sportlich.
1222-
- `Standard`: Die Wertänderung bleibt gut lesbar animiert, ohne träge zu werden. Das ist die neutrale Mittelstufe.
1223-
- `Lang`: Die Zahl bewegt sich ruhiger und länger bis zum Endwert. Das macht den Wechsel besonders nachvollziehbar, aber weniger direkt.
1220+
- `Zählgeschwindigkeit`: Legt die Geschwindigkeit der Zählanimation fest. Schnell reagiert direkter, Standard zeigt den Zahlenlauf sauber lesbar, Ruhig wirkt wie eine langsamere Anzeigetafel.
1221+
- `Schnell`: Diese Stufe reagiert am direktesten und hält die einzelnen Zahlen trotzdem sichtbar genug auseinander.
1222+
- `Standard`: Ein T20-Treffer läuft von 0 bis 60 in etwa 1,5 Sekunden hoch. Das ist die ruhig lesbare Standardstufe.
1223+
- `Ruhig`: Die Animation nimmt sich mehr Zeit und zeigt große Punktwechsel besonders nachvollziehbar. Das wirkt wie eine ruhige Anzeigetafel.
12241224
- `Aufblitz-Effekt`: Wenn aktiv, blitzt der Turn-Wert nur in dem Zeitraum auf, in dem die Zahl wirklich animiert wird. Bei deaktivierter Option bleibt ausschließlich die Zählbewegung ohne zusätzlichen Lichtimpuls.
12251225
- `Aufblitz-Modus`: Legt fest, wie der elektrische Rahmen dargestellt wird: `Nur bei Änderung` zeigt den Effekt nur während laufender Zähländerungen, `Permanent` hält den Rahmen dauerhaft sichtbar, solange das Feature aktiv ist.
12261226
- `Nur bei Änderung`: Der elektrische Rahmen erscheint nur in dem Zeitraum, in dem die Zahl hoch- oder herunterzählt, und klingt danach aus.

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.3.3
4+
// @version 2.3.4
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: 211 additions & 81 deletions
Large diffs are not rendered by default.

docs/FEATURES.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ Die Aktion `Empfohlene Standards` wendet aktuell dieses Profil an:
5454
- `Sweep-Stil`: Standard
5555

5656
**Turn Points Count**
57-
- `Animationsdauer`: Standard
57+
- `Zählgeschwindigkeit`: Standard
5858
- `Aufblitz-Effekt`: Aus
5959
- `Aufblitz-Modus`: Nur bei Änderung
6060

@@ -915,10 +915,10 @@ Die Bewegungsstile bleiben animiert, sind für die Doku aber kompakter skaliert,
915915
- Gilt für: `alle Modi`
916916
- Kurz: Punkteänderungen beim Turn werden sichtbar hoch- oder heruntergezählt.
917917
- Grafisch: Statt eines harten Sprungs läuft der angezeigte Wert weich zur neuen Punktzahl. Dadurch wird die Änderung als kurze Animation nachvollziehbar.
918-
- `Animationsdauer`: Bestimmt die Dauer des Hoch- oder Herunterzählens.
919-
- `Kurz`: Diese Stufe verkürzt die Zählanimation deutlich. Punktänderungen bleiben nachvollziehbar, ohne lange als Bewegung auf der Anzeige stehen zu bleiben.
920-
- `Standard`: Diese Einstellung hält die Balance zwischen schneller Aktualisierung und sichtbarer Zählbewegung. Der Punktewechsel bleibt klar nachvollziehbar und wirkt dennoch zügig.
921-
- `Lang`: Diese Stufe verlängert die Hoch- oder Runterzählung merklich. Dadurch wird die Wertänderung sehr gut sichtbar, wirkt aber deutlich weniger sofortig als die kurzen Varianten.
918+
- `Zählgeschwindigkeit`: Bestimmt die Geschwindigkeit des Hoch- oder Herunterzählens.
919+
- `Schnell`: Schnelle Zählgeschwindigkeit mit sichtbaren Einzelschritten.
920+
- `Standard`: Ausgewogene Zählgeschwindigkeit mit sauber lesbaren Einzelschritten.
921+
- `Ruhig`: Ruhige Zählgeschwindigkeit für sehr klar sichtbare Zwischenwerte.
922922
- `Aufblitz-Effekt`: Aktiviert oder deaktiviert den Aufblitz-Effekt während laufender Turn-Score-Änderungen.
923923
- `Aufblitz-Modus`: Wählt, ob der Rahmen nur bei Änderungen oder dauerhaft sichtbar ist.
924924
- `Nur bei Änderung`: Rahmen nur während laufender Zahlenänderungen.

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.3.3
4+
// @version 2.3.4
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.3.3",
3+
"version": "2.3.4",
44
"description": "Clean successor architecture for autodarts xConfig userscript modules",
55
"type": "module",
66
"imports": {

src/config/config-store.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ const LEGACY_IMPORTERS_BY_CONFIG_KEY = Object.freeze({
371371
turnPointsCount(legacyFeatureState) {
372372
const settings = getLegacyFeatureSettings(legacyFeatureState);
373373
return buildFeatureImport("turnPointsCount", legacyFeatureState, {
374-
durationMs: readLegacySetting(settings, "ANIMATIONSDAUER_MS", 416),
374+
durationMs: readLegacySetting(settings, "ANIMATIONSDAUER_MS", 1500),
375375
flashOnChange: readLegacySetting(settings, "AUFBLITZEN_AKTIV", true),
376376
debug: readLegacySetting(settings, "DEBUG", false),
377377
});

src/config/feature-config-spec.js

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ const REMOVE_DARTS_NOTIFICATION_PULSE_SCALE = new Set([1.02, 1.04, 1.08]);
4444
const SINGLE_BULL_SOUND_VOLUME = new Set([0.5, 0.75, 0.9, 1]);
4545
const SINGLE_BULL_SOUND_COOLDOWN = new Set([400, 700, 1000]);
4646
const SINGLE_BULL_SOUND_POLL_INTERVAL = new Set([0, 1200]);
47-
const TURN_POINTS_COUNT_DURATIONS = new Set([260, 416, 650]);
47+
const TURN_POINTS_COUNT_DURATIONS = new Set([950, 1500, 2250]);
4848
const X01_SCORE_PROGRESS_COLOR_THEMES = new Set(["checkout-focus", "traffic-light", "danger-endgame", "gradient-by-progress", "autodarts", "signal-lime", "glass-mint", "ember-rush", "ice-circuit", "neon-violet", "sunset-amber", "monochrome-steel"]);
4949
const X01_SCORE_PROGRESS_BAR_SIZES = new Set(["schmal", "standard", "breit", "extrabreit"]);
5050
const WINNER_FIREWORKS_STYLES = new Set(["realistic", "fireworks", "cannon", "victorystorm", "stars", "sides"]);
@@ -123,6 +123,20 @@ function normalizeNumberChoice(value, fallbackValue, allowedSet) {
123123
return Number.isFinite(numeric) && allowedSet.has(numeric) ? numeric : fallbackValue;
124124
}
125125

126+
function normalizeTurnPointsCountDuration(value) {
127+
const numeric = Number(value);
128+
if (numeric === 260 || numeric === 416 || numeric === 650 || numeric === 1300) {
129+
return 950;
130+
}
131+
if (numeric === 1000 || numeric === 2000) {
132+
return 1500;
133+
}
134+
if (numeric === 1400 || numeric === 3000) {
135+
return 2250;
136+
}
137+
return normalizeNumberChoice(value, 1500, TURN_POINTS_COUNT_DURATIONS);
138+
}
139+
126140
function normalizeBoolean(value, fallbackValue) {
127141
if (typeof value === "boolean") {
128142
return value;
@@ -251,7 +265,7 @@ const DEFAULT_FEATURE_CONFIGS = Object.freeze({
251265
dartMarkerDarts: { enabled: false, design: "autodarts", animateDarts: true, sizePercent: 100, hideOriginalMarkers: false, enableShadow: true, enableShadowBlur: true, enableWobble: true, enableFlightBlur: true, flightSpeed: "standard", debug: false },
252266
removeDartsNotification: { enabled: false, imageSize: "standard", pulseAnimation: true, pulseScale: 1.04, debug: false },
253267
singleBullSound: { enabled: false, volume: 0.9, cooldownMs: 700, pollIntervalMs: 0, debug: false },
254-
turnPointsCount: { enabled: false, durationMs: 416, flashOnChange: true, flashMode: "on-change", debug: false },
268+
turnPointsCount: { enabled: false, durationMs: 1500, flashOnChange: true, flashMode: "on-change", debug: false },
255269
winnerFireworks: { enabled: false, style: "realistic", colorTheme: "autodarts", intensity: "standard", includeBullOut: true, pointerDismiss: true, debug: false },
256270
x01ScoreProgress: { enabled: false, colorTheme: "checkout-focus", barSize: "standard", effect: "pulse-core", debug: false },
257271
"themes.globalTypography": {
@@ -303,7 +317,7 @@ const RECOMMENDED_FEATURE_CONFIGS = Object.freeze({
303317
dartMarkerDarts: { design: "autodarts", animateDarts: true, sizePercent: 100, hideOriginalMarkers: true, enableShadow: true, enableShadowBlur: true, enableWobble: true, enableFlightBlur: true, flightSpeed: "standard" },
304318
removeDartsNotification: { imageSize: "large", pulseAnimation: true, pulseScale: 1.04 },
305319
singleBullSound: { volume: 0.9, cooldownMs: 700, pollIntervalMs: 0 },
306-
turnPointsCount: { durationMs: 416, flashOnChange: false, flashMode: "on-change" },
320+
turnPointsCount: { durationMs: 1500, flashOnChange: false, flashMode: "on-change" },
307321
winnerFireworks: { style: "fireworks", colorTheme: "autodarts", intensity: "standard", includeBullOut: true, pointerDismiss: true },
308322
x01ScoreProgress: { colorTheme: "checkout-focus", barSize: "breit", effect: "off" },
309323
"themes.globalTypography": {
@@ -495,7 +509,7 @@ const LEGACY_IMPORTERS = Object.freeze({
495509
turnPointsCount(legacyFeatureState) {
496510
const settings = getLegacyFeatureSettings(legacyFeatureState);
497511
return buildFeatureImport("turnPointsCount", legacyFeatureState, {
498-
durationMs: readLegacySetting(settings, "ANIMATIONSDAUER_MS", 416),
512+
durationMs: readLegacySetting(settings, "ANIMATIONSDAUER_MS", 1500),
499513
flashOnChange: readLegacySetting(settings, "AUFBLITZEN_AKTIV", true),
500514
debug: readLegacySetting(settings, "DEBUG", false),
501515
});
@@ -628,7 +642,7 @@ const FEATURE_NORMALIZERS = Object.freeze({
628642
: "on-change";
629643
}
630644
const normalizedFlashMode = normalizeMappedStringChoice(rawConfig.flashMode, legacyFlashMode, { "": "on-change", "on-change": "on-change", onchange: "on-change", appear: "on-change", burst: "on-change", "nur-bei-änderung": "on-change", "nur-bei-aenderung": "on-change", permanent: "permanent", always: "permanent", persistent: "permanent", dauerhaft: "permanent" });
631-
return { enabled: normalizeBoolean(rawConfig.enabled, false), durationMs: normalizeNumberChoice(rawConfig.durationMs, 416, TURN_POINTS_COUNT_DURATIONS), flashOnChange: normalizeBoolean(rawConfig.flashOnChange, true), flashMode: hasLegacyFlashPermanent ? legacyFlashMode : normalizedFlashMode, debug: normalizeBoolean(rawConfig.debug, false) };
645+
return { enabled: normalizeBoolean(rawConfig.enabled, false), durationMs: normalizeTurnPointsCountDuration(rawConfig.durationMs), flashOnChange: normalizeBoolean(rawConfig.flashOnChange, true), flashMode: hasLegacyFlashPermanent ? legacyFlashMode : normalizedFlashMode, debug: normalizeBoolean(rawConfig.debug, false) };
632646
},
633647
winnerFireworks(rawConfig = {}) {
634648
return { enabled: normalizeBoolean(rawConfig.enabled, false), style: normalizeStringChoice(rawConfig.style, "realistic", WINNER_FIREWORKS_STYLES), colorTheme: normalizeStringChoice(rawConfig.colorTheme, "autodarts", WINNER_FIREWORKS_COLOR_THEMES), intensity: normalizeStringChoice(rawConfig.intensity, "standard", WINNER_FIREWORKS_INTENSITIES), includeBullOut: normalizeBoolean(rawConfig.includeBullOut, true), pointerDismiss: normalizeBoolean(rawConfig.pointerDismiss, true), debug: normalizeBoolean(rawConfig.debug, false) };

0 commit comments

Comments
 (0)