734 lines
24 KiB
JavaScript
734 lines
24 KiB
JavaScript
|
|
"use strict";
|
||
|
|
cc._RF.push(module, '2f317JA1UBK1b595x7hWNxj', 'cmp.wing.assemble.wnd');
|
||
|
|
// Scripts/mod/partner/wings/cmp/cmp.wing.assemble.wnd.js
|
||
|
|
|
||
|
|
"use strict";
|
||
|
|
|
||
|
|
/******************************************************************
|
||
|
|
*
|
||
|
|
* 僚机装配
|
||
|
|
*
|
||
|
|
******************************************************************/
|
||
|
|
|
||
|
|
var BridgeWindow = require("bridge.window");
|
||
|
|
var HeroController = require("hero_controller");
|
||
|
|
var BackpackController = require("backpack_controller");
|
||
|
|
var BackPackConst = require("backpack_const");
|
||
|
|
var FxSVC = require("nx.fx.sv.expand");
|
||
|
|
var ElfinEvent = require("elfin_event");
|
||
|
|
var ElfinController = require("elfin_controller");
|
||
|
|
var ItemBase = require("cmp.item.base");
|
||
|
|
cc.Class({
|
||
|
|
"extends": BridgeWindow,
|
||
|
|
properties: {
|
||
|
|
defaultScheme: {
|
||
|
|
"default": [],
|
||
|
|
type: cc.Node,
|
||
|
|
displayName: "默认"
|
||
|
|
},
|
||
|
|
svcschemeList: {
|
||
|
|
"default": null,
|
||
|
|
type: FxSVC,
|
||
|
|
displayName: "方案列表"
|
||
|
|
},
|
||
|
|
svcwingsList: {
|
||
|
|
"default": null,
|
||
|
|
type: FxSVC,
|
||
|
|
displayName: "僚机列表"
|
||
|
|
},
|
||
|
|
skill: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node,
|
||
|
|
displayName: "技能展示"
|
||
|
|
},
|
||
|
|
buy: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node,
|
||
|
|
displayName: "解锁按钮"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
onLoad: function onLoad() {
|
||
|
|
this.bindGEvent(ElfinEvent.Elfin_Plan_Info_Event, this.freshSchemeList.bind(this));
|
||
|
|
this.bindGEvent(ElfinEvent.Elfin_Plan_Update_Event, this.freshSchemeItem.bind(this));
|
||
|
|
this.bindGEvent(ElfinEvent.Elfin_Plan_From_Info_Event, this.freshDefaultSchemeInfo.bind(this));
|
||
|
|
this.type = 100;
|
||
|
|
this.team = 1;
|
||
|
|
this.select_wing = -1;
|
||
|
|
this.sid = -1;
|
||
|
|
this.defaultLst = [];
|
||
|
|
},
|
||
|
|
onEnable: function onEnable() {
|
||
|
|
// 视图监听
|
||
|
|
this.vbind([["ShowWingPos", this.onFocusSchemeChanged.bind(this)]]);
|
||
|
|
},
|
||
|
|
// 重载:参数打开
|
||
|
|
onOpenConfigs: function onOpenConfigs(_params) {
|
||
|
|
// this.schemes = [];
|
||
|
|
// 当前选择的僚机序号
|
||
|
|
this.select_pos = 0;
|
||
|
|
this.team = _params.team;
|
||
|
|
this.type = _params.type >= 0 ? _params.type : this.type;
|
||
|
|
// console.log( _params.type + "当前的类型-------" + this.type );
|
||
|
|
if (_params.setting) {
|
||
|
|
this["default"] = _params.setting.cur_plan_data || this["default"];
|
||
|
|
}
|
||
|
|
var Elfin = ElfinController.getInstance();
|
||
|
|
Elfin.send26556();
|
||
|
|
if (this.type != 100) {
|
||
|
|
Elfin.send26555(this.type);
|
||
|
|
}
|
||
|
|
|
||
|
|
// 操作方案的当前所选的位置
|
||
|
|
// this.freshSchemeList();
|
||
|
|
},
|
||
|
|
|
||
|
|
// 重载:关闭前
|
||
|
|
onPreClosed: function onPreClosed() {
|
||
|
|
nx.bridge.vset("ShowWingPos", null);
|
||
|
|
this.svcschemeList.rebuild([]);
|
||
|
|
this.svcwingsList.rebuild([]);
|
||
|
|
},
|
||
|
|
// 刷新所有的方案列表
|
||
|
|
freshSchemeList: function freshSchemeList(_scheme) {
|
||
|
|
var _this = this;
|
||
|
|
var ElfinCtl = ElfinController.getInstance();
|
||
|
|
var model = ElfinCtl.getModel();
|
||
|
|
// if( _scheme && _scheme.plan_list ){
|
||
|
|
// _scheme.plan_list.sort( Utils.tableLowerSorter( [ "id" ] ) )
|
||
|
|
// }
|
||
|
|
this.schemes = model.getAllPlanData();
|
||
|
|
// let formLst = model.getFormOn();
|
||
|
|
|
||
|
|
// console.log( "当前的上阵或者方案信息" + JSON.stringify( formLst ) );
|
||
|
|
this.defaultLst = [];
|
||
|
|
this.svcschemeList.rebuild(this.schemes);
|
||
|
|
// console.log( "当前的选择是" + this.select_pos );
|
||
|
|
// 处理默认方案
|
||
|
|
var defaultSchemeInfo = [];
|
||
|
|
if (this["default"]) {
|
||
|
|
defaultSchemeInfo = this["default"].sprites;
|
||
|
|
} else {
|
||
|
|
defaultSchemeInfo = model.getDedefaultElfinInfo();
|
||
|
|
}
|
||
|
|
// console.log( JSON.stringify( _scheme ) + "当前的默认方案数据model" + JSON.stringify( defaultSchemeInfo ) );
|
||
|
|
var chd = this.defaultScheme;
|
||
|
|
for (var i = 0; i < defaultSchemeInfo.length; i++) {
|
||
|
|
var cmp = chd[i].getComponent(ItemBase);
|
||
|
|
if (cmp) {
|
||
|
|
if (i == 0) {
|
||
|
|
cmp.onFocus();
|
||
|
|
}
|
||
|
|
cmp.setLocked(false);
|
||
|
|
cmp.setData(defaultSchemeInfo[i].item_bid);
|
||
|
|
if (defaultSchemeInfo[i].item_bid == 0) {
|
||
|
|
this.defaultLst.push(defaultSchemeInfo[i].item_bid);
|
||
|
|
} else {
|
||
|
|
if (!nx.dt.arrMember(this.defaultLst, defaultSchemeInfo[i].item_bid)) {
|
||
|
|
this.defaultLst.push(defaultSchemeInfo[i].item_bid);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
this.onFocusNod(0);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 获取所有的僚机信息
|
||
|
|
var BC = BackpackController.getInstance();
|
||
|
|
var BCModel = BC.getModel();
|
||
|
|
var allElfins = BCModel.getAllBackPackArray(BackPackConst.item_sub_type.ELFIN);
|
||
|
|
allElfins.forEach(function (_elfin) {
|
||
|
|
if (nx.dt.arrMember(_this.defaultLst, _elfin.base_id)) {
|
||
|
|
_elfin.sortid = 1;
|
||
|
|
} else {
|
||
|
|
_elfin.sortid = 0;
|
||
|
|
}
|
||
|
|
});
|
||
|
|
allElfins.sort(function (a, b) {
|
||
|
|
return b.sortid - a.sortid;
|
||
|
|
});
|
||
|
|
|
||
|
|
// console.log( "当前的上阵僚机数据初始" + JSON.stringify( allElfins ) );
|
||
|
|
nx.gui.setActive(this.svcwingsList, "empty", nx.dt.arrEmpty(allElfins));
|
||
|
|
this.svcwingsList.rebuild(allElfins);
|
||
|
|
this.svcwingsList.cleanFocus();
|
||
|
|
|
||
|
|
// 引导辅助
|
||
|
|
if (nx.bridge.plot && nx.bridge.plot.isDoing()) {
|
||
|
|
this.positionDoPlot();
|
||
|
|
}
|
||
|
|
|
||
|
|
// this.scheduleOnce( ()=>{
|
||
|
|
this.onFreshFocus();
|
||
|
|
// }, 0.1 );
|
||
|
|
|
||
|
|
// this.freshBuy();
|
||
|
|
},
|
||
|
|
|
||
|
|
onFreshFocus: function onFreshFocus() {
|
||
|
|
var nodes = nx.gui.find(this.svcwingsList.bindSCV, "view/content").children;
|
||
|
|
// console.log( "当前的方案处理www" + JSON.stringify( this.defaultLst ) );
|
||
|
|
for (var i = 0; i < nodes.length; i++) {
|
||
|
|
var sitem = nodes[i];
|
||
|
|
if (sitem) {
|
||
|
|
var cmp = sitem.svItem;
|
||
|
|
// console.log( defaultSchemeInfo[0].item_bid + "当前的方案处理www" + Object.keys( sitem ) );
|
||
|
|
if (cmp) {
|
||
|
|
if (nx.dt.arrMember(this.defaultLst, cmp.mdata.base_id)) {
|
||
|
|
this.svcwingsList.addFocus(i);
|
||
|
|
} else {
|
||
|
|
this.svcwingsList.removeFocus(i);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 选中切换 僚机机库
|
||
|
|
onFocusChanged: function onFocusChanged(_item) {
|
||
|
|
var _this2 = this;
|
||
|
|
var defaultSelect = this.defaultScheme[this.select_pos];
|
||
|
|
var cmp = defaultSelect.getComponent(ItemBase);
|
||
|
|
var fun = [];
|
||
|
|
if (cmp) {
|
||
|
|
if (_item.mdata.base_id == cmp.mdata) {
|
||
|
|
this.svcwingsList.removeFocus(_item.index);
|
||
|
|
var idx = this.defaultLst.indexOf(_item.mdata.base_id);
|
||
|
|
this.defaultLst[idx] = 0;
|
||
|
|
var data = nx.dt.objClone(_item.mdata) || {};
|
||
|
|
data.base_id = 0;
|
||
|
|
this.freshWingInScheme(data);
|
||
|
|
} else {
|
||
|
|
this.unscheduleAllCallbacks();
|
||
|
|
if (nx.dt.arrMember(this.defaultLst, _item.mdata.base_id)) {
|
||
|
|
var nodes = nx.gui.find(this.svcwingsList.bindSCV, "view/content").children;
|
||
|
|
// console.log( "当前的方案处理www" );
|
||
|
|
for (var i = 0; i < nodes.length; i++) {
|
||
|
|
var sitem = nodes[i];
|
||
|
|
if (sitem) {
|
||
|
|
var _cmp = sitem.svItem;
|
||
|
|
// console.log( defaultSchemeInfo[0].item_bid + "当前的方案处理www" + Object.keys( sitem ) );
|
||
|
|
if (_cmp) {
|
||
|
|
if (_cmp.mdata.base_id == _item.mdata.base_id) {
|
||
|
|
// if( nx.dt.arrMember( this.defaultLst, cmp.mdata.base_id ) ){
|
||
|
|
// this.svcwingsList.removeFocus( i );
|
||
|
|
for (var d = 0; d < this.defaultScheme.length; d++) {
|
||
|
|
var nod = this.defaultScheme[d];
|
||
|
|
var dcmp = nod.getComponent(ItemBase);
|
||
|
|
if (dcmp) {
|
||
|
|
if (dcmp.mdata == _item.mdata.base_id) {
|
||
|
|
dcmp.setData(0);
|
||
|
|
var _idx = this.defaultLst.indexOf(_item.mdata.base_id);
|
||
|
|
this.defaultLst[_idx] = 0;
|
||
|
|
this.svcwingsList.removeFocus(_item.index);
|
||
|
|
this.onFocusNod(d);
|
||
|
|
// this.freshSkillDesc( _item.index ,_item.mdata );
|
||
|
|
// this.defaultLst = this.svcwingsList.focusList;
|
||
|
|
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
// }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
this.svcwingsList.addFocus(_item.index);
|
||
|
|
this.defaultLst[this.select_pos] = _item.mdata.base_id;
|
||
|
|
|
||
|
|
// this.freshSkillDesc( _item.index ,_item.mdata );
|
||
|
|
this.freshWingInScheme(_item.mdata);
|
||
|
|
var _loop = function _loop(_d) {
|
||
|
|
var nod = _this2.defaultScheme[_d];
|
||
|
|
var dcmp = nod.getComponent(ItemBase);
|
||
|
|
if (dcmp) {
|
||
|
|
if (dcmp.mdata && typeof dcmp.mdata != "number") {
|
||
|
|
fun.push(function () {
|
||
|
|
_this2.onFocusNod(_d);
|
||
|
|
});
|
||
|
|
return "break";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
};
|
||
|
|
for (var _d = 0; _d < this.defaultScheme.length; _d++) {
|
||
|
|
var _ret = _loop(_d);
|
||
|
|
if (_ret === "break") break;
|
||
|
|
}
|
||
|
|
if (nx.dt.arrNEmpty(fun)) {
|
||
|
|
this.scheduleOnce(fun[0], 0.3);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 选中切择pos 默认操作方案 取消可以下阵僚机的操作
|
||
|
|
onFocusNod: function onFocusNod(_index) {
|
||
|
|
this.sid = -1;
|
||
|
|
this.freshOtherSchemeFocus();
|
||
|
|
for (var i = 0; i < this.defaultScheme.length; i++) {
|
||
|
|
var selectNode = this.defaultScheme[i];
|
||
|
|
var cmp = selectNode.getComponent(ItemBase);
|
||
|
|
if (cmp) {
|
||
|
|
if (_index == i) {
|
||
|
|
if (!cmp.mdata) {
|
||
|
|
nx.tbox(nx.text.format("FortressLevel_Unlocked", i));
|
||
|
|
this.defaultScheme[this.select_pos].getComponent(ItemBase).onFocus();
|
||
|
|
return;
|
||
|
|
} else {
|
||
|
|
cmp.onFocus();
|
||
|
|
this.select_pos = _index;
|
||
|
|
// console.log( this.select_pos + "当前的数据节点" + JSON.stringify( cmp.mdata ) );
|
||
|
|
if (!nx.dt.objGood(cmp.mdata)) {
|
||
|
|
this.freshSkillDesc(cmp.mdata);
|
||
|
|
// this.onFocusChanged( data );
|
||
|
|
} else {
|
||
|
|
this.freshSkillDesc(0);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
cmp.outFocus();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 选中切换 僚机方案
|
||
|
|
onFocusSchemeChanged: function onFocusSchemeChanged(_item) {
|
||
|
|
this.unscheduleAllCallbacks();
|
||
|
|
if (!_item) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
var snode = nx.gui.find(this.svcschemeList, "view/content");
|
||
|
|
// console.log( JSON.stringify( _item ) + "当前的默认方案配置" + snode );
|
||
|
|
if (snode) {
|
||
|
|
var nodes = snode.children;
|
||
|
|
|
||
|
|
// console.log( JSON.stringify( schemes ) + "当前的默认方案配置" + JSON.stringify( defaultSchemeInfo ) );
|
||
|
|
var dealui = function dealui(_index, _node) {
|
||
|
|
var ElfinCtl = ElfinController.getInstance();
|
||
|
|
var model = ElfinCtl.getModel();
|
||
|
|
var defaultSchemeInfo = model.getDedefaultElfinInfo();
|
||
|
|
var schemes = model.getAllPlanData();
|
||
|
|
if (schemes[_index]) {
|
||
|
|
schemes[_index].plan_sprites = defaultSchemeInfo;
|
||
|
|
_node.rebind(_index, schemes[_index]);
|
||
|
|
self.scheduleOnce(function () {
|
||
|
|
_node.onTouchSave(self.type, self.team);
|
||
|
|
}, 0.3);
|
||
|
|
}
|
||
|
|
};
|
||
|
|
var self = this;
|
||
|
|
var selectNode = nodes[_item.index];
|
||
|
|
// console.log( JSON.stringify( this.defaultLst ) +"当前预设方案的数据" + JSON.stringify( _item ) );
|
||
|
|
if (selectNode) {
|
||
|
|
if (nx.dt.arrCompare(this.defaultLst, _item.lst)) {
|
||
|
|
if (selectNode.svItem) {
|
||
|
|
selectNode.svItem.onTouchSave(self.type, self.team);
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
nx.mbox("ASSAskConfirm", ['yes'], function (_key, _box) {
|
||
|
|
_box.close();
|
||
|
|
if (_key == 'yes') {
|
||
|
|
self.onTouchSave();
|
||
|
|
self.scheduleOnce(function () {
|
||
|
|
dealui(_item.index, selectNode.svItem);
|
||
|
|
}, 0.6);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 处理 点击方案列表,点击选择僚机,僚机放置到对应的方案中
|
||
|
|
freshWingInScheme: function freshWingInScheme(_wing) {
|
||
|
|
var EC = ElfinController.getInstance();
|
||
|
|
var model = EC.getModel();
|
||
|
|
var schemes = model.getAllPlanData();
|
||
|
|
if (this.sid < 0) {
|
||
|
|
var defaultSchemeInfo = model.getDedefaultElfinInfo();
|
||
|
|
var scheme = nx.dt.objClone(defaultSchemeInfo);
|
||
|
|
if (scheme) {
|
||
|
|
if (scheme[this.select_pos]) {
|
||
|
|
scheme[this.select_pos].item_bid = _wing.base_id;
|
||
|
|
this.freshDefaultScheme(scheme);
|
||
|
|
} else {
|
||
|
|
nx.tbox("locked");
|
||
|
|
var cmp = this.defaultScheme[this.select_pos].getComponent(ItemBase);
|
||
|
|
if (cmp) {
|
||
|
|
cmp.onFocus();
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
// console.log( "当前的方案处理" );
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 刷新默认方案
|
||
|
|
freshDefaultSchemeInfo: function freshDefaultSchemeInfo(_schemeitem) {
|
||
|
|
/*****
|
||
|
|
* [26555]:{"type":0,"team_list":[{"team":1,"sprites":[{"pos":3,"item_bid":113005},{"pos":2,"item_bid":113007},{"pos":1,"item_bid":113008}],"plan_id":0}]}
|
||
|
|
*/
|
||
|
|
this.unscheduleAllCallbacks();
|
||
|
|
if (!nx.dt.arrEmpty(_schemeitem.team_list)) {
|
||
|
|
_schemeitem.team_list.sort(Utils.tableLowerSorter(["team"]));
|
||
|
|
var self = this;
|
||
|
|
// this.defaultLst = [];
|
||
|
|
var team = _schemeitem.team_list[0];
|
||
|
|
var sprites = team.sprites;
|
||
|
|
sprites.sort(Utils.tableLowerSorter(["pos"]));
|
||
|
|
if (team.plan_id == 0) {
|
||
|
|
for (var i = 0; i < sprites.length; i++) {
|
||
|
|
var selectNode = this.defaultScheme[i];
|
||
|
|
var cmp = selectNode.getComponent(ItemBase);
|
||
|
|
if (cmp) {
|
||
|
|
cmp.setData(sprites[i].item_bid);
|
||
|
|
this.defaultLst[i] = sprites[i].item_bid;
|
||
|
|
if (i == this.select_pos) {
|
||
|
|
cmp.onFocus();
|
||
|
|
// this.freshSkillDesc( cmp.mdata.item_bid );
|
||
|
|
} else {
|
||
|
|
cmp.outFocus();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
this.scheduleOnce(function () {
|
||
|
|
self.onFreshFocus();
|
||
|
|
}, 0.1);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 刷新单个方案只可以操作默认的方案
|
||
|
|
freshDefaultScheme: function freshDefaultScheme(_schemeitem) {
|
||
|
|
var _this3 = this;
|
||
|
|
this.unscheduleAllCallbacks();
|
||
|
|
this.freshDefaultSchemeFocus();
|
||
|
|
var selectNode = this.defaultScheme[this.select_pos];
|
||
|
|
var cmp = selectNode.getComponent(ItemBase);
|
||
|
|
if (cmp) {
|
||
|
|
// this.defaultLst[this.select_pos] = _schemeitem[this.select_pos].item_bid ;
|
||
|
|
cmp.setData(_schemeitem[this.select_pos].item_bid);
|
||
|
|
cmp.onFocus();
|
||
|
|
// 切换节点 控制技能说明
|
||
|
|
this.onFocusNod(this.select_pos);
|
||
|
|
}
|
||
|
|
this.scheduleOnce(function () {
|
||
|
|
_this3.onFreshFocus();
|
||
|
|
}, 0.1);
|
||
|
|
// console.log( JSON.stringify( _schemeitem ) + "当前的上阵僚机数据" + JSON.stringify( this.defaultLst ) );
|
||
|
|
},
|
||
|
|
|
||
|
|
// 取消默认的聚焦
|
||
|
|
freshDefaultSchemeFocus: function freshDefaultSchemeFocus() {
|
||
|
|
for (var i = 0; i < this.defaultScheme.length; i++) {
|
||
|
|
var item = this.defaultScheme[i];
|
||
|
|
if (item) {
|
||
|
|
var cmp = item.getComponent(ItemBase);
|
||
|
|
if (cmp) {
|
||
|
|
cmp.outFocus();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 取消生成的动态显示的方案的聚焦
|
||
|
|
freshOtherSchemeFocus: function freshOtherSchemeFocus() {
|
||
|
|
var nodes = nx.gui.find(this.svcschemeList, "view/content").children;
|
||
|
|
// console.log( "当前的方案处理www" );
|
||
|
|
for (var i = 0; i < nodes.length; i++) {
|
||
|
|
if (nodes[i].svItem) {
|
||
|
|
var chd = nodes[i].svItem.sinfo;
|
||
|
|
for (var j = 0; j < chd.length; j++) {
|
||
|
|
var sitem = chd[j];
|
||
|
|
var cmp = sitem.getComponent(ItemBase);
|
||
|
|
if (cmp) {
|
||
|
|
cmp.outFocus();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 刷新单个方案
|
||
|
|
freshSchemeItem: function freshSchemeItem(_schemeitem) {
|
||
|
|
var index = _schemeitem.id;
|
||
|
|
var i = index - 1;
|
||
|
|
var ElfinCtl = ElfinController.getInstance();
|
||
|
|
var model = ElfinCtl.getModel();
|
||
|
|
|
||
|
|
// let formLst = model.getFormOn();
|
||
|
|
|
||
|
|
// console.log( "当前的上阵或者方案信息" + JSON.stringify( formLst ) );
|
||
|
|
|
||
|
|
var defaultSchemeInfo = model.getDedefaultElfinInfo();
|
||
|
|
var dsprites = nx.dt.objClone(defaultSchemeInfo);
|
||
|
|
// "plan_sprites":[{"pos":1,"item_bid":113008},{"pos":2,"item_bid":113007}]}
|
||
|
|
dsprites.forEach(function (_sprite) {
|
||
|
|
if (_sprite.item_bid > 0) {
|
||
|
|
_sprite.item_bid = 0;
|
||
|
|
}
|
||
|
|
});
|
||
|
|
var plan_sprites = _schemeitem.plan_sprites;
|
||
|
|
_schemeitem.plan_sprites = nx.dt.arrEmpty(_schemeitem.plan_sprites) ? dsprites : _schemeitem.plan_sprites;
|
||
|
|
var node = nx.gui.find(this.svcschemeList, "view/content");
|
||
|
|
var item = node.children[i];
|
||
|
|
if (item.svItem) {
|
||
|
|
item.svItem.rebind(i, _schemeitem);
|
||
|
|
}
|
||
|
|
|
||
|
|
// 在新增方案的时候刷新列表显示,目的是刷新可以新增的相关
|
||
|
|
if (nx.dt.arrEmpty(plan_sprites)) {
|
||
|
|
this.freshSchemeList();
|
||
|
|
}
|
||
|
|
|
||
|
|
// this.freshSchemeList();
|
||
|
|
},
|
||
|
|
|
||
|
|
// 刷新技能介绍
|
||
|
|
freshSkillDesc: function freshSkillDesc(_mdata) {
|
||
|
|
if (_mdata == 0) {
|
||
|
|
var _cmp2 = this.skill.getComponent("cmp.skill.base");
|
||
|
|
if (_cmp2) {
|
||
|
|
_cmp2.setData({});
|
||
|
|
}
|
||
|
|
nx.gui.setActive(this.skill, "type/title", false);
|
||
|
|
nx.gui.setActive(this.skill, "type/txt", false);
|
||
|
|
nx.gui.setStringRich(this.skill, "skill/desc/cd", "");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
var key = _mdata;
|
||
|
|
var sfg = gdata("sprite_data", "data_elfin_data", key);
|
||
|
|
var sfgc = game.configs.sprite_data.data_elfin_data[key];
|
||
|
|
var cmp = this.skill.getComponent("cmp.skill.base");
|
||
|
|
var ifg = gdata("item_data", "data_unit9", key);
|
||
|
|
nx.gui.setString(this.skill, "type/txt", nx.text.getKey(ifg.use_desc));
|
||
|
|
if (sfgc) {
|
||
|
|
var sfgs = gskilldata('data_get_skill', sfg.skill);
|
||
|
|
// let txt = nx.text.format( "SkillCD2", sfgs.cd );
|
||
|
|
var desc = nx.text.format("CD", sfgs.cd, parseInt(this.select_pos) + 1);
|
||
|
|
// console.log( "des说明" + desc );
|
||
|
|
nx.gui.setStringRich(this.skill, "skill/desc/cd", desc);
|
||
|
|
nx.gui.setActive(this.skill, "type/txt", true);
|
||
|
|
nx.gui.setActive(this.skill, "type/title", true);
|
||
|
|
if (cmp) {
|
||
|
|
cmp.setData(sfg.skill);
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
if (cmp) {
|
||
|
|
cmp.setData({});
|
||
|
|
nx.gui.setStringRich(this.skill, "skill/desc/cd", "");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 刷新购买按钮
|
||
|
|
freshBuy: function freshBuy() {
|
||
|
|
// if( )
|
||
|
|
var allIds = [];
|
||
|
|
this.schemes.forEach(function (_sch) {
|
||
|
|
if (_sch.id != 9) {
|
||
|
|
allIds.push(_sch);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
var key = this.schemes.length;
|
||
|
|
var key2 = allIds.length;
|
||
|
|
var maxCount = game.configs.sprite_data.data_elfin_plan_length;
|
||
|
|
var need = gdata("sprite_data", "data_elfin_plan", key);
|
||
|
|
nx.gui.setString(this.buy, "txt", key2 < maxCount ? need.expend[0][1] : 0);
|
||
|
|
nx.gui.setActive(this.buy, "", key2 < maxCount);
|
||
|
|
},
|
||
|
|
// 购买方案
|
||
|
|
onTouchAdd: function onTouchAdd() {
|
||
|
|
var key = this.schemes.length;
|
||
|
|
var EC = ElfinController.getInstance();
|
||
|
|
var pfg = game.configs.sprite_data.data_elfin_plan[key];
|
||
|
|
var have = BackpackController.getInstance().getModel().getItemNumByBid(pfg.expend[0][0]);
|
||
|
|
var need = pfg.expend[0][1];
|
||
|
|
// 不足弹出提示
|
||
|
|
if (have < need) {
|
||
|
|
nx.tbox(nx.text.getKey("elfin_hatch_unlock_5"));
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
var mat0 = pfg.expend[0][0];
|
||
|
|
var txt = nx.text.format("lab_heaven_msg_tips_19n", need, key);
|
||
|
|
EC.openElfUseTipsWindow(true, txt, [mat0], [need], function (_deal) {
|
||
|
|
EC.send26562(key);
|
||
|
|
EC.openElfUseTipsWindow(false);
|
||
|
|
});
|
||
|
|
},
|
||
|
|
// 保存当前的方案
|
||
|
|
onTouchSave: function onTouchSave() {
|
||
|
|
var show = [];
|
||
|
|
var cfg = gdata("item_data", "data_unit9");
|
||
|
|
var cfgs = game.configs.item_data.data_unit9;
|
||
|
|
var have = 0;
|
||
|
|
for (var i = 0; i < this.defaultLst.length; i++) {
|
||
|
|
var c = this.defaultLst[i];
|
||
|
|
var icon = gdata("item_data", "data_unit9", c).icon;
|
||
|
|
// console.log( "圖標顯示" + JSON.stringify( ) );
|
||
|
|
if (c > 0 && nx.dt.arrMember(show, icon)) {
|
||
|
|
have++;
|
||
|
|
} else {
|
||
|
|
show.push(icon);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if (have > 0) {
|
||
|
|
nx.tbox("AssembleTip");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
var ElfinCtl = ElfinController.getInstance();
|
||
|
|
var choice = [];
|
||
|
|
// console.log( "当前的类型wwwww-------" + this.type );
|
||
|
|
|
||
|
|
for (var _i = 0; _i < this.defaultScheme.length; _i++) {
|
||
|
|
var selectNode = this.defaultScheme[_i];
|
||
|
|
var cmp = selectNode.getComponent(ItemBase);
|
||
|
|
if (cmp) {
|
||
|
|
if (!nx.dt.objGood(cmp.mdata)) {
|
||
|
|
var data = {};
|
||
|
|
data.pos = _i + 1;
|
||
|
|
data.item_bid = nx.dt.objClone(cmp.mdata || -1);
|
||
|
|
choice.push(data);
|
||
|
|
} else {
|
||
|
|
var _data = {};
|
||
|
|
_data.pos = _i + 1;
|
||
|
|
_data.item_bid = 0;
|
||
|
|
// console.log( "当前的pos2" + JSON.stringify( data ) );
|
||
|
|
choice.push(_data);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
for (var _i2 = 0; _i2 < choice.length; _i2++) {
|
||
|
|
if (choice[_i2].item_bid < 0) {
|
||
|
|
choice.splice(_i2, 1); // 将使后面的元素依次前移,数组长度减1
|
||
|
|
_i2--; // 如果不减,将漏掉一个元素
|
||
|
|
}
|
||
|
|
}
|
||
|
|
// {"sprites":[{"pos":1,"item_bid":112002}]}
|
||
|
|
// {"sprites":[{"pos":1,"item_bid":112001}]}
|
||
|
|
// console.log( "当前方案信息" + JSON.stringify( choice ) );
|
||
|
|
|
||
|
|
if (this.type == 100 || this.type == 0) {
|
||
|
|
ElfinCtl.sender26514(choice, this.type == 100);
|
||
|
|
} else {
|
||
|
|
/********_type, sprites, team, flag, only_save */
|
||
|
|
ElfinCtl.send26560(this.type, choice, this.team);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
dealSame: function dealSame(_lst) {
|
||
|
|
var lst = _lst;
|
||
|
|
var same = false;
|
||
|
|
var count = 0;
|
||
|
|
for (var i = 0; i < lst.length; i++) {
|
||
|
|
var it = lst[i];
|
||
|
|
var itd = this.defaultLst[i];
|
||
|
|
if (it == itd) {
|
||
|
|
count++;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
same = count >= lst.length;
|
||
|
|
return same;
|
||
|
|
},
|
||
|
|
// 返回主场景
|
||
|
|
onBackToMain: function onBackToMain() {
|
||
|
|
var _this4 = this;
|
||
|
|
this.unscheduleAllCallbacks();
|
||
|
|
var HR = HeroController.getInstance();
|
||
|
|
var EC = ElfinController.getInstance();
|
||
|
|
var lst = this.dealResult();
|
||
|
|
var BC = BackpackController.getInstance();
|
||
|
|
// if( BC ) {
|
||
|
|
|
||
|
|
// }
|
||
|
|
if (this.type == 100) {
|
||
|
|
// console.log( this.type + "类型" + JSON.stringify( lst ) + "当前的默认方案数据" + JSON.stringify( this.defaultLst ) );
|
||
|
|
if (!this.dealSame(lst)) {
|
||
|
|
nx.mbox("ASSAskConfirmBack", ['yes'], function (_key, _box) {
|
||
|
|
_box.close();
|
||
|
|
if (_key == 'yes') {
|
||
|
|
_this4.onTouchSave();
|
||
|
|
_this4.scheduleOnce(function () {
|
||
|
|
BC.openMainWindow(false);
|
||
|
|
HR.openHeroMainInfoWindow(false);
|
||
|
|
HR.openHeroBagWindow(false);
|
||
|
|
EC.openElfinAdjustWindow(false);
|
||
|
|
}, 0.6);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
} else {
|
||
|
|
BC.openMainWindow(false);
|
||
|
|
HR.openHeroMainInfoWindow(false);
|
||
|
|
HR.openHeroBagWindow(false);
|
||
|
|
EC.openElfinAdjustWindow(false);
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
BC.openMainWindow(false);
|
||
|
|
HR.openHeroMainInfoWindow(false);
|
||
|
|
HR.openHeroBagWindow(false);
|
||
|
|
EC.openElfinAdjustWindow(false);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
dealResult: function dealResult() {
|
||
|
|
var ElfinCtl = ElfinController.getInstance();
|
||
|
|
var model = ElfinCtl.getModel();
|
||
|
|
var defaultSchemeInfo = model.getDedefaultElfinInfo();
|
||
|
|
var lst = [];
|
||
|
|
for (var i = 0; i < defaultSchemeInfo.length; i++) {
|
||
|
|
lst.push(defaultSchemeInfo[i].item_bid);
|
||
|
|
}
|
||
|
|
return lst;
|
||
|
|
},
|
||
|
|
closeSelf: function closeSelf() {
|
||
|
|
var _this5 = this;
|
||
|
|
this.unscheduleAllCallbacks();
|
||
|
|
var lst = this.dealResult();
|
||
|
|
if (this.type == 100) {
|
||
|
|
if (!this.dealSame(lst)) {
|
||
|
|
nx.mbox("ASSAskConfirmBack", ['yes'], function (_key, _box) {
|
||
|
|
_box.close();
|
||
|
|
if (_key == 'yes') {
|
||
|
|
_this5.onTouchSave();
|
||
|
|
_this5.scheduleOnce(function () {
|
||
|
|
_this5.close();
|
||
|
|
}, 0.3);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
} else {
|
||
|
|
this.close();
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
this.close();
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// ============================================
|
||
|
|
// 引导辅助
|
||
|
|
// ============================================
|
||
|
|
|
||
|
|
// 定位可以操作的
|
||
|
|
positionDoPlot: function positionDoPlot() {
|
||
|
|
var node = null;
|
||
|
|
var chd = nx.gui.find(this.svcwingsList.bindSCV, "view/content").children;
|
||
|
|
node = chd[0];
|
||
|
|
// let node = null;
|
||
|
|
// let children = this.svcList.bindSCV.content.children;
|
||
|
|
// for( let i = 0; i < children.length; ++i ) {
|
||
|
|
// let temp = children[ i ];
|
||
|
|
// if( temp.svItem && temp.svItem.mdata && temp.svItem.mdata.bid == 20401 ) {
|
||
|
|
// node = temp;
|
||
|
|
// break;
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
|
||
|
|
if (!node) {
|
||
|
|
nx.error("$ParterPage:定位特定英雄失败!");
|
||
|
|
node = chd[0];
|
||
|
|
if (!node) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
var cell = nx.gui.find(this, "plot");
|
||
|
|
var pos = node.convertToWorldSpaceAR(cc.Vec2.ZERO);
|
||
|
|
cell.position = cell.parent.convertToNodeSpaceAR(pos);
|
||
|
|
cell.width = node.width;
|
||
|
|
cell.height = node.height;
|
||
|
|
cell.mdata = node.svItem.mdata;
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
cc._RF.pop();
|