Compare commits

..

6 Commits

Author SHA1 Message Date
7cd4469f2f chore: 更新依赖 2025-06-21 16:33:36 +08:00
b78b4bf528 chore: 修复 libs/ 的类型引入 2025-06-21 15:45:28 +08:00
fcfa40151b docs: 更新 todo 列表 2025-06-21 15:35:41 +08:00
1522173be3 refactor: 处理循环引用 2025-06-21 15:27:19 +08:00
84d93422f7 feat: 换为新存读档界面 2025-06-21 15:03:06 +08:00
a7cdf2c69b feat: 缩略图组件 2025-06-21 12:05:48 +08:00
35 changed files with 303 additions and 213 deletions

View File

@ -62,7 +62,7 @@
"compressing": "^1.10.1", "compressing": "^1.10.1",
"concurrently": "^9.1.2", "concurrently": "^9.1.2",
"eslint": "^9.22.0", "eslint": "^9.22.0",
"eslint-plugin-prettier": "^5.2.3", "eslint-plugin-prettier": "^5.5.0",
"eslint-plugin-vue": "^9.33.0", "eslint-plugin-vue": "^9.33.0",
"fontmin": "^0.9.9", "fontmin": "^0.9.9",
"form-data": "^4.0.2", "form-data": "^4.0.2",
@ -74,6 +74,7 @@
"markdown-it-mathjax3": "^4.3.2", "markdown-it-mathjax3": "^4.3.2",
"mermaid": "^11.5.0", "mermaid": "^11.5.0",
"postcss-preset-env": "^9.6.0", "postcss-preset-env": "^9.6.0",
"prettier": "^3.5.3",
"rollup": "^3.29.5", "rollup": "^3.29.5",
"terser": "^5.39.0", "terser": "^5.39.0",
"tsx": "^4.19.3", "tsx": "^4.19.3",

View File

@ -2,8 +2,6 @@ import { KeyCode } from '@motajs/client-base';
import { gameKey, HotkeyJSON } from '@motajs/system-action'; import { gameKey, HotkeyJSON } from '@motajs/system-action';
import { hovered, mainUi, tip, openDanmakuPoster } from '@motajs/legacy-ui'; import { hovered, mainUi, tip, openDanmakuPoster } from '@motajs/legacy-ui';
import { GameStorage } from '@motajs/legacy-system'; import { GameStorage } from '@motajs/legacy-system';
import { openStatistics } from '../render/ui/statistics';
import { mainUIController } from '../render';
export const mainScope = Symbol.for('@key_main'); export const mainScope = Symbol.for('@key_main');
@ -487,9 +485,6 @@ gameKey
.realize('book', () => { .realize('book', () => {
core.openBook(true); core.openBook(true);
}) })
.realize('save', () => {
core.save(true);
})
.realize('load', () => { .realize('load', () => {
core.load(true); core.load(true);
}) })
@ -511,9 +506,6 @@ gameKey
.realize('shop', () => { .realize('shop', () => {
core.openQuickShop(true); core.openQuickShop(true);
}) })
.realize('statistics', () => {
openStatistics(mainUIController);
})
.realize('viewMap', () => { .realize('viewMap', () => {
core.ui._drawViewMaps(); core.ui._drawViewMaps();
}) })

View File

@ -17,5 +17,4 @@ export * from './audio';
export * from './fallback'; export * from './fallback';
export * from './loader'; export * from './loader';
export * from './render'; export * from './render';
export * from './utils';
export * from './weather'; export * from './weather';

View File

@ -0,0 +1,13 @@
import { gameKey } from '@motajs/system-action';
import { MAIN_WIDTH, MAIN_HEIGHT } from './shared';
import { saveSave, mainUIController, openStatistics } from './ui';
export function createAction() {
gameKey
.realize('save', () => {
saveSave(mainUIController, [0, 0, MAIN_WIDTH, MAIN_HEIGHT]);
})
.realize('statistics', () => {
openStatistics(mainUIController);
});
}

View File

@ -0,0 +1,55 @@
import {
ElementLocator,
MotaOffscreenCanvas2D,
Sprite
} from '@motajs/render-core';
import { SpriteProps } from '@motajs/render-vue';
import { defineComponent, ref, watch } from 'vue';
export interface ThumbnailProps extends SpriteProps {
loc: ElementLocator;
padStyle: CanvasStyle;
floorId: FloorIds;
map?: Block[];
hero?: HeroStatus;
// configs
damage?: boolean;
all?: boolean;
}
export const Thumbnail = defineComponent<ThumbnailProps>(props => {
const spriteRef = ref<Sprite>();
const update = () => {
spriteRef.value?.update();
};
const drawThumbnail = (canvas: MotaOffscreenCanvas2D) => {
const hero = props.hero;
const options: Partial<DrawThumbnailConfig> = {
damage: props.damage,
ctx: canvas.ctx,
x: 0,
y: 0,
size: 1,
all: props.all,
noHD: false,
v2: true,
inFlyMap: false
};
if (hero) {
options.heroLoc = hero.loc;
options.heroIcon = hero.image;
options.flags = hero.flags;
options.centerX = hero.loc.x;
options.centerY = hero.loc.y;
}
core.drawThumbnail(props.floorId, props.map, options);
};
watch(props, update);
return () => (
<sprite ref={spriteRef} loc={props.loc} render={drawThumbnail} />
);
});

View File

@ -5,12 +5,14 @@ import { createLayer, Layer, LayerGroup } from './layer';
import { createViewport } from './viewport'; import { createViewport } from './viewport';
import { Icon, Winskin } from './misc'; import { Icon, Winskin } from './misc';
import { Animate } from './animate'; import { Animate } from './animate';
import { createItemDetail } from './itemDetail';
export function createElements() { export function createElements() {
createCache(); createCache();
createFrame(); createFrame();
createLayer(); createLayer();
createViewport(); createViewport();
createItemDetail();
// ----- 注册标签 // ----- 注册标签

View File

@ -3,7 +3,11 @@ import { mainSetting } from '@motajs/legacy-ui';
import { hook } from '@user/data-base'; import { hook } from '@user/data-base';
import { ItemState } from '@user/data-state'; import { ItemState } from '@user/data-state';
import { Damage, DamageRenderable, FloorDamageExtends } from './damage'; import { Damage, DamageRenderable, FloorDamageExtends } from './damage';
import { ILayerGroupRenderExtends, LayerGroup, LayerGroupFloorBinder } from '.'; import {
ILayerGroupRenderExtends,
LayerGroup,
LayerGroupFloorBinder
} from './layer';
interface ItemDetailData { interface ItemDetailData {
x: number; x: number;

View File

@ -4,12 +4,12 @@ import { UIController } from '@motajs/system-ui';
import { mainSceneUI } from './ui/main'; import { mainSceneUI } from './ui/main';
import { MAIN_HEIGHT, MAIN_WIDTH } from './shared'; import { MAIN_HEIGHT, MAIN_WIDTH } from './shared';
import { hook } from '@user/data-base'; import { hook } from '@user/data-base';
import { createItemDetail } from './elements/itemDetail';
import { createLoopMap } from './loopMap'; import { createLoopMap } from './loopMap';
import { createGameCanvas } from './legacy/gameCanvas';
import { createElements } from './elements'; import { createElements } from './elements';
import { mainRenderer } from './renderer'; import { mainRenderer } from './renderer';
import { createUI } from './ui'; import { createUI } from './ui';
import { createAction } from './action';
import { createLegacy } from './legacy';
export function createGameRenderer() { export function createGameRenderer() {
const App = defineComponent(_props => { const App = defineComponent(_props => {
@ -38,16 +38,17 @@ export function createGameRenderer() {
} }
export function createRender() { export function createRender() {
createUI();
createGameCanvas();
createItemDetail();
createLoopMap();
createElements(); createElements();
createLegacy();
createUI();
createAction();
createLoopMap();
} }
export * from './components'; export * from './components';
export * from './elements'; export * from './elements';
export * from './ui'; export * from './ui';
export * from './utils';
export * from './renderer'; export * from './renderer';
export * from './shared'; export * from './shared';
export * from './use'; export * from './use';

View File

@ -0,0 +1,7 @@
import { createGameCanvas } from './gameCanvas';
import { createShadow } from './shadow';
export function createLegacy() {
createGameCanvas();
createShadow();
}

View File

@ -1,8 +1,12 @@
import { mat4 } from 'gl-matrix'; import { mat4 } from 'gl-matrix';
import { logger } from '@motajs/common'; import { logger } from '@motajs/common';
import { WebGLColorArray, createProgram, isWebGL2Supported } from './webgl'; import {
WebGLColorArray,
createProgram,
isWebGL2Supported
} from '@motajs/legacy-ui';
import { Sprite } from '@motajs/render'; import { Sprite } from '@motajs/render';
import { ILayerRenderExtends, Layer, HeroRenderer } from '@user/client-modules'; import { ILayerRenderExtends, Layer, HeroRenderer } from '../elements';
/** /**
* *

View File

@ -1,4 +1,4 @@
import { LayerShadowExtends } from '@motajs/legacy-ui'; import { LayerShadowExtends } from '../legacy/shadow';
import { Props, Font } from '@motajs/render'; import { Props, Font } from '@motajs/render';
import { WeatherController } from '../../weather'; import { WeatherController } from '../../weather';
import { defineComponent, onMounted, reactive, ref } from 'vue'; import { defineComponent, onMounted, reactive, ref } from 'vue';

View File

@ -25,9 +25,9 @@ export interface SaveBtnProps extends DefaultProps {
export type SaveEmits = { export type SaveEmits = {
/** 点击存档时触发 */ /** 点击存档时触发 */
emit: (index: number) => void; emit: (index: number, exist: boolean) => void;
/** 删除存档时触发 */ /** 删除存档时触发 */
delete: (index: number) => void; delete: (index: number, exist: boolean) => void;
/** 手动点击退出时触发 */ /** 手动点击退出时触发 */
exit: () => void; exit: () => void;
}; };
@ -289,6 +289,11 @@ export interface SaveValidation {
readonly message: string; readonly message: string;
} }
export type SaveValidationFunction = (
index: number,
exist: boolean
) => SaveValidation;
/** /**
* -2 * -2
* {@link SaveProps} * {@link SaveProps}
@ -312,20 +317,20 @@ export interface SaveValidation {
export function selectSave( export function selectSave(
controller: IUIMountable, controller: IUIMountable,
loc: ElementLocator, loc: ElementLocator,
validate?: (index: number) => SaveValidation, validate?: SaveValidationFunction,
props?: SaveProps props?: SaveProps
) { ) {
return new Promise<number>(res => { return new Promise<number>(res => {
const instance = controller.open(SaveUI, { const instance = controller.open(SaveUI, {
loc, loc,
...props, ...props,
onEmit: (index: number) => { onEmit: (index: number, exist: boolean) => {
if (!validate) { if (!validate) {
controller.close(instance); controller.close(instance);
res(index); res(index);
return; return;
} }
const validation = validate(index); const validation = validate(index, exist);
if (validation.valid) { if (validation.valid) {
controller.close(instance); controller.close(instance);
res(index); res(index);
@ -339,3 +344,37 @@ export function selectSave(
}); });
}); });
} }
export async function saveSave(
controller: IUIMountable,
loc: ElementLocator,
props?: SaveProps
) {
const validate = (index: number): SaveValidation => {
if (index === -1) {
return { message: '不能存档至自动存档!', valid: false };
} else {
return { message: '', valid: true };
}
};
const index = await selectSave(controller, loc, validate, props);
if (index === -2) return;
core.doSL(index, 'save');
}
export async function saveLoad(
controller: IUIMountable,
loc: ElementLocator,
props?: SaveProps
) {
const validate = (_: number, exist: boolean): SaveValidation => {
return { message: '无效的存档!', valid: exist };
};
const index = await selectSave(controller, loc, validate, props);
if (index === -2) return;
if (index === -1) {
core.doSL('autosave', 'load');
} else {
core.doSL(index, 'load');
}
}

View File

@ -17,7 +17,7 @@ import { mainUi } from '@motajs/legacy-ui';
import { gameKey } from '@motajs/system-action'; import { gameKey } from '@motajs/system-action';
import { generateKeyboardEvent } from '@motajs/system-action'; import { generateKeyboardEvent } from '@motajs/system-action';
import { getVitualKeyOnce } from '@motajs/legacy-ui'; import { getVitualKeyOnce } from '@motajs/legacy-ui';
import { getAllSavesData, getSaveData, syncFromServer } from '../../utils'; import { getAllSavesData, getSaveData, syncFromServer } from '../utils';
import { getInput } from '../components/input'; import { getInput } from '../components/input';
import { openStatistics } from './statistics'; import { openStatistics } from './statistics';

View File

@ -21,8 +21,8 @@ import { KeyCode } from '@motajs/client-base';
import { Progress } from '../components/misc'; import { Progress } from '../components/misc';
import { generateBinary } from '@motajs/legacy-common'; import { generateBinary } from '@motajs/legacy-common';
import { SetupComponentOptions } from '@motajs/system-ui'; import { SetupComponentOptions } from '@motajs/system-ui';
import { SaveUI } from './save'; import { saveSave } from './save';
import { mainUIController } from '@user/client-modules'; import { mainUIController } from './controller';
import { MAIN_WIDTH, MAIN_HEIGHT } from '../shared'; import { MAIN_WIDTH, MAIN_HEIGHT } from '../shared';
interface ToolbarProps extends DefaultProps { interface ToolbarProps extends DefaultProps {
@ -87,8 +87,8 @@ export const PlayingToolbar = defineComponent<
const book = () => core.openBook(true); const book = () => core.openBook(true);
const tool = () => core.openToolbox(true); const tool = () => core.openToolbox(true);
const fly = () => core.useFly(true); const fly = () => core.useFly(true);
const save = async () => { const save = () => {
mainUIController.open(SaveUI, { loc: [0, 0, MAIN_WIDTH, MAIN_HEIGHT] }); saveSave(mainUIController, [0, 0, MAIN_WIDTH, MAIN_HEIGHT]);
}; };
const load = () => core.load(true); const load = () => core.load(true);
const equip = () => core.openEquipbox(true); const equip = () => core.openEquipbox(true);

View File

@ -1,5 +1,5 @@
import { compressToBase64, decompressFromBase64 } from 'lz-string'; import { compressToBase64, decompressFromBase64 } from 'lz-string';
import { getConfirm, waitbox } from '../render'; import { getConfirm, waitbox } from '../components';
import { IUIMountable } from '@motajs/system-ui'; import { IUIMountable } from '@motajs/system-ui';
import { SyncSaveFromServerResponse } from '@motajs/client-base'; import { SyncSaveFromServerResponse } from '@motajs/client-base';

View File

@ -1,5 +1,5 @@
import { onUnmounted } from 'vue'; import { onUnmounted } from 'vue';
import { WeatherController } from '../weather'; import { WeatherController } from '../../weather';
let weatherId = 0; let weatherId = 0;

View File

@ -1,3 +1,5 @@
// todo: 2.C
export interface IEnemyInfo {} export interface IEnemyInfo {}
export interface IDamageInfo {} export interface IDamageInfo {}

View File

@ -1,8 +1 @@
import { createShadow } from './shadow';
export function createFx() {
createShadow();
}
export * from './shadow';
export * from './webgl'; export * from './webgl';

View File

@ -1,8 +1,6 @@
import { createFx } from './fx';
import { createPreset } from './preset'; import { createPreset } from './preset';
export function create() { export function create() {
createFx();
createPreset(); createPreset();
} }

View File

@ -10,7 +10,7 @@ importers:
dependencies: dependencies:
'@ant-design/icons-vue': '@ant-design/icons-vue':
specifier: ^6.1.0 specifier: ^6.1.0
version: 6.1.0(vue@3.5.16(typescript@5.8.3)) version: 6.1.0(vue@3.5.17(typescript@5.8.3))
'@wasm-audio-decoders/ogg-vorbis': '@wasm-audio-decoders/ogg-vorbis':
specifier: ^0.1.16 specifier: ^0.1.16
version: 0.1.18 version: 0.1.18
@ -19,7 +19,7 @@ importers:
version: 0.0.0-alpha.0 version: 0.0.0-alpha.0
ant-design-vue: ant-design-vue:
specifier: ^3.2.20 specifier: ^3.2.20
version: 3.2.20(vue@3.5.16(typescript@5.8.3)) version: 3.2.20(vue@3.5.17(typescript@5.8.3))
axios: axios:
specifier: ^1.8.4 specifier: ^1.8.4
version: 1.10.0 version: 1.10.0
@ -55,7 +55,7 @@ importers:
version: 0.7.10 version: 0.7.10
vue: vue:
specifier: ^3.5.13 specifier: ^3.5.13
version: 3.5.16(typescript@5.8.3) version: 3.5.17(typescript@5.8.3)
devDependencies: devDependencies:
'@babel/cli': '@babel/cli':
specifier: ^7.26.4 specifier: ^7.26.4
@ -110,13 +110,13 @@ importers:
version: 8.18.1 version: 8.18.1
'@vitejs/plugin-legacy': '@vitejs/plugin-legacy':
specifier: ^6.0.2 specifier: ^6.0.2
version: 6.1.1(terser@5.43.0)(vite@6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0)(tsx@4.20.3)) version: 6.1.1(terser@5.43.1)(vite@6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1)(tsx@4.20.3))
'@vitejs/plugin-vue': '@vitejs/plugin-vue':
specifier: ^5.2.3 specifier: ^5.2.3
version: 5.2.4(vite@6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0)(tsx@4.20.3))(vue@3.5.16(typescript@5.8.3)) version: 5.2.4(vite@6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1)(tsx@4.20.3))(vue@3.5.17(typescript@5.8.3))
'@vitejs/plugin-vue-jsx': '@vitejs/plugin-vue-jsx':
specifier: ^4.1.2 specifier: ^4.1.2
version: 4.2.0(vite@6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0)(tsx@4.20.3))(vue@3.5.16(typescript@5.8.3)) version: 4.2.0(vite@6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1)(tsx@4.20.3))(vue@3.5.17(typescript@5.8.3))
chokidar: chokidar:
specifier: ^3.6.0 specifier: ^3.6.0
version: 3.6.0 version: 3.6.0
@ -130,8 +130,8 @@ importers:
specifier: ^9.22.0 specifier: ^9.22.0
version: 9.29.0 version: 9.29.0
eslint-plugin-prettier: eslint-plugin-prettier:
specifier: ^5.2.3 specifier: ^5.5.0
version: 5.5.0(eslint-config-prettier@9.1.0(eslint@9.29.0))(eslint@9.29.0)(prettier@3.4.2) version: 5.5.0(eslint-config-prettier@9.1.0(eslint@9.29.0))(eslint@9.29.0)(prettier@3.5.3)
eslint-plugin-vue: eslint-plugin-vue:
specifier: ^9.33.0 specifier: ^9.33.0
version: 9.33.0(eslint@9.29.0) version: 9.33.0(eslint@9.29.0)
@ -161,16 +161,19 @@ importers:
version: 4.3.2(encoding@0.1.13) version: 4.3.2(encoding@0.1.13)
mermaid: mermaid:
specifier: ^11.5.0 specifier: ^11.5.0
version: 11.6.0 version: 11.7.0
postcss-preset-env: postcss-preset-env:
specifier: ^9.6.0 specifier: ^9.6.0
version: 9.6.0(postcss@8.5.3) version: 9.6.0(postcss@8.5.3)
prettier:
specifier: ^3.5.3
version: 3.5.3
rollup: rollup:
specifier: ^3.29.5 specifier: ^3.29.5
version: 3.29.5 version: 3.29.5
terser: terser:
specifier: ^5.39.0 specifier: ^5.39.0
version: 5.43.0 version: 5.43.1
tsx: tsx:
specifier: ^4.19.3 specifier: ^4.19.3
version: 4.20.3 version: 4.20.3
@ -182,19 +185,19 @@ importers:
version: 8.34.1(eslint@9.29.0)(typescript@5.8.3) version: 8.34.1(eslint@9.29.0)(typescript@5.8.3)
unplugin-vue-components: unplugin-vue-components:
specifier: ^0.22.12 specifier: ^0.22.12
version: 0.22.12(@babel/parser@7.27.5)(rollup@3.29.5)(vue@3.5.16(typescript@5.8.3)) version: 0.22.12(@babel/parser@7.27.5)(rollup@3.29.5)(vue@3.5.17(typescript@5.8.3))
vite: vite:
specifier: ^6.2.2 specifier: ^6.2.2
version: 6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0)(tsx@4.20.3) version: 6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1)(tsx@4.20.3)
vite-plugin-dts: vite-plugin-dts:
specifier: ^4.5.4 specifier: ^4.5.4
version: 4.5.4(@types/node@18.19.112)(rollup@3.29.5)(typescript@5.8.3)(vite@6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0)(tsx@4.20.3)) version: 4.5.4(@types/node@18.19.112)(rollup@3.29.5)(typescript@5.8.3)(vite@6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1)(tsx@4.20.3))
vitepress: vitepress:
specifier: ^1.6.3 specifier: ^1.6.3
version: 1.6.3(@algolia/client-search@5.21.0)(@types/node@18.19.112)(async-validator@4.2.5)(axios@1.10.0)(less@4.3.0)(markdown-it-mathjax3@4.3.2(encoding@0.1.13))(postcss@8.5.3)(search-insights@2.17.3)(terser@5.43.0)(typescript@5.8.3) version: 1.6.3(@algolia/client-search@5.21.0)(@types/node@18.19.112)(async-validator@4.2.5)(axios@1.10.0)(less@4.3.0)(markdown-it-mathjax3@4.3.2(encoding@0.1.13))(postcss@8.5.3)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3)
vitepress-plugin-mermaid: vitepress-plugin-mermaid:
specifier: ^2.0.17 specifier: ^2.0.17
version: 2.0.17(mermaid@11.6.0)(vitepress@1.6.3(@algolia/client-search@5.21.0)(@types/node@18.19.112)(async-validator@4.2.5)(axios@1.10.0)(less@4.3.0)(markdown-it-mathjax3@4.3.2(encoding@0.1.13))(postcss@8.5.3)(search-insights@2.17.3)(terser@5.43.0)(typescript@5.8.3)) version: 2.0.17(mermaid@11.7.0)(vitepress@1.6.3(@algolia/client-search@5.21.0)(@types/node@18.19.112)(async-validator@4.2.5)(axios@1.10.0)(less@4.3.0)(markdown-it-mathjax3@4.3.2(encoding@0.1.13))(postcss@8.5.3)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3))
vue-tsc: vue-tsc:
specifier: ^2.2.8 specifier: ^2.2.8
version: 2.2.10(typescript@5.8.3) version: 2.2.10(typescript@5.8.3)
@ -458,7 +461,7 @@ importers:
version: 1.4.2 version: 1.4.2
vue: vue:
specifier: ^3.5.13 specifier: ^3.5.13
version: 3.5.16(typescript@5.8.3) version: 3.5.17(typescript@5.8.3)
packages/render-core: packages/render-core:
dependencies: dependencies:
@ -1892,8 +1895,8 @@ packages:
'@mermaid-js/mermaid-mindmap@9.3.0': '@mermaid-js/mermaid-mindmap@9.3.0':
resolution: {integrity: sha512-IhtYSVBBRYviH1Ehu8gk69pMDF8DSRqXBRDMWrEfHoaMruHeaP2DXA3PBnuwsMaCdPQhlUUcy/7DBLAEIXvCAw==} resolution: {integrity: sha512-IhtYSVBBRYviH1Ehu8gk69pMDF8DSRqXBRDMWrEfHoaMruHeaP2DXA3PBnuwsMaCdPQhlUUcy/7DBLAEIXvCAw==}
'@mermaid-js/parser@0.4.0': '@mermaid-js/parser@0.5.0':
resolution: {integrity: sha512-wla8XOWvQAwuqy+gxiZqY+c7FokraOTHRWMsbB4AgRx9Sy7zKslNyejy7E+a77qHfey5GXw/ik3IXv/NHMJgaA==} resolution: {integrity: sha512-AiaN7+VjXC+3BYE+GwNezkpjIcCI2qIMB/K4S2/vMWe0q/XJCBbx5+K7iteuz7VyltX9iAK4FmVTvGc9kjOV4w==}
'@microsoft/api-extractor-model@7.30.6': '@microsoft/api-extractor-model@7.30.6':
resolution: {integrity: sha512-znmFn69wf/AIrwHya3fxX6uB5etSIn6vg4Q4RB/tb5VDDs1rqREc+AvMC/p19MUN13CZ7+V/8pkYPTj7q8tftg==} resolution: {integrity: sha512-znmFn69wf/AIrwHya3fxX6uB5etSIn6vg4Q4RB/tb5VDDs1rqREc+AvMC/p19MUN13CZ7+V/8pkYPTj7q8tftg==}
@ -2492,20 +2495,20 @@ packages:
'@vue/compiler-core@3.5.14': '@vue/compiler-core@3.5.14':
resolution: {integrity: sha512-k7qMHMbKvoCXIxPhquKQVw3Twid3Kg4s7+oYURxLGRd56LiuHJVrvFKI4fm2AM3c8apqODPfVJGoh8nePbXMRA==} resolution: {integrity: sha512-k7qMHMbKvoCXIxPhquKQVw3Twid3Kg4s7+oYURxLGRd56LiuHJVrvFKI4fm2AM3c8apqODPfVJGoh8nePbXMRA==}
'@vue/compiler-core@3.5.16': '@vue/compiler-core@3.5.17':
resolution: {integrity: sha512-AOQS2eaQOaaZQoL1u+2rCJIKDruNXVBZSiUD3chnUrsoX5ZTQMaCvXlWNIfxBJuU15r1o7+mpo5223KVtIhAgQ==} resolution: {integrity: sha512-Xe+AittLbAyV0pabcN7cP7/BenRBNcteM4aSDCtRvGw0d9OL+HG1u/XHLY/kt1q4fyMeZYXyIYrsHuPSiDPosA==}
'@vue/compiler-dom@3.5.14': '@vue/compiler-dom@3.5.14':
resolution: {integrity: sha512-1aOCSqxGOea5I80U2hQJvXYpPm/aXo95xL/m/mMhgyPUsKe9jhjwWpziNAw7tYRnbz1I61rd9Mld4W9KmmRoug==} resolution: {integrity: sha512-1aOCSqxGOea5I80U2hQJvXYpPm/aXo95xL/m/mMhgyPUsKe9jhjwWpziNAw7tYRnbz1I61rd9Mld4W9KmmRoug==}
'@vue/compiler-dom@3.5.16': '@vue/compiler-dom@3.5.17':
resolution: {integrity: sha512-SSJIhBr/teipXiXjmWOVWLnxjNGo65Oj/8wTEQz0nqwQeP75jWZ0n4sF24Zxoht1cuJoWopwj0J0exYwCJ0dCQ==} resolution: {integrity: sha512-+2UgfLKoaNLhgfhV5Ihnk6wB4ljyW1/7wUIog2puUqajiC29Lp5R/IKDdkebh9jTbTogTbsgB+OY9cEWzG95JQ==}
'@vue/compiler-sfc@3.5.16': '@vue/compiler-sfc@3.5.17':
resolution: {integrity: sha512-rQR6VSFNpiinDy/DVUE0vHoIDUF++6p910cgcZoaAUm3POxgNOOdS/xgoll3rNdKYTYPnnbARDCZOyZ+QSe6Pw==} resolution: {integrity: sha512-rQQxbRJMgTqwRugtjw0cnyQv9cP4/4BxWfTdRBkqsTfLOHWykLzbOc3C4GGzAmdMDxhzU/1Ija5bTjMVrddqww==}
'@vue/compiler-ssr@3.5.16': '@vue/compiler-ssr@3.5.17':
resolution: {integrity: sha512-d2V7kfxbdsjrDSGlJE7my1ZzCXViEcqN6w14DOsDrUCHEA6vbnVCpRFfrc4ryCP/lCKzX2eS1YtnLE/BuC9f/A==} resolution: {integrity: sha512-hkDbA0Q20ZzGgpj5uZjb9rBzQtIHLS78mMilwrlpWk2Ep37DYntUz0PonQ6kr113vfOEdM+zTBuJDaceNIW0tQ==}
'@vue/compiler-vue2@2.7.16': '@vue/compiler-vue2@2.7.16':
resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==}
@ -2535,19 +2538,19 @@ packages:
typescript: typescript:
optional: true optional: true
'@vue/reactivity@3.5.16': '@vue/reactivity@3.5.17':
resolution: {integrity: sha512-FG5Q5ee/kxhIm1p2bykPpPwqiUBV3kFySsHEQha5BJvjXdZTUfmya7wP7zC39dFuZAcf/PD5S4Lni55vGLMhvA==} resolution: {integrity: sha512-l/rmw2STIscWi7SNJp708FK4Kofs97zc/5aEPQh4bOsReD/8ICuBcEmS7KGwDj5ODQLYWVN2lNibKJL1z5b+Lw==}
'@vue/runtime-core@3.5.16': '@vue/runtime-core@3.5.17':
resolution: {integrity: sha512-bw5Ykq6+JFHYxrQa7Tjr+VSzw7Dj4ldR/udyBZbq73fCdJmyy5MPIFR9IX/M5Qs+TtTjuyUTCnmK3lWWwpAcFQ==} resolution: {integrity: sha512-QQLXa20dHg1R0ri4bjKeGFKEkJA7MMBxrKo2G+gJikmumRS7PTD4BOU9FKrDQWMKowz7frJJGqBffYMgQYS96Q==}
'@vue/runtime-dom@3.5.16': '@vue/runtime-dom@3.5.17':
resolution: {integrity: sha512-T1qqYJsG2xMGhImRUV9y/RseB9d0eCYZQ4CWca9ztCuiPj/XWNNN+lkNBuzVbia5z4/cgxdL28NoQCvC0Xcfww==} resolution: {integrity: sha512-8El0M60TcwZ1QMz4/os2MdlQECgGoVHPuLnQBU3m9h3gdNRW9xRmI8iLS4t/22OQlOE6aJvNNlBiCzPHur4H9g==}
'@vue/server-renderer@3.5.16': '@vue/server-renderer@3.5.17':
resolution: {integrity: sha512-BrX0qLiv/WugguGsnQUJiYOE0Fe5mZTwi6b7X/ybGB0vfrPH9z0gD/Y6WOR1sGCgX4gc25L1RYS5eYQKDMoNIg==} resolution: {integrity: sha512-BOHhm8HalujY6lmC3DbqF6uXN/K00uWiEeF22LfEsm9Q93XeJ/plHTepGwf6tqFcF7GA5oGSSAAUock3VvzaCA==}
peerDependencies: peerDependencies:
vue: 3.5.16 vue: 3.5.17
'@vue/shared@3.5.13': '@vue/shared@3.5.13':
resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==}
@ -2555,8 +2558,8 @@ packages:
'@vue/shared@3.5.14': '@vue/shared@3.5.14':
resolution: {integrity: sha512-oXTwNxVfc9EtP1zzXAlSlgARLXNC84frFYkS0HHz0h3E4WZSP9sywqjqzGCP9Y34M8ipNmd380pVgmMuwELDyQ==} resolution: {integrity: sha512-oXTwNxVfc9EtP1zzXAlSlgARLXNC84frFYkS0HHz0h3E4WZSP9sywqjqzGCP9Y34M8ipNmd380pVgmMuwELDyQ==}
'@vue/shared@3.5.16': '@vue/shared@3.5.17':
resolution: {integrity: sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==} resolution: {integrity: sha512-CabR+UN630VnsJO/jHWYBC1YVXyMq94KKp6iF5MQgZJs5I8cmjw6oVMO1oDbtBkENSHSSn/UadWlW/OAgdmKrg==}
'@vueuse/core@12.8.2': '@vueuse/core@12.8.2':
resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==} resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==}
@ -3432,8 +3435,8 @@ packages:
resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
engines: {node: '>= 4'} engines: {node: '>= 4'}
dompurify@3.2.4: dompurify@3.2.6:
resolution: {integrity: sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==} resolution: {integrity: sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==}
domutils@2.8.0: domutils@2.8.0:
resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
@ -4370,8 +4373,8 @@ packages:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'} engines: {node: '>= 8'}
mermaid@11.6.0: mermaid@11.7.0:
resolution: {integrity: sha512-PE8hGUy1LDlWIHWBP05SFdqUHGmRcCcK4IzpOKPE35eOw+G9zZgcnMpyunJVUEOgb//KBORPjysKndw8bFLuRg==} resolution: {integrity: sha512-/1/5R0rt0Z1Ak0CuznAnCF3HtQgayRXUz6SguzOwN4L+DuCobz0UxnQ+ZdTSZ3AugKVVh78tiVmsHpHWV25TCw==}
mhchemparser@4.2.1: mhchemparser@4.2.1:
resolution: {integrity: sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==} resolution: {integrity: sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==}
@ -4941,8 +4944,8 @@ packages:
resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
engines: {node: '>=6.0.0'} engines: {node: '>=6.0.0'}
prettier@3.4.2: prettier@3.5.3:
resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==}
engines: {node: '>=14'} engines: {node: '>=14'}
hasBin: true hasBin: true
@ -5432,8 +5435,8 @@ packages:
resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
engines: {node: '>=10'} engines: {node: '>=10'}
terser@5.43.0: terser@5.43.1:
resolution: {integrity: sha512-CqNNxKSGKSZCunSvwKLTs8u8sGGlp27sxNZ4quGh0QeNuyHM0JSEM/clM9Mf4zUp6J+tO2gUXhgXT2YMMkwfKQ==} resolution: {integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==}
engines: {node: '>=10'} engines: {node: '>=10'}
hasBin: true hasBin: true
@ -5810,8 +5813,8 @@ packages:
peerDependencies: peerDependencies:
vue: ^3.0.0 vue: ^3.0.0
vue@3.5.16: vue@3.5.17:
resolution: {integrity: sha512-rjOV2ecxMd5SiAmof2xzh2WxntRcigkX/He4YFJ6WdRvVUrbt6DxC1Iujh10XLl8xCDRDtGKMeO3D+pRQ1PP9w==} resolution: {integrity: sha512-LbHV3xPN9BeljML+Xctq4lbz2lVHCR6DtbpTf5XIO6gugpXUN49j2QQPcMj086r9+AkJ0FfUT8xjulKKBkkr9g==}
peerDependencies: peerDependencies:
typescript: '*' typescript: '*'
peerDependenciesMeta: peerDependenciesMeta:
@ -6041,11 +6044,11 @@ snapshots:
'@ant-design/icons-svg@4.4.2': {} '@ant-design/icons-svg@4.4.2': {}
'@ant-design/icons-vue@6.1.0(vue@3.5.16(typescript@5.8.3))': '@ant-design/icons-vue@6.1.0(vue@3.5.17(typescript@5.8.3))':
dependencies: dependencies:
'@ant-design/colors': 6.0.0 '@ant-design/colors': 6.0.0
'@ant-design/icons-svg': 4.4.2 '@ant-design/icons-svg': 4.4.2
vue: 3.5.16(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3)
'@antfu/install-pkg@1.0.0': '@antfu/install-pkg@1.0.0':
dependencies: dependencies:
@ -7374,7 +7377,7 @@ snapshots:
non-layered-tidy-tree-layout: 2.0.2 non-layered-tidy-tree-layout: 2.0.2
optional: true optional: true
'@mermaid-js/parser@0.4.0': '@mermaid-js/parser@0.5.0':
dependencies: dependencies:
langium: 3.3.1 langium: 3.3.1
@ -7491,7 +7494,7 @@ snapshots:
dependencies: dependencies:
serialize-javascript: 6.0.2 serialize-javascript: 6.0.2
smob: 1.5.0 smob: 1.5.0
terser: 5.43.0 terser: 5.43.1
optionalDependencies: optionalDependencies:
rollup: 3.29.5 rollup: 3.29.5
@ -7978,7 +7981,7 @@ snapshots:
'@ungap/structured-clone@1.3.0': {} '@ungap/structured-clone@1.3.0': {}
'@vitejs/plugin-legacy@6.1.1(terser@5.43.0)(vite@6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0)(tsx@4.20.3))': '@vitejs/plugin-legacy@6.1.1(terser@5.43.1)(vite@6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1)(tsx@4.20.3))':
dependencies: dependencies:
'@babel/core': 7.27.4 '@babel/core': 7.27.4
'@babel/preset-env': 7.27.2(@babel/core@7.27.4) '@babel/preset-env': 7.27.2(@babel/core@7.27.4)
@ -7988,31 +7991,31 @@ snapshots:
magic-string: 0.30.17 magic-string: 0.30.17
regenerator-runtime: 0.14.1 regenerator-runtime: 0.14.1
systemjs: 6.15.1 systemjs: 6.15.1
terser: 5.43.0 terser: 5.43.1
vite: 6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0)(tsx@4.20.3) vite: 6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1)(tsx@4.20.3)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@vitejs/plugin-vue-jsx@4.2.0(vite@6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0)(tsx@4.20.3))(vue@3.5.16(typescript@5.8.3))': '@vitejs/plugin-vue-jsx@4.2.0(vite@6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1)(tsx@4.20.3))(vue@3.5.17(typescript@5.8.3))':
dependencies: dependencies:
'@babel/core': 7.27.4 '@babel/core': 7.27.4
'@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.4)
'@rolldown/pluginutils': 1.0.0-beta.9 '@rolldown/pluginutils': 1.0.0-beta.9
'@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.27.4) '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.27.4)
vite: 6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0)(tsx@4.20.3) vite: 6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1)(tsx@4.20.3)
vue: 3.5.16(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0))(vue@3.5.16(typescript@5.8.3))': '@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1))(vue@3.5.17(typescript@5.8.3))':
dependencies: dependencies:
vite: 5.4.19(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0) vite: 5.4.19(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1)
vue: 3.5.16(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3)
'@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0)(tsx@4.20.3))(vue@3.5.16(typescript@5.8.3))': '@vitejs/plugin-vue@5.2.4(vite@6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1)(tsx@4.20.3))(vue@3.5.17(typescript@5.8.3))':
dependencies: dependencies:
vite: 6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0)(tsx@4.20.3) vite: 6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1)(tsx@4.20.3)
vue: 3.5.16(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3)
'@volar/language-core@2.4.12': '@volar/language-core@2.4.12':
dependencies: dependencies:
@ -8057,7 +8060,7 @@ snapshots:
'@babel/helper-module-imports': 7.25.9 '@babel/helper-module-imports': 7.25.9
'@babel/helper-plugin-utils': 7.27.1 '@babel/helper-plugin-utils': 7.27.1
'@babel/parser': 7.27.5 '@babel/parser': 7.27.5
'@vue/compiler-sfc': 3.5.16 '@vue/compiler-sfc': 3.5.17
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -8069,10 +8072,10 @@ snapshots:
estree-walker: 2.0.2 estree-walker: 2.0.2
source-map-js: 1.2.1 source-map-js: 1.2.1
'@vue/compiler-core@3.5.16': '@vue/compiler-core@3.5.17':
dependencies: dependencies:
'@babel/parser': 7.27.5 '@babel/parser': 7.27.5
'@vue/shared': 3.5.16 '@vue/shared': 3.5.17
entities: 4.5.0 entities: 4.5.0
estree-walker: 2.0.2 estree-walker: 2.0.2
source-map-js: 1.2.1 source-map-js: 1.2.1
@ -8082,27 +8085,27 @@ snapshots:
'@vue/compiler-core': 3.5.14 '@vue/compiler-core': 3.5.14
'@vue/shared': 3.5.14 '@vue/shared': 3.5.14
'@vue/compiler-dom@3.5.16': '@vue/compiler-dom@3.5.17':
dependencies: dependencies:
'@vue/compiler-core': 3.5.16 '@vue/compiler-core': 3.5.17
'@vue/shared': 3.5.16 '@vue/shared': 3.5.17
'@vue/compiler-sfc@3.5.16': '@vue/compiler-sfc@3.5.17':
dependencies: dependencies:
'@babel/parser': 7.27.5 '@babel/parser': 7.27.5
'@vue/compiler-core': 3.5.16 '@vue/compiler-core': 3.5.17
'@vue/compiler-dom': 3.5.16 '@vue/compiler-dom': 3.5.17
'@vue/compiler-ssr': 3.5.16 '@vue/compiler-ssr': 3.5.17
'@vue/shared': 3.5.16 '@vue/shared': 3.5.17
estree-walker: 2.0.2 estree-walker: 2.0.2
magic-string: 0.30.17 magic-string: 0.30.17
postcss: 8.5.6 postcss: 8.5.6
source-map-js: 1.2.1 source-map-js: 1.2.1
'@vue/compiler-ssr@3.5.16': '@vue/compiler-ssr@3.5.17':
dependencies: dependencies:
'@vue/compiler-dom': 3.5.16 '@vue/compiler-dom': 3.5.17
'@vue/shared': 3.5.16 '@vue/shared': 3.5.17
'@vue/compiler-vue2@2.7.16': '@vue/compiler-vue2@2.7.16':
dependencies: dependencies:
@ -8153,40 +8156,40 @@ snapshots:
optionalDependencies: optionalDependencies:
typescript: 5.8.3 typescript: 5.8.3
'@vue/reactivity@3.5.16': '@vue/reactivity@3.5.17':
dependencies: dependencies:
'@vue/shared': 3.5.16 '@vue/shared': 3.5.17
'@vue/runtime-core@3.5.16': '@vue/runtime-core@3.5.17':
dependencies: dependencies:
'@vue/reactivity': 3.5.16 '@vue/reactivity': 3.5.17
'@vue/shared': 3.5.16 '@vue/shared': 3.5.17
'@vue/runtime-dom@3.5.16': '@vue/runtime-dom@3.5.17':
dependencies: dependencies:
'@vue/reactivity': 3.5.16 '@vue/reactivity': 3.5.17
'@vue/runtime-core': 3.5.16 '@vue/runtime-core': 3.5.17
'@vue/shared': 3.5.16 '@vue/shared': 3.5.17
csstype: 3.1.3 csstype: 3.1.3
'@vue/server-renderer@3.5.16(vue@3.5.16(typescript@5.8.3))': '@vue/server-renderer@3.5.17(vue@3.5.17(typescript@5.8.3))':
dependencies: dependencies:
'@vue/compiler-ssr': 3.5.16 '@vue/compiler-ssr': 3.5.17
'@vue/shared': 3.5.16 '@vue/shared': 3.5.17
vue: 3.5.16(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3)
'@vue/shared@3.5.13': {} '@vue/shared@3.5.13': {}
'@vue/shared@3.5.14': {} '@vue/shared@3.5.14': {}
'@vue/shared@3.5.16': {} '@vue/shared@3.5.17': {}
'@vueuse/core@12.8.2(typescript@5.8.3)': '@vueuse/core@12.8.2(typescript@5.8.3)':
dependencies: dependencies:
'@types/web-bluetooth': 0.0.21 '@types/web-bluetooth': 0.0.21
'@vueuse/metadata': 12.8.2 '@vueuse/metadata': 12.8.2
'@vueuse/shared': 12.8.2(typescript@5.8.3) '@vueuse/shared': 12.8.2(typescript@5.8.3)
vue: 3.5.16(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3)
transitivePeerDependencies: transitivePeerDependencies:
- typescript - typescript
@ -8194,7 +8197,7 @@ snapshots:
dependencies: dependencies:
'@vueuse/core': 12.8.2(typescript@5.8.3) '@vueuse/core': 12.8.2(typescript@5.8.3)
'@vueuse/shared': 12.8.2(typescript@5.8.3) '@vueuse/shared': 12.8.2(typescript@5.8.3)
vue: 3.5.16(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3)
optionalDependencies: optionalDependencies:
async-validator: 4.2.5 async-validator: 4.2.5
axios: 1.10.0 axios: 1.10.0
@ -8206,7 +8209,7 @@ snapshots:
'@vueuse/shared@12.8.2(typescript@5.8.3)': '@vueuse/shared@12.8.2(typescript@5.8.3)':
dependencies: dependencies:
vue: 3.5.16(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3)
transitivePeerDependencies: transitivePeerDependencies:
- typescript - typescript
@ -8320,10 +8323,10 @@ snapshots:
ansi-styles@6.2.1: {} ansi-styles@6.2.1: {}
ant-design-vue@3.2.20(vue@3.5.16(typescript@5.8.3)): ant-design-vue@3.2.20(vue@3.5.17(typescript@5.8.3)):
dependencies: dependencies:
'@ant-design/colors': 6.0.0 '@ant-design/colors': 6.0.0
'@ant-design/icons-vue': 6.1.0(vue@3.5.16(typescript@5.8.3)) '@ant-design/icons-vue': 6.1.0(vue@3.5.17(typescript@5.8.3))
'@babel/runtime': 7.26.10 '@babel/runtime': 7.26.10
'@ctrl/tinycolor': 3.6.1 '@ctrl/tinycolor': 3.6.1
'@simonwep/pickr': 1.8.2 '@simonwep/pickr': 1.8.2
@ -8337,8 +8340,8 @@ snapshots:
resize-observer-polyfill: 1.5.1 resize-observer-polyfill: 1.5.1
scroll-into-view-if-needed: 2.2.31 scroll-into-view-if-needed: 2.2.31
shallow-equal: 1.2.1 shallow-equal: 1.2.1
vue: 3.5.16(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3)
vue-types: 3.0.2(vue@3.5.16(typescript@5.8.3)) vue-types: 3.0.2(vue@3.5.17(typescript@5.8.3))
warning: 4.0.3 warning: 4.0.3
any-promise@1.3.0: {} any-promise@1.3.0: {}
@ -9090,7 +9093,7 @@ snapshots:
detective-vue2@2.2.0(typescript@5.8.3): detective-vue2@2.2.0(typescript@5.8.3):
dependencies: dependencies:
'@dependents/detective-less': 5.0.1 '@dependents/detective-less': 5.0.1
'@vue/compiler-sfc': 3.5.16 '@vue/compiler-sfc': 3.5.17
detective-es6: 5.0.1 detective-es6: 5.0.1
detective-sass: 6.0.1 detective-sass: 6.0.1
detective-scss: 5.0.1 detective-scss: 5.0.1
@ -9124,7 +9127,7 @@ snapshots:
dependencies: dependencies:
domelementtype: 2.3.0 domelementtype: 2.3.0
dompurify@3.2.4: dompurify@3.2.6:
optionalDependencies: optionalDependencies:
'@types/trusted-types': 2.0.7 '@types/trusted-types': 2.0.7
@ -9280,10 +9283,10 @@ snapshots:
eslint: 9.29.0 eslint: 9.29.0
optional: true optional: true
eslint-plugin-prettier@5.5.0(eslint-config-prettier@9.1.0(eslint@9.29.0))(eslint@9.29.0)(prettier@3.4.2): eslint-plugin-prettier@5.5.0(eslint-config-prettier@9.1.0(eslint@9.29.0))(eslint@9.29.0)(prettier@3.5.3):
dependencies: dependencies:
eslint: 9.29.0 eslint: 9.29.0
prettier: 3.4.2 prettier: 3.5.3
prettier-linter-helpers: 1.0.0 prettier-linter-helpers: 1.0.0
synckit: 0.11.8 synckit: 0.11.8
optionalDependencies: optionalDependencies:
@ -10168,11 +10171,11 @@ snapshots:
merge2@1.4.1: {} merge2@1.4.1: {}
mermaid@11.6.0: mermaid@11.7.0:
dependencies: dependencies:
'@braintree/sanitize-url': 7.1.1 '@braintree/sanitize-url': 7.1.1
'@iconify/utils': 2.3.0 '@iconify/utils': 2.3.0
'@mermaid-js/parser': 0.4.0 '@mermaid-js/parser': 0.5.0
'@types/d3': 7.4.3 '@types/d3': 7.4.3
cytoscape: 3.31.1 cytoscape: 3.31.1
cytoscape-cose-bilkent: 4.1.0(cytoscape@3.31.1) cytoscape-cose-bilkent: 4.1.0(cytoscape@3.31.1)
@ -10181,7 +10184,7 @@ snapshots:
d3-sankey: 0.12.3 d3-sankey: 0.12.3
dagre-d3-es: 7.0.11 dagre-d3-es: 7.0.11
dayjs: 1.11.13 dayjs: 1.11.13
dompurify: 3.2.4 dompurify: 3.2.6
katex: 0.16.21 katex: 0.16.21
khroma: 2.1.0 khroma: 2.1.0
lodash-es: 4.17.21 lodash-es: 4.17.21
@ -10838,7 +10841,7 @@ snapshots:
dependencies: dependencies:
fast-diff: 1.3.0 fast-diff: 1.3.0
prettier@3.4.2: {} prettier@3.5.3: {}
pretty-ms@7.0.1: pretty-ms@7.0.1:
dependencies: dependencies:
@ -11332,7 +11335,7 @@ snapshots:
mkdirp: 1.0.4 mkdirp: 1.0.4
yallist: 4.0.0 yallist: 4.0.0
terser@5.43.0: terser@5.43.1:
dependencies: dependencies:
'@jridgewell/source-map': 0.3.6 '@jridgewell/source-map': 0.3.6
acorn: 8.14.1 acorn: 8.14.1
@ -11502,7 +11505,7 @@ snapshots:
universalify@2.0.1: {} universalify@2.0.1: {}
unplugin-vue-components@0.22.12(@babel/parser@7.27.5)(rollup@3.29.5)(vue@3.5.16(typescript@5.8.3)): unplugin-vue-components@0.22.12(@babel/parser@7.27.5)(rollup@3.29.5)(vue@3.5.17(typescript@5.8.3)):
dependencies: dependencies:
'@antfu/utils': 0.7.10 '@antfu/utils': 0.7.10
'@rollup/pluginutils': 5.1.4(rollup@3.29.5) '@rollup/pluginutils': 5.1.4(rollup@3.29.5)
@ -11514,7 +11517,7 @@ snapshots:
minimatch: 5.1.6 minimatch: 5.1.6
resolve: 1.22.10 resolve: 1.22.10
unplugin: 1.16.1 unplugin: 1.16.1
vue: 3.5.16(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3)
optionalDependencies: optionalDependencies:
'@babel/parser': 7.27.5 '@babel/parser': 7.27.5
transitivePeerDependencies: transitivePeerDependencies:
@ -11612,7 +11615,7 @@ snapshots:
remove-trailing-separator: 1.1.0 remove-trailing-separator: 1.1.0
replace-ext: 1.0.1 replace-ext: 1.0.1
vite-plugin-dts@4.5.4(@types/node@18.19.112)(rollup@3.29.5)(typescript@5.8.3)(vite@6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0)(tsx@4.20.3)): vite-plugin-dts@4.5.4(@types/node@18.19.112)(rollup@3.29.5)(typescript@5.8.3)(vite@6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1)(tsx@4.20.3)):
dependencies: dependencies:
'@microsoft/api-extractor': 7.52.8(@types/node@18.19.112) '@microsoft/api-extractor': 7.52.8(@types/node@18.19.112)
'@rollup/pluginutils': 5.1.4(rollup@3.29.5) '@rollup/pluginutils': 5.1.4(rollup@3.29.5)
@ -11625,13 +11628,13 @@ snapshots:
magic-string: 0.30.17 magic-string: 0.30.17
typescript: 5.8.3 typescript: 5.8.3
optionalDependencies: optionalDependencies:
vite: 6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0)(tsx@4.20.3) vite: 6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1)(tsx@4.20.3)
transitivePeerDependencies: transitivePeerDependencies:
- '@types/node' - '@types/node'
- rollup - rollup
- supports-color - supports-color
vite@5.4.19(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0): vite@5.4.19(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1):
dependencies: dependencies:
esbuild: 0.21.5 esbuild: 0.21.5
postcss: 8.5.3 postcss: 8.5.3
@ -11640,9 +11643,9 @@ snapshots:
'@types/node': 18.19.112 '@types/node': 18.19.112
fsevents: 2.3.3 fsevents: 2.3.3
less: 4.3.0 less: 4.3.0
terser: 5.43.0 terser: 5.43.1
vite@6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0)(tsx@4.20.3): vite@6.3.5(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1)(tsx@4.20.3):
dependencies: dependencies:
esbuild: 0.25.1 esbuild: 0.25.1
fdir: 6.4.4(picomatch@4.0.2) fdir: 6.4.4(picomatch@4.0.2)
@ -11654,17 +11657,17 @@ snapshots:
'@types/node': 18.19.112 '@types/node': 18.19.112
fsevents: 2.3.3 fsevents: 2.3.3
less: 4.3.0 less: 4.3.0
terser: 5.43.0 terser: 5.43.1
tsx: 4.20.3 tsx: 4.20.3
vitepress-plugin-mermaid@2.0.17(mermaid@11.6.0)(vitepress@1.6.3(@algolia/client-search@5.21.0)(@types/node@18.19.112)(async-validator@4.2.5)(axios@1.10.0)(less@4.3.0)(markdown-it-mathjax3@4.3.2(encoding@0.1.13))(postcss@8.5.3)(search-insights@2.17.3)(terser@5.43.0)(typescript@5.8.3)): vitepress-plugin-mermaid@2.0.17(mermaid@11.7.0)(vitepress@1.6.3(@algolia/client-search@5.21.0)(@types/node@18.19.112)(async-validator@4.2.5)(axios@1.10.0)(less@4.3.0)(markdown-it-mathjax3@4.3.2(encoding@0.1.13))(postcss@8.5.3)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3)):
dependencies: dependencies:
mermaid: 11.6.0 mermaid: 11.7.0
vitepress: 1.6.3(@algolia/client-search@5.21.0)(@types/node@18.19.112)(async-validator@4.2.5)(axios@1.10.0)(less@4.3.0)(markdown-it-mathjax3@4.3.2(encoding@0.1.13))(postcss@8.5.3)(search-insights@2.17.3)(terser@5.43.0)(typescript@5.8.3) vitepress: 1.6.3(@algolia/client-search@5.21.0)(@types/node@18.19.112)(async-validator@4.2.5)(axios@1.10.0)(less@4.3.0)(markdown-it-mathjax3@4.3.2(encoding@0.1.13))(postcss@8.5.3)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3)
optionalDependencies: optionalDependencies:
'@mermaid-js/mermaid-mindmap': 9.3.0 '@mermaid-js/mermaid-mindmap': 9.3.0
vitepress@1.6.3(@algolia/client-search@5.21.0)(@types/node@18.19.112)(async-validator@4.2.5)(axios@1.10.0)(less@4.3.0)(markdown-it-mathjax3@4.3.2(encoding@0.1.13))(postcss@8.5.3)(search-insights@2.17.3)(terser@5.43.0)(typescript@5.8.3): vitepress@1.6.3(@algolia/client-search@5.21.0)(@types/node@18.19.112)(async-validator@4.2.5)(axios@1.10.0)(less@4.3.0)(markdown-it-mathjax3@4.3.2(encoding@0.1.13))(postcss@8.5.3)(search-insights@2.17.3)(terser@5.43.1)(typescript@5.8.3):
dependencies: dependencies:
'@docsearch/css': 3.8.2 '@docsearch/css': 3.8.2
'@docsearch/js': 3.8.2(@algolia/client-search@5.21.0)(search-insights@2.17.3) '@docsearch/js': 3.8.2(@algolia/client-search@5.21.0)(search-insights@2.17.3)
@ -11673,7 +11676,7 @@ snapshots:
'@shikijs/transformers': 2.5.0 '@shikijs/transformers': 2.5.0
'@shikijs/types': 2.5.0 '@shikijs/types': 2.5.0
'@types/markdown-it': 14.1.2 '@types/markdown-it': 14.1.2
'@vitejs/plugin-vue': 5.2.4(vite@5.4.19(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0))(vue@3.5.16(typescript@5.8.3)) '@vitejs/plugin-vue': 5.2.4(vite@5.4.19(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1))(vue@3.5.17(typescript@5.8.3))
'@vue/devtools-api': 7.7.2 '@vue/devtools-api': 7.7.2
'@vue/shared': 3.5.13 '@vue/shared': 3.5.13
'@vueuse/core': 12.8.2(typescript@5.8.3) '@vueuse/core': 12.8.2(typescript@5.8.3)
@ -11682,8 +11685,8 @@ snapshots:
mark.js: 8.11.1 mark.js: 8.11.1
minisearch: 7.1.2 minisearch: 7.1.2
shiki: 2.5.0 shiki: 2.5.0
vite: 5.4.19(@types/node@18.19.112)(less@4.3.0)(terser@5.43.0) vite: 5.4.19(@types/node@18.19.112)(less@4.3.0)(terser@5.43.1)
vue: 3.5.16(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3)
optionalDependencies: optionalDependencies:
markdown-it-mathjax3: 4.3.2(encoding@0.1.13) markdown-it-mathjax3: 4.3.2(encoding@0.1.13)
postcss: 8.5.3 postcss: 8.5.3
@ -11752,18 +11755,18 @@ snapshots:
'@vue/language-core': 2.2.10(typescript@5.8.3) '@vue/language-core': 2.2.10(typescript@5.8.3)
typescript: 5.8.3 typescript: 5.8.3
vue-types@3.0.2(vue@3.5.16(typescript@5.8.3)): vue-types@3.0.2(vue@3.5.17(typescript@5.8.3)):
dependencies: dependencies:
is-plain-object: 3.0.1 is-plain-object: 3.0.1
vue: 3.5.16(typescript@5.8.3) vue: 3.5.17(typescript@5.8.3)
vue@3.5.16(typescript@5.8.3): vue@3.5.17(typescript@5.8.3):
dependencies: dependencies:
'@vue/compiler-dom': 3.5.16 '@vue/compiler-dom': 3.5.17
'@vue/compiler-sfc': 3.5.16 '@vue/compiler-sfc': 3.5.17
'@vue/runtime-dom': 3.5.16 '@vue/runtime-dom': 3.5.17
'@vue/server-renderer': 3.5.16(vue@3.5.16(typescript@5.8.3)) '@vue/server-renderer': 3.5.17(vue@3.5.17(typescript@5.8.3))
'@vue/shared': 3.5.16 '@vue/shared': 3.5.17
optionalDependencies: optionalDependencies:
typescript: 5.8.3 typescript: 5.8.3

View File

@ -1,4 +1,4 @@
///<reference path="../../src/types/core.d.ts" /> ///<reference path="../../src/types/declaration/core.d.ts" />
/* /*
control.js游戏主要逻辑控制 control.js游戏主要逻辑控制

View File

@ -1,4 +1,4 @@
///<reference path="../../src/types/core.d.ts" /> ///<reference path="../../src/types/declaration/core.d.ts" />
/** /**
* 初始化 start * 初始化 start

View File

@ -1,4 +1,4 @@
///<reference path="../../src/types/core.d.ts" /> ///<reference path="../../src/types/declaration/core.d.ts" />
'use strict'; 'use strict';

View File

@ -1,4 +1,4 @@
///<reference path="../../src/types/core.d.ts" /> ///<reference path="../../src/types/declaration/core.d.ts" />
'use strict'; 'use strict';

View File

@ -1,4 +1,4 @@
///<reference path="../../src/types/core.d.ts" /> ///<reference path="../../src/types/declaration/core.d.ts" />
'use strict'; 'use strict';

View File

@ -1,4 +1,4 @@
///<reference path="../../src/types/core.d.ts" /> ///<reference path="../../src/types/declaration/core.d.ts" />
'use strict'; 'use strict';

View File

@ -1,4 +1,4 @@
///<reference path="../../src/types/core.d.ts" /> ///<reference path="../../src/types/declaration/core.d.ts" />
'use strict'; 'use strict';

View File

@ -1,4 +1,4 @@
///<reference path="../../src/types/core.d.ts" /> ///<reference path="../../src/types/declaration/core.d.ts" />
/* /*
loader.js负责对资源的加载 loader.js负责对资源的加载

View File

@ -1,4 +1,4 @@
///<reference path="../../src/types/core.d.ts" /> ///<reference path="../../src/types/declaration/core.d.ts" />
'use strict'; 'use strict';

View File

@ -1,4 +1,4 @@
///<reference path="../../src/types/core.d.ts" /> ///<reference path="../../src/types/declaration/core.d.ts" />
/** /**
* ui.js负责所有和UI界面相关的绘制 * ui.js负责所有和UI界面相关的绘制

View File

@ -1,4 +1,4 @@
///<reference path="../../src/types/core.d.ts" /> ///<reference path="../../src/types/declaration/core.d.ts" />
/* /*
utils.js 工具类 utils.js 工具类

View File

@ -610,7 +610,7 @@ interface Control {
/** /**
* *
*/ */
doSL(id: string, type: SLType): void; doSL(id: string | number, type: SLType): void;
/** /**
* *

View File

@ -370,7 +370,7 @@ interface DrawThumbnailConfig {
/** /**
* *
*/ */
heroLoc: LocArr; heroLoc: Loc;
/** /**
* *

View File

@ -2,8 +2,8 @@
### 怪物 ### 怪物
[] 同化 [x] 同化
[] 同化+阻击 [x] 同化+阻击
[x] 电摇嘲讽:到同行或同列直接怼过去,门和墙撞碎,不消耗钥匙,攻击怪物,捡道具,改变 bgm可吃补给用 [x] 电摇嘲讽:到同行或同列直接怼过去,门和墙撞碎,不消耗钥匙,攻击怪物,捡道具,改变 bgm可吃补给用
[x] 乾坤挪移:平移光环位置 [x] 乾坤挪移:平移光环位置
[x] 加光环的光环 [x] 加光环的光环
@ -16,7 +16,6 @@
### 技能 ### 技能
[] 学习:学习选定怪物的选定技能(不能学光环),消耗智慧点,初始 400但每次消耗点数+100持续 3 场战斗
[x] 铸剑为盾:主动技能,减少攻击,增加防御 [x] 铸剑为盾:主动技能,减少攻击,增加防御
### 机制 ### 机制
@ -34,36 +33,21 @@
[] 冰与火之舞:通过第二章特殊战的困难难度 [] 冰与火之舞:通过第二章特殊战的困难难度
[x] 你是怎么做到的?!:山路地图与勇气之路地图中与若干个神秘的木牌对话 [x] 你是怎么做到的?!:山路地图与勇气之路地图中与若干个神秘的木牌对话
### 伤害对应
dam1.png ---- 存档 404
dam2.png ---- 存档 285
dam3.png ---- 存档 243
dam4.png ---- 存档 59
## 第三章 战争 ## 第三章 战争
### 技能 移入飞书文档。
分成多条线,可以单独点一条线,也可以混搭 ## 第四章 和平
[] 血之代偿:消耗一定血量,战前对怪物造成同等数值的伤害 移入飞书文档。
[] 闪避:每 M 回合闪避一次,减少 N% 的伤害
### 机制
[] 装备合成、装备(孔)强化
## 零散 TODO ## 零散 TODO
[] 实时天气(待定)
[x] 成就系统 [x] 成就系统
[] 宝石目标设定
[] 自动宝物规划,选中两个或更多宝物后自动在本地图中规划出最优拾取路线,原则是尽量减少其余宝物的捡拾,自动切换主动技能,怪物造成的伤害最低的路线 [] 自动宝物规划,选中两个或更多宝物后自动在本地图中规划出最优拾取路线,原则是尽量减少其余宝物的捡拾,自动切换主动技能,怪物造成的伤害最低的路线
[x] 临界显示方式,宝石数还是数值 [x] 临界显示方式,宝石数还是数值
[x] 怪物目标设定 [x] 怪物目标设定
[x] 木牌查看系统(百科全书) [x] 木牌查看系统(百科全书)
[] 宝物目标设定
[] 每个怪物加一个怪物说明 [] 每个怪物加一个怪物说明
[] 歌词展示系统 [] 歌词展示系统
[x] 小地图显示框,可以选择是否显示剩余怪物数量等 [x] 小地图显示框,可以选择是否显示剩余怪物数量等
@ -78,7 +62,6 @@ dam4.png ---- 存档 59
[x] 玩家可以设置字体大小 [x] 玩家可以设置字体大小
[] 完全删除 functions.js [] 完全删除 functions.js
[x] 优化插件加载系统 [x] 优化插件加载系统
[] 优化 Scroll 组件
[] 重写技能控制系统 [] 重写技能控制系统
[x] 自定义快捷键 [x] 自定义快捷键
[x] 优化 ui 控制系统 [x] 优化 ui 控制系统
@ -89,7 +72,7 @@ dam4.png ---- 存档 59
[] 优化路径显示,瞬移可以闪一下再熄灭 [] 优化路径显示,瞬移可以闪一下再熄灭
[] 勇士身上显示攻防血 [] 勇士身上显示攻防血
[] 优化地图拖动 [] 优化地图拖动
[] 楼层转换加入随机小贴士 [x] 加入随机小贴士
[x] ui 中如果元素发生改变,那么做出背景亮一下再熄灭的效果 [x] ui 中如果元素发生改变,那么做出背景亮一下再熄灭的效果
[] 双击怪物手册拐点可以直接在拖动条上定位 [] 双击怪物手册拐点可以直接在拖动条上定位
[x] 重构技能树结构 [x] 重构技能树结构
@ -100,21 +83,15 @@ dam4.png ---- 存档 59
[] 怪物脚下加入阴影 [] 怪物脚下加入阴影
[x] 着色器特效 [x] 着色器特效
[x] 完全删除 core.plugin采用 Plugin.register 的形式进行插件编写 [x] 完全删除 core.plugin采用 Plugin.register 的形式进行插件编写
[] 通用 Addon 接口
[x] 完善加载系统 [x] 完善加载系统
[] 不同怪物可以在怪物手册中添加一些不同的边框 [] 不同怪物可以在怪物手册中添加一些不同的边框
[] 按住一个按键时显示怪物的攻防血 [] 按住一个按键时显示怪物的攻防血
[] 新的事件系统,并丰富自定义事件 [] 新的事件系统,并丰富自定义事件
[] 事件、eval 内容预编译 [] 事件、eval 内容预编译
[] 新的存档系统,可以注册存档项
[x] 渐变切 bgm [x] 渐变切 bgm
[] 新的 Flag 系统,使用 for 申请变量dispose 释放变量,可设为渲染进程与游戏进程共通变量 [] 新的 Flag 系统,使用 for 申请变量dispose 释放变量,可设为渲染进程与游戏进程共通变量
[] 注册可录像操作,比如可以在点击的时候执行,自动计入录像
[] 机关门显示绑定怪物 [] 机关门显示绑定怪物
[] 自定义状态栏,通过申请空间进行布局
[x] 复写 apirewrite() [x] 复写 apirewrite()
[x] 对 vnode 进行简单的包装,提供出显示文字、显示图片等 api 以及修改 css 的 api
[] mapDamage 注册
[x] Box 组件右下角添加 resize 按钮 [x] Box 组件右下角添加 resize 按钮
[] 被光环加成的怪显示受到了哪些加成 [] 被光环加成的怪显示受到了哪些加成
[x] 鼠标放到光环怪上时高亮它产生的光环 [x] 鼠标放到光环怪上时高亮它产生的光环