Compare commits
7 Commits
eeb0583678
...
17f771c644
| Author | SHA1 | Date | |
|---|---|---|---|
| 17f771c644 | |||
| c339825f5e | |||
| f9ab9fb73d | |||
| 0ac7165d60 | |||
| ef48dc07cd | |||
| 14aa4d6109 | |||
| 92f0881be8 |
1
.gitignore
vendored
@ -53,3 +53,4 @@ docs/.vitepress/cache
|
||||
docs/.vitepress/dist
|
||||
docs/.vitepress/apiSidebar.ts
|
||||
_docs
|
||||
template
|
||||
|
||||
@ -131,4 +131,4 @@ export const MyUI = defineComponent(() => {
|
||||
- 如果不允许交互,那么光标也不会显示
|
||||
- 同 `zIndex` 下,后插入的元素会在上层,但是这也意味着如果是动态插入的元素(例如由于响应式更改而插入了一个新元素),会显示在后面代码的元素之上
|
||||
4. **常见问题**
|
||||
- 参考 [指南](../../guide/ui-faq.md)
|
||||
- 参考 [指南](../../guide/ui/faq.md)
|
||||
|
||||
@ -32,10 +32,10 @@ interface SpriteProps extends BaseProps {
|
||||
|
||||
通过 `render` 函数实现 **动态绘制**,可结合:
|
||||
|
||||
- 基础定位/变换参数(继承 `BaseProps`)
|
||||
- 动画系统(`useAnimation`)
|
||||
- 帧回调(`onTick`)
|
||||
- 自定义图形绘制(路径/滤镜/混合模式)
|
||||
- 基础定位/变换参数(继承 `BaseProps`)
|
||||
- 动画系统(`useAnimation`)
|
||||
- 帧回调(`onTick`)
|
||||
- 自定义图形绘制(路径/滤镜/混合模式)
|
||||
|
||||
**注意**,这个标签虽然非常基础,但是应该并不常用,因为很多内容都有对应的标签可以实现(例如线可以使用 `g-line` 标签等),因此如果你在考虑使用此标签,请确认你必须使用它,或是你的场景对性能非常敏感。
|
||||
|
||||
@ -43,7 +43,7 @@ interface SpriteProps extends BaseProps {
|
||||
|
||||
## 使用示例
|
||||
|
||||
以下的示例代码均应该在**组件内部**编写,哪里是组件内部请参考[指南](../../guide/ui.md)。
|
||||
以下的示例代码均应该在**组件内部**编写,哪里是组件内部请参考[指南](../../guide/ui/ui.md)。
|
||||
|
||||
### 示例 1:基础图形
|
||||
|
||||
@ -67,9 +67,9 @@ const render = (canvas: MotaOffscreenCanvas2D) => {
|
||||
|
||||
**效果**:
|
||||
|
||||
- 100x100 红色方块,中心点位于 (200,200)
|
||||
- 45 度旋转,蓝色描边
|
||||
- 80% 不透明度
|
||||
- 100x100 红色方块,中心点位于 (200,200)
|
||||
- 45 度旋转,蓝色描边
|
||||
- 80% 不透明度
|
||||
|
||||
---
|
||||
|
||||
@ -102,8 +102,8 @@ return () => <sprite loc={loc.value} scale={scale.value} render={render} />;
|
||||
|
||||
**效果**:
|
||||
|
||||
- 矩形横向放大 1.5 倍,横向位置移动 100px
|
||||
- 2 秒线性动画
|
||||
- 矩形横向放大 1.5 倍,横向位置移动 100px
|
||||
- 2 秒线性动画
|
||||
|
||||
---
|
||||
|
||||
@ -137,8 +137,8 @@ return () => (
|
||||
|
||||
**效果**:
|
||||
|
||||
- 鼠标悬浮时添加模糊滤镜
|
||||
- 鼠标悬浮显示指针光标
|
||||
- 鼠标悬浮时添加模糊滤镜
|
||||
- 鼠标悬浮显示指针光标
|
||||
|
||||
---
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ graph LR
|
||||
|
||||
## 类描述
|
||||
|
||||
`UIController` 是 UI 控制系统的核心类,负责管理 UI 实例的显示栈、背景控制以及多种显示模式。继承自 `EventEmitter`,支持事件监听。想要编写 UI 请参考[深度指南](../../guide/ui.md)。
|
||||
`UIController` 是 UI 控制系统的核心类,负责管理 UI 实例的显示栈、背景控制以及多种显示模式。继承自 `EventEmitter`,支持事件监听。想要编写 UI 请参考[深度指南](../../guide/ui/ui.md)。
|
||||
|
||||
---
|
||||
|
||||
@ -37,8 +37,8 @@ graph LR
|
||||
function constructor(id: string): UIController;
|
||||
```
|
||||
|
||||
- **参数**
|
||||
- `id`: 控制器的唯一标识符(若重复会触发警告日志)
|
||||
- **参数**
|
||||
- `id`: 控制器的唯一标识符(若重复会触发警告日志)
|
||||
|
||||
**示例**
|
||||
|
||||
@ -84,9 +84,9 @@ function setBackground<T extends UIComponent>(
|
||||
|
||||
设置背景 UI 并初始化其实例。
|
||||
|
||||
- **参数**
|
||||
- `back`: 背景 UI 配置实例
|
||||
- `vBind`: 传递给背景组件的 Props 对象
|
||||
- **参数**
|
||||
- `back`: 背景 UI 配置实例
|
||||
- `vBind`: 传递给背景组件的 Props 对象
|
||||
|
||||
**示例**
|
||||
|
||||
@ -156,12 +156,12 @@ function open<T extends UIComponent>(
|
||||
|
||||
打开一个新 UI 实例并加入栈中。
|
||||
|
||||
- **参数**
|
||||
- `ui`: UI 配置实例
|
||||
- `vBind`: 组件 Props
|
||||
- `alwaysShow`: 是否强制显示(默认 `false`)
|
||||
- **返回值**
|
||||
打开的 UI 实例,可以用于关闭等操作
|
||||
- **参数**
|
||||
- `ui`: UI 配置实例
|
||||
- `vBind`: 组件 Props
|
||||
- `alwaysShow`: 是否强制显示(默认 `false`)
|
||||
- **返回值**
|
||||
打开的 UI 实例,可以用于关闭等操作
|
||||
|
||||
**示例**
|
||||
|
||||
@ -191,8 +191,8 @@ function closeAll(ui?: IGameUI): void;
|
||||
|
||||
关闭所有或指定类型的所有 UI 实例。
|
||||
|
||||
- **参数**
|
||||
- `ui`(可选): 指定要关闭的 UI 类型,不填时表示关闭所有 UI
|
||||
- **参数**
|
||||
- `ui`(可选): 指定要关闭的 UI 类型,不填时表示关闭所有 UI
|
||||
|
||||
---
|
||||
|
||||
@ -222,7 +222,7 @@ function showAll(stack?: boolean): void;
|
||||
function showCustom(config: IUICustomConfig): void;
|
||||
```
|
||||
|
||||
切换显示模式:使用自定义模式(需实现 `IUICustomConfig`),参考[指南](../../guide/ui-system.md#自定义显示模式)
|
||||
切换显示模式:使用自定义模式(需实现 `IUICustomConfig`),参考[指南](../../guide/ui/system.md#自定义显示模式)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@ -28,7 +28,7 @@ lang: zh-CN
|
||||
|
||||
相比于 2.10.3 及 2.A,有如下改动:
|
||||
|
||||
- [系统说明](./system)
|
||||
- [UI 编写](./ui)
|
||||
- [UI 系统](./ui/system)
|
||||
- [音频系统](./audio)
|
||||
- [系统说明](./system.md)
|
||||
- [UI 编写](./ui/ui.md)
|
||||
- [UI 系统](./ui/system.md)
|
||||
- [音频系统](./audio.md)
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
## 定义动画属性
|
||||
|
||||
我们以一个自定义 UI 为例,来讲述如何编写一段动画。自定义 UI 参考[此指南](./new-ui.md)和[此教程](../../guide/ui.md)。
|
||||
我们以一个自定义 UI 为例,来讲述如何编写一段动画。自定义 UI 参考[此指南](./new-ui.md)和[此教程](../../guide/ui/ui.md)。
|
||||
|
||||
假设自定义 UI 在 `packages-user/client-modules/src/render/ui` 文件夹下,我们需要引入 `transitioned` 接口,并调用它定义动画属性:
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
- [新增勇士属性](./status-bar.md#拓展-新增勇士属性) (既包含客户端,也包含数据端)
|
||||
- [编写新 UI](./new-ui.md)
|
||||
- [UI 与组件的区别](./new-ui.md#拓展-ui-与组件的区别)
|
||||
- [UI 编写参考](../ui.md)
|
||||
- [UI 编写参考](../ui/ui.md)
|
||||
- [新增按键](./hotkey.md)
|
||||
- [添加辅助按键](./hotkey.md#拓展-添加辅助按键)
|
||||
- [在 UI 内实现按键](./hotkey.md#拓展-在-ui-内实现按键)
|
||||
|
||||
@ -82,7 +82,7 @@ controller.close(ins);
|
||||
|
||||
## UI 编写参考
|
||||
|
||||
参考[此文档](../ui.md),此文档将会教你如何从头开始编写一个 UI,并解释 UI 运行与渲染的基本逻辑。
|
||||
参考[此文档](../ui/ui.md),此文档将会教你如何从头开始编写一个 UI,并解释 UI 运行与渲染的基本逻辑。
|
||||
|
||||
## 拓展-UI 与组件的区别
|
||||
|
||||
|
||||
@ -224,4 +224,4 @@ export function calDamageWith(
|
||||
|
||||
## 拓展-了解 UI 编写的基本逻辑
|
||||
|
||||
参考[此文档](./ui.md),此文档将会教你如何从头开始编写一个 UI,并解释 UI 运行与渲染的基本逻辑。
|
||||
参考[此文档](../ui/ui.md),此文档将会教你如何从头开始编写一个 UI,并解释 UI 运行与渲染的基本逻辑。
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
|
||||
## 常见需求实现指南
|
||||
|
||||
参考[此文档](./implements.md)
|
||||
参考[此文档](./implements/index.md)
|
||||
|
||||
## 热重载
|
||||
|
||||
|
||||
@ -536,21 +536,21 @@ export const MyCom = defineComponent(() => {
|
||||
|
||||
- [ConfirmBox](../../api/user-client-modules/组件%20ConfirmBox.md):确认框,一般使用 `getConfirm` 接口,不直接使用组件。
|
||||
- [Choices](../../api/user-client-modules/组件%20Choices.md):选择框,一般使用 `getChoice` 接口,不直接使用组件。
|
||||
- [FloorSelector](../../api/user-client-modules/组件%20FloorSelector.md):楼层选择组件,浏览地图左侧的楼层选择就是使用的本组件。
|
||||
<!-- - [FloorSelector](../../api/user-client-modules/组件%20FloorSelector.md):楼层选择组件,浏览地图左侧的楼层选择就是使用的本组件。 -->
|
||||
- [图标组件](../../api/user-client-modules/图标组件.md):一些常用图标。
|
||||
- [Input](../../api/user-client-modules/组件%20Input.md):输入组件,可以放到组件内部,可以用于搜索栏等。
|
||||
- [InputBox](../../api/user-client-modules/组件%20InputBox.md):输入框组件,类似于确认框,一般使用 `getInput` 或 `getInputNumber` 接口,不使用本组件。
|
||||
- [List](../../api/user-client-modules/组件%20List.md):列表组件,可以用于展示一列内容。
|
||||
- [ListPage](../../api/user-client-modules/组件%20ListPage.md):左侧是列表,右侧是当前选项对应的详情页,可以用于游戏机制说明等。
|
||||
<!-- - [Input](../../api/user-client-modules/组件%20Input.md):输入组件,可以放到组件内部,可以用于搜索栏等。
|
||||
[InputBox](../../api/user-client-modules/组件%20InputBox.md):输入框组件,类似于确认框,一般使用 `getInput` 或 `getInputNumber` 接口,不使用本组件。 -->
|
||||
<!-- - [List](../../api/user-client-modules/组件%20List.md):列表组件,可以用于展示一列内容。
|
||||
[ListPage](../../api/user-client-modules/组件%20ListPage.md):左侧是列表,右侧是当前选项对应的详情页,可以用于游戏机制说明等。 -->
|
||||
- [Progress](../../api/user-client-modules/组件%20Progress.md):进度条组件,播放录像时右下角的进度条就是本组件。
|
||||
- [Arrow](../../api/user-client-modules/组件%20Arrow.md):箭头组件,画一个箭头。
|
||||
- [ScrollText](../../api/user-client-modules/组件%20ScrollText.md):滚动文本组件,可以用于长剧情或是 staff 表等。
|
||||
- [Selection](../../api/user-client-modules/组件%20Selection.md):选择光标,列表组件的选择光标就是使用的本组件。
|
||||
- [Background](../../api/user-client-modules/组件%20Background.md):背景组件,可以设置为纯色或 `winskin`。
|
||||
- [WaitBox](../../api/user-client-modules/组件%20WaitBox.md):等待框,一般使用 `waitbox` 接口,不直接使用组件。
|
||||
<!-- - [WaitBox](../../api/user-client-modules/组件%20WaitBox.md):等待框,一般使用 `waitbox` 接口,不直接使用组件。 -->
|
||||
- [Page](../../api/user-client-modules/组件%20Page.md):分页组件,本文已经详细讲解。
|
||||
- [Scroll](../../api/user-client-modules/组件%20Scroll.md):滚动条组件,本文已经详细讲解。
|
||||
- [TextContent](../../api/user-client-modules/组件%20TextContent.md):多行文本组件,本文已经详细讲解。
|
||||
- [Textbox](../../api/user-client-modules/组件%20Textbox.md):文本框组件,就是事件的显示文字,一般不会直接用。
|
||||
- [Thumbnail](../../api/user-client-modules/组件%20Thumbnail.md):缩略图组件,用于展示某个地图的缩略图。
|
||||
<!-- - [Thumbnail](../../api/user-client-modules/组件%20Thumbnail.md):缩略图组件,用于展示某个地图的缩略图。 -->
|
||||
- [Tip](../../api/user-client-modules/组件%20Tip.md):提示组件,就是左上角的提示,一般不会直接使用。
|
||||
|
||||
@ -27,7 +27,7 @@ type ElementLocator = [
|
||||
- `w` `h`: 元素的长宽,描述了在没有缩放时元素的矩形长宽,默认是没有放缩的。
|
||||
- `ax` `ay`: 元素的锚点位置,描述了元素参考点的位置,所有位置变换等将以此点作为参考点。0 表示元素最左侧或最上侧,1 表示最右侧或最下侧,可以填不在 0-1 范围内的值,例如 `[-1, 1]` 表示锚点横坐标在元素左侧一个元素宽度的位置,纵坐标在元素下边缘的位置。
|
||||
|
||||

|
||||

|
||||
|
||||
示例如下:
|
||||
|
||||
|
||||
@ -14,7 +14,8 @@
|
||||
"build:lib": "vue-tsc --noEmit && tsx script/build-lib.ts",
|
||||
"docs:dev": "concurrently -k -n SIDEBAR,VITEPRESS -c blue,green \"tsx docs/.vitepress/api.ts\" \"vitepress dev docs\"",
|
||||
"docs:build": "vitepress build docs",
|
||||
"docs:preview": "vitepress preview docs"
|
||||
"docs:preview": "vitepress preview docs",
|
||||
"pack:template": "tsx script/pack-template.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@ant-design/icons-vue": "^6.1.0",
|
||||
|
||||
@ -1,22 +1,22 @@
|
||||
import { gameKey } from '@motajs/system-action';
|
||||
import { MAIN_WIDTH, MAIN_HEIGHT, POP_BOX_WIDTH, CENTER_LOC } from './shared';
|
||||
import { POP_BOX_WIDTH, CENTER_LOC, FULL_LOC } from './shared';
|
||||
import {
|
||||
saveSave,
|
||||
mainUIController,
|
||||
saveLoad,
|
||||
openSettings,
|
||||
ReplaySettingsUI,
|
||||
openViewMap
|
||||
openViewMap,
|
||||
openReplay
|
||||
} from './ui';
|
||||
import { ElementLocator } from '@motajs/render-core';
|
||||
|
||||
export function createAction() {
|
||||
gameKey
|
||||
.realize('save', () => {
|
||||
saveSave(mainUIController, [0, 0, MAIN_WIDTH, MAIN_HEIGHT]);
|
||||
saveSave(mainUIController, FULL_LOC);
|
||||
})
|
||||
.realize('load', () => {
|
||||
saveLoad(mainUIController, [0, 0, MAIN_WIDTH, MAIN_HEIGHT]);
|
||||
saveLoad(mainUIController, FULL_LOC);
|
||||
})
|
||||
.realize('menu', () => {
|
||||
const loc = CENTER_LOC.slice() as ElementLocator;
|
||||
@ -24,11 +24,11 @@ export function createAction() {
|
||||
openSettings(mainUIController, loc);
|
||||
})
|
||||
.realize('replay', () => {
|
||||
mainUIController.open(ReplaySettingsUI, {
|
||||
loc: CENTER_LOC
|
||||
});
|
||||
const loc = CENTER_LOC.slice() as ElementLocator;
|
||||
loc[2] = POP_BOX_WIDTH;
|
||||
openReplay(mainUIController, loc);
|
||||
})
|
||||
.realize('viewMap', () => {
|
||||
openViewMap(mainUIController, [0, 0, MAIN_WIDTH, MAIN_HEIGHT]);
|
||||
openViewMap(mainUIController, FULL_LOC);
|
||||
});
|
||||
}
|
||||
|
||||
@ -10,10 +10,11 @@ import {
|
||||
Transform
|
||||
} from '@motajs/render-core';
|
||||
import { Font } from '@motajs/render-style';
|
||||
import { transitionedColor } from '../use';
|
||||
import { transitionedColor, useKey } from '../use';
|
||||
import { linear } from 'mutate-animate';
|
||||
import { Background, Selection } from './misc';
|
||||
import { GameUI, IUIMountable, SetupComponentOptions } from '@motajs/system-ui';
|
||||
import { KeyCode } from '@motajs/client-base';
|
||||
|
||||
export interface InputProps extends DefaultProps, Partial<TextContentProps> {
|
||||
/** 输入框的提示内容 */
|
||||
@ -49,7 +50,16 @@ export type InputEmits = {
|
||||
};
|
||||
|
||||
const inputProps = {
|
||||
props: ['placeholder', 'value', 'multiline'],
|
||||
props: [
|
||||
'loc',
|
||||
'placeholder',
|
||||
'value',
|
||||
'multiline',
|
||||
'border',
|
||||
'circle',
|
||||
'borderWidth',
|
||||
'pad'
|
||||
],
|
||||
emits: ['change', 'input', 'update:value']
|
||||
} satisfies SetupComponentOptions<InputProps, InputEmits, keyof InputEmits>;
|
||||
|
||||
@ -92,6 +102,10 @@ export const Input = defineComponent<InputProps, InputEmits, keyof InputEmits>(
|
||||
width.value - padding.value * 2,
|
||||
height.value - padding.value * 2
|
||||
]);
|
||||
const rectLoc = computed<ElementLocator>(() => {
|
||||
const b = props.borderWidth ?? 1;
|
||||
return [b, b, width.value - b * 2, height.value - b * 2];
|
||||
});
|
||||
|
||||
const borderColor = transitionedColor(
|
||||
props.border ?? '#ddd',
|
||||
@ -112,6 +126,9 @@ export const Input = defineComponent<InputProps, InputEmits, keyof InputEmits>(
|
||||
}
|
||||
});
|
||||
ele.addEventListener('blur', () => {
|
||||
if (ele) {
|
||||
updateInput(ele.value);
|
||||
}
|
||||
ele?.remove();
|
||||
});
|
||||
};
|
||||
@ -143,42 +160,52 @@ export const Input = defineComponent<InputProps, InputEmits, keyof InputEmits>(
|
||||
if (!ele) createInput(props.multiline ?? false);
|
||||
if (!ele) return;
|
||||
// 计算当前绝对位置
|
||||
const renderer = MotaRenderer.get('render-main');
|
||||
const canvas = renderer?.getCanvas();
|
||||
if (!canvas) return;
|
||||
|
||||
const chain: RenderItem[] = [];
|
||||
let now: RenderItem | undefined = root.value;
|
||||
let renderer: MotaRenderer | undefined;
|
||||
if (!now) return;
|
||||
while (now) {
|
||||
chain.unshift(now);
|
||||
if (now?.isRoot) {
|
||||
renderer = now as MotaRenderer;
|
||||
}
|
||||
now = now.parent;
|
||||
}
|
||||
|
||||
// 应用内边距偏移
|
||||
const { clientLeft, clientTop } = canvas;
|
||||
const trans = new Transform();
|
||||
trans.translate(clientLeft, clientTop);
|
||||
trans.scale(core.domStyle.scale);
|
||||
const canvas = renderer?.getCanvas();
|
||||
if (!canvas) return;
|
||||
|
||||
const w = width.value;
|
||||
const h = height.value;
|
||||
|
||||
const border = props.borderWidth ?? 1;
|
||||
const inputWidth = w - border * 2;
|
||||
const inputHeight = h - border * 2;
|
||||
|
||||
// 应用根画布偏移
|
||||
const box = canvas.getBoundingClientRect();
|
||||
let trans = new Transform();
|
||||
trans.translate(box.x, box.y);
|
||||
trans.scale(renderer?.getScale() ?? 1);
|
||||
for (const item of chain) {
|
||||
const { anchorX, anchorY, width, height } = item;
|
||||
trans.translate(-anchorX * width, -anchorY * height);
|
||||
trans.multiply(item.transform);
|
||||
trans = trans.multiply(item.transform);
|
||||
}
|
||||
trans.translate(padding.value, padding.value);
|
||||
trans.translate(border, border);
|
||||
|
||||
// 构建CSS transform的matrix字符串
|
||||
const [a, b, , c, d, , e, f] = trans.mat;
|
||||
const str = `matrix(${a},${b},${c},${d},${e},${f})`;
|
||||
|
||||
const w = width.value * core.domStyle.scale;
|
||||
const h = height.value * core.domStyle.scale;
|
||||
const font = props.font ?? Font.defaults();
|
||||
ele.style.transform = str;
|
||||
ele.style.width = `${w - padding.value * 2}px`;
|
||||
ele.style.height = `${h - padding.value * 2}px`;
|
||||
ele.style.width = `${inputWidth}px`;
|
||||
ele.style.height = `${inputHeight}px`;
|
||||
ele.style.font = font.string();
|
||||
ele.style.color = String(props.fillStyle ?? 'white');
|
||||
ele.style.zIndex = '100';
|
||||
document.body.appendChild(ele);
|
||||
ele.focus();
|
||||
};
|
||||
@ -191,6 +218,14 @@ export const Input = defineComponent<InputProps, InputEmits, keyof InputEmits>(
|
||||
borderColor.set(props.border ?? '#ddd');
|
||||
};
|
||||
|
||||
const [key] = useKey();
|
||||
key.realize('confirm', (_, code) => {
|
||||
if (code === KeyCode.Enter) {
|
||||
// 特判回车键
|
||||
ele?.blur();
|
||||
}
|
||||
});
|
||||
|
||||
watch(
|
||||
() => props.value,
|
||||
newValue => {
|
||||
@ -214,6 +249,7 @@ export const Input = defineComponent<InputProps, InputEmits, keyof InputEmits>(
|
||||
|
||||
return () => (
|
||||
<container
|
||||
loc={props.loc}
|
||||
ref={root}
|
||||
cursor="text"
|
||||
onClick={click}
|
||||
@ -221,11 +257,14 @@ export const Input = defineComponent<InputProps, InputEmits, keyof InputEmits>(
|
||||
onLeave={leave}
|
||||
>
|
||||
<g-rectr
|
||||
loc={[0, 0, width.value, height.value]}
|
||||
loc={rectLoc.value}
|
||||
circle={props.circle}
|
||||
lineWidth={props.borderWidth}
|
||||
lineWidth={props.borderWidth ?? 1}
|
||||
fill
|
||||
stroke
|
||||
fillStyle="#111"
|
||||
strokeStyle={borderColor.ref.value}
|
||||
zIndex={10}
|
||||
zIndex={0}
|
||||
/>
|
||||
<TextContent
|
||||
{...attrs}
|
||||
@ -233,8 +272,9 @@ export const Input = defineComponent<InputProps, InputEmits, keyof InputEmits>(
|
||||
loc={textLoc.value}
|
||||
width={width.value - padding.value * 2}
|
||||
text={showText.value}
|
||||
fillStyle="white"
|
||||
alpha={value.value.length === 0 ? 0.6 : 1}
|
||||
zIndex={0}
|
||||
zIndex={10}
|
||||
/>
|
||||
</container>
|
||||
);
|
||||
@ -353,12 +393,12 @@ export const InputBox = defineComponent<
|
||||
const noText = computed(() => props.noText ?? '取消');
|
||||
const text = computed(() => props.text ?? '请输入内容:');
|
||||
const padding = computed(() => props.pad ?? 8);
|
||||
const inputHeight = computed(() => props.inputHeight ?? 16);
|
||||
const inputHeight = computed(() => props.inputHeight ?? 24);
|
||||
const inputLoc = computed<ElementLocator>(() => [
|
||||
padding.value,
|
||||
padding.value * 2 + contentHeight.value,
|
||||
props.width - padding.value * 2,
|
||||
inputHeight.value - padding.value * 2
|
||||
inputHeight.value
|
||||
]);
|
||||
const yesLoc = computed<ElementLocator>(() => {
|
||||
const y = height.value - padding.value;
|
||||
@ -379,10 +419,17 @@ export const InputBox = defineComponent<
|
||||
return [x, y + 4, width + 8, height + 8, 0.5, 1];
|
||||
}
|
||||
});
|
||||
const boxLoc = computed<ElementLocator>(() => {
|
||||
const [x = 0, y = 0, , , ax = 0, ay = 0] = props.loc;
|
||||
return [x, y, props.width, height.value, ax, ay];
|
||||
});
|
||||
|
||||
const updateHeight = (h: number) => {
|
||||
contentHeight.value = h;
|
||||
height.value = h + inputHeight.value + padding.value * 4;
|
||||
const [, yh] = yesSize.value;
|
||||
const [, nh] = noSize.value;
|
||||
const buttonHeight = Math.max(yh, nh);
|
||||
height.value = h + inputHeight.value + padding.value * 4 + buttonHeight;
|
||||
};
|
||||
|
||||
const change = (value: string) => {
|
||||
@ -411,11 +458,11 @@ export const InputBox = defineComponent<
|
||||
};
|
||||
|
||||
return () => (
|
||||
<container>
|
||||
<container loc={boxLoc.value}>
|
||||
<Background
|
||||
loc={[0, 0, props.width, height.value]}
|
||||
winskin={props.winskin}
|
||||
color={props.color}
|
||||
color={props.color ?? '#333'}
|
||||
border={props.border}
|
||||
zIndex={0}
|
||||
/>
|
||||
@ -426,12 +473,14 @@ export const InputBox = defineComponent<
|
||||
width={props.width - padding.value * 2}
|
||||
zIndex={5}
|
||||
onUpdateHeight={updateHeight}
|
||||
autoHeight
|
||||
/>
|
||||
<Input
|
||||
{...(props.input ?? {})}
|
||||
loc={inputLoc.value}
|
||||
v-model={value.value}
|
||||
zIndex={10}
|
||||
circle={[4]}
|
||||
onChange={change}
|
||||
onInput={input}
|
||||
/>
|
||||
|
||||
@ -364,7 +364,7 @@ export const SyncSave = defineComponent<MainSettingsProps>(props => {
|
||||
[SyncSaveChoice.ToServer, '同步存档至服务器'],
|
||||
[SyncSaveChoice.FromServer, '从服务器加载存档'],
|
||||
[SyncSaveChoice.ToLocal, '存档至本地文件'],
|
||||
[SyncSaveChoice.FromLocal, '存本地文件读档'],
|
||||
[SyncSaveChoice.FromLocal, '从本地文件读档'],
|
||||
[SyncSaveChoice.ClearLocal, '清空本地存档'],
|
||||
[SyncSaveChoice.Back, '返回上一级']
|
||||
];
|
||||
@ -693,3 +693,14 @@ export function openSettings(
|
||||
loc
|
||||
});
|
||||
}
|
||||
|
||||
export function openReplay(
|
||||
controller: IUIMountable,
|
||||
loc: ElementLocator,
|
||||
props?: MainSettingsProps
|
||||
) {
|
||||
controller.open(ReplaySettingsUI, {
|
||||
...props,
|
||||
loc
|
||||
});
|
||||
}
|
||||
|
||||
@ -23,7 +23,7 @@ import { SetupComponentOptions } from '@motajs/system-ui';
|
||||
import { saveSave, saveLoad } from './save';
|
||||
import { mainUIController } from './controller';
|
||||
import { MAIN_HEIGHT, FULL_LOC, POP_BOX_WIDTH, CENTER_LOC } from '../shared';
|
||||
import { openSettings } from './settings';
|
||||
import { openReplay, openSettings } from './settings';
|
||||
import { openViewMap } from './viewmap';
|
||||
|
||||
interface ToolbarProps extends DefaultProps {
|
||||
@ -112,7 +112,11 @@ export const PlayingToolbar = defineComponent<
|
||||
const view = () => {
|
||||
openViewMap(mainUIController, FULL_LOC);
|
||||
};
|
||||
const replay = () => core.ui._drawReplay();
|
||||
const replay = () => {
|
||||
const loc = CENTER_LOC.slice() as ElementLocator;
|
||||
loc[2] = POP_BOX_WIDTH;
|
||||
openReplay(mainUIController, loc);
|
||||
};
|
||||
const settings = () => {
|
||||
const loc = CENTER_LOC.slice() as ElementLocator;
|
||||
loc[2] = POP_BOX_WIDTH;
|
||||
|
||||
@ -2,6 +2,7 @@ import { compressToBase64, decompressFromBase64 } from 'lz-string';
|
||||
import { getConfirm, waitbox } from '../components';
|
||||
import { IUIMountable } from '@motajs/system-ui';
|
||||
import { SyncSaveFromServerResponse } from '@motajs/client-base';
|
||||
import { CENTER_LOC, POP_BOX_WIDTH } from '../shared';
|
||||
|
||||
export interface SaveData {
|
||||
name: string;
|
||||
@ -128,15 +129,15 @@ export async function syncFromServer(
|
||||
return void getConfirm(
|
||||
controller,
|
||||
'不合法的存档编号+密码!请检查格式!',
|
||||
[240, 240, void 0, void 0, 0.5, 0.5],
|
||||
240
|
||||
CENTER_LOC,
|
||||
POP_BOX_WIDTH
|
||||
);
|
||||
}
|
||||
const [id, password] = parseIdPassword(identifier);
|
||||
const result = await waitbox(
|
||||
controller,
|
||||
[240, 240, void 0, void 0, 0.5, 0.5],
|
||||
240,
|
||||
CENTER_LOC,
|
||||
POP_BOX_WIDTH,
|
||||
syncLoad(id, password)
|
||||
);
|
||||
if (typeof result === 'number') {
|
||||
@ -150,16 +151,16 @@ export async function syncFromServer(
|
||||
return void getConfirm(
|
||||
controller,
|
||||
map[result],
|
||||
[240, 240, void 0, void 0, 0.5, 0.5],
|
||||
240
|
||||
CENTER_LOC,
|
||||
POP_BOX_WIDTH
|
||||
);
|
||||
}
|
||||
if (result instanceof Array) {
|
||||
const confirm = await getConfirm(
|
||||
controller,
|
||||
'所有本地存档都将被覆盖,确认?',
|
||||
[240, 240, void 0, void 0, 0.5, 0.5],
|
||||
240,
|
||||
CENTER_LOC,
|
||||
POP_BOX_WIDTH,
|
||||
{
|
||||
defaultYes: true
|
||||
}
|
||||
@ -176,8 +177,8 @@ export async function syncFromServer(
|
||||
return void getConfirm(
|
||||
controller,
|
||||
'同步成功!\n你的本地所有存档均已被覆盖。',
|
||||
[240, 240, void 0, void 0, 0.5, 0.5],
|
||||
240
|
||||
CENTER_LOC,
|
||||
POP_BOX_WIDTH
|
||||
);
|
||||
}
|
||||
} else {
|
||||
@ -188,8 +189,8 @@ export async function syncFromServer(
|
||||
return void getConfirm(
|
||||
controller,
|
||||
`同步成功!\n单存档已覆盖至存档 ${idx}`,
|
||||
[240, 240, void 0, void 0, 0.5, 0.5],
|
||||
240
|
||||
CENTER_LOC,
|
||||
POP_BOX_WIDTH
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -133,7 +133,6 @@ export class MotaRenderer extends Container implements IRenderTreeRoot {
|
||||
// 画布监听
|
||||
const canvas = this.target.canvas;
|
||||
canvas.addEventListener('mousedown', ev => {
|
||||
ev.preventDefault();
|
||||
const mouse = this.getMouseType(ev);
|
||||
this.lastMouse = mouse;
|
||||
this.captureEvent(
|
||||
@ -142,13 +141,11 @@ export class MotaRenderer extends Container implements IRenderTreeRoot {
|
||||
);
|
||||
});
|
||||
canvas.addEventListener('mouseup', ev => {
|
||||
ev.preventDefault();
|
||||
const event = this.createMouseAction(ev, ActionType.Up);
|
||||
this.captureEvent(ActionType.Up, event);
|
||||
this.captureEvent(ActionType.Click, event);
|
||||
});
|
||||
canvas.addEventListener('mousemove', ev => {
|
||||
ev.preventDefault();
|
||||
const event = this.createMouseAction(
|
||||
ev,
|
||||
ActionType.Move,
|
||||
@ -171,7 +168,6 @@ export class MotaRenderer extends Container implements IRenderTreeRoot {
|
||||
);
|
||||
});
|
||||
canvas.addEventListener('mouseleave', ev => {
|
||||
ev.preventDefault();
|
||||
const id = this.getMouseIdentifier(
|
||||
ActionType.Leave,
|
||||
this.getMouseType(ev)
|
||||
@ -183,13 +179,11 @@ export class MotaRenderer extends Container implements IRenderTreeRoot {
|
||||
this.beforeHovered.clear();
|
||||
});
|
||||
document.addEventListener('touchstart', ev => {
|
||||
ev.preventDefault();
|
||||
this.createTouchAction(ev, ActionType.Down).forEach(v => {
|
||||
this.captureEvent(ActionType.Down, v);
|
||||
});
|
||||
});
|
||||
document.addEventListener('touchend', ev => {
|
||||
ev.preventDefault();
|
||||
this.createTouchAction(ev, ActionType.Up).forEach(v => {
|
||||
this.captureEvent(ActionType.Up, v);
|
||||
this.captureEvent(ActionType.Click, v);
|
||||
@ -199,7 +193,6 @@ export class MotaRenderer extends Container implements IRenderTreeRoot {
|
||||
});
|
||||
});
|
||||
document.addEventListener('touchcancel', ev => {
|
||||
ev.preventDefault();
|
||||
this.createTouchAction(ev, ActionType.Up).forEach(v => {
|
||||
this.captureEvent(ActionType.Up, v);
|
||||
});
|
||||
@ -208,7 +201,6 @@ export class MotaRenderer extends Container implements IRenderTreeRoot {
|
||||
});
|
||||
});
|
||||
document.addEventListener('touchmove', ev => {
|
||||
ev.preventDefault();
|
||||
this.createTouchAction(ev, ActionType.Move).forEach(v => {
|
||||
const list = this.touchInfo.values();
|
||||
if (!list.some(vv => v.identifier === vv.identifier)) {
|
||||
@ -228,7 +220,6 @@ export class MotaRenderer extends Container implements IRenderTreeRoot {
|
||||
});
|
||||
});
|
||||
canvas.addEventListener('wheel', ev => {
|
||||
ev.preventDefault();
|
||||
this.captureEvent(
|
||||
ActionType.Wheel,
|
||||
this.createWheelAction(ev, ActionType.Wheel)
|
||||
|
||||
@ -192,6 +192,7 @@ export class Transform {
|
||||
if (this.modified) {
|
||||
const result = new Transform();
|
||||
mat3.multiply(result.mat, this.mat, transform.mat);
|
||||
result.modified = true;
|
||||
return result;
|
||||
} else {
|
||||
return transform.clone();
|
||||
|
||||
@ -3104,6 +3104,14 @@ maps.prototype.showBlock = function (x, y, floorId) {
|
||||
block.disable = false;
|
||||
core.setMapBlockDisabled(floorId, x, y, false);
|
||||
this._updateMapArray(floorId, block.x, block.y);
|
||||
Mota.require('@user/data-base').hook.emit(
|
||||
'setBlock',
|
||||
x,
|
||||
y,
|
||||
floorId,
|
||||
block?.id ?? 0,
|
||||
0
|
||||
);
|
||||
// 在本层,添加动画
|
||||
if (floorId == core.status.floorId) {
|
||||
if (block.event.cls == 'autotile') {
|
||||
@ -3128,6 +3136,14 @@ maps.prototype.hideBlock = function (x, y, floorId) {
|
||||
block.disable = true;
|
||||
core.setMapBlockDisabled(floorId, block.x, block.y, true);
|
||||
this._updateMapArray(floorId, block.x, block.y);
|
||||
Mota.require('@user/data-base').hook.emit(
|
||||
'setBlock',
|
||||
x,
|
||||
y,
|
||||
floorId,
|
||||
0,
|
||||
block?.id ?? 0
|
||||
);
|
||||
|
||||
// 删除动画,清除地图
|
||||
this._removeBlockFromMap(floorId, block);
|
||||
@ -3143,6 +3159,14 @@ maps.prototype.hideBlockByIndex = function (index, floorId) {
|
||||
block.disable = true;
|
||||
core.setMapBlockDisabled(floorId, block.x, block.y, true);
|
||||
this._updateMapArray(floorId, block.x, block.y);
|
||||
Mota.require('@user/data-base').hook.emit(
|
||||
'setBlock',
|
||||
x,
|
||||
y,
|
||||
floorId,
|
||||
0,
|
||||
block?.id ?? 0
|
||||
);
|
||||
};
|
||||
|
||||
////// 一次性隐藏多个block //////
|
||||
@ -3562,6 +3586,14 @@ maps.prototype.replaceBlock = function (fromNumber, toNumber, floorId) {
|
||||
block.event[one] = core.clone(toBlock.event[one]);
|
||||
}
|
||||
this._updateMapArray(floorId, block.x, block.y);
|
||||
Mota.require('@user/data-base').hook.emit(
|
||||
'setBlock',
|
||||
x,
|
||||
y,
|
||||
floorId,
|
||||
fromNumber,
|
||||
toNumber
|
||||
);
|
||||
}
|
||||
}, this);
|
||||
if (floorId == core.status.floorId) core.redrawMap();
|
||||
|
||||
@ -2241,15 +2241,19 @@ ui.prototype.drawChoices = async function (content, choices, width) {
|
||||
core.insertAction(choices[selected].action);
|
||||
core.doAction();
|
||||
} else {
|
||||
const { routedChoices, mainUIController } = Mota.require(
|
||||
'@user/client-modules'
|
||||
);
|
||||
const {
|
||||
routedChoices,
|
||||
mainUIController,
|
||||
HALF_WIDTH,
|
||||
HALF_HEIGHT,
|
||||
POP_BOX_WIDTH
|
||||
} = Mota.require('@user/client-modules');
|
||||
const choice = choices.map((v, i) => [i, v.text]);
|
||||
const selected = await routedChoices(
|
||||
mainUIController,
|
||||
choice,
|
||||
[420, 240, void 0, void 0, 0.5, 0.5],
|
||||
width,
|
||||
[HALF_WIDTH, HALF_HEIGHT, void 0, void 0, 0.5, 0.5],
|
||||
width ?? POP_BOX_WIDTH,
|
||||
{ title: content ?? '' }
|
||||
);
|
||||
core.insertAction(choices[selected].action);
|
||||
@ -2295,14 +2299,18 @@ ui.prototype.drawConfirmBox = async function (
|
||||
noCallback?.();
|
||||
}
|
||||
} else {
|
||||
const { routedConfirm, mainUIController } = Mota.require(
|
||||
'@user/client-modules'
|
||||
);
|
||||
const {
|
||||
routedConfirm,
|
||||
mainUIController,
|
||||
HALF_WIDTH,
|
||||
HALF_HEIGHT,
|
||||
POP_BOX_WIDTH
|
||||
} = Mota.require('@user/client-modules');
|
||||
const confirm = await routedConfirm(
|
||||
mainUIController,
|
||||
text,
|
||||
[420, 240, void 0, void 0, 0.5, 0.5],
|
||||
240
|
||||
[HALF_WIDTH, HALF_HEIGHT, void 0, void 0, 0.5, 0.5],
|
||||
POP_BOX_WIDTH
|
||||
);
|
||||
if (confirm) {
|
||||
yesCallback?.();
|
||||
|
||||
@ -1 +0,0 @@
|
||||
{"ratio":1,"se":{"1":"015-Jump01.opus"},"bitmaps":["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOmSURBVHhe7dwxaBZnGAfwIAUXF5dOIh2yGElECkbJmc8lKgpCB6FgRQqiUh2FgssHtmgHpUMLoqCCBIoIIoJ20MGhoLWDRYWKKCiIQgriIEIHq/7lvqWcRNMLd1/8/eAhfPne93mW5y7v3b2XAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgNnQ7XbnFUWxcHz50iXrVq/YuKHT2TpRFN/0Ip/z+3yfcRlfToX+lUZeMTy8aGPx+eYdW7dMHujuu3v86M8vzp6efHnp4vmXVy7/+m9+5nN+n+8zLuMzz4FA3xpevHhhzuo7t311cfLEsX9u3bj+aurJo1fPn029M/J9xmV85mV+8pQpof1y1l67cuXg+vHxbs7qD+7fqWz26SLzMj95ks9fA1ovTZp1fJYxWdpUNfaHRvIkX/I6CGi1rNvTrFnbVzXzTCP5kjf5y1LQLkNDQwvWjo19e+HcmVqbvxfJm/ypU5aEdsjSZF1ndM3hH76bqmreuiL5U8dSiFbJvfsvv9h09K/bf1Y2bl2R/KmTemVpaN5EMTo622f/XqRO6pWloXl5klvXXZ/pItcCqVeWhubl4vTGH1crG7buSJ3UK0tD8yZWj31/787tyoatO1In9crS0DwHAB+1bFeY7TtAvUid1CtLQ/Oypfn3365UNmzdkTqpV5aG5mXXZnZwVjVs3ZE6qVeWhuZlt+bePbuuTbfd+f9G8qdO6pWloXmDg+vnZ1ky288Ckj91Uq8sDe3Q+ysw0/3/00XyOvvTWjkrZ22erQqPHz2obOKZRvK93Qj3Jr+zP62VrcrZpnDkx8NP6zoIkif5ktdWaFovTZqX2vOCe97vrWrq943MT57k0/z0jbfLoc7omt3bvz6f25Yfel2Q8ZmX+clj2UPf6XQ6n+QVxixd0shZxuTVxjT331NPKhs/D7kyLuMzL/OTp0wJ/ScNvGpk5NOcybOLc+e2LQ+rlkb530ATRfFTxmW8xmfOyRk9tzL/u28ozZ/9PWn8cijMLXmPt/fmWO+JcX5mra/5mfNyIZt1fZ7m5jog1wO5w5Mnu5qfOS8HwKGD+3f8curkzTR+rgfGln62zB0ePgpZAuVMn//wlu0MGh8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAGDAy8BvQ2kjkQgG0HAAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIFSURBVHhe7do/SFVRGADwQwgK2iCkLlHqe+gSOiiRELzGwNEGtwhqaHQQ3N5QOQg6OERBJEXQ0iAimDbkEsqDFocIBJeEoKGx8b344DxwbWi55/eDC5fvnvH7vnv+JQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/otms3np89ZWXzw5BGWIpP+5uTl/vrb+9vTx8ovWeONGFET+DNV2vPT01o8na7/PVprt7wsPO62RufO9ntqcIqAIXx89W4zEP7m90Dm6PN35lOrt3VR7vZ9G+vMQqK6PV2cfRPK3anfakfwf0lj7Tbq+uzMwcSUPgeqKAojk73b/XAAv/QEoQix6LxbAuzT6Z2Nm6F6j0ejJQ6C6YqoTC98ogOj+79O1w4hZBFOE2AY9Hr55eHH6U6/f7c2fodqi0x/1T692pz+xJjD9oSix7x8FYPpDkSLp99LYr+j+OQTliI4fBfBqdnQyhwAowsnK88G4DPdt/v52nAvkMJQhboHGZbg4EIuFcA5DGb4MTB10zwEUAMWJbdBI/LgEF+85DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwb1L6CwYzmXU7DsBbAAAAAElFTkSuQmCC","","","","","","","",""],"frame_max":20,"frames":[[[0,0,-8,80,255,0,0],[1,0,-8,80,255,0,0]],[[0,0,-12,90,255,0,0],[1,0,-7,97,255,0,0]],[[0,0,-16,100,255,0,0],[1,0,-12,115,255,0,0]],[[0,0,-16,100,255,0,0],[1,0,-8,132,255,0,0]],[[0,0,-16,100,255,0,0],[1,0,-4,150,255,0,0]],[[0,0,-16,100,255,0,0],[1,0,-10,125,255,0,0]],[[0,0,-16,100,255,0,0],[1,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[1,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[1,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[1,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[1,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[1,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[1,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[1,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[1,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[1,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[1,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[1,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[1,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[1,0,-16,100,255,0,0]]],"pitch":{"1":100}}
|
||||
@ -1 +0,0 @@
|
||||
{"ratio":1,"se":"","bitmaps":["","","","","","","","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAQGSURBVHhe7dlLb1RVHABwTNxIjMaYaNyQuHCjH4Doxk/hQuPGyMpoWLhxV0mhxT6n7bSdPmk79EErfQGtQAkliBEUbKFQKI++S99tYpRoIse5l4H4EZzy+yX/3Hvn3nNW53/O/5zZBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDzrCIv75VkXt7LBQUFrydLv/u6OlHUUFaU/1Vxfv7b2U9g5yksLHyttrL0i1RVWXUyUTTQmKo6NzLUP3nx/Nk/+rrbr1ZXlvSWHTz4VvZz2DkShw69WZcsrx09d2b11o2xR6Mjpx///ONomJwYC3dv3wwTY7+G4cG+vxtqykdLDud/kG0GO0OipHD/yNCJ2cX52bC+thJWVx6GuZn7IXpeXV6K78evXg7nzw79k26uu9FQW/lltinkvsbaiubrv/0S1laXw9bm+rPYWF+NEyJKhNnpe2H6/lSIvutsaZpJpcqUQ+S+4oIDexuSFbOXL13IDPSZOAlWHi7Gg/9pEkQrQBTRu4W5mTB8qn8rVVX6SbYLyE2HDx9+tT5Z0X6qvycMn+iN6/1oto8SYHNjLbsSbITlzPODu7fDw8W5sJSJC+eGlysTxZ9nu4HcVFRw4P3ezqMLNzJlzcLcdDzwn16jgf8knqwC87MP4lUgKoHO/nAy1CRKvsl2A7mpuODbzzIz/+Ppe3eeDfaVzKY3XgHW18J29NvGeljPlD5RAjyN6ISoLllel+0GclNp4YGP+rrT29EGd3trM44oCaKNb3SNnjfWVuO6//7UZLwRju4nxq+F5vqqk9luIDdF5/9dR5tWrl75KSwvLTxbAaKjz2gPsL21kan758PdO7fC1OREmJwYD2eGBsP3Xa2b3e0t+7LdQO7qTDfub2uq2Th9aiBcHB2JZ/elhbn4v4Ao5mcehMmb43FcPH8m9Pd0hCMNNR3Z5pD7+o+l3+1KN9cdPVL/1/i1K/FJUFQGRcee0enPfxOgp6M1tDbWXs/Ly9udbQ47Q3dHy+CJvu5w68ZYXOtP3b4ZD/ooCaJrurH2UXMqOZBKli1WJ4o+zTaDneF4W9sbrc2pgUxZtHW8s+333s627XRj3cKJ3mOhpbF6OVVRsl5XXX6ooy21t6Wh5lJmFXgx2xR2jvb25nfaW5s+7OloeW9wcHB3Z0vTfFN99XpTbeXHBj7PneNd6X0NtZV/1iUSe0pLS18KIbyQfQXPBzM/z7Xu1tY9Zn4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4H9j165/AfjIptb38HVmAAAAAElFTkSuQmCC","",""],"frame_max":20,"frames":[[[7,0,-16,50,255,0,0]],[[7,0,-16,75,255,0,0]],[[7,0,-16,100,255,0,0]],[[7,0,-16,100,255,0,0]],[[7,0,-16,100,255,0,0]],[[7,0,-16,100,255,0,0]],[[7,0,-16,100,167,0,0]],[[7,0,-16,100,80,0,0]],[],[],[[7,0,-16,50,255,1,0]],[[7,0,-16,75,255,1,0]],[[7,0,-16,100,255,1,0]],[[7,0,-16,100,255,1,0]],[[7,0,-16,100,255,1,0]],[[7,0,-16,100,255,1,0]],[[7,0,-16,100,167,1,0]],[[7,0,-16,100,80,1,0]],[],[]]}
|
||||
@ -1 +0,0 @@
|
||||
{"ratio":1,"se":"","bitmaps":["data:image/png;base64,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","","","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAKASURBVHhe7drbS1RRFAdg/7e8TUGGk06ZmllERtFVhYzoQhj5IAo+FBNoQVFUDwUR9VBBT0Gg4qVSRJL+jp37mOU4KumTc873wWGY9/XbZ611dhUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs2uHAjnJpsCn/+QrZcnj4WDr2pFwCySQDINAEg9bbq8wWA1NuqyAWA1Ov7djp0jO/bdgDuLQ7YEFH5rn0/s1zIzeHIp1xZMa8Px+jScLg73xf653pDDEfhVZ0AUNmOju8NbZ9z4eDT2rJi7pk5EY5PNISzUy3h9lx36J09mbwRmh7XhvxoTWgY3iMAVL7WL7lQeFF+mre8r08KvbFYHfIPl38f1IT9/YqelLn+40IovDXskhFre/nY2ujnyYRY+APzV8OV2a6kl499f2xt/qefLw1Nz9/HJoiKEIs3GWJf14X82PZ6+ZHFOyWhiUPw6tN4v1oA2P3iQLuTITYWf/t4btuhgYo3tHAzeWs0PStfkUIqPPlVDGNLIyEWe9dkoaTQL053JC3TAft+0qj4cyjcmrsUzk21hvavuVB4WboJOj/dFpqfO/1JidjPr11/ds90Ju1N/lHNykBbLB1oXYYjVeLVhsPv/q0/k6F4cKW92ehr8FYX5aDixE3QasGvt1Gxd040JBug1o/lF+UgVTa7FbrZPSFIlc1uhbZ8yPnYRTY47ck0Wx8yTbsDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOxaVVW/AQK0iEut6BjHAAAAAElFTkSuQmCC","","","","","","","","","","",""],"frame_max":34,"frames":[[[0,8,-24,80,255,0,0],[3,8,-24,50,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,62,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,75,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,87,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,70,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,85,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,85,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,85,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,70,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,70,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,85,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,85,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]],[[0,8,-24,80,255,0,0],[3,8,-24,100,255,0,0]]]}
|
||||
@ -1 +0,0 @@
|
||||
{"ratio":1,"se":{"1":"008-System08.opus"},"bitmaps":["data:image/png;base64,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","","","","","","","","","","","","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJsSURBVHhe7dhLTxRBEABgfqlPxATjK4ACLoggLxVEAUVwF0gWMQQvriYmXrhx58hf4ARHEii3JktiPOHNtN+XdKbT3XOr6qmaLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA39Xo9ms1mNXLeWYayNRqNaLVasb+/HwcHB9XIea7lXucYlCcDfG9vLw4PD+Po6ChOTk6qkfNcyz1JQLHyls9APz4+jtPT0zg7O6tGznMt9/JM5ziUI+v8LHXyts+APz8/jws5z7XcyzN6AoqTzW7W+1ny5K3/p1zLvTyTZzuvQRkkAP+tHzsvq7Lmb0qgjwuPJAFlaG1Nx8/duarBvUwTvL44GEuzDyQAZfiyMRFf20lw2d+g7148jFfPeiUAZdj6MBLNlVrs1MeqAM9bPkudrPdz5DzXcm9p5n7Mjt6OqdotCUA5Vuf7I0fj7WA039eqOj+b3Rw5z735iTvxfLg7xh5fF/yUZXt1NN5M3YuFybvVM2/6rPMX288M/OlaTxX4o/1XY/JJtwSgPHnz766Px/RITxXkE0M3q6B/OnAtRvquVMkg+ClWlj+bS0NVL/Dt00zk79Hv2zPxee1pLLcb34uvQOc4lGdlri/WXg/E5vJw1RhvtBPi4ubPL0HnGJQr6/8M+hxz471V45u1f2cbypf/+bPkGR+8IfgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4F3R1/QLOSEVgXUy6EwAAAABJRU5ErkJggg==","",""],"frame_max":22,"frames":[[[0,8,-24,100,255,0,0],[12,8,-24,100,255,0,0]],[[0,8,-24,100,255,0,0],[12,8,-24,100,255,0,0]],[[0,8,-26,100,255,0,0],[12,8,-26,100,255,0,0]],[[0,8,-26,100,255,0,0],[12,8,-26,100,255,0,0]],[[0,8,-27,100,255,0,0],[12,8,-27,100,255,0,0]],[[0,8,-28,100,255,0,0],[12,8,-28,100,255,0,0]],[[0,8,-28,100,255,0,0],[12,8,-28,100,255,0,0]],[[0,8,-30,100,255,0,0],[12,8,-30,100,255,0,0]],[[0,8,-31,100,255,0,0],[12,8,-31,100,255,0,0]],[[0,8,-31,100,255,0,0],[12,8,-31,100,255,0,0]],[[0,8,-32,100,255,0,0],[12,8,-32,100,255,0,0]],[[0,8,-32,100,255,0,0],[12,8,-32,100,100,0,0]],[[0,8,-32,100,255,0,20],[12,8,-32,100,255,0,20]],[[0,8,-32,100,255,0,0],[12,8,-32,100,50,0,0]],[[0,8,-32,100,255,0,340],[12,8,-32,100,255,0,340]],[[0,8,-32,100,255,0,0],[12,8,-32,100,50,0,0]],[[0,8,-32,100,255,0,0],[12,8,-32,100,255,0,0]],[[0,8,-32,100,255,0,0],[12,8,-32,100,200,0,0]],[[0,8,-32,120,255,0,0],[12,8,-32,120,255,0,0]],[[0,8,-32,120,255,0,0],[12,8,-32,120,255,0,0]],[[0,8,-32,100,255,0,0],[12,8,-32,120,255,0,0]],[[0,8,-32,100,255,0,0],[12,8,-32,100,200,0,0]]],"pitch":{"1":100}}
|
||||
@ -1 +0,0 @@
|
||||
{"ratio":1,"se":"","bitmaps":["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOmSURBVHhe7dwxaBZnGAfwIAUXF5dOIh2yGElECkbJmc8lKgpCB6FgRQqiUh2FgssHtmgHpUMLoqCCBIoIIoJ20MGhoLWDRYWKKCiIQgriIEIHq/7lvqWcRNMLd1/8/eAhfPne93mW5y7v3b2XAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgNnQ7XbnFUWxcHz50iXrVq/YuKHT2TpRFN/0Ip/z+3yfcRlfToX+lUZeMTy8aGPx+eYdW7dMHujuu3v86M8vzp6efHnp4vmXVy7/+m9+5nN+n+8zLuMzz4FA3xpevHhhzuo7t311cfLEsX9u3bj+aurJo1fPn029M/J9xmV85mV+8pQpof1y1l67cuXg+vHxbs7qD+7fqWz26SLzMj95ks9fA1ovTZp1fJYxWdpUNfaHRvIkX/I6CGi1rNvTrFnbVzXzTCP5kjf5y1LQLkNDQwvWjo19e+HcmVqbvxfJm/ypU5aEdsjSZF1ndM3hH76bqmreuiL5U8dSiFbJvfsvv9h09K/bf1Y2bl2R/KmTemVpaN5EMTo622f/XqRO6pWloXl5klvXXZ/pItcCqVeWhubl4vTGH1crG7buSJ3UK0tD8yZWj31/787tyoatO1In9crS0DwHAB+1bFeY7TtAvUid1CtLQ/Oypfn3365UNmzdkTqpV5aG5mXXZnZwVjVs3ZE6qVeWhuZlt+bePbuuTbfd+f9G8qdO6pWloXmDg+vnZ1ky288Ckj91Uq8sDe3Q+ysw0/3/00XyOvvTWjkrZ22erQqPHz2obOKZRvK93Qj3Jr+zP62VrcrZpnDkx8NP6zoIkif5ktdWaFovTZqX2vOCe97vrWrq943MT57k0/z0jbfLoc7omt3bvz6f25Yfel2Q8ZmX+clj2UPf6XQ6n+QVxixd0shZxuTVxjT331NPKhs/D7kyLuMzL/OTp0wJ/ScNvGpk5NOcybOLc+e2LQ+rlkb530ATRfFTxmW8xmfOyRk9tzL/u28ozZ/9PWn8cijMLXmPt/fmWO+JcX5mra/5mfNyIZt1fZ7m5jog1wO5w5Mnu5qfOS8HwKGD+3f8curkzTR+rgfGln62zB0ePgpZAuVMn//wlu0MGh8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAGDAy8BvQ2kjkQgG0HAAAAAElFTkSuQmCC","","","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAESSURBVHhe7dcxCsJAEAXQRQQbG2slWCTBBNJEjJ1pPYR3SeNZvKZmIAcQS/c92Ga3/fOZTQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwm2maVmV534zjuF6uIA8R/nNVDf2pfl6a461t223cLc/w36L5I/x9U7/n8xq67mAAyEasPdH8Ef5rvX90RbEzAGQjwh5rTzR/hN8/gOxofAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+FZKH8I8GiC75Ap3AAAAAElFTkSuQmCC","","","","","",""],"frame_max":19,"frames":[[[0,0,-8,80,255,0,0]],[[0,0,-12,90,255,0,0]],[[0,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[3,-6,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[3,-6,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[3,-6,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[3,-6,-16,100,255,0,0],[3,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[3,-6,-16,100,255,0,0],[3,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[3,-6,-16,100,255,0,0],[3,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[3,-6,-16,100,255,0,0],[3,0,-16,100,255,0,0],[3,6,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[3,-6,-16,100,255,0,0],[3,0,-16,100,255,0,0],[3,6,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[3,-6,-16,100,255,0,0],[3,0,-16,100,255,0,0],[3,6,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[3,-6,-16,100,255,0,0],[3,0,-16,100,255,0,0],[3,6,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[3,-6,-16,100,255,0,0],[3,0,-16,100,255,0,0],[3,6,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[3,-6,-16,100,255,0,0],[3,0,-16,100,255,0,0],[3,6,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[3,-6,-16,100,255,0,0],[3,0,-16,100,255,0,0],[3,6,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[3,-6,-16,100,255,0,0],[3,0,-16,100,255,0,0],[3,6,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[3,-6,-16,100,255,0,0],[3,0,-16,100,255,0,0],[3,6,-16,100,255,0,0]]]}
|
||||
@ -1 +0,0 @@
|
||||
{"ratio":1,"se":{"1":"015-Jump01.opus"},"bitmaps":["","","","","","","","","","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJvSURBVHhe7doxa1NRFAfwIIKLS6sG2jShaCo0NZVSWrENzSbWQidFBzsoKCoObgWXIIji5tjZ0cHRwU0Htw5OfgJBNxcRF5V/eU9C8Avk9feDS8K7bzzn3nNOUgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBDo9/vH223Lx/L52AwOFI8hurrdDrHV+ZnN+6un9rd6i1fu7i4WC+2oPpWu92ZvatTn748Pv3744Pmz+W5udViC6ot5c7G0sJ8EuDHk/afJMGFs42bKYWKV2C8JchT5qS0yedocHdbrYlHvcm9BH9Wvue9YhvGV4I9Jc7OSv1OTvn7a5PPR2v8NL/ZT/mTW2Bw6eSbJEWxDeMrwT3YnHpaBvf+w9avpTPN7TwvXjm4IdYXZs+/uj7zOfspgYb3YWzlBsiE5+2tme9JgKxnm9P7qfuHx53lJCg3QW4Io1Aqo9frTeTUf73T+Fo2uimFhsucBHySJUvwUzk54ZMEZSn07nbz2+gtAGMvAV2u4tE/OfGTBC9vND7kRy+NLpWSUz7NbFYmP/8beaa5TeBnz+lPZZTNbur8rIwyc8onGRLsxWtQTQnyNLblpCeNbkaaL7am36v1qbyDkqaY9yf4y0RIEtxbq2+PlkJQKQnwzO9TBl05d2I3J39++c3fGtwAHBoJ9NwGSYY0wml4nf4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1VOr/QVCm7suZJuvmgAAAABJRU5ErkJggg=="],"frame_max":12,"frames":[[[9,0,-16,50,255,0,0]],[[9,0,-16,70,255,0,0]],[[9,0,-16,90,255,0,0]],[[9,0,-16,110,255,0,0]],[[9,0,-16,105,255,0,0]],[[9,0,-16,100,255,0,0]],[[9,0,-16,100,255,0,0]],[[9,0,-16,100,255,0,0]],[[9,0,-16,100,255,0,0]],[[9,0,-16,100,255,0,0]],[[9,0,-16,100,255,0,0]],[[9,0,-16,100,255,0,0]]],"pitch":{"1":100}}
|
||||
@ -1 +0,0 @@
|
||||
{"ratio":1,"se":"","bitmaps":["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOmSURBVHhe7dwxaBZnGAfwIAUXF5dOIh2yGElECkbJmc8lKgpCB6FgRQqiUh2FgssHtmgHpUMLoqCCBIoIIoJ20MGhoLWDRYWKKCiIQgriIEIHq/7lvqWcRNMLd1/8/eAhfPne93mW5y7v3b2XAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgNnQ7XbnFUWxcHz50iXrVq/YuKHT2TpRFN/0Ip/z+3yfcRlfToX+lUZeMTy8aGPx+eYdW7dMHujuu3v86M8vzp6efHnp4vmXVy7/+m9+5nN+n+8zLuMzz4FA3xpevHhhzuo7t311cfLEsX9u3bj+aurJo1fPn029M/J9xmV85mV+8pQpof1y1l67cuXg+vHxbs7qD+7fqWz26SLzMj95ks9fA1ovTZp1fJYxWdpUNfaHRvIkX/I6CGi1rNvTrFnbVzXzTCP5kjf5y1LQLkNDQwvWjo19e+HcmVqbvxfJm/ypU5aEdsjSZF1ndM3hH76bqmreuiL5U8dSiFbJvfsvv9h09K/bf1Y2bl2R/KmTemVpaN5EMTo622f/XqRO6pWloXl5klvXXZ/pItcCqVeWhubl4vTGH1crG7buSJ3UK0tD8yZWj31/787tyoatO1In9crS0DwHAB+1bFeY7TtAvUid1CtLQ/Oypfn3365UNmzdkTqpV5aG5mXXZnZwVjVs3ZE6qVeWhuZlt+bePbuuTbfd+f9G8qdO6pWloXmDg+vnZ1ky288Ckj91Uq8sDe3Q+ysw0/3/00XyOvvTWjkrZ22erQqPHz2obOKZRvK93Qj3Jr+zP62VrcrZpnDkx8NP6zoIkif5ktdWaFovTZqX2vOCe97vrWrq943MT57k0/z0jbfLoc7omt3bvz6f25Yfel2Q8ZmX+clj2UPf6XQ6n+QVxixd0shZxuTVxjT331NPKhs/D7kyLuMzL/OTp0wJ/ScNvGpk5NOcybOLc+e2LQ+rlkb530ATRfFTxmW8xmfOyRk9tzL/u28ozZ/9PWn8cijMLXmPt/fmWO+JcX5mra/5mfNyIZt1fZ7m5jog1wO5w5Mnu5qfOS8HwKGD+3f8curkzTR+rgfGln62zB0ePgpZAuVMn//wlu0MGh8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAGDAy8BvQ2kjkQgG0HAAAAAElFTkSuQmCC","","","","","","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJpSURBVHhe7dkxbhNBFAZgCyHRcANACsLZxI4CthGhQIpbKk7AJTgASpOWC3AAWk5AT5uWnjYtZZj/7ZggKgoaL98nrZKZ2XX13sybmRkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwD11cXNzZbrd3exP+Hwn89ZNHb1bH8y+b4+F974Zpy6z/dBgeJ+g3R4fXq6Ph62ox/Fgvho+bxfApf18sDs5fnRw865/ANJyvTxYJ8gR8C/5vLQku004iZDVI4O8SYbOYX0kCJmE+f30vT4K+gvxo/rkF+U3+Pzs9fZj+rAr99ZIVIuVRb8L+en54eJaAT6CPwT//Pj5tNWglUGb7jL0cHrztn8yWy+X9jPUm7K9seBPQPehr5k95U4Hf+1IC/b4SZDzJUj8A+67q/xbgmdXXx8O7JEESoFaEVu7crgzDTb3T2hKAyWjB/aGXQdf1JNCzGe7lT50E3R6LXtY3rT97h/oB2GfjjN8SILN8jj9bwI/1/5gI4+lPS5IW9DXeEiF9LsqYjD7jVwIkIeo+oLUrGcaxqwT+7nLMJphJqeBOoLdZvo4/67w/q0IvjcZy6Lrq/zb7Z6/QP4X9V0Ffl19tpu/lT54qf1p/zfy7ZGhJ8ufdAOy91PRJhF+XYL3uryRI/d/aGeuvw3TlbiBPZvrdnqAPAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf2U2+wlLJrmSzPwc7wAAAABJRU5ErkJggg==","","",""],"frame_max":30,"frames":[[[0,0,-8,80,255,0,0]],[[0,0,-12,90,255,0,0]],[[0,0,-16,100,255,0,0],[6,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[6,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[6,2,-20,85,255,1,0]],[[0,0,-16,100,255,0,0],[6,2,-20,85,255,1,0]],[[0,0,-16,100,255,0,0],[6,0,-70,100,255,1,180]],[[0,0,-16,100,255,0,0],[6,0,-70,100,255,1,180]],[[0,0,-16,100,255,0,0],[6,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[6,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[6,2,-20,85,255,1,0]],[[0,0,-16,100,255,0,0],[6,2,-20,85,255,1,0]],[[0,0,-16,100,255,0,0],[6,0,-70,100,255,1,180]],[[0,0,-16,100,255,0,0],[6,0,-70,100,255,1,180]],[[0,0,-16,100,255,0,0],[6,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[6,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[6,2,-20,85,255,1,0]],[[0,0,-16,100,255,0,0],[6,2,-20,85,255,1,0]],[[0,0,-16,100,255,0,0],[6,0,-70,100,255,1,180]],[[0,0,-16,100,255,0,0],[6,0,-70,100,255,1,180]],[[0,0,-16,100,255,0,0],[6,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[6,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[6,2,-20,85,255,1,0]],[[0,0,-16,100,255,0,0],[6,2,-20,85,255,1,0]],[[0,0,-16,100,255,0,0],[6,0,-70,100,255,1,180]],[[0,0,-16,100,255,0,0],[6,0,-70,100,255,1,180]],[[0,0,-16,100,255,0,0],[6,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[6,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[6,2,-20,85,160,1,0]],[[0,0,-16,100,255,0,0],[6,2,-30,50,160,1,0]]]}
|
||||
@ -1 +0,0 @@
|
||||
{"ratio":1,"se":{"1":"008-System08.opus"},"bitmaps":["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAR9SURBVHhe7dxdiFRlGADgJSKiiy4iii6ii6gLiSAEdXfP7ODP7C72R5CVpG0ripk/dFFWF8uKyZoRRhhKmYm2hZWg4JZZaRa1Vmq2mX+lW0rRppZhEoquNu9yDJIRSced2eV54GWYOd/3vjfvd+acM+dMBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMXQXFFxSe2QIVflspW31CZJfS5JxuQy1RPzMbnnNf++5/PYnh8X49Op0Hf1NH4mc32+we+d0DB2yZyZTT8uXrjg75XvtJ5Yt6at++MPV3fHa7yPz2N7jIvxMc9CoM/KZrNX12Uyd09sGPPeG0sWHe3YtOHkgV/3njry5/6zRmyPcTE+5sX8yJOmhPIXe+0RNTU33T506IyF8+cd+Wn39oLNfq6IeTE/8kQ+3waUvWjS+iQZMKnxobc/aFt5olBj/9+IPJEv8loElLWRlZU3NI6+b+n6j97vLtTM5xuRL/JG/rQUlJf6QYOuzJ+8Tl+zakVR9vxnRuSN/FEnLQnlIQ5Namuqhs59btbBQs1brIj8UcehEGUlrt0/cM9dL2/r2HiyUOMWKyJ/1Il6aWkovfyhyeC5c1r2H/6jq2DjFisif9SJemlpKL3aJGks1lWfc8Watvy5QKa6IS0NpZdvyKe/2dh+UQ9/TseWrz4/GfXS0lB6+W+AZ3Zt29IrC+CHHR2nol5aGkovv0eetWfX1oINW+zo/P67WAAtaWkovXxDNm/v2NQr3wBxJSjqpaWh9HJJMm3Dp2t7ZQG0f7KuO+qlpaH0ctXVd7YufvXoX4d+K9i0xYrIH3WiXloaSq++qurGJx6bvOlg176CjVusiPxRJ+qlpaH0stns5fnj8qlrV68q6k1wZ0bkjzpRLy0N5WF4ktw8bdKEz/Z17izYvBcakTfyR520JJSPUQMGXDaipmrk87NndnX93Fmwic83Il/kjfxRJy0J5SVuVa5LkrEvzX3292ItgsgT+SKvW6Epe9GktZmq+5ufenL3t5u/uKBLozE/8kQ+zU+fESepuUym5tHxjStaF71ybO/uHQUb/GwR42NezI88Tnrpc/JNe2n8tcmIJBk9Zfy4dxfMe+Fw/A1KnMweOvBLwcZvX7+ue/6Lcw/H+JgX8yNPmhL6nmjgukzmuniSK+7inNjw4N6tX3/5n0Oj+IHrrdcXH88lybx84w+P8Rqfficeap8+dUr7jq2b/10A8ZDL8jeXHs8vjqZhwwZfmw6F/qXnueFMpiouZ57+g6z4ZXfZkteO1WUzTbHXT4dC/xPX7x8eNWrch20rju7bs/NUnA/Mbm7qrE2SCbnKymvSYdA/xZWcluamR5Yva93eMqNpQ22m+vHhNTW33TFw4BXpEOi/4hAojvHrk+TWuJktFkS6CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHpLRcU/XNmNGxXfhVQAAAAASUVORK5CYII=","","","","","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAQBSURBVHhe7dnLT5RXGAdg3bpwoe7cmLhx58al/hGuFURUxiJ4o7a1jYyiEuQqoCKKAo3X1kvxQmJE0VYRLBVQoI6Co0m7M9FoYtIEPf2+cTR22e7GPk/y5mTO+easfufM+2WmAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwr/zZemHGkyMXFz5t716WPtxVNrH/7MqHTWcWZJcz0u0XFqQ7Lq9MH7lYNtlydlmq7tTCwWTrjOwy5KY/Os/NTh+7XJY+3v0g3X7p9cShn95ONJ9+9ajxdE80Lo2fSXdcXPqs81LP087Lrybaut5ONJ15nao6/mB0e3vZ+DfNszMbQa4JIUx/2n4pLwr2i6dHL4bJlnPh8d7TIVVzIqRqT4bH9SfHJlvOr5o8fGHsSVtXmDx4Ljxq/CE83HM8jO1oD/e/bnkxvHFfXpgWpme3hNyRbjk/78nhrquTh86HiaYfM8Eer+gIY9vbw/jOzjBe+f3Uw9oTz1INp6ZS9aei9WOZ+dHyI1H4W8PQxuYwWLr36tCGhnnZLSF3pOpOL001nnqTqjsZft/VGR58ezjc39IS1cHwYOuhMLqtLYxHN318KEbLj75f/+pgGN68P9xb3xR+LWkIA2ur3wwkqjOtEuSUscrOvLGKjqmxZBTuKPD3Nx8II5v2va+yA5mDEAc+U1+2ZOZGolt/KA7/uobQv7Ym3C7aPXV7TWVedkvIHSNbDy0Z2XLweRzs4Sj0w3G4NzRnxszn6KYf3hRXvLYv0/IMbWgKg9HN3/9FTbi1pjLcXFXx/Nbq3UuyW0LuGN1UN2uotPHMb6V7w4eKW5uPh+CTioN/b31j9uavDr+s3h1urNwRbhQkz/StSs7Kbgm5ZWBd/aK7xbVX7hRXv7tbXJe53eOgx4H/NPzx4bi7rj7cSeyJwr8rXCtIvru+YtuV3sLkouxWkJsGS2oX9CWqW/vW1rz8cAg+/BrENVgShT+av11UFW4W7gy9+cmXPXnlrb0rkv/4swxyVn9p48z+RFVJX6JmdKC4Nmp16jMHIR4zL7tRv3+jsCJcXV4+2pO/raR7WXJm9qvw+bhTVLW4P7GneyB6yY1fdPsSVR/7/WvLy7t785KLs4/C5+nWmur5txN7zsYtz89Rv99bsCNcz9929lr+d/Ozj8DnrS9RN/fWmsq23sKKv3oLkm09+bvmZpfg/2GwqHbOzdW7CnqLknOyUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8B9Om/Q0eNy8icv8m6wAAAABJRU5ErkJggg==","","","",""],"frame_max":20,"frames":[[[0,0,-8,80,255,0,0]],[[0,0,-12,90,255,0,0]],[[0,0,-16,100,255,0,0],[5,0,-24,75,255,0,0]],[[0,0,-16,100,255,0,0],[5,0,-21,83,255,0,0]],[[0,0,-16,100,255,0,0],[5,0,-18,91,255,0,0]],[[0,0,-16,100,255,0,0],[5,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[5,0,-20,87,255,0,0]],[[0,0,-16,100,255,0,0],[5,0,-24,75,255,0,0]],[[0,0,-16,100,255,0,0],[5,0,-20,87,255,0,0]],[[0,0,-16,100,255,0,0],[5,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[5,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[5,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[5,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[5,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[5,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[5,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[5,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[5,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[5,0,-16,100,255,0,0]],[[0,0,-16,100,255,0,0],[5,0,-16,100,255,0,0]]],"pitch":{"1":100}}
|
||||
@ -1 +0,0 @@
|
||||
{"ratio":1,"se":"","bitmaps":["","","","","","","","","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOVSURBVHhe7ddNb1VVFAZgsOjAiROY+Qv4B+0uQigQFAzEhKgDE9RoggOGapwoAxPiLzDGjwESbEHEolgELFgkXEQqNSCfQq0FS4vQlq8LvWe57+UMcOLU5Pg8ycrdu9l79q7VfWYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwL/rK4rl7xfFinIL/x/9EXM+azQGN840Bt/O6/LPUG0RMTtX276ieGlzXmxoRDxfL17My4fKI1BdOehzRiPm7m00ft+eN+/lBlhbbwzviXhME1BpzYDnerQW8c6RvGjW9twAb9Uj1t+YeTNvHymPQvXkgLeNFMXjPzQa4xfz5mqus7k+uhexbrL+5+apmJu3s8vjUC053HN2FsXrx/JiPNft8ndbboD1k3fjuSuT6/PWM4hqyuF+eFOjceZEXkznyi+fGMvVPRPx2mQ9VoxcPZm3/gNQTa/eK575MCf8VK7m9G+ayPVxboCXr96OpcNjseD4b6vK41Atq+80DmzMH71Hc+iv57qVq9kM796NePbKjVh85lJ0DJ7aXx6H6lg+Vcx/6kbEK/m935ND33wGNcP/aZGn/82IlZcno/PX4Ui1oejce3h+eQ2qYen47Q1PXp+JVXci3shPnk9y+D/I9UJuiFXX7kbXhfFIg2cjDfwUaffAhvIaVEPX6FRt2ZVb0WyCp/MHwOr87Fmdm2HlVBFLRqdiwemRSEdOROo/HO27+o+W16AaFg1PTHddmowl4zdj2UQ9ll+71/rtujQVC89ffmD6H4jUu7teXoNq6Dz3x/TCi2Ox6OJ4LBqZiMUjf7XWT5wdjTSUw3/oeKR9ByN9uSfat341XV6Damg/eWEgNT9yH6yh85GOnYp08Occ/kORdvVH+vybaN+yY6C8BtXQcfzc2jR4Oj91ch09Gan2y/3g9x+5P/l37ou0oy9ST290bPlibXkNqmFNT7S114YGWqE/8GPrYzftzsFvTv3ebyNt/TpSd29r+q/p6Wkrr0F1dH5/bF767nDtH8HPT560dWcr/GnTtlpnd/e88jhUT3O6d/T1r+vY0be/Ff785GlO/Y7N29eZ/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/jVmz/gak+0pbo61EDwAAAABJRU5ErkJggg==","","","","","",""],"frame_max":22,"frames":[[[8,8,-16,60,130,0,0]],[[8,8,-16,60,160,0,0]],[[8,8,-16,60,190,0,0]],[[8,8,-16,60,225,0,0]],[[8,8,-8,60,235,0,0]],[[8,8,-8,60,245,0,0]],[[8,8,-8,60,255,0,0]],[[8,8,0,60,255,0,0]],[[8,8,0,60,255,0,0]],[[8,8,0,60,255,0,0]],[[8,8,0,60,255,0,0]],[[8,8,0,60,255,0,0]],[[8,8,0,60,255,0,0]],[[8,8,0,60,255,0,0]],[[8,8,0,60,255,0,0]],[[8,8,0,60,255,0,0]],[[8,8,0,60,210,0,0]],[[8,8,0,60,160,0,0]],[[8,8,0,60,120,0,0]],[[8,8,8,60,100,0,0]],[[8,8,8,60,50,0,0]],[[8,8,8,60,20,0,0]]]}
|
||||
@ -1 +0,0 @@
|
||||
{"ratio":1,"se":"","bitmaps":["","","","","","","","","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAgnSURBVHhe7dt7UFT3FcBxiLFJNWPHTGrrNLa+G3U0cTAqWuMrIiK+QVQiKr6Sqn2MaW3GtrSdFG1NolZrx/hGAVl5LrDIQxFQ8IH4AEF2V/bF7rK7IKgoGsHTu7qxA0mb/FXXme9n5g7snXP465zf7/zuXXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9fIr5fuYDnhYi8kJ8vL0YpPz23vpV1Gu1LAQd1E3tuqljX9S9XtgzYUbWq19ZrH/hsutqdJsBzocIhr1y0NW+ML79ZvCzNsM1/r3b4NxWv0jC+vz9lGbA+13R4bdaNSyEJuocBMdo7EeobD+YlG0wjDug2ByrN4QkHvJN7xT9lvP3HStfdu4mVjTInQdc2YHtVTo9PK0crZf61TeAu/nUaU79l6fotG/IsLdGnbfKrbJMsSb0hKzRGicwyyiKNQTtfYxjNLgCvFp5k7Jlw5eb5xpZWKXe0SESKUV7/rFJ8/1yxyydU1ckT1s6q3aWdw9P06vmJeue2YlubRtcoh664JCK1RkJTaiQw0SBz1Mbm8GzLFhoAXm3yoUr/necdDXe/aJP7Dx/JrlKnhCTVSK8d1dd9oi4P9IS188YnlQOnHtGeXZpWI6nVjWJqeiBna5tlrkov0xKNMj3NLJEnrI9WFNizxh/If9mTBnifCYevTw5L0N8ts9+ThnutsqfMJbOP3ZCxRwx3fP5aPtET9h/Kij45pvoXU2N19UvUNW2ltrvySJmJrjruya9PmOWXhVZ5v9Aua0ucsrrYURGsLu3iyQS8z+Q4XeC7R3S31mdb5WhFoyxXmyVIZZApSSa7T/RFf0/YU1H5118Litepp8VVP1pz3PJ4bGp52Cb7rtTLb5Ti/7DEoRS+U9accz5YXlSbOCwmu6snFfA+4+J1vfrsvH7Rb69Wxh/SyZS4GpmRbJLgZFOzf0zFJE/YU2uzjX3mHNNbpyfoHs1TZv3PShpkUbJVxsUZZd3pOll+xiWrzjfIBxecDaHZ+lX/7SANeIeoqBcG7tbtn3bMIMFJRpmdapZ5mRYJzjDVjztcHuCJekIZf96NrRw/K0Vvc+8SUxNqZG6KQUbFGmVwnFkWFjjl/Ys3Ze2lRllT6iwPTK74GQ0ALye+o2O14VNTjPdmZlhk/nGrLMq1SUi29cqIvad/6gl6QqXq9MNt16IDVcbb7sPuXLVJQjUWCcu1y6Iip8wvbhC/vPq2fml1lb3jq/cN3lP8qicT8F6vbtd0m5luTl+QY5PwPLtE5NfJ4jxrybAtHeb3qPwX++7Wq4NSTG1BKRYJOV4rC07YZWGhUxafbZClZU3yRpazcVB8eXTPT/Jfa7/6K7+7H4kqO467kXyi3G+c2R3gFcQ3MFkbuTDXcjci3yFTNHWyLNeU2X+7pv2b3E1F3btsv544OcXcNjvTKgEZNglV4iOVmX+FUvzhF1yGZWfM6m4fHxvRsfjHfZ7dZ81x7YbFau3u5Zk1GdPitQcnxVYv8Ntd2tkTBDw7P4hK6hGSZVaH5NZJt4OW1hnp+j0dX4SN2l82YIzKpA3MtLaGKmNPiFL8K881uGf+lpWldWUTk67+beiu3L7uncKTouwaB15+e2vGO0lVdQePVDXaNp6xPVybZ5HwDEPrjFSj4d2juvXDYi7zpAjPmvj+ZO/VyC77zbf6qCzNY+PLP+y4io+KuTzqnWSrNTjbIWGnlJm/wNkWea7esbrUdWlSSvny7ptV32uXs2p354C9ueuq6ppO3W552Hyu7r4c0zbJmrxaCUs3yax0swSmmG1jj1a/6ckAnp0uHyf1DEgzrJ+Va//c/0hpsOe2h/j6xVatHqexuyZm2h/NP+V4MLvQdWes+sY/3jxw7i2fKNUrHYu//6cZ7x2rtGc1PWh7/LLM3twq0cqO4XfYqBS+RWZm1ipjlPnO+CTtaE8W8CyJ75iDF/rNyTROGrqrqK/n5hPKAXZkou6joGzH/YBcp/RTmU9PSNf/tvfOk6PaFb6bctDt9Lu4mZF5xuM7q259kWNtkUzjPdl8oUl8t+jFd+sN8d1hkK57TeKfZjVPz9D7eTKBZ0wp9NDHT2mi2v9fgPI5PNf0p5CT9upJmtoTQw+X/fzJIblD8Sufu0UljJyaXHUo4kzD/WVFN2VpgUv6HLLI4CMWCcq0yQS1TYan2mR+oVM5R9jyhsYWdfckA15KaYDFOYZBs7IMvZVDa492B92nlGbYEN97ourqzpWnXQ2RJY2y7HSDRCgNMERlk+k5Dgk+4ZSgky4JO1Mvi844m6Zl1fzhK80GeB2lSB8/snxcrB1XfY91218aE3tx3pIih2VJcaMMT3fIQqUB5hbUS//kOpmY55JJ+fUyocDVOrukoTYopyb6+3/X9PNkA97MXfRfXl9vdELxd5cWWD9aUHjzdmiho8l3X+2tkccdzgnZTvu4HKfeP89h9sutK3gr03R4QGL1Rveh+3/9PeC5MiX7ctdZ6uth45O17/04pnyezz+vzR4SXxk85Gj524PiLg0ZEl/e7/V/5f3IJ0r1nW9qJuD54/6qw5fX0wJ3XwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAb8vH598iZUyo36DZGQAAAABJRU5ErkJggg==","","","","","",""],"frame_max":22,"frames":[[[8,0,0,50,255,0,0]],[[8,0,-2,60,255,0,0]],[[8,0,-4,80,255,0,0]],[[8,0,-6,100,255,0,0]],[[8,0,-8,100,255,0,0]],[[8,0,-4,100,255,0,0]],[[8,0,0,100,255,0,0]],[[8,0,0,100,255,0,0]],[[8,0,-4,100,255,0,0]],[[8,0,-8,100,255,0,0]],[[8,0,-4,90,255,0,0]],[[8,0,0,90,255,0,0]],[[8,0,0,100,255,0,0]],[[8,0,-4,100,255,0,0]],[[8,0,-8,100,255,0,0]],[[8,0,-8,100,255,0,0]],[[8,0,-8,100,255,0,0]],[],[[8,0,-8,80,255,0,0]],[[8,0,-8,80,255,0,0]],[[8,0,-8,100,255,0,0]],[[8,0,-8,100,255,0,0]]]}
|
||||
@ -1 +0,0 @@
|
||||
{"ratio":2,"bitmaps":["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAD6SURBVHhe7dQ9SsVAFAXg+MNTeAhaWCrWLsHGUlCwsHMXgo2NjZ31a1yBVtaCrSvQ1i24hSSegbuEBAS/Dw7M3JnqZEgHAAAAAAAAAAAAAP/NOI5rySI5GobhNDlJ9uuYqaXo9RR83Pf9U/KevGV/kxwkW+2D1FWmkmKXKfYuZf8k38lrZpeZHSaLusaU2ktOyRcp+zP5Sl6yv858t53VNaaWcrdT9mPSXvpHskrxO3XMnNpvJYW3F/+Q9XmNmVv7raT055R+n/VejZlbyt5M6VfJbdYbNWZureyUvkzOagQAAAAAAAAAAAAAAAAAAAAAAAAAAADwd3XdL135q9NaPZ6+AAAAAElFTkSuQmCC","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJ4SURBVHhe7de7alRRFMbx3DSIgqiNIBJsBUUESyutBAsLO9/CWtL4BtorlgFBRGIEEQwxMSBiMWouGo2TCyaTC0lmJjM5ey+/HVfeYPZB8P+DNefsS/WdxZ5zugAAAAAAAAAAAAAAAAAAAID/lZkdVnX7ELmkkA+C1rU3xngthHBf1xsa9+1vQmcdhK7qUdAXFPh4URSjur+r6vdt6DQP/ZDqkkL/ZlZs6jqh8WnfghzU1UcOQlclmop3fBk5KPA+hXxRYb9LiWtsujR0Oe5b0Gke+hUF/TaFLtHrh29BDgr9jEJOoReqeur2RPfTvgWdpnzTG8yAQm6oYgq8uWfWLvaD1y+vkNko3G6FPJ9CT7ZbZpVVs9m1/Ydw3bchB3X9+dTxqVLwk4tmH1T1VnjlW5CDGj11/XDq+HTgfFwye/rVbKpmNjzDx1N2Cn8jhb+qF8mRObOX381m1sPww4od8y3IQZn3KPzdogjNyorZ8xmzaXX9cjOe8y3IxcNvNtq2OV41ezFrttYMv30ZOSn8dOavqBrjC3+PnfVGvOfLyE0P4HH6qhr9Zfbmp7p/Lg74EnJT+LdbeyGk4F/PhfhgMp7yJeSm9/yTavza2HyIYwuhPTRkvb6E3NT5fQr/2cRS2HhfDfVB/Qn7EnJLf7rq/pvTq6H9uRa2fBplSOGrTixvhdrUWqj7NMqi8HsV/shsLez5FMq004qXq+th14cok879/upO+FKp2GGfQll09PSsNOLVxXq85VMoUzr7F7fDIx+iTOnNR8fP2UGOnvKl8NPx8+RTPOpTKFt6CH4LAAAAAAAAAAAAAAAAAAAAAAAAAACAf1RX1x9x4x3SPdhnTAAAAABJRU5ErkJggg==","","","","","","","","","","","","","","","","","",""],"frame_max":5,"frames":[[[0,8,32,30,100]],[[0,-16,32,50,130]],[[0,-24,40,80,150]],[[0,-48,24,90,180],[1,-8,40,100,255]],[[0,-56,24,100,200],[1,-8,24,100,255]]]}
|
||||
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 15 KiB |
@ -21,26 +21,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
||||
"magictower.png"
|
||||
],
|
||||
"animates": [
|
||||
"amazed",
|
||||
"angry",
|
||||
"angry2",
|
||||
"bulb",
|
||||
"emm",
|
||||
"explosion1",
|
||||
"explosion2",
|
||||
"explosion3",
|
||||
"explosion4",
|
||||
"fire",
|
||||
"focus",
|
||||
"fret",
|
||||
"hand",
|
||||
"ice",
|
||||
"jianji",
|
||||
"luv",
|
||||
"magicAtk",
|
||||
"stone",
|
||||
"sweat",
|
||||
"sweat2",
|
||||
"sword",
|
||||
"zone"
|
||||
],
|
||||
@ -48,27 +29,13 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
||||
"bgm.opus"
|
||||
],
|
||||
"sounds": [
|
||||
"008-System08.opus",
|
||||
"015-Jump01.opus",
|
||||
"050-Explosion03.opus",
|
||||
"051-Explosion04.opus",
|
||||
"087-Action02.opus",
|
||||
"094-Attack06.opus",
|
||||
"118-Fire02.opus",
|
||||
"119-Fire03.opus",
|
||||
"120-Ice01.opus",
|
||||
"arrow.opus",
|
||||
"attack.opus",
|
||||
"bomb.opus",
|
||||
"cancel.opus",
|
||||
"centerFly.opus",
|
||||
"chapter.opus",
|
||||
"confirm.opus",
|
||||
"cursor.opus",
|
||||
"danger.opus",
|
||||
"door.opus",
|
||||
"drink.opus",
|
||||
"electron.opus",
|
||||
"equip.opus",
|
||||
"error.opus",
|
||||
"floor.opus",
|
||||
@ -78,15 +45,10 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
||||
"jump.opus",
|
||||
"load.opus",
|
||||
"open_ui.opus",
|
||||
"paper.opus",
|
||||
"pickaxe.opus",
|
||||
"quake.opus",
|
||||
"recovery.opus",
|
||||
"save.opus",
|
||||
"shake.opus",
|
||||
"shop.opus",
|
||||
"thunder.opus",
|
||||
"tree.opus",
|
||||
"zone.opus"
|
||||
],
|
||||
"fonts": [],
|
||||
@ -227,129 +189,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
||||
"startCanvas": [
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "在这里可以用事件来自定义绘制标题界面的背景图等"
|
||||
},
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "也可以直接切换到其他楼层(比如某个开始剧情楼层)进行操作。"
|
||||
},
|
||||
{
|
||||
"type": "showImage",
|
||||
"code": 1,
|
||||
"image": "bg.jpg",
|
||||
"loc": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"opacity": 1,
|
||||
"time": 0
|
||||
},
|
||||
{
|
||||
"type": "while",
|
||||
"condition": "1",
|
||||
"data": [
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "给用户提供选择项,这里简单的使用了choices事件"
|
||||
},
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "也可以贴按钮图然后使用等待操作来完成"
|
||||
},
|
||||
{
|
||||
"type": "choices",
|
||||
"choices": [
|
||||
{
|
||||
"text": "开始游戏",
|
||||
"action": [
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "检查bgm状态,下同"
|
||||
},
|
||||
{
|
||||
"type": "function",
|
||||
"function": "function(){\ncore.control.checkBgm()\n}"
|
||||
},
|
||||
{
|
||||
"type": "if",
|
||||
"condition": "main.levelChoose.length == 0",
|
||||
"true": [
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "直接开始游戏"
|
||||
}
|
||||
],
|
||||
"false": [
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "动态生成难度选择项"
|
||||
},
|
||||
{
|
||||
"type": "function",
|
||||
"function": "function(){\nvar choices = [];\nmain.levelChoose.forEach(function (one) {\n\tchoices.push({\n\t\t\"text\": one.title || '',\n\t\t\"action\": [\n\t\t\t{ \"type\": \"function\", \"function\": \"function() { core.status.hard = '\" + (one.name || '') + \"'; }\" }\n\t\t]\n\t});\n})\ncore.insertAction({ \"type\": \"choices\", \"choices\": choices });\n}"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "hideImage",
|
||||
"code": 1,
|
||||
"time": 0
|
||||
},
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "成功选择难度"
|
||||
},
|
||||
{
|
||||
"type": "break"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"text": "读取存档",
|
||||
"action": [
|
||||
{
|
||||
"type": "function",
|
||||
"function": "function(){\ncore.control.checkBgm()\n}"
|
||||
},
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "简单的使用“呼出读档界面”来处理"
|
||||
},
|
||||
{
|
||||
"type": "callLoad"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"text": "回放录像",
|
||||
"action": [
|
||||
{
|
||||
"type": "function",
|
||||
"function": "function(){\ncore.control.checkBgm()\n}"
|
||||
},
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "这段代码会弹框选择录像文件"
|
||||
},
|
||||
{
|
||||
"type": "if",
|
||||
"condition": "(!core.isReplaying())",
|
||||
"true": [
|
||||
{
|
||||
"type": "function",
|
||||
"function": "function(){\ncore.chooseReplayFile()\n}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "接下来会执行startText中的事件"
|
||||
"text": "这个事件现在已经没有用了,修改标题界面请直接修改标题组件,可以参考说明文档。"
|
||||
}
|
||||
],
|
||||
"startText": [
|
||||
@ -361,6 +201,10 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
||||
"type": "text",
|
||||
"text": "同时 2.B 样板也新增了很多接口,在造塔时可以提供非常大的帮助!"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"text": "不过由于重构并不简单,有一些 2.x 有的功能在 2.B 中暂时被移除,将会在 2.B 的后续更新中重新添加回来。"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"text": "这里是开场剧情,可以在编辑器全塔属性中修改,试着修改一下吧!"
|
||||
@ -398,105 +242,36 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
||||
"levelUp": [
|
||||
{
|
||||
"need": "0",
|
||||
"title": "原始人",
|
||||
"action": []
|
||||
},
|
||||
{
|
||||
"need": "3000",
|
||||
"title": "野蛮人",
|
||||
"clear": true,
|
||||
"title": "萌新一段",
|
||||
"action": [
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "status:atk",
|
||||
"operator": "+=",
|
||||
"value": "10"
|
||||
},
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "status:def",
|
||||
"operator": "+=",
|
||||
"value": "10"
|
||||
},
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "status:mdef",
|
||||
"operator": "+=",
|
||||
"value": "200"
|
||||
},
|
||||
"恭喜升级!攻防+10,智慧+200!",
|
||||
"行走图改变!",
|
||||
{
|
||||
"type": "setHeroIcon",
|
||||
"name": "hero2.png"
|
||||
"type": "comment",
|
||||
"text": "这里的等级需要在全塔属性处开启升级功能才有效"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"need": "10000",
|
||||
"title": "低级智人",
|
||||
"need": "20",
|
||||
"title": "萌新二段",
|
||||
"clear": true,
|
||||
"action": [
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "status:mdef",
|
||||
"operator": "+=",
|
||||
"value": "1000"
|
||||
},
|
||||
"恭喜升级!智慧+1000!"
|
||||
]
|
||||
},
|
||||
{
|
||||
"need": "25000",
|
||||
"title": "中级智人",
|
||||
"clear": true,
|
||||
"action": [
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "status:mdef",
|
||||
"operator": "+=",
|
||||
"value": "2000"
|
||||
},
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "status:atk",
|
||||
"operator": "+=",
|
||||
"value": "25"
|
||||
},
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "status:def",
|
||||
"operator": "+=",
|
||||
"value": "25"
|
||||
},
|
||||
"恭喜升级!攻防+25,智慧+2000!"
|
||||
"value": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"need": "100000",
|
||||
"title": "高级智人",
|
||||
"need": "100",
|
||||
"title": "萌新三段",
|
||||
"clear": true,
|
||||
"action": [
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "status:mdef",
|
||||
"operator": "+=",
|
||||
"value": "10000"
|
||||
},
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "status:atk",
|
||||
"operator": "+=",
|
||||
"value": "250"
|
||||
},
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "status:def",
|
||||
"operator": "+=",
|
||||
"value": "250"
|
||||
},
|
||||
"恭喜升级!攻防+250,智慧+10000!",
|
||||
"这是这个游戏的最后一级,第三章的玩法会改变,不再设置等级"
|
||||
"type": "comment",
|
||||
"text": "开启扣除经验时,升级后经验归零并升级,这样就不用计算先前升级所需经验了,只需要填写当前等级升级所需经验即可。"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@ -57,6 +57,10 @@ main.floors.sample0=
|
||||
{
|
||||
"type": "text",
|
||||
"text": "除此之外还有一些因为各种原因在 2.B 中暂时删除的功能,将会在之后的版本中逐步重新添加。"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"text": "由于一些原因,当前版本中隐藏图块的动画也无法显示,将会在 2.B.1 中修复。"
|
||||
}
|
||||
],
|
||||
"events": {
|
||||
|
||||
@ -29,8 +29,8 @@ main.floors.sample1=
|
||||
[151, 0,151,151, 0, 87, 0,152,152,152, 85,153,153],
|
||||
[ 0, 0, 0,151, 0, 0, 0,152,152,221, 0,221,153],
|
||||
[ 0, 0, 0,151, 0, 0, 0,121, 0, 0, 0, 0,153],
|
||||
[151, 0,151,151, 0,153,153,153,153,153,153,153,153],
|
||||
[ 0, 0, 0, 0, 0, 0, 0,164, 0, 0,163, 0, 0],
|
||||
[151, 0,151,151, 81,153,153,153,153,153,153,153,153],
|
||||
[ 0, 0, 0,121, 0, 0, 0,164, 0, 0,163, 0, 0],
|
||||
[ 1, 1, 1, 1, 0, 20, 0, 0, 0,162, 0,161, 0],
|
||||
[ 1, 0,123, 1, 0, 20,124, 0,121, 0,122, 0,126],
|
||||
[ 1, 0, 0, 1, 88, 20, 0, 0, 0, 0, 0, 0, 0]
|
||||
@ -816,6 +816,55 @@ main.floors.sample1=
|
||||
"icon": "recluse",
|
||||
"text": "具体可参见样板中本事件的写法。"
|
||||
}
|
||||
],
|
||||
"4,8": {
|
||||
"trigger": "action",
|
||||
"enable": true,
|
||||
"noPass": null,
|
||||
"displayDamage": true,
|
||||
"opacity": 1,
|
||||
"filter": {
|
||||
"blur": 0,
|
||||
"hue": 0,
|
||||
"grayscale": 0,
|
||||
"invert": false,
|
||||
"shadow": 0
|
||||
},
|
||||
"data": [
|
||||
{
|
||||
"type": "text",
|
||||
"title": "样板提示",
|
||||
"text": "在 2.B 中新增了自定义自动元件连接方式的功能,可以让自动元件与另一种图块之间实现连接效果,就像这里的门一样,左右的自动元件会与门连接起来,对野外地图有一定的帮助。"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"title": "样板提示",
|
||||
"text": "你可以修改自动元件的连接属性来修改此行为,参考样板的自动元件写法。"
|
||||
},
|
||||
{
|
||||
"type": "openDoor"
|
||||
}
|
||||
]
|
||||
},
|
||||
"3,9": [
|
||||
{
|
||||
"type": "text",
|
||||
"title": "老人",
|
||||
"icon": "man",
|
||||
"text": "在 2.B 中还新增了热重载功能,它允许你修改怪物属性、地图等内容时自动更新,而不需要刷新游戏页面。"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"title": "老人",
|
||||
"icon": "man",
|
||||
"text": "包括地图事件也可以热重载,如果你编写好事件并保存,那么游戏内就可以立刻起效果。"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"title": "老人",
|
||||
"icon": "man",
|
||||
"text": "试着给我添加一个隐藏事件让我消失吧!"
|
||||
}
|
||||
]
|
||||
},
|
||||
"changeFloor": {
|
||||
|
||||
@ -389,7 +389,7 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
|
||||
"cls": "tools",
|
||||
"name": "中心对称飞行器",
|
||||
"text": "可以飞向当前楼层中心对称的位置",
|
||||
"useItemEffect": "core.playSound('centerFly.mp3');\ncore.clearMap('hero');\ncore.setHeroLoc('x', core.bigmap.width - 1 - core.getHeroLoc('x'));\ncore.setHeroLoc('y', core.bigmap.height - 1 - core.getHeroLoc('y'));\ncore.drawHero();\ncore.drawTip(core.material.items[itemId].name + '使用成功');",
|
||||
"useItemEffect": "core.playSound('centerFly.opus');\ncore.clearMap('hero');\ncore.setHeroLoc('x', core.bigmap.width - 1 - core.getHeroLoc('x'));\ncore.setHeroLoc('y', core.bigmap.height - 1 - core.getHeroLoc('y'));\ncore.drawHero();\ncore.drawTip(core.material.items[itemId].name + '使用成功');",
|
||||
"canUseItemEffect": "(function () {\n\tvar toX = core.bigmap.width - 1 - core.getHeroLoc('x'),\n\t\ttoY = core.bigmap.height - 1 - core.getHeroLoc('y');\n\tvar id = core.getBlockId(toX, toY);\n\treturn id == null;\n})();"
|
||||
},
|
||||
"upFly": {
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
|
||||
{
|
||||
"1": {"cls":"animates","id":"yellowWall","canBreak":true,"animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{}}},
|
||||
"2": {"cls":"animates","id":"whiteWall","canBreak":true,"animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{}}},
|
||||
"3": {"cls":"animates","id":"blueWall","canBreak":true,"animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{}}},
|
||||
"1": {"cls":"animates","id":"yellowWall","canBreak":true,"animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{}}},
|
||||
"2": {"cls":"animates","id":"whiteWall","canBreak":true,"animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{}}},
|
||||
"3": {"cls":"animates","id":"blueWall","canBreak":true,"animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{}}},
|
||||
"4": {"cls":"animates","id":"star","name":"星空"},
|
||||
"5": {"cls":"animates","id":"lava","name":"岩浆"},
|
||||
"6": {"cls":"animates","id":"ice","doorInfo":{"time":160,"openSound":"破冰镐","closeSound":"door.mp3","keys":{"icePickaxe":1}},"animate":1},
|
||||
"6": {"cls":"animates","id":"ice","doorInfo":{"time":160,"openSound":"破冰镐","closeSound":"door.opus","keys":{"icePickaxe":1}},"animate":1},
|
||||
"7": {"cls":"terrains","id":"blueShopLeft"},
|
||||
"8": {"cls":"terrains","id":"blueShopRight"},
|
||||
"9": {"cls":"terrains","id":"pinkShopLeft"},
|
||||
@ -68,12 +68,12 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
|
||||
"71": {"cls":"items","id":"shield0"},
|
||||
"72": {"cls":"items","id":"skill1"},
|
||||
"73": {"cls":"items","id":"wand"},
|
||||
"81": {"cls":"animates","id":"yellowDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{"yellowKey":1}},"name":"黄门"},
|
||||
"82": {"cls":"animates","id":"blueDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{"blueKey":1}},"name":"蓝门"},
|
||||
"83": {"cls":"animates","id":"redDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{"redKey":1}},"name":"红门"},
|
||||
"84": {"cls":"animates","id":"greenDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{"greenKey":1}},"name":"绿门"},
|
||||
"85": {"cls":"animates","id":"specialDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{"specialKey":1}},"name":"机关门"},
|
||||
"86": {"cls":"animates","id":"steelDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{"steelKey":1}},"name":"铁门"},
|
||||
"81": {"cls":"animates","id":"yellowDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"yellowKey":1}},"name":"黄门"},
|
||||
"82": {"cls":"animates","id":"blueDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"blueKey":1}},"name":"蓝门"},
|
||||
"83": {"cls":"animates","id":"redDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"redKey":1}},"name":"红门"},
|
||||
"84": {"cls":"animates","id":"greenDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"greenKey":1}},"name":"绿门"},
|
||||
"85": {"cls":"animates","id":"specialDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"specialKey":1}},"name":"机关门"},
|
||||
"86": {"cls":"animates","id":"steelDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"steelKey":1}},"name":"铁门"},
|
||||
"87": {"cls":"terrains","id":"upFloor","canPass":true},
|
||||
"88": {"cls":"terrains","id":"downFloor","canPass":true},
|
||||
"89": {"cls":"animates","id":"portal","canPass":true},
|
||||
@ -86,7 +86,7 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
|
||||
"102": {"cls":"animates","id":"crystalBottom"},
|
||||
"103": {"cls":"animates","id":"fire"},
|
||||
"104": {"cls":"animates","id":"switch"},
|
||||
"109": {"cls":"animates","id":"magentaWall","canBreak":true,"animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{}}},
|
||||
"109": {"cls":"animates","id":"magentaWall","canBreak":true,"animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{}}},
|
||||
"121": {"cls":"npcs","id":"man"},
|
||||
"122": {"cls":"npcs","id":"trader"},
|
||||
"123": {"cls":"npcs","id":"thief"},
|
||||
@ -105,9 +105,9 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
|
||||
"136": {"cls":"npc48","id":"npc3","faceIds":{"down":"npc0","left":"npc1","right":"npc2","up":"npc3"},"animate":1},
|
||||
"137": {"cls":"npcs","id":"greenMan"},
|
||||
"138": {"cls":"npcs","id":"blueTrader"},
|
||||
"151": {"cls":"autotile","id":"autotile1"},
|
||||
"151": {"cls":"autotile","id":"autotile1","autotileConnection":["yellowDoor"]},
|
||||
"152": {"cls":"autotile","id":"autotile2"},
|
||||
"153": {"cls":"autotile","id":"autotile3"},
|
||||
"153": {"cls":"autotile","id":"autotile3","autotileConnection":["yellowDoor"]},
|
||||
"161": {"cls":"terrains","id":"arrowUp","canPass":true,"cannotOut":["left","right","down"],"cannotIn":["up"]},
|
||||
"162": {"cls":"terrains","id":"arrowDown","canPass":true,"cannotOut":["left","right","up"],"cannotIn":["down"]},
|
||||
"163": {"cls":"terrains","id":"arrowLeft","canPass":true,"cannotOut":["up","down","right"],"cannotIn":["left"]},
|
||||
@ -212,12 +212,12 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
|
||||
"316": {"cls":"terrains","id":"sWallTLR","name":"薄墙-上左右","cannotOut":["up","left","right"],"cannotIn":["up","left","right"]},
|
||||
"317": {"cls":"terrains","id":"sWallTBR","name":"薄墙-上下右","cannotOut":["up","down","right"],"cannotIn":["up","down","right"]},
|
||||
"318": {"cls":"terrains","id":"sWallTBL","name":"薄墙-上下左","cannotOut":["up","down","left"],"cannotIn":["up","down","left"]},
|
||||
"319": {"cls":"npc48","id":"tallYellowDoor","trigger":"openDoor","name":"高黄门","animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{"yellowKey":1}}},
|
||||
"320": {"cls":"npc48","id":"tallBlueDoor","trigger":"openDoor","name":"高蓝门","animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{"blueKey":1}}},
|
||||
"321": {"cls":"npc48","id":"tallRedDoor","trigger":"openDoor","name":"高红门","animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{"redKey":1}}},
|
||||
"322": {"cls":"npc48","id":"tallGreenDoor","trigger":"openDoor","name":"高绿门","animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{"greenKey":1}}},
|
||||
"323": {"cls":"npc48","id":"tallSpecialDoor","trigger":"openDoor","name":"高机关门","animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{"specialKey":1}}},
|
||||
"324": {"cls":"npc48","id":"tallSteelDoor","trigger":"openDoor","name":"高铁门","animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{"steelKey":1}}},
|
||||
"319": {"cls":"npc48","id":"tallYellowDoor","trigger":"openDoor","name":"高黄门","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"yellowKey":1}}},
|
||||
"320": {"cls":"npc48","id":"tallBlueDoor","trigger":"openDoor","name":"高蓝门","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"blueKey":1}}},
|
||||
"321": {"cls":"npc48","id":"tallRedDoor","trigger":"openDoor","name":"高红门","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"redKey":1}}},
|
||||
"322": {"cls":"npc48","id":"tallGreenDoor","trigger":"openDoor","name":"高绿门","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"greenKey":1}}},
|
||||
"323": {"cls":"npc48","id":"tallSpecialDoor","trigger":"openDoor","name":"高机关门","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"specialKey":1}}},
|
||||
"324": {"cls":"npc48","id":"tallSteelDoor","trigger":"openDoor","name":"高铁门","animate":1,"doorInfo":{"time":160,"openSound":"door.opus","closeSound":"door.opus","keys":{"steelKey":1}}},
|
||||
"325": {"cls":"enemys","id":"keiskeiFairy"},
|
||||
"326": {"cls":"enemys","id":"tulipFairy"},
|
||||
"327": {"cls":"enemy48","id":"bearDown"},
|
||||
|
||||
|
Before Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 685 KiB |
|
Before Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 628 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 735 KiB |
|
Before Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 628 KiB |
|
Before Width: | Height: | Size: 95 KiB |
@ -59,6 +59,7 @@ body {
|
||||
left: 0;
|
||||
background: rgba(127, 127, 127, 0.6);
|
||||
z-index: 2000;
|
||||
color: black;
|
||||
}
|
||||
|
||||
#inputDialog {
|
||||
@ -69,6 +70,7 @@ body {
|
||||
background: white;
|
||||
width: 250px;
|
||||
min-height: 50px;
|
||||
color: black;
|
||||
}
|
||||
|
||||
#inputMessage {
|
||||
@ -76,6 +78,7 @@ body {
|
||||
text-align: left;
|
||||
margin-left: 8%;
|
||||
margin-right: 5%;
|
||||
color: black;
|
||||
}
|
||||
|
||||
#inputBox {
|
||||
@ -85,16 +88,19 @@ body {
|
||||
padding: 5px 3px;
|
||||
border: 1px solid;
|
||||
background: #f0f0f0;
|
||||
color: black;
|
||||
}
|
||||
|
||||
#inputYes {
|
||||
margin-bottom: 15px;
|
||||
margin-left: 8%;
|
||||
color: black;
|
||||
}
|
||||
|
||||
#inputNo {
|
||||
float: right;
|
||||
margin-right: 10%;
|
||||
color: black;
|
||||
}
|
||||
|
||||
#_selector,
|
||||
|
||||
49
script/pack-template.ts
Normal file
@ -0,0 +1,49 @@
|
||||
/* eslint-disable no-console */
|
||||
import { copy, emptyDir, ensureDir } from 'fs-extra';
|
||||
import { resolve } from 'path';
|
||||
|
||||
const base = resolve(process.cwd());
|
||||
const template = resolve(base, 'template');
|
||||
|
||||
async function packTemplate() {
|
||||
await ensureDir(template);
|
||||
await emptyDir(template);
|
||||
|
||||
// 复制必要文件
|
||||
const toCopy = [
|
||||
'.vscode',
|
||||
'packages',
|
||||
'packages-user',
|
||||
'public',
|
||||
'script',
|
||||
'src',
|
||||
'.gitignore',
|
||||
'.madgerc',
|
||||
'.prettierignore',
|
||||
'.prettierrc',
|
||||
'eslint.config.js',
|
||||
'index.html',
|
||||
'LICENSE',
|
||||
'package.json',
|
||||
'pnpm-lock.yaml',
|
||||
'pnpm-workspace.yaml',
|
||||
'README.md',
|
||||
'tsconfig.json',
|
||||
'tsconfig.node.json',
|
||||
'vite.config.ts'
|
||||
];
|
||||
|
||||
await Promise.all(
|
||||
toCopy.map(v =>
|
||||
copy(resolve(base, v), resolve(template, v), {
|
||||
filter: src => !src.includes('node_modules')
|
||||
})
|
||||
)
|
||||
);
|
||||
|
||||
console.log(`样板打包完成`);
|
||||
}
|
||||
|
||||
(() => {
|
||||
packTemplate();
|
||||
})();
|
||||
@ -127,5 +127,6 @@ div.toolbar-editor-item {
|
||||
position: fixed;
|
||||
border: none;
|
||||
z-index: 1000;
|
||||
background-color: transparent;
|
||||
background-color: black;
|
||||
transform-origin: 0 0;
|
||||
}
|
||||
|
||||
529
src/types/source/cls.d.ts
vendored
@ -4,7 +4,7 @@ interface IdToCls {
|
||||
blueWall: 'animates';
|
||||
star: 'animates';
|
||||
lava: 'animates';
|
||||
ice: 'terrains';
|
||||
ice: 'animates';
|
||||
blueShopLeft: 'terrains';
|
||||
blueShopRight: 'terrains';
|
||||
pinkShopLeft: 'terrains';
|
||||
@ -13,7 +13,7 @@ interface IdToCls {
|
||||
poisonNet: 'animates';
|
||||
weakNet: 'animates';
|
||||
curseNet: 'animates';
|
||||
blueWater: 'animates';
|
||||
blueLava: 'animates';
|
||||
water: 'animates';
|
||||
autotile: 'autotile';
|
||||
yellowKey: 'items';
|
||||
@ -58,7 +58,7 @@ interface IdToCls {
|
||||
curseWine: 'items';
|
||||
superWine: 'items';
|
||||
dagger: 'items';
|
||||
silverCoin: 'items';
|
||||
pack: 'items';
|
||||
amulet: 'items';
|
||||
hammer: 'items';
|
||||
lifeWand: 'items';
|
||||
@ -85,10 +85,6 @@ interface IdToCls {
|
||||
crystalBottom: 'animates';
|
||||
fire: 'animates';
|
||||
switch: 'animates';
|
||||
steelDoor2: 'animates';
|
||||
steelDoor3: 'animates';
|
||||
iceDoor: 'animates';
|
||||
iceDoor2: 'animates';
|
||||
magentaWall: 'animates';
|
||||
man: 'npcs';
|
||||
trader: 'npcs';
|
||||
@ -108,16 +104,6 @@ interface IdToCls {
|
||||
npc3: 'npc48';
|
||||
greenMan: 'npcs';
|
||||
blueTrader: 'npcs';
|
||||
redMSNpc: 'npcs';
|
||||
blackTrader: 'npcs';
|
||||
autotile4: 'autotile';
|
||||
autotile5: 'autotile';
|
||||
autotile6: 'autotile';
|
||||
autotile7: 'autotile';
|
||||
autotile8: 'autotile';
|
||||
autotile9: 'autotile';
|
||||
autotile10: 'autotile';
|
||||
autotile11: 'autotile';
|
||||
autotile1: 'autotile';
|
||||
autotile2: 'autotile';
|
||||
autotile3: 'autotile';
|
||||
@ -131,22 +117,6 @@ interface IdToCls {
|
||||
flower: 'terrains';
|
||||
box: 'terrains';
|
||||
boxed: 'terrains';
|
||||
octopusLeftTop: 'npcs';
|
||||
octopusTop: 'npcs';
|
||||
octopusRightTop: 'npcs';
|
||||
octopusLeft: 'npcs';
|
||||
octopusCenter: 'npcs';
|
||||
octopusRight: 'npcs';
|
||||
octopusLeftBottom: 'npcs';
|
||||
octopusRightBottom: 'npcs';
|
||||
dragonLeftTop: 'npcs';
|
||||
dragonTop: 'npcs';
|
||||
dragonRightTop: 'npcs';
|
||||
dragonLeft: 'npcs';
|
||||
dragonCenter: 'npcs';
|
||||
dragonRight: 'npcs';
|
||||
dragonLeftBottom: 'npcs';
|
||||
dragonRightBottom: 'npcs';
|
||||
greenSlime: 'enemys';
|
||||
redSlime: 'enemys';
|
||||
blackSlime: 'enemys';
|
||||
@ -214,15 +184,10 @@ interface IdToCls {
|
||||
silverSlimelord: 'enemys';
|
||||
goldSlimelord: 'enemys';
|
||||
grayRock: 'enemys';
|
||||
blueRock: 'enemys';
|
||||
skeletonLite: 'enemys';
|
||||
greenKnight: 'enemys';
|
||||
bowman: 'enemys';
|
||||
liteBowman: 'enemys';
|
||||
crimsonZombie: 'enemys';
|
||||
frozenSkeleton: 'enemys';
|
||||
purpleBowman: 'enemys';
|
||||
watcherSlime: 'enemys';
|
||||
mutantSlimeman: 'enemys';
|
||||
frostBat: 'enemys';
|
||||
devilKnight: 'enemys';
|
||||
grayPriest: 'enemys';
|
||||
@ -246,478 +211,16 @@ interface IdToCls {
|
||||
sWallTLR: 'terrains';
|
||||
sWallTBR: 'terrains';
|
||||
sWallTBL: 'terrains';
|
||||
I319: 'items';
|
||||
I320: 'items';
|
||||
I321: 'items';
|
||||
I322: 'items';
|
||||
I323: 'items';
|
||||
I324: 'items';
|
||||
I325: 'items';
|
||||
I326: 'items';
|
||||
I327: 'items';
|
||||
I328: 'items';
|
||||
I329: 'items';
|
||||
I330: 'items';
|
||||
T331: 'terrains';
|
||||
T332: 'terrains';
|
||||
T333: 'terrains';
|
||||
T334: 'terrains';
|
||||
T335: 'terrains';
|
||||
T336: 'terrains';
|
||||
T337: 'terrains';
|
||||
T338: 'terrains';
|
||||
T339: 'terrains';
|
||||
T340: 'terrains';
|
||||
T341: 'terrains';
|
||||
T342: 'terrains';
|
||||
T343: 'terrains';
|
||||
T344: 'terrains';
|
||||
T345: 'terrains';
|
||||
T346: 'terrains';
|
||||
T347: 'terrains';
|
||||
T348: 'terrains';
|
||||
T349: 'terrains';
|
||||
T350: 'terrains';
|
||||
T351: 'terrains';
|
||||
T352: 'terrains';
|
||||
T353: 'terrains';
|
||||
T354: 'terrains';
|
||||
T355: 'terrains';
|
||||
T356: 'terrains';
|
||||
T357: 'terrains';
|
||||
T358: 'terrains';
|
||||
T359: 'terrains';
|
||||
T360: 'terrains';
|
||||
T361: 'terrains';
|
||||
T362: 'terrains';
|
||||
T363: 'terrains';
|
||||
T364: 'terrains';
|
||||
T365: 'terrains';
|
||||
T366: 'terrains';
|
||||
N367: 'npc48';
|
||||
E368: 'enemys';
|
||||
E369: 'enemys';
|
||||
E370: 'enemys';
|
||||
E371: 'enemys';
|
||||
E372: 'enemys';
|
||||
E373: 'enemys';
|
||||
E374: 'enemys';
|
||||
E375: 'enemys';
|
||||
I376: 'items';
|
||||
I377: 'items';
|
||||
I378: 'items';
|
||||
I379: 'items';
|
||||
I380: 'items';
|
||||
I381: 'items';
|
||||
I382: 'items';
|
||||
I383: 'items';
|
||||
I384: 'items';
|
||||
I385: 'items';
|
||||
I386: 'items';
|
||||
I387: 'items';
|
||||
I388: 'items';
|
||||
I389: 'items';
|
||||
I390: 'items';
|
||||
I391: 'items';
|
||||
I392: 'items';
|
||||
I393: 'items';
|
||||
I394: 'items';
|
||||
I395: 'items';
|
||||
I396: 'items';
|
||||
I397: 'items';
|
||||
I398: 'items';
|
||||
I399: 'items';
|
||||
I400: 'items';
|
||||
I401: 'items';
|
||||
I402: 'items';
|
||||
I403: 'items';
|
||||
I404: 'items';
|
||||
I405: 'items';
|
||||
I406: 'items';
|
||||
I407: 'items';
|
||||
I408: 'items';
|
||||
I409: 'items';
|
||||
I410: 'items';
|
||||
I411: 'items';
|
||||
I412: 'items';
|
||||
I413: 'items';
|
||||
I414: 'items';
|
||||
I415: 'items';
|
||||
I416: 'items';
|
||||
I417: 'items';
|
||||
I418: 'items';
|
||||
I419: 'items';
|
||||
I420: 'items';
|
||||
I421: 'items';
|
||||
I422: 'items';
|
||||
I423: 'items';
|
||||
I424: 'items';
|
||||
I425: 'items';
|
||||
I426: 'items';
|
||||
I427: 'items';
|
||||
I428: 'items';
|
||||
I429: 'items';
|
||||
I430: 'items';
|
||||
I431: 'items';
|
||||
I432: 'items';
|
||||
I433: 'items';
|
||||
I434: 'items';
|
||||
I435: 'items';
|
||||
I436: 'items';
|
||||
I437: 'items';
|
||||
I438: 'items';
|
||||
I439: 'items';
|
||||
I440: 'items';
|
||||
I441: 'items';
|
||||
I442: 'items';
|
||||
I443: 'items';
|
||||
I444: 'items';
|
||||
I445: 'items';
|
||||
I446: 'items';
|
||||
I447: 'items';
|
||||
I448: 'items';
|
||||
I449: 'items';
|
||||
I450: 'items';
|
||||
I451: 'items';
|
||||
I452: 'items';
|
||||
I453: 'items';
|
||||
I454: 'items';
|
||||
I455: 'items';
|
||||
I456: 'items';
|
||||
I457: 'items';
|
||||
I458: 'items';
|
||||
I459: 'items';
|
||||
I460: 'items';
|
||||
I461: 'items';
|
||||
I462: 'items';
|
||||
I463: 'items';
|
||||
I464: 'items';
|
||||
I465: 'items';
|
||||
I466: 'items';
|
||||
I467: 'items';
|
||||
I468: 'items';
|
||||
I469: 'items';
|
||||
I470: 'items';
|
||||
I471: 'items';
|
||||
I472: 'items';
|
||||
I473: 'items';
|
||||
I474: 'items';
|
||||
I475: 'items';
|
||||
I476: 'items';
|
||||
I477: 'items';
|
||||
I478: 'items';
|
||||
I479: 'items';
|
||||
I480: 'items';
|
||||
I481: 'items';
|
||||
I482: 'items';
|
||||
I483: 'items';
|
||||
I484: 'items';
|
||||
I485: 'items';
|
||||
I486: 'items';
|
||||
I487: 'items';
|
||||
I488: 'items';
|
||||
I489: 'items';
|
||||
I490: 'items';
|
||||
I491: 'items';
|
||||
A492: 'animates';
|
||||
A493: 'animates';
|
||||
A494: 'animates';
|
||||
A495: 'animates';
|
||||
A496: 'animates';
|
||||
A497: 'animates';
|
||||
E498: 'enemys';
|
||||
E499: 'enemys';
|
||||
E500: 'enemys';
|
||||
E501: 'enemys';
|
||||
E502: 'enemys';
|
||||
E503: 'enemys';
|
||||
E504: 'enemys';
|
||||
E505: 'enemys';
|
||||
A506: 'animates';
|
||||
A507: 'animates';
|
||||
A508: 'animates';
|
||||
A509: 'animates';
|
||||
A510: 'animates';
|
||||
E511: 'enemys';
|
||||
E512: 'enemys';
|
||||
E513: 'enemys';
|
||||
E514: 'enemys';
|
||||
E515: 'enemys';
|
||||
T516: 'terrains';
|
||||
E517: 'enemys';
|
||||
E518: 'enemys';
|
||||
E519: 'enemys';
|
||||
E520: 'enemys';
|
||||
E521: 'enemys';
|
||||
E522: 'enemys';
|
||||
E523: 'enemys';
|
||||
E524: 'enemys';
|
||||
E525: 'enemys';
|
||||
T526: 'terrains';
|
||||
T527: 'terrains';
|
||||
T528: 'terrains';
|
||||
T529: 'terrains';
|
||||
T530: 'terrains';
|
||||
T531: 'terrains';
|
||||
N532: 'npcs';
|
||||
N533: 'npcs';
|
||||
N534: 'npcs';
|
||||
N535: 'npcs';
|
||||
E536: 'enemys';
|
||||
E537: 'enemys';
|
||||
E538: 'enemys';
|
||||
E539: 'enemys';
|
||||
A540: 'animates';
|
||||
A541: 'animates';
|
||||
A542: 'animates';
|
||||
A543: 'animates';
|
||||
E544: 'enemys';
|
||||
E545: 'enemys';
|
||||
E546: 'enemys';
|
||||
E547: 'enemys';
|
||||
E548: 'enemys';
|
||||
E549: 'enemys';
|
||||
E550: 'enemys';
|
||||
T551: 'terrains';
|
||||
T552: 'terrains';
|
||||
T553: 'terrains';
|
||||
T554: 'terrains';
|
||||
T555: 'terrains';
|
||||
E556: 'enemys';
|
||||
E557: 'enemys';
|
||||
I558: 'items';
|
||||
I559: 'items';
|
||||
I560: 'items';
|
||||
E561: 'enemys';
|
||||
E562: 'enemys';
|
||||
E563: 'enemys';
|
||||
E564: 'enemys';
|
||||
I565: 'items';
|
||||
E566: 'enemys';
|
||||
E567: 'enemys';
|
||||
E568: 'enemys';
|
||||
E569: 'enemys';
|
||||
E570: 'enemys';
|
||||
E571: 'enemys';
|
||||
E572: 'enemys';
|
||||
E573: 'enemys';
|
||||
I574: 'items';
|
||||
I575: 'items';
|
||||
E576: 'enemys';
|
||||
E577: 'enemys';
|
||||
E578: 'enemys';
|
||||
E579: 'enemys';
|
||||
T580: 'terrains';
|
||||
T581: 'terrains';
|
||||
T582: 'terrains';
|
||||
T583: 'terrains';
|
||||
T584: 'terrains';
|
||||
T585: 'terrains';
|
||||
T586: 'terrains';
|
||||
T587: 'terrains';
|
||||
T588: 'terrains';
|
||||
I589: 'items';
|
||||
E590: 'enemys';
|
||||
E591: 'enemys';
|
||||
E592: 'enemys';
|
||||
E593: 'enemys';
|
||||
E594: 'enemys';
|
||||
E595: 'enemys';
|
||||
E596: 'enemys';
|
||||
E597: 'enemys';
|
||||
E598: 'enemys';
|
||||
E599: 'enemys';
|
||||
E600: 'enemys';
|
||||
E601: 'enemys';
|
||||
E602: 'enemys';
|
||||
E603: 'enemys';
|
||||
T604: 'terrains';
|
||||
E605: 'enemys';
|
||||
E606: 'enemys';
|
||||
E607: 'enemys';
|
||||
E608: 'enemys';
|
||||
E609: 'enemys';
|
||||
E610: 'enemys';
|
||||
E611: 'enemys';
|
||||
E612: 'enemys';
|
||||
E613: 'enemys';
|
||||
E614: 'enemys';
|
||||
E615: 'enemys';
|
||||
E616: 'enemys';
|
||||
E617: 'enemys';
|
||||
E618: 'enemys';
|
||||
N619: 'npcs';
|
||||
N620: 'npcs';
|
||||
N621: 'npcs';
|
||||
N622: 'npcs';
|
||||
N623: 'npcs';
|
||||
N624: 'npcs';
|
||||
N625: 'npcs';
|
||||
N626: 'npcs';
|
||||
T627: 'terrains';
|
||||
T628: 'terrains';
|
||||
T629: 'terrains';
|
||||
N630: 'npc48';
|
||||
N631: 'npc48';
|
||||
N632: 'npc48';
|
||||
N633: 'npc48';
|
||||
N634: 'npc48';
|
||||
N635: 'npc48';
|
||||
N636: 'npc48';
|
||||
N637: 'npc48';
|
||||
N638: 'npc48';
|
||||
N639: 'npc48';
|
||||
T640: 'terrains';
|
||||
I641: 'items';
|
||||
I642: 'items';
|
||||
E643: 'enemys';
|
||||
E644: 'enemys';
|
||||
E645: 'enemys';
|
||||
E646: 'enemys';
|
||||
E647: 'enemys';
|
||||
T648: 'terrains';
|
||||
T649: 'terrains';
|
||||
T650: 'terrains';
|
||||
T651: 'terrains';
|
||||
T652: 'terrains';
|
||||
T653: 'terrains';
|
||||
T654: 'terrains';
|
||||
T655: 'terrains';
|
||||
E656: 'enemys';
|
||||
E657: 'enemys';
|
||||
E658: 'enemys';
|
||||
E659: 'enemys';
|
||||
T660: 'terrains';
|
||||
T661: 'terrains';
|
||||
I662: 'items';
|
||||
I663: 'items';
|
||||
I664: 'items';
|
||||
I665: 'items';
|
||||
E666: 'enemys';
|
||||
E667: 'enemys';
|
||||
E668: 'enemys';
|
||||
E669: 'enemys';
|
||||
E670: 'enemys';
|
||||
E671: 'enemys';
|
||||
E672: 'enemys';
|
||||
E673: 'enemys';
|
||||
E674: 'enemys';
|
||||
E675: 'enemys';
|
||||
E676: 'enemys';
|
||||
E677: 'enemys';
|
||||
E678: 'enemys';
|
||||
E679: 'enemys';
|
||||
E680: 'enemys';
|
||||
E681: 'enemys';
|
||||
E682: 'enemys';
|
||||
E683: 'enemys';
|
||||
E684: 'enemys';
|
||||
E685: 'enemys';
|
||||
E686: 'enemys';
|
||||
E687: 'enemys';
|
||||
E688: 'enemys';
|
||||
E689: 'enemys';
|
||||
E690: 'enemys';
|
||||
E691: 'enemys';
|
||||
E692: 'enemys';
|
||||
E693: 'enemys';
|
||||
I694: 'items';
|
||||
I695: 'items';
|
||||
I696: 'items';
|
||||
I697: 'items';
|
||||
E698: 'enemys';
|
||||
E699: 'enemys';
|
||||
E700: 'enemys';
|
||||
E701: 'enemys';
|
||||
E702: 'enemys';
|
||||
E703: 'enemys';
|
||||
E704: 'enemys';
|
||||
E705: 'enemys';
|
||||
T706: 'terrains';
|
||||
E707: 'enemys';
|
||||
E708: 'enemys';
|
||||
E709: 'enemys';
|
||||
E710: 'enemys';
|
||||
X20032: 'tileset';
|
||||
X20033: 'tileset';
|
||||
X20034: 'tileset';
|
||||
X20037: 'tileset';
|
||||
X20038: 'tileset';
|
||||
X20039: 'tileset';
|
||||
X20040: 'tileset';
|
||||
X20041: 'tileset';
|
||||
X20042: 'tileset';
|
||||
X20045: 'tileset';
|
||||
X20047: 'tileset';
|
||||
X20048: 'tileset';
|
||||
X20049: 'tileset';
|
||||
X20050: 'tileset';
|
||||
X20053: 'tileset';
|
||||
X20054: 'tileset';
|
||||
X20055: 'tileset';
|
||||
X20056: 'tileset';
|
||||
X20057: 'tileset';
|
||||
X20058: 'tileset';
|
||||
X20064: 'tileset';
|
||||
X20065: 'tileset';
|
||||
X20066: 'tileset';
|
||||
X20074: 'tileset';
|
||||
X20152: 'tileset';
|
||||
X20153: 'tileset';
|
||||
X30040: 'tileset';
|
||||
X30041: 'tileset';
|
||||
X30042: 'tileset';
|
||||
X30048: 'tileset';
|
||||
X30050: 'tileset';
|
||||
X30056: 'tileset';
|
||||
X30057: 'tileset';
|
||||
X30058: 'tileset';
|
||||
X30105: 'tileset';
|
||||
X30112: 'tileset';
|
||||
X30113: 'tileset';
|
||||
X30121: 'tileset';
|
||||
X30196: 'tileset';
|
||||
X30204: 'tileset';
|
||||
X70019: 'tileset';
|
||||
X70048: 'tileset';
|
||||
X70049: 'tileset';
|
||||
X70050: 'tileset';
|
||||
X70056: 'tileset';
|
||||
X70058: 'tileset';
|
||||
X70059: 'tileset';
|
||||
X70060: 'tileset';
|
||||
X70064: 'tileset';
|
||||
X70065: 'tileset';
|
||||
X70066: 'tileset';
|
||||
X70072: 'tileset';
|
||||
X70073: 'tileset';
|
||||
X70074: 'tileset';
|
||||
X70080: 'tileset';
|
||||
X70081: 'tileset';
|
||||
X70082: 'tileset';
|
||||
X70083: 'tileset';
|
||||
X70084: 'tileset';
|
||||
X70090: 'tileset';
|
||||
X70091: 'tileset';
|
||||
X70098: 'tileset';
|
||||
X70099: 'tileset';
|
||||
X70112: 'tileset';
|
||||
X70114: 'tileset';
|
||||
X70116: 'tileset';
|
||||
X70120: 'tileset';
|
||||
X70122: 'tileset';
|
||||
X70124: 'tileset';
|
||||
X70128: 'tileset';
|
||||
X70130: 'tileset';
|
||||
X70131: 'tileset';
|
||||
X70132: 'tileset';
|
||||
X70184: 'tileset';
|
||||
X70185: 'tileset';
|
||||
X70186: 'tileset';
|
||||
X70200: 'tileset';
|
||||
X70201: 'tileset';
|
||||
X70202: 'tileset';
|
||||
X90153: 'tileset';
|
||||
X90154: 'tileset';
|
||||
X90155: 'tileset';
|
||||
tallYellowDoor: 'npc48';
|
||||
tallBlueDoor: 'npc48';
|
||||
tallRedDoor: 'npc48';
|
||||
tallGreenDoor: 'npc48';
|
||||
tallSpecialDoor: 'npc48';
|
||||
tallSteelDoor: 'npc48';
|
||||
keiskeiFairy: 'enemys';
|
||||
tulipFairy: 'enemys';
|
||||
bearDown: 'enemy48';
|
||||
bearLeft: 'enemy48';
|
||||
bearRight: 'enemy48';
|
||||
bearUp: 'enemy48';
|
||||
}
|
||||