"use strict";
cc._RF.push(module, '034d5X+FiVB2YeSNUW8s5ps', 'action_buy_skin_window');
// Scripts/mod/action/view/action_buy_skin_window.js
"use strict";
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
// 首页皮肤购买
//
Create: 2019-09-18 14:33:15
// --------------------------------------------------------------------
var PathTool = require("pathtool");
var mainUiController = require("mainui_controller");
var MainuiConst = require("mainui_const");
var ActionEvent = require("action_event");
var TimeTool = require("timetool");
var CommonScrollView = require("common_scrollview");
var ActionBuySkinWindow = cc.Class({
"extends": BaseView,
ctor: function ctor() {
this.prefabPath = PathTool.getPrefabPath("action", "action_buy_skin_window");
this.viewTag = SCENE_TAG.dialogue; //该窗体所属ui层级,全屏ui需要在ui层,非全屏ui在dialogue层,这个要注意
this.win_type = WinType.Big; //是否是全屏窗体 WinType.Full, WinType.Big, WinType.Mini, WinType.Tips
this.ctrl = arguments[0];
},
// 初始化一些配置数据,可以用于声明一些变量之类的
initConfig: function initConfig() {
this.touch_buy_skin = true;
},
// 预制体加载完成之后的回调,可以在这里捕获相关节点或者组件
openCallBack: function openCallBack() {
this.background = this.root_wnd.getChildByName("background");
this.main_container = this.root_wnd.getChildByName("main_container");
this.bg_sp = this.main_container.getChildByName("bg").getComponent(cc.Sprite);
this.attr_msg_rt = this.main_container.getChildByName("attr_msg").getComponent(cc.RichText);
this.buy_btn = this.main_container.getChildByName("btn_buy");
this.btn_fight = this.main_container.getChildByName("btn_fight");
this.btn_fight.getChildByName("Label").getComponent(cc.Label).string = Utils.TI18N("皮肤预览");
this.btn_buy_text = this.buy_btn.getChildByName("label").getComponent(cc.Label);
this.time_text = this.main_container.getChildByName("time_text").getComponent(cc.Label);
this.time_text.string = "";
this.goods_list = this.main_container.getChildByName("goods_list");
this.close_btn = this.main_container.getChildByName("close_btn");
var scroll_size = this.goods_list.getContentSize();
var setting = {
item_class: "backpack_item",
// 单元类
start_x: 10,
// 第一个单元的X起点
space_x: 20,
// x方向的间隔
start_y: 8,
// 第一个单元的Y起点
space_y: 0,
// y方向的间隔
item_width: 120 * 0.9,
// 单元的尺寸width
item_height: 120 * 0.9,
// 单元的尺寸height
row: 1,
// 行数,作用于水平滚动类型
col: 0,
// 列数,作用于垂直滚动类型
scale: 0.9
};
this.item_scroll_view = new CommonScrollView();
this.item_scroll_view.createScroll(this.goods_list, cc.v2(-scroll_size.width / 2, 0), ScrollViewDir.horizontal, ScrollViewStartPos.top, scroll_size, setting);
this.setAttrGoodsData();
this.setData();
var vo = mainUiController.getInstance().getFunctionIconById(MainuiConst.icon.skin);
var remain_sec = vo.end_time - gcore.SmartSocket.getTime();
this.setLessTime(remain_sec);
this.ctrl.sender30101();
},
// 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent
registerEvent: function registerEvent() {
this.addGlobalEvent(ActionEvent.SKIN_INFO_EVENT, function (data) {
if (data.code == 2) {
var btn = this.buy_btn.getComponent(cc.Button);
btn.interactable = false;
btn.enableAutoGrayEffect = true;
this.buy_btn.getChildByName("label").getComponent(cc.LabelOutline).enabled = false;
this.btn_buy_text.string = "已购买";
}
}.bind(this));
this.close_btn.on('click', function () {
Utils.playButtonSound(2);
this.ctrl.openBuySkinWindow(false);
}, this);
this.btn_fight.on('click', function () {
Utils.playButtonSound(1);
this.ctrl.sender30100();
}, this);
this.buy_btn.on('click', function () {
Utils.playButtonSound(1);
this.setCheckHasHeroSkin();
}, this);
},
setCheckHasHeroSkin: function setCheckHasHeroSkin() {
if (!this.touch_buy_skin) return;
if (!this.cur_skin_id) return;
this.setChargeSkin();
},
setChargeSkin: function setChargeSkin() {
Utils.delayRun(this.root_wnd, 3, function () {
this.touch_buy_skin = true;
}.bind(this));
this.touch_buy_skin = false;
if (this.buy_charge_id) {
var charge_config = Config.charge_data.data_charge_data[this.buy_charge_id];
if (charge_config) {
SDK.pay(charge_config.val, null, charge_config.id, charge_config.name, charge_config.name);
}
}
},
setLessTime: function setLessTime(less_time) {
if (!this.time_text) {
return;
}
less_time = less_time || 0;
if (less_time > 0) {
this.setTimeFormatString(less_time);
if (this.time_tichet == null) {
this.time_tichet = gcore.Timer.set(function () {
less_time--;
this.setTimeFormatString(less_time);
if (less_time < 0) {
gcore.Timer.del(this.time_tichet);
this.time_tichet = null;
this.setTimeFormatString(less_time);
}
}.bind(this), 1000, -1);
}
} else {
this.setTimeFormatString(less_time);
}
},
setTimeFormatString: function setTimeFormatString(time) {
if (time > 0) {
this.time_text.string = TimeTool.getTimeForFunction(time);
} else {
this.time_text.string = "00:00:00";
}
},
// 预制体加载完成之后,添加到对应主节点之后的回调,也就是一个窗体的正式入口,可以设置一些数据了
openRootWnd: function openRootWnd(params) {},
setAttrGoodsData: function setAttrGoodsData() {
var config = Config.charge_data.data_constant["skin_award"];
var item_list = config.val;
var skin_attr = Config.partner_skin_data.data_skin_info;
if (skin_attr && skin_attr[config.id]) {
var skinInfo = skin_attr[config.id];
this.cur_skin_id = skinInfo.skin_id;
this.loadRes(PathTool.getUIIconPath("bigbg", skinInfo.hero_info_bg_res), function (res) {
this.bg_sp.spriteFrame = res;
}.bind(this));
var res = [];
var str = "属性加成:";
for (var i = 0; i < skinInfo.skin_attr.length; ++i) {
var v = skinInfo.skin_attr[i];
var value = Utils.commonGetAttrInfoByKeyValue(v[0], v[1]);
res.push(value.res);
str += "
" + value.attr_name + "+" + value.attr_val + " ";
} // A label with outline
// let icon = PathTool.getAttrIconByStr("hp")
// var res = [PathTool.getUIIconPath("common",icon)];
// let str = cc.js.formatStr("
钻石
","3",icon)
this.attr_msg_rt.string = str;
for (var _i = 0; _i < res.length; ++_i) {
this.loadRes(res[_i], function (item, resObject) {
item.addSpriteFrame(resObject);
}.bind(this, this.attr_msg_rt));
}
}
if (item_list && item_list.length) {
var list = [];
for (var _i2 = 0; _i2 < item_list.length; ++_i2) {
var vo = {};
vo.bid = item_list[_i2][0];
vo.num = item_list[_i2][1];
list.push(vo);
}
var item_count = list.length;
var scroll_size = this.goods_list.getContentSize();
if (item_count > 4) {
this.item_scroll_view.setClickEnabled(true);
if (this.item_scroll_view.root_wnd) {
this.item_scroll_view.root_wnd.x = -scroll_size.width / 2;
}
} else {
this.item_scroll_view.setClickEnabled(false);
if (this.item_scroll_view.root_wnd) {
this.item_scroll_view.root_wnd.x = -scroll_size.width / 2 + (5 - item_count) * 10 + (4 - item_count) * 55;
}
}
this.item_scroll_view.setData(list);
this.item_scroll_view.addEndCallBack(function () {
var list = this.item_scroll_view.getItemList();
for (var i in list) {
list[i].setDefaultTip();
}
}.bind(this));
}
},
setData: function setData() {
var config = Config.charge_data.data_constant["skin_package_id"];
if (config) {
this.buy_charge_id = config.val || 0;
var charge = Config.charge_data.data_charge_data[config.val];
if (charge && charge.val) {
this.btn_buy_text.string = Utils.TI18N("¥" + charge.val);
}
}
},
// 关闭窗体回调,需要在这里调用该窗体所属controller的close方法没用于置空该窗体实例对象
closeCallBack: function closeCallBack() {
if (this.time_tichet) {
gcore.Timer.del(this.time_tichet);
this.time_tichet = null;
}
if (this.item_scroll_view) {
this.item_scroll_view.deleteMe();
this.item_scroll_view = null;
}
this.ctrl.openBuySkinWindow(false);
}
});
cc._RF.pop();