"use strict"; cc._RF.push(module, 'fd52eLIM+FNDb3fda/4Vlkp', 'cmp.act.stepup.open'); // Scripts/mod/acts/stepup/cmp/cmp.act.stepup.open.js "use strict"; /****************************************************************** * Copyright(C) 2019 - 2020 Nx Studio * * STEP-UP 打开页 * ******************************************************************/ var BridgeComponent = require("bridge.component"); var FxSVC = require("nx.fx.sv.expand"); var STModel = require("act.stepup.mod"); var SummonDefine = require("summon.define"); var MALL = require("mall_controller"); var MallConst = require("mall_const"); var StepWnd = require("cmp.act.stepup"); var StepMax = 25; var StepLoop = 5; var STST = SummonDefine.StepUpStage; cc.Class({ "extends": BridgeComponent, properties: { cmpRoot: { "default": null, type: StepWnd }, nodBG: { "default": null, type: cc.Node }, nodTarget: { "default": null, type: cc.Node }, nodRaw: { "default": null, type: cc.Node }, taskList: { "default": null, type: FxSVC }, nodDate: { "default": null, type: cc.Node }, nodRewards: { "default": null, type: cc.Node } }, // 显示 onEnable: function onEnable() { this.configs = STModel.getInstance().getConfig(); // 重建奖励 this.buildRewards(); // 背景图 var path = cc.path.join("resDB/bigs", this.configs.cfgs.bg || "bg002"); nx.gui.setSpriteFrame(this.nodBG, "", path); // 目标名 path = cc.path.join("resDB/acts/steps", this.configs.cfgs.res_paths, nx.getLocLanguage() + "_role"); nx.gui.setSpriteFrame(this.nodTarget, "img", path); // 相关常量 nx.gui.setString(this.nodRewards, "rounds/info/max", StepMax); // 活动时间 var est = STModel.getInstance().data.end_time; nx.gui.setString(this.nodDate, "txt", nx.bridge.time.cdSimple(est)); // 事件绑定 this.bindGEvent(SummonDefine.StepUpFresh, this.onFreshData.bind(this)); this.onFreshData(); }, // 关闭 onDisable: function onDisable() { // 监听事件释放 this.unbindGEvents(); }, // 重建奖励 buildRewards: function buildRewards() { // 单设 var single = function single(_rd, _node, _info) { var icon = nx.gui.getComponent(_node, "", "cmp.item.base"); if (icon) { icon.setData(_info.reward[0]); } nx.gui.setActive(_node, "got", false); nx.gui.setActive(_node, "get", false); }; // 奖励 var rewards = this.configs.rewards; var root = nx.gui.find(this.nodRewards, "items"); for (var k in rewards) { var item = nx.gui.find(root, "item" + k); single(k, item, rewards[k]); } }, // 刷新奖励 freshRewards: function freshRewards() { // 当前轮次 var data = STModel.getInstance().getData(); var steps = data.turns * StepLoop + data.step - 1; nx.gui.setString(this.nodRewards, "rounds/info/cur", steps); // 奖励信息 var keys = [5, 10, 15, 20, 25]; var boxes = nx.gui.find(this.nodRewards, "progs/bar"); var items = nx.gui.find(this.nodRewards, "items"); var _loop = function _loop() { var k = keys[i]; var item = nx.gui.find(items, "item" + k); var box = nx.gui.find(boxes, "box" + k); // 未达到 if (k > steps) { nx.gui.setActive(item, "get", false); nx.gui.setActive(item, "got", false); nx.gui.setColor(box, "tips/txt", cc.Color.WHITE); return "continue"; } var got = nx.dt.arrMember(data.get_reward, null, function (_m) { return _m && _m.turn == k; }); nx.gui.setActive(item, "get", !got); nx.gui.setActive(item, "got", got); nx.gui.setColor(box, "tips/txt", new cc.color("#01FFE3")); }; for (var i = 0; i < keys.length; ++i) { var _ret2 = _loop(); if (_ret2 === "continue") continue; } // 进度模拟 var flags = nx.gui.find(this.nodRewards, "progs/flags"); for (var _i = 0; _i < flags.children.length; ++_i) { var dot = flags.children[_i]; dot.active = _i < steps; } }, // 更新 freshTasks: function freshTasks() { var data = STModel.getInstance().getData(); var steps = data.turns * StepLoop + data.step; // 重建 var turn = Math.min(data.turns, 4); if (nx.dt.arrEmpty(this.steps) || data.step % StepLoop == 1) { this.steps = nx.dt.objClone(this.configs.steps); for (var i = 0; i < this.steps.length; ++i) { this.steps[i].step = turn * StepLoop + i + 1; } this.taskList.rebuild(this.steps); } var chds = this.taskList.bindSCV.content.children; for (var _i2 = 0; _i2 < chds.length; ++_i2) { var node = chds[_i2]; if (node && node.svItem) { node.svItem.setCurrentStep(steps); } } if (data.step % StepLoop == 1) { var scv = nx.gui.getComponent(this.taskList, "", cc.ScrollView); if (scv) { this.scheduleOnce(function () { scv.scrollToTop(0.5); }, 0.1); } } }, // 数据更新 onFreshData: function onFreshData(_data) { // 召唤次数 var data = STModel.getInstance().getData(); // 活动日期 nx.gui.setActive(this.nodDate, "txt", data.state <= STST.Open); nx.gui.setActive(this.nodDate, "done", data.state > STST.Open); // 刷新奖励 this.freshRewards(); // 刷新任务步骤&&显示排行榜 nx.gui.setActive(this, "panel/steps/task", data.state == STST.Open); nx.gui.setActive(this, "panel/steps/rank", data.state == STST.Complete); if (data.state == STST.Open) { this.freshTasks(); } }, // 点击获得 onTouchGet: function onTouchGet(_btn) { var _this = this; var args = _btn ? _btn.params : {}; if (nx.dt.objEmpty(args)) { return; } // 道具不足 if (!args.enough) { nx.tbox("SummonItemNotEnough"); this.onTouchGift(); return; } var data = STModel.getInstance().getData(); if (args.bid == 3 && data.gold_times == 0) { var des = this.configs.diamond_times.desc + nx.text.getKey("StepUpStepUpTimeNoEnough"); nx.tbox(des); return; } // 召唤 STModel.getInstance().reqSummon(args.type, function (_ret, _data) { // 失败 if (!_ret) { nx.tbox(_data); _this.onTouchGift(); return; } // 判空 if (nx.dt.arrEmpty(_data.partner_bids)) { nx.warn("$Summon:空召唤跳过!"); return; } // 动画 nx.bridge.summonAnimation.doStart(); nx.bridge.summonAnimation.setResult(_data); }); }, // 轮次奖励 onTouchTurnReward: function onTouchTurnReward(_key) { var turn = parseInt(_key); if (!nx.dt.numPositive(turn, false)) { return; } // 轮次奖励 STModel.getInstance().reqTurnReward(turn, function (_ret, _data) { // 失败 if (!_ret) { nx.tbox(_data); return; } console.log(_data); }); }, // 积分商城 onTouchScoreShop: function onTouchScoreShop() { MALL.getInstance().openMallPanel(true, [MallConst.MallType.SummonShop, 54]); nx.bridge.closePanel("WndActStepUp"); }, // 点击助力奖励 onTouchGift: function onTouchGift() { if (this.cmpRoot && this.cmpRoot.actRoot && this.configs && this.configs.cfgs) { this.cmpRoot.actRoot.jumpToMenu(this.configs.cfgs.shop_camp_id); } }, // 排行榜 onTouchOpenRank: function onTouchOpenRank() { nx.bridge.createPanel("WndActStepUpRank"); }, // 点击规则 onTouchRule: function onTouchRule() { var data = STModel.getInstance().getData(); if (nx.dt.objEmpty(data)) { return; } var DATA = game.configs.step_up_recruit_data; var camp = DATA.data_desc["1"]; var params = { desc: camp.desc, rates: [] }; var pros = DATA.data_probability["10001"]; for (var i in pros) { var t = pros[i]; params.rates.push([t.name, t.probability]); } nx.bridge.createPanel("WndSummonRateShow", params); } }); cc._RF.pop();