mirror of
https://github.com/Shu-Ying/noname-shuying.git
synced 2026-10-18 13:20:02 +08:00
feat # 新增日志功能
This commit is contained in:
@@ -2,6 +2,7 @@ import { bondDefinitions, getBondCombat, getBondDeck }
|
||||
from "../bonds/definitions.js";
|
||||
import { getBondIntents } from "../bonds/intents.js";
|
||||
import { bondProbability, ensureBonds, selectBond } from "../bonds/state.js";
|
||||
import { getDiagnostics } from "../../diagnostics/index.js";
|
||||
|
||||
export function renderBonds(parent, run, saveRun, onBusy = () => {}) {
|
||||
const bonds = ensureBonds(run);
|
||||
@@ -33,6 +34,8 @@ export function renderBonds(parent, run, saveRun, onBusy = () => {}) {
|
||||
updated.querySelector('button[aria-pressed="true"]')
|
||||
?.focus({ preventScroll: true });
|
||||
} catch (error) {
|
||||
getDiagnostics().scope("mengsan.bonds").error("selection.save.failed", error,
|
||||
{ runId: run.runId, revision: run.revision, bondId: id });
|
||||
selectBond(run, previous);
|
||||
status.textContent = "保存失败,请重试。";
|
||||
console.error("梦三助战选择保存失败", error);
|
||||
|
||||
@@ -1,8 +1,17 @@
|
||||
import { getDiagnostics } from "../../../diagnostics/index.js";
|
||||
|
||||
const lines = [];
|
||||
let pendingWrite = Promise.resolve();
|
||||
|
||||
export function createHandDiagnostics(game, sessionId) {
|
||||
const service = getDiagnostics();
|
||||
const diagnostics = service.scope("mengsan.hand", { sessionId });
|
||||
return (message, error) => {
|
||||
if (service.status().enabled) {
|
||||
if (error) diagnostics.error("hand.failed", error, { message });
|
||||
else diagnostics.info("hand.message", { message });
|
||||
return;
|
||||
}
|
||||
const line = `${new Date().toISOString()} [${sessionId}] ${message}` +
|
||||
(error ? ` ${error.message || error}` : "");
|
||||
console[error ? "warn" : "info"](`梦三手牌 UI:${line}`);
|
||||
|
||||
@@ -5,6 +5,7 @@ import config from "../../config.js";
|
||||
import { getRelic } from "../../relics/definitions.js";
|
||||
import { renderBonds } from "../bonds.js";
|
||||
import { getSelectableNodes } from "../../progression/state.js";
|
||||
import { getDiagnostics } from "../../../diagnostics/index.js";
|
||||
|
||||
// Original vector pictograms; no external image/font requests.
|
||||
const iconPaths = {
|
||||
@@ -186,6 +187,8 @@ export const showMap = (run, { saveRun } = {}) => new Promise(resolve => {
|
||||
if (result === "exit") await openModeSelection();
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
getDiagnostics().scope("mengsan.map").error("map.operation.failed", error,
|
||||
{ runId: run.runId, revision: run.revision });
|
||||
await askMenu("暂时无法返回", "征程未被清除,请重试。", [{ id: "close", name: "关闭提示" }]);
|
||||
} finally { exitButton.disabled = false; }
|
||||
});
|
||||
@@ -324,6 +327,7 @@ export const showMap = (run, { saveRun } = {}) => new Promise(resolve => {
|
||||
try { await openNonameMenu(); }
|
||||
catch (error) {
|
||||
console.error("梦三打开 Noname 菜单失败:", error);
|
||||
getDiagnostics().scope("mengsan.map").error("menu.open.failed", error);
|
||||
await askMenu("暂时无法显示菜单", error.message || "请稍后重试。", [{ id: "close", name: "回到行军图" }]);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { lib, game, ui, _status } from "../../../../noname.js";
|
||||
import { save } from "../../../../noname/util/config.js";
|
||||
import { getDiagnostics } from "../../diagnostics/index.js";
|
||||
|
||||
let selectingMode = false;
|
||||
let nonameMenuTask = null;
|
||||
@@ -50,7 +51,10 @@ export const openNonameMenu = async () => {
|
||||
if (initiallyHidden) {
|
||||
try {
|
||||
if (!container.classList.contains("hidden")) ui.click.configMenu();
|
||||
} catch (closeError) { console.error("Noname 菜单关闭失败:", closeError); }
|
||||
} catch (closeError) {
|
||||
getDiagnostics().scope("mengsan.navigation").error("menu.close.failed", closeError);
|
||||
console.error("Noname 菜单关闭失败:", closeError);
|
||||
}
|
||||
if (wasPaused) game.pause2();
|
||||
else game.resume2();
|
||||
}
|
||||
@@ -170,6 +174,7 @@ export const mountMenu = (overlay, options = {}) => {
|
||||
if (confirmed === "confirm") await openModeSelection();
|
||||
} catch (error) {
|
||||
console.error("梦三菜单操作失败:", error);
|
||||
getDiagnostics().scope("mengsan.navigation").error("menu.operation.failed", error);
|
||||
await askMenu(action === "noname" ? "暂时无法显示菜单" : "暂时无法返回",
|
||||
action === "noname" ? error.message || "请关闭提示后重试。" : "没有清除征程。请关闭提示后重试。",
|
||||
[{ id: "close", name: "回到当前界面" }]);
|
||||
|
||||
Reference in New Issue
Block a user