/******************************************************************************* * * 活动:銀河奇遇 * * ******************************************************************************/ const ActBase = require( "act.base" ); const Encounter = cc.Class( { extends: ActBase, // 初始化配置数据 initConfig: function() { // 视图附着 nx.plugin.add( this, [ "view" ] ); this.vattach( "Acts" ); }, // 注册协议接受事件 registerProtocals: function() { this.RegisterProtocal( 31000, this.handle31000.bind( this ) ); this.RegisterProtocal( 31001, this.handle31001.bind( this ) ); this.RegisterProtocal( 31002, this.handle31002.bind( this ) ); }, // 从服务器初始化数据 reqBaseFromServer: function( _cb ) { let cfgs = [ "fake_battle_data", ] this.loadConfigs( cfgs, ( _ret, _data ) => { this.reqBaseData( _cb ); } ) }, // 请求剧情信息 reqBaseData: function( _cb ) { this.send31000( _cb ); }, // ============================================================ // 銀河奇遇 // ============================================================ //任務完成情況 send31000( _cb ) { this.SendProtocal( 31000, {}, _cb ) }, handle31000: function( _data ) { if( !this.isGoodData( _data ) ) { this.vset( "EncounterData", {} ); return; } this.vset( "EncounterData", _data ); // 提示刷新 this.freshTips( _data ); }, //挑戰 send31001( params, _cb ) { this.SendProtocal( 31001, { id: params.id, formation_type: params.formation_type, pos_info: params.pos_info }, _cb ) }, handle31001: function( _data ) { if( !this.isGoodData( _data ) ) { return; } }, //领取 send31002( id, _cb ) { this.SendProtocal( 31002, { id: id }, _cb ) }, handle31002: function( _data ) { nx.bridge.acts.reqActsRewards(); if( !this.isGoodData( _data ) ) { return; } }, // ============================================================ // 活动红点提示 // ============================================================ // 活动用到的提示KEY tipKeys: function() { return [ "award1", "award2", "award3", "award4", "award5", "award6" ]; }, // 红点提示更新 freshTips: function( _data ) { //是否有未挑戰的 let ids = _data.ids; let awards = _data.reward_ids; if( ids.length < 6 || awards.length < 6 ) { this.openTip( "reward", true ); } else { this.openTip( "reward", false ); } //是否有獎勵領取 for( let i = 0; i < 6; i++ ) { let passid = ids[ i ]; let awardid = awards[ i ]; if( passid && !awardid ) {//已通過,未領取 this.openTip( this.tipKeys()[ i ], true ); } else { this.openTip( this.tipKeys()[ i ], false ); } } }, // ============================================================ // 引导 // ============================================================ // 触发引导 fireGuide: function() { let self = this; let done = function() { let campId = self.data.camp_id; nx.bridge.acts.reqDoneGuide( campId ); }; nx.bridge.plot.fireForce( 30001, ( _done ) => { if( _done ) { done(); } } ); }, // 首次触发 tryGuide: function() { let campId = this.data.camp_id; if( !nx.dt.numPositive( campId, false ) ) { return; } nx.bridge.acts.needGuide( campId, ( _ret, _params ) => { if( _ret && _params && _params.code == 1 ) { this.fireGuide(); } } ); }, } ); // 模块导出 module.exports = Encounter;