;
+ }>;
- readonly statusBar: {
- readonly icons: { [x: string]: HTMLImageElement };
- };
+ /**
+ * 游戏主要逻辑模块
+ */
+ readonly control: Control;
- readonly values: {
- animateSpeed: number;
- };
+ /**
+ * 游戏的全塔属性信息
+ */
+ readonly data: Omit ;
+ }>;
+
+ /**
+ * 所有的素材图片名称
+ */
+ readonly materials: Materials;
+
+ /**
+ * 要加载的project目录下的文件
+ */
+ readonly pureData: string[];
+
+ /**
+ * 要加载的libs目录下的文件
+ */
+ readonly loadList: string[];
+
+ /**
+ * 开始界面中当前选中的按钮
+ */
+ readonly selectedButton: number;
+
+ /**
+ * 当前启动服务是否支持高层塔优化
+ */
+ readonly supportBunch: boolean;
+
+ /**
+ * 状态栏的图标信息
+ */
+ readonly statusBar: CoreStatusBarElements;
+
+ /**
+ * 游戏版本
+ */
+ readonly __VERSION__: string;
+
+ /**
+ * 游戏版本代码
+ */
+ readonly __VERSION_CODE__: number;
+
+ /**
+ * 初始化游戏
+ * @param mode 初始化游戏的模式,游玩还是编辑器
+ * @param callback 初始化完成后的回调函数
+ */
+ init(mode: 'play' | 'editor', callback: () => void): void;
+
+ /**
+ * 动态加载js文件
+ * @param dir 加载的js文件的目录
+ * @param loadList 加载的js文件的文件名数组,不带后缀
+ * @param callback 加载完毕后的回调函数
+ */
+ loadJs(dir: string, loadList: string[], callback: () => void): void;
+
+ /**
+ * 动态加载一个js文件
+ * @param dir 加载的js文件的目录
+ * @param modName 加载的js文件的名称,不带后缀名,如果是使用压缩文件会自动加上.min
+ * @param callback 加载完毕后的回调函数,传入的参数是modName
+ */
+ loadMod(
+ dir: string,
+ modName: string,
+ callback: (name: string) => void
+ ): void;
+
+ /**
+ * 动态加载所有楼层
+ * @param callback 加载完成后的回调函数
+ */
+ loadFloors(callback: () => void): void;
+
+ /**
+ * 动态加载一个楼层
+ * @param floorId 加载的楼层id
+ * @param callback 加载完成后的回调函数,传入的参数是加载的楼层id
+ */
+ loadFloor ;
};
-type SpriteMouseEvent = (px: number, py: number) => void;
+/**
+ * 所有的公共事件
+ */
+declare const events_c12a15a8_c380_4b28_8144_256cba95f760: {
+ commonEvent: Record ;
+};
-interface SpriteEvent {
- auxclick: SpriteMouseEvent;
- click: SpriteMouseEvent;
- contextmenu: SpriteMouseEvent;
- dblclick: SpriteMouseEvent;
- mousedown: SpriteMouseEvent;
- mouseup: SpriteMouseEvent;
- mouseenter: SpriteMouseEvent;
- mouseleave: SpriteMouseEvent;
- mousemove: SpriteMouseEvent;
- mouseout: SpriteMouseEvent;
- mouseover: SpriteMouseEvent;
- keydown: SpritKeyEvent;
- keyup: SpritKeyEvent;
- keypress: SpritKeyEvent;
- wheel: SpriteWheelEvent;
- touchstart: SpriteTouchEvent;
- touchend: SpriteTouchEvent;
- touchmove: SpriteTouchEvent;
- touchcancel: SpriteTouchEvent;
-}
+/**
+ * 所有的图块信息
+ */
+declare const maps_90f36752_8815_4be8_b32b_d7fad1d0542e: {
+ [P in keyof NumberToId]: MapDataOf ;
+};
-declare class Sprite {
- static count: number;
- x: number;
- y: number;
- width: number;
- height: number;
- zIndex: number;
- reference: 'game' | 'window';
- canvas: HTMLCanvasElement;
- context: CanvasRenderingContext2D;
- name: string;
- readonly count: number;
-
- /** 创建一个sprite画布
- * @param reference 参考系,游戏画面或者窗口
- * @param name 可选,sprite的名称,方便通过core.dymCanvas获取
- */
- constructor(
- x: number,
- y: number,
- w: number,
- h: number,
- z: number,
- reference?: 'game' | 'window',
- name?: string
- );
-
- /** 初始化 */
- init(): void;
-
- /** 设置css特效 */
- setCss(css: string): Sprite;
-
- /**
- * 移动sprite
- * @param isDelta 是否是相对位置,如果是,那么sprite会相对于原先的位置进行移动
- */
- move(x: number, y: number, isDelta?: boolean): Sprite;
-
- /**
- * 重新设置sprite的大小
- * @param {boolean} styleOnly 是否只修改css效果,如果是,那么将会不高清,如果不是,那么会清空画布
- */
- resize(w: number, h: number, styleOnly?: boolean): Sprite;
-
- /** 旋转画布 */
- rotate(angle: number, cx?: number, cy?: number): Sprite;
-
- /** 擦除画布 */
- clear(x: number, y: number, w?: number, h?: number): Sprite;
-
- /** 删除 */
- destroy(): void;
-
- /** 监听事件,与registerAction类似 */
- on ;
+ };
+
+ /**
+ * 脚本编辑的怪物相关
+ */
+ readonly enemydata: EnemyData;
+
+ /**
+ * 获得所有怪物原始数据的一个副本
+ */
+ getEnemys(): {
+ [P in EnemyIds]: Enemy ;
+ };
/**
* 获得某种敌人的全部特殊属性名称
@@ -18,120 +244,135 @@ declare class enemys {
* @param enemy 敌人id或敌人对象,如core.material.enemys.greenSlime
* @returns 字符串数组
*/
- getSpecialText(enemy: string | Enemy): string[];
+ getSpecialText(enemy: EnemyIds | Enemy): string[];
+
+ /**
+ * 获得所有特殊属性的颜色
+ * @param enemy 敌人id或敌人对象,如core.material.enemys.greenSlime
+ */
+ getSpecialColor(enemy: EnemyIds | Enemy): Color[];
+
+ /**
+ * 获得所有特殊属性的额外标记
+ * @param enemy 敌人id或敌人对象,如core.material.enemys.greenSlime
+ */
+ getSpecialFlag(enemy: EnemyIds | Enemy): number[];
/**
* 获得某种敌人的某种特殊属性的介绍
* @example core.getSpecialHint('bat', 1) // '先攻:怪物首先攻击'
- * @param enemy 敌人id或敌人对象,用于确定属性的具体数值,否则可选
+ * @param enemy 敌人id或敌人对象,用于确定属性的具体数值
* @param special 属性编号,可以是该敌人没有的属性
* @returns 属性的介绍,以属性名加中文冒号开头
*/
- getSpecialHint(enemy: string | Enemy, special: number): string;
+ getSpecialHint(enemy: EnemyIds | Enemy, special: number): string;
- /** 获得某个敌人的某项属性值 */
- getEnemyValue(
- enemy: string | Enemy,
- name: string,
+ /**
+ * 获得某个敌人的某项属性值
+ * @param enemy 敌人id或敌人对象
+ * @param name 获取的敌人属性
+ * @param x 敌人的横坐标
+ * @param y 敌人的纵坐标
+ * @param floorId 敌人所在楼层
+ */
+ getEnemyValue ;
+ };
+
+ /**
+ * 执行即捡即用类的道具获得时的效果
* @example core.getItemEffect('redPotion', 10) // 执行获得10瓶红血的效果
* @param itemId 道具id
- * @param itemNum 道具数量,可选,默认为1
+ * @param itemNum 道具数量,默认为1
*/
- getItemEffect(itemId: string, itemNum?: number): void;
+ getItemEffect(itemId: AllIdsOf<'items'>, itemNum?: number): void;
/**
* 即捡即用类的道具获得时的额外提示
@@ -14,16 +119,20 @@ declare class items {
* @param itemId 道具id
* @returns 图块属性itemEffectTip的内容
*/
- getItemEffectTip(itemId: string): string;
+ getItemEffectTip(itemId: AllIdsOf<'items'>): string;
/**
* 使用一个道具
* @example core.useItem('pickaxe', true) // 使用破墙镐,不计入录像,无回调
* @param itemId 道具id
* @param noRoute 是否不计入录像,快捷键使用的请填true,否则可省略
- * @param callback 道具使用完毕或使用失败后的回调函数
+ * @param callback 道具使用完毕或使用失败后的回调函数,好像没什么意义吧(
*/
- useItem(itemId: string, noRoute?: boolean, callback?: () => void): void;
+ useItem(
+ itemId: ItemIdOf<'tools' | 'constants'>,
+ noRoute?: boolean,
+ callback?: () => void
+ ): void;
/**
* 检查能否使用某种道具
@@ -31,7 +140,7 @@ declare class items {
* @param itemId 道具id
* @returns true表示可以使用
*/
- canUseItem(itemId: string): boolean;
+ canUseItem(itemId: AllIdsOf<'items'>): boolean;
/**
* 统计某种道具的持有量
@@ -39,7 +148,7 @@ declare class items {
* @param itemId 道具id
* @returns 该种道具的持有量,不包括已穿戴的装备
*/
- itemCount(itemId: string): number;
+ itemCount(itemId: AllIdsOf<'items'>): number;
/**
* 检查主角是否持有某种道具(不包括已穿戴的装备)
@@ -47,7 +156,7 @@ declare class items {
* @param itemId 道具id
* @returns true表示持有
*/
- hasItem(itemId: string): boolean;
+ hasItem(itemId: AllIdsOf<'items'>): boolean;
/**
* 检查主角是否穿戴着某件装备
@@ -55,7 +164,7 @@ declare class items {
* @param itemId 装备id
* @returns true表示已装备
*/
- hasEquip(itemId: string): boolean;
+ hasEquip(itemId: ItemIdOf<'equips'>): boolean;
/**
* 检查主角某种类型的装备目前是什么
@@ -63,7 +172,7 @@ declare class items {
* @param equipType 装备类型,自然数
* @returns 装备id,null表示未穿戴
*/
- getEquip(equipType: number): string;
+ getEquip(equipType: number): ItemIdOf<'equips'> | null;
/**
* 设置某种道具的持有量
@@ -71,15 +180,29 @@ declare class items {
* @param itemId 道具id
* @param itemNum 新的持有量,可选,自然数,默认为0
*/
- setItem(itemId: string, itemNum?: number): void;
+ setItem(itemId: AllIdsOf<'items'>, itemNum?: number): void;
/**
* 静默增减某种道具的持有量 不会更新游戏画面或是显示提示
* @example core.addItem('yellowKey', -2) // 没收两把黄钥匙
* @param itemId 道具id
- * @param itemNum 增加量,负数表示没收
+ * @param itemNum 增加量,负数表示减少
*/
- addItem(itemId: string, itemNum?: number): void;
+ addItem(itemId: AllIdsOf<'items'>, itemNum?: number): void;
+
+ /**
+ * @deprecated 使用addItem代替。
+ * 删除某个物品一定的数量,相当于addItem(itemId, -n);
+ * @param itemId 道具id
+ * @param itemNum 减少量,负数表示增加
+ */
+ removeItem(itemId?: AllIdsOf<'items'>, itemNum?: number): void;
+
+ /**
+ * 根据类型获得一个可用的装备孔
+ * @param equipId 道具名称
+ */
+ getEquipTypeByName(name?: ItemIdOf<'equips'>): number;
/**
* 判定某件装备的类型
@@ -87,7 +210,7 @@ declare class items {
* @param equipId 装备id
* @returns 类型编号,自然数
*/
- getEquipTypeById(equipId: string): number | string;
+ getEquipTypeById(equipId: ItemIdOf<'equips'>): number;
/**
* 检查能否穿上某件装备
@@ -96,7 +219,7 @@ declare class items {
* @param hint 无法穿上时是否提示(比如是因为未持有还是别的什么原因)
* @returns true表示可以穿上,false表示无法穿上
*/
- canEquip(equipId: string, hint: boolean): boolean;
+ canEquip(equipId: ItemIdOf<'equips'>, hint?: boolean): boolean;
/**
* 尝试穿上某件背包里的装备并提示
@@ -104,7 +227,7 @@ declare class items {
* @param equipId 装备id
* @param callback 穿戴成功或失败后的回调函数
*/
- loadEquip(equipId: string, callback?: () => void): void;
+ loadEquip(equipId: ItemIdOf<'equips'>, callback?: () => void): void;
/**
* 脱下某个类型的装备
@@ -121,10 +244,10 @@ declare class items {
* @param beComparedEquipId 装备乙的id
* @returns 两装备的各属性差,甲减乙,0省略
*/
- compareEquipment(
- compareEquipId: string,
- beComparedEquipId: string
- ): { [key: string]: number };
+ compareEquipment ;
+ };
+
+ /**
+ * 加载某个楼层
+ * @param floorId 楼层id
+ * @param map 地图信息,不填表示直接从原地图中获取
+ */
+ loadFloor ;
};
- lockControl: boolean;
+ /**
+ * 获得当前楼层信息,等价于core.status.maps[core.status.floorId]
+ */
+ thisMap: null;
- /** 勇士移动状态 */
+ /**
+ * 背景图块
+ */
+ bgmaps: Record ;
+ };
+
+ /**
+ * 大地图中的拖拽处理
+ */
+ preview: ActionsPreview;
+
+ /**
+ * 录像折叠信息
+ */
+ routeFolding: Record<`${LocString},${FirstCharOf