/****************************************************************** * * 集結令 開服活动 * ******************************************************************/ const ActPage = require( "act.page.base" ); const NxSpine = require( "nx.fx.spine" ); const Payment = require( "payment.mod" ); const Mod = require( "act.assembly.mod" ); const themeMod = require( "acts.mod" ); const FID = require( "bridge.function.ids" ); cc.Class( { extends: ActPage, properties: { nodItems : { type: cc.Node, default: null }, spRole: { default: null, type: NxSpine }, nodEndTime : { default: null, type: cc.Node }, nodOp : { type: cc.Node, default: null }, nodSpecial : { type: cc.Node, default: null }, }, // 初始化 build: function( _data ) { this._super( _data ); this.spRole.load( "resDB/models/H30082/show", ( _e ) => { if( !_e ) { this.spRole.action( "action1", true ); } else { this.spRole.stop(); } } ); this.tweens = []; this.canbuy = true; // 活动监听 this.mod.vbind( this, [ [ "assembly", this.freshAssemblyInfo.bind( this ) ], ] ); }, onEnable: function(){ // 请求信息 this.mod.reqAssemblyData(); }, // 销毁 onDestroy: function() { // 活动监听解除 if( this.mod ) { this.mod.vunbind( this ); } delete this.mod; this._super(); }, freshAssemblyInfo: function( _data ){ if( !_data || nx.dt.objEmpty( _data ) || !this.nodItems ){ return; } /**** {"is_buy":0,"end_time":1695830399,"charge_id":912, "award_list":[ {"id":7,"acv_id":263,"finish":0,"award_time":0,"award":[{"bid":29905,"num":50}]}, {"id":6,"acv_id":0,"finish":0,"award_time":0,"award":[{"bid":11403,"num":2}]}, {"id":5,"acv_id":0,"finish":0,"award_time":0,"award":[{"bid":11403,"num":2}]}, {"id":4,"acv_id":263,"finish":0,"award_time":0,"award":[{"bid":29905,"num":50}]}, {"id":3,"acv_id":0,"finish":0,"award_time":0,"award":[{"bid":11403,"num":2}]}, {"id":2,"acv_id":0,"finish":0,"award_time":0,"award":[{"bid":11403,"num":2}]}, {"id":1,"acv_id":263,"finish":0,"award_time":0,"award":[{"bid":29905,"num":50}]} ] } */ this.award_id = 0; nx.gui.setActive( this.nodEndTime, "", false ); nx.gui.setActive( this.nodEndTime, "title", true ); let descTime = _data.is_buy == 0 ? nx.text.getKey( "StepUpDone" ) : nx.text.getKey( "act_common_tips" ); let cd = _data.end_time - Math.floor( cc.sys.now() / 1000 ) > 0 ? _data.end_time - Math.floor( cc.sys.now() / 1000 ) : 0.1; nx.gui.setCdTxt( this.nodEndTime, "txt", cd, () => { nx.gui.setActive( this.nodEndTime, "title", false ); this.canbuy = _data.is_buy != 0; nx.gui.setString( this.nodEndTime, "txt", descTime ); } ); let awardss = nx.dt.objClone( _data.award_list ); let free = awardss.shift(); let awards = awardss; let cmp = nx.gui.getComponent( this.nodSpecial, "item", "cmp.item.base" ); if( cmp ){ cmp.setData( free.award[0] ); } nx.gui.setActive( this.nodSpecial, "got", free.finish == 2 ); nx.gui.setActive( this.nodSpecial, "free", free.finish == 1 || free.finish == 0 ); this.buy_info = _data; if( awards.length > 0 ){ let path = "prefab/acts/assembly/ui/assembly_0"; let price = game.configs.charge_data.data_charge_data[_data.charge_id].val; nx.gui.gocChildren( this.nodItems, "", awards.length ); let chd = this.nodItems.children; for ( let i = 0; i < chd.length; i++ ) { let nod = chd[i]; let award = awards[i]; nx.gui.setActive( nod, "bg", award.acv_id == 0 ); nx.gui.setActive( nod, "bg_special", award.acv_id != 0 ); nx.gui.setSpriteFrame( nod, "number", path + ( award.id + 2 ) ); let cmp = nx.gui.getComponent( nod, "item", "cmp.item.base" ); if( cmp ){ cmp.setData( award.award[0] ); } nx.gui.setActive( nod, "focus", award.finish == 1 && this.buy_info.is_buy == 1 ); nx.gui.setActive( nod, "icolog", award.finish == 1 ); nx.gui.setActive( nod, "got", award.finish == 2 ); if( award.finish == 1 ){ this.award_id = award.id; } let tween = nx.gui.find( nod, "focus" ); let tweenAct = cc.tween( tween ) .to( 0.6, {scale: 0.96 } ) .to( 0.6, {scale: 1 } ) .union() .repeatForever() .start(); this.tweens.push( tweenAct ); } // nx.gui.setActive( this.nodEndTime, "", _data.is_buy == 0 ); let desc = _data.is_buy != 0 ? nx.text.getKey( "Get" ) : nx.text.format( "ChargeCost", Payment.getInstance().fmtPrice( price ) ); nx.gui.setString( this.nodOp, "txt", desc ); let btn = nx.gui.getComponent( this.nodOp, "", cc.Button ); if( btn ){ if( _data.is_buy != 0 ){ if( this.award_id == 0 ){ btn.interactable = false; nx.gui.setOutlineColor( this.nodOp, "txt", cc.Color.BLACK ); }else{ btn.interactable = true; nx.gui.setOutlineColor( this.nodOp, "txt", new cc.color( "#B85833" ) ); } }else{ btn.interactable = true; nx.gui.setOutlineColor( this.nodOp, "txt", new cc.color( "#B85833" ) ); } } }else{ nx.gui.hideAllChildren( this.nodItems, "" ); nx.gui.setString( this.nodOp, "txt", nx.text.getKey( "lab_planesafk_main_have_over" ) ); } }, // 领取奖励 与 购买礼包 onTouchGet: function(){ if( !this.canbuy ){ nx.tbox( "StepUpDone" ); return; } if( this.buy_info.is_buy != 0 ){ this.mod.reqGetAssemblyAward( this.award_id ); return; } Payment.getInstance().reqPayment( this.buy_info.charge_id ); }, onTouchGetFree: function(){ this.mod.reqGetAssemblyAward( 0 ); }, } );