"use strict";
|
cc._RF.push(module, 'd249e4asAxDkb4Oxah0lUxF', 'hero_talent_skill_level_up_window');
|
// Scripts/mod/hero/view/hero_talent_skill_level_up_window.js
|
|
"use strict";
|
|
// --------------------------------------------------------------------
|
// @author: xxx@syg.com(必填, 创建模块的人员)
|
// @description:
|
// 这里是描述这个窗体的作用的
|
// <br/>Create: 2019-05-15 19:15:19
|
// --------------------------------------------------------------------
|
var PathTool = require("pathtool");
|
|
var SkillItem = require("skill_item");
|
|
var BackpackController = require("backpack_controller");
|
|
var HeroController = require("hero_controller");
|
|
var HeroEvent = require("hero_event");
|
|
var CommonAlert = require("commonalert");
|
|
var HeroTalentSkillLevelUpWindow = cc.Class({
|
"extends": BaseView,
|
ctor: function ctor() {
|
this.prefabPath = PathTool.getPrefabPath("hero", "hero_talent_skill_level_up_panel");
|
this.viewTag = SCENE_TAG.dialogue; //该窗体所属ui层级,全屏ui需要在ui层,非全屏ui在dialogue层,这个要注意
|
|
this.win_type = WinType.Mini; //是否是全屏窗体 WinType.Full, WinType.Big, WinType.Mini, WinType.Tips
|
|
this.is_full_screen = false;
|
this.ctrl = HeroController.getInstance();
|
},
|
// 初始化一些配置数据,可以用于声明一些变量之类的
|
initConfig: function initConfig() {
|
// --消耗数据列表
|
this.item_list = [];
|
},
|
// 预制体加载完成之后的回调,可以在这里捕获相关节点或者组件
|
openCallBack: function openCallBack() {
|
var self = this;
|
self.background = self.root_wnd.getChildByName("background");
|
self.main_container = self.root_wnd.getChildByName("main_container");
|
self.title = self.main_container.getChildByName("win_title");
|
self.title.getComponent(cc.Label).string = Utils.TI18N("技能升级");
|
self.skill_up_panel = self.main_container.getChildByName("skill_up_panel");
|
var show_item_node = self.skill_up_panel.getChildByName("show_item_node");
|
self.skill_up_info = {};
|
self.skill_up_info.skill_item = new SkillItem();
|
self.skill_up_info.skill_item.setLeveStatus(false);
|
self.skill_up_info.skill_item.setParent(show_item_node);
|
self.skill_up_info.skill_item.setScale(0.9);
|
self.skill_up_info.skill_name = self.skill_up_panel.getChildByName("skill_name").getComponent(cc.Label);
|
self.skill_up_info.skill_desc = self.skill_up_panel.getChildByName("desc").getComponent(cc.Label);
|
self.skill_down_panel = self.main_container.getChildByName("skill_down_panel");
|
var show_item_node1 = self.skill_down_panel.getChildByName("show_item_node");
|
self.skill_down_info = {};
|
self.skill_down_info.skill_item = new SkillItem();
|
self.skill_down_info.skill_item.setLeveStatus(false);
|
self.skill_down_info.skill_item.setParent(show_item_node1);
|
self.skill_down_info.skill_item.setScale(0.9);
|
self.skill_down_info.skill_name = self.skill_down_panel.getChildByName("skill_name").getComponent(cc.Label);
|
self.skill_down_info.skill_desc = self.skill_down_panel.getChildByName("desc").getComponent(cc.Label);
|
self.box_90025_2 = self.main_container.getChildByName("box_90025_2");
|
self.page_name_1 = self.main_container.getChildByName("page_name_1");
|
self.page_name_1.getComponent(cc.Label).string = Utils.TI18N("技能升级");
|
self.page_name_2 = self.main_container.getChildByName("page_name_2");
|
self.page_name_2.getComponent(cc.Label).string = Utils.TI18N("升级消耗");
|
self.cost_node = self.main_container.getChildByName("cost_node");
|
self.left_btn = self.main_container.getChildByName("left_btn");
|
self.left_btn.getChildByName("label").getComponent(cc.Label).string = Utils.TI18N("遗忘技能");
|
self.right_btn = self.main_container.getChildByName("right_btn");
|
self.right_btn.getChildByName("label").getComponent(cc.Label).string = Utils.TI18N("升 级");
|
self.arrow = self.main_container.getChildByName("Sprite_1");
|
self.skill_max_label = self.main_container.getChildByName("skill_max_label").getComponent(cc.Label);
|
self.skill_max_label.string = "";
|
},
|
// 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent
|
registerEvent: function registerEvent() {
|
this.addGlobalEvent(HeroEvent.Hero_Level_Up_Talent_Event, function (data) {
|
if (!data) return;
|
if (!this.hero_vo) return;
|
|
if (data.partner_id == this.hero_vo.partner_id) {
|
var skill_id = this.hero_vo.talent_skill_list[this.pos];
|
this.initSkillInfo(skill_id);
|
}
|
}.bind(this));
|
this.right_btn.on('click', this.onClickBtnRight, this);
|
this.background.on('touchend', this.onClickBtnClose, this);
|
this.left_btn.on('click', this.onClickBtnLeft, this);
|
},
|
onClickBtnRight: function onClickBtnRight() {
|
if (!this.hero_vo) return;
|
if (!this.pos) return;
|
Utils.playButtonSound(1);
|
this.ctrl.sender11097(this.hero_vo.partner_id, this.pos);
|
},
|
onClickBtnLeft: function onClickBtnLeft() {
|
if (!this.hero_vo) return;
|
if (!this.pos) return;
|
if (!this.skill_id) return;
|
Utils.playButtonSound(1);
|
var cost_config = Config.partner_skill_data.data_partner_skill_back[this.skill_id];
|
|
if (cost_config) {
|
if (cost_config.expend.length == 0) {
|
thi.ctrl.sender11098(this.hero_vo.partner_id, this.pos);
|
this.ctrl.openHeroTalentSkillLevelUpPanel(false);
|
return;
|
}
|
|
var str = Utils.TI18N("遗忘该技能需消耗 ");
|
var frame_arrays = [];
|
|
for (var i = 0; i < cost_config.expend.length; ++i) {
|
var v = cost_config.expend[i];
|
var item_config = Utils.getItemConfig(v[0]);
|
|
if (item_config) {
|
if (i != 0) {
|
str = str + ", ";
|
}
|
|
var good_res_path = "3";
|
var text = StringUtil.parseStr(Utils.TI18N("<img src=%s visible=true scale=0.32 /><div fontColor=#289b14 fontsize= 24>%s</div>")).string;
|
var good_path = PathTool.getIconPath("item", "3");
|
frame_arrays.push(good_path);
|
var str1 = cc.js.formatStr(text, good_res_path, v[1]);
|
str = str + str1;
|
}
|
}
|
|
if (cost_config.award1.length > 0) {
|
str = str + "\n(同时返还 ";
|
|
for (var _i = 0; _i < cost_config.award1.length; ++_i) {
|
var _v = cost_config.award1[_i];
|
|
var _item_config = Utils.getItemConfig(_v[0]);
|
|
if (_item_config) {
|
if (_i != 0) {
|
str = str + ", ";
|
}
|
|
var _good_res_path = _item_config.icon;
|
var _text = StringUtil.parseStr(Utils.TI18N("<img src=%s visible=true scale=0.32 /><div fontColor=#289b14 fontsize= 24>%s</div>")).string;
|
|
var _good_path = PathTool.getIconPath("item", _item_config.icon);
|
|
frame_arrays.push(_good_path);
|
|
var _str = cc.js.formatStr(_text, _good_res_path, _v[1]);
|
|
str = str + _str;
|
}
|
}
|
|
str = str + ")";
|
}
|
|
CommonAlert.show(str, Utils.TI18N("确定"), function () {
|
this.ctrl.sender11098(this.hero_vo.partner_id, this.pos);
|
this.ctrl.openHeroTalentSkillLevelUpPanel(false);
|
}.bind(this), Utils.TI18N("取消"), null, null, null, {
|
resArr: frame_arrays
|
});
|
} else {
|
this.ctrl.sender11098(self.hero_vo.partner_id, self.pos);
|
this.ctrl.openHeroTalentSkillLevelUpPanel(false);
|
}
|
},
|
onClickBtnClose: function onClickBtnClose() {
|
Utils.playButtonSound(2);
|
this.ctrl.openHeroTalentSkillLevelUpPanel(false);
|
},
|
// 预制体加载完成之后,添加到对应主节点之后的回调,也就是一个窗体的正式入口,可以设置一些数据了
|
openRootWnd: function openRootWnd(data) {
|
var hero_vo = data.hero_vo;
|
var pos = data.pos;
|
var skill_id = data.skill_id;
|
if (!hero_vo) return;
|
if (!pos) return;
|
if (!skill_id) return;
|
this.pos = pos;
|
this.hero_vo = hero_vo;
|
this.initSkillInfo(skill_id);
|
},
|
initSkillInfo: function initSkillInfo(skill_id) {
|
if (!skill_id) return;
|
var self = this;
|
var config = Config.partner_skill_data.data_partner_skill_level[skill_id];
|
self.skill_id = skill_id;
|
|
if (config) {
|
self.showSkillInfo(config.id, self.skill_up_info);
|
self.showSkillInfo(config.next_id, self.skill_down_info);
|
self.showCostInfo(config);
|
} else {
|
self.showSkillInfo(skill_id, self.skill_up_info);
|
self.box_90025_2.active = false;
|
self.page_name_2.active = false;
|
self.arrow.active = false;
|
self.right_btn.active = false;
|
self.skill_max_label.string = Utils.TI18N("该技能已满级");
|
self.skill_down_panel.active = false;
|
self.cost_node.active = false;
|
var node = new cc.Node();
|
this.main_container.addChild(node);
|
node.y = -49.5;
|
this.loadRes(PathTool.getUIIconPath("bigbg/hero", "hero_talent_skill_max"), function (res) {
|
node.addComponent(cc.Sprite).spriteFrame = res;
|
}.bind(this));
|
self.left_btn.x = 0;
|
self.skill_max_label.node.y = -40.5;
|
self.skill_max_label.node.zIndex = 2;
|
}
|
},
|
showSkillInfo: function showSkillInfo(skill_id, skill_info) {
|
var config = gdata("skill_data", "data_get_skill", skill_id);
|
if (!config) return;
|
|
if (skill_info.skill_item) {
|
skill_info.skill_item.setData(skill_id);
|
skill_info.skill_item.setShowTips(true);
|
}
|
|
skill_info.skill_name.string = config.name;
|
skill_info.skill_desc.string = config.des;
|
},
|
showCostInfo: function showCostInfo(config) {
|
var _this = this;
|
|
if (!config) return;
|
var self = this;
|
|
for (var i = 0; i < self.item_list.length; ++i) {
|
var item = self.item_list[i]; // item:setPositionX(10000) --相当于隐藏
|
}
|
|
var item_width = 120 + 160;
|
var start_x = -item_width * config.expend.length / 2 + 80;
|
|
var _loop = function _loop(_i2) {
|
var cost = config.expend[_i2];
|
|
var _x = start_x + _i2 * item_width;
|
|
if (self.item_list[_i2] == null) {
|
self.item_list[_i2] = {};
|
self.item_list[_i2].item = ItemsPool.getInstance().getItem("backpack_item");
|
|
self.item_list[_i2].item.setDefaultTip(true, null, null, 1);
|
|
self.item_list[_i2].item.setParent(self.cost_node);
|
|
self.item_list[_i2].item.initConfig(false, 0.8, true, true, false);
|
|
self.item_list[_i2].item.show();
|
|
self.item_list[_i2].name = Utils.createLabel(19, new cc.Color(100, 50, 35), null, _x + 55, 5, "", self.cost_node);
|
self.item_list[_i2].name.lineHeight = 21;
|
self.item_list[_i2].image = Utils.createImage(self.cost_node, null, _x + 55, 0, cc.v2(0, 1), null, null, true);
|
|
self.item_list[_i2].image.node.setContentSize(170 * 0.8, 36 * 0.8);
|
|
self.item_list[_i2].needNum = Utils.createLabel(17, null, null, 10, -15, "", self.item_list[_i2].image.node, null, cc.v2(0, 0.5));
|
self.item_list[_i2].needNum.lineHeight = 19;
|
|
_this.loadRes(PathTool.getUIIconPath("common", "common_90005"), function (res) {
|
self.item_list[_i2].image.spriteFrame = res;
|
}.bind(_this));
|
}
|
|
self.item_list[_i2].item.setPosition(_x, 0);
|
|
var item_config = Utils.getItemConfig(cost[0]);
|
|
if (item_config) {
|
self.item_list[_i2].item.setData(item_config);
|
|
self.item_list[_i2].name.string = item_config.name;
|
var have_num = BackpackController.getInstance().getModel().getItemNumByBid(item_config.id);
|
var color16;
|
|
if (have_num < cost[1]) {
|
color16 = Config.color_data.data_color16[127];
|
} else {
|
color16 = "#FFFFFF";
|
}
|
|
self.item_list[_i2].needNum.string = Utils.getMoneyString(have_num) + "/" + cost[1];
|
var color = self.item_list[_i2].needNum.node.color;
|
color.fromHEX(color16);
|
self.item_list[_i2].needNum.node.color = color;
|
}
|
};
|
|
for (var _i2 = 0; _i2 < config.expend.length; ++_i2) {
|
_loop(_i2);
|
}
|
},
|
// 关闭窗体回调,需要在这里调用该窗体所属controller的close方法没用于置空该窗体实例对象
|
closeCallBack: function closeCallBack() {
|
if (this.skill_up_info && this.skill_up_info.skill_item) {
|
this.skill_up_info.skill_item.deleteMe();
|
this.skill_up_info.skill_item = null;
|
}
|
|
this.skill_up_info = null;
|
|
if (this.skill_down_info && this.skill_down_info.skill_item) {
|
this.skill_down_info.skill_item.deleteMe();
|
this.skill_down_info.skill_item = null;
|
}
|
|
this.skill_down_info = null;
|
|
for (var i = 0; i < this.item_list.length; ++i) {
|
if (this.item_list[i].item) {
|
this.item_list[i].item.deleteMe();
|
this.item_list[i] = null;
|
}
|
}
|
|
this.item_list = null;
|
this.ctrl.openHeroTalentSkillLevelUpPanel(false);
|
}
|
});
|
|
cc._RF.pop();
|