1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import { _decorator, find, Label, math, Node, Rect, UITransform } from 'cc';
- import { TouchMgr } from './TouchMgr';
- import { CharacterSlotMgr } from './CharacterSlotMgr';
- import { UIMgr } from '../../Frames/UIManager';
- import { PopupUI } from '../UI/PopupUI';
- import { UIType } from '../GameFrameWork/UIBase';
- import { PopupUIDataConfig } from './GameScene/Data/PopupUIDataConfig';
- const { ccclass, property } = _decorator;
- @ccclass('TouchCharacterSlot')
- export class TouchCharacterSlot extends TouchMgr {
- private _characterSlot: Node = null;
- private unLock: Node = null;
- protected onLoad(): void {
- this._characterSlot = this.node.parent.getChildByName("CharacterSlot");
- }
- func(pos: math.Vec2): void {
- this.node.parent.getChildByName("CharacterSlot").getComponent(CharacterSlotMgr).removeCardImg(pos);
- for (const node of this._characterSlot.children) {
- if (node.getChildByName("Label").active) {
- const box: Rect = node.getComponent(UITransform).getBoundingBoxToWorld();
- if (box.contains(pos)) {
- this.unLock = node;
- PopupUIDataConfig.Instance.setUIName("解锁");
- PopupUIDataConfig.Instance.setTypeImg("Lock");
- PopupUIDataConfig.Instance.setTypeMoney("Gold");
- PopupUIDataConfig.Instance.setLabel(
- `可用卡槽:${PopupUIDataConfig.Instance.getAvailableCardSlot()}`,
- `下一级:${PopupUIDataConfig.Instance.getAvailableCardSlot() + 1}`,
- `耗费:`, `2000`);
- PopupUIDataConfig.Instance.setFunction(() => {
- this.closeNode();
- })
- UIMgr.openUI("PopupUI", UIType.WIDGET);
- }
- }
- }
- }
- closeNode() {
- if (this.unLock) {
- this.unLock.getChildByName("Lock").active = false;
- this.unLock.getChildByName("Label").active = false;
- PopupUIDataConfig.Instance.setAvailableCardSlot(PopupUIDataConfig.Instance.getAvailableCardSlot() + 1)
- const indexNext: number = this.unLock.getSiblingIndex();
- if (indexNext === this.unLock.parent.children.length - 1) return;
- const nodeNext = this.unLock.parent.children[indexNext + 1];
- nodeNext.getChildByName("Lock").active = true;
- nodeNext.getChildByName("Label").active = true;
- }
- }
- }
|