refactor(map): 优化槽位检测逻辑并新增满槽提示
1. 为MissEquipComp和MissSkillsComp新增静态实例缓存和isFull方法,避免强引用查询 2. 修复槽位坐标的空格格式问题 3. 扩展showSmallTip的参数类型,新增多种面板满槽提示场景 4. 在英雄、装备、技能面板开启逻辑中添加满槽校验和对应提示
This commit is contained in:
@@ -55,6 +55,19 @@ export class MissEquipComp extends CCComp {
|
||||
/** 调试日志开关 */
|
||||
private debugMode: boolean = true;
|
||||
|
||||
/** 当前活跃实例(供其他系统查询槽位占用,避免直接 find 强引用) */
|
||||
private static instance: MissEquipComp | null = null;
|
||||
|
||||
/**
|
||||
* 查询场上装备槽是否已全部占用。
|
||||
* @returns 无空闲槽位时返回 true;实例不存在时返回 false
|
||||
*/
|
||||
public static isFull(): boolean {
|
||||
const inst = MissEquipComp.instance;
|
||||
if (!inst) return false;
|
||||
return inst.slots.every(slot => slot.used);
|
||||
}
|
||||
|
||||
/** 技能卡 Prefab(在编辑器中赋值) */
|
||||
@property({ type: Prefab })
|
||||
private equip_box: Prefab = null;
|
||||
@@ -62,16 +75,17 @@ export class MissEquipComp extends CCComp {
|
||||
* 预定义的 6 个槽位坐标(单行):
|
||||
*/
|
||||
private slots: SkillBoxSlot[] = [
|
||||
{ x: -310, y: BoxSet.GAME_LINE-70, used: false, node: null },
|
||||
{ x: -230, y: BoxSet.GAME_LINE-70, used: false, node: null },
|
||||
{ x: -150, y: BoxSet.GAME_LINE-70, used: false, node: null },
|
||||
{ x: -70, y: BoxSet.GAME_LINE-70, used: false, node: null },
|
||||
{ x: 10, y: BoxSet.GAME_LINE-70, used: false, node: null },
|
||||
{ x: 90, y: BoxSet.GAME_LINE-70, used: false, node: null },
|
||||
{ x: -310, y: BoxSet.GAME_LINE - 70, used: false, node: null },
|
||||
{ x: -230, y: BoxSet.GAME_LINE - 70, used: false, node: null },
|
||||
{ x: -150, y: BoxSet.GAME_LINE - 70, used: false, node: null },
|
||||
{ x: -70, y: BoxSet.GAME_LINE - 70, used: false, node: null },
|
||||
{ x: 10, y: BoxSet.GAME_LINE - 70, used: false, node: null },
|
||||
{ x: 90, y: BoxSet.GAME_LINE - 70, used: false, node: null },
|
||||
];
|
||||
|
||||
/** 注册事件监听 */
|
||||
onLoad() {
|
||||
MissEquipComp.instance = this;
|
||||
oops.message.on(GameEvent.UseEquipCard, this.onUseEquipCard, this);
|
||||
oops.message.on(GameEvent.RemoveEquipBox, this.onRemoveEquipBox, this);
|
||||
}
|
||||
@@ -79,6 +93,9 @@ export class MissEquipComp extends CCComp {
|
||||
/** 移除事件监听 */
|
||||
onDestroy() {
|
||||
super.onDestroy();
|
||||
if (MissEquipComp.instance === this) {
|
||||
MissEquipComp.instance = null;
|
||||
}
|
||||
oops.message.off(GameEvent.UseEquipCard, this.onUseEquipCard, this);
|
||||
oops.message.off(GameEvent.RemoveEquipBox, this.onRemoveEquipBox, this);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user