AccelerateMediator.ts 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. import { _decorator, Component, Node, ProgressBarComponent, LabelComponent } from 'cc';
  2. import BufferManager from '../../../engines/buffers/BufferManager';
  3. import IBuffer from '../../../engines/buffers/IBuffer';
  4. import { GUIManager } from '../../../engines/gui/GUIManager';
  5. import { GUIMediator } from '../../../engines/gui/GUIMediator';
  6. import { NoticeManager } from '../../../engines/notices/NoticeManager';
  7. import StringUtils from '../../../engines/utils/StringUtils';
  8. import { PlatformManager } from '../../../Platform/PlatformManager';
  9. import AccelerateBuffer from '../../buffers/AccelerateBuffer';
  10. import { GameModel } from '../../models/GameModel';
  11. import { UIConst } from '../UIConst';
  12. const { ccclass, property } = _decorator;
  13. @ccclass('AccelerateMediator')
  14. export class AccelerateMediator extends GUIMediator {
  15. @property({
  16. type:ProgressBarComponent
  17. })
  18. progressBar:ProgressBarComponent=null;
  19. @property({
  20. type:LabelComponent
  21. })
  22. timeLabel:LabelComponent=null;
  23. /**
  24. * 最大时间
  25. */
  26. private max:number=150*1000*10;
  27. OnShow(data?:any):void{
  28. super.OnShow(data);
  29. }
  30. OnHide():void{
  31. }
  32. DiamondButtonClickHandler():void{
  33. if(GameModel.single.diamond>20){
  34. if(this.CurrentBufferTime>=this.max){
  35. NoticeManager.ShowPrompt("加速时间已满!");
  36. return;
  37. }
  38. if(this.AddBuffer()){
  39. //扣钱
  40. GameModel.single.diamond-=20;
  41. this.CloseButtonClickHandler();
  42. }
  43. }else{
  44. NoticeManager.ShowPrompt("钻石不足");
  45. }
  46. }
  47. /**
  48. * 视频按钮点击
  49. */
  50. VideoButtonClickHandler():void{
  51. if(this.CurrentBufferTime>=this.max){
  52. NoticeManager.ShowPrompt("加速时间已满!");
  53. return;
  54. }
  55. PlatformManager.showRewardedVideo(()=>{
  56. this.AddBuffer();
  57. },()=>{
  58. NoticeManager.ShowPrompt("看视频失败");
  59. });
  60. }
  61. /**
  62. * 关闭按钮点击
  63. */
  64. CloseButtonClickHandler():void{
  65. GUIManager.single.Show(UIConst.PREPARE_UI);
  66. this.HideSelf();
  67. }
  68. private AddBuffer():boolean{
  69. let buffer:AccelerateBuffer=new AccelerateBuffer("Accelerate",150*1000);
  70. BufferManager.RunBuffer(buffer);
  71. return true;
  72. }
  73. private get CurrentBufferTime():number{
  74. let buffers:IBuffer[]=BufferManager.GetBufferGroup("Accelerate");
  75. if(buffers==null||buffers.length==0){
  76. return 0;
  77. }
  78. return buffers[0].GetTime();
  79. }
  80. update(dt:number):void{
  81. this.progressBar.progress=this.CurrentBufferTime/this.max;
  82. this.timeLabel.string=StringUtils.TimeFormatting(this.CurrentBufferTime,":",":",":","");
  83. super.update(dt);
  84. }
  85. }