292 lines
8.0 KiB
JavaScript
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();
|