refactor(mission): 实现技能装备盒共享计数机制
1. 新增BoxCounter类统一管理技能和装备盒的槽位占用 2. 调整技能/装备槽位布局使用常量对齐 3. 任务开始时重置共享计数器 4. 添加槽位已满的拦截逻辑和提示 5. 槽位增减时同步更新计数器
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -14,6 +14,8 @@ export enum BoxSet {
|
|||||||
RIGHT_END = 360,
|
RIGHT_END = 360,
|
||||||
//游戏地平线
|
//游戏地平线
|
||||||
GAME_LINE = 80,
|
GAME_LINE = 80,
|
||||||
|
/** 技能/装备各自独立的上限 */
|
||||||
|
BOX_MAX = 6,
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum FacSet {
|
export enum FacSet {
|
||||||
|
|||||||
@@ -59,19 +59,15 @@ export class MissEquipComp extends CCComp {
|
|||||||
@property({ type: Prefab })
|
@property({ type: Prefab })
|
||||||
private equip_box: Prefab = null;
|
private equip_box: Prefab = null;
|
||||||
/**
|
/**
|
||||||
* 预定义的 10 个槽位坐标(2 行 × 5 列):
|
* 预定义的 6 个槽位坐标(单行):
|
||||||
* 第 1 行 y=240:x = -320, -240, -160, -80, 0
|
|
||||||
* 第 2 行 y=320:x = -320, -240, -160, -80, 0
|
|
||||||
*/
|
*/
|
||||||
private slots: SkillBoxSlot[] = [
|
private slots: SkillBoxSlot[] = [
|
||||||
{ x: -310, y: BoxSet.GAME_LINE-100, used: false, node: null },
|
{ x: -310, y: BoxSet.GAME_LINE-70, used: false, node: null },
|
||||||
{ x: -230, y: BoxSet.GAME_LINE-100, used: false, node: null },
|
{ x: -230, y: BoxSet.GAME_LINE-70, used: false, node: null },
|
||||||
{ x: -150, y: BoxSet.GAME_LINE-100, used: false, node: null },
|
{ x: -150, y: BoxSet.GAME_LINE-70, used: false, node: null },
|
||||||
{ x: -70, y: BoxSet.GAME_LINE-100, used: false, node: null },
|
{ x: -70, y: BoxSet.GAME_LINE-70, used: false, node: null },
|
||||||
{ x: 10, y: BoxSet.GAME_LINE-100, used: false, node: null },
|
{ x: 10, y: BoxSet.GAME_LINE-70, used: false, node: null },
|
||||||
{ x: 90, y: BoxSet.GAME_LINE-100, used: false, node: null },
|
{ x: 90, y: BoxSet.GAME_LINE-70, used: false, node: null },
|
||||||
{ x: 170, y: BoxSet.GAME_LINE-100, used: false, node: null },
|
|
||||||
{ x: 250, y: BoxSet.GAME_LINE-100, used: false, node: null },
|
|
||||||
];
|
];
|
||||||
|
|
||||||
/** 注册事件监听 */
|
/** 注册事件监听 */
|
||||||
@@ -171,6 +167,7 @@ export class MissEquipComp extends CCComp {
|
|||||||
const emptyIndex = this.slots.findIndex(slot => !slot.used);
|
const emptyIndex = this.slots.findIndex(slot => !slot.used);
|
||||||
if (emptyIndex === -1) {
|
if (emptyIndex === -1) {
|
||||||
mLogger.warn(this.debugMode, "MissEquipComp", "equip_box slots are full");
|
mLogger.warn(this.debugMode, "MissEquipComp", "equip_box slots are full");
|
||||||
|
oops.gui.toast("装备槽位已满");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/modu
|
|||||||
import { SBox } from "./SBox";
|
import { SBox } from "./SBox";
|
||||||
import { oops } from "db://oops-framework/core/Oops";
|
import { oops } from "db://oops-framework/core/Oops";
|
||||||
import { GameEvent } from "../common/config/GameEvent";
|
import { GameEvent } from "../common/config/GameEvent";
|
||||||
|
import { BoxSet } from "../common/config/GameSet";
|
||||||
const { ccclass, property } = _decorator;
|
const { ccclass, property } = _decorator;
|
||||||
|
|
||||||
/** 技能槽位数据结构 */
|
/** 技能槽位数据结构 */
|
||||||
@@ -58,21 +59,15 @@ export class MissSkillsComp extends CCComp {
|
|||||||
private skill_box: Prefab = null;
|
private skill_box: Prefab = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 预定义的 10 个槽位坐标(2 行 × 5 列):
|
* 预定义的 6 个槽位坐标(单行):
|
||||||
* 第 1 行 y=240:x = -320, -240, -160, -80, 0
|
|
||||||
* 第 2 行 y=320:x = -320, -240, -160, -80, 0
|
|
||||||
*/
|
*/
|
||||||
private slots: SkillBoxSlot[] = [
|
private slots: SkillBoxSlot[] = [
|
||||||
{ x: -310, y: 300, used: false, node: null },
|
{ x: -310, y: BoxSet.GAME_LINE+200, used: false, node: null },
|
||||||
{ x: -220, y: 300, used: false, node: null },
|
{ x: -230, y: BoxSet.GAME_LINE+200, used: false, node: null },
|
||||||
{ x: -130, y: 300, used: false, node: null },
|
{ x: -150, y: BoxSet.GAME_LINE+200, used: false, node: null },
|
||||||
{ x: -40, y: 300, used: false, node: null },
|
{ x: -70, y: BoxSet.GAME_LINE+200, used: false, node: null },
|
||||||
{ x: 50, y: 300, used: false, node: null },
|
{ x: 10, y: BoxSet.GAME_LINE+200, used: false, node: null },
|
||||||
{ x: -310, y: 400, used: false, node: null },
|
{ x: 90, y: BoxSet.GAME_LINE+200, used: false, node: null },
|
||||||
{ x: -220, y: 400, used: false, node: null },
|
|
||||||
{ x: -130, y: 400, used: false, node: null },
|
|
||||||
{ x: -40, y: 400, used: false, node: null },
|
|
||||||
{ x: 50, y: 400, used: false, node: null },
|
|
||||||
];
|
];
|
||||||
|
|
||||||
/** 注册事件监听 */
|
/** 注册事件监听 */
|
||||||
@@ -172,6 +167,7 @@ export class MissSkillsComp extends CCComp {
|
|||||||
const emptyIndex = this.slots.findIndex(slot => !slot.used);
|
const emptyIndex = this.slots.findIndex(slot => !slot.used);
|
||||||
if (emptyIndex === -1) {
|
if (emptyIndex === -1) {
|
||||||
mLogger.warn(this.debugMode, "MissSkillsComp", "skill_box slots are full");
|
mLogger.warn(this.debugMode, "MissSkillsComp", "skill_box slots are full");
|
||||||
|
oops.gui.toast("技能槽位已满");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user