From b7f3c981319f60f63cee12d33cc9300b05a219e6 Mon Sep 17 00:00:00 2001 From: unanmed <1319491857@qq.com> Date: Mon, 7 Aug 2023 18:45:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=B4=E7=95=8C=E6=98=BE=E7=A4=BA=E4=B8=BA?= =?UTF-8?q?=E5=AE=9D=E7=9F=B3=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- idea.md | 3 ++- src/core/main/setting.ts | 25 ++++++++++++++----------- src/data/settings.json | 24 +++++++++++++----------- src/plugin/game/enemy/damage.ts | 7 ++++++- src/plugin/game/index.js | 4 +++- 5 files changed, 38 insertions(+), 25 deletions(-) diff --git a/idea.md b/idea.md index 8e6c240..cf468dd 100644 --- a/idea.md +++ b/idea.md @@ -61,7 +61,7 @@ dam4.png ---- 存档 59 [x] 成就系统 [] 宝石目标设定 [] 自动宝物规划,选中两个或更多宝物后自动在本地图中规划出最优拾取路线,原则是尽量减少其余宝物的捡拾,自动切换主动技能,怪物造成的伤害最低的路线 -[] 临界显示方式,宝石数还是数值 +[x] 临界显示方式,宝石数还是数值 [x] 怪物目标设定 [x] 木牌查看系统(百科全书) [] 宝物目标设定 @@ -84,3 +84,4 @@ dam4.png ---- 存档 59 [] 自定义快捷键 [] 优化 ui 控制系统 [] 优化游戏进程与渲染进程间的通讯 +[] 优化资源分离,音乐放到 bgm 目录下 diff --git a/src/core/main/setting.ts b/src/core/main/setting.ts index 7726386..b5c6f6f 100644 --- a/src/core/main/setting.ts +++ b/src/core/main/setting.ts @@ -319,15 +319,14 @@ function handleScreenSetting( canvas.classList.add('no-anti-aliasing'); } } - } else if (key === 'autoScale') { - // 自动放缩 - core.setLocalStorage('autoScale', n); } else if (key === 'fontSize') { // 字体大小 core.setLocalStorage('fontSize', n); root.style.fontSize = root2.style.fontSize = `${n}px`; } else if (key === 'smoothView') { core.setLocalStorage('smoothView', n); + } else if (key === 'criticalGem') { + core.setLocalStorage('criticalGem', n); } } @@ -339,9 +338,7 @@ function handleActionSetting( if (key === 'autoSkill') { // 自动切换技能 flags.autoSkill = n; - } - - if (key === 'fixed') { + } else if (key === 'fixed') { // 定点查看 core.setLocalStorage('fixed', n); } @@ -355,6 +352,9 @@ function handleUtilsSetting( if (key === 'betterLoad') { // 加载优化 core.setLocalStorage('betterLoad', n); + } else if (key === 'autoScale') { + // 自动放缩 + core.setLocalStorage('autoScale', n); } } @@ -370,9 +370,10 @@ mainSetting .register('itemDetail', '宝石血瓶显伤', true) .register('transition', '界面动画', false) .register('antiAlias', '抗锯齿', false) - .register('autoScale', '自动放缩', true) .register('fontSize', '字体大小', 16, [8, 28, 1]) .register('smoothView', '平滑镜头', true) + .register('criticalGem', '临界显示方式', false) + .setDisplayFunc('criticalGem', value => (value ? '宝石数' : '攻击')) ) .register( 'action', @@ -387,7 +388,9 @@ mainSetting .register( 'utils', '功能设置', - new MotaSetting().register('betterLoad', '优化加载', true) + new MotaSetting() + .register('betterLoad', '优化加载', true) + .register('autoScale', '自动放缩', true) ); loading.once('coreInit', () => { @@ -398,15 +401,15 @@ loading.once('coreInit', () => { 'screen.itemDetail': !!core.getLocalStorage('itemDetail', true), 'screen.transition': !!core.getLocalStorage('transition', false), 'screen.antiAlias': !!core.getLocalStorage('antiAlias', false), - 'screen.autoScale': !!core.getLocalStorage('autoScale', true), 'screen.fontSize': core.getLocalStorage('fontSize', 16), 'screen.smoothView': !!core.getLocalStorage('smoothView', true), 'action.fixed': !!core.getLocalStorage('fixed', true), - 'utils.betterLoad': !!core.getLocalStorage('betterLoad', true) + 'utils.betterLoad': !!core.getLocalStorage('betterLoad', true), + 'utils.autoScale': !!core.getLocalStorage('autoScale', true) }); }); -hook.once('reset', () => { +hook.on('reset', () => { mainSetting.reset({ 'action.autoSkill': flags.autoSkill ?? true }); diff --git a/src/data/settings.json b/src/data/settings.json index 791a5f4..3a95e85 100644 --- a/src/data/settings.json +++ b/src/data/settings.json @@ -14,19 +14,11 @@ "antiAlias": [ "是否开启抗锯齿。开启后,画面会变得不那么锐利,观感更加舒适;关闭后,可以更好地展现出像素感,同时部分像素错误也不会出现。" ], - "autoScale": [ - "开启后,每次进入游戏时会自动缩放游戏画面至合适值。该项只对电脑端有效。", - "
", - "
", - "缩放原则如下:", - "
", - "1. 首先尝试缩放至最大缩放比例", - "
", - "2. 如果缩放后游戏画面高度高于页面高度的95%,那么缩小一个缩放比例,否则保持最大比例" - ], + "fontSize": [ "在各种 ui 界面中显示的文字大小,范围为 8 - 28。注意,字体过大可能会引起 ui 布局发生错误" - ] + ], + "criticalGem": ["临界是否显示为在当前地图要吃的宝石数"] }, "action": { "autoSkill": [ @@ -50,6 +42,16 @@ "
", "
", "注:修改后刷新页面起效。" + ], + "autoScale": [ + "开启后,每次进入游戏时会自动缩放游戏画面至合适值。该项只对电脑端有效。", + "
", + "
", + "缩放原则如下:", + "
", + "1. 首先尝试缩放至最大缩放比例", + "
", + "2. 如果缩放后游戏画面高度高于页面高度的95%,那么缩小一个缩放比例,否则保持最大比例" ] } } diff --git a/src/plugin/game/enemy/damage.ts b/src/plugin/game/enemy/damage.ts index 0553a40..1c9bfe3 100644 --- a/src/plugin/game/enemy/damage.ts +++ b/src/plugin/game/enemy/damage.ts @@ -193,8 +193,13 @@ export class EnemyCollection implements RangeCollection { py: 32 * (v.y! + 1) - 1, color: color }); + const criGem = core.getLocalStorage('criticalGem', false); + const n = critical?.atkDelta ?? Infinity; + const ratio = core.status.maps[this.floorId].ratio; + const cri = criGem ? Math.ceil(n / ratio) : n; + core.status.damage.data.push({ - text: critical?.atkDelta.toString() ?? '?', + text: isFinite(cri) ? cri.toString() : '?', px: 32 * v.x! + 1, py: 32 * (v.y! + 1) - 11, color: '#fff' diff --git a/src/plugin/game/index.js b/src/plugin/game/index.js index 0f49e69..5fc5141 100644 --- a/src/plugin/game/index.js +++ b/src/plugin/game/index.js @@ -20,6 +20,7 @@ import * as utils from './utils'; import * as chase from './chase'; import * as damage from './enemy/damage'; import * as battle from './enemy/battle'; +import * as special from './enemy/special'; export { halo, @@ -35,5 +36,6 @@ export { utils, chase, damage, - battle + battle, + special };