const ArenaConst = require( "arena_const" ); const ArenaEvent = require( "arena_event" ); const MenuPage = require( "cmp.com.menu.page" ); const CrossChampionController = require("crosschampion_controller"); const HeroController = require( "hero_controller" ); const ItemLay = require("cmp.common.itemlayout"); const data2Icon = require( "bridge.utils.item" ); const BattleController = require( "battle_controller" ); cc.Class({ extends: MenuPage, properties: { nodRace: { default: null, type: cc.Node }, nodEmpty: { default: null, type: cc.Node }, nodLeft: { default: null, type: cc.Node }, nodRight: { default: null, type: cc.Node }, nodLeftParts : { default: null, type: ItemLay }, nodRightParts : { default: null, type: ItemLay }, nodLeftCamp: { default: null, type: cc.Sprite }, nodRightCamp: { default: null, type: cc.Sprite }, nodStageTime: { default: null, type: cc.Node }, nodReplay: { default: null, type: cc.Node }, }, onLoad: function(){ this.bindGEvent( ArenaEvent.UpdateMyMatchInfoEvent, this.freshInfo.bind( this ) ); // this.bindGEvent( ArenaEvent.UpdateChampionBaseInfoEvent, this.freshMyRace.bind( this )); nx.gui.setActive( this.nodEmpty, "", false ); nx.gui.setActive( this.nodRace, "", false ); }, onEnable: function() { // 视图监听 this.vbind( [ [ "CChampion", this.freshMyRace.bind( this ) ] ] ); // this.nodMenus.posTog = this.onTogMenu.bind( this ); this.setEmpty(); }, // 隐藏 onDisable: function() { // 视图监听解除 this.vunbind(); // 事件监听释放 // this.unbindGEvents(); nx.gui.setActive( this.nodEmpty, "", false ); // nx.gui.setActive( this.nodRace, "", false ); }, // 重载:关闭前 onPreClosed: function () { }, freshMyRace: function( _race ){ if( !_race ){ return; } let baseInfo = _race; this.stepinfo = baseInfo; let desc = ""; let show = baseInfo.step == ArenaConst.champion_step.unopened ; if( show ){ desc = nx.text.getKey( "champion_str34" ); // 冠軍賽未開啓 } let rdesc = nx.text.getKey( "champion_str" + ( 18 + baseInfo.round_status ) ); nx.gui.setString( this.nodStageTime, "stage", rdesc ); nx.gui.setActive( this.nodEmpty, "bg/stime", true ); nx.gui.setString( this.nodEmpty, "bg/state", desc ); let nod = nx.gui.find( this.nodEmpty, "bg" ); if( ( baseInfo.start_time - Math.floor( cc.sys.now() / 1000 ) ) >= 0 ){ nx.gui.setCdTxt( nod, "stime/time", ( baseInfo.start_time - Math.floor( cc.sys.now() / 1000 ) ), ()=>{ nx.gui.setActive( nod, "stime", false ); } ); } nx.gui.setActive( this.nodStageTime, "", baseInfo.step_status != ArenaConst.champion_step_status.over ); if( baseInfo.round_status == ArenaConst.champion_round_status.fight ){ CrossChampionController.getInstance().sender26202(); nx.gui.setCdTxt( this.nodStageTime, "txt", baseInfo.round_status_time, ()=>{ } ); }else{ nx.gui.setCdTxt( this.nodStageTime, "txt", baseInfo.round_status_time, ()=>{ CrossChampionController.getInstance().sender26202(); } ); } }, setEmpty: function(){ let cct = CrossChampionController.getInstance(); cct.sender26200(); cct.sender26202(); }, // 根据位置获取敌方英雄数据 getRoleDataByIndex:function( index, role_list ){ for (var k in role_list) { var v = role_list[k] if (v.pos == index) { return v } } }, dealPartners: function( _ctype, _plst, _left ){ let formation_config = gdata("formation_data","data_form_data", _ctype ); let partner_ids = []; let role_datas = []; for (var i = 1; i <= 9;i++) { let role_data =null; let key = null; //阵法和实际位置的映射转换 for(let j=0;j 0 ){ let nod = sprites.children[i]; let ifg = gdata( "item_data","data_unit9", sid ); nx.bridge.setIcon( nod, "icon", ifg.imageid ); } } } } this.race = _guessdata; let desc = nx.text.getKey( "champion_str35" ); if( this.stepinfo.step == ArenaConst.champion_step.unopened ){ nx.gui.setActive( this.nodEmpty, "bg/stime", true ); }else{ nx.gui.setActive( this.nodEmpty, "bg/stime", false ); nx.gui.setString( this.nodEmpty, "bg/state", desc ); } nx.gui.setActive( this.nodRace, "", guessinfo.step != 0 ); // 顯示對戰相關數據 nx.gui.setActive( this.nodEmpty, "", guessinfo.step == 0 || this.stepinfo.step == ArenaConst.champion_step.unopened ); nx.gui.setActive( this.nodReplay, "", guessinfo.replay_id != 0 ); if( this.stepinfo.step_status == ArenaConst.champion_step_status.over ){ nx.gui.setActive( this.nodLeft, "ico", guessinfo.ret == 1 ); nx.gui.setActive( this.nodRight, "ico", guessinfo.ret == 2 ); } if( this.race.replay_id != 0 && this.stepinfo.round_status == ArenaConst.champion_round_status.fight && this.stepinfo.flag != 0 ){ this.onTouchReplay(); } }, freshRp: function( bcamptype, bp_list ){ let brole = this.dealPartners( bcamptype, bp_list ); if( this.nodRightParts ){ this.nodRightParts.rebuild( brole ); } }, onTouchReplay: function(){ let srv_id = nx.bridge.vget( "curServer" ).srv_id; BattleController.getInstance().sender_20036( this.race.replay_id, srv_id ); }, });