// --------------------------------------------------------------------
|
// @author: xxx@syg.com(必填, 创建模块的人员)
|
// @description:
|
// 活动 Item 项
|
// <br/>Create: 2019-05-06 14:34:33
|
// --------------------------------------------------------------------
|
var PathTool = require("pathtool");
|
var ActivityConst = require("activity_const");
|
var GuildBossController = require("guildboss_controller");
|
var ActivityController = require("activity_controller");
|
var MainuiController = require("mainui_controller")
|
|
var Activity_itemPanel = cc.Class({
|
extends: BasePanel,
|
ctor: function () {
|
this.prefabPath = PathTool.getPrefabPath("activity", "activity_item");
|
this.ctrl = ActivityController.getInstance();
|
},
|
|
// 可以初始化声明一些变量的
|
initConfig:function(){
|
this.is_double = false;
|
this.list_item = [];
|
},
|
|
// 初始化一些配置数据,可以用于声明一些变量之类的
|
initPanel:function(){
|
this.mainContainer = this.root_wnd.getChildByName("main_container");
|
|
this.itemMask = this.mainContainer.getChildByName("itemMask");
|
this.textLimit = this.itemMask.getChildByName("textLimit").getComponent(cc.Label);
|
this.textLimit.string = Utils.TI18N("敬请期待");
|
this.itemMask.zIndex = 11;
|
|
this.btnRule = this.mainContainer.getChildByName("btnRule");
|
this.btnRule.active = false;
|
|
this.textTimeStart = this.mainContainer.getChildByName("textTimeStart").getComponent(cc.Label);
|
this.textTimeStart.string = "";
|
this.textTimeStart.node.active = false;
|
this.itemBG = this.mainContainer.getChildByName("itemBG");
|
this.redPoint = this.mainContainer.getChildByName("redPoint");
|
this.redPoint.active = false;
|
},
|
|
changeEscortCount:function(){
|
if(this.activityData.id == ActivityConst.limit_index.escort){
|
// var totle = EscortController.getInstance().getModel().getMyMaxCount(EscortConst.times_type.escort);
|
// var current = EscortController.getInstance().getModel().getMyCount(EscortConst.times_type.escort);
|
|
var num = totle - current;
|
if(num < 0){
|
num = 0;
|
}
|
|
var str = cc.js.formatStr(Utils.TI18N("护送次数:%d/%d"),num,totle);
|
if(!this.count){
|
this.count = Utils.createLabel(20,new cc.Color(0xff,0xff,0xff, 0xff),new cc.Color(0x74,0x35,0x0b,0xff),582,65,str,this.mainContainer,2,cc.v2(1,0.5));
|
}else{
|
this.count.string = str;
|
}
|
}
|
},
|
|
setData:function(data){
|
this.activityData = data;
|
// 只对萌受夺宝列表做判断
|
if(this.activityData.id == ActivityConst.limit_index.escort){
|
// this.is_double = EscortController.getInstance().getModel().isDoubleTimes();
|
this.changeEscortCount()
|
}
|
this.changeItemData(data);
|
// 引导使用,不要删
|
// if(data && data.id){
|
// this.setName("guide_activity_item_"+data.id)
|
// }
|
},
|
|
getData:function(){
|
return this.activityData;
|
},
|
|
addCallBack:function( value ){
|
this.callback = value;
|
},
|
|
// 注册事件监听的接口,不需要手动调用,如果是使用gcore.GlobalEvent监听,可以直接调用addGlobalEvent
|
registerEvent:function(){
|
Utils.onTouchEnd(this.btnRule, function () {
|
if(this.activityData.id == ActivityConst.limit_index.escort){
|
MainuiController.getInstance().openCommonExplainView(true, Config.EscortData.data_explain)
|
}else if(this.activityData.id == ActivityConst.limit_index.union){
|
MainuiController.getInstance().openCommonExplainView(true, Config.GuildDunData.data_explain)
|
}else if(this.activityData.id == ActivityConst.limit_index.fightFirst){
|
|
}else if(this.activityData.id == ActivityConst.limit_index.allGod){
|
MainuiController.getInstance().openCommonExplainView(true, Config.ZsWarData.data_explain)
|
}else if(this.activityData.id == ActivityConst.limit_index.guildwar){
|
MainuiController.getInstance().openCommonExplainView(true, Config.GuildWarData.data_explain)
|
}else if(this.activityData.id == ActivityConst.limit_index.champion){
|
MainuiController.getInstance().openCommonExplainView(true, Config.ArenaChampionData.data_explain)
|
}else if(this.activityData.id == ActivityConst.limit_index.ladder){
|
MainuiController.getInstance().openCommonExplainView(true, Config.SkyLadderData.data_explain)
|
}
|
}.bind(this), 1)
|
|
//当用户点击的时候记录鼠标点击状态
|
this.root_wnd.on(cc.Node.EventType.TOUCH_START, function(event){
|
var touches = event.getTouches();
|
this.touch_began = touches[0].getDelta();
|
},this);
|
|
|
|
//当鼠标抬起的时候恢复状态
|
this.root_wnd.on(cc.Node.EventType.TOUCH_END, function(event){
|
var touches = event.getTouches();
|
this.touch_end = touches[0].getDelta();
|
var is_click = true;
|
if(this.touch_began!=null){
|
is_click = Math.abs(this.touch_end.x - this.touch_began.x) <= 20 &&
|
Math.abs(this.touch_end.y - this.touch_began.y) <= 20;
|
}
|
if(is_click == true){
|
Utils.playButtonSound(ButtonSound.Normal);
|
if(this.callback){
|
this.callback();
|
}
|
}
|
},this);
|
|
},
|
|
updateRedStatus:function(){
|
if(this.activityData){
|
var red_status = false;
|
if(this.activityData.id == ActivityConst.limit_index.escort){
|
// red_status = EscortController:getInstance():getModel():checkRedStatus()
|
}else if(this.activityData.id == ActivityConst.limit_index.union){
|
if(GuildBossController.getInstance().getModel().getChangeCount() == true &&
|
this.ctrl.getBossActivityDoubleTime() == true &&
|
this.ctrl.getFirstComeGuild() == true ){
|
red_status = true;
|
}
|
}else if(this.activityData.id == ActivityConst.limit_index.guildwar){
|
// red_status = GuildwarController.getInstance().getModel().checkGuildGuildWarRedStatus();
|
}else if(this.activityData.id == ActivityConst.limit_index.ladder){
|
// red_status = LadderController.getInstance().getModel().checkLadderRedStatus();
|
}
|
this.redPoint.active = red_status;
|
}
|
},
|
|
changeItemData:function(data){
|
if(data.val[0]){
|
for(var i in data.val[0]){
|
if(!this.list_item[i]){
|
var item = ItemsPool.getInstance().getItem("backpack_item");
|
if(this.mainContainer){
|
item.setParent(this.mainContainer)
|
}
|
this.list_item[i] = item;
|
}
|
if(this.list_item[i]){
|
this.list_item[i].initConfig(false, 0.5, false, true);
|
this.list_item[i].show();
|
this.list_item[i].setPosition(40*i + (24*i-1), 67);
|
this.list_item[i].setData(data.val[0][i]);
|
// this.list_item[i].setDoubleIcon(this.is_double);
|
}
|
}
|
}
|
this.limitItemData(data);
|
if(data.desc){
|
if(this.textTimeStart){
|
this.textTimeStart.string = data.desc;
|
this.textTimeStart.node.active = true;
|
}
|
}
|
},
|
|
// 限时活动子项
|
limitItemData:function(data){
|
var RoleController = require("role_controller");
|
var role_vo = RoleController.getInstance().getRoleVo();
|
var res = PathTool.getIconPath("activity/activity_big", "txt_cn_activity_item_"+data.id, false, false);
|
this.loadRes(res, (function(resObject){
|
this.itemBG.getComponent(cc.Sprite).spriteFrame = resObject;
|
}).bind(this));
|
|
if(data.is_open == 1){
|
var _bool = MainuiController.getInstance().checkIsOpenByActivate(data.activate);
|
if(_bool == true){
|
this.handleEffect(true);
|
this.itemMask.active = false;
|
if(this.btnRule){
|
this.btnRule.active = true;
|
}
|
if(data.id == ActivityConst.limit_index.union){
|
if(role_vo.gname == ""){
|
this.textLimit.string = Utils.TI18N("当前未加入公会");
|
this.handleEffect(false);
|
}
|
}
|
}else{
|
this.handleEffect(false);
|
if(this.btnRule){
|
this.btnRule.active = false;
|
}
|
this.textLimit.string = data.lock_desc;
|
}
|
}else{
|
if(data.id == ActivityConst.limit_index.union){
|
if(role_vo.gname != ""){
|
this.textLimit.string = Utils.TI18N("公会副本玩法暂未开启");
|
}
|
}
|
}
|
},
|
|
|
|
handleEffect:function(status){
|
if(status == false){
|
if(this.play_effect){
|
this.play_effect.setToSetupPose();
|
this.play_effect.clearTracks();
|
this.play_effect = null;
|
}
|
}else{
|
if(this.mainContainer && this.play_effect == null){
|
var node = new cc.Node();
|
node.setAnchorPoint(1,0)
|
node.setPosition(this.itemBG.getContentSize().width-106, 28);
|
this.mainContainer.addChild(node,1);
|
|
this.play_effect = node.addComponent(sp.Skeleton);
|
var anima_path = PathTool.getSpinePath(PathTool.getEffectRes(505), "action");
|
LoaderManager.getInstance().loadRes(anima_path, function(ske_data) {
|
if(this.play_effect){
|
this.play_effect.skeletonData = ske_data;
|
this.play_effect.setAnimation(0, PlayerAction.action, true);
|
}
|
}.bind(this));
|
}
|
}
|
},
|
|
// 预制体加载完成之后,添加到对应主节点之后的回调可以设置一些数据了
|
onShow:function(params){
|
|
},
|
|
// 面板设置不可见的回调,这里做一些不可见的屏蔽处理
|
onHide:function(){
|
|
},
|
|
|
// 当面板从主节点释放掉的调用接口,需要手动调用,而且也一定要调用
|
onDelete:function(){
|
if(this.list_item && Utils.next(this.list_item)!=null){
|
for(var i in this.list_item){
|
if(this.list_item[i].deleteMe){
|
this.list_item[i].deleteMe()
|
}
|
}
|
}
|
this.list_item = [];
|
this.handleEffect(false);
|
this.count = null;
|
},
|
})
|