"use strict";
cc._RF.push(module, '21387lF4ndJCoOcyb99pEwp', 'guild_action_goal_window');
// Scripts/mod/guild/view/guild_action_goal_window.js
"use strict";
// --------------------------------------------------------------------
// @author: shiraho@syg.com(必填, 创建模块的人员)
// @description:
// 公会活跃
//
Create: new Date().toISOString()
// --------------------------------------------------------------------
var PathTool = require("pathtool");
var GuildController = require("guild_controller");
var GuildEvent = require("guild_event");
var CommonScrollView = require("common_scrollview");
var GuildActionGoalItem = require("guild_action_goal_item");
var GuildActionGoalWindow = cc.Class({
"extends": BaseView,
ctor: function ctor() {
this.prefabPath = PathTool.getPrefabPath("guild", "guild_action_goal");
this.win_type = WinType.Big;
this.viewTag = SCENE_TAG.dialogue;
this.ctrl = GuildController.getInstance();
this.reward_list = {};
this.receve_list = {};
},
openCallBack: function openCallBack() {
this.background = this.seekChild("background");
this.background.scale = FIT_SCALE;
var container = this.seekChild("main_container");
var main_panel = this.seekChild(container, "main_panel");
this.close_btn = this.seekChild(main_panel, "close_btn");
this.textLv = this.seekChild(main_panel, "textLv", cc.Label);
this.progress = this.seekChild(main_panel, "progress", cc.ProgressBar);
this.progress_num = this.seekChild(main_panel, "progress_num", cc.Label);
this.goods = this.seekChild(main_panel, "goods").getChildByName("content");
this.rewardLayer = this.seekChild(main_panel, "rewardLayer");
this.btn_reward = this.seekChild(main_panel, "btn_reward");
this.btn_reward_redpoint = this.seekChild(this.btn_reward, "redpoint");
this.btn_reward_redpoint.active = false;
this.textAllGetReward = this.seekChild(main_panel, "textAllGetReward", cc.Label);
this.textAllGetReward.node.active = false;
this.skill_full = {};
for (var i = 1; i < 4; i++) {
this.skill_full[i] = this.seekChild(main_panel, "skill_full_" + i);
this.skill_full[i].actvie = false;
}
this.goods_list = this.seekChild(main_panel, "goods_list");
var bgSize = this.goods_list.getContentSize();
var scroll_view_size = cc.size(bgSize.width, bgSize.height - 4);
var setting = {
item_class: GuildActionGoalItem,
// 单元类
start_x: 1,
// 第一个单元的X起点
space_x: 0,
// x方向的间隔
start_y: 0,
// 第一个单元的Y起点
space_y: 0,
// y方向的间隔
item_width: 599,
// 单元的尺寸width
item_height: 73,
// 单元的尺寸height
row: 0,
// 行数,作用于水平滚动类型
col: 1,
// 列数,作用于垂直滚动类型
need_dynamic: true
};
this.item_scrollview = new CommonScrollView();
this.item_scrollview.createScroll(this.goods_list, cc.v2(0, 4), ScrollViewDir.vertical, ScrollViewStartPos.top, scroll_view_size, setting, cc.v2(0.5, 0.5));
this.desc_label = this.seekChild("desc_label", cc.RichText);
var cur = this.seekChild(main_panel, "cur");
this.current_att = {};
for (var i = 0; i < 3; i++) {
this.current_att[i] = {};
this.current_att[i].label = this.seekChild(cur, "label_" + (i + 1), cc.RichText);
this.current_att[i].sprite = this.seekChild(cur, "sprite_" + (i + 1), cc.Sprite);
}
var next = this.seekChild(main_panel, "next");
this.next_att = {};
for (var i = 0; i < 3; i++) {
this.next_att[i] = {};
this.next_att[i].label = this.seekChild(next, "label_" + (i + 1), cc.RichText);
this.next_att[i].sprite = this.seekChild(next, "sprite_" + (i + 1), cc.Sprite);
}
},
registerEvent: function registerEvent() {
this.addGlobalEvent(GuildEvent.UpdataGuildGoalBasicData, function (data) {
var lev_data = Config.guild_quest_data.data_lev_data;
if (data.exp >= lev_data[data.lev].exp) this.btn_reward_redpoint.active = true;else this.btn_reward_redpoint.active = false;
this.textLv.string = cc.js.formatStr("Lv.%s", data.lev);
var str = cc.js.formatStr("今日已获活跃:%s 本周已获活跃:%s", data.day_exp, data.week_exp);
this.desc_label.string = str;
var num = data.lev + 1;
if (num >= Config.guild_quest_data.data_lev_data_length) {
this.progress_num.string = Utils.TI18N("已满级");
this.progress.progress = 1;
this.textAllGetReward.node.active = true;
this.textAllGetReward.string = Utils.TI18N("所有奖励已领完");
this.textAllGetReward.node.color = new cc.Color(0x68, 0x45, 0x2A, 0xff);
this.btn_reward.active = false;
this.upGradeReward(lev_data[data.lev], items);
this.upGradeAttr(lev_data[data.lev].attr);
for (var i = 1; i < 4; i++) {
this.skill_full[i].active = true;
this.next_att[i].active = false;
}
} else {
var strLev = cc.js.formatStr("%s/%s", data.exp, lev_data[data.lev].exp);
this.progress_num.string = strLev;
this.progress.progress = Math.floor(data.exp / lev_data[data.lev].exp * 100) / 100;
if (data.exp >= lev_data[data.lev].exp) {
this.btn_reward.active = true;
this.textAllGetReward.node.active = false;
} else {
this.btn_reward.active = false;
this.textAllGetReward.node.active = true;
var str = cc.js.formatStr("活跃等级%s级可领", num);
this.textAllGetReward.node.color = new cc.Color(0xd9, 0x50, 0x14, 0xff);
this.textAllGetReward.string = str;
}
this.upGradeAttr(lev_data[data.lev].attr, lev_data[num].attr);
this.upGradeReward(lev_data[num].items);
}
}, this);
this.addGlobalEvent(GuildEvent.UpdataGuildGoalTaskData, function (data) {
this.receve_list = {};
var data_sort = [];
for (var i in data.list) {
var v = data.list[i];
for (var k in Config.guild_quest_data.data_task_data) {
var m = Config.guild_quest_data.data_task_data[k];
if (v.id == m.id) {
m.index = i;
data_sort.push(m);
}
}
}
this.receve_list = data.list;
if (this.item_scrollview) this.item_scrollview.setData(data_sort, null, data.list);
}, this);
this.addGlobalEvent(GuildEvent.UpdataGuildGoalSingleTaskData, function (data) {
var id = data.list[0].id;
var num = 1;
for (var i in this.receve_list) {
var v = this.receve_list[i];
if (v.id == id) {
num = i;
break;
}
}
if (this.item_scrollview) {
var item_list = this.item_scrollview.getItemList();
if (item_list) {
for (var k in item_list) {
var item = item_list[k];
if (k == num) {
this.receve_list[num].finish = data.list[0].finish;
this.receve_list[num].target_val = data.list[0].target_val;
this.receve_list[num].value = data.list[0].value;
item.changeItemStatus(num);
}
}
}
}
}, this);
if (this.background) {
this.background.on(cc.Node.EventType.TOUCH_END, function () {
Utils.playButtonSound(2);
this.ctrl.openGuildActionGoalWindow(false);
}, this);
}
if (this.close_btn) {
this.close_btn.on(cc.Node.EventType.TOUCH_END, function () {
Utils.playButtonSound(2);
this.ctrl.openGuildActionGoalWindow(false);
}, this);
}
if (this.btn_reward) {
this.btn_reward.on(cc.Node.EventType.TOUCH_END, function () {
Utils.playButtonSound(1);
this.ctrl.send16904();
}, this);
}
if (this.rewardLayer) {
this.rewardLayer.on(cc.Node.EventType.TOUCH_END, function () {
Utils.playButtonSound(1);
this.ctrl.openGuildRewardWindow(true);
}, this);
}
},
openRootWnd: function openRootWnd() {
this.ctrl.send16900();
this.ctrl.send16901();
},
//升级奖励
upGradeReward: function upGradeReward(items) {
for (var i in this.reward_list) {
this.reward_list[i].active = false;
}
for (var i = 0; i < items.length; i++) {
if (!this.reward_list[i]) {
var item = ItemsPool.getInstance().getItem("backpack_item");
item.initConfig(false, 0.75, false, false);
item.setParent(this.goods);
item.show();
this.reward_list[i] = item;
}
var v = this.reward_list[i];
if (v) {
v.setVisible(true);
v.setPosition(-155 + i * 100, 0);
v.setData({
bid: items[i][0],
num: items[i][1]
});
}
}
},
//属性
upGradeAttr: function upGradeAttr(currentAtt, nextAtt) {
if (currentAtt) {
for (var i in currentAtt) {
var v = currentAtt[i];
var attr_icon = PathTool.getAttrIconByStr(v[0]);
var name = Config.attr_data.data_key_to_name[v[0]] || "";
var msg = cc.js.formatStr(Utils.TI18N("%s: %s "), name, v[1]);
this.current_att[i].label.string = msg;
var common_res_path = PathTool.getCommonIcomPath(attr_icon);
this.updateImg(common_res_path, this.current_att[i]);
}
}
if (nextAtt) {
for (var i in nextAtt) {
var v = nextAtt[i];
var attr_icon = PathTool.getAttrIconByStr(v[0]);
var name = Config.attr_data.data_key_to_name[v[0]] || "";
var msg = cc.js.formatStr(Utils.TI18N("%s: %s "), name, v[1]);
this.next_att[i].label.string = msg;
var common_res_path = PathTool.getCommonIcomPath(attr_icon);
this.updateImg(common_res_path, this.next_att[i]);
}
}
},
updateImg: function updateImg(res, obj) {
this.loadRes(res, function (sf_obj) {
obj.sprite.spriteFrame = sf_obj;
}.bind(this));
},
closeCallBack: function closeCallBack() {
if (this.item_scrollview) this.item_scrollview.deleteMe();
this.item_scrollview = null;
for (var i in this.reward_list) {
if (this.reward_list[i]) {
this.reward_list[i].deleteMe();
this.reward_list[i] = null;
}
}
this.reward_list = null;
this.ctrl.openGuildActionGoalWindow(false);
}
});
module.exports = GuildActionGoalWindow;
cc._RF.pop();