12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import { Widget, _decorator, Node, tween, math, Toggle } from 'cc';
- import { UIBase } from '../scriptBase/UIBase';
- import { CoinItem } from '../uiItem/CoinItem';
- import { CoinMgr } from '../manager/CoinMgr';
- import { Global } from '../Global';
- import { UI } from '../enum/UI';
- import { CfgLuckySpin } from '../config/CfgLuckySpin';
- import { InputBlock } from '../misc/InputBlock';
- import { DtoReward } from '../dto/DtoReward';
- import { AudioMgr } from '../manager/AudioMgr';
- const { ccclass, property, requireComponent } = _decorator;
- @ccclass('UI/UILuckySpin')
- @requireComponent(Widget)
- export class UILuckySpin extends UIBase {
- private coinItem: CoinItem = null
- private zhuanPan: Node = null
- private lights: Toggle = null
- private orgAngle: number = 0
- protected onLoad(): void {
- this.coinItem = this.findComp('CoinItem', CoinItem)
- this.zhuanPan = this.findNode('ZhuanPan')
- this.lights = this.findComp('Lights', Toggle)
- }
- public onOpen(data?: any): void {
- this.coinItem.init(CoinMgr.CurCoin)
- this.orgAngle = this.zhuanPan.angle
- }
- public onClose(data?: any): void {
- }
- private spin(): void {
- AudioMgr.playSfx('抽奖转盘')
- this.orgAngle = this.zhuanPan.angle
- const targetAngle: number = this.orgAngle - (720 + 60 * math.randomRangeInt(0, 6))
- const idx: number = (6 + (targetAngle % 360) / 60) % 6
- const data = CfgLuckySpin[idx]
- if (!data) {
- return
- }
- this.scheduleOnce(() => {
- const reward: DtoReward = {
- itemId: data.itemId,
- cnt: data.cnt
- }
- this.open(UI.GetReward, [reward])
- }, 3)
- InputBlock.setActive(3)
- tween(this.zhuanPan).to(3, { angle: targetAngle }, { easing: 'sineInOut' }).start()
- this.schedule(() => {
- this.lights.isChecked = !this.lights.isChecked
- }, 0.25, 10)
- }
- protected onBtnSpinClick(): void {
- if (CoinMgr.CurCoin < Global.Lucky_Spin_Coin_Cost) {
- this.open(UI.Toast, '星星币不足')
- return
- }
- CoinMgr.CurCoin -= Global.Lucky_Spin_Coin_Cost
- this.coinItem.updateCoin(CoinMgr.CurCoin, false)
- this.spin()
- }
- }
|