aboutsummaryrefslogtreecommitdiff
path: root/internal/admin
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-07-05 20:06:53 -0400
committerhistoria <[not public]>2026-07-05 20:07:50 -0400
commit843fa6db681e494bf46e191655323a40577542b5 (patch)
treecf32ec18d50434c14a1152147ff6e5e8b3576998 /internal/admin
parent7b5ed92e003d8a4bf9bdc69d43b7354eb2260dfa (diff)
downloadthehouseoficarus-843fa6db681e494bf46e191655323a40577542b5.tar.gz
feat: remove deprecated use/station interaction model
Diffstat (limited to 'internal/admin')
-rw-r--r--internal/admin/static/admin.css6
-rw-r--r--internal/admin/static/objecteditor.js54
2 files changed, 26 insertions, 34 deletions
diff --git a/internal/admin/static/admin.css b/internal/admin/static/admin.css
index bef3589..1f6aeec 100644
--- a/internal/admin/static/admin.css
+++ b/internal/admin/static/admin.css
@@ -281,9 +281,9 @@ g.ud-hover:hover text{font-weight:bold}
.panel-tab-content .section-add-btn:hover{background:var(--hover)}
.panel-tab-content .mini-label{font-size:9px;color:#888;display:block;margin-bottom:1px;margin-top:3px}
.panel-tab-content .mini-input{width:60px!important;display:inline-block;margin-right:4px}
-.obj-card{background:rgba(255,255,255,.02);border:1px solid var(--border);border-radius:5px;margin-bottom:10px;overflow:hidden;flex:1 1 calc(50% - 5px);min-width:340px;max-width:calc(50% - 5px)}
-.obj-card.obj-card-full{flex:1 1 100%;max-width:100%}
-.obj-fields-wrap{display:flex;flex-wrap:wrap;gap:10px}
+.obj-card{background:rgba(255,255,255,.02);border:1px solid var(--border);border-radius:5px;margin-bottom:10px;overflow:hidden;break-inside:avoid;display:inline-block;width:100%}
+.obj-card.obj-card-full{column-span:all}
+.obj-fields-wrap{column-count:2;column-gap:10px}
.obj-card-header{display:flex;align-items:center;gap:8px;padding:8px 12px;background:rgba(15,52,96,.3);cursor:pointer;user-select:none;font-size:13px;font-weight:bold}
.obj-card-header:hover{background:rgba(15,52,96,.5)}
.obj-card-arrow{font-size:10px;width:14px;color:#888}
diff --git a/internal/admin/static/objecteditor.js b/internal/admin/static/objecteditor.js
index 7e2d04b..d4cca21 100644
--- a/internal/admin/static/objecteditor.js
+++ b/internal/admin/static/objecteditor.js
@@ -61,30 +61,6 @@ var SECTIONS = [
]
},
{
- id: 'use', label: 'Use (Station)', path: 'use',
- detect: function(d) { return d.use; },
- fields: [
- ['message', 'Message', 'text', 'You use the station...'],
- ['wait', 'Wait', 'number', '4', 'narrow'],
- ['skill', 'Skill', 'text', 'e.g. smithing'],
- ['level', 'Level', 'number', '1', 'narrow'],
- ['xp', 'XP', 'number', '25', 'narrow'],
- ['fail_message', 'Fail Message', 'text', 'You fail to use the station.'],
- ],
- inline: [
- {label:'Success', path:'success', fields:[
- ['base', 'Base', 'number', '0.5', 'narrow'], ['per_level', 'Per Lvl', 'number', '0.01', 'narrow'], ['cap', 'Cap', 'number', '0.95', 'narrow']
- ]},
- {label:'Consume', key:'consume', type:'kv', valType:'number'},
- ],
- subtables: [
- {label:'Reward', key:'reward', single:true, fields:[
- ['item_id', 'Item ID', 'search', '', '', 'items'], ['weight', 'Weight', 'number'], ['quantity', 'Quantity', 'number'],
- ['message', 'Message', 'text'],
- ]}
- ]
- },
- {
id: 'safespot', label: 'Safespot', path: 'safespot',
detect: function(d) { return d.safespot; },
fields: [
@@ -113,18 +89,16 @@ var SECTIONS = [
]
},
{
- id: 'on_look', label: 'On Look', path: 'on_look',
+ id: 'on_look', label: 'On Look', labelHint: '(what happens when you "look <this>")', path: 'on_look',
detect: function(d) { return d.on_look; },
fields: [
['set_flags', 'Set Flags', 'json', '{"flag":"value"}'],
['set_player_flags', 'Set Player Flags', 'json', '{"pflag":"value"}'],
- ['give_item', 'Give Item', 'text', 'e.g. keycard'],
- ['take_item', 'Take Item', 'text', 'e.g. bomb'],
+ ['give_item', 'Give Item', 'search', 'e.g. keycard', '', null, 'items'],
+ ['take_item', 'Take Item', 'search', 'e.g. bomb', '', null, 'items'],
['teleport', 'Teleport', 'number', '5', 'narrow'],
['heal', 'Heal', 'number', '10', 'narrow'],
['credits', 'Credits', 'number', '100', 'narrow'],
- ['reputation_cost', 'Reputation Cost', 'number', '1', 'narrow'],
- ['aps_node', 'APS Node', 'checkbox'],
]
},
];
@@ -253,6 +227,8 @@ function renderCard(sec, data) {
h += renderCoreCard(data);
} else if (sec.id === 'steal') {
h += renderStealCard(data);
+ } else if (sec.id === 'on_look') {
+ h += renderOnLookCard(data);
} else {
h += '<div class="obj-card-grid">';
sec.fields.forEach(function(f) {
@@ -484,6 +460,24 @@ function renderStealCard(data) {
return h;
}
+function renderOnLookCard(data) {
+ var sec = SECTIONS.find(function(s) { return s.id === 'on_look'; });
+ var h = '<div style="display:flex;gap:10px">';
+ h += renderField(sec, sec.fields[0], data, -1, null, 'flex:1');
+ h += renderField(sec, sec.fields[1], data, -1, null, 'flex:1');
+ h += '</div>';
+ h += '<div style="display:flex;gap:10px;margin-top:8px">';
+ h += renderField(sec, sec.fields[2], data, -1, null, 'flex:1');
+ h += renderField(sec, sec.fields[3], data, -1, null, 'flex:1');
+ h += '</div>';
+ h += '<div style="display:flex;gap:10px;margin-top:8px">';
+ h += renderField(sec, sec.fields[4], data, -1);
+ h += renderField(sec, sec.fields[5], data, -1);
+ h += renderField(sec, sec.fields[6], data, -1);
+ h += '</div>';
+ return h;
+}
+
function renderArraySection(sec, data) {
var arr = data[cardPath(sec)] || [];
var h = '';
@@ -783,8 +777,6 @@ function addSection() {
objectData[sec.path] = {};
} else if (sec.id === 'gather') {
objectData[sec.path] = {skill:'', tools:[], success:{base:0, per_level:0, cap:1}, drops:[], gather_message:'', fail_message:'', respawn_timer:0, respawn_broadcast:'', deplete_timer:0, nest_chance:0};
- } else if (sec.id === 'use') {
- objectData[sec.path] = {message:'', wait:1, consume:{}, reward:{}, fail_message:'', success:{base:0, per_level:0, cap:1}, skill:'', level:1, xp:0};
} else if (sec.id === 'safespot') {
objectData[sec.path] = {tier:1, max_block_size:'', max_occupants:1, unsafe_chance:0, decay_ticks:0, decay_chance:0, respawn_on_hide:false, respawn_ticks:0, levels:[]};
} else {