"use strict"; cc._RF.push(module, '824a5Ud+ddFPq4m8sjC14Cm', 'cmp.act.wreckagecol'); // Scripts/mod/acts/wreckagecol/cmp/cmp.act.wreckagecol.js "use strict"; var ActPopup = require("act.popup.base"); var FxSVC = require("nx.fx.sv.expand"); var Mod = require("act.wreckagecol.mod"); var themeMod = require("acts.mod"); var FID = require("bridge.function.ids"); /*** * * 探宝活动 */ cc.Class({ "extends": ActPopup, properties: { nodItems: { "default": null, type: FxSVC }, nodTasklst: { "default": null, type: cc.Node }, nodMat: { "default": null, type: cc.Node }, nodEndtime: { "default": null, type: cc.Node }, nodShow: { "default": null, type: cc.Node } }, // 初始化 onOpenConfigs: function onOpenConfigs(_params) { this._super(_params); this.mod = Mod.getInstance(); if (!this.mod) { this.delayClose(); return; } var cfgs = gdata(this.mod.data.config, "data_item_exchange"); this.cfgs = nx.dt.objClone(cfgs); var qfgs = gdata(this.mod.data.config, "data_quest_list"); this.qfgs = nx.dt.objClone(qfgs); var qls = []; var items = []; for (var i in cfgs) { var item = cfgs[i]; items.push(item); } items.sort(function (a, b) { return a.point - b.point; }); for (var j in qfgs) { var qitem = qfgs[j]; qls.push(qitem); } nx.gui.gocChildren(this.nodTasklst, "", qls.length); this.nodItems.rebuild(items); this.mod.vbind(this, [["wreckagecol", this.freshWreckagecolInfo.bind(this)], ["wreckagecolTask", this.freshWreckagecolTask.bind(this)], ["wreckagecolExchange", this.freshColExchange.bind(this)], ["wreckagecolInfo", this.onShowInfo.bind(this)]]); this.mod.reqWreckageColData(); }, onEnable: function onEnable() {}, onDisable: function onDisable() { this.mod.vset("wreckagecolInfo", null); }, // 销毁 onDestroy: function onDestroy() { // this.mod.vset( "wreckagecolInfo", null ); // 活动监听解除 if (this.mod) { this.mod.vunbind(this); } delete this.mod; this._super(); }, freshWreckagecolInfo: function freshWreckagecolInfo(_data) { var _this = this; if (!_data || nx.dt.objEmpty(_data)) { return; } // 材料顯示 nx.gui.setString(this.nodMat, "count", _data.num); var time = _data.end_time - Math.floor(cc.sys.now() / 1000) > 0 ? _data.end_time - Math.floor(cc.sys.now() / 1000) : 0.1; nx.gui.setCdTxt(this.nodEndtime, "txt", time, function () { nx.gui.setString(_this.nodEndtime, "txt", nx.text.getKey("lab_planesafk_main_have_over")); }); var taskLst = _data.list; var exchange = _data.reward_list; this.have = _data.num; this.freshExchangeInfo(exchange); var chd = this.nodTasklst.children; // 刷新任務信息顯示 if (nx.dt.arrEmpty(taskLst)) { chd.forEach(function (_nod) { var cmp = _nod.getComponent("cmp.act.wreckagecol.titem"); if (cmp) { var exInfo = { finish: -1, target_val: 0, value: 0 }; cmp.setExInfo(exInfo); } }); } else { taskLst.sort(function (a, b) { return b.sortid - a.sortid; }); var _loop = function _loop() { var task = taskLst[i]; var nod = chd[i]; var baseinfo = _this.qfgs[task.id]; baseinfo.cb = function () { _this.mod.reqFinishTask(baseinfo.id); }; if (nod) { var cmp = nod.getComponent("cmp.act.wreckagecol.titem"); if (cmp) { cmp.rebind(i, baseinfo); var exInfo = { finish: task.finish, target_val: task.target_val, value: task.value }; cmp.setExInfo(exInfo); } } }; for (var i = 0; i < taskLst.length; i++) { _loop(); } } // {"end_time":1695139199,"num":0,"list":[],"reward_list":[]} }, freshExchangeInfo: function freshExchangeInfo(_info) { var rhd = nx.gui.find(this.nodItems.bindSCV, "view/content").children; for (var r = 0; r < rhd.length; r++) { var rnod = rhd[r]; var rinfo = _info[r]; if (rinfo) { var cmp = rnod.svItem; if (cmp) { var exinfo = { buy_num: rinfo.buy_num, max_num: rinfo.max_num }; cmp.setExData(exinfo); } } } }, freshWreckagecolTask: function freshWreckagecolTask(_data) {}, freshColExchange: function freshColExchange(_exchange) { if (!_exchange) { return; } this.freshExchangeInfo(_exchange.reward_list); this.have = _exchange.num; nx.gui.setString(this.nodMat, "count", _exchange.num); }, onTouchExChange: function onTouchExChange(_item) { if (this.have < _item.mdata.point) { nx.tbox("SummonItemNotEnough"); return; } this.mod.reqExchange(_item.mdata.id); }, onShowInfo: function onShowInfo(_info) { if (_info) { var info = _info; nx.gui.setString(this.nodShow, "num", "x " + info.cfg.point); nx.gui.setString(this.nodShow, "tip", info.tip); nx.gui.setActive(this.nodShow, "", true); } else { this.hideInfo(); } }, hideInfo: function hideInfo() { nx.gui.setActive(this.nodShow, "", false); }, onTouchClose: function onTouchClose() { var theme = themeMod.getInstance().queryTheme(this.mod.data.theme_id); nx.bridge.jumper.jump2Window(FID.ActOpenServer, theme); this.close(); } }); cc._RF.pop();