Files
fc/dev/project/library/imports/cb/cb4a1543-c334-4c0a-aa46-1bdd0ee341f0.js
2026-05-24 10:21:26 +08:00

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