RewardData.ts 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import { Data } from "../../../mk/data/Data";
  2. import { ExpAddType, RewardType } from "../GameData";
  3. /**
  4. * @description 奖励数据
  5. * @author 邹勇 薛鸿潇
  6. */
  7. export class RewardData extends Data {
  8. /** 增加的红包币 */
  9. public add_redbag_value: number = 0;
  10. private _data: Array<any> = [];
  11. /** 奖励列表 */
  12. set data(value: Array<any>) {
  13. this._data = value;
  14. }
  15. get data(): Array<any> {
  16. return this._data;
  17. }
  18. /** 回调函数 */
  19. public callback = null;
  20. /**
  21. * 气泡子红包类型
  22. * - 1 主界面气泡、关卡气泡
  23. * - 2 关卡消除
  24. */
  25. subType: number = 1;
  26. /**
  27. * 奖励添加
  28. */
  29. public addReward() {
  30. const i_count = gData.reward.data.length;
  31. for (let i = 0; i < i_count; i++) {
  32. if (gData.reward.data[i].rewardType == RewardType.redBag) {
  33. if (gData.reward.data[i].rewardNum) {
  34. gData.gameData.addHb = gData.reward.data[i].rewardNum;
  35. gData.gameData.playerProp.redMoney += gData.reward.data[i].rewardNum;
  36. }
  37. } else if (gData.reward.data[i].rewardType == RewardType.rmb) {
  38. // ?
  39. } else if (gData.reward.data[i].rewardType == RewardType.pigRmb) {
  40. if (gData.reward.data[i].rewardNum) {
  41. gData.gameData.playerProp.piggyBank += gData.reward.data[i].rewardNum;
  42. }
  43. }
  44. }
  45. gData.reward.data = [];
  46. }
  47. public flyCoinAnim(world_Pos: cc.Vec2 = null, isMatchOrder = false) {
  48. if (!gData.reward.data || !gData.reward.data.length) return;
  49. let is_add_money = true;
  50. const i_count = gData.reward.data.length;
  51. for (let i = 0; i < i_count; i++) {
  52. if (gData.reward.data[i].rewardType === RewardType.rmb) continue;
  53. if (gData.reward.data[i].rewardNum == 0) continue;
  54. mk.audio.playEffect('redmoney');
  55. let endPos = '';
  56. let num = 10;
  57. if(isMatchOrder)
  58. {
  59. num = 1;
  60. }
  61. let scale = -1;
  62. if( gData.reward.data[i].rewardType === RewardType.productTimes)
  63. {
  64. endPos = 'Canvas/主界面层/game/功能按钮/底部按钮/中间按钮';
  65. num = 5;
  66. scale = 0.5;
  67. }
  68. mk.fly.PlayCoinAnim(gData.reward.data[i].rewardType, num, world_Pos, endPos, () => {
  69. is_add_money && this.addReward();
  70. }, scale)
  71. }
  72. }
  73. public getReward(world_Pos: cc.Vec2, isMatchOrder = false)
  74. {
  75. //let world_Pos = this.node_hb.node.parent.convertToWorldSpaceAR(this.node_hb.node.getPosition());
  76. this.flyCoinAnim(world_Pos, isMatchOrder);
  77. if (this.callback) {
  78. this.callback();
  79. this.callback = null;
  80. }
  81. else {
  82. gData.farmGradeData.addGradeExp(ExpAddType.EAT_others, world_Pos);
  83. }
  84. }
  85. }