325 lines
8.9 KiB
JavaScript
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(); |