FreeFenceMediator.ts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. import { _decorator, Component, Node, JsonAsset, SpriteComponent, LabelComponent, loader, SpriteFrame } from 'cc';
  2. import { GUIManager } from '../../../engines/gui/GUIManager';
  3. import { GUIMediator } from '../../../engines/gui/GUIMediator';
  4. import { DataModelEventType } from '../../../engines/models/DataModelEventType';
  5. import { NoticeManager } from '../../../engines/notices/NoticeManager';
  6. import { SceneManager } from '../../../engines/scenes/SceneManager';
  7. import StringUtils from '../../../engines/utils/StringUtils';
  8. import { PlatformManager } from '../../../Platform/PlatformManager';
  9. import { WeChatPlatform } from '../../../Platform/WeChat/WeChatPlatform';
  10. import GameConfigManager from '../../models/GameConfigManager';
  11. import { GameModel } from '../../models/GameModel';
  12. import { GamePropertys } from '../../models/GamePropertys';
  13. import { UIConst } from '../UIConst';
  14. const { ccclass, property } = _decorator;
  15. @ccclass('FreeFenceMediator')
  16. export class FreeFenceMediator extends GUIMediator {
  17. @property({
  18. type: LabelComponent
  19. })
  20. glodLabel: LabelComponent = null;
  21. @property({
  22. type: LabelComponent
  23. })
  24. glodLabel1: LabelComponent = null;
  25. @property({
  26. type: LabelComponent
  27. })
  28. diamondLabel: LabelComponent = null;
  29. OnShow(data?:any):void{
  30. super.OnShow(data);
  31. this.AddEvent();
  32. this.RefreshGlod();
  33. this.RefreshDiamond();
  34. }
  35. OnHide():void{
  36. this.RemoveEvent();
  37. }
  38. private AddEvent():void{
  39. GameModel.single.AddEvent(DataModelEventType.PROPERTY_CHANGED, this, this.GameModelPropertyChanged, 0);
  40. }
  41. private RemoveEvent():void{
  42. GameModel.single.RemoveEvent(DataModelEventType.PROPERTY_CHANGED, this, this.GameModelPropertyChanged);
  43. }
  44. private GameModelPropertyChanged(key: string): void {
  45. switch (key) {
  46. case GamePropertys.gold:
  47. this.CallNextFrame(this.RefreshGlod.bind(this));
  48. break;
  49. case GamePropertys.diamond:
  50. this.CallNextFrame(this.RefreshDiamond.bind(this));
  51. break;
  52. }
  53. }
  54. private RefreshGlod(): void {
  55. if (this.glodLabel != null) {
  56. this.glodLabel.string = StringUtils.numberUtilsEn(GameModel.single.gold);
  57. }
  58. this.glodLabel1.string = StringUtils.numberUtilsEn(GameModel.single.fullEarnings) + "/秒";
  59. }
  60. private RefreshDiamond(): void {
  61. if (this.diamondLabel != null) {
  62. this.diamondLabel.string = GameModel.single.diamond.toString();
  63. }
  64. }
  65. /**
  66. * 视频按钮点击
  67. */
  68. VideoButtonClickHandler():void{
  69. PlatformManager.showRewardedVideo(()=>{
  70. GameModel.single.trialFenceId=30301;
  71. this.startGame();
  72. },()=>{
  73. NoticeManager.ShowPrompt("看视频失败");
  74. });
  75. }
  76. CloseButtonClickHandler():void{
  77. this.startGame();
  78. }
  79. private startGame():void{
  80. //隐藏
  81. GUIManager.single.Hide(UIConst.PREPARE_UI);
  82. this.HideSelf();
  83. PlatformManager.hideBanner();
  84. SceneManager.single.Swicth("FightingScene");
  85. let weChat = PlatformManager.impl as WeChatPlatform
  86. if(weChat instanceof WeChatPlatform){
  87. weChat.startBranchAnalytics(String(GameModel.single.currentLevel));
  88. }
  89. }
  90. start () {
  91. // Your initialization goes here.
  92. }
  93. // update (deltaTime: number) {
  94. // // Your update function goes here.
  95. // }
  96. }