feat(panel): Alt+T 面板新增「电磁炮设置」——锁定/蓄力时长可实时调

启用时长覆盖(checkbox) + 锁定/蓄力(s) 滑块 0.1~5.0/步进0.05,拖动立即写入 window.__hornetLockSec__ 并持久化到 localStorage(hornet_lock_on/hornet_lock_sec)。实测门槛:1.5s/2.0s 满伤,1.0s/0.1s 无伤害。
This commit is contained in:
TermiNexus committed 2026-10-12 11:01:36 +08:00
1 parent 1af3b3a7a3
commit db8a92a2f7
3 files changed
+99

No files matched your search

@@ -5892,6 +5892,39 @@
if (tools.WarSandbox) tools.WarSandbox.SetMarkerSize(v);
});
// ===== 电磁炮(RAILGUN / z4t)设置 =====
// 锁定/蓄力时长实时覆盖 window.__hornetLockSec__(游戏内 z4t.w187() 优先读它),
// 拖动滑块**立即生效**,不需要重打包或刷新页面。
// 实测门槛:1.5s / 2.0s / 原版3~5s = 满伤;1.0s / 0.1s = 无伤害 ⇒ 门槛在 1.0~1.5s。
var rgSec = MakeSettingsSection('电磁炮设置');
var rgSecVal = 1.5;
function ApplyLock(v) { window.__hornetLockSec__ = (v > 0 ? v : undefined); }
function SaveLock(on, v) {
try {
localStorage.setItem('hornet_lock_on', on ? '1' : '0');
localStorage.setItem('hornet_lock_sec', String(v));
} catch (e) {}
}
var rgOnCtl = rgSec.checkbox('启用时长覆盖', function(on) {
ApplyLock(on ? rgSecVal : 0);
SaveLock(on, rgSecVal);
});
var rgLockCtl = rgSec.slider('锁定/蓄力(s)', 0.1, 5.0, 0.05, function(v) { return v.toFixed(2); }, function(v) {
rgSecVal = v;
if (rgOnCtl.get()) ApplyLock(v);
SaveLock(rgOnCtl.get(), v);
});
(function () { // 回填上次保存的配置
try {
var on = localStorage.getItem('hornet_lock_on') === '1';
var v = parseFloat(localStorage.getItem('hornet_lock_sec'));
if (isFinite(v) && v > 0) rgSecVal = v;
rgLockCtl.set(rgSecVal);
rgOnCtl.set(on);
ApplyLock(on ? rgSecVal : 0);
} catch (e) {}
})();
// 从工具读取当前设置(打开面板时同步)
function SyncWfSettings() {
var tools = window.__hornetTools__ || {};
+33
View File
@@ -5892,6 +5892,39 @@
if (tools.WarSandbox) tools.WarSandbox.SetMarkerSize(v);
});
// ===== 电磁炮(RAILGUN / z4t)设置 =====
// 锁定/蓄力时长实时覆盖 window.__hornetLockSec__(游戏内 z4t.w187() 优先读它),
// 拖动滑块**立即生效**,不需要重打包或刷新页面。
// 实测门槛:1.5s / 2.0s / 原版3~5s = 满伤;1.0s / 0.1s = 无伤害 ⇒ 门槛在 1.0~1.5s。
var rgSec = MakeSettingsSection('电磁炮设置');
var rgSecVal = 1.5;
function ApplyLock(v) { window.__hornetLockSec__ = (v > 0 ? v : undefined); }
function SaveLock(on, v) {
try {
localStorage.setItem('hornet_lock_on', on ? '1' : '0');
localStorage.setItem('hornet_lock_sec', String(v));
} catch (e) {}
}
var rgOnCtl = rgSec.checkbox('启用时长覆盖', function(on) {
ApplyLock(on ? rgSecVal : 0);
SaveLock(on, rgSecVal);
});
var rgLockCtl = rgSec.slider('锁定/蓄力(s)', 0.1, 5.0, 0.05, function(v) { return v.toFixed(2); }, function(v) {
rgSecVal = v;
if (rgOnCtl.get()) ApplyLock(v);
SaveLock(rgOnCtl.get(), v);
});
(function () { // 回填上次保存的配置
try {
var on = localStorage.getItem('hornet_lock_on') === '1';
var v = parseFloat(localStorage.getItem('hornet_lock_sec'));
if (isFinite(v) && v > 0) rgSecVal = v;
rgLockCtl.set(rgSecVal);
rgOnCtl.set(on);
ApplyLock(on ? rgSecVal : 0);
} catch (e) {}
})();
// 从工具读取当前设置(打开面板时同步)
function SyncWfSettings() {
var tools = window.__hornetTools__ || {};
+33
View File
@@ -543,6 +543,39 @@
if (tools.WarSandbox) tools.WarSandbox.SetMarkerSize(v);
});
// ===== 电磁炮(RAILGUN / z4t)设置 =====
// 锁定/蓄力时长实时覆盖 window.__hornetLockSec__(游戏内 z4t.w187() 优先读它),
// 拖动滑块**立即生效**,不需要重打包或刷新页面。
// 实测门槛:1.5s / 2.0s / 原版3~5s = 满伤;1.0s / 0.1s = 无伤害 ⇒ 门槛在 1.0~1.5s。
var rgSec = MakeSettingsSection('电磁炮设置');
var rgSecVal = 1.5;
function ApplyLock(v) { window.__hornetLockSec__ = (v > 0 ? v : undefined); }
function SaveLock(on, v) {
try {
localStorage.setItem('hornet_lock_on', on ? '1' : '0');
localStorage.setItem('hornet_lock_sec', String(v));
} catch (e) {}
}
var rgOnCtl = rgSec.checkbox('启用时长覆盖', function(on) {
ApplyLock(on ? rgSecVal : 0);
SaveLock(on, rgSecVal);
});
var rgLockCtl = rgSec.slider('锁定/蓄力(s)', 0.1, 5.0, 0.05, function(v) { return v.toFixed(2); }, function(v) {
rgSecVal = v;
if (rgOnCtl.get()) ApplyLock(v);
SaveLock(rgOnCtl.get(), v);
});
(function () { // 回填上次保存的配置
try {
var on = localStorage.getItem('hornet_lock_on') === '1';
var v = parseFloat(localStorage.getItem('hornet_lock_sec'));
if (isFinite(v) && v > 0) rgSecVal = v;
rgLockCtl.set(rgSecVal);
rgOnCtl.set(on);
ApplyLock(on ? rgSecVal : 0);
} catch (e) {}
})();
// 从工具读取当前设置(打开面板时同步)
function SyncWfSettings() {
var tools = window.__hornetTools__ || {};