MC_survival/item.d.ts

301 lines
8.7 KiB
TypeScript
Raw Permalink Normal View History

2025-01-14 12:27:52 +08:00
interface Item<I extends AllIdsOf<'items'>> {
/**
* id
*/
id: I;
/**
*
*/
cls: ItemClsOf<I>;
/**
*
*/
name: string;
/**
*
*/
text?: string;
/**
*
*/
hideInToolBox: boolean;
/**
*
*/
equip: ItemClsOf<I> extends 'equips' ? Equip : never;
/**
* 使使
*/
hideInReplay: boolean;
/**
*
*/
itemEffect?: string;
/**
*
*/
itemEffectTip?: string;
/**
* 使
*/
useItemEvent?: MotaEvent;
/**
* 使
*/
useItemEffect?: string;
/**
* 使
*/
canUseItemEffect?: string | boolean;
}
interface EquipBase {
/**
*
*/
value: Record<keyof SelectType<HeroStatus, number>, number>;
/**
*
*/
percentage: Record<keyof SelectType<HeroStatus, number>, number>;
}
interface Equip extends EquipBase {
/**
*
*/
type: number | string;
/**
*
*/
animate: AnimationIds;
/**
* 穿
*/
equipEvent?: MotaEvent;
/**
*
*/
unequipEvent?: MotaEvent;
}
/**
*
*/
interface Items {
/**
*
*/
getItems(): {
[P in AllIdsOf<'items'>]: Item<P>;
};
/**
*
* @example core.getItemEffect('redPotion', 10) // 执行获得10瓶红血的效果
* @param itemId id
* @param itemNum 1
*/
getItemEffect(itemId: AllIdsOf<'items'>, itemNum?: number): void;
/**
*
* @example core.getItemEffectTip(redPotion) // (获得 红血瓶)',生命+100'
* @param itemId id
* @returns itemEffectTip的内容
*/
getItemEffectTip(itemId: AllIdsOf<'items'>): string;
/**
* 使
* @example core.useItem('pickaxe', true) // 使用破墙镐,不计入录像,无回调
* @param itemId id
* @param noRoute 使true
* @param callback 使使
*/
useItem(
itemId: ItemIdOf<'tools' | 'constants'>,
noRoute?: boolean,
callback?: () => void
): void;
/**
* 使
* @example core.canUseItem('pickaxe') // 能否使用破墙镐
* @param itemId id
* @returns true表示可以使用
*/
canUseItem(itemId: AllIdsOf<'items'>): boolean;
/**
*
* @example core.itemCount('yellowKey') // 持有多少把黄钥匙
* @param itemId id
* @returns 穿
*/
itemCount(itemId: AllIdsOf<'items'>): number;
/**
* (穿)
* @example core.hasItem('yellowKey') // 主角是否持有黄钥匙
* @param itemId id
* @returns true表示持有
*/
hasItem(itemId: AllIdsOf<'items'>): boolean;
/**
* 穿
* @example core.hasEquip('sword5') // 主角是否装备了神圣剑
* @param itemId id
* @returns true表示已装备
*/
hasEquip(itemId: ItemIdOf<'equips'>): boolean;
/**
*
* @example core.getEquip(1) // 主角目前装备了什么盾牌
* @param equipType
* @returns idnull表示未穿戴
*/
getEquip(equipType: number): ItemIdOf<'equips'> | null;
/**
*
* @example core.setItem('yellowKey', 3) // 设置黄钥匙为3把
* @param itemId id
* @param itemNum 0
*/
setItem(itemId: AllIdsOf<'items'>, itemNum?: number): void;
/**
*
* @example core.addItem('yellowKey', -2) // 没收两把黄钥匙
* @param itemId id
* @param itemNum
*/
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;
/**
*
* @example core.getEquipTypeById('shield5') // 1盾牌
* @param equipId id
* @returns
*/
getEquipTypeById(equipId: ItemIdOf<'equips'>): number;
/**
* 穿
* @example core.canEquip('sword5', true) // 主角可以装备神圣剑吗,如果不能会有提示
* @param equipId id
* @param hint 穿
* @returns true表示可以穿上false表示无法穿上
*/
canEquip(equipId: ItemIdOf<'equips'>, hint?: boolean): boolean;
/**
* 穿
* @example core.loadEquip('sword5') // 尝试装备上背包里的神圣剑,无回调
* @param equipId id
* @param callback 穿
*/
loadEquip(equipId: ItemIdOf<'equips'>, 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<F extends ItemIdOf<'equips'>>(
compareEquipId: F,
beComparedEquipId: Exclude<ItemIdOf<'equips'>, F>
): EquipBase;
/**
*
* @example core.quickSaveEquip(1) // 将当前套装保存为1号套装
* @param index
*/
quickSaveEquip(index: number): void;
/**
*
* @example core.quickLoadEquip(1) // 快速换上1号套装
* @param index
*/
quickLoadEquip(index: number): void;
/**
*
* @example core.setEquip('sword1', 'value', 'atk', 300, '+='); // 设置铁剑的攻击力数值再加300
* @param equipId id
* @param valueType valuepercentage
* @param name atk
* @param value
* @param operator +=
* @param prefix
*/
setEquip(
equipId: ItemIdOf<'equips'>,
valueType: 'value' | 'percentage',
name: keyof SelectType<HeroStatus, number>,
value: number,
operator?: MotaOperator,
prefix?: string
): void;
/**
* 穿
* @param type
* @param loadId
* @param unloadId
* @param callback
*/
_realLoadEquip(
type: number,
loadId?: ItemIdOf<'equips'>,
unloadId?: ItemIdOf<'equips'>,
callback?: () => void
): void;
}
declare const items: new () => Items;