mirror of
https://github.com/unanmed/HumanBreak.git
synced 2025-01-20 13:29:25 +08:00
171 lines
5.9 KiB
TypeScript
171 lines
5.9 KiB
TypeScript
/** @file items.js 主要负责一切和道具相关的内容。 */
|
||
declare class items {
|
||
/**
|
||
* 即捡即用类的道具获得时的效果
|
||
* @example core.getItemEffect('redPotion', 10) // 执行获得10瓶红血的效果
|
||
* @param itemId 道具id
|
||
* @param itemNum 道具数量,可选,默认为1
|
||
*/
|
||
getItemEffect(itemId: string, itemNum?: number): void;
|
||
|
||
/**
|
||
* 即捡即用类的道具获得时的额外提示
|
||
* @example core.getItemEffectTip(redPotion) // (获得 红血瓶)',生命+100'
|
||
* @param itemId 道具id
|
||
* @returns 图块属性itemEffectTip的内容
|
||
*/
|
||
getItemEffectTip(itemId: string): string;
|
||
|
||
/**
|
||
* 使用一个道具
|
||
* @example core.useItem('pickaxe', true) // 使用破墙镐,不计入录像,无回调
|
||
* @param itemId 道具id
|
||
* @param noRoute 是否不计入录像,快捷键使用的请填true,否则可省略
|
||
* @param callback 道具使用完毕或使用失败后的回调函数
|
||
*/
|
||
useItem(itemId: string, noRoute?: boolean, callback?: () => void): void;
|
||
|
||
/**
|
||
* 检查能否使用某种道具
|
||
* @example core.canUseItem('pickaxe') // 能否使用破墙镐
|
||
* @param itemId 道具id
|
||
* @returns true表示可以使用
|
||
*/
|
||
canUseItem(itemId: string): boolean;
|
||
|
||
/**
|
||
* 统计某种道具的持有量
|
||
* @example core.itemCount('yellowKey') // 持有多少把黄钥匙
|
||
* @param itemId 道具id
|
||
* @returns 该种道具的持有量,不包括已穿戴的装备
|
||
*/
|
||
itemCount(itemId: string): number;
|
||
|
||
/**
|
||
* 检查主角是否持有某种道具(不包括已穿戴的装备)
|
||
* @example core.hasItem('yellowKey') // 主角是否持有黄钥匙
|
||
* @param itemId 道具id
|
||
* @returns true表示持有
|
||
*/
|
||
hasItem(itemId: string): boolean;
|
||
|
||
/**
|
||
* 检查主角是否穿戴着某件装备
|
||
* @example core.hasEquip('sword5') // 主角是否装备了神圣剑
|
||
* @param itemId 装备id
|
||
* @returns true表示已装备
|
||
*/
|
||
hasEquip(itemId: string): boolean;
|
||
|
||
/**
|
||
* 检查主角某种类型的装备目前是什么
|
||
* @example core.getEquip(1) // 主角目前装备了什么盾牌
|
||
* @param equipType 装备类型,自然数
|
||
* @returns 装备id,null表示未穿戴
|
||
*/
|
||
getEquip(equipType: number): string;
|
||
|
||
/**
|
||
* 设置某种道具的持有量
|
||
* @example core.setItem('yellowKey', 3) // 设置黄钥匙为3把
|
||
* @param itemId 道具id
|
||
* @param itemNum 新的持有量,可选,自然数,默认为0
|
||
*/
|
||
setItem(itemId: string, itemNum?: number): void;
|
||
|
||
/**
|
||
* 静默增减某种道具的持有量 不会更新游戏画面或是显示提示
|
||
* @example core.addItem('yellowKey', -2) // 没收两把黄钥匙
|
||
* @param itemId 道具id
|
||
* @param itemNum 增加量,负数表示没收
|
||
*/
|
||
addItem(itemId: string, itemNum?: number): void;
|
||
|
||
/**
|
||
* 判定某件装备的类型
|
||
* @example core.getEquipTypeById('shield5') // 1(盾牌)
|
||
* @param equipId 装备id
|
||
* @returns 类型编号,自然数
|
||
*/
|
||
getEquipTypeById(equipId: string): number | string;
|
||
|
||
/**
|
||
* 检查能否穿上某件装备
|
||
* @example core.canEquip('sword5', true) // 主角可以装备神圣剑吗,如果不能会有提示
|
||
* @param equipId 装备id
|
||
* @param hint 无法穿上时是否提示(比如是因为未持有还是别的什么原因)
|
||
* @returns true表示可以穿上,false表示无法穿上
|
||
*/
|
||
canEquip(equipId: string, hint: boolean): boolean;
|
||
|
||
/**
|
||
* 尝试穿上某件背包里的装备并提示
|
||
* @example core.loadEquip('sword5') // 尝试装备上背包里的神圣剑,无回调
|
||
* @param equipId 装备id
|
||
* @param callback 穿戴成功或失败后的回调函数
|
||
*/
|
||
loadEquip(equipId: string, callback?: () => void): void;
|
||
|
||
/**
|
||
* 脱下某个类型的装备
|
||
* @example core.unloadEquip(1) // 卸下盾牌,无回调
|
||
* @param equipType 装备类型编号,自然数
|
||
* @param callback 卸下装备后的回调函数
|
||
*/
|
||
unloadEquip(equipType: number, callback?: () => void): void;
|
||
|
||
/**
|
||
* 比较两件(类型可不同)装备的优劣
|
||
* @example core.compareEquipment('sword5', 'shield5') // 比较神圣剑和神圣盾的优劣
|
||
* @param compareEquipId 装备甲的id
|
||
* @param beComparedEquipId 装备乙的id
|
||
* @returns 两装备的各属性差,甲减乙,0省略
|
||
*/
|
||
compareEquipment(
|
||
compareEquipId: string,
|
||
beComparedEquipId: string
|
||
): { [key: string]: number };
|
||
|
||
/**
|
||
* 保存当前套装
|
||
* @example core.quickSaveEquip(1) // 将当前套装保存为1号套装
|
||
* @param index 套装编号,自然数
|
||
*/
|
||
quickSaveEquip(index: number): void;
|
||
|
||
/**
|
||
* 快速换装
|
||
* @example core.quickLoadEquip(1) // 快速换上1号套装
|
||
* @param index 套装编号,自然数
|
||
*/
|
||
quickLoadEquip(index: number): void;
|
||
|
||
/** 获得所有道具 */
|
||
getItems(): void;
|
||
|
||
/** 删除某个物品 */
|
||
removeItem(itemId?: string, itemNum?: number): void;
|
||
|
||
/** 根据类型获得一个可用的装备孔 */
|
||
getEquipTypeByName(name?: string): void;
|
||
|
||
/**
|
||
* 设置某个装备的属性并计入存档
|
||
* @example core.setEquip('sword1', 'value', 'atk', 300, '+='); // 设置铁剑的攻击力数值再加300
|
||
* @param equipId 装备id
|
||
* @param valueType 增幅类型,只能是value(数值)或percentage(百分比)
|
||
* @param name 要修改的属性名称,如atk
|
||
* @param value 要修改到的属性数值
|
||
* @param operator 操作符,可选,如+=表示在原始值上增加
|
||
* @param prefix 独立开关前缀,一般不需要
|
||
*/
|
||
setEquip(
|
||
equipId: string,
|
||
valueType: string,
|
||
name: string,
|
||
value: any,
|
||
operator?: string,
|
||
prefix?: string
|
||
): void;
|
||
}
|