/****************************************************************** * * 開服百抽 * ******************************************************************/ const ActPage = require( "act.page.base" ); const NxSpine = require( "nx.fx.spine" ); const Payment = require( "payment.mod" ); cc.Class({ extends: ActPage, properties: { nodRewards: { type: cc.Node, default : null }, spRole : { type: NxSpine, default : null }, nodOp: { type: cc.Node, default : null }, }, // 初始化 build: function( _data ) { this._super( _data ); // 无效 if( !this.mod ) { return; } // nx.gui.setActive( this.spRole, "", false ); this.spRole.load( "resDB/models/H30083/show", ( _e ) => { if( !_e ) { this.spRole.action( "drama1", true ); } else { this.spRole.stop(); } } ); // 獲取相關的配置 let cfg = gdata( this.mod.data.config, "data_news_draws_data" ); let count = Object.keys( cfg ).length; nx.gui.gocChildren( this.nodRewards, "", count ); for (let i in cfg ) { let info = cfg[i]; let nod = this.nodRewards.children[info.id - 1]; let free = nx.gui.find( nod, "free/buy" ); nx.gui.setActive( nod, "free/focus", false ); nx.gui.setActive( nod, "free/got", false ); nx.gui.setActive( nod, "cost/got", false ); nx.gui.setActive( nod, "cost/focus", false ); nx.gui.setString( nod, "day/txt", info.id < 10 ? "0" + info.id : info.id ); let cmp = nx.gui.getComponent( free, "", "cmp.common.itemlayout" ); if( cmp ){ cmp.rebuild( info.reward ); } let buy = nx.gui.find( nod, "cost/buy" ); let bcmp = nx.gui.getComponent( buy, "", "cmp.common.itemlayout" ); if( bcmp ){ bcmp.rebuild( info.unlock_reward ); } } let charge = gdata( this.mod.data.config, "data_const" ).charge_id; this.charge_id = charge.val; let cinfo = game.configs.charge_data.data_charge_data[charge.val]; nx.gui.setString( this.nodOp, "charge/txt", nx.text.format( "NeedPayUnlock", Payment.getInstance().fmtPrice( cinfo.val ) ) ); this.needpay = cinfo.val; nx.gui.setActive( this.nodOp, "free/tip", false ); nx.gui.setActive( this.nodOp, "charge/tip", false ); // // 活动监听 this.mod.vbind( this, [ [ "HundredDraw", this.freshInfo.bind( this ) ], ] ); /******* * {"status_list":[ * {"day":10,"status1":0,"status2":0}, * {"day":9,"status1":0,"status2":0}, * {"day":8,"status1":0,"status2":0}, * {"day":7,"status1":0,"status2":0}, * {"day":6,"status1":0,"status2":0}, * {"day":5,"status1":0,"status2":0}, * {"day":4,"status1":0,"status2":0}, * {"day":3,"status1":1,"status2":0}, * {"day":2,"status1":1,"status2":0}, * {"day":1,"status1":1,"status2":0} * ],"is_charge":0} */ }, onEnable: function(){ this.mod.reqBaseData(); }, // 刷新相關的數據顯示 主要包含當前的領取數據 freshInfo: function( _data ){ if( !_data || !this.nodRewards ){ return; } let chd = this.nodRewards.children; this.buyInfo = _data; let list = _data.status_list; this.canGetFree = []; this.canGetPay = []; for (let i = 0; i < list.length; i++) { let info = list[i]; let nod = chd[i]; if( info.day == ( i + 1 ) ){ let free = nx.gui.find( nod, "free" ); let cost = nx.gui.find( nod, "cost" ); nx.gui.setActive( free, "focus", info.status1 == 1 ); nx.gui.setActive( cost, "focus", info.status2 == 1 ); nx.gui.setActive( free, "got", info.status1 == 2 ); nx.gui.setActive( cost, "got", info.status2 == 2 ); nx.gui.setActive( cost, "lock", _data.is_charge == 0 ); } if( info.status1 == 1 ){ this.canGetFree.push( info.day ); } if( info.status2 == 1 ){ this.canGetPay.push( info.day ); } } nx.gui.setActive( this.nodOp, "free/tip", nx.dt.arrNEmpty( this.canGetFree ) ); nx.gui.setActive( this.nodOp, "charge/tip", nx.dt.arrNEmpty( this.canGetPay ) ); nx.gui.setString( this.nodOp, "charge/txt", this.buyInfo.is_charge == 0 ? nx.text.format( "NeedPayUnlock", Payment.getInstance().fmtPrice( this.needpay ) ) : nx.text.getKey( "ActPayGet" ) ); let cmp = nx.gui.getComponent( this.nodOp, "free", cc.Button ); let pcmp = nx.gui.getComponent( this.nodOp, "charge", cc.Button ); if( cmp ){ cmp.interactable = nx.dt.arrNEmpty( this.canGetFree ); } if( pcmp && this.buyInfo.is_charge == 1 ){ pcmp.interactable = nx.dt.arrNEmpty( this.canGetPay ); } }, // 點擊免費 打卡領取 onTouchGet: function(){ if( nx.dt.arrEmpty( this.canGetFree ) ){ nx.tbox( "ActHundredGetTip" ); return; } if( !this.buyInfo ){ return; } let day = this.canGetFree.shift(); let info = { day : day, type : 0, } this.mod.reqGetDailyReward( info ); }, // 點擊購買 onTouchBuy: function(){ if( !this.buyInfo ){ return; } // 判斷當前的禮包購買狀態,若未購買則提示 let self = this; let ischarge = this.buyInfo.is_charge; if( ischarge == 0 ){ let tip = nx.text.format( "ActHundredBuyTip", Payment.getInstance().fmtPrice( this.needpay ) ); nx.mbox( tip, [ 'cancel', 'confirm' ], ( _key, _box ) => { _box.close(); if( _key == "confirm" ) { // this.reqSummon( _args.type, _times, _args ); Payment.getInstance().reqPayment( self.charge_id ); } } ); }else{ let day = this.canGetPay.shift(); let info = { day : day, type : 1, } this.mod.reqGetDailyReward( info ); } }, });