const BridgeWindow = require("bridge.window"); const ItemLay = require("cmp.common.itemlayout"); const PlanesafkController = require("planesafk_controller"); const HeroController = require("hero_controller"); const RoleController = require("role_controller"); const PlanesafkEvent = require("planesafk_event"); const PlanesafkConst = require("planesafk_const"); const ElfinEvent = require("elfin_event"); const PartnerConst = require("partner_const"); const HeroConst = require("hero_const"); const HeroVo = require("hero_vo"); cc.Class({ extends: BridgeWindow, properties: { btn_fight:{ default:null, type:cc.Node }, btn_embattle:{ default:null, type:cc.Node }, lname:{ default:null, type:cc.Label }, rname:{ default:null, type:cc.Label }, myHead:{ default:null, type:cc.Node }, enHead:{ default:null, type:cc.Node }, left_atk_val:{ default:null, type:cc.Label }, left_atk_txt:{ default:null, type:cc.Label }, right_atk_txt:{ default:null, type:cc.Label }, left_heros:{ default:null, type:ItemLay }, right_heros:{ default:null, type:ItemLay }, rewards:{ default:null, type:ItemLay }, fabHeader:{ default:null, type:cc.Prefab }, mySprites:{ default:null, type:cc.Node }, selfSprites:{ default:null, type:cc.Node }, myAddTxt:{ default:null, type:cc.Label }, selfAddTxt:{ default:null, type:cc.Label }, buffTxts:{ default:[], type:[cc.Node] }, diffs:{ default:[], type:[cc.Node] } }, // LIFE-CYCLE CALLBACKS: onLoad() { this.ctrl = PlanesafkController.getInstance(); this.model = this.ctrl.getModel(); // 可出战英雄数据 this.bindGEvent( PlanesafkEvent.Get_All_Hero_Event, this.getAllHeroByForm.bind( this ) ); // 我方阵容数据 this.bindGEvent( PlanesafkEvent.Get_Form_Data_Event, this.getHeroFormData.bind( this ) ); // 通过布阵更新了我方阵容数据 this.bindGEvent( PlanesafkEvent.Update_Form_Data_Event, this.updateMyFormData.bind( this ) ); // 我方精灵数据更新 this.bindGEvent( ElfinEvent.Get_Elfin_Tree_Data_Event, this.updateMyElfinInfo.bind( this ) ); // this.bindGEvent( ElfinEvent.Elfin_Plan_From_Info_Event, this.updateMyEflinSkill.bind( this ) ); // 通过布阵后战力值更新 this.bindGEvent( PlanesafkEvent.Update_Form_Atk_Event, this.updateMyHeroAtkVal.bind( this ) ); // 敌方阵容数据 this.bindGEvent( PlanesafkEvent.Get_Master_Data_Event, this.setMasterData.bind( this ) ); }, // updateMyEflinSkill(data){ // if (!data)return; // let sprites = []; // if (data.team_list && data.team_list[0]) { // sprites = data.team_list[0].sprites; // } // // 精灵 // for (var i=1;i<=4;i++) { // let left_elfin_item = this.mySprites.children[i-1]; // if (left_elfin_item) { // var elfin_bid = this.getElfinBidByPos(sprites, i); // if(elfin_bid){ // left_elfin_item.active = true; // }else{ // left_elfin_item.active = false; // } // } // } // }, createHeroVo(role_data){ let vo = new HeroVo(); vo.atk = role_data.atk; vo.bid = role_data.bid; vo.ext_data = role_data.ext_data; vo.hp_max = role_data.hp_max; vo.hp_per = role_data.hp_per; vo.is_master = role_data.is_master; vo.lev = role_data.lev; vo.partner_id = role_data.partner_id; vo.rid = role_data.rid; vo.srv_id = vo.srv_id; vo.star = vo.star; return vo; }, setMasterData(data){ if (!data) return; if (!this.data) return; let evt_config = this.data.evt_config; // 名称 // if (evt_config) {// && evt_config.type == PlanesafkConst.Evt_Type.Guard this.rname.string = data.name || nx.text.getKey("lab_planesafk_master_sw"); // } // 战力 this.right_atk_txt.string = data.guards_power; // 头像 if(!this.right_head){ this.right_head = cc.instantiate(this.fabHeader); this.right_head.parent = this.enHead; } let cmp = this.right_head.getComponent("cmp.common.header"); if(cmp){ cmp.setData(data); } // 英雄头像 let role_datas = []; var formation_config = gdata("formation_data","data_form_data",data.formation_type)//game.configs.FormationData.data_form_data[data.formation_type] for (var i=1;i<=9;i++) { let role_data = null; let key = null; //阵法和实际位置的映射转换 for(let j=0;j= 1000) { this.selfAddTxt.string = cc.js.formatStr(nx.text.getKey("lab_planesafk_master_window_tip5"),(dif_val-1000/10)/100); } else { this.selfAddTxt.string =cc.js.formatStr(nx.text.getKey("lab_planesafk_master_window_tip6"),(1000-dif_val/10)/100); } // // 我方buff数据 // for (var k in data.buffs) { // var v = data.buffs[k]; // if (v.quality == 1) { // 蓝 // let buff_nd = this.buffTxts[v.quality - 1]; // nx.gui.setString(buff_nd,"num",v.num); // } // else if ( v.quality == 2 ){ //紫 // let buff_nd = this.buffTxts[v.quality - 1]; // nx.gui.setString(buff_nd,"num",v.num); // } // else if ( v.quality == 3 ){ // 橙 // let buff_nd = this.buffTxts[v.quality - 1]; // nx.gui.setString(buff_nd,"num",v.num); // } // } }, updateMyHeroAtkVal(atk_val){ this.left_atk_txt.string = atk_val; this.hero_base_atk_val = this.hero_base_atk_val || 0 var add_percent = (atk_val-this.hero_base_atk_val)/this.hero_base_atk_val*100 this.left_atk_val.string = cc.js.formatStr(nx.text.getKey("lab_planesafk_master_window_tip7"),add_percent.toFixed(1)); }, updateMyElfinInfo(){ }, updateMyFormData(form_type, pos_data){ if (!this.form_data)return; this.form_data.formation_type = form_type this.form_data.pos_info = pos_data this.hero_base_atk_val = 0 // 英雄基础战力值 var partner_ids = []; let role_datas = []; var formation_config = gdata("formation_data","data_form_data",form_type); for (var i=1;i<=9;i++) { let key = null; //阵法和实际位置的映射转换 for(let j=0;j= v.min && lev <= v.max) { reward = v.reward } } } var data_list = reward || [] var item_list = [] for (var k in data_list) { var v =data_list[k] var vo = {} vo.bid = v[0] vo.num = Math.floor((1+add_per/1000)*v[1]) if (vo.bid == 25 && this.model.isHolidayOpen()) { vo.num = Math.floor(vo.num * 1.1 + 0.5) } item_list.push(vo); } this.rewards.rebuild(item_list); }, // 我方阵容数据 setMyFormData(){ let role_vo = RoleController.getInstance().getRoleVo(); if (!this.form_data || !role_vo )return; // 名称 this.lname.string = role_vo.name; // 头像 if(!this.left_head){ this.left_head = cc.instantiate(this.fabHeader); this.left_head.parent = this.myHead; } let cmp = this.left_head.getComponent("cmp.common.header"); if(cmp){ cmp.setData(role_vo); } // 英雄头像 this.hero_base_atk_val = 0; var formation_config = gdata("formation_data","data_form_data",this.form_data.formation_type); 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) { // 请求新上阵英雄的战力值 this.ctrl.sender28610(partner_ids); } // 精灵 this.updateMyElfinInfo(); }, // 根据位置获取精灵的bid getElfinBidByPos:function( sprite_data, pos ){ if (!sprite_data)return; for (var k in sprite_data) { var v = sprite_data[k] if (v.pos == pos) { return v.item_bid; } } }, // 根据位置获取我方英雄id getMyRoleIdByIndex:function( index, role_list ){ for (var k in role_list) { var v= role_list[k] if (v.pos == index) { return v.id } } }, // 根据位置获取敌方英雄数据 getRoleDataByIndex:function( index, role_list ){ for (var k in role_list) { var v = role_list[k] if (v.pos == index) { return v } } }, // 出战 onClickFightBtn(){ if (! this.form_data || ! this.data) return; if (this.form_data.pos_info.length < 5) { var str = nx.text.getKey("lab_planesafk_master_window_tip2"); nx.mbox(str,["cancel","confirm"],(_key,_box)=>{ _box.close(); if(_key == "confirm"){ this.comfirmFight(); } }); } else { this.comfirmFight(); } }, comfirmFight:function(){ if (! this.form_data || ! this.data)return; let ext_list = []; // 阵法 ext_list.push({type : PlanesafkConst.Proto_28600._1, val1 : this.form_data.formation_type, val2 : 0}) // 神器 ext_list.push({type : PlanesafkConst.Proto_28600._2, val1 : this.form_data.hallows_id, val2 : 0}) // 英雄 for (var k in this.form_data.pos_info) { var v =this.form_data.pos_info[k] if ((v.flag && v.flag == 1) || (v.data && v.data.flag == 1)) { // 雇佣英雄 ext_list.push({type : PlanesafkConst.Proto_28600._4, val1 : v.pos, val2 : v.id}) } else { ext_list.push({type : PlanesafkConst.Proto_28600._3, val1 : v.pos, val2 :v.id}) } } this.ctrl.sender28600( this.data.line, this.data.index, 1, ext_list ,null , true) this.close(); }, // 布阵 onClickEmbattleBtn:function( ){ HeroController.getInstance().openFormGoFightPanel(true, PartnerConst.Fun_Form.Planes, {need_hide_top:true}, HeroConst.FormShowType.eFormSave) }, // update (dt) {}, });