From 81f3e3bae7d82f0e0ad72d89ea5a5fdae8804712 Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Sun, 5 Jul 2026 00:41:11 -0400 Subject: fix: remove redundant 'quality' on items, fix ranged str on ammo, item admin ui updates --- internal/admin/static/itemeditor.js | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) (limited to 'internal/admin/static/itemeditor.js') diff --git a/internal/admin/static/itemeditor.js b/internal/admin/static/itemeditor.js index 84090a1..f1450ab 100644 --- a/internal/admin/static/itemeditor.js +++ b/internal/admin/static/itemeditor.js @@ -12,8 +12,7 @@ var SECTIONS = [ ['color', 'Color', 'color', 'B2'], ['value', 'Value', 'number', '0'], ['stackable', 'Stackable', 'checkbox'], - ['quality', 'Quality', 'number', ''], - ['max_quality', 'Max Quality', 'number', ''], + ['max_quality', 'Quality', 'number', ''], ['aliases', 'Aliases', 'text', 'comma separated'], ['description', 'Description', 'textarea', 'A chunk of copper ore.'], ] @@ -57,9 +56,9 @@ var SECTIONS = [ ['station', 'Station', 'select', '|anvil|cooking_range|fire|furnace|pottery_oven|pottery_wheel|spinning_wheel|workbench'], ['tool', 'Tool', 'select', '|pickaxe|axe|fire|chisel|hammer|knife|needle|rake|saw|shears|spade|watering_can|fishing_rod|fly_rod|harpoon|small_net|big_net|lobster_pot'], ['fail', 'Fail Item', 'search', '', '', null, 'items'], - ['success_base', 'Base', 'number', '', 'narrow'], - ['success_per_level', 'Per Lvl', 'number', '', 'narrow'], - ['success_cap', 'Cap', 'number', '', 'narrow'], + ['success_base', 'Base', 'number', '0.5', 'narrow'], + ['success_per_level', 'Per Lvl', 'number', '0.01', 'narrow'], + ['success_cap', 'Cap', 'number', '0.95', 'narrow'], ['start_message', 'Start Message', 'text', 'e.g. You begin smithing %i1.', 'wide'], ['success_message', 'Success Message', 'text', 'e.g. You smith a %n.', 'wide'], ['fail_message', 'Fail Message', 'text', 'e.g. You accidentally burn the %i1.', 'wide', function(item) { return item.type === 'cooking' || item.subtype === 'smelt'; }], @@ -297,7 +296,7 @@ function renderCoreCard(data) { var h = '
'; h += renderField(sec, sec.fields[0], data, -1, null, 'flex:1'); h += renderField(sec, sec.fields[1], data, -1); - h += renderField(sec, sec.fields[6], data, -1, null, 'flex:1'); + h += renderField(sec, sec.fields[5], data, -1, null, 'flex:1'); h += '
'; h += '
'; h += renderField(sec, sec.fields[2], data, -1); @@ -306,7 +305,6 @@ function renderCoreCard(data) { h += '
'; h += '
'; h += renderField(sec, sec.fields[4], data, -1); - h += renderField(sec, sec.fields[5], data, -1); h += '
'; h += ''; var descFid = fieldID(sec, 'description', -1); @@ -337,8 +335,8 @@ var EQUIP_STAT_FIELDS = { ], other: [ ['strength', 'Strength', 'number', '', 'narrow'], - ['ranged', 'Ranged', 'number', '', 'narrow'], - ['science', 'Science', 'number', '', 'narrow'], + ['ranged_strength', 'Rng Str.', 'number', '', 'narrow'], + ['science', 'Sci +%', 'number', '', 'narrow'], ['technology', 'Tech', 'number', '', 'narrow'], ], }; @@ -487,7 +485,8 @@ function renderField(sec, f, data, idx, subPath, optStyle) { var hiddenStyle = ''; if (showIf) { - var sectionData = itemData[cardPath(sec)] || {}; + var p = cardPath(sec); + var sectionData = p ? (itemData[p] || {}) : itemData; if (!showIf(sectionData)) hiddenStyle = ' style="display:none"'; } @@ -616,6 +615,10 @@ function renderSubtable(sec, st, data) { if (!f) return; if (f[5] && !f[5](item)) return; var val = item[f[0]]; + if (val === undefined && item.success && (f[0] === 'success_base' || f[0] === 'success_per_level' || f[0] === 'success_cap')) { + var nestedKey = f[0] === 'success_base' ? 'base' : (f[0] === 'success_per_level' ? 'per_level' : 'cap'); + val = item.success[nestedKey]; + } h += renderSubFieldHTML(sec, st.key, idx, f, val); }); } @@ -626,12 +629,12 @@ function renderSubtable(sec, st, data) { h += '
' + esc(group.note) + '
'; } else if (group.label) { if (group.label === 'Success') { - var hasSuccess = !!(item.fail || (item.success && (item.success.base || item.success.per_level || item.success.cap)) || item.success_base || item.success_per_level || item.success_cap); + var hasSuccess = !!(item.success_base || item.success_per_level || item.success_cap || (item.success && (item.success.base || item.success.per_level || item.success.cap))); var gid = 'sg_' + sec.id + '_' + st.key + '_' + idx; h += '
'; h += '
'; h += 'Success'; - h += ''; + h += ''; h += '
'; h += '
'; renderGroup(group.fields); @@ -1353,6 +1356,8 @@ function saveItem() { delete item.success_cap; if (sBase || sPer || sCap) { item.success = {base: sBase, per_level: sPer, cap: sCap}; + } else { + delete item.success; } } -- cgit v1.2.3