From 4f8f5d2acf7e10f15ddf7a9dd8a5de0d421065e8 Mon Sep 17 00:00:00 2001 From: sganggs Date: Thu, 8 Oct 2026 22:19:20 +0800 Subject: [PATCH] =?UTF-8?q?feedback7=20R22-LOADOUT:=20the=20=E6=BD=9C?= =?UTF-8?q?=E8=83=BD=E4=B8=8E=E7=BB=83=E5=BA=A6=20note=20says=20an=20opera?= =?UTF-8?q?tor=20with=20nothing=20set=20fights=20at=20the=20default=20(?= =?UTF-8?q?=E6=BB=A1=E6=BD=9C=E8=83=BD,=20=E7=B2=BE=E8=8B=B12=20Lv.60)=20a?= =?UTF-8?q?nd=20that=20=E6=BD=9C=E8=83=BD1=20/=20=E6=9C=AA=E7=B2=BE?= =?UTF-8?q?=E8=8B=B1=E5=8C=96=20for=20an=20unowned=20=E7=89=B9=E8=AE=B8=20?= =?UTF-8?q?operator=20is=20set=20by=20hand;=20golden:=20unchanged?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Grok's review of the branch (medium): the note read 「未持有的特许干员按潜能1、未精英化」, as if the game applied it, while an operator without a setting is fielded at 潜能 6 / 精英2 Lv.60 (the owner's 「默认满潜满加成」). It now says what docs/PLAYING.md says: the default first, then the official rule (the player's own potential; the 自持有 bonus, a separate multiplier; an unowned 特许 operator at 潜能1 without bonus officially — set it so by hand). - i18n: the new note in the four packs; the replaced one (never released) removed. - Test: test/ui/loadout-rows.test.js (the detail's section) reads the note. --- public/i18n/en.json | 4 ++-- public/i18n/ja.json | 4 ++-- public/i18n/ko.json | 4 ++-- public/i18n/zh-TW.json | 4 ++-- public/js/screens/cultivation.js | 2 +- test/ui/loadout-rows.test.js | 5 +++++ 6 files changed, 14 insertions(+), 9 deletions(-) diff --git a/public/i18n/en.json b/public/i18n/en.json index d0cef684..85b411c2 100644 --- a/public/i18n/en.json +++ b/public/i18n/en.json @@ -1072,7 +1072,6 @@ "潜能与练度": "Potential & development", "满潜能 · 精英2 Lv.60": "Max potential · Elite 2 Lv.60", "干员持有中标记为未持有:替补干员没有潜能与练度;这里的设置在改回「持有」后生效": "Marked as not owned on Operator Roster: the stand-in has no potential or development; these settings apply once it is owned again", - "潜能取你自己的潜能;练度是自持有加成(已持有的同名干员的养成,攻击 / 防御 / 生命单独乘算)。未持有的特许干员按潜能1、未精英化。": "Potential is your own; development is the owned-operator bonus (your training of the same Operator: ATK / DEF / HP, a separate multiplier). A licensed Operator you do not own fights at Potential 1, Non-Elite.", "原型干员没有潜能与练度": "A prototype Operator has no potential or development", "模组仅在精锐形态生效": "Modules apply only to the Elite form", "未持有(干员持有):由替补干员上场,替补干员没有潜能与练度": "Not owned (Operator Roster): its stand-in fights, with no potential or development", @@ -1082,5 +1081,6 @@ "精英1": "E1", "精英2": "E2", "精英2 Lv.60": "E2 Lv.60", - "开始模拟前可调整干员携带的技能与模组,以及潜能与练度;干员的局内等级不可调整": "Before the simulation starts you can change the Skills and Modules your Operators carry, and their potential and development; Operator levels in the match cannot be changed" + "开始模拟前可调整干员携带的技能与模组,以及潜能与练度;干员的局内等级不可调整": "Before the simulation starts you can change the Skills and Modules your Operators carry, and their potential and development; Operator levels in the match cannot be changed", + "默认满潜能、精英2 Lv.60(满加成)。官方的潜能取你自己的潜能,练度是自持有加成(已持有的同名干员的养成,攻击 / 防御 / 生命单独乘算);未持有的特许干员在官方按潜能1、没有加成,要照官方打请手动设为潜能1、未精英化。": "Default: max Potential, Elite 2 Lv.60 (the full bonus). Officially, Potential is your own and development is the owned-operator bonus (your training of the same Operator: ATK / DEF / HP, a separate multiplier); a licensed Operator you do not own fights at Potential 1 with no bonus — to play it that way, set Potential 1 and Non-Elite here." } diff --git a/public/i18n/ja.json b/public/i18n/ja.json index e8e7661a..7e871eb6 100644 --- a/public/i18n/ja.json +++ b/public/i18n/ja.json @@ -1078,7 +1078,6 @@ "潜能与练度": "潜在と育成度", "满潜能 · 精英2 Lv.60": "潜在最大・昇進2 Lv60", "干员持有中标记为未持有:替补干员没有潜能与练度;这里的设置在改回「持有」后生效": "オペレーター所持で未所持に設定中:代役オペレーターには潜在も育成度もありません。ここでの設定は「所持」に戻すと有効になります", - "潜能取你自己的潜能;练度是自持有加成(已持有的同名干员的养成,攻击 / 防御 / 生命单独乘算)。未持有的特许干员按潜能1、未精英化。": "潜在はあなた自身の潜在です。育成度は所持オペレーターボーナス(同名オペレーターの育成度による攻撃・防御・HPの独立した乗算)です。未所持のプリセットオペレーターは潜在1・未昇進です。", "原型干员没有潜能与练度": "モデルオペレーターには潜在も育成度もありません", "模组仅在精锐形态生效": "モジュールは精鋭のみ有効です", "未持有(干员持有):由替补干员上场,替补干员没有潜能与练度": "未所持(オペレーター所持):代役オペレーターが出撃し、潜在も育成度もありません", @@ -1088,5 +1087,6 @@ "精英1": "昇進1", "精英2": "昇進2", "精英2 Lv.60": "昇進2 Lv60", - "开始模拟前可调整干员携带的技能与模组,以及潜能与练度;干员的局内等级不可调整": "シミュレーション開始前に、オペレーターのスキルとモジュール、潜在と育成度を調整できます(局内のオペレーターのレベルは変更不可)" + "开始模拟前可调整干员携带的技能与模组,以及潜能与练度;干员的局内等级不可调整": "シミュレーション開始前に、オペレーターのスキルとモジュール、潜在と育成度を調整できます(局内のオペレーターのレベルは変更不可)", + "默认满潜能、精英2 Lv.60(满加成)。官方的潜能取你自己的潜能,练度是自持有加成(已持有的同名干员的养成,攻击 / 防御 / 生命单独乘算);未持有的特许干员在官方按潜能1、没有加成,要照官方打请手动设为潜能1、未精英化。": "初期値は潜在最大・昇進2 Lv60(ボーナス最大)。公式では潜在はあなた自身の潜在、育成度は所持オペレーターボーナス(同名オペレーターの育成度による攻撃・防御・HPの独立した乗算)です。未所持のプリセットオペレーターは公式では潜在1・ボーナスなしのため、公式どおりにするには潜在1・未昇進に設定してください。" } diff --git a/public/i18n/ko.json b/public/i18n/ko.json index 269c4a65..d66fe0fa 100644 --- a/public/i18n/ko.json +++ b/public/i18n/ko.json @@ -1074,7 +1074,6 @@ "潜能与练度": "잠재와 육성도", "满潜能 · 精英2 Lv.60": "최대 잠재 · 2차 정예화 Lv.60", "干员持有中标记为未持有:替补干员没有潜能与练度;这里的设置在改回「持有」后生效": "오퍼레이터 보유에서 미보유로 표시됨: 대체 오퍼레이터는 잠재와 육성도가 없습니다. 이 설정은 다시 '보유'로 바꾸면 적용됩니다", - "潜能取你自己的潜能;练度是自持有加成(已持有的同名干员的养成,攻击 / 防御 / 生命单独乘算)。未持有的特许干员按潜能1、未精英化。": "잠재는 자신의 잠재를 따릅니다. 육성도는 보유 오퍼레이터 보너스(같은 오퍼레이터의 육성도에 따른 공격 / 방어 / HP 별도 배율)입니다. 보유하지 않은 프리셋 오퍼레이터는 잠재 1, 비정예화입니다.", "原型干员没有潜能与练度": "프로토타입 오퍼레이터는 잠재와 육성도가 없습니다", "模组仅在精锐形态生效": "모듈은 정예화 형태에서만 적용됩니다", "未持有(干员持有):由替补干员上场,替补干员没有潜能与练度": "미보유(오퍼레이터 보유): 대체 오퍼레이터가 출전하며 잠재와 육성도가 없습니다", @@ -1084,5 +1083,6 @@ "精英1": "정예 1", "精英2": "정예 2", "精英2 Lv.60": "정예 2 Lv.60", - "开始模拟前可调整干员携带的技能与模组,以及潜能与练度;干员的局内等级不可调整": "시뮬레이션 시작 전에 오퍼레이터의 스킬과 모듈, 잠재와 육성도를 조정할 수 있습니다. 게임 내 오퍼레이터 레벨은 조정할 수 없습니다." + "开始模拟前可调整干员携带的技能与模组,以及潜能与练度;干员的局内等级不可调整": "시뮬레이션 시작 전에 오퍼레이터의 스킬과 모듈, 잠재와 육성도를 조정할 수 있습니다. 게임 내 오퍼레이터 레벨은 조정할 수 없습니다.", + "默认满潜能、精英2 Lv.60(满加成)。官方的潜能取你自己的潜能,练度是自持有加成(已持有的同名干员的养成,攻击 / 防御 / 生命单独乘算);未持有的特许干员在官方按潜能1、没有加成,要照官方打请手动设为潜能1、未精英化。": "기본값은 최대 잠재 · 2차 정예화 Lv.60(최대 보너스)입니다. 공식 규칙에서 잠재는 자신의 잠재, 육성도는 보유 오퍼레이터 보너스(같은 오퍼레이터의 육성도에 따른 공격 / 방어 / HP 별도 배율)입니다. 보유하지 않은 프리셋 오퍼레이터는 공식적으로 잠재 1·보너스 없음이므로, 공식대로 하려면 잠재 1, 비정예화로 직접 설정하세요." } diff --git a/public/i18n/zh-TW.json b/public/i18n/zh-TW.json index 3e2cb753..39cd848b 100644 --- a/public/i18n/zh-TW.json +++ b/public/i18n/zh-TW.json @@ -1076,7 +1076,6 @@ "潜能与练度": "潛能與練度", "满潜能 · 精英2 Lv.60": "滿潛能 · 精英2 Lv.60", "干员持有中标记为未持有:替补干员没有潜能与练度;这里的设置在改回「持有」后生效": "幹員持有中標記為未持有:替補幹員沒有潛能與練度;這裡的設定在改回「持有」後生效", - "潜能取你自己的潜能;练度是自持有加成(已持有的同名干员的养成,攻击 / 防御 / 生命单独乘算)。未持有的特许干员按潜能1、未精英化。": "潛能取你自己的潛能;練度是自持有加成(已持有的同名幹員的養成,攻擊 / 防禦 / 生命單獨乘算)。未持有的特許幹員按潛能1、未精英化。", "原型干员没有潜能与练度": "原型幹員沒有潛能與練度", "模组仅在精锐形态生效": "模組僅在精銳形態生效", "未持有(干员持有):由替补干员上场,替补干员没有潜能与练度": "未持有(幹員持有):由替補幹員上場,替補幹員沒有潛能與練度", @@ -1086,5 +1085,6 @@ "精英1": "精英1", "精英2": "精英2", "精英2 Lv.60": "精英2 Lv.60", - "开始模拟前可调整干员携带的技能与模组,以及潜能与练度;干员的局内等级不可调整": "開始模擬前可調整幹員攜帶的技能與模組,以及潛能與練度;幹員的局內等級不可調整" + "开始模拟前可调整干员携带的技能与模组,以及潜能与练度;干员的局内等级不可调整": "開始模擬前可調整幹員攜帶的技能與模組,以及潛能與練度;幹員的局內等級不可調整", + "默认满潜能、精英2 Lv.60(满加成)。官方的潜能取你自己的潜能,练度是自持有加成(已持有的同名干员的养成,攻击 / 防御 / 生命单独乘算);未持有的特许干员在官方按潜能1、没有加成,要照官方打请手动设为潜能1、未精英化。": "預設滿潛能、精英2 Lv.60(滿加成)。官方的潛能取你自己的潛能,練度是自持有加成(已持有的同名幹員的養成,攻擊 / 防禦 / 生命單獨乘算);未持有的特許幹員在官方按潛能1、沒有加成,要照官方打請手動設為潛能1、未精英化。" } diff --git a/public/js/screens/cultivation.js b/public/js/screens/cultivation.js index 906a5aac..934b14b4 100644 --- a/public/js/screens/cultivation.js +++ b/public/js/screens/cultivation.js @@ -89,6 +89,6 @@ export function CultivationSection({ charId, ops, onSet, standIn = false }) {

${cultivateName(cur.cultivate)} ${cultivateDesc(cur.cultivate)}

${standIn ? t('干员持有中标记为未持有:替补干员没有潜能与练度;这里的设置在改回「持有」后生效') - : t('潜能取你自己的潜能;练度是自持有加成(已持有的同名干员的养成,攻击 / 防御 / 生命单独乘算)。未持有的特许干员按潜能1、未精英化。')}

+ : t('默认满潜能、精英2 Lv.60(满加成)。官方的潜能取你自己的潜能,练度是自持有加成(已持有的同名干员的养成,攻击 / 防御 / 生命单独乘算);未持有的特许干员在官方按潜能1、没有加成,要照官方打请手动设为潜能1、未精英化。')}

`; } diff --git a/test/ui/loadout-rows.test.js b/test/ui/loadout-rows.test.js index 8464d8a0..ad39bede 100644 --- a/test/ui/loadout-rows.test.js +++ b/test/ui/loadout-rows.test.js @@ -108,6 +108,11 @@ test('the detail\'s section: 潜能 1–6 and the four official 练度 tiers, th tiers[1].props.onClick(); assert.deepEqual(sets, [[id, { potential: 1 }], [id, { cultivate: 1 }]]); assert.equal(cultivateName(0), '未精英化'); + // the rule line says what an operator with nothing set fights at — the default, 满潜能 / 精英2 Lv.60 — and that an unowned + // 特许 operator at the official 潜能1 / 未精英化 is the player's own setting (Grok review of the branch: it read as automatic) + const note = textOf(find(sec, (v) => hasClass(v, 'lo-cult__note'))[0]); + assert.match(note, /^默认满潜能、精英2 Lv\.60(满加成)。/); + assert.match(note, /未持有的特许干员在官方按潜能1、没有加成,要照官方打请手动设为潜能1、未精英化。$/); const st = CultivationSection({ charId: id, ops: {}, onSet: () => {}, standIn: true }); assert.ok(hasClass(st, 'is-moot')); assert.match(textOf(find(st, (v) => hasClass(v, 'lo-cult__note'))[0]), /替补干员没有潜能与练度/);