import { Data } from "../core/data/Data"; import { DataSystem } from "../core/data/DataSystem"; import { Http, HttpResponseCode } from "../core/net/Http"; import { ConfigData } from "../data/ConfigData"; import { RedPointData } from "../main/RedPointData"; export class FightData extends Data { /**总秒伤 包括自己*/ totalAttack: number; /**好友数据*/ friendDataList: Array = []; /**pvp数据*/ pvpData: PvpData; /**攻击红包数据*/ attackBonusList: Array = []; /**被攻击红包数据*/ beAttackBonusList: Array = []; /**被攻击通知数据*/ beAttackNoticeList: Array = []; /**是否被攻击*/ beAttack: boolean; /**复仇成功的敌人Id*/ revengeSuccessEnemyId: number; /**挑战成功的好友Id*/ challengeSuccessFriendId: number; /**拉取数据*/ public async pull(http: Http) { let pvpData = await http.send("/api/pvp/GetPVPData"); let friendData = await http.send("/api/pvp/GetFriend"); let pvpRedbagData = await http.send("/api/pvp/GetPVPBonus"); if (friendData && friendData.code == HttpResponseCode.Success) { this.totalAttack = friendData.data.totalAttack; this.friendDataList = friendData.data.friendDatas; } if (pvpData && pvpData.code == HttpResponseCode.Success) { this.pvpData = pvpData.data; } if (pvpRedbagData && pvpRedbagData.code == HttpResponseCode.Success) { this.attackBonusList = pvpRedbagData.data.attackBonusList; this.beAttackBonusList = pvpRedbagData.data.beAttackBonusList; for (let i = 0; i < this.beAttackBonusList.length; i++) { if (this.beAttackBonusList[i].revengedNoticeTime == 0) { this.beAttackNoticeList.push(this.beAttackBonusList[i]); } } } this.pvpData.challengeWinUserIDList.length >= DataSystem.getData(ConfigData).get("battle").challengeWinTimes && !this.pvpData.receivedChallengeReward && (DataSystem.getData(RedPointData).canReceiveFightBox = true) } } export interface PvpData { /**剩余次数*/ times: number; /**剩余可以观看视频的次数*/ videoTimes: number; /**观看视频已经增加的次数*/ addVideoTimes: number; /**是否已领取好友挑战奖励*/ receivedChallengeReward: boolean; /**已经被我挑战胜利的好友ID列表*/ challengeWinUserIDList: Array; } /**好友信息*/ export interface FriendData { /**好友id*/ id: number; /**兵营等级*/ campLv: number; /**战力 秒伤*/ attack: number; /**昵称*/ nickName: string; /**头像*/ avator: string; /**好友英雄ID*/ heroID: number; /**贡献值*/ contribution: number; } /**攻击红包*/ export interface AttackBonusData { /**红包编号*/ key: string; /**对手ID*/ enemyID: number; /**对手姓名*/ nickName: string; /**头像*/ avator: string; /**战力 秒伤*/ attack: number; /**红包可以打开的时间点(秒)*/ canOpenTime: number; } /**被攻击红包*/ export interface BeAttackBonusData { /**红包编号*/ key: string; /**对手ID*/ enemyID: number; /**对手姓名*/ nickName: string; /**头像*/ avator: string; /**战力 秒伤*/ attack: number; /**红包可以打开的时间点(秒)*/ canOpenTime: number; /**红包的创建时间点(秒)*/ createTime: number; /**打开人的ID(id>0 则红包界面不显示)*/ openID: number; /**是否已复仇(true 则复仇界面不显示)*/ revenged: boolean; /**复仇通知时间(0 则需要提示玩家被攻击了)*/ revengedNoticeTime: number; /**损失的类型(money粮草,diamond元宝,bonus红包币,prestige威望)*/ lossType: string; /**损失的数量*/ lossNum: number; } /**切磋item数据*/ export class FightItemData { id: number; attack: number; nickName: string; avator: string; /**是否是随机玩家*/ isRandomPlayer: boolean; /**item数据类型 1 切磋 2 复仇*/ itemType: number; /**红包类型 -1 没有红包 1 攻击红包 2 被攻击红包*/ redbagType: number; /**红包编号 如果有红包*/ redbagKey: string; /**红包数据 可能是攻击红包 可能是被攻击红包*/ redbagData: any; /**可以打开的时间点*/ canOpenTime: number; }