diff options
Diffstat (limited to 'internal/admin/static/objecteditor.js')
| -rw-r--r-- | internal/admin/static/objecteditor.js | 64 |
1 files changed, 38 insertions, 26 deletions
diff --git a/internal/admin/static/objecteditor.js b/internal/admin/static/objecteditor.js index 5444985..7e2d04b 100644 --- a/internal/admin/static/objecteditor.js +++ b/internal/admin/static/objecteditor.js @@ -21,7 +21,7 @@ var SECTIONS = [ id: 'steal', label: 'Steal', path: 'steal', detect: function(d) { return d.steal !== undefined; }, fields: [ - ['table', 'Table ID', 'search', '', '', null, 'drops'], + ['table', 'Table ID', 'search', 'e.g. gem_table', '', null, 'drops'], ['level', 'Level', 'number', '1', 'narrow'], ['xp', 'XP', 'number', '5', 'narrow'], ['speed', 'Speed', 'number', '4', 'narrow'], @@ -64,16 +64,16 @@ var SECTIONS = [ id: 'use', label: 'Use (Station)', path: 'use', detect: function(d) { return d.use; }, fields: [ - ['message', 'Message', 'text'], - ['wait', 'Wait', 'number', '', 'narrow'], - ['skill', 'Skill', 'text'], - ['level', 'Level', 'number', '', 'narrow'], - ['xp', 'XP', 'number', '', 'narrow'], - ['fail_message', 'Fail Message', 'text'], + ['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', '', 'narrow'], ['per_level', 'Per Lvl', 'number', '', 'narrow'], ['cap', 'Cap', 'number', '', 'narrow'] + ['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'}, ], @@ -88,14 +88,13 @@ var SECTIONS = [ id: 'safespot', label: 'Safespot', path: 'safespot', detect: function(d) { return d.safespot; }, fields: [ - ['tier', 'Tier', 'number', '', 'narrow'], + ['tier', 'Tier', 'number', '1', 'narrow'], ['max_block_size', 'Max Block Size', 'select', '|small|medium|large|massive'], - ['max_occupants', 'Max Occupants', 'number', '', 'narrow'], - ['unsafe_chance', 'Unsafe Chance', 'number', '', 'narrow'], - ['decay_ticks', 'Decay Ticks', 'number', '', 'narrow'], - ['decay_chance', 'Decay Chance', 'number', '', 'narrow'], - ['respawn_on_hide', 'Respawn on Hide', 'checkbox'], - ['respawn_ticks', 'Respawn Ticks', 'number', '', 'narrow'], + ['max_occupants', 'Max Occupants', 'number', '1', 'narrow'], + ['unsafe_chance', 'Unsafe Chance', 'number', '0.05', 'narrow'], + ['decay_ticks', 'Decay Ticks', 'number', '100', 'narrow'], + ['decay_chance', 'Decay Chance', 'number', '0.1', 'narrow'], + ['respawn_ticks', 'Respawn Ticks', 'number', '50', 'narrow'], ], subtables: [ {label:'Levels', key:'levels', fields:[ @@ -107,24 +106,24 @@ var SECTIONS = [ id: 'use_interactions', label: 'Use Interactions', labelHint: '(what happens when you use items on this)', path: 'use_interactions', isArray: true, fullWidth: true, detect: function(d) { return d.use_interactions && Array.isArray(d.use_interactions); }, fields: [ - ['item_id', 'Item ID', 'search', '', '', null, 'items'], + ['item_id', 'Item ID', 'search', 'e.g. keycard', '', null, 'items'], ['condition', 'Condition', 'json', 'e.g. {"flag":"my_flag"} or {"player_flag":"x","value":1} or {"all_of":[{"flag":"a"},{"has_item":"key"}]}'], ['action', 'Action', 'json', 'e.g. {"set_flags":{"my_flag":true},"message":"You activate it.","give_item":"gem"}'], - ['message', 'Message', 'text'], + ['message', 'Message', 'text', 'You use the object...'], ] }, { id: 'on_look', label: 'On Look', path: 'on_look', detect: function(d) { return d.on_look; }, fields: [ - ['set_flags', 'Set Flags', 'json'], - ['set_player_flags', 'Set Player Flags', 'json'], - ['give_item', 'Give Item', 'text'], - ['take_item', 'Take Item', 'text'], - ['teleport', 'Teleport', 'number', '', 'narrow'], - ['heal', 'Heal', 'number', '', 'narrow'], - ['credits', 'Credits', 'number', '', 'narrow'], - ['reputation_cost', 'Reputation Cost', 'number', '', 'narrow'], + ['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'], + ['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'], ] }, @@ -1106,8 +1105,21 @@ function duplicateObject() { delete copy._path; copy.id = newID; + var dir = ''; + if (objectData._path) { + var parts = objectData._path.split('/'); + var parentDir = parts[parts.length - 2]; + if (parentDir !== 'objects') dir = parentDir; + } + API.post('/api/objects', {id: newID}).then(function() { - return API.put('/api/objects/' + encodeURIComponent(newID), copy); + var putOp = API.put('/api/objects/' + encodeURIComponent(newID), copy); + if (dir) { + return putOp.then(function() { + return API.post('/api/objects/move', {id: newID, dir: dir}); + }); + } + return putOp; }).then(function() { notify('Duplicated as ' + newID, 'success'); updateUndoBar(); |
