fix(kæde): stald-mangel forklares rigtigt og beskeder nævner kæden

Køb af en rest efter gårdens stalde giver nu spu_chain_problem_barn (køb resten
eller flere dyr) i stedet for 'byg en fabrik'. Engangsbeskeden får kædens navn
foran, så to kæder der mangler samme vare kan skelnes.
This commit is contained in:
2026-09-30 14:42:53 +02:00
parent 19a10ab67c
commit 131b1ad10c
7 changed files with 21 additions and 6 deletions
+8 -2
View File
@@ -26,7 +26,7 @@ ADChainView.TEXT_KEYS = {"spu_chain_empty", "spu_chain_approve", "spu_chain_dism
"spu_chain_pause", "spu_chain_resume", "spu_chain_scanning", "spu_chain_rootOk", "spu_chain_rootError", "spu_chain_rootWaiting",
"spu_chain_rootPaused", "spu_chain_rootSummary", "spu_chain_free", "spu_chain_switches", "spu_chain_gone", "spu_chain_col_item",
"spu_chain_col_source", "spu_chain_col_perMonth", "spu_chain_col_status", "spu_chain_col_stock",
"spu_chain_problem_buy", "spu_chain_problem_bottleneck", "spu_chain_problem_off", "spu_chain_problem_cycle"}
"spu_chain_problem_buy", "spu_chain_problem_bottleneck", "spu_chain_problem_off", "spu_chain_problem_cycle", "spu_chain_problem_barn"}
local FLOW_KEYS = {ok = "spu_chain_flowOk", missing = "spu_chain_flowNone", stopped = "spu_chain_flowStopped", noVehicle = "spu_chain_flowMissing",
pallet = "spu_chain_flowPallet"}
@@ -148,7 +148,7 @@ local function producersOf(last, fillType)
end
-- Årsag i klart sprog med råd for et problem fra kædemodellen ({kind="buy"|"bottleneck"|"cycle", fillType, rootKey,
-- detail = manglende l/md, need = behov l/md}). En producent spilleren selv har slukket (last.userOff, stadig
-- detail = manglende l/md, need = behov l/md}). Køb af en rest efter gårdens stalde -> stald-tekst. En producent spilleren selv har slukket (last.userOff, stadig
-- slukket) slår igennem som "slukket af dig" — det er den reelle årsag, uanset om modellen så køb eller flaskehals.
function ADChainView.problemText(problem, last, textOf, titleOf, fmt)
last, textOf, fmt = last or {}, textOf or identity, fmt or ADChainView.compact
@@ -171,6 +171,12 @@ function ADChainView.problemText(problem, last, textOf, titleOf, fmt)
local made = math.max(0, need - (problem.detail or 0))
return string.format(textOf("spu_chain_problem_bottleneck"), joinCapped(names), fmt(math.floor(made + 0.5)), fmt(math.floor(need + 0.5)))
end
-- modellen melder også "køb" for resten, når gårdens stalde leverer for lidt: så er rådet ikke "byg en fabrik"
for _, herd in ipairs(last.data ~= nil and last.data.husbandry or {}) do
if ((herd.outputs or {})[problem.fillType] or 0) > 0 then
return string.format(textOf("spu_chain_problem_barn"), item)
end
end
return string.format(textOf("spu_chain_problem_buy"), item)
end