Files
fc/dev/project/library/imports/fd/fd52e2c8-33e1-4d0d-bddf-75aff8565929.js
2026-05-24 10:21:26 +08:00

292 lines
8.0 KiB
JavaScript

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