12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- 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
- }
- }
|