b38d0e9a-8ece-4e7e-a77a-168b740c3e37.js 11.1 KB
"use strict";
cc._RF.push(module, 'b38d06ajs5Ofqd6Fot0DD43', 'MainScene');
// scripts/scenes/MainScene.ts

"use strict";
// Learn TypeScript:
//  - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
// Learn Attribute:
//  - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
//  - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
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 GuideManager_1 = require("../component/GuideManager");
var SaveDataManager_1 = require("../component/SaveDataManager");
var SoundManager_1 = require("../component/SoundManager");
var Global_1 = require("../Global");
var BattleConst_1 = require("../kernel/battle/BattleConst");
var GameSceneObjTableMgr_1 = require("../kernel/table/GameSceneObjTableMgr");
var TableDefine_1 = require("../kernel/table/TableDefine");
var GameSceneControl_1 = require("../ui/gameScene/GameSceneControl");
var UIManager_1 = require("../ui/UIManager");
var ResWidget_1 = require("../ui/uiView/widget/ResWidget");
var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
var MainScene = /** @class */ (function (_super) {
    __extends(MainScene, _super);
    function MainScene() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this._sceneEffectAudioId = -1;
        return _this;
        //#endregion
    }
    //#region  LIFE-CYCLE CALLBACKS:
    MainScene.prototype.onLoad = function () {
        BattleConst_1.getGlobalNode().on(Global_1.GlobalEvent.OBJ_UNLOCK_ANI_FINISH, this.onObjUnlock, this);
        BattleConst_1.getGlobalNode().on(Global_1.GlobalEvent.SOUND_MUSIC_CONFIG_CHANGE, this.onSoundConfigChange, this);
        var guideNode = this.node.getChildByName('guideNode');
        if (guideNode.childrenCount > 0) {
            GuideManager_1.GuideManager.ins.init(guideNode);
        }
    };
    MainScene.prototype.start = function () {
        this.node.getChildByName('widgetStar').getComponent(ResWidget_1.default).setType(Global_1.ResType.STAR);
        this.node.getChildByName('widgetDiamond').getComponent(ResWidget_1.default).setType(Global_1.ResType.DIAMOND);
        this._pageView = cc.find('gameSceneRoot/pageView', this.node).getComponent(cc.PageView);
        this._buildScenePrefab = cc.find('gameSceneRoot/container', this.node);
        this._charNode = cc.find('gameSceneRoot/' + (SaveDataManager_1.SaveDataManager.ins.runtimeData.gender == 0 ? 'girl' : 'boy'), this.node);
        this._tipNode = cc.find('gameSceneRoot/unlockTip', this.node);
        this._parGreenNode = cc.find('gameSceneRoot/parGreen', this.node);
        this._bgLightNode = cc.find('gameSceneRoot/bg', this.node);
        this._unlockSpineNode = cc.find('gameSceneRoot/unlockSpine', this.node);
        var curScene = SaveDataManager_1.SaveDataManager.ins.runtimeData.curGameScene;
        for (var i = 1; i < 4; ++i) {
            if (i <= curScene) {
                this.addScene(i);
            }
        }
        if (this._pageView.getPages().length == 1) {
            //只有一页,手动刷新
            this._pageView.getPages()[0].getComponent(GameSceneControl_1.default).onSlideShow();
        }
        else {
            this._pageView.setCurrentPageIndex(this._pageView.getPages().length - 1);
        }
        this.scheduleOnce(this.checkGuide.bind(this), 0); //等待自适应布局完毕后再检查
    };
    MainScene.prototype.onEnable = function () {
        UIManager_1.UIManager.ins.widgetLayer.active = true;
        if (SaveDataManager_1.SaveDataManager.ins.mainSceneAddStar > 0) {
            SaveDataManager_1.SaveDataManager.ins.adjustStar(SaveDataManager_1.SaveDataManager.ins.mainSceneAddStar, true);
            SaveDataManager_1.SaveDataManager.ins.mainSceneAddStar = 0;
        }
        //预加载地图
        var maxLevel = Global_1.tMgr.getConfig(TableDefine_1.TableName.GAME_PLAY, 22).Value;
        var nextLevelId = SaveDataManager_1.SaveDataManager.ins.runtimeData.curLevel + 1;
        if (nextLevelId > maxLevel) {
            nextLevelId = maxLevel;
        }
        cc.resources.preload('map/map-' + nextLevelId.toString(), cc.TiledMapAsset);
        this.onSoundConfigChange(SaveDataManager_1.SaveDataManager.ins.runtimeData.musicMute);
    };
    MainScene.prototype.onDisable = function () {
        this._sceneEffectAudioId > -1 && cc.audioEngine.stopEffect(this._sceneEffectAudioId);
    };
    MainScene.prototype.onDestroy = function () {
        // getGlobalNode().off(GlobalEvent.OBJ_UNLOCK_ANI_FINISH, this.onObjUnlock, this);
        BattleConst_1.getGlobalNode().targetOff(this);
    };
    MainScene.prototype.update = function (dt) {
        var backNode = cc.find('gameSceneRoot/pageView/backImgContainer', this.node);
        var contentNode = cc.find('gameSceneRoot/pageView/content', this.node);
        backNode.setPosition(contentNode.position);
        var lightNode = cc.find('gameSceneRoot/pageView/effectLayer', this.node);
        lightNode.setPosition(contentNode.position);
    };
    //#endregion
    //#region event
    MainScene.prototype.onPageSlide = function (view) {
        var page = view.getCurrentPageIndex();
        var pages = view.getPages();
        for (var i = 0; i < pages.length; ++i) {
            pages[i].getComponent(GameSceneControl_1.default).onSlideLeave();
        }
        pages[page].getComponent(GameSceneControl_1.default).onSlideShow();
    };
    MainScene.prototype.onToolClick = function (e) {
        var curPage = this._pageView.getCurrentPageIndex();
        this._pageView.getPages()[curPage].getComponent(GameSceneControl_1.default).onToolClick(e);
    };
    MainScene.prototype.onObjUnlock = function (objId) {
        var obj = Global_1.tMgr.getConfig(TableDefine_1.TableName.GAME_SCENE_OBJ, objId);
        var sceneList = GameSceneObjTableMgr_1.GameSceneObjTableMgr.ins.getByScene(obj.SceneId);
        var allUnlock = true;
        for (var i = 0; i < sceneList.length; ++i) {
            //判断此场景内的每个物件是否解锁
            if (!SaveDataManager_1.SaveDataManager.ins.runtimeData.unlockObj.includes(sceneList[i].ID)) {
                allUnlock = false;
                break;
            }
        }
        if (allUnlock && obj.SceneId < 3) {
            //添加下一场景
            SaveDataManager_1.SaveDataManager.ins.runtimeData.curGameScene++;
            SaveDataManager_1.SaveDataManager.ins.saveData();
            this.addScene(obj.SceneId + 1);
            this._pageView.setCurrentPageIndex(obj.SceneId);
        }
    };
    MainScene.prototype.onSoundConfigChange = function (mute) {
        var sceneEffect = cc.resources.get('soundEffect/Scene', cc.AudioClip);
        if (!mute) {
            SoundManager_1.SoundManager.ins.playMusic();
            this._sceneEffectAudioId = cc.audioEngine.playEffect(sceneEffect, true);
        }
        else {
            SoundManager_1.SoundManager.ins.stopMusic();
            this._sceneEffectAudioId > -1 && cc.audioEngine.stopEffect(this._sceneEffectAudioId);
        }
    };
    //#endregion
    //#region public
    MainScene.prototype.onGuideClick = function () {
        this.node.getChildByName('mask').active = false;
        GuideManager_1.GuideManager.ins.hideTalk();
        GuideManager_1.GuideManager.ins.hideHand();
        // SaveDataManager.ins.runtimeData.guideStep++;
        // SaveDataManager.ins.saveData();
    };
    //#endregion
    //#region private
    MainScene.prototype.addScene = function (sceneId) {
        var buidScene = cc.instantiate(this._buildScenePrefab);
        buidScene.active = true;
        buidScene.getComponent(GameSceneControl_1.default).init(sceneId - 1, this._charNode, this._tipNode, this._parGreenNode, this._bgLightNode, this._unlockSpineNode);
        buidScene.getComponent(GameSceneControl_1.default).loadScene(sceneId);
        this._pageView.addPage(buidScene);
    };
    MainScene.prototype.checkGuide = function () {
        var _this = this;
        //引导
        if (SaveDataManager_1.SaveDataManager.ins.runtimeData.guideStep == 0) {
            var wpos = this._charNode.convertToWorldSpaceAR(cc.v2(0, 380));
            var txt = Global_1.tMgr.getConfig(TableDefine_1.TableName.GAME_PLAY, 25).Comment;
            GuideManager_1.GuideManager.ins.showTalk(wpos, txt);
            this.scheduleOnce(function () {
                GuideManager_1.GuideManager.ins.hideTalk();
                SaveDataManager_1.SaveDataManager.ins.runtimeData.guideStep++;
                SaveDataManager_1.SaveDataManager.ins.saveData();
                _this.checkGuide();
            }, 3);
        }
        else if (SaveDataManager_1.SaveDataManager.ins.runtimeData.guideStep == 1) {
            var wpos = this.node.getChildByName('UITitle').getChildByName('bottom').convertToWorldSpaceAR(cc.v2(0, 120));
            GuideManager_1.GuideManager.ins.showHand(wpos, true);
            wpos = this.node.getChildByName('UITitle').getChildByName('bottom').convertToWorldSpaceAR(cc.v2(0, 100));
            wpos.y += 200;
            var txt = Global_1.tMgr.getConfig(TableDefine_1.TableName.GAME_PLAY, 26).Comment;
            txt = txt.replace('{0}', Global_1.tMgr.getConfig(TableDefine_1.TableName.GAME_PLAY, SaveDataManager_1.SaveDataManager.ins.runtimeData.gender == 0 ? 24 : 23).Comment);
            GuideManager_1.GuideManager.ins.showTalk(wpos, txt);
            var btn = cc.find('UITitle/bottom/naviBar/btnLayer/btn3', this.node);
            wpos = btn.convertToWorldSpaceAR(cc.Vec2.ZERO);
            UIManager_1.UIManager.ins.widgetLayer.convertToNodeSpaceAR(wpos, wpos);
            var newBtn = cc.instantiate(btn);
            newBtn.setPosition(wpos);
            newBtn.getComponent(cc.Button).clickEvents[0].customEventData = '99';
            UIManager_1.UIManager.ins.widgetLayer.addChild(newBtn);
            this.node.getChildByName('mask').active = true;
        }
    };
    MainScene = __decorate([
        ccclass
    ], MainScene);
    return MainScene;
}(cc.Component));
exports.default = MainScene;

cc._RF.pop();