import { _decorator, Button, Component, Label, Node, Sprite, tween, UIOpacity, v3 } from 'cc'; import { GameMgr } from '../manager/GameMgr'; import { EventMgr } from '../manager/EventMgr'; import { EventType } from '../enum/EventType'; import { ArrayUtil } from '../util/ArrayUtil'; import { UIMgr } from '../manager/UIMgr'; import { UI } from '../enum/UI'; import { ResMgr } from '../manager/ResMgr'; import { Bundle } from '../enum/Bundle'; import { AdMgr } from '../manager/AdMgr'; const { ccclass, property } = _decorator; @ccclass('Game/ShelveLocker') export class ShelveLocker extends Component { @property(Node) private lbBg: Node = null @property(Label) private lbCnt: Label = null @property(Sprite) private glass: Sprite = null // @property(Button) // private btnUnlock: Button = null @property(Node) private chain: Node = null private unlockCnt: number = 0 public get UnlockCnt(): number { return this.unlockCnt } public set UnlockCnt(v: number) { this.unlockCnt = Math.max(0, v) this.lbCnt.string = `${v}` const spfName: string = this.unlockCnt === 1 ? 'bl2' : 'bl1' this.glass.spriteFrame = ResMgr.getSpriteFrame(Bundle.Game, spfName, 'image/') if (this.unlockCnt > 0) return // this.btnUnlock.interactable = false this.lbBg.active = false this.lbCnt.node.active = false this.glass.node.active = false // tween(this.btnUnlock.node).by(0.5, { position: v3(0, 50, 0) }).start() // const btnOpacity: UIOpacity = this.btnUnlock.addComponent(UIOpacity) // tween(btnOpacity).to(0.5, { opacity: 0 }).start() tween(this.chain).by(0.5, { position: v3(0, -50, 0) }).start() const chainOpacity: UIOpacity = this.chain.addComponent(UIOpacity) tween(chainOpacity).to(0.5, { opacity: 0 }).start() this.scheduleOnce(() => { this.node.destroy() }, 0.5) } protected onLoad(): void { this.lbCnt = this.getComponentInChildren(Label) this.glass = this.node.getChildByName('Glass').getComponent(Sprite) GameMgr.shelveLockerArr.push(this) EventMgr.on(EventType.MergeGoods, this.onMergeGoods, this) } protected onDestroy(): void { ArrayUtil.remove(GameMgr.shelveLockerArr, this) EventMgr.off(EventType.MergeGoods, this.onMergeGoods, this) } protected onMergeGoods(): void { if (this !== GameMgr.shelveLockerArr[0]) return this.UnlockCnt-- } protected onBtnUnlockClick(): void { // this.UnlockCnt = 0 } }