"use strict"; cc._RF.push(module, 'fbe6eMUQrJKUaZjBXHhR0Ke', 'gameScene'); // Script/gameScene.ts "use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); var App_1 = require("./Manager/App"); var FailPanelMediator_1 = require("./view/failPanel/FailPanelMediator"); var FailPanel_1 = require("./view/failPanel/FailPanel"); var SuccessPanelMediator_1 = require("./view/successPanel/SuccessPanelMediator"); var SuccessPanel_1 = require("./view/successPanel/SuccessPanel"); var InsufficientPanelMediator_1 = require("./view/insufficientPanel/InsufficientPanelMediator"); var InsufficientPanel_1 = require("./view/insufficientPanel/InsufficientPanel"); var TimeControl_1 = require("./TimeControl"); var TipPanelMediator_1 = require("./view/tipPanel/TipPanelMediator"); var TipPanel_1 = require("./view/tipPanel/TipPanel"); var SoundManager_1 = require("./Manager/SoundManager"); var SDK_1 = require("./sdk/SDK"); var ChooseSkinPanel_1 = require("./view/chooseSkin/ChooseSkinPanel"); var ChooseSkinPanelMediator_1 = require("./view/chooseSkin/ChooseSkinPanelMediator"); var SetNormalPanel_1 = require("./view/setNormal/SetNormalPanel"); var SetNormalPanelMediator_1 = require("./view/setNormal/SetNormalPanelMediator"); var Interstitial_1 = require("./sdk/vivo/Interstitial"); var ATRewardedVideoJSSDK_1 = require("./AnyThinkAds/ATRewardedVideoJSSDK"); var ATAndroidJS2_1 = require("./ATAndroidJS2"); var ATInterstitialJSSDK_1 = require("./AnyThinkAds/ATInterstitialJSSDK"); var ATAndroidJS2_2 = require("./ATAndroidJS2"); var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; var gameScene = /** @class */ (function (_super) { __extends(gameScene, _super); function gameScene() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.bg = null; _this.bgSpriteFrame = []; _this.levelParent = null; _this.mainCamera = null; _this.btnPause = null; _this.labelPersonNum = null; _this.labelWinCoin = null; _this.curLevelWinCoin = 0; _this.GameStutas = false; _this.mainSceneName = "hallScene"; _this.currentSceneName = "gameScene"; return _this; } gameScene_1 = gameScene; Object.defineProperty(gameScene, "instance", { get: function () { return gameScene_1._instance; }, set: function (value) { gameScene_1._instance = value; }, enumerable: false, configurable: true }); gameScene.prototype.onLoad = function () { gameScene_1.instance = this; this.GameStutas = false; //开启触发功能 // var manager = cc.director.getCollisionManager(); // manager.enabled = true; // manager.enabledDebugDraw = true; // let phyManager = cc.director.getPhysicsManager(); // phyManager.enabled = true; // var Bits = cc.PhysicsManager.DrawBits; // phyManager.debugDrawFlags = Bits.e_aabbBit | Bits.e_shapeBit; this.btnPause.on(cc.Node.EventType.TOUCH_END, this.ClickPause.bind(this), this); SDK_1.default.Instance.showInterstitial(Interstitial_1.InterstitialType.INTERSTITIAL_GAME_STARE); //GlobalManager.getInstance().registerMethod('initAdForPageInter', this.initAdForPageInter.bind(this)); this.initAdForPageInter(); }; //add判断插屏 开屏等,需要多次准备 //add判断插屏 开屏等,需要多次准备 gameScene.prototype.initAdForPageInter = function () { if (cc.sys.os === cc.sys.OS_ANDROID) { console.log('zh:skillBox.ts 开始准备AD .....'); var deviceId = ATAndroidJS2_1.default.getDeviceUserId(); var setting = {}; setting[ATRewardedVideoJSSDK_1.default.userIdKey] = deviceId; //add判断插屏 开屏等 var pid_inter = ATAndroidJS2_1.default.getPlacementId2(ATAndroidJS2_2.AdType.Inter); console.log("zh: pid_inter checkstatus:", ATInterstitialJSSDK_1.default.checkAdStatus(pid_inter)); ATInterstitialJSSDK_1.default.loadInterstitial(pid_inter, setting); } }; /** * 显示插屏广告 * * @param adMarkForClose 插屏广告关闭后调用那个方法的具体指示标识 * @param checkClose 是否需要判断关闭事件,有的不需要,如果AD占用游戏时间则为true * @param callback 插屏广告关闭(加载失败\非ANDROID平台)的回调 */ gameScene.prototype.showInterAd = function (adMarkForClose, checkClose, callback) { if (cc.sys.os === cc.sys.OS_ANDROID) { cc.sys.localStorage.setItem("adMarkForClose", adMarkForClose); //关闭后,调用哪个方法的标识 //add判断插屏 开屏等 var pid_inter = ATAndroidJS2_1.default.getPlacementId2(ATAndroidJS2_2.AdType.Inter); var boo = ATInterstitialJSSDK_1.default.hasAdReady(pid_inter); if (boo) { // 暂停游戏 cc.director.pause(); console.log('zh:showInterAd AD OK'); ATInterstitialJSSDK_1.default.showAd(pid_inter); //因为跨脚本,所以使用全局注册函数调用,后来发现切换APP,导致ad close事件失效 if (!checkClose) { //如果不占用游戏时间 callback(); } } else { console.log('zh:showInterAd AD 没有准备好'); //GlobalManager.getInstance().callMethod('initAdForPageInter'); this.initAdForPageInter(); callback(); } } else { callback(); } }; gameScene.prototype.start = function () { var smallLevel = App_1.App.DataManager.PassProgress[App_1.App.DataManager.CurrentIntoLevel]; this.updateLeftPeople(App_1.App.DataManager.personCount[App_1.App.DataManager.CurrentIntoLevel - 1][smallLevel - 1]); this.updateWinCoin(); // this.levelLabel.string = App.DataManager.CurrentIntoLevel.toString(); this.bg.getComponent(cc.Sprite).spriteFrame = this.bgSpriteFrame[0]; // this.InstantLevel(); App_1.App.DataManager.resetFlag = false; this.StartGame(); }; gameScene.prototype.SaveLevelData = function (nodes) { var saves = []; nodes.children.forEach(function (child) { var childData = { 'name': child.name, 'x': child.x.toFixed(1), 'y': child.y.toFixed(1) }; saves.push(childData); }); var readLevel = '9'; App_1.App.LocalStorageUtil.setJsonObj('Stupid_' + readLevel, saves); console.log('关卡号:', readLevel); console.log('关卡数据:', saves); }; /** 生成关卡数据 */ gameScene.prototype.InstantLevel = function () { // if (App.DataManager.Configs.length < App.DataManager.CurrentIntoLevel) { // if (App.DataManager.InfiniteLevelDate[App.DataManager.CurrentIntoLevel]) { // this.InitLevel(App.DataManager.InfiniteLevelDate[App.DataManager.CurrentIntoLevel]); // return; // } // let value = App.DataManager.CurrentIntoLevel - App.DataManager.Configs.length; // let randomListLen = App.DataManager.RandomLevelList.length; // let yushu = value % randomListLen; // let randomArea = (yushu == 0) ? App.DataManager.RandomLevelList[randomListLen - 1] : App.DataManager.RandomLevelList[yushu - 1]; // let levelValue = Math.round(Math.random() * (randomArea.endLevel - randomArea.startLevel)) + randomArea.startLevel; // this.InitLevel(levelValue); // App.DataManager.InfiniteLevelDate[App.DataManager.CurrentIntoLevel] = levelValue; // App.LocalStorageUtil.setJsonObj(App.LocalStorageUtil.lst_InfiniteLevelDate, App.DataManager.InfiniteLevelDate); // } else { this.InitLevel(App_1.App.DataManager.CurrentIntoLevel); // } }; // 初始化关卡 gameScene.prototype.InitLevel = function (index) { // let datas = App.DataManager.Configs[index].json; // datas.forEach(element => { // var nodes = cc.instantiate(App.DataManager.PropPrefabs[element.name]); // this.levelParent.addChild(nodes); // nodes.x = Number(element.x); // nodes.y = Number(element.y); // }); var level = cc.instantiate(App_1.App.DataManager.PropPrefabs["level" + index]); this.levelParent.addChild(level); }; /** 开始游戏 */ gameScene.prototype.StartGame = function () { this.GameStutas = true; App_1.App.SoundManager.playEffect(SoundManager_1.SoundManager.start); App_1.App.SoundManager.playBGM(SoundManager_1.SoundManager.hallBgm[2]); }; gameScene.prototype.updateLeftPeople = function (peopleNum) { this.labelPersonNum.string = peopleNum + ""; }; gameScene.prototype.updateWinCoin = function () { this.labelWinCoin.string = this.curLevelWinCoin + ""; }; gameScene.prototype.ClickPause = function () { App_1.App.Facade.popView(SetNormalPanelMediator_1.default, SetNormalPanel_1.default, "设置", false); cc.director.pause(); }; gameScene.prototype.ClickGoOn = function () { }; gameScene.prototype.ClickRestart = function () { console.log('zh:ClickRestart'); App_1.App.DataManager.resetFlag = true; this.LoadLevel(); }; /** * 点击返回主页 */ gameScene.prototype.ClickBackMain = function () { console.log('zh:ClickBackMain'); cc.director.loadScene(this.mainSceneName); // this.showInterAd("callBackFor_ClickBackMain",false, () => this.callBackFor_ClickBackMain()); }; gameScene.prototype.callBackFor_ClickBackMain = function () { cc.director.loadScene(this.mainSceneName); }; /** * 跳关 */ gameScene.prototype.JumpLevel = function () { console.log('观看视频后跳关~'); this.JumpNextLevel(); }; // gameScene.prototype.replay = function () { console.log('zh:replay'); cc.director.loadScene(this.currentSceneName); }; /** * 加载关卡 */ gameScene.prototype.LoadLevel = function () { var _this = this; App_1.App.DataManager.UpdateTili(TimeControl_1.default.instance.consumeTili, function (success) { if (success) cc.director.loadScene(_this.currentSceneName); else App_1.App.Facade.popView(InsufficientPanelMediator_1.default, InsufficientPanel_1.default, "2体力不足", false); }); }; /** * 下一关 */ gameScene.prototype.JumpNextLevel = function () { this.NextLevelDateUpdate(); this.LoadLevel(); }; /** * 点击下一关后数据更新 */ gameScene.prototype.NextLevelDateUpdate = function () { if (App_1.App.DataManager.PassProgress[App_1.App.DataManager.CurrentIntoLevel] > 3) { App_1.App.DataManager.CurrentIntoLevel++; App_1.App.DataManager.PlayLevel = App_1.App.DataManager.CurrentIntoLevel; App_1.App.LocalStorageUtil.setNumber(App_1.App.LocalStorageUtil.lst_playLevel, App_1.App.DataManager.PlayLevel); } while (App_1.App.DataManager.PassProgress[App_1.App.DataManager.CurrentIntoLevel] > 3) { App_1.App.DataManager.CurrentIntoLevel++; App_1.App.DataManager.PlayLevel = App_1.App.DataManager.CurrentIntoLevel; App_1.App.LocalStorageUtil.setNumber(App_1.App.LocalStorageUtil.lst_playLevel, App_1.App.DataManager.PlayLevel); } }; /** * 更新通关数 */ gameScene.prototype.UpdateLocalLevel = function () { var current = Number(App_1.App.DataManager.CurrentIntoLevel); console.log('UpdateLocalLevel', current, App_1.App.DataManager.PassProgress[current]); if (App_1.App.DataManager.PassProgress[current]) { App_1.App.DataManager.PassProgress[current]++; } if (!App_1.App.DataManager.PassProgress[current + 1]) { App_1.App.DataManager.PassProgress[current + 1] = 1; } App_1.App.LocalStorageUtil.setJsonObj(App_1.App.LocalStorageUtil.lst_passProgress, App_1.App.DataManager.PassProgress); // this.UpdateGetSkin(); }; gameScene.prototype.OpenChooseSkin = function () { App_1.App.Facade.popView(ChooseSkinPanelMediator_1.default, ChooseSkinPanel_1.default, '皮肤界面', false); }; gameScene.prototype.UpdateGetSkin = function () { var _this = this; var passLevelCount = Object.keys(App_1.App.DataManager.PassProgress).length - 1; App_1.App.DataManager.MissionDataList.forEach(function (element) { var pass = element.passLevel; var hasGetSkin = (passLevelCount >= pass) ? true : false; if (hasGetSkin) { var hasSave = App_1.App.DataManager.GetSkins.indexOf(element.getSkin); if (hasSave == -1) { App_1.App.DataManager.GetSkins.push(element.getSkin); App_1.App.LocalStorageUtil.setJsonObj(App_1.App.LocalStorageUtil.lst_getSkin, App_1.App.DataManager.GetSkins); console.log('通关获得新皮肤'); // this.newSkinTips.active = true; App_1.App.DataManager.NewSkinName = element.getSkin; App_1.App.DataManager.GetNewSkinFlag = true; _this.scheduleOnce(function () { App_1.App.Facade.popView(TipPanelMediator_1.default, TipPanel_1.default, "通关获得新皮肤~", false); }, 0); } } }); }; /** * 游戏成功 */ gameScene.prototype.GameSuccess = function () { console.log('游戏成功***********'); this.GameComplete(); App_1.App.SoundManager.playEffect(SoundManager_1.SoundManager.success[Math.floor(Math.random() * 2)]); this.UpdateLocalLevel(); this.scheduleOnce(function () { App_1.App.Facade.popView(SuccessPanelMediator_1.default, SuccessPanel_1.default, "游戏成功弹窗", false); }, 1); }; /** * 游戏失败 */ gameScene.prototype.GameFail = function (huoFlag) { if (huoFlag === void 0) { huoFlag = false; } if (!this.GameStutas) return; this.GameComplete(); App_1.App.SoundManager.playEffect(SoundManager_1.SoundManager.fail); this.scheduleOnce(function () { App_1.App.Facade.popView(FailPanelMediator_1.default, FailPanel_1.default, "游戏失败弹窗", false); }, 2); }; /** * 游戏结束 */ gameScene.prototype.GameComplete = function () { this.GameStutas = false; }; gameScene.prototype.onDisable = function () { this.btnPause.off(cc.Node.EventType.TOUCH_END, this.ClickPause.bind(this), this); }; gameScene.prototype.onDestroy = function () { gameScene_1.instance = null; }; var gameScene_1; __decorate([ property(cc.Node) ], gameScene.prototype, "bg", void 0); __decorate([ property([cc.SpriteFrame]) ], gameScene.prototype, "bgSpriteFrame", void 0); __decorate([ property(cc.Node) ], gameScene.prototype, "levelParent", void 0); __decorate([ property(cc.Node) ], gameScene.prototype, "mainCamera", void 0); __decorate([ property(cc.Node) ], gameScene.prototype, "btnPause", void 0); __decorate([ property(cc.Label) ], gameScene.prototype, "labelPersonNum", void 0); __decorate([ property(cc.Label) ], gameScene.prototype, "labelWinCoin", void 0); gameScene = gameScene_1 = __decorate([ ccclass ], gameScene); return gameScene; }(cc.Component)); exports.default = gameScene; cc._RF.pop();