diff --git a/_server/table/data.comment.js b/_server/table/data.comment.js index f9951bf5..d40625b1 100644 --- a/_server/table/data.comment.js +++ b/_server/table/data.comment.js @@ -564,12 +564,6 @@ var data_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = { "_docs": "横屏底部工具栏", "_data": "在横屏状态下是否将工具栏挪动到游戏画布下方,从而完全解放状态栏空间" }, - "showHard": { - "_leaf": true, - "_type": "checkbox", - "_docs": "工具栏显示难度", - "_data": "工具栏是否显示难度字符。由于空间不足,显示时将隐藏回退等新增按钮。" - }, "flyNearStair": { "_leaf": true, "_type": "checkbox", diff --git a/main.js b/main.js index 71c14c7f..b9850f14 100644 --- a/main.js +++ b/main.js @@ -853,6 +853,7 @@ main.prototype.listen = function () { ////// 点击工具栏的难度时 ////// main.dom.hard.onclick = function () { if (core.isReplaying()) return; + if (!core.domStyle.isVertical && !core.flags.extendToolbar) return; // 横屏模式下点击道具栏无反应 if (core.domStyle.toolbarBtn === 'normal') main.core.setToolbarButton('num'); else if (core.domStyle.toolbarBtn === 'num') main.core.setToolbarButton('normal'); } diff --git a/project/data.js b/project/data.js index 24bf7ca6..b1454bde 100644 --- a/project/data.js +++ b/project/data.js @@ -747,6 +747,5 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = "disableShopOnDamage": false, "blurFg": false, "chaseThroughEnemy": false, - "showHard": false } } \ No newline at end of file diff --git a/project/functions.js b/project/functions.js index 182e325e..a226fa13 100644 --- a/project/functions.js +++ b/project/functions.js @@ -1316,8 +1316,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = core.setStatusBarInnerHTML('fly', "飞" + core.itemCount('centerFly')); // 难度 - if (!core.flags.showHard) core.statusBar.hard.innerText = ''; - else if (core.statusBar.hard.innerText != core.status.hard) { + if (core.statusBar.hard.innerText != core.status.hard) { core.statusBar.hard.innerText = core.status.hard; } var hardColor = core.getFlag('__hardColor__', 'red'); diff --git a/project/plugins.js b/project/plugins.js index c855de9c..4fba31da 100644 --- a/project/plugins.js +++ b/project/plugins.js @@ -3819,23 +3819,40 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = * @param {string} value * @example core.setToolBarConfig('normal', 3, null) */ - this.setToolBarConfig = function (type, index, value) { + function setToolBarConfig(type, index, value) { const toorBarConfig = core.getLocalStorage('toorBarConfig' + type, defaultConfig[type]); const key = isVertical() ? 'vertical' : 'horizontal'; - if (type === 'replay' && []) { + if (type === 'replay' + && (['fly', 'shop', 'load', 'settings', 'btnAlt', 'rollback', 'undoRollback', 'btnAlt'].includes(value))) { core.drawFailTip('该按钮不允许放在录像模式下!'); return; - } - if (type !== 'replay' && []) { + } // 录像模式下的按键处理有一套专门的逻辑,在_sys_onkeyUp_replay,实际上并不能读取自动档 + if (type !== 'replay' && ['play', 'stop', 'rewind', 'speedDown', 'speedUp', 'single'].includes(value)) { core.drawFailTip('该按钮不允许放在非录像模式下!'); return; } - if (value == null) toorBarConfig[key].splice(index, 1); - else toorBarConfig[key][index] = value; + if (value === "delete") toorBarConfig[key].splice(index, 1); + else { + if (index > toorBarConfig[key].length) { + core.drawFailTip('按钮中间不能有空白!'); + return; + } + toorBarConfig[key][index] = value; + } core.setLocalStorage('toorBarConfig' + type, toorBarConfig); setToolbarButton(core.domStyle.toolbarBtn); } + this.setToolBarConfig = setToolBarConfig; + + function resetToolBarConfig() { + for (let type in defaultConfig) { + if (!defaultConfig.hasOwnProperty(type)) return; + const toorBarConfig = core.getLocalStorage('toorBarConfig' + type, defaultConfig[type]); + core.setLocalStorage('toorBarConfig' + type, toorBarConfig); + } + } + this.resetToolBarConfig = resetToolBarConfig; /** * @@ -4938,6 +4955,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = core.fillText(this.name, '-- 快捷键设置 --', 40, 205, ' #FFE4B5', '18px Verdana'); break; case 'toolBarConfig': + core.setTextAlign(this.name, 'left'); core.fillText(this.name, '常规', 40, 175, ' #FFE4B5', '16px Verdana'); core.fillText(this.name, '数字', 40, 205, ' #FFE4B5', '16px Verdana'); core.fillText(this.name, '录像', 40, 235, ' #FFE4B5', '16px Verdana'); @@ -5028,18 +5046,22 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = class ToolBtn extends ButtonBase { constructor(x, y, w, h, icon, text, config) { super(x, y, w, h); - this.icon = icon; + this.icon = icon; // 特殊icon:delete 用于删除图标 /** @todo 这里需要重构 */ this.text = text; const { strokeStyle = 'white', fillStyle = 'white', selectedStyle = 'gold' } = config || {}; this.draw = () => { const ctx = this.ctx; - core.strokeRoundRect(ctx, this.x, this.y, this.w, this.h, 3, strokeStyle); - // core.fillRoundRect(ctx, this.x, this.y, this.w, this.h, 3, fillStyle); - core.drawIcon(ctx, this.icon, this.x, this.y, this.w, this.h); + core.strokeRoundRect(ctx, this.x, this.y, this.w, this.h, 3, (this.menu.selectedTool === this.icon) ? selectedStyle : strokeStyle); + if (this.icon === 'delete') { + core.drawLine(ctx, this.x + 2, this.y + 2, this.x + this.w - 2, this.y + this.h - 2, 'red', 2); + core.drawLine(ctx, this.x + 2, this.y + this.h - 2, this.x + this.w - 2, this.y + 2, 'red', 2); + } + else core.drawIcon(ctx, this.icon, this.x, this.y, this.w, this.h); }; this.event = () => { - console.log(1); + this.menu.selectedTool = this.icon; + this.menu.drawContent(); }; } } @@ -5051,6 +5073,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = this.length = length; /** @todo 这里需要重构 */ this.text = text; + this.draw = () => { const ctx = this.ctx; const squareSize = this.h; @@ -5129,11 +5152,17 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ]); // 名字不能叫toolBar 被系统占了 const toolBarMenu = new SettingOnePage('toolBarConfig'); + console.log(toolBarMenu); + const changeToolBarBtn = new ChoiceButton(320, 158, 42, 24, '执行', -1); + changeToolBarBtn.event = function () { + core.setToolBarConfig(this.menu.type, this.menu.index, this.menu.selectedTool); + this.menu.drawContent(); + }.bind(changeToolBarBtn); toolBarMenu.initBtnList([ ['1,1', new ToolBarBtn(80, 158, 24, 'normal', 9, '常规模式下显示在工具栏中的图标。')], + ['1,2', changeToolBarBtn], ['2,1', new ToolBarBtn(80, 188, 24, 'num', 9, '数字模式下显示在工具栏中的图标。')], ['3,1', new ToolBarBtn(80, 218, 24, 'replay', 9, '录像模式下显示在工具栏中的图标。')], - // ['4,1', new TextButton(160, 218, 45, 25, '执行')], ['5,1', new ToolBtn(40, 275, 24, 24, 'book', '打开怪物手册')], ['5,2', new ToolBtn(70, 275, 24, 24, 'fly', '进行楼层传送')], ['5,3', new ToolBtn(100, 275, 24, 24, 'toolbox', '打开物品背包')], @@ -5162,6 +5191,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ['7,5', new ToolBtn(160, 335, 24, 24, 'speedUp', '加速录像(最高24倍)')], ['7,6', new ToolBtn(190, 335, 24, 24, 'single', '单步播放录像')], ['7,7', new ToolBtn(220, 335, 24, 24, 'view', '浏览地图')], + ['7,8', new ToolBtn(250, 335, 24, 24, 'delete', '删除已有图标')], ]) const consoleMenu = new SettingOnePage('console');