"use strict";
cc._RF.push(module, '7205e9IBV1JYYdq7HVNc6Zh', 'buy_lev_window');
// Scripts/mod/orderaction/view/buy_lev_window.js
"use strict";
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
// 购买等级
//
Create: 2019-08-10 16:26:10
// --------------------------------------------------------------------
var PathTool = require("pathtool");
var CommonScrollView = require("common_scrollview");
var Buy_levWindow = cc.Class({
"extends": BaseView,
ctor: function ctor() {
this.prefabPath = PathTool.getPrefabPath("orderaction", "buy_lev_window");
this.viewTag = SCENE_TAG.dialogue; //该窗体所属ui层级,全屏ui需要在ui层,非全屏ui在dialogue层,这个要注意
this.win_type = WinType.Mini; //是否是全屏窗体 WinType.Full, WinType.Big, WinType.Mini, WinType.Tips
this.ctrl = arguments[0];
this.model = this.ctrl.getModel();
},
// 初始化一些配置数据,可以用于声明一些变量之类的
initConfig: function initConfig() {
this.cur_buy_lev = 1;
this.touch_max_btn = null;
},
// 预制体加载完成之后的回调,可以在这里捕获相关节点或者组件
openCallBack: function openCallBack() {
var background = this.root_wnd.getChildByName("background");
background.scale = FIT_SCALE;
var main_container = this.root_wnd.getChildByName("main_container");
var title_label = main_container.getChildByName("title_con").getChildByName("title_label").getComponent(cc.Label);
title_label.string = Utils.TI18N("购买等级");
this.btn_buy = main_container.getChildByName("btn_buy");
var text_1 = this.btn_buy.getChildByName("Text_1").getComponent(cc.Label);
text_1.string = Utils.TI18N("购 买");
var info_con = main_container.getChildByName("info_con");
this.slider = info_con.getChildByName("slider"); // 滑块
this.plus_btn = info_con.getChildByName("plus_btn");
this.min_btn = info_con.getChildByName("min_btn");
this.max_btn = info_con.getChildByName("max_btn");
this.buy_price = info_con.getChildByName("buy_price").getComponent(cc.Label);
this.buy_price.string = "";
this.Sprite_1 = info_con.getChildByName("Sprite_1").getComponent(cc.Sprite);
this.loadRes(PathTool.getItemRes("3"), function (res) {
this.Sprite_1.spriteFrame = res;
}.bind(this)); //获取当前的信息
this.cur_period = this.model.getCurPeriod();
this.cur_lev = this.model.getCurLev();
this.cur_max_lev = 0;
if (Config.holiday_war_order_data.data_lev_reward_list[this.cur_period]) {
this.cur_max_lev = Object.keys(Config.holiday_war_order_data.data_lev_reward_list[this.cur_period]).length;
} // 购买等级
this.buy_editbox = main_container.getChildByName("editbox").getComponent(cc.EditBox);
var onEditBegan = function () {
this.buy_editbox.placeholder = "";
this.buy_editbox.string = "";
}.bind(this);
var onEditEnded = function () {
var lev = this.buy_editbox.string;
if (lev != "") {
var input = parseInt(lev);
if (input != null) {
if (input <= 0) {
input = 1;
}
if (input >= this.cur_max_lev - this.cur_lev) {
input = this.cur_max_lev - this.cur_lev;
}
this.buy_editbox.string = input.toString();
this.cur_buy_lev = input + this.cur_lev;
if (this.cur_buy_lev >= this.cur_max_lev) {
this.cur_buy_lev = this.cur_max_lev;
}
if (this.cur_buy_lev <= this.cur_lev) {
this.cur_buy_lev = this.cur_lev + 1;
}
this.buyDescript(this.cur_buy_lev);
}
}
}.bind(this);
this.buy_editbox.node.on('editing-did-began', onEditBegan, this);
this.buy_editbox.node.on('editing-did-ended', onEditEnded, this);
this.buy_editbox.node.on('editing-did-return', onEditEnded, this);
this.reward_desc = Utils.createRichLabel(22, new cc.Color(0x64, 0x32, 0x23, 0xff), cc.v2(0.5, 0.5), cc.v2(0, 240), 24, 400);
main_container.addChild(this.reward_desc.node);
this.lev_desc = Utils.createRichLabel(26, new cc.Color(0x64, 0x32, 0x23, 0xff), cc.v2(0, 0.5), cc.v2(-230, -60), 28, 400);
this.lev_desc.horizontalAlign = cc.macro.TextAlignment.LEFT;
main_container.addChild(this.lev_desc.node);
var goods = main_container.getChildByName("goods");
var scroll_view_size = goods.getContentSize();
var setting = {
item_class: "backpack_item",
start_x: 32,
space_x: 20,
start_y: 0,
space_y: 0,
item_width: 120,
item_height: 120,
row: 1,
col: 4
};
this.item_scrollview = new CommonScrollView();
this.item_scrollview.createScroll(goods, cc.v2(0, 0), ScrollViewDir.vertical, ScrollViewStartPos.top, scroll_view_size, setting);
this.cur_buy_lev = this.cur_lev + 1;
this.setEditBoxText(this.cur_buy_lev);
this.buyDescript(this.cur_buy_lev);
this.ticketInitShow(this.cur_buy_lev);
this.btn_close = main_container.getChildByName("btn_close");
},
// 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent
registerEvent: function registerEvent() {
Utils.onTouchEnd(this.btn_close, function () {
this.ctrl.openBuyLevView(false);
}.bind(this), 2);
Utils.onTouchEnd(this.plus_btn, function () {
this.addBuy();
}.bind(this), 1);
Utils.onTouchEnd(this.min_btn, function () {
this.minusBuy();
}.bind(this), 1);
Utils.onTouchEnd(this.max_btn, function () {
this.maxBuy();
}.bind(this), 1);
Utils.onTouchEnd(this.btn_buy, function () {
var buy_lev = this.cur_buy_lev - this.cur_lev;
this.ctrl.send25307(buy_lev);
}.bind(this), 1);
},
setEditBoxText: function setEditBoxText(num) {
if (this.buy_editbox) {
num = num - this.cur_lev;
this.buy_editbox.string = num.toString();
}
},
addBuy: function addBuy() {
this.cur_buy_lev = this.cur_buy_lev + 1;
if (Config.holiday_war_order_data.data_lev_reward_list[this.cur_period]) {
this.touch_max_btn = null;
if (this.cur_buy_lev > this.cur_max_lev) {
this.cur_buy_lev = this.cur_max_lev;
message(Utils.TI18N("已经到达最大等级了~~~"));
return;
}
}
this.setEditBoxText(this.cur_buy_lev);
this.buyDescript(this.cur_buy_lev);
},
minusBuy: function minusBuy() {
this.cur_buy_lev = this.cur_buy_lev - 1;
this.setEditBoxText(this.cur_buy_lev);
this.touch_max_btn = null;
if (this.cur_buy_lev <= this.cur_lev) {
this.cur_buy_lev = this.cur_lev;
message(Utils.TI18N("已经是购买最小等级了~~~"));
this.setEditBoxText(this.cur_buy_lev + 1);
return;
}
if (this.cur_buy_lev <= 0) {
this.cur_buy_lev = 0;
}
this.buyDescript(this.cur_buy_lev);
},
maxBuy: function maxBuy() {
if (this.touch_max_btn) return;
if (!Config.holiday_war_order_data.data_lev_reward_list[this.cur_period]) return;
this.cur_buy_lev = this.cur_max_lev;
this.setEditBoxText(this.cur_buy_lev);
this.touch_max_btn = true;
this.buyDescript(this.cur_max_lev);
},
buyDescript: function buyDescript(lev) {
var temp_lev = lev;
if (!Config.holiday_war_order_data.data_lev_reward_list[this.cur_period]) return;
this.clearTicket();
if (this.buy_lev_ticket == null) {
this.buy_lev_ticket = gcore.Timer.set(function () {
this.ticketInitShow(temp_lev);
}.bind(this), 300);
}
lev = lev - this.cur_lev;
var str = cc.js.formatStr(Utils.TI18N("购买 %d 级,升至 %d 级"), lev, this.cur_buy_lev);
this.lev_desc.string = str;
var totle_price = 1000 * lev;
this.buy_price.string = totle_price * 0.6;
},
ticketInitShow: function ticketInitShow(lev) {
if (!lev) return;
var tempArr = this.addTicket(lev);
var list = tempArr[0];
var num = tempArr[1];
var str = cc.js.formatStr(Utils.TI18N("升至 %d 级,可立即解锁 %d 件奖励"), lev, num);
if (this.reward_desc) {
this.reward_desc.string = str;
}
if (this.item_scrollview) {
this.item_scrollview.setData(list);
this.item_scrollview.addEndCallBack(function () {
var item_list = this.item_scrollview.getItemList();
for (var i in item_list) {
item_list[i].setDefaultTip();
}
}.bind(this));
}
},
clearTicket: function clearTicket() {
if (this.buy_lev_ticket != null) {
gcore.Timer.del(this.buy_lev_ticket);
this.buy_lev_ticket = null;
}
},
addTicket: function addTicket(temp_lev) {
this.clearTicket();
var list = [];
var dic_items = {};
var totle_num = 0;
for (var i = this.cur_lev + 1; i <= temp_lev; i++) {
if (Config.holiday_war_order_data.data_lev_reward_list[this.cur_period][i]) {
if (Config.holiday_war_order_data.data_lev_reward_list[this.cur_period][i].reward) {
var num = Config.holiday_war_order_data.data_lev_reward_list[this.cur_period][i].item_num || 0;
totle_num = totle_num + num;
for (var j in Config.holiday_war_order_data.data_lev_reward_list[this.cur_period][i].reward) {
var v = Config.holiday_war_order_data.data_lev_reward_list[this.cur_period][i].reward[j];
if (dic_items[v[0]]) {
dic_items[v[0]] = dic_items[v[0]] + v[1];
} else {
dic_items[v[0]] = v[1];
}
}
for (var j in Config.holiday_war_order_data.data_lev_reward_list[this.cur_period][i].rmb_reward) {
var v = Config.holiday_war_order_data.data_lev_reward_list[this.cur_period][i].rmb_reward[j];
if (dic_items[v[0]]) {
dic_items[v[0]] = dic_items[v[0]] + v[1];
} else {
dic_items[v[0]] = v[1];
}
}
}
}
}
var price_list = Config.holiday_war_order_data.data_price_list;
for (var id in dic_items) {
var sort = 0;
if (price_list[id]) {
sort = price_list[id].sort || 0;
}
list.push({
bid: id,
num: dic_items[id],
sort: sort
});
}
list.sort(function (a, b) {
return a.sort - b.sort;
});
return [list, totle_num];
},
// 预制体加载完成之后,添加到对应主节点之后的回调,也就是一个窗体的正式入口,可以设置一些数据了
openRootWnd: function openRootWnd(params) {},
// 关闭窗体回调,需要在这里调用该窗体所属controller的close方法没用于置空该窗体实例对象
closeCallBack: function closeCallBack() {
if (this.item_scrollview) {
this.item_scrollview.deleteMe();
this.item_scrollview = null;
}
this.ctrl.openBuyLevView(false);
}
});
cc._RF.pop();