Files

230 lines
7.2 KiB
JavaScript
Raw Permalink Normal View History

2026-05-24 10:21:26 +08:00
"use strict";
cc._RF.push(module, 'cf3bcaW4ANHWoWbLmMWmKmL', 'cmp.partner.holy.assemble');
// Scripts/mod/partner/cmps/artifact/cmp.partner.holy.assemble.js
"use strict";
/******************************************************************
*
* 战斗义肢 装配
*
******************************************************************/
var BridgeWindow = require("bridge.window");
var FxSVC = require("nx.fx.sv.expand");
var BackPackConst = require("backpack_const");
var HeroConst = require("hero_const");
var HeroEvent = require("hero_event");
var HeroControl = require("hero_controller");
var HEHY = HeroConst.HolyequipmentPosList;
var BBC = BackPackConst.Bag_Code;
var BIT = BackPackConst.item_type;
var BITT = BackPackConst.item_sub_type;
cc.Class({
"extends": BridgeWindow,
properties: {
svcList: {
"default": null,
type: FxSVC
},
nodPartner: {
"default": null,
type: cc.Node
},
nodHolySlots: {
"default": null,
type: cc.Node
},
nodSlectPlans: {
"default": null,
type: FxSVC
},
nodSuitDes: {
"default": null,
type: cc.Node
}
},
onLoad: function onLoad() {
this.bindGEvent(HeroEvent.Hero_Open_Holy_Equipment_Cell_Event, this.freshHolyEqm.bind(this));
this.bindGEvent(HeroEvent.Hero_Get_Holy_Equipment_Plan_Event, this.freshHolyEqm.bind(this));
this.schlst = [];
},
// 重载:参数打开
onOpenConfigs: function onOpenConfigs(_params) {
var HC = HeroControl.getInstance();
var plans = _params.plans;
this.partner = _params.partner;
// console.log( JSON.stringify( this.partner ) + "方案数据 holy装配 伙伴数据" + JSON.stringify( plans ) );
if (!nx.dt.objEmpty(plans)) {
this.freshHolyEqm(plans);
} else {
HC.sender25220(); //申请神装套装信息
}
nx.gui.setActive(this.nodSlectPlans.node, "", false);
},
onHolyPlanChanged: function onHolyPlanChanged() {},
freshHolyEqm: function freshHolyEqm(_plans) {
var HC = HeroControl.getInstance();
var lst = [];
_plans = !_plans.holy_eqm_set_cell ? HC.getModel().getHolyEquipmentPlanDatad() : _plans;
var count = HC.getModel().getHolyPlanCount();
var num = _plans.num || count;
var datas = _plans.holy_eqm_set_cell;
var counts = game.configs.partner_holy_eqm_data.data_holy_suit_manage_length;
var cfg = game.configs.partner_holy_eqm_data.data_holy_suit_manage;
// console.log( JSON.stringify( this.partner ) + "当前的方案信息数据改变---" + JSON.stringify( datas ) );
for (var i in cfg) {
if (i <= num) {
var sch = nx.dt.objClone(cfg[i]);
sch.partner_id = this.partner.partner_id;
sch.list = [];
if (datas) {
for (var j = 0; j < datas.length; j++) {
var msgHoly = datas[j];
if (msgHoly && sch.id == msgHoly.id) {
sch.name = msgHoly.name;
sch.partner_id = msgHoly.partner_id;
sch.dif_id = this.partner.partner_id;
sch.list = msgHoly.list;
}
}
}
sch.is_open = 1;
lst.push(sch);
}
}
this.freshSelectNod(lst);
// console.log( "当前的方案信息" + JSON.stringify( lst ) );
if (counts > lst.length) {
var new_data = nx.dt.objClone(cfg[num + 1]);
lst.push(new_data);
}
this.schlst = lst;
this.svcList.rebuild(lst);
this.freshPartnerHolyInfo();
},
freshSelectNod: function freshSelectNod(_info) {
// console.log( "当前的方案信息刷新sss" + JSON.stringify( _info ) );
this.nodSlectPlans.rebuild(_info);
},
freshPartnerHolyInfo: function freshPartnerHolyInfo() {
var partner_icon = nx.gui.getComponent(this.nodPartner, "", "cmp.item.base");
if (partner_icon) {
partner_icon.setData(this.partner);
}
var holyeqms = HeroControl.getInstance().getModel().getHeroHolyEquipList(this.partner.partner_id);
;
var slots = this.nodHolySlots;
var lst = HeroControl.getInstance().getModel().getHolyEquipSuitDes(holyeqms);
// console.log( "当前的伙伴holy数据更新" + JSON.stringify( lst ) );
for (var pos in HEHY) {
var slot = nx.gui.find(slots, "slot" + pos);
var eqm = holyeqms[pos];
var emt = nx.dt.objEmpty(eqm);
nx.gui.setActive(slot, "empty", emt);
nx.gui.setActive(slot, "tip", false);
nx.gui.setActive(slot, "item", !emt);
var cmp = nx.gui.getComponent(slot, "item", "cmp.item.base");
if (cmp) {
if (!emt) {
cmp.setData(eqm);
} else {
cmp.setData(null);
}
}
}
nx.gui.setActive(this.nodSuitDes, "", !nx.dt.arrEmpty(lst));
if (!nx.dt.arrEmpty(lst)) {
var nod = nx.gui.find(this.nodSuitDes, "desc");
for (var i = 0; i < nod.children.length; i++) {
var des = lst[i];
// console.log( "当前的套装相关属性" + JSON.stringify( des ) );
if (des) {
nx.gui.setString(nod.children[i], "txt", des.name);
var path = cc.path.join("coms/images/eqm_set" + Math.floor(des.id / 100));
nx.gui.setSpriteFrame(nod.children[i], "ticon", path);
} else {
nx.gui.setString(nod.children[i], "txt", "");
nx.gui.setSpriteFrame(nod.children[i], "ticon", "");
}
}
}
},
onTouchSlot: function onTouchSlot(_partId) {
var stype = parseInt(_partId);
// 取相关的战斗义肢
// 点击装备槽
var self = this;
var HC = HeroControl.getInstance();
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
});
}
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 change = function change() {
HC.openHolyChangePanel(true, stype, self.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();
}
},
getSelectHoly: function getSelectHoly(_index) {
var data = [];
var nodes = nx.gui.find(this.svcList, "srv/view/content");
var cmp = nodes.children[_index].getComponent("cmp.partner.holy.sch");
if (cmp) {
data = cmp.mdata.list;
}
return data;
},
onTouchTakeOff: function onTouchTakeOff() {
var HC = HeroControl.getInstance();
HC.sender11093(this.partner.partner_id, 0, 0);
},
onTouchSave: function onTouchSave() {
nx.gui.setActive(this.nodSlectPlans.node, "", !this.nodSlectPlans.node.active);
}
});
cc._RF.pop();