// Learn TypeScript: // - https://docs.cocos.com/creator/2.4/manual/en/scripting/typescript.html // Learn Attribute: // - https://docs.cocos.com/creator/2.4/manual/en/scripting/reference/attributes.html // Learn life-cycle callbacks: // - https://docs.cocos.com/creator/2.4/manual/en/scripting/life-cycle-callbacks.html import { ryw_Event } from "../../FrameWork/Event/EventEnum"; import EventMgr from "../../FrameWork/Event/EventMgr"; import User from "../../FrameWork/User/User"; import AppPlatform from "../../FrameWork/Util/AppPlatform"; import Common5 from "../../Platform/th/Common5"; import UiBase from "../GameBase/UiBase"; import TaskManager from "../JuQingChat/TaskManager"; import NewGuideScript from "../NewGuide/NewGuideScript"; import PrefabManage, { GameType } from "../PrefabManager/PrefabManage"; const { ccclass, property } = cc._decorator; @ccclass export default class MultipleIncome extends UiBase { @property(cc.Node) turntableBG: cc.Node = null; @property(cc.Node) deng1: cc.Node = null; @property(cc.Node) deng2: cc.Node = null; isAnimEnd = false // LIFE-CYCLE CALLBACKS: maxTime = 5 * 60 maxTimeD = 3 * 60 // onLoad () {} isMaxMultiple = false amountNum = 0 onDestroy(): void { if (this.isAnimEnd == true) { User.setShouyiFanbeiNum(this.amountNum) let time = User.getShouyiFanbeiTime() if (User.getZhuanPanFree()) { User.setZhuanPanFree(false) User.setShouyiFanbeiTime(this.maxTimeD + time) } else { User.setShouyiFanbeiTime(this.maxTime + time) } EventMgr.emitEvent_custom(ryw_Event.MultipleIncomeEvent) } } start() { cc.tween(this.deng1) .delay(0.5) .call(() => { this.deng2.active = false }) .delay(0.5) .call(() => { this.deng2.active = true }) .union() .repeatForever() .start() PrefabManage.preloadPrefabByType(GameType.BoxTipNode) let zhuanpan = User.getZhuanPanFree() if (zhuanpan) { this.node.getChildByName('videoBtn').active = false this.node.getChildByName('FreeBtn').active = true let node = this.node.getChildByName('FreeBtn') this.guideView([node]) } else { this.node.getChildByName('videoBtn').active = true this.node.getChildByName('FreeBtn').active = false } let index = User.getFirstStepIndex() if (index == 4) { this.loadPrefabs() } } loadPrefabs() { this.scheduleOnce(() => { let curSignDay = -1 let signList = User.getSignList() for (let i = 0; i < 7; i++) { if (signList[i] == 0) { curSignDay = i break } } let index = User.getFirstStepIndex() if (index == 1) { let array = [GameType.PeopleLevelUp, GameType.MishuGame, GameType.MultipleIncome] PrefabManage.preloadPrefabArray(array) } else { let array = [GameType.PeopleLevelUp, GameType.MishuGame, GameType.ChallengeChoose, GameType.SignDay, GameType.OnLineGame, GameType.MultipleIncome, GameType.TanWei, GameType.Shipu, GameType.FangChanGame, GameType.GuPiao, GameType.ChatList, GameType.CityPrefab] if (curSignDay == -1) { array = [GameType.PeopleLevelUp, GameType.MishuGame, GameType.ChallengeChoose, GameType.OnLineGame, GameType.MultipleIncome, GameType.TanWei, GameType.Shipu, GameType.FangChanGame, GameType.GuPiao, GameType.ChatList, GameType.CityPrefab] } PrefabManage.preloadPrefabArray(array) } }, 0) } guideView(nodeArray, opacity = -1) { PrefabManage.loadPrefabByType(GameType.GuideMskNode, null, (prefab) => { // prefab.zIndex = 199 let guideNodeArray = nodeArray let firstNode = guideNodeArray.shift() prefab.getComponent(NewGuideScript).setBindNode(firstNode, guideNodeArray) if (opacity != -1) { prefab.getComponent(NewGuideScript).setOpacityMaskNode(opacity) } }) } closeView() { cc.audioEngine.stopAllEffects(); this.node.removeFromParent() this.node.destroy() EventMgr.emitEvent_custom(ryw_Event.ExitBtnEvent, ''); } chouquFreeClick() { //Common5.playEffect("sound/按键点击") if (this.isAnimEnd) { return } this.choujiangAnim() this.isAnimEnd = true } chouquAdClick() { //Common5.playEffect("sound/按键点击") if (this.isAnimEnd) { return } let tab = { onClose: (finish) => { if (finish) { User.setShowAdNum(User.getShowAdNum() + 1) Common5.ReportDY("inLevel", `任务${TaskManager.getCurUnLockMainTaskId()}-AD-收益翻倍`) // Common5.ReportDY("inLevel", "收益翻倍-AD-翻倍"); this.choujiangAnim() this.isAnimEnd = true } else { Common5.showTips_custom("广告未观看完"); } }, onFailed: () => { } } AppPlatform.playVideo_custom(tab) } getRandomNum(min, max) { let minNumber = Math.min(min, max); let maxNumber = Math.max(min, max); return Math.floor(Math.random() * (maxNumber - minNumber)) + minNumber; } choujiangAnim() { let clickTimes = 12; //设置转盘指针多时间 let clickTimes2 = 12; let rounds = -6; //设置转盘指针多少圈 this.turntableBG.stopAllActions() this.turntableBG.angle = 0 let awardAngle01 = parseInt((Math.random() * (-45) + (-25)) + ''); //1 let awardAngle02 = parseInt((Math.random() * (-45) + (-95)) + ''); //2 let awardAngle03 = parseInt((Math.random() * (-45) + (-165)) + ''); //3 let awardAngle04 = parseInt((Math.random() * (-45) + (-235)) + ''); //4 let awardAngle05 = parseInt((Math.random() * (-45) + (-305)) + ''); //5 var awardMapping = { // 转盘 会 根据 angleVlue 进行判断,angleVlue 是重要参数,angleVlue 同事涉及对 转盘角度的控制 0: { amount: '', angleVlue: '0' }, 1: { amount: 2, angleVlue: '1' }, 2: { amount: 10, angleVlue: '2' }, 3: { amount: 8, angleVlue: '3' }, 4: { amount: 5, angleVlue: '4' }, 5: { amount: 3, angleVlue: '5' } }; //////console.log(res.json, 'res') let pro = [35, 30, 30, 3, 2] let levelUser = User.getMyLevel() if (levelUser < 300) { pro = [25, 35, 30, 5, 5] } else if (levelUser >= 300 && levelUser < 900) { pro = [25, 10, 10, 45, 10] } else { pro = [15, 20, 15, 40, 10] } let chooseTotal = 5 let index = Common5.getProbabilityResultIndex(pro) let chooseTotalArray = [1, 5, 4, 3, 2] chooseTotal = chooseTotalArray[index] // let num_= this.getRandomNum(1, 101) // let chooseTotal = 5 // if(num_ <= 20){ // chooseTotal = 5 // }else if(num_ > 20 && num_ <= 50){ // chooseTotal = 1 // }else if(num_ > 50 && num_ <= 75){ // chooseTotal = 4 // }else if(num_ > 75 && num_ <= 95){ // chooseTotal = 3 // }else if(num_ > 95 && num_ <= 100){ // chooseTotal = 2 // } let zhuanpan = User.getZhuanPanFree() if (zhuanpan) { chooseTotal = 4 } if (this.isMaxMultiple) { chooseTotal = 2 } //1-2 //2-10 //3-8 //4-5 //5-3 var adValue = awardMapping[chooseTotal].angleVlue; //获取 角度 根据 角度来判断 let amount = awardMapping[chooseTotal].amount this.amountNum = amount console.log(chooseTotal, amount, 'chooseTotal') let self = this let inforDelayShow = () => { self.scheduleOnce(function () { //开启倒计时 self.isAnimEnd = false PrefabManage.loadPrefabByType(GameType.BoxTipNode, null, (prefab) => { prefab.getComponent('BoxTipScript').setViewData(2, `恭喜抽中${amount}倍收益,所有收益翻倍`, () => { User.setShouyiFanbeiNum(amount) let time = User.getShouyiFanbeiTime() if (User.getZhuanPanFree()) { User.setZhuanPanFree(false) User.setShouyiFanbeiTime(self.maxTimeD + time) } else { User.setShouyiFanbeiTime(self.maxTime + time) } EventMgr.emitEvent_custom(ryw_Event.MultipleIncomeEvent) self.closeView() }, () => { Common5.ReportDY("inLevel", "收益翻倍-AD-10倍"); self.isMaxMultiple = true self.choujiangAnim() }) prefab.getComponent('BoxTipScript').setBtnStr('领 取', '抽10倍') prefab.getComponent('BoxTipScript').setTitleView(true) }) }, clickTimes2 - 2); } let curOperateNode = this.turntableBG let angle_ = 0 if (adValue == 1) { angle_ = awardAngle01 + 360 * rounds } else if (adValue == 2) { angle_ = awardAngle02 + 360 * rounds } else if (adValue == 3) { angle_ = awardAngle03 + 360 * rounds } else if (adValue == 4) { angle_ = awardAngle04 + 360 * rounds } else if (adValue == 5) { angle_ = awardAngle05 + 360 * rounds } Common5.playRemoteAudioEffect('sound/diandiandian/转盘抽奖音效') cc.tween(curOperateNode) .call(() => { this.turntableBG.angle = 0 }) .delay(0.1) .to(clickTimes, { angle: angle_ }, { easing: 'quintOut' }) .start() inforDelayShow(); } // update (dt) {} }