template/packages-user/data-state/src/common.ts

97 lines
3.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { IMapAreaInterval } from '@user/data-base';
import { IHeroAttr } from '@user/data-common';
//#region 数据端主配置
export interface ICoreStateContentDefaultConfig {
/** 怪物默认对象路径 */
readonly enemyDefault: string;
/** 道具默认对象路径 */
readonly itemDefault: string;
/** 地图默认对象路径 */
readonly mapDefault: string;
/** 图块默认对象路径 */
readonly tileDefault: string;
}
export interface ICoreStateContentConfig {
/** 配置的默认对象配置路径 */
readonly defaults: ICoreStateContentDefaultConfig;
/** 地图文件夹路径 */
readonly mapsDir: string;
/** 需要加载的地图列表文件的文件路径 */
readonly mapListDir: string;
/** 怪物数据文件路径 */
readonly enemyDir: string;
/** 道具数据文件路径 */
readonly itemDir: string;
/** 道具效果文件路径 */
readonly itemEffectDir: string;
/** 图库数据文件路径 */
readonly tileDir: string;
}
export interface ICoreStateHeroInitConfig<T> {
/** 勇士的初始横坐标 */
readonly x: number;
/** 勇士的初始纵坐标 */
readonly y: number;
/** 勇士初始所在楼层 */
readonly floorId: string;
/** 勇士的初始装备栏 */
readonly equipSlots: string[];
/** 勇士的初始属性 */
readonly attribute: Readonly<T>;
}
export interface ICoreStateInitConfig {
/** 初始事件 id,游戏开始时将在执行完毕此事件后正式开始 */
readonly startEvent: string;
/** 勇士初始状态,包含起始位置、初始属性等 */
readonly hero: ICoreStateHeroInitConfig<IHeroAttr>;
}
export interface ICoreStateFlagConfig {
/** 楼层传送是否要求在楼梯边才能使用 */
readonly flyNearStair: boolean;
/** 楼层传送是否为平面塔模式,即传送时会传送至上一次离开此位置的位置而非楼梯口 */
readonly flyRecordLocation: boolean;
/** 道具在首次拾取时是否显示其文字说明 */
readonly itemHint: boolean;
/** 是否启用负伤机制,开启后怪物总伤害可以变为负值 */
readonly enableNegativeDamage: boolean;
/** 是否限制夹击最高伤害为两夹击怪物中伤害最高者 */
readonly betweenDamageMax: boolean;
/** 是否启用轻按机制,即可以按下空格来拾取玩家四周的物品 */
readonly enablePick: boolean;
/** 若在寻路时需要穿过楼梯,是否允许穿越 */
readonly ignoreChangeFLoor: boolean;
/** 若继续前进会导致勇士受到地图伤害而死亡,是否允许前进 */
readonly allowDeadZone: boolean;
/** 是否允许点击瞬移 */
readonly enableTeleport: boolean;
/** 是否开启录像折叠,这可以使走路的录像大幅减少,但可能导致某些机制出错,可查看文档详细了解 */
readonly enableRouteFolding: boolean;
/** 是否开启瞬移合并机制,开启后,连续瞬移会在录像中合并为单次瞬移,但可能导致某些机制出错 */
readonly enableTeleportMerge: boolean;
}
export interface ICoreStateCoreConfig {
/** 游戏的唯一标识符 */
readonly name: string;
/** 呈现给玩家的游戏名称 */
readonly title: string;
/** 游戏版本号,仅呈现作用,对游戏本身没有任何影响 */
readonly version: string;
/** 地图分区配置 */
readonly floorAreas: IMapAreaInterval[];
/** 游戏数据配置 */
readonly content: ICoreStateContentConfig;
/** 游戏的初始状态数据 */
readonly init: ICoreStateInitConfig;
/** 游戏的全局设置 */
readonly flag: ICoreStateFlagConfig;
}
//#endregion