230 lines
7.5 KiB
JavaScript
230 lines
7.5 KiB
JavaScript
"use strict";
|
|
cc._RF.push(module, 'cb4a1VDwzRMCqpGG90O40Hw', 'cmp.element.item.ectype');
|
|
// Scripts/mod/pve/element/cmp/cmp.element.item.ectype.js
|
|
|
|
"use strict";
|
|
|
|
var NXItem = require("nx.fx.sv.expand.item");
|
|
var ECT = require("element_controller");
|
|
var RoleController = require("role_controller");
|
|
var HeroController = require("hero_controller");
|
|
var PartnerConst = require("partner_const");
|
|
var ItemLay = require("cmp.common.itemlayout");
|
|
cc.Class({
|
|
"extends": NXItem,
|
|
properties: {
|
|
st: {
|
|
"default": null,
|
|
type: cc.Button
|
|
},
|
|
tagNum: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
powerNd: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
desNd: {
|
|
"default": null,
|
|
type: cc.Node
|
|
},
|
|
challenge: {
|
|
"default": null,
|
|
type: cc.Button
|
|
},
|
|
clear: {
|
|
"default": null,
|
|
type: cc.Button
|
|
},
|
|
list: {
|
|
"default": null,
|
|
type: ItemLay
|
|
}
|
|
},
|
|
rebind: function rebind(_idx, _data, _key) {
|
|
this._super();
|
|
this.mdata = _data;
|
|
this.setData(_data);
|
|
},
|
|
onDisable: function onDisable() {
|
|
var setGray = function setGray(_nod, _mat) {
|
|
var nod = _nod;
|
|
var sp = nx.gui.getComponent(nod, "qa", cc.Sprite);
|
|
var isp = nx.gui.getComponent(nod, "icon", cc.Sprite);
|
|
var ssp = nx.gui.getComponent(nod, "star", cc.Sprite);
|
|
var rt = nx.gui.getComponent(nod, "rt/img", cc.Sprite);
|
|
var material = _mat == 1 ? cc.Material.getBuiltinMaterial('2d-gray-sprite') : cc.Material.getBuiltinMaterial('2d-sprite');
|
|
sp.setMaterial(0, material);
|
|
isp.setMaterial(0, material);
|
|
ssp.setMaterial(0, material);
|
|
rt.setMaterial(0, material);
|
|
};
|
|
for (var i = 0; i < this.list.node.children.length; i++) {
|
|
var nod = this.list.node.children[i];
|
|
setGray(nod, 0);
|
|
}
|
|
this.list.rebuild([]);
|
|
},
|
|
setData: function setData(data) {
|
|
if (nx.dt.objEmpty(data)) return;
|
|
var model = ECT.getInstance().getModel();
|
|
var ele_data = model.getElementData();
|
|
var ele_power = model.getEleCurPower();
|
|
var status = 0; //0 未解鎖 1 已解鎖 2 可掃蕩
|
|
var type = game.configs.element_temple_data.data_base;
|
|
for (var i in type) {
|
|
var info = type[i];
|
|
if (info.group.length == 2) {
|
|
if (data.group >= info.group[0] && data.group <= info.group[1]) {
|
|
this.type = info.type;
|
|
}
|
|
} else {
|
|
if (data.group == info.group[0]) {
|
|
this.type = info.type;
|
|
}
|
|
}
|
|
}
|
|
for (var _i in ele_data.list) {
|
|
if (ele_data.list[_i].group == data.group) {
|
|
if (ele_data.list[_i].boss_id >= data.id) {
|
|
//當前可掃蕩,仍然需要確認掃蕩次數
|
|
status = 2;
|
|
} else if (ele_power && ele_power >= data.power) {
|
|
status = 1;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
//除了掃蕩全是首通獎勵
|
|
var awards = [];
|
|
this.desNd.active = true;
|
|
awards = data.first_reward;
|
|
if (status == 2) {
|
|
this.st.node.active = false;
|
|
awards = data.auto_reward;
|
|
this.desNd.active = false;
|
|
} else if (status == 1) {
|
|
this.st.node.active = true;
|
|
} else {
|
|
this.st.node.active = true;
|
|
}
|
|
this.list.rebuild(awards);
|
|
//展示獎勵
|
|
nx.gui.setString(this.powerNd, "num", data.power);
|
|
nx.gui.setString(this.desNd, "", data.limit_desc);
|
|
|
|
//刷新按鈕狀態
|
|
this.changeBtnStatus(status);
|
|
|
|
//展示樓層
|
|
if (data.id >= 10) {
|
|
var s1 = Math.floor(data.id / 10);
|
|
var s2 = data.id % 10;
|
|
this.tagNum.children[1].active = true;
|
|
var path1 = cc.js.formatStr("resDB/harmnum/type4/%s", s1);
|
|
var path2 = cc.js.formatStr("resDB/harmnum/type4/%s", s2);
|
|
nx.gui.setAtlasFrame(this.tagNum, "num", path1);
|
|
nx.gui.setAtlasFrame(this.tagNum, "num2", path2);
|
|
} else {
|
|
this.tagNum.children[1].active = false;
|
|
var atlas_path = cc.js.formatStr("resDB/harmnum/type4/%s", data.id);
|
|
nx.gui.setAtlasFrame(this.tagNum, "num", atlas_path);
|
|
}
|
|
|
|
// this.checkGray(status);
|
|
},
|
|
checkGray: function checkGray(status) {
|
|
var setGray = function setGray(_nod, _mat) {
|
|
var nod = _nod;
|
|
var sp = nx.gui.getComponent(nod, "qa", cc.Sprite);
|
|
var isp = nx.gui.getComponent(nod, "icon", cc.Sprite);
|
|
var ssp = nx.gui.getComponent(nod, "star", cc.Sprite);
|
|
var rt = nx.gui.getComponent(nod, "rt/img", cc.Sprite);
|
|
var material = _mat == 1 ? cc.Material.getBuiltinMaterial('2d-gray-sprite') : cc.Material.getBuiltinMaterial('2d-sprite');
|
|
sp.setMaterial(0, material);
|
|
isp.setMaterial(0, material);
|
|
ssp.setMaterial(0, material);
|
|
rt.setMaterial(0, material);
|
|
};
|
|
if (status == 0) {
|
|
for (var i = 0; i < this.list.node.children.length; i++) {
|
|
var nod = this.list.node.children[i];
|
|
setGray(nod, 1);
|
|
}
|
|
} else {
|
|
for (var _i2 = 0; _i2 < this.list.node.children.length; _i2++) {
|
|
var _nod2 = this.list.node.children[_i2];
|
|
setGray(_nod2, 0);
|
|
}
|
|
}
|
|
},
|
|
changeBtnStatus: function changeBtnStatus(status) {
|
|
if (status == 2) {
|
|
this.clear.node.active = true;
|
|
this.challenge.node.active = false;
|
|
|
|
//判斷是否有掃蕩次數,如果已經購買次數用光,則置灰
|
|
var ele_data = ECT.getInstance().getModel().getElementData();
|
|
if (ele_data.num <= 0) {
|
|
//全部次數用光
|
|
nx.gui.setLocked(this.clear.node, "", true);
|
|
} else {
|
|
nx.gui.setLocked(this.clear.node, "", false);
|
|
}
|
|
} else if (status == 1) {
|
|
this.challenge.node.active = true;
|
|
this.clear.node.active = false;
|
|
nx.gui.setLocked(this.challenge.node, "", false);
|
|
} else {
|
|
this.clear.node.active = false;
|
|
this.challenge.node.active = true;
|
|
nx.gui.setLocked(this.challenge.node, "", true);
|
|
}
|
|
},
|
|
onClickChallenge: function onClickChallenge() {
|
|
var model = ECT.getInstance().getModel();
|
|
var ele_type = ECT.getInstance().getModel().getRecordOpenType();
|
|
if (model.getLeftChallengeCount() > 0) {
|
|
HeroController.getInstance().openFormGoFightPanel(true, PartnerConst.GetElemForm[ele_type] || 13, {
|
|
ele_type: this.type,
|
|
customs_id: this.mdata.id
|
|
});
|
|
} else if (model.getTodayLeftBuyCount() > 0) {
|
|
var normal_buy_count = model.getNormalBuyCount();
|
|
var buy_cfg = game.configs.element_temple_data.data_buy_count[normal_buy_count + 1];
|
|
var privilege_status = RoleController.getInstance().getModel().checkPrivilegeStatus(4); //-- 特權激活狀態
|
|
if (buy_cfg) {
|
|
var str = cc.js.formatStr(nx.text.getKey("lab_ladder_controller_tip2"), 3, buy_cfg.cost);
|
|
nx.mbox(str, ["cancel", "confirm"], function (_key, _box) {
|
|
_box.close();
|
|
if (_key == "confirm") {
|
|
ECT.getInstance().sender25003();
|
|
}
|
|
});
|
|
} else if (privilege_status) {
|
|
var buy_count = model.getPrivilegeBuyCount();
|
|
var pri_cost = game.configs.element_temple_data.data_privilege[buy_count + 1];
|
|
if (pri_cost) {
|
|
var _str = cc.js.formatStr(nx.text.getKey("lab_ladder_controller_tip2"), 3, pri_cost);
|
|
nx.mbox(_str, ["cancel", "confirm"], function (_key, _box) {
|
|
_box.close();
|
|
if (_key == "confirm") {
|
|
ECT.getInstance().sender25003();
|
|
}
|
|
});
|
|
}
|
|
}
|
|
} else {
|
|
nx.tbox("lab_ladder_controller_tip3");
|
|
}
|
|
},
|
|
onClickClear: function onClickClear() {
|
|
if (!this.mdata) return;
|
|
//需要判斷有沒有掃蕩次數
|
|
ECT.getInstance().checkSweepHeaven(this.type, this.mdata.id);
|
|
} // update (dt) {},
|
|
});
|
|
|
|
cc._RF.pop(); |