fix(marker): slip kun sæt spilleren selv kører; slået mark uden sæt går videre til opsamling (v1.21.3.0)

In-game 25/9: spilleren satte sig i BiG M'en for at se CP-HUD'en -> sættet blev sluppet, og da CP var
færdig, blev det aldrig sendt hjem; marken ville have sendt slåmaskinen ud igen til en slået mark.
This commit is contained in:
2026-09-25 22:59:31 +02:00
parent 716045a36b
commit b1f1aaa148
5 changed files with 16 additions and 4 deletions
+8 -1
View File
@@ -33,6 +33,10 @@ function ADFieldJobs.decide(field, info, assignments, now)
if ACTIVE_PHASES[assignment.phase] then active = active + 1 end
if assignment.phase == "finished" or assignment.phase == "returning" then finished = finished + 1 end
end
-- slået mark uden sæt på (sluppet undervejs, genindlæst): slåningen er gjort, videre til næste trin
if active == 0 and field.stage == "mowing" and info ~= nil and info.mowable and (info.readyRatio or 1) < ADFieldModel.CUT_RATIO then
return {action = "advance"}
end
if active == 0 and finished > 0 then
local stillStanding = field.stage == "mowing" and info ~= nil and (info.readyRatio or 0) >= ADFieldModel.CUT_RATIO
if not stillStanding or finished >= ADFieldJobs.MAX_MOW_PASSES then return {action = "advance"} end
@@ -289,7 +293,10 @@ end
local function follow(adEnv, assignment)
local vehicle = assignment.vehicle
if isControlledByPlayer(vehicle) then
-- Kun når spilleren selv KØRER (hverken Courseplay eller AutoDrive styrer): at sætte sig ind for at
-- kigge på HUD'en mens CP slår, må ikke slippe sættet (in-game 25/9: F22 blev aldrig sendt hjem).
local steeredByAi = ADCpBridge.isWorking(vehicle) or isAdActive(vehicle) or assignment.phase == "starting"
if isControlledByPlayer(vehicle) and not steeredByAi then
if assignment.handle ~= nil then assignment.handle.cancelled = true end
log(assignment.fieldId, "'%s' frigivet — spilleren kører det", ADRuns.vehicleLabel(vehicle))
return release(assignment)