205 lines
6.9 KiB
JavaScript
205 lines
6.9 KiB
JavaScript
"use strict";
|
|
cc._RF.push(module, '2a746KtFQVLu6NTR2c+U5Rl', 'cmp.hallows.wnd.trace');
|
|
// Scripts/mod/partner/hallows/cmp/cmp.hallows.wnd.trace.js
|
|
|
|
"use strict";
|
|
|
|
/******************************************************************
|
|
*
|
|
* 行星武器奖励弹窗
|
|
*
|
|
******************************************************************/
|
|
|
|
var BridgeWindow = require("bridge.window");
|
|
var HallowsController = require("hallows_controller");
|
|
var BackpackController = require("backpack_controller");
|
|
cc.Class({
|
|
"extends": BridgeWindow,
|
|
properties: {
|
|
good_item: {
|
|
"default": null,
|
|
type: cc.Prefab
|
|
},
|
|
can_use_label: {
|
|
"default": null,
|
|
type: cc.RichText
|
|
},
|
|
slider: {
|
|
"default": null,
|
|
type: cc.Slider
|
|
},
|
|
s_progress: {
|
|
"default": null,
|
|
type: cc.ProgressBar
|
|
},
|
|
need_num: {
|
|
"default": null,
|
|
type: cc.Label
|
|
},
|
|
attr_lb_list: {
|
|
"default": [],
|
|
type: [cc.Label]
|
|
},
|
|
attr_list: {
|
|
"default": [],
|
|
type: [cc.Node]
|
|
}
|
|
},
|
|
onLoad: function onLoad() {
|
|
var _this = this;
|
|
this.slider.node.on("slide", function () {
|
|
_this.setComposeNumByPercent(_this.slider.progress);
|
|
_this.s_progress.progress = _this.slider.progress;
|
|
});
|
|
},
|
|
// 重载:参数打开
|
|
onOpenConfigs: function onOpenConfigs(data) {
|
|
this.this_use_num = 0;
|
|
this.cost_config = game.configs.hallows_data.data_const.id_stone;
|
|
this.attr_config = game.configs.hallows_data.data_const.stone_attribute;
|
|
this.ctrl = HallowsController.getInstance();
|
|
this.model = this.ctrl.getModel();
|
|
this.data = data;
|
|
if (data && data.vo && this.cost_config) {
|
|
this.had_use_num = data.vo.seal; // 当前使用的数量
|
|
this.use_max_num = this.getUseMaxNum(); // 当前最高可使用数量
|
|
|
|
//数据异常
|
|
if (this.use_max_num == 0) return;
|
|
var max_step = game.configs.hallows_data.data_max_lev[this.data.id];
|
|
if (max_step == null) return;
|
|
var step = this.data.vo.step;
|
|
//没吃满,都显示可以使用的
|
|
if (this.had_use_num < this.use_max_num) {
|
|
this.can_use_label.string = cc.js.formatStr(nx.text.getKey("lab_hallows_trace_window_tip4"), this.had_use_num, this.use_max_num);
|
|
} else {
|
|
if (step >= max_step) {
|
|
//已经满级的
|
|
this.can_use_label.string = cc.js.formatStr(nx.text.getKey("lab_hallows_trace_window_tip5"), this.had_use_num, this.use_max_num);
|
|
} else {
|
|
//找出下一阶的
|
|
var next_config = gdata("hallows_data", "data_trace_cost", Utils.getNorKey(this.data.id, step + 1));
|
|
if (next_config) {
|
|
this.can_use_label.string = cc.js.formatStr(nx.text.getKey("lab_hallows_trace_window_tip6"), step + 1, next_config.num - this.had_use_num);
|
|
}
|
|
}
|
|
}
|
|
this.can_use_num = this.use_max_num - this.had_use_num; // 当前剩余可使用数量
|
|
if (this.can_use_num < 0) {
|
|
this.can_use_num = 0;
|
|
}
|
|
//当前背包中数量
|
|
this.had_max_num = BackpackController.getInstance().getModel().getItemNumByBid(this.cost_config.val); // 背包中总数量
|
|
var itemVo = {
|
|
bid: this.cost_config.val,
|
|
num: this.had_max_num
|
|
};
|
|
if (!this.cost_item) {
|
|
this.cost_item = cc.instantiate(this.good_item);
|
|
this.cost_item.parent = this.node.getChildByName("main");
|
|
this.cost_item.position = cc.v2(-27, 0);
|
|
}
|
|
var cmp = this.cost_item.getComponent("cmp.item.base");
|
|
cmp.rebind(0, itemVo, "");
|
|
this.this_use_num = Math.min(this.can_use_num, this.had_max_num); //这次最多可使用的数量
|
|
this.num = this.this_use_num; // 当前数量
|
|
this.setComposeNum(this.num);
|
|
this.setBaseAttrList();
|
|
}
|
|
},
|
|
//返回当前阶数最大可使用的数量的配置表
|
|
getUseMaxNum: function getUseMaxNum() {
|
|
if (this.data == null || this.data.vo == null) return;
|
|
var trace_cost_config = gdata("hallows_data", "data_trace_cost", Utils.getNorKey(this.data.id, this.data.vo.step));
|
|
if (trace_cost_config) {
|
|
return trace_cost_config.num;
|
|
}
|
|
return 0;
|
|
},
|
|
setComposeNum: function setComposeNum(num) {
|
|
this.num = num;
|
|
var percent = this.num / this.this_use_num || 0;
|
|
this.slider.progress = percent;
|
|
this.s_progress.progress = this.slider.progress;
|
|
this.fileNum(num);
|
|
},
|
|
setComposeNumByPercent: function setComposeNumByPercent(percent) {
|
|
this.num = Math.floor(percent * this.this_use_num);
|
|
this.fileNum(this.num);
|
|
},
|
|
fileNum: function fileNum(num) {
|
|
if (this.had_max_num == null) return;
|
|
this.need_num.string = cc.js.formatStr("%s: %s", nx.text.getKey("HallowsNeed"), num);
|
|
},
|
|
//设置当前圣印总属性
|
|
setBaseAttrList: function setBaseAttrList() {
|
|
if (this.cost_config == null || this.attr_config == null) return;
|
|
if (this.had_use_num == null) {
|
|
this.had_use_num = 0;
|
|
}
|
|
for (var i in this.attr_list) {
|
|
this.attr_list[i].active = false;
|
|
}
|
|
for (var j in this.attr_config.val) {
|
|
var v = this.attr_config.val[j];
|
|
var attr_key = v[0];
|
|
var attr_val = v[1] * this.had_use_num;
|
|
var attr_name = game.configs.attr_data.data_key_to_name[attr_key];
|
|
if (attr_name) {
|
|
// var attr_icon = PathTool.getAttrIconRes(attr_key);
|
|
var attr_str = cc.js.formatStr(" %s +%s", attr_name, attr_val);
|
|
var object = this.attr_list[parseInt(j)];
|
|
if (object) {
|
|
object.active = true;
|
|
this.attr_lb_list[parseInt(j)].string = attr_str;
|
|
// nx.gui.setSpriteFrame( icon, "", attr_icon );
|
|
// object.label.string = attr_str;
|
|
}
|
|
}
|
|
}
|
|
},
|
|
slideHldEvent: function slideHldEvent(event) {
|
|
// this.setComposeNumByPercent(this.slider.progress);
|
|
// this.progress.progress = this.slider.progress;
|
|
},
|
|
onClickLevUp: function onClickLevUp() {
|
|
if (this.data) {
|
|
if (this.this_use_num == 0) {
|
|
nx.tbox("lab_hallows_trace_window_tip3");
|
|
this.ctrl.openHallowsTraceWindow(false);
|
|
} else {
|
|
if (this.num == 0) {
|
|
nx.tbox("lab_hallows_trace_window_tip3");
|
|
} else {
|
|
this.ctrl.requestUseTraceItem(this.data.id, this.num);
|
|
}
|
|
}
|
|
}
|
|
},
|
|
onClickMax: function onClickMax() {
|
|
var percent = this.slider.progress;
|
|
if (percent == 1) return;
|
|
if (this.this_use_num == 0) return;
|
|
if (this.num >= this.this_use_num) return;
|
|
this.num = this.this_use_num;
|
|
this.setComposeNum(this.num);
|
|
},
|
|
onClickPlus: function onClickPlus() {
|
|
var percent = this.slider.progress;
|
|
if (percent == 1) return;
|
|
if (this.this_use_num == 0) return;
|
|
if (this.num >= this.this_use_num) return;
|
|
this.num = this.num + 1;
|
|
this.setComposeNum(this.num);
|
|
},
|
|
onClickMin: function onClickMin() {
|
|
var percent = this.slider.progress;
|
|
if (percent == 0) return;
|
|
if (this.num == 0) return;
|
|
if (this.this_use_num == 0) return;
|
|
this.num = this.num - 1;
|
|
this.setComposeNum(this.num);
|
|
}
|
|
});
|
|
|
|
cc._RF.pop(); |