Files
fc/dev/project/library/imports/b3/b31932f1-0751-44b0-bd86-0ecdb096e52c.js
2026-05-24 10:21:26 +08:00

325 lines
8.9 KiB
JavaScript

"use strict";
cc._RF.push(module, 'b3193LxB1FEsL2GDs2wluUs', 'cmp.partner.artifact');
// Scripts/mod/partner/cmps/artifact/cmp.partner.artifact.js
"use strict";
/******************************************************************
*
* 伙伴信息页 --- 战斗义肢相关
*
******************************************************************/
var BridgeComponent = require("bridge.component");
var HeroConst = require("hero_const");
var HeroEvent = require("hero_event");
var HeroControl = require("hero_controller");
var TipsController = require("tips_controller");
var HEHY = HeroConst.HolyequipmentPosList;
var BattleController = require("battle_controller");
var BattleConst = require("battle_const");
var PrayMod = require("pray.mod");
var NxSpine = require("nx.fx.spine");
cc.Class({
"extends": BridgeComponent,
properties: {
nodSlots: {
"default": null,
type: cc.Node
},
nodEnergy: {
"default": null,
type: cc.Node
},
nodSuit: {
"default": null,
type: NxSpine
}
},
// 显示
onEnable: function onEnable() {
// 视图监听
this.vbind([["ShowPartner", this.onPartnerChanged.bind(this)]]);
// // 事件监听 刷新当前的战斗义肢相关
this.bindGEvent(HeroEvent.Holy_Equipment_Update_Event, this.onPartnerUpdate.bind(this));
},
// 隐藏
onDisable: function onDisable() {
// 视图监听解除
this.vunbind();
// 事件监听解除
this.unbindGEvents();
},
// 有伙伴数据更新
onPartnerUpdate: function onPartnerUpdate(_vo) {
if (_vo && this.partner && _vo.partner_id == this.partner.partner_id) {
this.onPartnerChanged(_vo);
}
},
// 伙伴更新
onPartnerChanged: function onPartnerChanged(_partner) {
this.partner = _partner;
// 判空
if (nx.dt.objEmpty(this.partner)) {
this.setEmpty();
return;
}
// 刷新
this.freshUIBySlots();
},
// 置空
setEmpty: function setEmpty() {
nx.gui.setActive(this, "mod/list", false);
nx.gui.setActive(this, "mod/ops", false);
},
freshUIBySlots: function freshUIBySlots(_data) {
var _this = this;
// 空处理
var slots = this.nodSlots;
var self = this;
var enode = this.nodEnergy;
var holy_eqm_list = HeroControl.getInstance().getModel().getHeroHolyEquipList(this.partner.partner_id) || {};
var empty = function empty(_sc) {
if (_sc === void 0) {
_sc = false;
}
// 卡槽置空
slots.children.forEach(function (_c) {
nx.gui.setActive(_c, "item", false);
nx.gui.setActive(_c, "tip", false);
nx.gui.setActive(_c, "empty", true);
});
nx.gui.hideAllChildren(enode);
};
// empty( true );
// 判空
if (nx.dt.objEmpty(this.partner) || nx.dt.objEmpty(holy_eqm_list)) {
empty(true);
return;
}
for (var pos in HEHY) {
var eqm = holy_eqm_list[pos];
// 当前装备
var emt = nx.dt.objEmpty(eqm);
var slot = nx.gui.find(slots, "slot" + pos);
nx.gui.setActive(slot, "item", !emt);
nx.gui.setActive(slot, "empty", emt);
nx.gui.setActive(slot, "tip", false);
if (!emt) {
var posid = parseInt(pos);
var uiPos = 0;
switch (posid) {
case 23:
{
uiPos = 1;
}
;
break;
case 24:
{
uiPos = 3;
}
;
break;
case 25:
{
uiPos = 2;
}
;
break;
case 26:
{
uiPos = 4;
}
;
break;
}
var path = cc.path.join("prefab/partner/holy/ui/" + parseInt(eqm.config.eqm_set / 100) + "-" + uiPos);
nx.gui.setSpriteFrame(enode, "e" + pos, path);
}
nx.gui.setActive(enode, "e" + pos, !emt);
if (!emt) {
var cmp = nx.gui.getComponent(slot, "item", "cmp.item.base");
if (cmp) {
cmp.setData(eqm);
}
}
}
var suitPath = "";
var suitType = 0;
var holyeqms = HeroControl.getInstance().getModel().getHeroHolyEquipList(this.partner.partner_id);
;
var lst = HeroControl.getInstance().getModel().getHolyEquipSuitDes(holyeqms);
if (nx.dt.arrNEmpty(lst)) {
for (var l = 0; l < lst.length; l++) {
var suit = lst[l];
if (suit.num == 4) {
suitType = parseInt(suit.id % 100);
break;
}
}
}
switch (suitType) {
case 1:
{
suitPath = "resDB/effects/E99992/action";
}
;
break;
case 2:
{
suitPath = "resDB/effects/E99993/action";
}
;
break;
case 3:
{
suitPath = "resDB/effects/E99994/action";
}
;
break;
case 4:
{
suitPath = "resDB/effects/E99995/action";
}
;
break;
case 5:
{
suitPath = "resDB/effects/E99996/action";
}
;
break;
}
if (nx.dt.strNEmpty(suitPath)) {
this.nodSuit.load(suitPath, function (_e) {
if (!_e) {
_this.nodSuit.action("action", true);
} else {
_this.nodSuit.stop();
}
});
nx.gui.setActive(this.nodSuit.node, "", true);
} else {
nx.gui.setActive(this.nodSuit.node, "", false);
}
},
onTouchSlot: function onTouchSlot(_partId) {
var stype = parseInt(_partId);
// 取相关的战斗义肢
// 点击装备槽
var self = this;
var HC = HeroControl.getInstance();
var eqms = HeroControl.getInstance().getModel().getHeroHolyEquipList(this.partner.partner_id);
var eqm = eqms[_partId];
// 脱下
var takeoff = function takeoff() {
HC.sender11093(self.partner.partner_id, eqm.id, 0);
};
// 洗炼
var refinement = function refinement() {
HC.openHolyequipmentRefreshAttPanel(true, eqm, self.partner);
};
var partner = HC.getModel().getHeroById(self.partner.partner_id);
// 更换
var change = function change() {
/*********
* "list":[{"partner_id":17,"item_id":4},{"partner_id":17,"item_id":2},{"partner_id":17,"item_id":3},{"partner_id":17,"item_id":1}]
*/
var holyLst = [];
var eqms = HeroControl.getInstance().getModel().getHeroHolyEquipList(self.partner.partner_id);
for (var i in eqms) {
var _eqm = eqms[i];
holyLst.push({
partner_id: self.partner.partner_id,
item_id: _eqm.id
});
}
// console.log( "当前的伙伴战斗义肢携带信息" + JSON.stringify( holyLst ) );
HC.openHolyChangePanel(true, stype, partner, holyLst, function (_id, _panel) {
// _panel.close();
HC.sender11093(self.partner.partner_id, _id, 1);
}, function (_data) {
HC.sender11093(_data.partner.partner_id, _data.eqm, 0);
});
};
// 当前装备操作
if (eqm) {
HC.openEquipChangePanel(true, eqm, function (_op, _panel) {
_panel.close();
if (_op == "takeoff") {
takeoff();
}
if (_op == "change") {
change();
}
if (_op == "refinement") {
refinement();
}
});
}
// 新装备穿戴
else {
change();
}
},
// 点击:说明
onTouchHelp: function onTouchHelp() {
var data = game.configs.partner_holy_eqm_data.data_const.game_rule_1;
if (nx.dt.objNEmpty(data) && nx.dt.strNEmpty(data.desc)) {
var TC = TipsController.getInstance();
TC.showTextPanel("tip", data.desc);
}
},
// 点击:预览
onTouchPreview: function onTouchPreview() {
var titles = [];
var top_titles = game.configs.partner_holy_eqm_data.data_suit_res_prefix;
for (var i in top_titles) {
var title = top_titles[i];
titles.push(title);
}
// game.configs.partner_holy_eqm_data.data_const.handbook_unlock_condition;
var HC = HeroControl.getInstance();
HC.openHeroClothesLustratWindow(true, titles);
// HC.openArtifactSkillWindow( true, 2 );
},
// 点击:商店
onTouchShop: function onTouchShop() {
var pray = PrayMod.getInstance();
var score = pray.getScore();
nx.bridge.createPanel("WndHolyPrayShop", {
score: score
});
},
// 点击:祈禱
onTouchPray: function onTouchPray() {
nx.bridge.createPanel("WndHolyPray");
},
onTouchAssemble: function onTouchAssemble() {
var HC = HeroControl.getInstance();
var model = HC.getModel();
var plans = model.getHolyEquipmentPlanDatad();
var partner = model.getHeroById(this.partner.partner_id);
HC.openHolyequipmentPlanPanel(true, plans, partner);
},
// 点击:属性加成
onTouchBonus: function onTouchBonus() {
var HC = HeroControl.getInstance();
HC.sender11086(this.partner.partner_id);
},
onTouchDun: function onTouchDun() {
BattleController.getInstance().requestOpenBattleRelevanceWindow(BattleConst.Fight_Type.HeavenWar);
}
});
cc._RF.pop();