| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419 |
- cc.Class({
- extends: cc.Component,
- properties: {
- GameStates: {
- default: null,
- type: cc.Node,
- serializable: true,
- },
- GameConfig: {
- default: null,
- type: cc.Node,
- serializable: true,
- },
- VarietyShow: {
- default: null,
- type: cc.Node,
- serializable: true,
- },
- Interview: {
- default: null,
- type: cc.Node,
- serializable: true,
- },
- Movie: {
- default: null,
- type: cc.Node,
- serializable: true,
- },
- HangOut: {
- default: null,
- type: cc.Node,
- serializable: true,
- },
- },
- OnActive()
- {
- //Game Logic
- this.GameConfigScript = this.GameConfig.getComponent('GameConfig');
- this.GameStatesScript = this.GameStates.getComponent('GameStates');
- //VarietyShow
- //Button
- this.VarietyShowStartBtn = this.VarietyShow.getChildByName('UnlockBtn').getChildByName('StartCourseBtn');
- this.VarietyShowFinishBtn = this.VarietyShow.getChildByName('UnlockBtn').getChildByName('FinishBtn');
- //TotalTime
- this.VarietyShowTotalTimeLabel = this.VarietyShow.getChildByName('Panel').getChildByName('TotalTimeLabel');
- this.VarietyShowTotalTimeScript = this.VarietyShow.getChildByName('Panel').getChildByName('TotalTimeLabel').getComponent('ChangeTimeAndProgressBar');
- //ProgressBar
- this.VarietyShowProgressBar = this.VarietyShow.getChildByName('Panel').getChildByName('ProgressBar');
- //Interview
- //Button
- this.InterviewStartBtn = this.Interview.getChildByName('UnlockBtn').getChildByName('StartCourseBtn');
- this.InterviewFinishBtn = this.Interview.getChildByName('UnlockBtn').getChildByName('FinishBtn');
- //TotalTime
- this.InterviewTotalTimeLabel = this.Interview.getChildByName('Panel').getChildByName('TotalTimeLabel');
- this.InterviewTotalTimeScript = this.Interview.getChildByName('Panel').getChildByName('TotalTimeLabel').getComponent('ChangeTimeAndProgressBar');
- //ProgressBar
- this.InterviewProgressBar = this.Interview.getChildByName('Panel').getChildByName('ProgressBar');
- //Movie
- //Button
- this.MovieStartBtn = this.Movie.getChildByName('UnlockBtn').getChildByName('StartCourseBtn');
- this.MovieFinishBtn = this.Movie.getChildByName('UnlockBtn').getChildByName('FinishBtn');
- //TotalTime
- this.MovieTotalTimeLabel = this.Movie.getChildByName('Panel').getChildByName('TotalTimeLabel');
- this.MovieTotalTimeScript = this.Movie.getChildByName('Panel').getChildByName('TotalTimeLabel').getComponent('ChangeTimeAndProgressBar');
- //ProgressBar
- this.MovieProgressBar = this.Movie.getChildByName('Panel').getChildByName('ProgressBar');
- //HangOut
- //Button
- this.HangOutStartBtn = this.HangOut.getChildByName('UnlockBtn').getChildByName('StartCourseBtn');
- this.HangOutFinishBtn = this.HangOut.getChildByName('UnlockBtn').getChildByName('FinishBtn');
- //TotalTime
- this.HangOutTotalTimeLabel = this.HangOut.getChildByName('Panel').getChildByName('TotalTimeLabel');
- this.HangOutTotalTimeScript = this.HangOut.getChildByName('Panel').getChildByName('TotalTimeLabel').getComponent('ChangeTimeAndProgressBar');
- //ProgressBar
- this.HangOutProgressBar = this.HangOut.getChildByName('Panel').getChildByName('ProgressBar');
- this.ShowDefaultUIState();
- },
- ShowDefaultUIState()
- {
- this.GetRemainTime(function () {
- // VarietyShow
- if( this.GameStatesScript.VarietyShowRemainTime>0)
- {
- this.VarietyShowFinishBtn.active=true;
- this.VarietyShowFinishBtn.getComponent(cc.Button).interactable = false;
- this.VarietyShowStartBtn.active = false;
- this.ShowProgressBar('VarietyShow');
- }
- else
- {
- if(this.GameStatesScript.BVarietyShowFinished)
- {
- this.VarietyShowFinishBtn.active=false;
- this.VarietyShowStartBtn.active = true;
- this.VarietyShowTotalTimeLabel.getComponent(cc.Label).string = this.CastSecondsToHours(this.GameConfigScript.VarietyShowTotalTime);
- }
- else {
- this.VarietyShowFinishBtn.active=true;
- this.VarietyShowFinishBtn.getComponent(cc.Button).interactable = true;
- this.VarietyShowStartBtn.active = false;
- this.VarietyShowTotalTimeLabel.getComponent(cc.Label).string = this.CastSecondsToHours(0);
- }
- }
- // Interview
- if( this.GameStatesScript.InterviewRemainTime>0)
- {
- this.InterviewFinishBtn.active=true;
- this.InterviewFinishBtn.getComponent(cc.Button).interactable = false;
- this.InterviewStartBtn.active = false;
- this.ShowProgressBar('Interview');
- }
- else
- {
- if(this.GameStatesScript.BInterviewFinished)
- {
- this.InterviewFinishBtn.active=false;
- this.InterviewStartBtn.active = true;
- this.InterviewTotalTimeLabel.getComponent(cc.Label).string = this.CastSecondsToHours(this.GameConfigScript.InterviewTotalTime);
- }
- else {
- this.InterviewFinishBtn.active=true;
- this.InterviewFinishBtn.getComponent(cc.Button).interactable = true;
- this.InterviewStartBtn.active = false;
- this.InterviewTotalTimeLabel.getComponent(cc.Label).string = this.CastSecondsToHours(0);
- }
- }
- // Movie
- if( this.GameStatesScript.MovieRemainTime>0)
- {
- this.MovieFinishBtn.active=true;
- this.MovieFinishBtn.getComponent(cc.Button).interactable = false;
- this.MovieStartBtn.active = false;
- this.ShowProgressBar('Movie');
- }
- else
- {
- if(this.GameStatesScript.BMovieFinished)
- {
- this.MovieFinishBtn.active=false;
- this.MovieStartBtn.active = true;
- this.MovieTotalTimeLabel.getComponent(cc.Label).string = this.CastSecondsToHours(this.GameConfigScript.MovieTotalTime);
- }
- else {
- this.MovieFinishBtn.active=true;
- this.MovieFinishBtn.getComponent(cc.Button).interactable = true;
- this.MovieStartBtn.active = false;
- this.MovieTotalTimeLabel.getComponent(cc.Label).string = this.CastSecondsToHours(0);
- }
- }
- // HangOut
- if( this.GameStatesScript.HangOutRemainTime>0)
- {
- this.HangOutFinishBtn.active=true;
- this.HangOutFinishBtn.getComponent(cc.Button).interactable = false;
- this.HangOutStartBtn.active = false;
- this.ShowProgressBar('HangOut');
- }
- else
- {
- if(this.GameStatesScript.BHangOutFinished)
- {
- this.HangOutFinishBtn.active=false;
- this.HangOutStartBtn.active = true;
- this.HangOutTotalTimeLabel.getComponent(cc.Label).string = this.CastSecondsToHours(this.GameConfigScript.HangOutTotalTime);
- }
- else {
- this.HangOutFinishBtn.active=true;
- this.HangOutFinishBtn.getComponent(cc.Button).interactable = true;
- this.HangOutStartBtn.active = false;
- this.HangOutTotalTimeLabel.getComponent(cc.Label).string = this.CastSecondsToHours(0);
- }
- }
- }.bind(this));
- },
- GetRemainTime(CallBack)
- {
- let URL = this.GameConfigScript.Host+'GameEvent/GetEventRemainTime?Openid='+ cc.sys.localStorage.getItem('Openid');
- let XHR = new XMLHttpRequest();
- XHR.onreadystatechange = function () {
- if (XHR.readyState == 4 && (XHR.status >= 200 && XHR.status < 400)) {
- let response = XHR.responseText;
- // console.log(response);
- let ResultJson = JSON.parse(response);
- // VarietyShow
- this.GameStatesScript.VarietyShowRemainTime = ResultJson.VarietyShowRemainTime;
- this.GameStatesScript.BVarietyShowFinished = ResultJson.BVarietyShowFinished;
- // Interview
- this.GameStatesScript.InterviewRemainTime = ResultJson.InterviewRemainTime;
- this.GameStatesScript.BInterviewFinished = ResultJson.BInterviewFinished;
- // Movie
- this.GameStatesScript.MovieRemainTime = ResultJson.MovieRemainTime;
- this.GameStatesScript.BMovieFinished = ResultJson.BMovieFinished;
- // HangOut
- this.GameStatesScript.HangOutRemainTime = ResultJson.HangOutRemainTime;
- this.GameStatesScript.BHangOutFinished = ResultJson.BHangOutFinished;
- CallBack();
- }
- }.bind(this);
- XHR.open("GET", URL, true);
- XHR.setRequestHeader("Content-Type" , "application/json");
- XHR.send();
- },
- OnStar(event, customEventData)
- {
- let CourseName = customEventData;
- let Data = 'Openid'+ cc.sys.localStorage.getItem('Openid');
- let URL = this.GameConfigScript.Host+'GameEvent/Start'+CourseName+'/';
- let XHR = new XMLHttpRequest();
- XHR.onreadystatechange = function ()
- {
- if (XHR.readyState == 4 && (XHR.status >= 200 && XHR.status < 400))
- {
- let response = XHR.responseText;
- // console.log(response);
- if(CourseName == 'VarietyShow')
- {
- this.VarietyShowFinishBtn.active = true;
- this.VarietyShowFinishBtn.getComponent(cc.Button).interactable = false;
- this.VarietyShowStartBtn.active = false;
- }
- else if(CourseName == 'Interview')
- {
- this.InterviewFinishBtn.active = true;
- this.InterviewFinishBtn.getComponent(cc.Button).interactable = false;
- this.InterviewStartBtn.active = false;
- }
- else if(CourseName == 'Movie')
- {
- this.MovieFinishBtn.active = true;
- this.MovieFinishBtn.getComponent(cc.Button).interactable = false;
- this.MovieStartBtn.active = false;
- }
- else if(CourseName == 'HangOut')
- {
- this.HangOutFinishBtn.active = true;
- this.HangOutFinishBtn.getComponent(cc.Button).interactable = false;
- this.HangOutStartBtn.active = false;
- }
- this.UpdateGameStates(response);
- this.GetRemainTime(function () {
- this.ShowProgressBar(CourseName);
- }.bind(this));
- }
- }.bind(this);
- XHR.open("POST", URL, false);
- XHR.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
- XHR.send(Data);
- },
- ShowProgressBar(CourseName)
- {
- let CourseScript = null;
- let TotalTime = 0;
- let RemainTime = 0;
- if(CourseName=='VarietyShow')
- {
- this.VarietyShowProgressBar.active = true;
- CourseScript = this.VarietyShowTotalTimeScript;
- TotalTime= this.GameConfigScript.VarietyShowTotalTime;
- RemainTime = this.GameStatesScript.VarietyShowRemainTime;
- }
- else if(CourseName=='Interview')
- {
- this.InterviewProgressBar.active = true;
- CourseScript = this.InterviewTotalTimeScript;
- TotalTime= this.GameConfigScript.InterviewTotalTime;
- RemainTime = this.GameStatesScript.InterviewRemainTime;
- }
- else if(CourseName=='Movie')
- {
- this.MovieProgressBar.active = true;
- CourseScript = this.MovieTotalTimeScript;
- TotalTime= this.GameConfigScript.MovieTotalTime;
- RemainTime = this.GameStatesScript.MovieRemainTime;
- }
- else if(CourseName=='HangOut')
- {
- this.HangOutProgressBar.active = true;
- CourseScript = this.HangOutTotalTimeScript;
- TotalTime= this.GameConfigScript.HangOutTotalTime;
- RemainTime = this.GameStatesScript.HangOutRemainTime;
- }
- // 重复次数
- let Repeat = cc.REPEAT_FOREVER;
- // 以秒为单位的时间间隔
- let Interval = 1;
- // 开始延时
- let Delay = 0.01;
- let Index = Math.floor(RemainTime);
- let StartCourseSchedule = function()
- {
- Index--;
- CourseScript.SetProgressBar(Index,TotalTime);
- if(0==Index)
- {
- this.FinishCallBack(CourseName);
- this.unschedule(StartCourseSchedule);
- }
- }.bind(this);
- this.schedule(StartCourseSchedule, Interval, Repeat-1, Delay);
- },
- FinishCallBack(CourseName)
- {
- // console.log(CourseName)
- if(CourseName=='VarietyShow')
- {
- this.VarietyShowFinishBtn.getComponent(cc.Button).interactable = true;
- this.VarietyShowProgressBar.active = false;
- }
- else if(CourseName=='Interview')
- {
- this.InterviewFinishBtn.getComponent(cc.Button).interactable = true;
- this.InterviewProgressBar.active = false;
- }
- else if(CourseName=='Movie')
- {
- this.MovieFinishBtn.getComponent(cc.Button).interactable = true;
- this.MovieProgressBar.active = false;
- }
- else if(CourseName=='HangOut')
- {
- this.HangOutFinishBtn.getComponent(cc.Button).interactable = true;
- this.HangOutProgressBar.active = false;
- }
- },
- OnFinished(event, customEventData)
- {
- let CourseName = customEventData;
- if(CourseName=='VarietyShow')
- {
- this.VarietyShowFinishBtn.active = false;
- this.VarietyShowStartBtn.active = true;
- this.VarietyShowTotalTimeLabel.getComponent(cc.Label).string = this.CastSecondsToHours(this.GameConfigScript.VarietyShowTotalTime);
- }
- else if(CourseName=='Interview')
- {
- this.InterviewFinishBtn.active = false;
- this.InterviewStartBtn.active = true;
- this.InterviewTotalTimeLabel.getComponent(cc.Label).string = this.CastSecondsToHours(this.GameConfigScript.InterviewTotalTime);
- }
- else if(CourseName=='Movie')
- {
- this.MovieFinishBtn.active = false;
- this.MovieStartBtn.active = true;
- this.MovieTotalTimeLabel.getComponent(cc.Label).string = this.CastSecondsToHours(this.GameConfigScript.MovieTotalTime);
- }
- else if(CourseName=='HangOut')
- {
- this.HangOutFinishBtn.active = false;
- this.HangOutStartBtn.active = true;
- this.HangOutTotalTimeLabel.getComponent(cc.Label).string = this.CastSecondsToHours(this.GameConfigScript.HangOutTotalTime);
- }
- let Data = 'Openid='+ cc.sys.localStorage.getItem('Openid');
- let URL = this.GameConfigScript.Host+'GameEvent/Finish'+CourseName+'/';
- // console.log(URL)
- let XHR = new XMLHttpRequest();
- XHR.onreadystatechange = function ()
- {
- if (XHR.readyState == 4 && (XHR.status >= 200 && XHR.status < 400))
- {
- let response = XHR.responseText;
- this.UpdateGameStates(response);
- }
- }.bind(this);
- XHR.open("POST", URL, false);
- XHR.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
- XHR.send(Data);
- },
- UpdateGameStates(response)
- {
- let GameStates = JSON.parse(response);
- // console.log(ResultJson);
- this.GameStatesScript.PlusActionPower(GameStates.ActionPower,false);
- this.GameStatesScript.PlusCoin(GameStates.Coin);
- this.GameStatesScript.PlusDiamond(GameStates.Diamond);
- this.GameStatesScript.PlusFans(GameStates.Fans);
- this.GameStatesScript.PlusFavorableImpression(GameStates.FavorableImpression);
- },
- CastSecondsToHours(Time)
- {
- if(Time<60) return Time+'秒';
- if(Time<3600 && Time >=60)
- {
- return Math.floor(Time/60)+'分'+Time%60+'秒';
- }
- if(Time>=3600)
- {
- let Hour = Math.floor(Time/3600);
- let s = Time%3600;
- let Min = Math.floor(s/60);
- return Hour+'小时'+Min+'分';
- }
- return Math.floor(Time/3600);
- }
- });
|