咸鱼的反击
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

658 lines
24 KiB

2 months ago
// 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) {}
}