重构怪物属性定义

This commit is contained in:
AncTe committed 2023-08-07 17:57:51 +08:00
1 parent 93fad2f637
commit 9bab089a14
18 files changed
+250 -610

No files matched your search

+1 -79
View File
@@ -242,7 +242,7 @@ interface BookEnemyInfo extends Enemy, EnemyInfo {
/**
* 怪物模块
*/
interface Enemys extends EnemyData {
interface Enemys {
/**
* 所有的怪物信息
*/
@@ -250,11 +250,6 @@ interface Enemys extends EnemyData {
[P in EnemyIds]: Enemy<P>;
};
/**
* 脚本编辑的怪物相关
*/
readonly enemydata: EnemyData;
/**
* 获得所有怪物原始数据的一个副本
*/
@@ -262,51 +257,6 @@ interface Enemys extends EnemyData {
[P in EnemyIds]: Enemy<P>;
};
/**
* 获得某种敌人的全部特殊属性名称
* @example core.getSpecialText('greenSlime') // ['先攻', '3连击', '破甲', '反击']
* @param enemy 敌人id或敌人对象,如core.material.enemys.greenSlime
* @returns 字符串数组
*/
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 special 属性编号,可以是该敌人没有的属性
* @returns 属性的介绍,以属性名加中文冒号开头
*/
getSpecialHint(enemy: EnemyIds | Enemy, special: number): string;
/**
* 获得某个敌人的某项属性值
* @param enemy 敌人id或敌人对象
* @param name 获取的敌人属性
* @param x 敌人的横坐标
* @param y 敌人的纵坐标
* @param floorId 敌人所在楼层
*/
getEnemyValue<K extends keyof Enemy>(
enemy: EnemyIds | Enemy,
name: K,
x?: number,
y?: number,
floorId?: FloorIds
): Enemy[K];
/**
* 判定主角当前能否打败某只敌人
* @example core.canBattle('greenSlime',0,0,'MT0') // 能否打败主塔0层左上角的绿头怪(假设有)
@@ -322,34 +272,6 @@ interface Enemys extends EnemyData {
floorId?: FloorIds,
dir?: Dir | 'none' | (Dir | 'none')[]
): boolean;
/**
* 获得某只敌人对主角的总伤害
* @example core.getDamage('greenSlime',0,0,'MT0') // 绿头怪的总伤害
* @param enemy 敌人id或敌人对象
* @param x 敌人的横坐标
* @param y 敌人的纵坐标
* @param floorId 敌人所在的地图
* @returns 总伤害,如果因为没有破防或无敌怪等其他原因无法战斗,则返回null
*/
getDamage(
enemy: EnemyIds | Enemy,
x?: number,
y?: number,
floorId?: FloorIds
): number;
/**
* 检查某些楼层是否还有漏打的(某种)敌人
* @example core.hasEnemyLeft('greenSlime', ['sample0', 'sample1']) // 样板0层和1层是否有漏打的绿头怪
* @param enemyId 敌人id,可选,默认为任意敌人
* @param floorId 地图id或其数组,可选,默认为当前地图
* @returns true表示有敌人被漏打,false表示敌人已死光
*/
hasEnemyLeft(
enemyId?: EnemyIds | EnemyIds[],
floorId?: FloorIds | FloorIds[]
): boolean;
}
declare const enemys: new () => Enemys;
-24
View File
@@ -52,25 +52,6 @@ interface ControlData {
parallelDo(time: number): void;
}
interface EnemyData {
/**
* 获得所有特殊属性定义
*/
getSpecials(): EnemySpecialDeclaration[];
/**
* 判定某种特殊属性的有无
* @example core.hasSpecial('greenSlime', 1) // 判定绿头怪有无先攻属性
* @param special 敌人id或敌人对象或正整数数组或自然数
* @param test 待检查的属性编号
* @returns 若special为数组或数且含有test或相等、或special为敌人id或对象且具有此属性,则返回true
*/
hasSpecial(
special: number | number[] | EnemyIds | Enemy,
test: number
): boolean;
}
interface UiData {
/**
* 数据统计界面统计的道具数量
@@ -184,11 +165,6 @@ interface FunctionsData {
*/
control: ControlData;
/**
* 怪物信息
*/
enemys: EnemyData;
/**
* ui信息
*/