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