/****************************************************************** * * 活动: 精英召唤 * ******************************************************************/ const ActBase = require( "act.base" ); const ActEliteSummon = cc.Class( { extends: ActBase, // 初始化配置数据 initConfig: function() { // 视图附着 nx.plugin.add( this, [ "view" ] ); this.vattach( "Acts" ); }, // 注册协议接受事件 registerProtocals: function() { this.RegisterProtocal( 23230, this.handle23230.bind( this ) ); this.RegisterProtocal( 23232, this.handle23232.bind( this ) ); this.RegisterProtocal( 23231, this.handle23231.bind( this ) ); this.RegisterProtocal( 23233, this.handle23233.bind( this ) ); this.RegisterProtocal( 23244, this.handle23244.bind( this ) ); }, // 从服务器初始化数据 reqBaseFromServer: function( _cb ) { // 配置加载 let cfgs = [ "recruit_holiday_lucky_data", // 5选一精英召唤 ]; this.loadConfigs( cfgs, ( _ret, _data ) => { this.fetchData( _cb ); } ); }, // ============================================================ // 基本信息 // ============================================================ // 信息请求 fetchData: function( _cb ) { this.SendProtocal( 23230, {}, _cb ); }, // 数据整理 updateData: function( _data, _reset = false ) { if( nx.dt.objEmpty( _data ) ) { return; } // 基础数据更新 let old = this.vget( "eliteBase" ); if( _reset || old.lucky_bid != _data.lucky_bid ) { this.vset( "eliteBase", { camp_id: _data.camp_id, end_time: _data.end_time, item_id: _data.item_id, item_num: _data.item_num, lucky_bid: _data.lucky_bid, reward_list: _data.reward_list || [], start_time: _data.start_time, } ); } // 次数数据更新 this.vset( "eliteTimes", { free_time: _data.free_time, gold_time: _data.gold_time, must_count: _data.must_count, times: _data.times } ); this.freshTips(); }, // 信息请求返回 handle23230: function( _data ) { if( !this.isGoodData( _data ) ) { return; } this.updateData( _data, true ); }, // 更新推送 handle23232: function( _data ) { this.updateData( _data, false ); }, // 请求更换许愿目标 reqTarget: function( _bid, _cb ) { this.SendProtocal( 23233, { lucky_bid: _bid, }, _cb ); }, // 更换许愿目标回复 handle23233: function( _data ) { if( !this.isGoodData( _data ) ) { return; } }, // ============================================================ // 召唤操作 // ============================================================ // 召唤请求 reqSummon: function( _times, _type, _cb ) { this.SendProtocal( 23231, { times: _times, recruit_type: _type, }, _cb ); }, // 精英召唤返回 handle23231: function( _data ) { if( !this.isGoodData( _data ) ) { return; } }, // ============================================================ // 排行榜 // ============================================================ // 排行榜请求 reqRankList: function( _today, _cb ) { this.SendProtocal( 23244, { type: _today ? 57 : 58 }, _cb ); }, // 排行榜 handle23244: function( _data ) { if( !this.isGoodData( _data ) ) { return; } }, // ============================================================ // 活动红点提示 // ============================================================ // 活动用到的提示KEY tipKeys: function() { return [ "free" ]; }, // 红点提示更新 freshTips: function() { let base = this.vget( "eliteBase" ); let times = this.vget( "eliteTimes" ); // 奖励关闭 this.openTip( "reward", false ); // 免费 let tip = ( base.camp_id != 0 ) && ( times.free_time == 0 ); this.openTip( "free", tip ); }, } ); module.exports = ActEliteSummon;