BattleRedPacketWindow.ts 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import { _decorator, Component, Label, Node, Button } from 'cc';
  2. import { Http } from '../../core/net/Http';
  3. import { CountDown } from '../../core/ui/CountDown';
  4. import { WindowManager } from '../../core/ui/window/WindowManager';
  5. import { WindowOpenMode } from '../../core/ui/window/WindowOpenMode';
  6. import { Utils } from '../../core/utils/Utils';
  7. import { g } from '../../Data/g';
  8. import { FsUtils } from '../../FsUtils/FsUtils';
  9. const { ccclass, property } = _decorator;
  10. /**切磋红包 */
  11. @ccclass('BattleRedPacketWindow')
  12. export class BattleRedPacketWindow extends Component {
  13. @property({ type: Label, tooltip: "红包等级文本" })
  14. lvLabel: Label;
  15. @property({ type: Label, tooltip: "倒计时文本" })
  16. timeLabel: Label;
  17. @property({ type: Button, tooltip: "领取红包节点" })
  18. getRedPacketNode: Button;
  19. @property({ type: CountDown, tooltip: "倒计时组件" })
  20. redCountDown: CountDown;
  21. @property({ type: Http, tooltip: "消息控制" })
  22. http: Http;
  23. private progress: number = 0;
  24. private data: any;
  25. start() {
  26. this.getRedPacketNode.enabled = false;
  27. }
  28. private onOpenHandler(data: any) {
  29. this.data = data.data;
  30. this.lvLabel.string = this.data.lv + '级切磋红包'
  31. if (this.data.time * 1000 > Date.now()) {
  32. this.redCountDown.value = this.data.time - Math.ceil(Date.now() / 1000);
  33. this.timeLabel.string = FsUtils.formatBattleTime(this.redCountDown.value) + '后可抢该红包';;
  34. this.redCountDown.play();
  35. } else {
  36. this.getRedPacketNode.enabled = true;
  37. }
  38. }
  39. /**倒计时回调 */
  40. public onInterval(progress) {
  41. this.timeLabel.string = FsUtils.formatBattleTime(progress) + '后可抢该红包';
  42. }
  43. /**倒计时结束回调 */
  44. public onComplete() {
  45. this.getRedPacketNode.enabled = true;
  46. }
  47. /**点击抢红包 */
  48. private async getRedPacket() {
  49. let data = await this.http.send("/api/redPacket/OpenRedPacket", { redPacketID: this.data.redPacketID });
  50. if (data.code == 0) {
  51. for (let i = 0; i < g.gameData.myRedPacketDatas.length; i++) {
  52. if (this.data.redPacketID == g.gameData.myRedPacketDatas[i].id) {
  53. g.gameData.myRedPacketDatas.splice(i, 1);
  54. break;
  55. }
  56. }
  57. if (data.data.openID == g.userData.id) {//打开红包
  58. WindowManager.open("Prefabs/Windows/切磋红包奖品", WindowOpenMode.CloseAndAdd, [data.data.prizes]);
  59. g.gameData.hasNewRedPacketUpdate = true;
  60. // let _window = this.getComponent(OpenWindow);
  61. // _window.prefabPath = "Prefabs/Windows/切磋红包奖品";
  62. // _window.open([data.data.prizes]);
  63. } else {//红包被抢
  64. WindowManager.showTips('红包被抢了');
  65. }
  66. } else {
  67. WindowManager.showTips(g.CodeMsg[data.code]);
  68. }
  69. }
  70. }