// 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 GameReport from "../../../FrameWork/Report/ZyZyReport"; import User from "../../../FrameWork/User/User"; import AppPlatform from "../../../FrameWork/Util/AppPlatform"; import Common from "../../../FrameWork/Util/Common"; import Common5 from "../../../Platform/th/Common5"; import TTAPI from "../../../Platform/tt/TTAPI"; import TaskManager, { MainTaskIdEnum } from "../../JuQingChat/TaskManager"; import PrefabManage, { GameType } from "../../PrefabManager/PrefabManage"; import { WenZiAwardMoney, WenZiGuoGuanLevel } from "./FirstLevelSelectView2"; import GameFailUI from "./GameFailUI"; // import MainScene from "./MainSceneScript"; const { ccclass, property } = cc._decorator; @ccclass export default class Game extends cc.Component { @property(cc.Node) backNode: cc.Node = null; @property(cc.Node) prefabNode: cc.Node = null; @property(cc.Node) maskNode: cc.Node = null; @property(cc.Sprite) timeSpript: cc.Sprite = null; @property(cc.Label) titleLabel: cc.Label = null; @property(cc.Label) timeLabel: cc.Label = null; @property(cc.Node) timeNode: cc.Node = null; @property(cc.Node) addtimeBtn: cc.Node = null; @property(cc.Node) tipAdNode: cc.Node = null; @property(cc.Node) tipNoAdNode: cc.Node = null; @property(cc.Node) answerNode: cc.Node = null; @property(cc.Node) guizeNode: cc.Node = null; @property(cc.Label) guizeLabel: cc.Label = null; @property(cc.Node) guizeBtnNode: cc.Node = null; @property(cc.Node) guizeCloseBtnNode: cc.Node = null; znzTime = 15; targetNode = []; isLoading = false; oldScale = 1; tempGameConfig = null; allTargetNum = 0; finishTargetNum = 0; allTime = 0; lefTime = 0; isFinish = false; playTime = 0; tmpUnlockSubLevel = -1; finishSub = []; // LIFE-CYCLE CALLBACKS: // onLoad () {} public static ins: Game = null; isExitTip = false; protected onLoad(): void { Game.ins = this; this.oldScale = this.node.scale; console.log(this.oldScale); this.node.active = false; EventMgr.onEvent_custom(ryw_Event.tooltipClose, () => { this.updateTishiBtn(); }, this) Common5.playMusic("bg"); // this.node.getChildByName("mask").height = this.node.getChildByName("mask").height * this.node.width/this.node.getChildByName("mask").width ; // this.node.getChildByName("mask").width = this.node.width; } start() { this.maskNode.getComponent(cc.Widget).updateAlignment(); // this.prefabNode.getComponent(cc.Widget).updateAlignment(); this.node.on(cc.Node.EventType.TOUCH_START, (event) => { //console.log(event.getLocation()) // MainScene.ins.showClickEffect(event.getLocation()) }, this, true) EventMgr.onEvent_custom(ryw_Event.startTimeTick, () => { if (Common5.selectGameInfo.isNeedTime) { this.isFinish = false this.schedule(this.refreshTime, 1) } }, this) EventMgr.onEvent_custom(ryw_Event.game_continue, () => { this.isFinish = false this.lefTime = Common5.selectGameInfo.timeInit; this.allTime = Common5.selectGameInfo.timeInit; this.schedule(this.refreshTime, 1) }, this) EventMgr.onEvent_custom(ryw_Event.stopTimeTick, () => { this.stopTime(); }, this) } toolTip() { } closeGuize() { this.guizeNode.active = false; } showGui() { //this.guizeNode.active = true; EventMgr.emitEvent_custom(ryw_Event.openGuizeLayerEvent) } setGuizeText(str) { this.guizeLabel.string = str; } showSuccess() { this.stopTime(); EventMgr.emitEvent_custom(ryw_Event.finish_game); this.playSuccessDadian() User.setUserIQAdd(1, Common5.selectGameNum) User.setSuccessLevels(Common5.selectGameNum); PrefabManage.loadPrefabByType(GameType.WZ_GameSuccessView) //完成任务108 let levelArr = User.getSuccessLevels(); let mainTaskInfo: any = TaskManager.getCurUnLockMainTaskInfo() let mainId = mainTaskInfo.Id let successNum = 0 let arr = Common5.gameConfig.GameAllType[0].Levels for (let i = 0; i < arr.length; i++) { if (levelArr.indexOf(arr[i]) > -1) { successNum++ } } // if(mainId == MainTaskIdEnum.MainTask_108 && successNum >= 1){ // TaskManager.finishCurMainTask(MainTaskIdEnum.MainTask_108) // } for (let i = 0; i < WenZiGuoGuanLevel.length; i++) { if (successNum == WenZiGuoGuanLevel[i]) { let money = WenZiAwardMoney[WenZiGuoGuanLevel.length - i - 1] // UserManager.addMoney(money) // PrefabManage.showTextTips(`奖励${money}已到账`) break } } let config = TaskManager.getTaskConfigById(mainId) //选票 if (mainId == MainTaskIdEnum.MainTask_554_2 && config.taskXuanPiaoNum && User.getUserIQ() >= config.taskXuanPiaoNum) { TaskManager.finishCurMainTask(MainTaskIdEnum.MainTask_554_2) TaskManager.setCurTask(MainTaskIdEnum.MainTask_555) } } showFail() { this.stopTime(); EventMgr.emitEvent_custom(ryw_Event.finish_game); PrefabManage.loadPrefabByType(GameType.WZ_GameFailView) } showFailFuHuo() { this.stopTime(); EventMgr.emitEvent_custom(ryw_Event.finish_game); PrefabManage.loadPrefabByType(GameType.WZ_GameFailView, null, (node) => { node.getComponent(GameFailUI).setFuhuoActive(); }) // Common5.getPrefabFromBundle("ZoomGame","prefab/view/GameFailView",null,(node)=>{ // node.getComponent(GameFailUI).setFuhuoActive(); // }) } addTick(timeTick) { return; this.lefTime += timeTick; this.allTime += timeTick; } setTimePos(x, y) { // this.timeNode.setPosition(x,y); } setTimeScale(scale) { this.timeNode.scale = scale; } setTitle(title) { this.titleLabel.string = title; } refreshTime() { this.playTime++; console.log('this.lefTime==', this.lefTime) if (this.lefTime <= 0) { if (!this.isFinish) { console.error("fail++====refreshTime"); this.finishThisGame(); EventMgr.emitEvent_custom(ryw_Event.finish_game); // Common5.getPrefabFromBundle("ZoomGame","prefab/view/GameFailTimeOutView",null,(node)=>{ // // node.getComponent(GameFailUI).setAddTime(Common5.selectGameInfo.timeVideoAdd); // }) PrefabManage.loadPrefabByType(GameType.WZ_GameFailTimeOutView) } } else { this.lefTime--; if (this.lefTime < 10) { Common5.playEffect("timeTick"); } this.updateTimeProg(); } } tipUnlock(subLevel) { User.unlockWordgameAnswer(Common5.selectGameNum, subLevel, 2); this.finishSub.push(subLevel); this.updateTishiBtn(); } tipAd() { let tab = { onClose: (finish) => { if (finish) { User.setShowAdNum(User.getShowAdNum() + 1) Common5.ReportDY("inLevel", `任务${TaskManager.getCurUnLockMainTaskId()}-AD-` + Common5.selectGameInfo.title2 + "提示") GameReport.ADReport(Common5.selectGameInfo.title2 + '提示', 1, "总裁训练营") // Common5.ReportDY("inLevel", Common5.selectGameInfo.title2 + "-AD-提示"); if (Common.Type == 3) { let index = 0; let answer = User.getUnlockWordgameAnswer(Common5.selectGameNum) if (answer) { for (let i = 0; i < Common.GameSubTipConfigs.length; i++) { if (answer[i] != 2) { index = i; break; } } } Common.subLevel = index; User.unlockWordgameAnswer(Common5.selectGameNum, index, 2); this.tipAdNode.active = false; this.tipNoAdNode.active = true; this.answerNode.active = false; this.showTipAnswer(); return; } User.unlockWordgameAnswer(Common5.selectGameNum, Common.subLevel, 1); if (Common.Type == 1) { User.unlockWordgameAnswer(Common5.selectGameNum, Common.subLevel, 2); this.updateTishiBtn(); } this.showTipAnswer(); return; } else { GameReport.ADReport(Common5.selectGameInfo.title2 + '提示', 0, "总裁训练营") Common5.showTips_custom("广告未观看完"); } }, onFailed: () => { } } AppPlatform.playVideo_custom(tab) } updateTishiBtn() { if (Common5.selectGameInfo.gameType != "guize") { this.guizeBtnNode.active = false; } else if (Common5.selectGameInfo.gameType == "guize") { this.guizeBtnNode.active = true; } let answer = User.getUnlockWordgameAnswer(Common5.selectGameNum) if (Common.Type == 3) { let index = -1; let answer = User.getUnlockWordgameAnswer(Common5.selectGameNum) if (answer) { for (let i = 0; i < this.finishSub.length; i++) { if (answer[this.finishSub[i]] != 2) { this.tipAdNode.active = false; this.tipNoAdNode.active = true; this.answerNode.active = false; Common.subLevel = this.finishSub[i]; return; } } for (let i = 0; i < Common.GameSubTipConfigs.length; i++) { if (answer[i] == 2) { let finish = false; for (let j = 0; j < this.finishSub.length; j++) { if (this.finishSub[j] == i) { finish = true; break; } } if (!finish) { this.tipAdNode.active = false; this.tipNoAdNode.active = true; this.answerNode.active = false; Common.subLevel = this.finishSub[i]; return; } } } for (let i = 0; i < Common.GameSubTipConfigs.length; i++) { if (answer[i] != 2) { index = i; break; } } if (index == -1) { this.tipAdNode.active = false; this.tipNoAdNode.active = true; this.answerNode.active = false; } else { this.tipAdNode.active = true; this.tipNoAdNode.active = false; this.answerNode.active = false; } if (Common.subLevel == this.tmpUnlockSubLevel) { } } else { this.tipAdNode.active = true; this.tipNoAdNode.active = false; this.answerNode.active = false; } return; } if (answer) { let answerIndex = answer[Common.subLevel]; console.log(answerIndex, Common.subLevel, 'answerIndex+++++++++++++======') if (answerIndex == 1) { this.tipAdNode.active = false; this.tipNoAdNode.active = true; this.answerNode.active = false; } else if (answerIndex == 2) { this.tipAdNode.active = false; this.tipNoAdNode.active = false; this.answerNode.active = true; } else { this.tipAdNode.active = true; this.tipNoAdNode.active = false; this.answerNode.active = false; } } else { this.tipAdNode.active = true; this.tipNoAdNode.active = false; this.answerNode.active = false; } } showTipAnswer() { PrefabManage.loadPrefabByType(GameType.WZ_tipPrefab) // Common5.getPrefabFromBundle("ZoomGame","prefab/view/tipPrefab",null,(node)=>{ // }) } finishThisGame() { // this.reset(); this.isFinish = true; // this.node.scale = 0; } updateTimeProg() { this.timeSpript.fillRange = this.lefTime / this.allTime; let secondStr = ""; let second = this.lefTime % 60; if (second < 10) { secondStr = "0" + second; } else { secondStr = second.toString(); } this.timeLabel.string = Math.floor(this.lefTime / 60) + ":" + secondStr; } reset() { TTAPI.startRecord_custom(); Common.SpeTip = ""; // MainScene.ins.levelNode.active = false; if (Common5.selectGameInfo.gameTitle && Common5.selectGameInfo.gameTitle != "") { this.titleLabel.string = Common5.selectGameInfo.gameTitle; this.titleLabel.node.parent.active = true; } else { this.titleLabel.node.parent.active = false; } if (Common5.selectGameInfo.isNeedTime) { this.timeNode.active = true; this.addtimeBtn.active = true; this.lefTime = Common5.selectGameInfo.timeInit; this.allTime = Common5.selectGameInfo.timeInit; console.log(this.lefTime, this.allTime) this.updateTimeProg(); this.resetTime(); } else { this.timeNode.active = false; this.addtimeBtn.active = false; } this.node.active = true; this.updateTishiBtn(); this.finishSub = []; // this.showFail(); this.preLoadNext(); } preLoadNext() { let nextLevel = -1; for (let i = 0; i < Common5.gameConfig.GameAllType[Common5.curWordGameType].Levels.length; i++) { let level = Common5.gameConfig.GameAllType[Common5.curWordGameType].Levels[i]; if (level == Common5.selectGameNum) { if (i < (Common5.gameConfig.GameAllType[Common5.curWordGameType].Levels.length - 1)) { nextLevel = Common5.gameConfig.GameAllType[Common5.curWordGameType].Levels[i + 1]; break; } } } if (nextLevel != -1) { console.log(Common5.gameConfig.zmGameConfig[nextLevel].bundle); let bundle = cc.assetManager.loadBundle(Common5.gameConfig.zmGameConfig[nextLevel].bundle, (err, bundle) => { bundle.load(Common5.gameConfig.zmGameConfig[nextLevel].bundle, cc.Prefab, () => { console.log(nextLevel + " preloadSuccess!") }) }) if (Common5.gameConfig.zmGameConfig[nextLevel].subbundle && Common5.gameConfig.zmGameConfig[nextLevel].subbundle != "") { let subbundle = cc.assetManager.loadBundle(Common5.gameConfig.zmGameConfig[nextLevel].subbundle, (err, subbundle) => { subbundle.load(Common5.gameConfig.zmGameConfig[nextLevel].suburl, cc.Prefab, () => { console.log(nextLevel + " subbundle preloadSuccess!") }) }) } // cc.assetManager.getBundle(Common5.gameConfig.zmGameConfig[nextLevel].bundle); } } resetTime() { this.isFinish = false this.schedule(this.refreshTime, 1) } stopTime() { this.unschedule(this.refreshTime); } clickBack(event, isReport) { // this.prefabNode.removeAllChildren(); // this.node.active = false; if (this.isExitTip) { return } this.isExitTip = true PrefabManage.loadPrefabByType(GameType.WZ_ExitTip, null, () => { this.scheduleOnce(() => { this.isExitTip = false }, 0.1) }) // Common5.getPrefabFromBundle("ZoomGame","prefab/view/ExitTip",null, ()=>{ // this.scheduleOnce(()=>{ // this.isExitTip = false // },0.1) // }); } clickBackTimeOut(event, isReport) { // this.prefabNode.removeAllChildren(); // this.node.active = false; PrefabManage.loadPrefabByType(GameType.WZ_GameFailView) // Common5.getPrefabFromBundle("ZoomGame","prefab/view/GameFailView"); } exitGame() { console.log("exitGame1") if (!cc.isValid(this.node)) { return } if (!cc.isValid(this.prefabNode)) { return } console.log("exitGame2") for (let i = 0; i < this.prefabNode.childrenCount; i++) { let childNode = this.prefabNode.children[i] console.log(childNode.name, '删除name++++++++++++++===') let name = childNode.name EventMgr.emitEvent_custom(ryw_Event.ExitBtnEvent, name); } this.prefabNode.destroyAllChildren(); this.prefabNode.removeAllChildren(); this.node.active = false; // MainScene.ins.levelNode.active = true; this.stopTime(); Common5.stopMusic(); this.scheduleOnce(() => { Common5.playMusic("bg"); }, 0.1) this.node.removeFromParent() this.node.destroy() } setAnswerHide() { } addtimeClick() { Common5.playEffect("ui"); let tab = { onClose: (finish) => { if (finish) { User.setShowAdNum(User.getShowAdNum() + 1) GameReport.ADReport(Common5.selectGameInfo.title2 + '加时', 1, "总裁训练营") if (Common5.selectGameInfo) { Common5.ReportDY("inLevel", `任务${TaskManager.getCurUnLockMainTaskId()}-AD-` + Common5.selectGameInfo.title2 + "加时") // Common5.ReportDY("inLevel", Common5.selectGameInfo.title2 + "-AD-加时"); } this.lefTime = this.lefTime + Common5.selectGameInfo.timeVideoAdd; this.allTime += Common5.selectGameInfo.timeVideoAdd; EventMgr.emitEvent_custom(ryw_Event.addTimeSucc); return; } else { GameReport.ADReport(Common5.selectGameInfo.title2 + '加时', 0, "总裁训练营") // this.node.removeFromParent(); Common5.showTips_custom("广告未观看完"); } }, onFailed: () => { } } AppPlatform.playVideo_custom(tab) } setGameTitle(gameTitle) { this.titleLabel.node.parent.active = true; this.titleLabel.string = gameTitle; } playSuccessDadian() { let title = Common5.selectGameInfo.title2 console.log(title + "-成功通关") Common5.ReportDY("inLevel", title + "-成功通关"); } onRestartCallFunc() { let callFunc = this.restartCallFunc PrefabManage.loadPrefabByType(GameType.WZ_GameMain, null, () => { this.scheduleOnce(() => { this.node.removeFromParent() this.node.destroy() callFunc() }) }) } clearLastGameNode() { for (let i = 0; i < this.prefabNode.childrenCount; i++) { let childNode = this.prefabNode.children[i] console.log(childNode.name, '删除name++++++++++++++===') let name = childNode.name EventMgr.emitEvent_custom(ryw_Event.ExitBtnEvent, name); } this.node.removeFromParent() this.node.destroy() } restartCallFunc() { if (Common5.selectGameInfo.subbundle != "" && Common5.selectGameInfo.subbundle != undefined) { let subbundle = cc.assetManager.loadBundle(Common5.selectGameInfo.subbundle, (err, subbundle) => { cc.assetManager.loadBundle(Common5.selectGameInfo.bundle, function (err: Error, bundle: cc.AssetManager.Bundle) { // MainScene.ins.GameNode.getChildByName("mask").getChildByName("prefabNode").destroyAllChildren(); // MainScene.ins.GameNode.getChildByName("mask").getChildByName("prefabNode").removeAllChildren(); Common5.getPrefabFromBundlePrefabLayer(Common5.selectGameInfo.bundle, Common5.selectGameInfo.url, Game.ins.node.getChildByName("mask").getChildByName("prefabNode"), (prefab) => { // prefab.width = Game.ins.maskNode.width; // prefab.height = Game.ins.maskNode.width; // if (Common5.selectGameNum != 0){ // User.setFirstIn(false); // } if (Common5.selectGameInfo.isTer) { PrefabManage.loadPrefabByType(GameType.WZ_TerrTip) // Common5.getPrefabFromBundle("ZoomGame","prefab/view/TerrTip"); } User.setLeveNum_custom(Common5.selectGameNum); // prefab.scale = Game.ins.maskNode.width/prefab.width; // prefab.setPosition(0,0); // console.log("prefab.width",prefab.width,prefab.height,prefab.position,MainScene.ins.GameNode.getChildByName("mask").getChildByName("prefabNode").position) // Common5.hideTips_custom(); Game.ins.reset(); // MainScene.ins.isLoading = false; }) }); }) } else { cc.assetManager.loadBundle(Common5.selectGameInfo.bundle, function (err: Error, bundle: cc.AssetManager.Bundle) { // MainScene.ins.GameNode.getChildByName("mask").getChildByName("prefabNode").destroyAllChildren(); // MainScene.ins.GameNode.getChildByName("mask").getChildByName("prefabNode").removeAllChildren(); Common5.getPrefabFromBundlePrefabLayer(Common5.selectGameInfo.bundle, Common5.selectGameInfo.url, Game.ins.node.getChildByName("mask").getChildByName("prefabNode"), (prefab) => { // prefab.width = Game.ins.maskNode.width; // prefab.height = Game.ins.maskNode.width; // if (Common5.selectGameNum != 0){ // User.setFirstIn(false); // } if (Common5.selectGameInfo.isTer) { PrefabManage.loadPrefabByType(GameType.WZ_TerrTip) // Common5.getPrefabFromBundle("ZoomGame","prefab/view/TerrTip"); } User.setLeveNum_custom(Common5.selectGameNum); // prefab.scale = Game.ins.maskNode.width/prefab.width; // prefab.setPosition(0,0); // console.log("prefab.width",prefab.width,prefab.height,prefab.position,MainScene.ins.GameNode.getChildByName("mask").getChildByName("prefabNode").position) // Common5.hideTips_custom(); Game.ins.reset(); // MainScene.ins.isLoading = false; }) }); } } // update (dt) {} }