FightData.ts 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. import { Data } from "../core/data/Data";
  2. import { DataSystem } from "../core/data/DataSystem";
  3. import { Http, HttpResponseCode } from "../core/net/Http";
  4. import { ConfigData } from "../data/ConfigData";
  5. import { RedPointData } from "../main/RedPointData";
  6. export class FightData extends Data {
  7. /**总秒伤 包括自己*/
  8. totalAttack: number;
  9. /**好友数据*/
  10. friendDataList: Array<FriendData> = [];
  11. /**pvp数据*/
  12. pvpData: PvpData;
  13. /**攻击红包数据*/
  14. attackBonusList: Array<AttackBonusData> = [];
  15. /**被攻击红包数据*/
  16. beAttackBonusList: Array<BeAttackBonusData> = [];
  17. /**被攻击通知数据*/
  18. beAttackNoticeList: Array<BeAttackBonusData> = [];
  19. /**是否被攻击*/
  20. beAttack: boolean;
  21. /**复仇成功的敌人Id*/
  22. revengeSuccessEnemyId: number;
  23. /**挑战成功的好友Id*/
  24. challengeSuccessFriendId: number;
  25. /**拉取数据*/
  26. public async pull(http: Http) {
  27. let pvpData = await http.send("/api/pvp/GetPVPData");
  28. let friendData = await http.send("/api/pvp/GetFriend");
  29. let pvpRedbagData = await http.send("/api/pvp/GetPVPBonus");
  30. if (friendData && friendData.code == HttpResponseCode.Success) {
  31. this.totalAttack = friendData.data.totalAttack;
  32. this.friendDataList = friendData.data.friendDatas;
  33. }
  34. if (pvpData && pvpData.code == HttpResponseCode.Success) {
  35. this.pvpData = pvpData.data;
  36. }
  37. if (pvpRedbagData && pvpRedbagData.code == HttpResponseCode.Success) {
  38. this.attackBonusList = pvpRedbagData.data.attackBonusList;
  39. this.beAttackBonusList = pvpRedbagData.data.beAttackBonusList;
  40. for (let i = 0; i < this.beAttackBonusList.length; i++) {
  41. if (this.beAttackBonusList[i].revengedNoticeTime == 0) {
  42. this.beAttackNoticeList.push(this.beAttackBonusList[i]);
  43. }
  44. }
  45. }
  46. this.pvpData.challengeWinUserIDList.length >= DataSystem.getData(ConfigData).get("battle").challengeWinTimes && !this.pvpData.receivedChallengeReward
  47. && (DataSystem.getData(RedPointData).canReceiveFightBox = true)
  48. }
  49. }
  50. export interface PvpData {
  51. /**剩余次数*/
  52. times: number;
  53. /**剩余可以观看视频的次数*/
  54. videoTimes: number;
  55. /**观看视频已经增加的次数*/
  56. addVideoTimes: number;
  57. /**是否已领取好友挑战奖励*/
  58. receivedChallengeReward: boolean;
  59. /**已经被我挑战胜利的好友ID列表*/
  60. challengeWinUserIDList: Array<number>;
  61. }
  62. /**好友信息*/
  63. export interface FriendData {
  64. /**好友id*/
  65. id: number;
  66. /**兵营等级*/
  67. campLv: number;
  68. /**战力 秒伤*/
  69. attack: number;
  70. /**昵称*/
  71. nickName: string;
  72. /**头像*/
  73. avator: string;
  74. /**好友英雄ID*/
  75. heroID: number;
  76. /**贡献值*/
  77. contribution: number;
  78. }
  79. /**攻击红包*/
  80. export interface AttackBonusData {
  81. /**红包编号*/
  82. key: string;
  83. /**对手ID*/
  84. enemyID: number;
  85. /**对手姓名*/
  86. nickName: string;
  87. /**头像*/
  88. avator: string;
  89. /**战力 秒伤*/
  90. attack: number;
  91. /**红包可以打开的时间点(秒)*/
  92. canOpenTime: number;
  93. }
  94. /**被攻击红包*/
  95. export interface BeAttackBonusData {
  96. /**红包编号*/
  97. key: string;
  98. /**对手ID*/
  99. enemyID: number;
  100. /**对手姓名*/
  101. nickName: string;
  102. /**头像*/
  103. avator: string;
  104. /**战力 秒伤*/
  105. attack: number;
  106. /**红包可以打开的时间点(秒)*/
  107. canOpenTime: number;
  108. /**红包的创建时间点(秒)*/
  109. createTime: number;
  110. /**打开人的ID(id>0 则红包界面不显示)*/
  111. openID: number;
  112. /**是否已复仇(true 则复仇界面不显示)*/
  113. revenged: boolean;
  114. /**复仇通知时间(0 则需要提示玩家被攻击了)*/
  115. revengedNoticeTime: number;
  116. /**损失的类型(money粮草,diamond元宝,bonus红包币,prestige威望)*/
  117. lossType: string;
  118. /**损失的数量*/
  119. lossNum: number;
  120. }
  121. /**切磋item数据*/
  122. export class FightItemData {
  123. id: number;
  124. attack: number;
  125. nickName: string;
  126. avator: string;
  127. /**是否是随机玩家*/
  128. isRandomPlayer: boolean;
  129. /**item数据类型 1 切磋 2 复仇*/
  130. itemType: number;
  131. /**红包类型 -1 没有红包 1 攻击红包 2 被攻击红包*/
  132. redbagType: number;
  133. /**红包编号 如果有红包*/
  134. redbagKey: string;
  135. /**红包数据 可能是攻击红包 可能是被攻击红包*/
  136. redbagData: any;
  137. /**可以打开的时间点*/
  138. canOpenTime: number;
  139. }