Files
fc/dev/project/library/imports/75/75acb3b5-94d3-4fb0-a4d3-c65fbdf1ed37.js
2026-05-24 10:21:26 +08:00

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();