"use strict"; cc._RF.push(module, '257d0GZm8xBo5pjitNoZjb+', 'role_title_panel'); // Scripts/mod/role/view/role_title_panel.js "use strict"; // -------------------------------------------------------------------- // @author: whjing2012@syg.com(必填, 创建模块的人员) // @description: // 头像框 //
Create: new Date().toISOString() // -------------------------------------------------------------------- var PathTool = require("pathtool"); var TimeTool = require("timetool"); var RoleController = require("role_controller"); var BackpackController = require("backpack_controller"); var PartnerCalculate = require("partner_calculate"); var RoleTitlePanel = cc.Class({ "extends": BasePanel, ctor: function ctor() { this.prefabPath = PathTool.getPrefabPath("roleinfo", "role_title_panel"); this.x = 0; //必须设置的两个变量 this.y = 0; this.data = null; this.has_list = {}; this.item_list = {}; }, initPanel: function initPanel() { this.setPosition(0, 0); this.scroll_con = this.root_wnd.getChildByName("scroll_con"); this.view = this.scroll_con.getChildByName("view"); this.content = this.view.getChildByName("content"); this.ok_btn = this.root_wnd.getChildByName("ok_btn"); this.ok_label = this.ok_btn.getChildByName("Label").getComponent(cc.Label); this.item = this.root_wnd.getChildByName("item"); this.roleVo = RoleController.getInstance().getRoleVo(); RoleController.getInstance().send23300(); }, registerEvent: function registerEvent() { this.ok_btn.on(cc.Node.EventType.TOUCH_END, function () { if (this.select_item) { var config = Config.honor_data.data_title[this.select_bid]; if (this.select_item.v.status == 1) { RoleController.getInstance().send23301(this.select_bid); } else if (this.select_item.v.status == 0 && config.source > 0) { var data = Config.source_data.data_source_data[config.source]; if (data.evt_type != null && data.extend != null) { BackpackController.getInstance().gotoItemSources(data.evt_type, data.extend); } } else { RoleController.getInstance().send23303(this.select_bid); } } }, this); var RoleEvent = require("role_event"); this.addGlobalEvent(RoleEvent.GetTitleList, function (data) { this.updateList(data.honor); }); this.addGlobalEvent(RoleEvent.UpdateTitleList, function (data) { this.updateList(data.honor); }); this.addGlobalEvent(RoleEvent.UseTitle, function (data) { this.updateList(); }); }, onShow: function onShow() {}, // 更新头像框列表信息 updateList: function updateList(has_list) { if (has_list) { this.has_list = this.has_list || {}; for (var k in has_list) { this.has_list[has_list[k].base_id] = has_list[k]; } } this.list = []; for (var k in Config.honor_data.data_title) { var v = Config.honor_data.data_title[k]; if (v.is_show != 1) {} else if (v.base_id == this.roleVo.title_id) { this.list.push({ bid: v.base_id, use: 1, status: 1, sort: 1100000 - v.base_id }); } else if (this.has_list[v.base_id]) { this.list.push({ bid: v.base_id, use: 0, status: 1, sort: 100000 - v.base_id }); } else if (v.loss && v.loss[0]) { if (BackpackController.getInstance().getModel().getBackPackItemNumByBid(v.loss[0][0]) >= v.loss[0][1]) { this.list.push({ bid: v.base_id, use: 0, status: 2, sort: 2000000 - v.base_id, res_id: v.res_id }); } else { this.list.push({ bid: v.base_id, use: 0, status: 0, sort: -v.base_id, res_id: v.res_id }); } } else { this.list.push({ bid: v.base_id, use: 0, status: 0, sort: -v.base_id }); } } //Log.info(has_list, this.has_list, this.list, this.roleVo); this.list.sort(function (a, b) { return a.sort > b.sort; }); var i = 0; var func = function (num) { if (!this.list || !this.item_list || this.list.length == 0) { return; } num = num || 2; for (var j = 0; j < num; j++) { if (this.list.length == 0) { return; } this.createItem(i, this.list.pop()); i++; } gcore.Timer.set(func, 20, 1, "role_title_panel_timer"); }.bind(this); func(10); }, // 创建更新一个头像框 createItem: function createItem(i, v) { var item = this.item_list[v.bid]; if (!item) { var config = Config.honor_data.data_title[v.bid]; item = cc.instantiate(this.item); this.content.addChild(item); this.item_list[v.bid] = item; item.active = true; item.icon = item.getChildByName("icon").getComponent(cc.Sprite); item.use = item.getChildByName("use"); item.select = item.getChildByName("select"); item.active_node = item.getChildByName("active"); item.bg = item.getChildByName("bg").getComponent(cc.Sprite); item.label = item.getChildByName("label").getComponent(cc.Label); item.attr_desc = item.getChildByName("attr_desc").getComponent(cc.RichText); item.desc = item.getChildByName("desc").getComponent(cc.RichText); item.desc.string = cc.js.formatStr(Utils.TI18N("获取条件:%s"), config.desc); item.attr_desc.string = this.attrString(config); item.on(cc.Node.EventType.TOUCH_END, function () { this.setSelected(v.bid); }.bind(this)); this.loadRes(PathTool.getHonorRes(config.res_id), function (resObject) { item.icon.spriteFrame = resObject; }.bind(this)); } item.v = v; var y = -(i * 127 + 65); item.setPosition(302, y); this.content.height = 65 - y; item.active_node.active = v.status == 2; if (i == 0) { this.setSelected(v.bid); } if (v.use == 1) { item.use.active = true; this.setSelected(v.bid); } else { item.use.active = false; } if (this.has_list[v.bid]) { if (this.has_list[v.bid].expire_time > 0) { item.label.string = TimeTool.getTimeFormatDay(this.has_list[v.bid].expire_time - gcore.SmartSocket.getTime()); } else { item.label.string = Utils.TI18N("永久"); } } else { item.label.string = Utils.TI18N("未获得"); } }, attrString: function attrString(config) { cc.log("title", config); var attr_list = Utils.deepCopy(config.attr); if (config.add_exp > 0) { attr_list.push(["add_exp", config.add_exp]); } if (attr_list.length == 0) { return Utils.TI18N("无属性加成"); } var attr_desc = ""; for (var i = 0, n = attr_list.length; i < n; i++) { var attr = attr_list[i]; if (i > 0 && i % 2 == 0) { attr_desc += "
"; } else if (i > 0) { attr_desc += " "; } if (attr[0] == "add_exp") { attr_desc += cc.js.formatStr(Utils.TI18N("挂机经验: %d"), attr[1]); } else { if (PartnerCalculate.isShowPerByStr(attr[0]) == true) { attr_desc += cc.js.formatStr("%s: %d%", Config.attr_data.data_key_to_name[attr[0]], attr[1] * 0.1); } else { attr_desc += cc.js.formatStr("%s: %d", Config.attr_data.data_key_to_name[attr[0]], attr[1]); } } } return "" + attr_desc + ""; }, // 设置选择状态 setSelected: function setSelected(bid) { if (this.select_bid == bid) { return; } this.select_bid = bid; if (this.select_item) { var common_res_path = PathTool.getCommonIcomPath("common_1029"); this.changeImage(this.select_item.bg, common_res_path); } this.select_item = this.item_list[bid]; if (this.select_item) { var common_res_path = PathTool.getCommonIcomPath("common_1020"); this.changeImage(this.select_item.bg, common_res_path); var config = Config.honor_data.data_title[bid]; if (this.select_item.v.status == 1) { this.ok_label.string = Utils.TI18N("更 换"); } else if (this.select_item.v.status == 0 && config.source > 0) { this.ok_label.string = Utils.TI18N("前往获取"); } else { this.ok_label.string = Utils.TI18N("激 活"); } } }, changeImage: function changeImage(sp, res) { this.loadRes(res, function (sf_obj) { sp.spriteFrame = sf_obj; }.bind(this)); }, onHide: function onHide() {}, onDelete: function onDelete() { this.list = null; this.item_list = null; } }); module.exports = RoleTitlePanel; cc._RF.pop();