/****************************************************************** * * 七日特训 * ******************************************************************/ const ActPopup = require( "act.popup.base" ); const FxSVC = require( "nx.fx.sv.expand" ); const NxTog = require( "nx.fx.togs" ); const ActEvt = require( "action_event" ); const TipsController = require( "tips_controller" ); const ActTrainingMod = require("act.training7.mod"); const PathTool = require("pathtool"); const NxSpine = require("nx.fx.spine"); const FID = require( "bridge.function.ids" ); const themeMod = require( "acts.mod" ); cc.Class( { extends: ActPopup, properties: { roleSp:{ default:null, type:NxSpine }, //倒计时 endClock: { default: null, type: cc.Node }, //最终大奖 bestItem: { default: null, type: cc.Node }, itemList: { default: null, type: cc.Node }, fabGift: { default: null, type: cc.Node }, //縂點數 totalScore:{ default:null, type:cc.Label }, //分數記錄 score: { default: null, type: cc.Node }, //激活點數 activeSc: { default: null, type: cc.Node }, //點數進度條 scoreBar: { default: null, type: cc.ProgressBar }, DayTogs: { default: null, type: cc.Node }, togGroup:{ default:null, type:cc.ToggleContainer }, TaskTogs: { default: null, type: NxTog }, taskList:{ default:null, type:FxSVC }, shopNd:{ default:null, type:cc.Node }, shopList:{ default:null, type:cc.Node }, shopItem:{ default:null, type:cc.Node } }, // 初始化 onLoad: function( ) { this.mod = ActTrainingMod.getInstance(); this.upstar_data = game.configs.holiday_upstars_data; this.items = {}; this.buyItems = {}; this.currentDay = 1; this.initCurrentDay = 1; this.selectDay = 1; this.task_type = 0; this.TaskTogs.posTog = this.onTogTask.bind( this ); }, onOpenConfigs(_params){ this._super( _params ); this.bindInitEvt(); this.TaskTogs.togTo( 0 ); this.bindChain(); this.mod.sender13601(); this.setRoleEft(); }, setRoleEft(){ let role = gdata( this.mod.data.config, "data_constant" ).models_id.desc; let res_path = PathTool.getSpinePath( role,"show",false); this.roleSp.load(res_path,(_e)=>{ if(_e){ this.roleSp.stop(); }else{ this.roleSp.action("action1",true); } }); }, bindChain(){ let nds = this.DayTogs.children; for(let i=0;i this.currentDay){ this.togGroup.toggleItems[(this.selectDay - 1)].isChecked = true; return nx.tbox("lab_action_seven_goal_window_tip1"); } this.selectDay = day; this.upDaysTask(); }, onTogTask( _index ) { if(this.task_type == _index)return; this.task_type = _index; this.upDaysTask(); }, upSevenGoals( data ) { this.currentDay = data.cur_day; this.initCurrentDay = data.cur_day; // this.selectDay = data.cur_day; nx.gui.setCdTxt( this.endClock, "", data.end_time ); //处理点数奖励 this.upRewardGifts(); //更新点数 this.upScores( data.num ); //更新任務 this.upDaysTask(); //設置解鎖狀態 this.upClockDayBtns(); }, getTargetGoal(data) { //先排序 let index = 1; if(data.type == 1){ let limit_list = this.mod.getSevenGoalWelfareList(this.selectDay); for(let i in limit_list){ if(limit_list[i].goal_id = data.id){ index = i; break; } } this.mod.updataGoalWelfareList(data.day_type, index, data.status); this.addScore(data.day_type,data.type,data.id); }else if(data.type == 2){ let task_list = this.mod.getServerGrowListData(this.selectDay - 1); for(let j in task_list){ if(task_list[j].goal_id = data.id){ index = j; break; } } this.mod.updataGrowListData(data.day_type-1, index, data.status); this.addScore(data.day_type,data.type,data.id); }else if(data.type == 4){//商店不需要积分 let half_list = this.mod.getHalfGiftList(data.day_type); index = 1; for(var i in half_list){ if(half_list[i].day == data.id){ index = i; break; } } this.mod.updataHalfListData(data.day_type, index, data.status); }else if(data.type == 5){ this.upRewardGifts(); } //重新刷新 this.upDaysTask(); }, addScore(day,type,id){ if(!day || !type || !id){ return; } let data_list = null; let goal_data = {}; if(type == 2){ data_list = this.mod.getWalfareGrowUpData(day - 1); }else{ data_list = this.mod.getWalfareData(day); } for(let i in data_list){ if(id == data_list[i].goal_id){ goal_data = data_list[i]; break; } } //刷新分数 let last_score = Number(this.totalScore.string); this.upScores(last_score + goal_data.award2); }, upRewardGifts() { let all_target = this.mod.getBoxRewardData(); for( let i = 0; i < 6; i++ ) { let data = all_target[ i ]; if( data ) { let item = this.items[ i ]; if( !item ) { item = cc.instantiate( this.fabGift ); item.parent = this.itemList; item.y = 0; item.scale = 0.8; this.items[ i ] = item; } let cmp = nx.gui.getComponent( item, "", "cmp.item.base" ); if( cmp ) { cmp.setGoal( data ); cmp.setData( data.award[ 0 ] ); } } } let SevData = all_target[ 6 ]; if( !nx.dt.objEmpty( SevData ) ) { if( !this.finalGift ) { this.finalGift = cc.instantiate( this.fabGift ); this.finalGift.parent = this.bestItem; this.finalGift.x = 0; this.finalGift.y = 0; } let bestCmp = nx.gui.getComponent( this.finalGift, "", "cmp.item.base" ); if( bestCmp ) { bestCmp.setGoal( SevData ); bestCmp.setData( SevData.award[ 0 ] ); } } }, upScores( score ) { this.totalScore.string = score; let all_target = this.mod.getBoxRewardData(); // if( nx.dt.objEmpty( all_target ) ){ // return; // } for( let i = 0; i < all_target.length; i++ ) { let nd = nx.gui.find( this.score, String( i + 1 ) ); if( nd ) { let data = all_target[ i ]; if(!nx.dt.objEmpty(data)){ nx.gui.setString( nd, "exp", data.goal ); if( score >= data.goal ) { nx.gui.setActive( this.activeSc, String( i + 1 ),true ); } } } } if( all_target[ 6 ] ){ //總進度 let max_target = all_target[ 6 ].goal; this.scoreBar.progress = score / max_target; } }, upDaysTask(){ this.taskList.node.active = false; this.shopNd.active = false; if(this.task_type < 2){//任務列表 this.taskList.node.active = true; if(this.task_type == 0){//基礎任務 let task_list = this.mod.getServerGrowListData(this.selectDay - 1); this.mod.sortItemList(task_list); this.taskList.svcKey = "data_growthtarget"; this.taskList.rebuild(task_list); }else{//限時任務 let limit_list = this.mod.getSevenGoalWelfareList(this.selectDay); this.mod.sortItemList(limit_list); this.taskList.svcKey = "data_welfarecollection"; this.taskList.rebuild(limit_list); } }else{//商店 this.shopNd.active = true; let half_list = this.mod.getWelfareHalfData(this.selectDay); this.updateShopBuy(half_list); } }, upClockDayBtns(){ let cdn = this.DayTogs.children; for(let i=0;i= (i+1)){ let off = nx.gui.find(tog,"off"); nx.gui.setActive(off,"lock",false); } } }, updateShopBuy(datas){ for(let i in datas){ let data = datas[i]; let item = this.buyItems[i]; if(!item){ item = cc.instantiate(this.shopItem); item.parent = this.shopList; item.y = 0; this.buyItems[i] = item; } let cmp = nx.gui.getComponent(item,"","cmp.act.training7.buy"); cmp.setData(data); } }, // 规则说明 onTouchTip: function() { let TC = TipsController.getInstance(); if( TC ) { let txt = game.configs.day_goals_data.data_drama_explain[1]; TC.showTextPanel( "tip", txt.desc ); } }, } );