Improve remaining low-detail weapon icons

This commit is contained in:
2026-07-10 00:38:42 +09:00
parent 72253a44d0
commit 7ff5baa12c
5 changed files with 182 additions and 32 deletions

View File

@@ -315,6 +315,7 @@ function buildRecommendations(itemRows, groupedRows) {
];
const armorTargetIds = ['oath-robe', 'reinforced-lamellar', 'cloth-armor', 'lamellar-armor', 'rebel-vest'];
const accessoryIds = itemRows.filter((row) => row.slot === 'accessory').map((row) => row.itemId);
const lowDetailWeaponTargetIds = ['leader-axe', 'training-sword', 'yellow-turban-saber'];
const targets = [
{
title: 'weapon spear/polearm family',
@@ -344,6 +345,15 @@ function buildRecommendations(itemRows, groupedRows) {
openReason: 'Accessories are the smallest UI read and several use compact badge-like shapes.',
successCriteria:
'Each accessory should keep a compact footprint while gaining a distinct readable prop shape at 20px and 30px.'
},
{
title: 'remaining low-detail weapon icons',
itemIds: lowDetailWeaponTargetIds,
completeReason:
'The final low-detail common weapons now use dedicated axe, training sword, and Yellow Turban saber silhouettes.',
openReason:
'These are the last generated equipment icons still below the primitive-detail threshold after the larger weapon, armor, and accessory passes.',
successCriteria: 'Clear the low primitive detail concerns without changing stable item texture keys.'
}
].map((target) => ({
...target,
@@ -356,12 +366,17 @@ function buildRecommendations(itemRows, groupedRows) {
itemIds: target.rows.map((row) => row.itemId),
reason: target.completeReason
}));
const remainingConcernRows = itemRows.filter((row) => row.concerns.length > 0);
const nextTarget =
targets.find((target) => !improvementTargetComplete(target)) ?? {
title: 'remaining low-detail equipment icons',
rows: itemRows.filter((row) => row.concerns.length > 0),
openReason: 'All named batches are complete; remaining work should be selected from the low-detail inventory rows.',
successCriteria: 'Clear remaining low-detail concerns without changing stable texture keys.'
title: remainingConcernRows.length ? 'remaining low-detail equipment icons' : 'no flagged equipment icon batch',
rows: remainingConcernRows,
openReason: remainingConcernRows.length
? 'All named batches are complete; remaining work should be selected from the low-detail inventory rows.'
: 'No generated equipment icon currently has a low-detail or shared-helper audit concern; choose the next visual asset pass from in-game QA.',
successCriteria: remainingConcernRows.length
? 'Clear remaining low-detail concerns without changing stable texture keys.'
: 'Keep the generated equipment icon audit green while selecting the next art target from runtime screenshots.'
};
const nextTargetIndex = targets.findIndex((target) => target.title === nextTarget.title);
const followUps = targets
@@ -426,7 +441,7 @@ function renderReport({ iconSourceSize, iconTextureSize, itemRows, groupedRows,
'## Next Improvement Target',
'',
`- Target: ${recommendations.firstTargetTitle}`,
`- Item ids: ${recommendations.firstTargetIds.map((itemId) => `\`${itemId}\``).join(', ')}`,
`- Item ids: ${formatItemIds(recommendations.firstTargetIds)}`,
`- Reason: ${recommendations.firstTargetReason}`,
'',
...renderFollowUpTargets(recommendations.followUps),
@@ -456,15 +471,37 @@ function renderReport({ iconSourceSize, iconTextureSize, itemRows, groupedRows,
].join(' | ')
).map((line) => `| ${line} |`),
'',
...renderRecommendedNextBatch(recommendations)
].join('\n')}`;
}
function formatItemIds(itemIds) {
return itemIds.length ? itemIds.map((itemId) => `\`${itemId}\``).join(', ') : 'none currently flagged';
}
function renderRecommendedNextBatch(recommendations) {
if (!recommendations.firstTargetIds.length) {
return [
'## Recommended Next Batch Definition',
'',
'- Scope: no generated equipment icon is currently below the audit threshold.',
'- Item ids: none currently flagged',
`- Success criteria: ${recommendations.firstTargetSuccessCriteria}`,
'- Suggested next area: map/background or unit sprite assets that still look low-resolution in gameplay.',
''
];
}
return [
'## Recommended Next Batch Definition',
'',
`- Scope: improve ${recommendations.firstTargetTitle} while keeping \`item-\${itemId}\` texture keys stable.`,
`- Item ids: ${recommendations.firstTargetIds.map((itemId) => `\`${itemId}\``).join(', ')}`,
`- Item ids: ${formatItemIds(recommendations.firstTargetIds)}`,
`- Success criteria: ${recommendations.firstTargetSuccessCriteria}`,
'- Keep the existing 64px texture size unless a UI-wide equipment icon pass is planned.',
'- Add before/after contact sheets and verify the sortie equipment list and equipment swap panel in a desktop browser.',
''
].join('\n')}`;
];
}
function renderCompletedTargets(completedTargets) {