From be65d0b228581896b8b71deb2513415578649e23 Mon Sep 17 00:00:00 2001 From: xziino Date: Sun, 24 May 2026 08:17:22 +0200 Subject: [PATCH] Planer: Gantt-Overlap-Check auf vollen Cooldown erweitert MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit assignmentWindowMs und candidateWindow nutzen jetzt max(duration, cooldown) statt nur die aktive Dauer – Abilities konnten bisher erneut platziert werden bevor ihr Recast abgelaufen war. Co-Authored-By: Claude Sonnet 4.6 --- js/planner.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/js/planner.js b/js/planner.js index 273e078..5db6c43 100644 --- a/js/planner.js +++ b/js/planner.js @@ -836,7 +836,9 @@ function layoutBossActions(mechanics, duration) { } function assignmentWindowMs(assignment) { - return Math.max(1, assignmentDurationSeconds(assignment)) * 1000; + const durationMs = Math.max(1, assignmentDurationSeconds(assignment)) * 1000; + const cooldownMs = assignmentCooldownSeconds(assignment) * 1000; + return Math.max(durationMs, cooldownMs); } function sameAssignmentRef(mechanic, assignment, ref) { @@ -847,7 +849,9 @@ function sameAssignmentRef(mechanic, assignment, ref) { } function assignmentOverlapsJob(plan, job, ability, timestamp, ignore = null, candidate = null) { - const candidateWindow = Math.max(candidate ? assignmentDurationSeconds(candidate) : 0, 1) * 1000; + const candidateDurationMs = Math.max(candidate ? assignmentDurationSeconds(candidate) : 0, 1) * 1000; + const candidateCooldownMs = candidate ? assignmentCooldownSeconds(candidate) * 1000 : 0; + const candidateWindow = Math.max(candidateDurationMs, candidateCooldownMs); const candidateStart = Math.max(0, timestamp); const candidateEnd = candidateStart + candidateWindow; const ignoredActivation = assignmentEntryForRef(plan, ignore);