Files
fc/dev/project/library/imports/1f/1f1bf66a-9d05-47b9-80a6-e045e03f1f70.js
T

695 lines
23 KiB
JavaScript
Raw Normal View History

2026-05-24 10:21:26 +08:00
"use strict";
cc._RF.push(module, '1f1bfZqnQVHuYCm4EXgPx9w', 'cmp.trainingcamp.more');
// Scripts/mod/pve/trainingcamp/cmp/cmp.trainingcamp.more.js
"use strict";
var BridgeWindow = require("bridge.window");
var TrainingController = require("trainingcamp_controller");
var data2Icon = require("bridge.utils.item");
cc.Class({
"extends": BridgeWindow,
properties: {
nodTitle: {
"default": null,
type: cc.Node,
displayName: "左上显示"
},
nodDetail: {
"default": null,
type: cc.Node,
displayName: "具体显示"
},
nodDesc: {
"default": null,
type: cc.Node
},
nodTips: {
"default": null,
type: cc.Node
},
nodParts: {
"default": null,
type: cc.Node
},
nodCamps: {
"default": null,
type: cc.Node
},
nodFormLeft: {
"default": null,
type: cc.Node
},
nodFormRight: {
"default": null,
type: cc.Node
},
nodMovePos: {
"default": null,
type: cc.Node
}
},
// 重载:参数打开
onOpenConfigs: function onOpenConfigs(_params) {
this.trainInfo = _params;
if (!this.trainInfo || !_params) {
this.close();
return;
}
// TrainingController.getInstance().send27602( this.trainInfo.id );
nx.gui.setString(this.nodTitle, "", this.trainInfo.name);
nx.gui.setString(this.nodTips, "", this.trainInfo.tips);
// this.svcList.rebuild( lst );
this.fillPos = [];
this.setDetail();
this.showCampForm();
this.setHeroLst();
this.setEnemy();
var chd = this.nodCamps.children;
var cfg = game.configs.formation_data.data_form_data;
for (var i in cfg) {
var form = cfg[i];
var nod = chd[i - 1];
nx.gui.setString(nod, "name/txt", form.name);
}
},
setHeroLst: function setHeroLst() {
var partners = this.trainInfo.partner_id;
var show_list = [];
for (var i in partners) {
var v = partners[i];
var config = gunitdata("data_unit", v); //Config.UnitData.data_unit(v)
if (config) {
var config2 = gunitdata("data_unit", config.monster3); //Config.UnitData.data_unit(config.monster3)
if (config2) {
var hero_vo = {};
hero_vo.bid = Number(config2.head_icon);
var partner = data2Icon.data2Icon(hero_vo.bid);
partner.level = config2.lev;
partner.star = config2.star;
partner.ssid = v;
partner.is_required = false; // 是否必选不可下阵
var vof = data2Icon.data2Icon(partner);
var base_config = gdata("partner_data", "data_partner_base", hero_vo.bid); //Config.PartnerData.data_partner_base[hero_vo.bid]
if (base_config) {
hero_vo.pos_type = base_config.pos_type;
}
vof.id = v;
//table_insert(show_list,hero_vo)
show_list.push(vof);
}
}
}
for (var _i = 0; _i < this.nodParts.children.length; _i++) {
var nod = this.nodParts.children[_i];
var _partner = show_list[_i];
if (!_partner) {
nx.gui.setActive(nod, "", false);
continue;
}
nx.gui.setActive(nod, "", true);
var cmp = nod.getComponent("cmp.partner.com");
if (cmp) {
cmp.setData(_partner);
}
}
// console.log( "當前需要顯示的夥伴數據" + JSON.stringify( show_list ) );
this.nodMovePos.opacity = 0;
nx.gui.setActive(this.nodParts, "", !nx.dt.arrEmpty(show_list));
nx.gui.setActive(this.nodCamps, "", nx.dt.arrEmpty(show_list));
},
setDetail: function setDetail() {
var path = "";
var desc = "";
var message = "";
var pathp = "";
switch (this.trainInfo.id) {
case 1:
{
path = "prefab/pve/trainingcamp/ui/trainingcamp_14";
pathp = "prefab/pve/trainingcamp/ui/trainingcamp_15";
desc = this.trainInfo.desc;
message = this.trainInfo.message;
nx.gui.setActive(this.nodDetail, "nodn/pic", true);
}
;
break;
case 2:
{
desc = this.trainInfo.message;
path = "prefab/pve/trainingcamp/ui/trainingcamp_16";
nx.gui.setActive(this.nodDetail, "nodn/pic", true);
pathp = "";
message = "";
nx.gui.setActive(this.nodDetail, "nod/line", false);
}
;
break;
case 3:
{
desc = this.trainInfo.message;
path = "";
nx.gui.setActive(this.nodDetail, "nodn/pic", false);
pathp = "prefab/pve/trainingcamp/ui/trainingcamp_17";
message = "";
nx.gui.setActive(this.nodDetail, "nod/line", false);
}
;
break;
case 4:
{
desc = this.trainInfo.message;
path = "";
nx.gui.setActive(this.nodDetail, "nodn/pic", false);
pathp = "prefab/pve/trainingcamp/ui/trainingcamp_18";
message = "";
nx.gui.setActive(this.nodDetail, "nod/line", false);
}
;
break;
case 5:
{
desc = this.trainInfo.message;
path = "";
nx.gui.setActive(this.nodDetail, "nodn/pic", false);
pathp = "prefab/pve/trainingcamp/ui/trainingcamp_19";
message = "";
nx.gui.setActive(this.nodDetail, "nod/line", false);
}
;
break;
case 6:
{
desc = this.trainInfo.message;
path = "";
nx.gui.setActive(this.nodDetail, "nodn/pic", false);
pathp = "prefab/pve/trainingcamp/ui/trainingcamp_20";
message = "";
nx.gui.setActive(this.nodDetail, "nod/line", false);
}
;
break;
case 7:
{
desc = this.trainInfo.message;
path = "prefab/pve/trainingcamp/ui/trainingcamp_21";
nx.gui.setActive(this.nodDetail, "nodn/pic", true);
this.onTouchChangeForm(1);
pathp = "";
message = "";
nx.gui.setActive(this.nodDetail, "nod/line", false);
}
;
break;
case 8:
{
desc = this.trainInfo.message;
path = "";
nx.gui.setActive(this.nodDetail, "nodn/pic", false);
pathp = "prefab/pve/trainingcamp/ui/trainingcamp_22";
message = "";
nx.gui.setActive(this.nodDetail, "nod/line", false);
}
;
break;
default:
{
path = "prefab/pve/trainingcamp/ui/trainingcamp_14";
pathp = "prefab/pve/trainingcamp/ui/trainingcamp_16";
}
;
break;
}
nx.gui.setStringRich(this.nodDetail, "nodn/desc", desc);
nx.gui.setSpriteFrame(this.nodDetail, "nodn/pic", path);
nx.gui.setStringRich(this.nodDetail, "nod/desc", message);
nx.gui.setSpriteFrame(this.nodDetail, "nod/pic", pathp);
},
showCampForm: function showCampForm() {
var cfgs = game.configs.formation_data.data_form_data;
var selfs = {};
var partners = [];
for (var i in cfgs) {
var form = cfgs[i];
if (form.type == this.trainInfo.formation) {
selfs = form;
this.selfs = form;
}
}
// 如果當前的配置存在 則進行對顯示夥伴的處理
if (nx.dt.objNEmpty(selfs)) {
this.formShow = [];
var pos = selfs.pos;
var ban_pos = this.trainInfo.ban_pos;
for (var _i2 = 0; _i2 < pos.length; _i2++) {
var posd = pos[_i2];
var poscc = posd[0];
if (nx.dt.arrMember(ban_pos, poscc)) {
partners.push({
pos: posd[1],
id: 0
});
} else {
partners.push({
pos: posd[1],
id: 1
});
this.fillPos.push(posd[1]);
this.formShow.push({
pos: posd[0],
id: 0
});
}
}
var chd = this.nodFormLeft.children;
partners.forEach(function (_nod) {
if (_nod.id != 1) {
nx.gui.setSpriteFrame(chd[_nod.pos - 1], "", "prefab/pve/trainingcamp/ui/ico_blue");
nx.gui.setActive(chd[_nod.pos - 1], "partner", true);
} else {
nx.gui.setSpriteFrame(chd[_nod.pos - 1], "", "prefab/pve/trainingcamp/ui/trainingcamp_06");
nx.gui.setActive(chd[_nod.pos - 1], "partner", false);
}
});
this.setPartners();
} else {
this.setPartners();
}
},
// 設置 相關的夥伴顯示
setPartners: function setPartners() {
var _this = this;
for (var i = 0; i < this.nodFormLeft.children.length; i++) {
var nod = this.nodFormLeft.children[i];
nx.gui.setSpriteFrame(nod, "partner/icon", "");
nx.gui.getComponent(nod, "partner/icon", cc.Sprite).curKey = "";
nx.gui.setSpriteFrame(nod, "partner/star", "");
nx.gui.getComponent(nod, "partner/star", cc.Sprite).curKey = "";
nx.gui.setActive(nod, "partner", false);
}
var partnerShow = [];
// 處理需要顯示的夥伴數據
var dealShow = function dealShow(_v) {
var v = _v;
var vof = {};
var config = gunitdata("data_unit", v); //Config.UnitData.data_unit(v)
if (config) {
var config2 = gunitdata("data_unit", config.monster3); //Config.UnitData.data_unit(config.monster3)
if (config2) {
var hero_vo = {};
hero_vo.bid = parseInt(config2.head_icon);
var base_config = gdata("partner_data", "data_partner_base", hero_vo.bid); //Config.PartnerData.data_partner_base[hero_vo.bid]
if (base_config) {
hero_vo.pos_type = base_config.pos_type;
}
var partner = data2Icon.data2Icon(hero_vo.bid);
partner.level = config2.lev;
partner.star = config2.star;
partner.ssid = v;
partner.is_required = false; // 是否必选不可下阵
vof = data2Icon.data2Icon(partner);
//table_insert(show_list,hero_vo)
}
}
return vof;
};
var pos = this.selfs ? this.selfs.pos : game.configs.formation_data.data_form_data[1].pos;
var partners = this.trainInfo.required_partner;
this.formShows = [];
var _loop = function _loop() {
var posd = pos[_i3];
var poscc = posd[0];
var _loop2 = function _loop2() {
var partnerinfo = partners[j];
if (partnerinfo) {
if (partnerinfo[1] == poscc) {
var partnerbase = dealShow(partnerinfo[0]);
partnerShow.push({
pos: posd[1],
id: partnerbase
});
if (!_this.formShow) {
_this.formShows.push({
pos: posd[0],
id: partnerinfo[0]
});
} else {
_this.formShow.forEach(function (_form) {
if (poscc == _form.pos) {
_form.id = partnerinfo[0];
}
});
}
_this.fillPos.forEach(function (_pos) {
if (_pos == posd[1]) {
_this.fillPos.splice(_this.fillPos.indexOf(_pos), 1);
}
});
}
}
};
for (var j = 0; j < partners.length; j++) {
_loop2();
}
};
for (var _i3 = 0; _i3 < pos.length; _i3++) {
_loop();
}
var chd = this.nodFormLeft.children;
partnerShow.forEach(function (_nod) {
nx.bridge.setIcon(chd[_nod.pos - 1], "partner/icon", _nod.id.icon);
nx.gui.setSpriteFrame(chd[_nod.pos - 1], "partner/star", "coms/images/star" + _nod.id.stars);
nx.gui.setSpriteFrame(chd[_nod.pos - 1], "partner/lt/img", "coms/images/camps" + _nod.id.camp_type);
nx.gui.setActive(chd[_nod.pos - 1], "partner", true);
});
},
setEnemy: function setEnemy() {
var enemys_show = [];
// 處理需要顯示的夥伴數據
var dealShow = function dealShow(_v) {
var enemys = [];
var v = _v;
var vof = {};
var dealEnemys = function dealEnemys(_config) {
var config2 = _config;
var hero_vo = {};
hero_vo.bid = Number(config2.head_icon);
var base_config = gdata("partner_data", "data_partner_base", hero_vo.bid); //Config.PartnerData.data_partner_base[hero_vo.bid]
if (base_config) {
hero_vo.pos_type = base_config.pos_type;
}
var partner = data2Icon.data2Icon(hero_vo.bid);
partner.level = config2.lev;
partner.star = config2.star;
partner.ssid = v;
partner.is_required = false; // 是否必选不可下阵
vof = data2Icon.data2Icon(partner);
enemys.push(vof);
};
var config = gunitdata("data_unit", v); //Config.UnitData.data_unit(v)
if (config) {
var configt = gunitdata("data_unit", config.monster3); //Config.UnitData.data_unit(config.monster3)
if (configt) {
dealEnemys(configt);
//table_insert(show_list,hero_vo)
}
var configf = gunitdata("data_unit", config.monster1); //Config.UnitData.data_unit(config.monster3)
if (configf) {
dealEnemys(configf);
//table_insert(show_list,hero_vo)
}
var configs = gunitdata("data_unit", config.monster2); //Config.UnitData.data_unit(config.monster3)
if (configs) {
dealEnemys(configs);
//table_insert(show_list,hero_vo)
}
var configff = gunitdata("data_unit", config.monster4); //Config.UnitData.data_unit(config.monster3)
if (configff) {
dealEnemys(configff);
//table_insert(show_list,hero_vo)
}
var configfff = gunitdata("data_unit", config.monster5); //Config.UnitData.data_unit(config.monster3)
if (configfff) {
dealEnemys(configfff);
//table_insert(show_list,hero_vo)
}
}
return enemys;
};
var enemy = this.trainInfo.target_id;
var enemys = dealShow(enemy);
// let
var pos = game.configs.formation_data.data_form_data[1].pos;
for (var i = 0; i < pos.length; i++) {
var posd = pos[i];
var enemyd = enemys[i];
enemys_show.push({
pos: posd[1],
id: enemyd || 0
});
}
var chd = this.nodFormRight.children;
enemys_show.forEach(function (_nod) {
if (_nod.id != 0) {
nx.bridge.setIcon(chd[_nod.pos - 1], "partner/icon", _nod.id.icon);
nx.gui.setSpriteFrame(chd[_nod.pos - 1], "partner/star", "coms/images/star" + _nod.id.stars);
nx.gui.setSpriteFrame(chd[_nod.pos - 1], "partner/camp", "coms/images/camps" + _nod.id.camp_type);
// console.log( "當前的陣容相關" + JSON.stringify( _nod ) );
} else {
nx.gui.setSpriteFrame(chd[_nod.pos - 1], "", "prefab/pve/trainingcamp/ui/ico_red");
}
});
},
changeShow: function changeShow(_data) {},
// 點擊陣容 切換夥伴顯示---
onTouchChangeForm: function onTouchChangeForm(_formtype) {
this.selfs = game.configs.formation_data.data_form_data[_formtype];
this.formParts = [];
this.setPartners();
for (var i = 0; i < this.nodCamps.children.length; i++) {
var nod = this.nodCamps.children[i];
nx.gui.setActive(nod, "bg/focus", false);
}
nx.gui.setActive(this.nodCamps.children[_formtype - 1], "bg/focus", true);
},
onTouchPart: function onTouchPart(_id) {
var _this2 = this;
if (this.go) {
this.go.stop();
}
if (this.back) {
this.back.stop();
}
for (var i = 0; i < this.nodParts.children.length; i++) {
var part = this.nodParts.children[i];
nx.gui.setActive(part, "focus", false);
}
var chd = this.nodParts.children;
nx.gui.setActive(chd[_id - 1], "focus", true);
var posp = this.nodParts.convertToWorldSpaceAR(chd[_id - 1].position);
var to = this.nodMovePos.parent.convertToNodeSpaceAR(posp);
this.nodMovePos.position = to;
var posssp = this.nodFormLeft.convertToWorldSpaceAR(this.nodFormLeft.children[this.fillPos[0] - 1].position);
var aim = this.nodMovePos.parent.convertToNodeSpaceAR(posssp);
var self = this;
if (this.select && this.select == _id) {
this.startPos = this.startPos ? this.startPos : this.fillPos[0];
this.onTouchTest(this.nowSelectPos || this.startPos - 1);
return;
}
this.startPos = this.fillPos[0];
var pos = game.configs.formation_data.data_form_data[this.trainInfo.formation].pos;
var diffPos = 0;
for (var _i4 = 0; _i4 < pos.length; _i4++) {
var posd = pos[_i4];
if (posd[1] == this.fillPos[0]) {
diffPos = posd[0];
}
}
this.selectPart = [];
this.select = _id;
var cmp = nx.gui.getComponent(this.nodParts.children[_id - 1], "", "cmp.partner.com");
if (cmp) {
var show = nx.gui.getComponent(this.nodMovePos, "fab", "cmp.partner.com");
if (show) {
show.setData(cmp.mdata);
}
this.partnerInfo = nx.dt.objClone(cmp.mdata);
this.nodMovePos.opacity = 0;
this.nodMovePos.scale = 1;
this.go = cc.tween(this.nodMovePos).to(0.1, {
opacity: 255
}).to(0.3, {
position: aim
}).to(0.3, {
scale: 0.5
}).call(function () {
var cmpd = nx.gui.getComponent(self.nodFormLeft.children[self.fillPos[0] - 1], "partner", "cmp.partner.com");
if (cmpd) {
cmpd.setData(cmp.mdata);
nx.gui.setActive(self.nodFormLeft.children[self.fillPos[0] - 1], "partner", true);
_this2.nodMovePos.opacity = 0;
// console.log( diffPos + "伙伴数据" + JSON.stringify( cmp.mdata ) + "form组" + JSON.stringify( this.formShow ) + "填充" + JSON.stringify( this.fillPos ) );
_this2.selectPart.push({
pos: diffPos,
id: cmp.mdata.id
});
}
// this.nodMovePos.parent = this.nodFormLeft.children[this.fillPos[0]-1] ;
}).start();
this.changeShow(cmp.mdata);
}
// console.log( "可以填充夥伴的位置信息" + JSON.stringify( this.fillPos ) );
},
onTouchChallenge: function onTouchChallenge() {
var _this3 = this;
var type = this.trainInfo.formation;
if (!this.selectPart && !this.formShows) {
nx.tbox("TrainCampTip");
return;
}
if (type > 0 && this.selectPart) {
for (var i = 0; i < this.selectPart.length; i++) {
var select = this.selectPart[i];
this.formShow.push(select);
}
this.formShow.forEach(function (_show) {
if (_show.id == 0) {
_this3.formShow.splice(_this3.formShow.indexOf(_show), 1);
}
});
this.formShow.forEach(function (_show) {
if (_show.id == 0) {
_this3.formShow.splice(_this3.formShow.indexOf(_show), 1);
}
});
TrainingController.getInstance().send27601(this.trainInfo.id, type, this.formShow);
} else {
type = this.selfs.type;
// this.formShow = nx.dt.objClone( this.formShows );
TrainingController.getInstance().send27601(this.trainInfo.id, type, this.formShows);
}
// nx.bridge.closePanel( "WndTrainingCampMore" );
// nx.bridge.createPanel( "WndTrainingCamp" );
},
onTouchTest: function onTouchTest(_idx) {
var _this4 = this;
// console.log( "當前的相關ssss" + this.select );
if (!this.select) {
return;
}
var pos = game.configs.formation_data.data_form_data[this.trainInfo.formation].pos;
var nod = this.nodFormLeft.children[_idx];
var nodTo = this.nodParts.children[this.select - 1];
var posp = this.nodParts.convertToWorldSpaceAR(nodTo.position);
var to = this.nodMovePos.parent.convertToNodeSpaceAR(posp);
var dealPos = function dealPos(_pos) {
var poss = 0;
var fromPos = _pos;
for (var i = 0; i < pos.length; i++) {
var posd = pos[i];
if (posd[1] == fromPos) {
poss = posd[0];
}
}
return poss;
};
if (this.fillPos.length <= 1) {
var cmp = nx.gui.getComponent(nod, "partner", "cmp.partner.com");
if (cmp) {
if (!cmp.mdata || nx.dt.objEmpty(cmp.mdata)) {
return;
}
}
this.nowSelectPos = _idx;
var posssp = this.nodFormLeft.convertToWorldSpaceAR(nod.position);
var aim = this.nodMovePos.parent.convertToNodeSpaceAR(posssp);
this.nodMovePos.position = aim;
this.back = cc.tween(this.nodMovePos).to(0.1, {
opacity: 255
}).to(0.3, {
position: to
}).to(0.3, {
scale: 1
}).call(function () {
nx.gui.setActive(nodTo, "focus", false);
_this4.select = null;
// this.nodMovePos.parent = this.nodFormLeft.children[this.fillPos[0]-1] ;
}).start();
this.formShow.forEach(function (_show) {
if (_show.pos == dealPos(parseInt(_idx) + 1)) {
_show.id = 0;
}
});
this.selectPart = [];
cmp.setData([]);
} else {
var movePos = 0;
var endPos = 0;
var _cmp = nx.gui.getComponent(nod, "partner", "cmp.partner.com");
if (_cmp) {
this.selectPart = [];
this.formShow.forEach(function (_show) {
if (_show.pos == dealPos(_this4.startPos)) {
_show.id = 0;
}
});
var _posssp = this.nodFormLeft.convertToWorldSpaceAR(nod.position);
if (!_cmp.mdata || nx.dt.objEmpty(_cmp.mdata)) {
endPos = this.nodMovePos.parent.convertToNodeSpaceAR(_posssp);
this.fillPos.forEach(function (_pos) {
if (_pos != _this4.startPos) {
movePos = _pos;
}
});
this.move = cc.tween(this.nodMovePos).to(0.1, {
opacity: 255
}).to(0.3, {
position: endPos
}).to(0.3, {
scale: 0.5
}).call(function () {
var cmps = nx.gui.getComponent(_this4.nodFormLeft.children[_this4.startPos - 1], "partner", "cmp.partner.com");
if (cmps) {
cmps.setData([]);
nx.gui.setActive(_this4.nodFormLeft.children[_this4.startPos - 1], "partner", false);
}
var cmpd = nx.gui.getComponent(_this4.nodFormLeft.children[movePos - 1], "partner", "cmp.partner.com");
if (cmpd) {
cmpd.setData(_this4.partnerInfo);
nx.gui.setActive(_this4.nodFormLeft.children[movePos - 1], "partner", true);
_this4.nodMovePos.opacity = 0;
_this4.startPos = movePos;
_this4.selectPart.push({
pos: dealPos(movePos),
id: _this4.partnerInfo.id
});
}
}).start();
} else {
this.backTo = cc.tween(this.nodMovePos).to(0.1, {
opacity: 255
}).to(0.3, {
position: to
}).call(function () {
nx.gui.setActive(nodTo, "focus", false);
_this4.select = null;
var cmps = nx.gui.getComponent(_this4.nodFormLeft.children[_this4.startPos - 1], "partner", "cmp.partner.com");
if (cmps) {
cmps.setData([]);
nx.gui.setActive(_this4.nodFormLeft.children[_this4.startPos - 1], "partner", false);
}
}).start();
this.selectPart = [];
// this.formShow.forEach( _show =>{
// if( _show.pos == dealPos( this.startPos ) ){
// _show.id = 0
// }
// } )
}
}
}
},
closeShowCamp: function closeShowCamp() {
this.close();
nx.bridge.createPanel("WndTrainingCamp");
}
});
cc._RF.pop();