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