/* =============================================
tools.js — 工具箱页面
============================================= */
// 工具开关状态
const _toolsState = {
infiniteZoom: false,
bloodPatch: false,
autoAccept: false,
createRoom: false,
};
// 段位选项
const RANK_TIERS = ['未设置','铁牌','铜牌','银牌','金牌','铂金','翡翠','钻石','大师','宗师','最强王者'];
const RANK_DIVS = ['未设置','I','II','III','IV'];
// 游戏模式选项
const GAME_MODES = ['未设置','匹配模式','排位单双','排位灵活','极地大乱斗','斗魂竞技场','云顶之弈'];
function renderTools() {
const page = document.getElementById('page-tools');
const tierOpts = RANK_TIERS.map(t => ``).join('');
const divOpts = RANK_DIVS.map(d => ``).join('');
const modeOpts = GAME_MODES.map(m => ``).join('');
page.innerHTML = `
`;
}
async function toggleTool(key) {
_toolsState[key] = !_toolsState[key];
const el = document.getElementById('toggle-' + key);
if (el) el.classList.toggle('on', _toolsState[key]);
const onMsgs = {
infiniteZoom: '✓ 无限视距已开启',
bloodPatch: '✓ 血液补丁已开启',
autoAccept: '✓ 自动接受对局已开启',
createRoom: '✓ 5v5训练营创建成功',
};
const offMsgs = {
infiniteZoom: '无限视距已关闭',
bloodPatch: '血液补丁已关闭',
autoAccept: '自动接受对局已关闭',
createRoom: '房间已解散',
};
try {
await fetch('/api/setTool?key=' + key + '&val=' + (_toolsState[key] ? '1' : '0'));
showToast(_toolsState[key] ? onMsgs[key] : offMsgs[key], _toolsState[key] ? 'ok' : 'err');
} catch(e) {
showToast('操作失败,请检查连接', 'err');
// 回滚状态
_toolsState[key] = !_toolsState[key];
if (el) el.classList.toggle('on', _toolsState[key]);
}
}
async function onRankChange() {
const mode = encodeURIComponent(document.getElementById('rankMode')?.value || '');
const tier = encodeURIComponent(document.getElementById('rankTier')?.value || '');
const div = encodeURIComponent(document.getElementById('rankDiv')?.value || '');
try {
await fetch('/api/setRank?mode=' + mode + '&tier=' + tier + '&div=' + div);
} catch(e) { /* 静默失败 */ }
}