268 lines
8.3 KiB
JavaScript
268 lines
8.3 KiB
JavaScript
|
|
"use strict";
|
||
|
|
cc._RF.push(module, '75acbO1lNNPsKTTxl+98e03', 'cmp.partner.inset');
|
||
|
|
// Scripts/mod/partner/cmps/inset/cmp.partner.inset.js
|
||
|
|
|
||
|
|
"use strict";
|
||
|
|
|
||
|
|
/******************************************************************
|
||
|
|
*
|
||
|
|
* 伙伴信息页 --- 镶嵌
|
||
|
|
*
|
||
|
|
******************************************************************/
|
||
|
|
|
||
|
|
var BridgeComponent = require("bridge.component");
|
||
|
|
var MallConst = require("mall_const");
|
||
|
|
var HeroEvent = require("hero_event");
|
||
|
|
var HeroControl = require("hero_controller");
|
||
|
|
var TipsController = require("tips_controller");
|
||
|
|
cc.Class({
|
||
|
|
"extends": BridgeComponent,
|
||
|
|
properties: {
|
||
|
|
lstSkill: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node
|
||
|
|
},
|
||
|
|
nodOps: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 显示
|
||
|
|
onEnable: function onEnable() {
|
||
|
|
// 视图监听
|
||
|
|
this.vbind([["ShowPartner", this.onPartnerChanged.bind(this)]]);
|
||
|
|
|
||
|
|
// 事件监听
|
||
|
|
this.bindGEvent(HeroEvent.Hero_Forget_Talent_Event, this.onPartnerUpdate.bind(this));
|
||
|
|
this.bindGEvent(HeroEvent.Hero_Level_Up_Talent_Event, this.onPartnerUpdate.bind(this));
|
||
|
|
this.bindGEvent(HeroEvent.Hero_Get_Talent_Event, this.onPartnerUpdate.bind(this));
|
||
|
|
this.bindGEvent(HeroEvent.Hero_Learn_Talent_Event, this.onPartnerUpdate.bind(this));
|
||
|
|
},
|
||
|
|
// 隐藏
|
||
|
|
onDisable: function onDisable() {
|
||
|
|
// 视图监听解除
|
||
|
|
this.vunbind();
|
||
|
|
|
||
|
|
// 事件监听解除
|
||
|
|
this.unbindGEvents();
|
||
|
|
},
|
||
|
|
// 有伙伴数据更新
|
||
|
|
onPartnerUpdate: function onPartnerUpdate(_vo) {
|
||
|
|
// console.log( "變化數據" );
|
||
|
|
if (_vo && this.partner && _vo.partner_id == this.partner.partner_id) {
|
||
|
|
this.onPartnerChanged(_vo);
|
||
|
|
nx.bridge.vset("ShowPartner", _vo);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 伙伴更新
|
||
|
|
onPartnerChanged: function onPartnerChanged(_partner) {
|
||
|
|
this.partner = _partner;
|
||
|
|
|
||
|
|
// 判空
|
||
|
|
if (nx.dt.objEmpty(this.partner)) {
|
||
|
|
this.setEmpty();
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 刷新
|
||
|
|
this.freshSkills();
|
||
|
|
},
|
||
|
|
// 置空
|
||
|
|
setEmpty: function setEmpty() {
|
||
|
|
nx.gui.setActive(this, "mod/list", false);
|
||
|
|
nx.gui.setActive(this, "mod/ops", false);
|
||
|
|
},
|
||
|
|
// 刷新
|
||
|
|
freshSkills: function freshSkills() {
|
||
|
|
var self = this;
|
||
|
|
var chds = this.lstSkill.children;
|
||
|
|
var sks = this.partner.talent_skill_list;
|
||
|
|
var cfgs = game.configs.partner_skill_data.data_partner_skill_pos;
|
||
|
|
var slvs = game.configs.partner_skill_data.data_partner_skill_level;
|
||
|
|
|
||
|
|
// 单刷
|
||
|
|
var fresh = function fresh(_pos) {
|
||
|
|
var cfg = cfgs[_pos];
|
||
|
|
var node = chds[_pos - 1];
|
||
|
|
|
||
|
|
// 是否未解锁
|
||
|
|
if (nx.dt.arrNEmpty(cfg.pos_limit) && cfg.pos_limit[0] == "star" && self.partner.star < cfg.pos_limit[1]) {
|
||
|
|
nx.gui.setActive(node, "nor", false);
|
||
|
|
nx.gui.setActive(node, "empty", false);
|
||
|
|
nx.gui.setActive(node, "lock", true);
|
||
|
|
nx.gui.setString(node, "lock/txt", cfg.pos_limit[1] + nx.text.getKey("lab_starOpen"));
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 已经解锁
|
||
|
|
var sk = sks[cfg.pos];
|
||
|
|
if (sk) {
|
||
|
|
var data = gskilldata('data_get_skill', sk);
|
||
|
|
if (data) {
|
||
|
|
nx.gui.setActive(node, "empty", false);
|
||
|
|
nx.gui.setActive(node, "lock", false);
|
||
|
|
var nor = nx.gui.setActive(node, "nor", true);
|
||
|
|
if (nor) {
|
||
|
|
var cmp = nx.gui.getComponent(nor, "icon", "cmp.skill.base");
|
||
|
|
if (cmp) {
|
||
|
|
cmp.setData(data);
|
||
|
|
}
|
||
|
|
var max = true;
|
||
|
|
var lcfg = slvs[sk];
|
||
|
|
if (lcfg && nx.dt.numPositive(lcfg.next_id, false)) {
|
||
|
|
max = false;
|
||
|
|
}
|
||
|
|
nx.gui.setActive(nor, "ops/up", !max);
|
||
|
|
nx.gui.setActive(nor, "level/txt", !max);
|
||
|
|
nx.gui.setActive(nor, "level/max", max);
|
||
|
|
if (!max) {
|
||
|
|
nx.gui.setString(nor, "level/txt", "Lv." + data.level);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 空
|
||
|
|
nx.gui.setActive(node, "nor", false);
|
||
|
|
nx.gui.setActive(node, "empty", true);
|
||
|
|
nx.gui.setActive(node, "lock", false);
|
||
|
|
};
|
||
|
|
|
||
|
|
// 技能刷新
|
||
|
|
nx.gui.setActive(this, "mod/list", true);
|
||
|
|
for (var pos in cfgs) {
|
||
|
|
fresh(pos);
|
||
|
|
}
|
||
|
|
|
||
|
|
// 操作刷新
|
||
|
|
nx.gui.setActive(this, "mod/ops", true);
|
||
|
|
},
|
||
|
|
// 点击:技能学习
|
||
|
|
onTouchSKAdd: function onTouchSKAdd(_pos) {
|
||
|
|
var _this = this;
|
||
|
|
console.log("onTouchSKAdd:" + _pos);
|
||
|
|
var pos = parseInt(_pos);
|
||
|
|
if (!nx.dt.numPositive(pos, false)) {
|
||
|
|
nx.error("无效技能位置:", _pos);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
var HC = HeroControl.getInstance();
|
||
|
|
HC.openHeroTalentSkillLearnPanel(true, this.partner, function (_id) {
|
||
|
|
var sid = parseInt(_id);
|
||
|
|
if (nx.dt.numPositive(sid, false)) {
|
||
|
|
HC.sender11096(_this.partner.partner_id, pos, sid);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
},
|
||
|
|
// 点击:技能升级
|
||
|
|
onTouchSKUp: function onTouchSKUp(_pos) {
|
||
|
|
var _this2 = this;
|
||
|
|
console.log("onTouchSKUp:" + _pos);
|
||
|
|
var pos = parseInt(_pos);
|
||
|
|
if (!nx.dt.numPositive(pos, false)) {
|
||
|
|
nx.error("无效技能位置:", _pos);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
var id = this.partner.talent_skill_list[_pos];
|
||
|
|
if (!nx.dt.numPositive(id, false)) {
|
||
|
|
nx.error("无效技能:", _pos, id);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
var HC = HeroControl.getInstance();
|
||
|
|
HC.openHeroTalentSkillLevelUpPanel(true, this.partner, id, function (_ret) {
|
||
|
|
if (_ret) {
|
||
|
|
HC.sender11097(_this2.partner.partner_id, pos);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
},
|
||
|
|
// 点击:技能遗忘
|
||
|
|
onTouchSKDel: function onTouchSKDel(_pos) {
|
||
|
|
console.log("onTouchSKDel:" + _pos);
|
||
|
|
var pos = parseInt(_pos);
|
||
|
|
if (!nx.dt.numPositive(pos, false)) {
|
||
|
|
nx.error("无效技能位置:", _pos);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
var id = this.partner.talent_skill_list[_pos];
|
||
|
|
if (!nx.dt.numPositive(id, false)) {
|
||
|
|
nx.error("无效技能:", _pos, id);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 文本组织
|
||
|
|
var HC = HeroControl.getInstance();
|
||
|
|
var str = nx.text.getKey("AskForgetTalent");
|
||
|
|
var cbk = game.configs.partner_skill_data.data_partner_skill_back[id];
|
||
|
|
if (nx.dt.objNEmpty(cbk) && nx.dt.arrNEmpty(cbk.expend)) {
|
||
|
|
// 需要
|
||
|
|
var frame_arrays = [];
|
||
|
|
str = nx.text.getKey("lab_hero_talent_skill_level_up_window_tip4");
|
||
|
|
for (var i = 0; i < cbk.expend.length; ++i) {
|
||
|
|
var v = cbk.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(nx.text.getKey("<img src=%s visible=true scale=0.32 /><div fontColor=#289b14 fontsize= 24>%s</div>")).string;
|
||
|
|
var good_path = PathTool.getIconPath("items", "3");
|
||
|
|
frame_arrays.push(good_path);
|
||
|
|
var str1 = cc.js.formatStr(text, good_res_path, v[1]);
|
||
|
|
str = str + str1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 返还
|
||
|
|
if (cbk.award1.length > 0) {
|
||
|
|
str = str + nx.text.getKey("lab_hero_talent_skill_level_up_window_tip5");
|
||
|
|
for (var _i = 0; _i < cbk.award1.length; ++_i) {
|
||
|
|
var _v = cbk.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(nx.text.getKey("<img src=%s visible=true scale=0.32 /><div fontColor=#289b14 fontsize= 24>%s</div>")).string;
|
||
|
|
var _good_path = PathTool.getIconPath("items", _item_config.icon);
|
||
|
|
frame_arrays.push(_good_path);
|
||
|
|
var _str = cc.js.formatStr(_text, _good_res_path, _v[1]);
|
||
|
|
str = str + _str;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
str = str + ")";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
var self = this;
|
||
|
|
var pid = this.partner.partner_id;
|
||
|
|
nx.mbox(str, ['cancel', 'confirm'], function (_key, _box) {
|
||
|
|
_box.close();
|
||
|
|
if (_key == 'confirm') {
|
||
|
|
HC.sender11098(pid, pos);
|
||
|
|
// self.close();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
},
|
||
|
|
|
||
|
|
// 点击:说明
|
||
|
|
onTouchHelp: function onTouchHelp() {
|
||
|
|
var data = game.configs.partner_skill_data.data_partner_skill_const.skill_rule;
|
||
|
|
if (nx.dt.objNEmpty(data) && nx.dt.strNEmpty(data.desc)) {
|
||
|
|
var TC = TipsController.getInstance();
|
||
|
|
TC.showTextPanel("tip", data.desc);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 点击:预览
|
||
|
|
onTouchPreview: function onTouchPreview() {
|
||
|
|
var HC = HeroControl.getInstance();
|
||
|
|
HC.openArtifactSkillWindow(true, 2);
|
||
|
|
},
|
||
|
|
// 点击:商店
|
||
|
|
onTouchShop: function onTouchShop() {
|
||
|
|
nx.bridge.jumper.jump2Window(2, [MallConst.MallType.SkillShop]);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
cc._RF.pop();
|