var PathTool = require("pathtool"); var FriendConst = require("friend_const"); var RoleEvent = require("role_event"); var RoleController = require("role_controller"); var HeroVo = require("hero_vo"); var BattleController = require("battle_controller"); var FriendController = require("friend_controller"); var ChatController = require("chat_controller"); var ChatConst = require("chat_const"); const ChatEvent = require("chat_event"); var BridgeWindow = require("bridge.window"); const { SCENE_TAG } = require( "define" ); //查看好友 cc.Class({ extends: BridgeWindow, properties: { friend_btn_label:{ default:null, type:cc.Label }, black_btn_label:{ default:null, type:cc.Label }, name_lb:{ default:null, type:cc.Label }, rank_lb:{ default:null, type:cc.Label }, guild_lb:{ default:null, type:cc.Label }, vip_label:{ default:null, type:cc.Label }, fight_label:{ default:null, type:cc.Label }, scrollCon_content:{ default:null, type:cc.Node }, head:{ default:null, type:cc.Node }, fabPlayer:{ default:null, type:cc.Prefab }, nodUID: { default : null, type: cc.Node }, nodSRV: { default : null, type: cc.Node }, }, // LIFE-CYCLE CALLBACKS: onLoad () { this.ctrl = FriendController.getInstance(); this.model = this.ctrl.getModel(); this.item_list = {}; //头像 if (this.player_head == null) { this.player_head = cc.instantiate(this.fabPlayer); this.player_head.parent = this.head; } this.bindGEvent(RoleEvent.DISPATCH_PLAYER_VO_EVENT,this.dispatchPlayer.bind(this)); }, dispatchPlayer(data){ if (data.rid == this.rid && data.srv_id == this.srv_id){ this.updateData(data); } }, start () { }, onDisable: function(){ if( nx.bridge.prompt ) { nx.bridge.prompt.delPrompt(6); } }, onPreClosed(){ }, onOpenConfigs(data){ if (data == null) return this.rid = data.rid; this.srv_id = data.srv_id; this.flag = data.flag; this.channel = data.channel; //从聊天窗口打开时需要显示@按钮 if (data && data.rid != null && data.srv_id != null) { RoleController.getInstance().requestRoleInfo(data.rid, data.srv_id) } }, updateData: function (data) { this.data = data; this.name_lb.string = Utils.transformNameByServ(data.name, data.srv_id); let cmp = this.player_head.getComponent("cmp.common.header"); cmp.setData(data); nx.gui.setString( this.nodUID, "txt", data.rid ); let sid = data.srv_id.split( "_" ); nx.gui.setString( this.nodSRV, "", data.srv_id == "robot" ? "[" + nx.text.format( "Srever", 1 ) +"]" : "[" + nx.text.format( "Srever", sid[1] ) + "]" ); // this.player_head.setHeadRes(data.face_id); // this.player_head.setLev(data.lev); // let RC = RoleController.getInstance(); // this.role = RC ? RC.getRoleVo() : null; // if( !this.role ) { // return; // } // // 基本信息 // // UID // nx.gui.setString( this.nodUID, "txt", this.role.rid ); if (data.gname != "") nx.gui.setString( this.guild_lb, "", data.gname ); // //头像框 // var vo = gdata("avatar_data", "data_avatar", [data.avatar_bid]); // if (vo) { // var res_id = vo.res_id || 0; // var res = PathTool.getHeadcircle(res_id); // this.plcheckayer_head.setFrameRes(res); // } this.vip_label.string = data.vip_lev; this.fight_label.string = data.power; if (this.model.isFriend(data.srv_id, data.rid)) this.friend_btn_label.string = nx.text.getKey("friend_str14"); else this.friend_btn_label.string = nx.text.getKey("friend_str7"); if (this.model.isBlack(data.rid, data.srv_id)) this.black_btn_label.string = nx.text.getKey("friend_str15"); else this.black_btn_label.string = nx.text.getKey("friend_str16"); this.createPartnerList(data.partner_list); }, createPartnerList: function (list) { var temp = []; for (var k in list) { var v = list[k] var vo = new HeroVo(); vo.updateHeroVo(v); temp.push(vo); } var p_list_size = temp.length; // var total_width = p_list_size * 112 + (p_list_size - 1) * 10; // var max_width = Math.max(total_width, 725); // this.scrollCon_content.setContentSize(cc.size(max_width, 725)); nx.gui.gocChildren( this.scrollCon_content, "", temp.length ); let nodes = this.scrollCon_content.children; for (let i = 0; i < nodes.length; i++) { let node = nodes[i]; if( temp[i] ){ let data = nx.dt.objClone( temp[i] ); let pfg = game.configs.partner_data.data_partner_base[temp[i].bid]; data.camp_type = pfg.camp_type; data.rrid = nx.dt.objClone( this.data.rid ) ; data.srv_idd = nx.dt.objClone( this.data.srv_id ); if( node ){ let cmp = nx.gui.getComponent( node, "", "cmp.item.base" ); if( cmp ){ cmp.setData( data ); } } } } }, touchClose(){ this.ctrl.openFriendCheckPanel(false); }, touchGlory(){ this.ctrl.openFriendGloryWindow(true, this.data); }, touchFriend(){ if (this.model.isFriend(this.data.srv_id, this.data.rid)) { ChatController.getInstance().openChatPanel(ChatConst.Channel.Friend,"friend",this.data) this.ctrl.openFriendCheckPanel(false); } else { this.ctrl.openFriendCheckPanel(false); this.ctrl.addOther(this.data.srv_id, this.data.rid); } }, touchPk(){ if (this.data) { if (!BattleController.getInstance().getWatchReplayStatus() && !BattleController.getInstance().getModel().getFightStatus()) { this.close(); nx.bridge.closePanel( "WndRank" ); nx.bridge.closePanel( "WndRankInfo" ); nx.bridge.closePanel( "WndFriend" ); nx.bridge.cleanWindowsByTag( SCENE_TAG.popup ); BattleController.getInstance().csBattlePk(this.data.rid,this.data.srv_id) } else { nx.tbox(nx.text.getKey("friend_str13")); } } }, touchBlack(){ if (this.model.isBlack(this.data.rid, this.data.srv_id)) { ChatController.getInstance().closeChatPanel() this.ctrl.openFriendCheckPanel(false); nx.bridge.createPanel( "WndFriend", {type:FriendConst.Type.BlackList}); } else { this.ctrl.addToBlackList(this.data.rid, this.data.srv_id); this.ctrl.openFriendCheckPanel(false); } }, touchReport(){ if(!this.data)return; let role_lv_cfg = game.configs.role_data.data_role_const.role_reported_lev_limit let role_vo = RoleController.getInstance().getRoleVo() || {} let lev = role_vo.lev || 0 if(role_lv_cfg && lev < role_lv_cfg.val){ nx.tbox( role_lv_cfg.val + nx.text.getKey("friend_str17") ) return } let info = { rid : this.data.rid, srv_id : this.data.srv_id, showname : this.data.name, } nx.bridge.createPanel( "FriendCheckReport", info ); }, touchAtPeople(){ if(!this.data)return; gcore.GlobalEvent.fire(ChatEvent.CHAT_AT_ONCE_PEOPLE,this.data.name,this.data.srv_id,this.data.rid); }, // update (dt) {}, });