@@ -82,6 +82,8 @@
@ property ( nonatomic , strong ) NSArray < RoomPKChooseUserModel * > * blueChooseArray ;
// / 是 否 收 到 了 Pk 的 结 果
@ property ( nonatomic , assign ) BOOL isReceivePKResult ;
// / pk 详 情
@ property ( nonatomic , strong ) RoomPKInfoModel * roomPKInfo ;
@ end
@@ -105,17 +107,17 @@
if ( attachment . second = = Custom_Message _Sub _Room _PK _Start ) {
[ XCHUDTool showSuccessWithMessage : @ "开始PK成功" ] ;
RoomPKInfoModel * pkInfo = [ RoomPKInfoModel modelWithDictionary : attachment . data ] ;
self . pkDetailInfo . roomPK = pkInfo ;
self . roomPKInfo = pkInfo ;
self . beginButton . hidden = YES ;
[ self startRoomPKCountDown : pkInfo . duration ] ;
[ self handleRoomPKInfoChangeState ] ;
} else if ( attachment . second = = Custom_Message _Sub _Room _PK _Mode _Open ) {
RoomPKInfoModel * pkInfo = [ RoomPKInfoModel modelWithDictionary : attachment . data ] ;
self . pkDetailInfo . roomPK = pkInfo ;
self . roomPKInfo = pkInfo ;
[ self handleRoomPKInfoChangeState ] ;
} else if ( attachment . second = = Custom_Message _Sub _Room _PK _Re _Start ) {
RoomPKInfoModel * pkInfo = [ RoomPKInfoModel modelWithDictionary : attachment . data ] ;
self . pkDetailInfo . roomPK = pkInfo ;
self . roomPKInfo = pkInfo ;
[ self handleRoomPKInfoChangeState ] ;
} else if ( attachment . second = = Custom_Message _Sub _Room _PK _Result ) {
[ TTPopup dismiss ] ;
@@ -125,11 +127,11 @@
[ self clearRoomPKTeamData ] ;
self . checkResultNum = 1 ;
if ( pkInfo . pkStatus = = RoomPKStatusType_ReStart ) { // / 重 新 开 始 了 需 要 重 新 赋 值
self . pkDetailInfo . roomPK = pkInfo ;
self . roomPKInfo = pkInfo ;
} else {
if ( [ pkInfo . pkId isEqualToString : self . pkDetailInfo . roomPK. pkId ] ) {
if ( [ pkInfo . pkId isEqualToString : self . roomPKInfo . pkId ] ) {
[ self clearRoomPKTeamData ] ;
self . pkDetailInfo . roomPK = pkInfo ;
self . roomPKInfo = pkInfo ;
[ self resetRoomPKGroupType ] ;
}
@@ -149,7 +151,7 @@
}
- ( void ) roomPKReceiveGift : ( AttachmentModel * ) attachment {
if ( self . pkDetailInfo . roomPK. pkStatus = = RoomPKStatusType_Playing ) {
if ( self . roomPKInfo . pkStatus = = RoomPKStatusType_Playing ) {
GiftReceiveInfoModel * giftReceiveInfo = [ GiftReceiveInfoModel modelWithJSON : attachment . data ] ;
GiftInfoModel * giftInfo = giftReceiveInfo . gift = = nil ? giftReceiveInfo . giftInfo : giftReceiveInfo . gift ;
if ( giftInfo = = nil ) {
@@ -157,7 +159,7 @@
}
if ( attachment . first = = CustomMessageType_AllMicroSend ) {
if ( attachment . second = = Custom_Message _Sub _AllBatchSend || attachment . second = = Custom_Message _Sub _AllMicroSend ) { // / 普 通 礼 物
if ( self . pkDetailInfo . roomPK. voteMode = = RoomPKVoteModeType_NumberPerson ) { // 按 送 礼 人 数 计 算
if ( self . roomPKInfo . voteMode = = RoomPKVoteModeType_NumberPerson ) { // 按 送 礼 人 数 计 算
NSArray * targetUids = [ giftReceiveInfo . targetUsers valueForKeyPath : @ "uid" ] ;
[ self canculeRoomPKSendGiftNumPerson : targetUids ] ;
} else {
@@ -170,7 +172,7 @@
GiftInfoModel * giftInfo = [ [ XPGiftStorage shareStorage ] findGiftInfo : [ NSString stringWithFormat : @ "%ld" , giftListInfo . giftId ] ] ;
goldPrice + = giftInfo . goldPrice * giftListInfo . giftNum ;
} ] ;
if ( self . pkDetailInfo . roomPK. voteMode = = RoomPKVoteModeType_NumberPerson ) { // 按 送 礼 人 数 计 算
if ( self . roomPKInfo . voteMode = = RoomPKVoteModeType_NumberPerson ) { // 按 送 礼 人 数 计 算
NSArray * targetUids = @ [ giftReceiveInfo . targetUid ] ;
[ self canculeRoomPKSendGiftNumPerson : targetUids ] ;
} else {
@@ -185,14 +187,14 @@
GiftInfoModel * giftInfo = [ [ XPGiftStorage shareStorage ] findGiftInfo : [ NSString stringWithFormat : @ "%ld" , giftListInfo . giftId ] ] ;
goldPrice + = giftInfo . goldPrice * giftListInfo . giftNum ;
} ] ;
if ( self . pkDetailInfo . roomPK. voteMode = = RoomPKVoteModeType_NumberPerson ) { // 按 送 礼 人 数 计 算
if ( self . roomPKInfo . voteMode = = RoomPKVoteModeType_NumberPerson ) { // 按 送 礼 人 数 计 算
NSArray * targetUids = @ [ [ NSString stringWithFormat : @ "%ld" , giftReceiveInfo . luckyGiftList . user . uid ] ] ;
[ self canculeRoomPKSendGiftNumPerson : targetUids ] ;
} else {
[ self canculeRoomGiftValueReceiveInfo : giftReceiveInfo giftPrice : goldPrice giftNumber : giftReceiveInfo . giftNum ] ;
}
} else {
if ( self . pkDetailInfo . roomPK. voteMode = = RoomPKVoteModeType_NumberPerson ) { // 按 送 礼 人 数 计 算
if ( self . roomPKInfo . voteMode = = RoomPKVoteModeType_NumberPerson ) { // 按 送 礼 人 数 计 算
NSArray * targetUids = @ [ giftReceiveInfo . targetUid ] ;
[ self canculeRoomPKSendGiftNumPerson : targetUids ] ;
} else {
@@ -209,18 +211,18 @@
[ Api getRoomPKDetail : ^ ( BaseModel * _Nullable data , NSInteger code , NSString * _Nullable msg ) {
if ( code = = 200 ) {
RoomPKDetailInfoModel * pkDetailInfo = [ RoomPKDetailInfoModel modelWithDictionary : data . data ] ;
self . pkDetail Info = pkDetailInfo ;
self . roomPK Info = pkDetailInfo . roomPK ;
[ self handleRoomPKInfoChangeState ] ;
if ( pkDetailInfo . roomPK . pkStatus = = RoomPKStatusType_Playing ) {
[ self startRoomPKCountDown : ( pkDetailInfo . roomPK . endTime - pkDetailInfo . now ) / 1000 ] ;
if ( self . roomPKInfo . pkStatus = = RoomPKStatusType_Playing ) {
[ self startRoomPKCountDown : ( self . roomPKInfo . endTime - pkDetailInfo . now ) / 1000 ] ;
}
NSMutableDictionary * queue = self . micQueue ;
// / 配 置 一 下 麦 序 的 信 息
NSMutableArray * redArray = [ NSMutableArray array ] ;
NSMutableArray * blueArray = [ NSMutableArray array ] ;
if ( pkDetailInfo . roomPK . pkStatus = = RoomPKStatusType_Playing ) {
for ( int i = 0 ; i < pkDetailInfo . roomPK . teams . count ; i + + ) {
RoomPKTeamModel * teamInfo = [ pkDetailInfo . roomPK . teams objectAtIndex : i ] ;
if ( self . roomPKInfo . pkStatus = = RoomPKStatusType_Playing ) {
for ( int i = 0 ; i < self . roomPKInfo . teams . count ; i + + ) {
RoomPKTeamModel * teamInfo = [ self . roomPKInfo . teams objectAtIndex : i ] ;
if ( teamInfo . team = = GroupType_Red ) {
self . redTeamScore = teamInfo . score ;
for ( int i = 0 ; i < teamInfo . teamMembers . count ; i + + ) {
@@ -369,8 +371,8 @@
if ( ! self . isReceivePKResult ) {
NSString * uid = [ AccountInfoStorage instance ] . getUid ;
NSString * roomUid = [ NSString stringWithFormat : @ "%ld" , self . roomInfo . uid ] ;
if ( self . pkDetailInfo . roomPK. pkId . length > 0 ) {
NSString * pkId = self . pkDetailInfo . roomPK. pkId ;
if ( self . roomPKInfo . pkId . length > 0 ) {
NSString * pkId = self . roomPKInfo . pkId ;
[ Api checkRoomPKResult : ^ ( BaseModel * _Nullable data , NSInteger code , NSString * _Nullable msg ) {
if ( code = = 200 ) {
self . checkResultNum = 1 ;
@@ -574,8 +576,8 @@
}
- ( void ) handleRoomPKInfoChangeState {
if ( self . pkDetail Info) {
switch ( _pkDetailInfo . roomPK . pkStatus ) {
if ( self . roomPK Info) {
switch ( _roomPKInfo . pkStatus ) {
case RoomPKStatusType_End :
self . beginButton . hidden = self . isManager ? NO : YES ;
break ;
@@ -583,7 +585,7 @@
{
[ TTPopup dismiss ] ;
self . beginButton . hidden = YES ;
self . roomPKPlayingView . pkDetailInfo = self . pkDetail Info;
self . roomPKPlayingView . pkDetailInfo = self . roomPK Info;
self . roomPKPlayingView . redChooseArray = self . redChooseArray ;
self . roomPKPlayingView . blueChooseArray = self . blueChooseArray ;
[ self . roomPKPlayingView configRedTeamScore : self . redTeamScore blueTeamScore : self . blueTeamScore ] ;
@@ -663,8 +665,8 @@
# pragma mark - XPRoomPKPanelUserViewDelegate
- ( void ) xPRoomPKPanelUserView : ( XPRoomPKPanelUserView * ) view didClickAddButton : ( GroupType ) type {
[ TTPopup dismiss ] ;
if ( self . pkDetailInfo . roomPK. pkStatus = = RoomPKStatusType_Playing ) {
self . roomPKPlayingView . pkDetailInfo = self . pkDetail Info;
if ( self . roomPKInfo . pkStatus = = RoomPKStatusType_Playing ) {
self . roomPKPlayingView . pkDetailInfo = self . roomPK Info;
self . roomPKPlayingView . redChooseArray = self . redChooseArray ;
self . roomPKPlayingView . blueChooseArray = self . blueChooseArray ;
[ self . roomPKPlayingView configRedTeamScore : self . redTeamScore blueTeamScore : self . blueTeamScore ] ;
@@ -755,20 +757,20 @@
- ( void ) xPRoomPKPlayingView : ( XPRoomPKPlayingView * ) view didClickResetBegin : ( UIButton * ) sender {
[ TTPopup dismiss ] ;
[ TTPopup alertWithMessage : @ "重新开始将会提前结束本次PK\n确认重新开始吗?" confirmHandler : ^ {
RoomPKInfoModel * roompkInfo = self . pkDetailInfo . roomPK;
RoomPKInfoModel * roompkInfo = self . roomPKInfo ;
NSString * roomUid = [ NSString stringWithFormat : @ "%ld" , self . roomInfo . uid ] ;
[ Api createRoomPK : ^ ( BaseModel * _Nullable data , NSInteger code , NSString * _Nullable msg ) {
if ( code = = 200 ) {
RoomPKInfoModel * newRoomPKInfo = [ RoomPKInfoModel modelWithDictionary : data . data ] ;
self . pkDetailInfo . roomPK = newRoomPKInfo ;
self . roomPKInfo = newRoomPKInfo ;
} else {
[ XCHUDTool showErrorWithMessage : msg ] ;
}
} pkMode : [ NSString stringWithFormat : @ "%ld" , roompkInfo . pkMode ] voteMode : [ NSString stringWithFormat : @ "%ld" , roompkInfo . voteMode ] duration : [ NSString stringWithFormat : @ "%0.f" , roompkInfo . duration ] roomUid : roomUid operUid : [ AccountInfoStorage instance ] . getUid ] ;
} cancelHandler : ^ {
dispatch_after ( dispatch_time ( DISPATCH_TIME _NOW , ( int64_t ) ( 0.5 * NSEC_PER _SEC ) ) , dispatch_get _main _queue ( ) , ^ {
if ( self . pkDetailInfo . roomPK. pkStatus = = RoomPKStatusType_Playing ) {
self . roomPKPlayingView . pkDetailInfo = self . pkDetail Info;
if ( self . roomPKInfo . pkStatus = = RoomPKStatusType_Playing ) {
self . roomPKPlayingView . pkDetailInfo = self . roomPK Info;
self . roomPKPlayingView . redChooseArray = self . redChooseArray ;
self . roomPKPlayingView . blueChooseArray = self . blueChooseArray ;
[ self . roomPKPlayingView configRedTeamScore : self . redTeamScore blueTeamScore : self . blueTeamScore ] ;
@@ -780,11 +782,11 @@
# pragma mark - Event Response
- ( void ) beginButtonAction : ( UIButton * ) sender {
if ( self . pkDetailInfo ) {
RoomPKInfoModel * roompkInfo = self . pkDetailInfo . roomPK;
if ( self . roomPKInfo ! = nil ) {
RoomPKInfoModel * roompkInfo = self . roomPKInfo ;
NSString * roomUid = [ NSString stringWithFormat : @ "%ld" , self . roomInfo . uid ] ;
if ( self . redChooseArray . count > 0 && self . blueChooseArray . count > 0 ) {
if ( self . pkDetailInfo . roomPK. pkStatus = = RoomPKStatusType_End || self . pkDetailInfo . roomPK. pkStatus = = RoomPKStatusType_ReStart ) {
if ( self . roomPKInfo . pkStatus = = RoomPKStatusType_End || self . roomPKInfo . pkStatus = = RoomPKStatusType_ReStart ) {
[ TTPopup alertWithMessage : @ "是否再次开始PK?" confirmHandler : ^ {
[ Api createRoomPK : ^ ( BaseModel * _Nullable data , NSInteger code , NSString * _Nullable msg ) {
if ( code = = 200 ) {
@@ -794,7 +796,7 @@
[ Api begainRoomPK : ^ ( BaseModel * _Nullable data , NSInteger code , NSString * _Nullable msg ) {
if ( code = = 200 ) {
RoomPKDetailInfoModel * detailPKInfo = [ RoomPKDetailInfoModel modelWithDictionary : data . data ] ;
self . pkDetail Info = detailPKInfo ;
self . roomPK Info = detailPKInfo . roomPK ;
} else {
[ XCHUDTool showErrorWithMessage : msg ] ;
}
@@ -806,20 +808,20 @@
} cancelHandler : ^ {
} ] ;
} else if ( self . pkDetailInfo . roomPK. pkStatus = = RoomPKStatusType_Playing ) {
} else if ( self . roomPKInfo . pkStatus = = RoomPKStatusType_Playing ) {
[ self didTapBackImageRecognizer ] ;
} else if ( self . pkDetailInfo . roomPK. pkStatus = = RoomPKStatusType_NonStart ) {
} else if ( self . roomPKInfo . pkStatus = = RoomPKStatusType_NonStart ) {
[ TTPopup alertWithMessage : @ "当前正在准备阶段, 是否确认准备开始PK?" confirmHandler : ^ {
NSString * teamJsonStr = [ self roomPKTeamJsonString ] ;
// / 开 始 PK
[ Api begainRoomPK : ^ ( BaseModel * _Nullable data , NSInteger code , NSString * _Nullable msg ) {
if ( code = = 200 ) {
RoomPKDetail InfoModel * detail PKInfo = [ RoomPKDetail InfoModel modelWithDictionary : data . data ] ;
self . pkDetail Info = detail PKInfo;
RoomPKInfoModel * room PKInfo = [ RoomPKInfoModel modelWithDictionary : data . data ] ;
self . roomPK Info = room PKInfo;
} else {
[ XCHUDTool showErrorWithMessage : msg ] ;
}
} roomUid : roomUid pkId : self . pkDetailInfo . roomPK. pkId joinUsers : teamJsonStr ] ;
} roomUid : roomUid pkId : self . roomPKInfo . pkId joinUsers : teamJsonStr ] ;
} cancelHandler : ^ {
} ] ;
@@ -834,9 +836,9 @@
}
- ( void ) didTapBackImageRecognizer {
if ( self . pkDetailInfo . roomPK. pkStatus = = RoomPKStatusType_Playing ) {
if ( self . roomPKInfo . pkStatus = = RoomPKStatusType_Playing ) {
[ TTPopup dismiss ] ;
self . roomPKPlayingView . pkDetailInfo = self . pkDetail Info;
self . roomPKPlayingView . pkDetailInfo = self . roomPK Info;
self . roomPKPlayingView . redChooseArray = self . redChooseArray ;
self . roomPKPlayingView . blueChooseArray = self . blueChooseArray ;
[ self . roomPKPlayingView configRedTeamScore : self . redTeamScore blueTeamScore : self . blueTeamScore ] ;
@@ -847,7 +849,7 @@
# pragma mark - Getters And Setters
- ( void ) setMicQueue : ( NSMutableDictionary < NSString * , MicroQueueModel * > * ) micQueue {
_micQueue = micQueue ;
if ( self . pkDetailInfo . roomPK. pkStatus ! = RoomPKStatusType_Playing ) {
if ( self . roomPKInfo . pkStatus ! = RoomPKStatusType_Playing ) {
NSMutableArray * redArray = [ NSMutableArray array ] ;
NSMutableArray * blueArray = [ NSMutableArray array ] ;
for ( int i = 0 ; i < _micQueue . allValues . count ; i + + ) {
@@ -1023,5 +1025,19 @@
return _roomPKPlayingView ;
}
- ( NSMutableSet * ) redTeamGiftPersonDic {
if ( ! _redTeamGiftPersonDic ) {
_redTeamGiftPersonDic = [ NSMutableSet set ] ;
}
return _redTeamGiftPersonDic ;
}
- ( NSMutableSet * ) blueTeamGiftPersonDic {
if ( ! _blueTeamGiftPersonDic ) {
_blueTeamGiftPersonDic = [ NSMutableSet set ] ;
}
return _blueTeamGiftPersonDic ;
}
@ end