DropBoxMediator.ts 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. import { _decorator, Component, Node, SpriteComponent, LabelComponent, loader, SpriteFrame, assert, director } from 'cc';
  2. import { GUIManager } from '../../../engines/gui/GUIManager';
  3. import { GUIMediator } from '../../../engines/gui/GUIMediator';
  4. import { NoticeManager } from '../../../engines/notices/NoticeManager';
  5. import { MathUtils } from '../../../engines/utils/MathUtils';
  6. import StringUtils from '../../../engines/utils/StringUtils';
  7. import { PlatformManager } from '../../../Platform/PlatformManager';
  8. import GameConfigManager from '../../models/GameConfigManager';
  9. import { GameModel } from '../../models/GameModel';
  10. import { WeaponCell } from '../../models/weapons/WeaponCell';
  11. import { GameController } from '../fightings/GameController';
  12. import { UIConst } from '../UIConst';
  13. const { ccclass, property } = _decorator;
  14. @ccclass('DropBoxMediator')
  15. export class DropBoxMediator extends GUIMediator {
  16. @property({
  17. type:SpriteComponent
  18. })
  19. weaponIcon:SpriteComponent=null;
  20. @property({
  21. type:LabelComponent
  22. })
  23. weaponName:LabelComponent=null;
  24. @property({
  25. type:LabelComponent
  26. })
  27. diamondLabel:LabelComponent=null;
  28. @property({
  29. type:LabelComponent
  30. })
  31. goldLabel:LabelComponent=null;
  32. @property({
  33. type:Node
  34. })
  35. goldState:Node=null;
  36. @property({
  37. type:Node
  38. })
  39. weaponState:Node=null;
  40. diamond:number=20;
  41. gold:number=0;
  42. type:number;
  43. weaponID:number;
  44. isFigthing:boolean;
  45. OnShow(data?:any):void{
  46. super.OnShow(data);
  47. this.isFigthing=data;
  48. this.type=Math.random();
  49. //钱
  50. if(this.type<0.5){
  51. this.gold=GameModel.single.fullEarnings*5*60;
  52. //五分钟收益
  53. this.goldLabel.string=this.gold.toString();
  54. this.weaponState.active=false;
  55. this.goldState.active=true;
  56. }else{//枪
  57. this.weaponState.active=true;
  58. this.goldState.active=false;
  59. let weaponConfig:any=GameConfigManager.GetWeaponConfig(GameModel.single.synthesisMaxWeaponId);
  60. let maxLevel:number=weaponConfig.level;
  61. let minLevel:number=Math.max(1,maxLevel-3);
  62. let level:number=Math.floor(MathUtils.RandomRange(minLevel,maxLevel));
  63. weaponConfig=GameConfigManager.GetWeaponConfigByLevel(level);
  64. this.weaponID=weaponConfig.id;
  65. loader.loadRes(weaponConfig.icon+"/spriteFrame",SpriteFrame,(err,asset:SpriteFrame)=>{
  66. if(err!=null){
  67. console.log("图标加载错误:"+weaponConfig.icon);
  68. }
  69. this.weaponIcon.spriteFrame=asset;
  70. })
  71. this.weaponName.string=weaponConfig.name;
  72. }
  73. this.diamondLabel.string=this.diamond.toString();
  74. }
  75. OnHide():void{
  76. }
  77. DiamondButtonClickHandler():void{
  78. if(GameModel.single.diamond<this.diamond){
  79. NoticeManager.ShowPrompt("钻石不足!");
  80. return;
  81. }
  82. if(this.AddAward()){
  83. this.closeView();
  84. }
  85. }
  86. /**
  87. * 视频按钮点击
  88. */
  89. VideoButtonClickHandler():void{
  90. PlatformManager.showRewardedVideo(()=>{
  91. if(this.AddAward()){
  92. this.closeView();
  93. }
  94. },()=>{
  95. NoticeManager.ShowPrompt("看视频失败");
  96. });
  97. }
  98. private AddAward():boolean{
  99. if(this.type<0.5){
  100. GameModel.single.gold+=this.gold;
  101. NoticeManager.ShowPrompt("金币+"+StringUtils.numberUtilsEn(this.gold));
  102. }else{
  103. let cell:WeaponCell=GameModel.single.FindWeaponEmptyCell();
  104. if(cell){
  105. GameModel.single.AddWeapon(cell.cellId,this.weaponID);
  106. }else{
  107. return false;
  108. }
  109. }
  110. return true;
  111. }
  112. private closeView():void{
  113. if(this.isFigthing){
  114. GameController.single.PlayGame();
  115. }else{
  116. GUIManager.single.Show(UIConst.PREPARE_UI);
  117. }
  118. this.HideSelf();
  119. }
  120. CloseButtonClickHandler():void{
  121. this.closeView();
  122. }
  123. start () {
  124. // Your initialization goes here.
  125. }
  126. // update (deltaTime: number) {
  127. // // Your update function goes here.
  128. // }
  129. }