feat(kæde): manglende led forklares i Kræver handling, fanen og som besked

problemText giver årsag og råd for køb/flaskehals/kredsløb og 'slukket af dig'
(userOff-kopi på ADChain.last); modellens problemer får need. Fanen Kæder viser
teksten som rød tekstrække under varen (foldet ud). Kræver handling får én rød
post pr. kæde (højst 2, score 3500+alvor mellem rød tom og rød fuld); klik åbner
fanen med kæden foldet ud. Engangsbesked pr. nyt led (rod|vare|art) kun fra
tick, ikke i opstartsfristen eller på delvise data/ufærdig markscanning.
Manualer og CHANGELOG opdateret.
This commit is contained in:
2026-09-30 14:40:29 +02:00
parent 1e7b2ec699
commit 19a10ab67c
12 changed files with 254 additions and 20 deletions
@@ -183,7 +183,8 @@ function SmartPickupFrame:addKpiRow(stats)
return row
end
-- Varepunkterne + ét samlet punkt for kædens afgrødeforslag (ADChain.last; ingen evaluering her), samme loft MAX_ATTENTION.
-- Varepunkterne + kædens punkter (røde manglende led, højst 2, og ét samlet punkt for afgrødeforslag; ADChain.last,
-- ingen evaluering her), samme loft MAX_ATTENTION.
function SmartPickupFrame:attentionFor(stats)
local attention = ADStorageStats.attentionList(stats, SmartPickupFrame.MAX_ATTENTION)
if ADChain == nil or ADChain.last == nil then return attention end
@@ -195,6 +196,11 @@ function SmartPickupFrame:alertText(entry)
if entry.kind == "chainSuggest" then
return string.format(i18n:getText("spu_attention_chainSuggests"), entry.count or 0)
end
if entry.kind == "chainProblem" then
local text = string.format(i18n:getText("spu_attention_chainProblem"), tostring(entry.rootTitle), tostring(entry.itemsText))
if (entry.more or 0) > 0 then text = text .. string.format(" (+%d)", entry.more) end
return text
end
if entry.kind == "empty" then
return string.format(i18n:getText("spu_alert_empty"), stat.title, self:formatDays(stat.days), fc(stat.farmLevel or 0), fc(math.abs(stat.net or 0)))
elseif entry.kind == "full" then