/****************************************************************** * * 星界初體驗 * ******************************************************************/ const ActPopup = require( "act.popup.base" ); const NxSpine = require("nx.fx.spine"); const PathTool = require("pathtool"); const HeroTrialMod = require("act.partnertrial.mod"); const HeroConst = require("hero_const"); const HeroVo = require("hero_vo"); cc.Class( { extends: ActPopup, properties: { roleSp:{ default:null, type:NxSpine }, tagHero:{ default:null, type:cc.Node }, fabHero:{ default:null, type:cc.Prefab }, ndSmod:{ default:null, type:cc.Node }, fabSmod:{ default:null, type:cc.Prefab }, infoNd:{ default:null, type:cc.Node }, cdTime:{ default:null, type:cc.Node }, ndTry:{ default:null, type:cc.Node }, ndTime:{ default:null, type:cc.Node }, ndTip:{ default:null, type:cc.Node } }, // 初始化 onLoad: function( ) { this.mod = HeroTrialMod.getInstance(); this.try_data = game.configs.partner_try_data; this.tag_bid = 0; this.pv_bid = 0; // 活动监听 this.mod.vbind( this, [ [ "heroTrialData", this.freshData.bind( this ) ], [ "PVPlayFlag", this.playPv.bind(this) ] ] ); }, onOpenConfigs(_params){ this._super( _params ); this.mod.send31004(); this.mod.send31005(); }, onPreClosed(){ // 活动监听解除 if( this.mod ) { this.mod.vunbind( this ); } }, playPv(flag){ if(flag && flag == 1){ this.touchPVPlay(); } }, freshData(data){ if(nx.dt.objEmpty(data))return; //英雄详情 let hero = data.partners[0]; if(!hero)return; let h_config = game.configs.partner_data.data_partner_base[hero.bid]; if(h_config){ nx.gui.setString(this.infoNd,"name",h_config.name); // 职业 let career = h_config.type || 4; let icon = cc.path.join( "coms/images", "career" + career ); let campicon = cc.path.join( "coms/images", "camps" + h_config.camp_type ); let name = nx.text.getKey(HeroConst.CareerName[ career ]) || nx.text.getKey( "lab_none" ); nx.gui.setString(this.infoNd,"work",name); nx.gui.setSpriteFrame(this.infoNd,"carcee",icon); nx.gui.setSpriteFrame(this.infoNd,"camp",campicon); //模型加载 let res_path = PathTool.getSpinePath(h_config.bustid,"show",false); this.roleSp.load(res_path,(_e)=>{ if(_e){ this.roleSp.stop(); }else{ this.roleSp.action("action1",true); } }); let trialHero = new HeroVo(); trialHero.updateHeroVo(hero); //小模型 if(!this.sHero){ this.sHero = cc.instantiate(this.fabSmod); this.sHero.parent = this.ndSmod; this.sHero.y += 25; } let scmp = nx.gui.getComponent(this.sHero,"","cmp.partner.smod"); if(scmp){ scmp.setData(trialHero,true,false); } //英雄名片 if(!this.tHero){ this.tHero = cc.instantiate(this.fabHero); this.tHero.parent = this.tagHero; } let tcmp = nx.gui.getComponent(this.tHero,"","cmp.item.base"); if(tcmp){ tcmp.rebind(0,trialHero,""); } } //是否领取 if(data.finish == 0){ this.tag_bid = hero.bid; nx.gui.setString(this.ndTry,"txt",nx.text.getKey("TryPartBtn")); }else{ nx.gui.setString(this.ndTry,"txt",nx.text.getKey("Got")); } nx.gui.setActive(this.ndTime,"",data.finish == 1); nx.gui.setActive(this.ndTip,"",data.finish != 1); this.pv_bid = hero.bid; //倒计时cd let cds = data.end_time - client.socket.getTime(); nx.gui.setCdTxt( this.cdTime, "", cds ); }, touchPVPlay(){ nx.bridge.createPanel("WndActPartnertrialPv",{bid:this.pv_bid}); }, touchHeroGet(){ if(this.tag_bid == 0)return; this.mod.send31003(this.tag_bid,(_data)=>{ if(_data){ this.tag_bid = 0; } }); } } );