diff --git a/repo/js/AutoHoeingOneDragon/main.js b/repo/js/AutoHoeingOneDragon/main.js index bb5ae36b9..1dacbd0ba 100644 --- a/repo/js/AutoHoeingOneDragon/main.js +++ b/repo/js/AutoHoeingOneDragon/main.js @@ -495,34 +495,29 @@ async function findBestRouteGroups(pathings, k1, k2, targetEliteNum, targetMonst iterationCount++; } - /* ========== 3. 最小不可再减集合(贪心逆筛) ========== */ - const selectedList = pathings.filter(p => p.selected) + /* ========== 3. 最小不可再减集合(贪心逆筛,不碰优先路线) ========== */ + // 1. 只留非优先的已选路线,按性价比升序排 + const selectedList = pathings + .filter(p => p.selected && !p.prioritized) .sort((a, b) => { - /* ******** 关键修改 ******** */ - const eliteGainA = a.e === 0 ? 200 : (a.G1 - a.G2) / a.e; - const normalGainA = a.m === 0 ? 40.5 : a.G2 / a.m; - const perSecA = a.t === 0 ? 0 : a.G1 / a.t; - const aScore = (((eliteGainA / 200) ** k1) + ((normalGainA / 40.5) ** k2)) * perSecA; - - const eliteGainB = b.e === 0 ? 200 : (b.G1 - b.G2) / b.e; - const normalGainB = b.m === 0 ? 40.5 : b.G2 / b.m; - const perSecB = b.t === 0 ? 0 : b.G1 / b.t; - const bScore = (((eliteGainB / 200) ** k1) + ((normalGainB / 40.5) ** k2)) * perSecB; - /* ******************************** */ - - return aScore - bScore; // 升序:小的先删 + const score = p => { + const eliteGain = p.e === 0 ? 200 : (p.G1 - p.G2) / p.e; + const normalGain = p.m === 0 ? 40.5 : p.G2 / p.m; + const perSec = p.t === 0 ? 0 : p.G1 / p.t; + return ((eliteGain / 200) ** k1 + (normalGain / 40.5) ** k2) * perSec; + }; + return score(a) - score(b); // 升序:差的先删 }); + // 2. 试删 for (const p of selectedList) { - // 试删 const newE = totalSelectedElites - p.e; const newM = totalSelectedMonsters - p.m; if (newE >= targetEliteNum && newM >= targetMonsterNum) { - // 删了仍达标,真删 p.selected = false; totalSelectedElites = newE; totalSelectedMonsters = newM; - totalGainCombined -= p.G1; // 精英阶段已用 G1 统计 + totalGainCombined -= p.G1; totalTimeCombined -= p.t; } } diff --git a/repo/js/AutoHoeingOneDragon/manifest.json b/repo/js/AutoHoeingOneDragon/manifest.json index 00a32e9b9..5e2122f8e 100644 --- a/repo/js/AutoHoeingOneDragon/manifest.json +++ b/repo/js/AutoHoeingOneDragon/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 1, "name": "锄地一条龙", - "version": "1.14.0", + "version": "1.14.1", "description": "一站式解决自动化锄地,支持只拾取狗粮,请仔细阅读README.md后使用", "authors": [ { diff --git a/repo/js/AutoHoeingOneDragon/settings.json b/repo/js/AutoHoeingOneDragon/settings.json index 5961f772d..3c7f92f67 100644 --- a/repo/js/AutoHoeingOneDragon/settings.json +++ b/repo/js/AutoHoeingOneDragon/settings.json @@ -149,7 +149,7 @@ { "name": "priorityTags", "type": "input-text", - "label": "优先关键词,含关键词的路线会被视为最高效率\n不同关键词使用【中文逗号】分隔\n例如填骗骗花,可以优先选择含有骗骗花的路线\n建议使用怪物图鉴中的名字" + "label": "优先关键词,含关键词的路线会被视为最高效率\n不同关键词使用【中文逗号】分隔\n例如填骗骗花,可以优先选择含有骗骗花的路线\n建议使用怪物图鉴中的名字\n仅优先选择,不影响路线排序" }, { "name": "excludeTags",