From 384bc3e95c0eae4856b7c0d7e1d5463857da0eed Mon Sep 17 00:00:00 2001 From: eggmanQQQ <3671373519@qq.com> Date: Fri, 14 Jun 2024 21:04:26 +0800 Subject: [PATCH] =?UTF-8?q?#761=20=E5=AE=8C=E6=88=90=E6=88=BF=E9=97=B4=20P?= =?UTF-8?q?K=20=E9=9D=A2=E6=9D=BF=E5=9F=BA=E6=9C=AC=20UI=20=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- YuMi.xcodeproj/project.pbxproj | 6 + .../Contents.json | 22 + .../room_pk_avatar_bg_blue@2x.png | Bin 0 -> 2207 bytes .../room_pk_avatar_bg_blue@3x.png | Bin 0 -> 8941 bytes .../Contents.json | 22 + .../room_pk_avatar_bg_red@2x.png | Bin 0 -> 2302 bytes .../room_pk_avatar_bg_red@3x.png | Bin 0 -> 9150 bytes .../room_pk_clock_icon.imageset/Contents.json | 22 + .../room_pk_clock_icon@2x.png | Bin 0 -> 964 bytes .../room_pk_clock_icon@3x.png | Bin 0 -> 1214 bytes YuMi/Info.plist | 2 +- .../XPRoomFunctionContainerView.m | 37 +- .../View/MenuContainerView/MSRoomMenuGameVC.m | 30 +- .../View/SubViews/XPRoomPKPaneAvatarView.h | 29 + .../View/SubViews/XPRoomPKPaneAvatarView.m | 100 +++ .../View/RoomPK/View/XPRoomPKPanelView.h | 16 +- .../View/RoomPK/View/XPRoomPKPanelView.m | 669 +++++++++++++++++- 17 files changed, 926 insertions(+), 29 deletions(-) create mode 100644 YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_blue.imageset/Contents.json create mode 100644 YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_blue.imageset/room_pk_avatar_bg_blue@2x.png create mode 100644 YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_blue.imageset/room_pk_avatar_bg_blue@3x.png create mode 100644 YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_red.imageset/Contents.json create mode 100644 YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_red.imageset/room_pk_avatar_bg_red@2x.png create mode 100644 YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_red.imageset/room_pk_avatar_bg_red@3x.png create mode 100644 YuMi/Assets.xcassets/yna/RoomPK/room_pk_clock_icon.imageset/Contents.json create mode 100644 YuMi/Assets.xcassets/yna/RoomPK/room_pk_clock_icon.imageset/room_pk_clock_icon@2x.png create mode 100644 YuMi/Assets.xcassets/yna/RoomPK/room_pk_clock_icon.imageset/room_pk_clock_icon@3x.png create mode 100644 YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/XPRoomPKPaneAvatarView.h create mode 100644 YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/XPRoomPKPaneAvatarView.m diff --git a/YuMi.xcodeproj/project.pbxproj b/YuMi.xcodeproj/project.pbxproj index ff01bd25..0628e742 100644 --- a/YuMi.xcodeproj/project.pbxproj +++ b/YuMi.xcodeproj/project.pbxproj @@ -521,6 +521,7 @@ 23FF42792AA6E19C0055733C /* HomeMenuSourceModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF42782AA6E19C0055733C /* HomeMenuSourceModel.m */; }; 23FF428E2AAB2D3A0055733C /* XPCandyTreeBuyView.m in Sources */ = {isa = PBXBuildFile; fileRef = 23FF428D2AAB2D3A0055733C /* XPCandyTreeBuyView.m */; }; 545888332C1AFFB500897585 /* XPRoomPKPanelView.m in Sources */ = {isa = PBXBuildFile; fileRef = 545888322C1AFFB500897585 /* XPRoomPKPanelView.m */; }; + 545888362C1C306B00897585 /* XPRoomPKPaneAvatarView.m in Sources */ = {isa = PBXBuildFile; fileRef = 545888352C1C306B00897585 /* XPRoomPKPaneAvatarView.m */; }; 73FFADDC93E195344047A2EC /* Pods_YuMi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CACF623970097D653132D69A /* Pods_YuMi.framework */; }; 9B0086C627BA392B0032BD2B /* AnchorStageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0086C527BA392B0032BD2B /* AnchorStageView.m */; }; 9B0086CA27BA4F570032BD2B /* AnchorMicroView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0086C927BA4F570032BD2B /* AnchorMicroView.m */; }; @@ -2562,6 +2563,8 @@ 23FF428D2AAB2D3A0055733C /* XPCandyTreeBuyView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPCandyTreeBuyView.m; sourceTree = ""; }; 545888312C1AFFB500897585 /* XPRoomPKPanelView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPKPanelView.h; sourceTree = ""; }; 545888322C1AFFB500897585 /* XPRoomPKPanelView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomPKPanelView.m; sourceTree = ""; }; + 545888342C1C306B00897585 /* XPRoomPKPaneAvatarView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomPKPaneAvatarView.h; sourceTree = ""; }; + 545888352C1C306B00897585 /* XPRoomPKPaneAvatarView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPRoomPKPaneAvatarView.m; sourceTree = ""; }; 7DB00EC07F1D0ADFF900B38D /* Pods-YuMi.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-YuMi.debug.xcconfig"; path = "Target Support Files/Pods-YuMi/Pods-YuMi.debug.xcconfig"; sourceTree = ""; }; 9B0086C427BA392B0032BD2B /* AnchorStageView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnchorStageView.h; sourceTree = ""; }; 9B0086C527BA392B0032BD2B /* AnchorStageView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AnchorStageView.m; sourceTree = ""; }; @@ -7165,6 +7168,8 @@ E81AF32727F1EE69003B9E43 /* XPRoomPKPanelUserView.m */, E84843B027F5A0740050D365 /* XPRomPKResultTitleLabel.h */, E84843B127F5A0740050D365 /* XPRomPKResultTitleLabel.m */, + 545888342C1C306B00897585 /* XPRoomPKPaneAvatarView.h */, + 545888352C1C306B00897585 /* XPRoomPKPaneAvatarView.m */, ); path = SubViews; sourceTree = ""; @@ -12563,6 +12568,7 @@ 1427218829A75F6F00C7C423 /* HTTPErrorResponse.m in Sources */, E85E7B032A4EB0D200B6D00A /* XPGuildIncomePresenter.m in Sources */, E8A30BF928534E48003B4873 /* XPSessionFindNewEmptyTableViewCell.m in Sources */, + 545888362C1C306B00897585 /* XPRoomPKPaneAvatarView.m in Sources */, E896EFB22771C93B00AD2CC1 /* XPMineFriendNumberView.m in Sources */, 14EB640D29A5C16000A4A00B /* XPMomentsSimpleDetailNav.m in Sources */, E80EC80E28ACD84000D133C5 /* QKeyboardBaseManager.m in Sources */, diff --git a/YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_blue.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_blue.imageset/Contents.json new file mode 100644 index 00000000..dc4623a9 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_blue.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_pk_avatar_bg_blue@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_pk_avatar_bg_blue@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_blue.imageset/room_pk_avatar_bg_blue@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_blue.imageset/room_pk_avatar_bg_blue@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a94f4a90b7802a3847b8973cb26654e445065307 GIT binary patch literal 2207 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 literal 0 HcmV?d00001 diff --git a/YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_blue.imageset/room_pk_avatar_bg_blue@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_blue.imageset/room_pk_avatar_bg_blue@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9f53556c7a26b38b631afeadd81cbbff43034d7c GIT binary patch literal 8941 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 MRz;@b?Z@E%1M@yCX#fBK literal 0 HcmV?d00001 diff --git a/YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_red.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_red.imageset/Contents.json new file mode 100644 index 00000000..223ab7ad --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_red.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_pk_avatar_bg_red@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_pk_avatar_bg_red@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_red.imageset/room_pk_avatar_bg_red@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_red.imageset/room_pk_avatar_bg_red@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9291206325e485d100a54b347bf551783a2bb112 GIT binary patch literal 2302 zcmVPx-xJg7oRCwCuoO@7I=NZN~Gi_R%M9ig`CX+xC8!t7IsHrwG5!)8g|VhqMkR2MzbJ2GAZ&I_gPLlTc}mcQ>9V!N>d(C|&--lm##r z^o9msP0U4iWB0P~Oo;XGJ>zaTFEb?Q*wjQz?lezZ2m)w;7GG`54Yi?rRcQBw+OD6v z>wEsg5ODEKzALe8+5;F1G`VWdkPg;;I8Zbj3IE%c7`@A*c@>o2r_u? z_~gJT5_*}>;UUO5p=+tTwp(Ec{H^jNnd6>|*boHC4`+F_3f&$L>_z+D;OOdC9bE*j zaLT5*?1&FRV2sW7Xcqe6MOz5=u6?Tg9Dz@5?^5Rcf~W~W0L{=Yd??kOl>vpogA8hQ zCke_Dc0^qW0%-U30&jkWFjRM9mRfc83PYehyCG^r5VU7CknqD?g~zX-AP=71uG)A2 z^WmepA6JWd@MVt#aw58 z3kiSlI{qp2-p<+T{?jC|@^t~NA^d#drV;V{j3SUHV^Y|FUc+ir?-}a})w@TbHhO5$ z22Z{o;rZ6RVgKnewUUp!OivJd!>UKKJ%UY3eo2dGhi-mZe3#i%6SWbH);jPee8Tgs zLF_#_z!1n=SfqJQuy|kF5FYAD4>eI6J+#gl@Fsl1^H+})drv*BzWfe>ftT87fri}} zU{b>~hVS7z0tDLw-r!OAh4(M_hL_*AslR!fz#;u!%_1?wLnL0;;R*t^(F47-)__Oh z7v8@NqT;PfYQ>)jSRcvJ+(1ldS|>AqCu1=YYpnr~!Y{m!oI8}Ah*9^vMc@kWGV_Bl zAr5unK0yk$4?M!F@Qn;~>h3p_)m?8AIGtHHtpcaA54;NB$UrBTpV*_6pCDjgy?e$4 zQJuJpgm0z1=;sBa(%C6ER1 zxXBQRpJfR7q!sQUwDwqbhna+LW$PO^bV}(PLkxk07|V$7 zeQ?8!2?Ab)Z)BiTOOCcHCC3O9&nuiULBOl*#5D_)v0K~%F>;ae#_ z%BR?cuO}--M+uxV91NStUDnuNUh$R)Yp2m$MZ8zXLQ5o#UqDEu-Xj9#IV^N-l%{8tG$pV|414+0*AUw9u4 z!j*sIX*uur1U|}aq6L1wJp4Jc3^zE<4&=-d-r!OAh4-&q$(C|o8IW^dA&?W78?v=V zxI+kZtpRVsCp_QszJ{FBTFwyY*8eu7tIu!~$m$c`gimr!`jI z*g}GWxZH0{5b)yb4PGa|cWQmhb~&?|zz3-gS`y$@t4It29^ggzg2%7Fbtt25mb|{{ zDnpFlb~&R89nt~ z!?Xtg4bbANjTv^OG=%npE2C$g7RNFvrS_tP)V*9zvQbHF?zDw~-q7Hy2^yg_?4RwD z%ys)1@})DOf~?0^Xq(bc`bowbqhzifluWhc%ej?%DCdE!pl(5$ z>{=sgqsQ33&?1{_P1E-IPsvnMDw!NKmcOn!K=q4C$#UPiphCe|)IcrN9Iuybbo`2R zblbFl8rWs7iglSBHp$4s#$hn2icYR5r|JdIQ_({?WWG0pR^63KOL;N0kc|TTjK}ad zY=dnv24g3xD;aC6Tn0y6#C=A5cuiG|Y_OM0hMH>(g^6qEfnHJZp9AFN+Mlp!yOeCd zBqg(fpx_!@3pJzqe@Woka~bS3>>8m@~*hR@;zrx>#na{lpdmp=qZLlrIOw}|0 Ye-I)Mz9~2E*#H0l07*qoM6N<$f;-c6IsgCw literal 0 HcmV?d00001 diff --git a/YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_red.imageset/room_pk_avatar_bg_red@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/room_pk_avatar_bg_red.imageset/room_pk_avatar_bg_red@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..d6e36aa36080d6bf2a3d2b70515beeab1296e567 GIT binary patch literal 9150 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 literal 0 HcmV?d00001 diff --git a/YuMi/Assets.xcassets/yna/RoomPK/room_pk_clock_icon.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/room_pk_clock_icon.imageset/Contents.json new file mode 100644 index 00000000..9dcaf3df --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/room_pk_clock_icon.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "room_pk_clock_icon@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "room_pk_clock_icon@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/YuMi/Assets.xcassets/yna/RoomPK/room_pk_clock_icon.imageset/room_pk_clock_icon@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/room_pk_clock_icon.imageset/room_pk_clock_icon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..88a9f23f9f6150c27cdbfb7f0506c08704f29399 GIT binary patch literal 964 zcmeAS@N?(olHy`uVBq!ia0vp^QXtI13?%1G+4BcTF%}28J29*~C-V}>o*Lj2;tCY} z4+ISjXJ*d4x@y(7ZQJ(GpMPxCsxzBs?p(BJ|Eg6-=FZ){YSrPTOM!xW7B1YsY}p|o z14u4jd~DUigUgp6S+!{Y^5q8?Ejqel#s0;Mk1Sq%aK(y4OO_m7vH0lHrH585KCpc8 z!KF)qCL93j0y2Q)^5ut?FFCku*}>&Y4lP@Dc=^)9KrT=*NNNdC4M-fqUA6?M@eq&% zDP9T@1evyM35dH4qzq)>GLT-d2_W?cf#P7rFl8VGKwF^7fQrFpg1HbA!0N%~z?1IRvK4a#r*>mPCSh#5Ml4UDau3Eij?fNZSx9`}w zYxlnW2M!)ScKqb2bLTH!x_tGO)5S4F zLNfJWr~TwYhT|XCuX&`oaG}i972i5Ej?Y^8L`(6hR_2*qccw-^(Y*fr{WjbE>F2W_ z{|$?J5clKmpGOrYC80MzMU{VeW2+z5#(w+2u`?eMa(Hj7p03Z+6LPwA^>c<_PcvJ; z-u^UI&!Io2Jn?0dk?%oeRo1ebAzlTgR_@36cj&F;)tVB-|If?*{ZEB(+5hWL zd=_e2)#|k~N5*?zcDu>SxxSKSeM`4kwwb#5wDl%yuATlqDkY$;x7agNur7P1xlzuy zr`4xc*%@grZhXA{V@1+3SI^ipuO(j_y?Y#ZN$0(2laS=uznbf_RAT?RZ(gJPtHe*@ z)KWi<3z795-kbO$FG|jTuxygtq4d<3ZG1b~9(XUTY2@rUd6{>&{;4NgT{#Dr)buw_ z-r1P3M1Lc{%hZKQ9QUutrtZG@!|LPb>)W^cuX9 z2n@&of!)nT0tn4SLJ8S$DYpnx!7xEYZVD(6AkeqLX?Om8?|Ztnem)FO0P3!t-K$L?s4FUxK#)uz zke8JyVYscN1b}h`=|T{+v=kKx+PU0T9uFXG0D&N&k#j3hn1jNwlFM!3@tP4t0mBMD zSXQD~VHyP&YJngWu0VOP5*WD{0%R>b1h4>602WYO9g6@L5MWCMTnS_-0=zH=!VqT1 zN@v$0D6C@vxU0b$2zXI0rrga@Vm-(Kv4|2h;8bA5l3@k%e~*P@X%N`!1NFfODG+cr z-AQ(Hu;;}xF&x`hm;c``It^fT7Ay)hK;Ht22VNkzmCtJfCE&M%5(+wmf+tnNr=qG( zv8YQd>aG@d*Hk-am|26*lMw4qqvP;+yxv|TQ!{f50%8AtD=XsRW5?_r&Nw+aySS1_ zZWkE=OlDx<4bg&}PM5^P@ugeaHwyJ+J?^A>8%kUsGO%=eEMML`ZOL`)qtMN)LYpbH^=)7F z*r^oOoiBsjn+)*mh@&&FTGo#!9j$R0hKU8?jhFJ&$st?CYHz2S#yR)#CWyT^(IwR9 z{;DSsf~Wfl=G}HDAMp9wVvl*Lp;ee-xFh@ z&xkas9nGm47g3{9<5do-#Dz`8q->2`rXnGW6xCX}y)s+wmCHv6OIZ=T8RGkafG}Pck2#wYyuCRBm9)lo$V~U4G7|1a^t5fBKbGx6yiB7W`6Or)k<8p2%?Vzj$t8NWC-V(B6>lvCX&4@w;b7_Nw?Q*lcO{%3;FZCOqr{;sDrK=j^1Ehzw$Wi aZ;iot#IQ%d#rN*mkB90>Ba1yk(*FhWu%4y> literal 0 HcmV?d00001 diff --git a/YuMi/Info.plist b/YuMi/Info.plist index fd3bd89a..845d1abf 100644 --- a/YuMi/Info.plist +++ b/YuMi/Info.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName - MoliStar + MoliStar Debug CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier diff --git a/YuMi/Modules/YMRoom/View/BaseUIContainerView/XPRoomFunctionContainerView.m b/YuMi/Modules/YMRoom/View/BaseUIContainerView/XPRoomFunctionContainerView.m index 71eaebb5..fb2b0fd8 100644 --- a/YuMi/Modules/YMRoom/View/BaseUIContainerView/XPRoomFunctionContainerView.m +++ b/YuMi/Modules/YMRoom/View/BaseUIContainerView/XPRoomFunctionContainerView.m @@ -99,6 +99,8 @@ #import "XPLittleGameRoomListView.h" #import "MSRoomOnLineView.h" +#import "XPRoomPKPanelView.h" + @interface XPRoomFunctionContainerView () ///host 代理 @property (nonatomic,weak) iddelegate; @@ -159,6 +161,8 @@ ///在线人数 @property(nonatomic,strong) MSRoomOnLineView *onlineView; +@property(nonatomic, strong) XPRoomPKPanelView *pkPanelView; + @end @implementation XPRoomFunctionContainerView @@ -437,10 +441,30 @@ } #pragma mark - 房间PK +// MARL: ----- 修改开始 +- (void)showPKPanel_ { + if (NO == [TTPopup hasShowPopup]) { + [TTPopup popupView:self.pkPanelView style:TTPopupStyleAlert]; + } +} + +- (void)updateIsRoomManagerState { + self.pkPanelView.isManager = self.roompkPanelView.isManager; +} + +- (void)removePKPanel_ { + if (_pkPanelView) { + [self.pkPanelView removeFromSuperview]; + self.pkPanelView = nil; + } +} +// MARL: ----- 修改结束 - (void)configRoomPKPanelView:(BOOL)isEnter { RoomInfoModel * roomInfo = self.delegate.getRoomInfo; if (roomInfo.roomModeType == RoomModeType_Open_PK_Mode) { + [self showPKPanel_]; self.roompkPanelView.roomInfo = roomInfo; + self.pkPanelView.roomInfo = roomInfo; if (!self.roompkPanelView.superview) { [self addSubview:self.roompkPanelView]; [self.roompkPanelView mas_makeConstraints:^(MASConstraintMaker *make) { @@ -461,10 +485,12 @@ }else { self.roompkPanelView.isManager = NO; } - if (isEnter) { [self.roompkPanelView enterRoomGetRoomPKDetailInfo]; + [self.pkPanelView enterRoomGetRoomPKDetailInfo]; } + + [self updateIsRoomManagerState]; } }]; } else { @@ -991,6 +1017,7 @@ break; } + [self updateIsRoomManagerState]; } - (void)onMicroQueueUpdate:(NSMutableDictionary *)queue { @@ -998,6 +1025,7 @@ [self.littleGameMiniView needRefreshPosition:queue]; } else if(self.delegate.getRoomInfo.roomModeType == RoomModeType_Open_PK_Mode) { self.roompkPanelView.micQueue = queue; + self.pkPanelView.micQueue = queue; }else { MicroQueueModel * currentUserModel; NSString * uid = [AccountInfoStorage instance].getUid; @@ -1894,6 +1922,13 @@ return _musicPlayView; } +- (XPRoomPKPanelView *)pkPanelView { + if (!_pkPanelView) { + _pkPanelView = [[XPRoomPKPanelView alloc] initWithFrame:CGRectMake(0, 0, 309, 379)]; + } + return _pkPanelView; +} + - (XPRoomPKProgressView *)roompkPanelView { if (!_roompkPanelView) { _roompkPanelView = [[XPRoomPKProgressView alloc] init]; diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameVC.m b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameVC.m index af66d65b..48380aff 100644 --- a/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameVC.m +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameVC.m @@ -270,17 +270,13 @@ case RoomMoreMenuType_Room_Across_PK_Open:{ if (roomInfo.roomModeType == RoomModeType_Open_Blind) { [self showErrorToast:YMLocalizedString(@"XPRoomMoreMenuViewController13")]; - return; - } - - if (roomInfo.roomModeType == RoomModeType_Open_PK_Mode) { + } else if (roomInfo.roomModeType == RoomModeType_Open_PK_Mode) { [self showErrorToast:YMLocalizedString(@"XPRoomMoreMenuViewController14")]; - return; + } else { + [StatisticsServiceHelper trackEventWithKey:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"openAcrossPk"}]; + XPAcrossRoomPKViewController *acrossRoomPKVC = [[XPAcrossRoomPKViewController alloc] initWithRoomUid:[NSString stringWithFormat:@"%ld", roomInfo.uid]]; + [self.hostDelegate.getCurrentNav presentViewController:acrossRoomPKVC animated:YES completion:nil]; } - [StatisticsServiceHelper trackEventWithKey:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"openAcrossPk"}]; - XPAcrossRoomPKViewController *acrossRoomPKVC = [[XPAcrossRoomPKViewController alloc] initWithRoomUid:[NSString stringWithFormat:@"%ld", roomInfo.uid]]; - [self.hostDelegate.getCurrentNav presentViewController:acrossRoomPKVC animated:YES completion:nil]; - } break; default: @@ -329,15 +325,13 @@ -(void)ms_didSelectItemAtIndexPath:(id)model { self.gameView.hidden = YES; - - if ([model isKindOfClass:[XPRoomMoreItemModel class]]) { - // TODO: 跳转到 PK - [self handleMoreItem:(XPRoomMoreItemModel *)model]; - } else if ([model isKindOfClass:[ActivityInfoModel class]]) { - [self handleActivityInfo:(ActivityInfoModel *)model]; - } - - [self dismissViewControllerAnimated:YES completion:nil]; + [self dismissViewControllerAnimated:YES completion:^{ + if ([model isKindOfClass:[XPRoomMoreItemModel class]]) { + [self handleMoreItem:(XPRoomMoreItemModel *)model]; + } else if ([model isKindOfClass:[ActivityInfoModel class]]) { + [self handleActivityInfo:(ActivityInfoModel *)model]; + } + }]; } -(void)clickGameVC:(ActivityInfoModel *)model{ if ([self.hostDelegate isKindOfClass:[XPRoomViewController class]]){ diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/XPRoomPKPaneAvatarView.h b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/XPRoomPKPaneAvatarView.h new file mode 100644 index 00000000..924e1706 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/XPRoomPKPaneAvatarView.h @@ -0,0 +1,29 @@ +// +// XPRoomPKPaneAvatarView.h +// YuMi +// +// Created by P on 2024/6/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger,XPRoomPKPaneAvatarType) { + XPRoomPKPaneAvatarType_Red = 1, + XPRoomPKPaneAvatarType_Blue, + XPRoomPKPaneAvatarType_Leader_Red, + XPRoomPKPaneAvatarType_Leader_Blue, +// XPRoomPKPaneAvatarType_Red_Default, +// XPRoomPKPaneAvatarType_Blue_Default, +// XPRoomPKPaneAvatarType_Leader_Red_Default, +// XPRoomPKPaneAvatarType_Leader_Blue_Default, +}; + +@interface XPRoomPKPaneAvatarView : UIView + +@property (nonatomic,assign) XPRoomPKPaneAvatarType type; +@property (nonatomic, copy) void (^didTapAvatar)(XPRoomPKPaneAvatarType type); + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/XPRoomPKPaneAvatarView.m b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/XPRoomPKPaneAvatarView.m new file mode 100644 index 00000000..7773e1e5 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/XPRoomPKPaneAvatarView.m @@ -0,0 +1,100 @@ +// +// XPRoomPKPaneAvatarView.m +// YuMi +// +// Created by P on 2024/6/14. +// + +#import "XPRoomPKPaneAvatarView.h" + +@interface XPRoomPKPaneAvatarView() + +@property (nonatomic, strong) UIImageView *avatarBackgroundImageView; +@property (nonatomic, strong) NetImageView *avatarImageView; + +@end + +@implementation XPRoomPKPaneAvatarView + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + self.clipsToBounds = NO; + [self setupUI]; + } + return self; +} + +- (void)setupUI { + [self addSubview:self.avatarBackgroundImageView]; + [self.avatarBackgroundImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self addSubview:self.avatarImageView]; + [self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self.avatarBackgroundImageView); + make.width.equalTo(self.avatarBackgroundImageView.mas_width).offset(-4); + make.height.equalTo(self.avatarBackgroundImageView.mas_height).offset(-4); + }]; +} + +- (void)setupGesture { + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self + action:@selector(handleTapGesture)]; + [self addGestureRecognizer:tap]; +} + +- (void)handleTapGesture { + if (_didTapAvatar) { + _didTapAvatar(self.type); + } +} + +- (void)setType:(XPRoomPKPaneAvatarType)type { + _type = type; + switch (type) { + case XPRoomPKPaneAvatarType_Red: + self.avatarBackgroundImageView.image = [UIImage imageNamed:@"room_pk_avatar_bg_red"]; + self.avatarImageView.hidden = YES; + self.avatarImageView.layer.cornerRadius = 15; + break; + case XPRoomPKPaneAvatarType_Blue: + self.avatarBackgroundImageView.image = [UIImage imageNamed:@"room_pk_avatar_bg_blue"]; + self.avatarImageView.hidden = YES; + self.avatarImageView.layer.cornerRadius = 15; + break; + case XPRoomPKPaneAvatarType_Leader_Red: + self.avatarBackgroundImageView.image = [UIImage imageNamed:@"room_pk_avatar_bg_red"]; + self.avatarImageView.layer.cornerRadius = 31; + break; + case XPRoomPKPaneAvatarType_Leader_Blue: + self.avatarBackgroundImageView.image = [UIImage imageNamed:@"room_pk_avatar_bg_blue"]; + self.avatarImageView.layer.cornerRadius = 31; + break; + default: + break; + } +} + +#pragma mark - +- (UIImageView *)avatarBackgroundImageView { + if (!_avatarBackgroundImageView) { + _avatarBackgroundImageView = [[UIImageView alloc] init]; + _avatarBackgroundImageView.contentMode = UIViewContentModeScaleAspectFit; + _avatarBackgroundImageView.clipsToBounds = NO; + } + return _avatarBackgroundImageView; +} + +- (NetImageView *)avatarImageView { + if (!_avatarImageView) { + NetImageConfig * config = [[NetImageConfig alloc]init]; + config.imageType = ImageTypeUserIcon; + config.placeHolder = [UIImageConstant defaultAvatarPlaceholder]; + _avatarImageView = [[NetImageView alloc] initWithConfig:config]; + _avatarImageView.layer.masksToBounds = YES; + } + return _avatarImageView; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/XPRoomPKPanelView.h b/YuMi/Modules/YMRoom/View/RoomPK/View/XPRoomPKPanelView.h index ae6dbd86..dc60cdd0 100644 --- a/YuMi/Modules/YMRoom/View/RoomPK/View/XPRoomPKPanelView.h +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/XPRoomPKPanelView.h @@ -7,10 +7,24 @@ #import -NS_ASSUME_NONNULL_BEGIN +NS_ASSUME_NONNULL_BEGIN +@class MicroQueueModel, AttachmentModel, RoomInfoModel, RoomPKChooseUserModel; @interface XPRoomPKPanelView : UIView +@property (nonatomic, strong) NSMutableDictionary *micQueue; +///房间信息 +@property (nonatomic, strong) RoomInfoModel *roomInfo; +///是否是管理员 +@property (nonatomic, assign) BOOL isManager; + +///红色的 +@property (nonatomic,strong, readonly) NSArray *redChooseArray; +///蓝色的 +@property (nonatomic,strong, readonly) NSArray *blueChooseArray; + +- (void)enterRoomGetRoomPKDetailInfo; + @end NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/XPRoomPKPanelView.m b/YuMi/Modules/YMRoom/View/RoomPK/View/XPRoomPKPanelView.m index 7e1208bc..dad0e0d5 100644 --- a/YuMi/Modules/YMRoom/View/RoomPK/View/XPRoomPKPanelView.m +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/XPRoomPKPanelView.m @@ -6,15 +6,668 @@ // #import "XPRoomPKPanelView.h" +#import "XPRoomPKPaneAvatarView.h" -@implementation XPRoomPKPanelView +#import "Api+RoomPK.h" +#import "UserInfoModel.h" +#import "MicroQueueModel.h" +#import "RoomInfoModel.h" +#import "RoomPKDetailInfoModel.h" +#import "RoomPKChooseUserModel.h" -/* -// Only override drawRect: if you perform custom drawing. -// An empty implementation adversely affects performance during animation. -- (void)drawRect:(CGRect)rect { - // Drawing code -} -*/ +#import "XPRoomPKSelectUserView.h" + +@interface XPRoomPKPanelView() +///pk详情 +@property (nonatomic,strong) RoomPKInfoModel *pkInfo; +///是否正在进行中 +@property (nonatomic,assign) BOOL isPlaying; +///红队的分数 +@property (nonatomic,assign) long redTeamScore; +///蓝的分数 +@property (nonatomic,assign) long blueTeamScore; +///红色的 +@property (nonatomic,strong) NSArray *redChooseArray; +///蓝色的 +@property (nonatomic,strong) NSArray *blueChooseArray; + +@property (nonatomic, strong) UIImageView *backgroundImageView; +@property (nonatomic, strong) UIImageView *topImageView; +@property (nonatomic, strong) UIButton *minionButton; + +@property (nonatomic, strong) XPRoomPKPaneAvatarView *leaderRed; +@property (nonatomic, strong) XPRoomPKPaneAvatarView *leaderBlue; + +@property (nonatomic, strong) XPRoomPKPaneAvatarView *memberRed_1; +@property (nonatomic, strong) XPRoomPKPaneAvatarView *memberRed_2; +@property (nonatomic, strong) XPRoomPKPaneAvatarView *memberRed_3; +@property (nonatomic, strong) XPRoomPKPaneAvatarView *memberBlue_1; +@property (nonatomic, strong) XPRoomPKPaneAvatarView *memberBlue_2; +@property (nonatomic, strong) XPRoomPKPaneAvatarView *memberBlue_3; + +@property (nonatomic, strong) UIStackView *redTeamStackView; +@property (nonatomic, strong) UIStackView *blueTeamStackView; + +@property (nonatomic, strong) UILabel *countDownLabel; + +@property (nonatomic, strong) UIButton *actionButton; + +///红方的进度图片 +@property (nonatomic, strong) UIImageView *redCountImageView; +///红方的礼物值 +@property (nonatomic, strong) UILabel *redCountLabel; +///蓝方的进度图片 +@property (nonatomic, strong) UIImageView *blueCountImageView; +///蓝方的礼物值 +@property (nonatomic, strong) UILabel *blueCountLabel; +@property (nonatomic, strong) UIImageView *fireImageView; + +@end + +@implementation XPRoomPKPanelView +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + self.backgroundColor = [UIColor colorWithWhite:1 alpha:0.6]; + [self setupUI]; + + } + return self; +} + +- (void)setupUI { + [self addSubview:self.backgroundImageView]; + [self.backgroundImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self addSubview:self.topImageView]; + [self.topImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.centerY.mas_equalTo(self.mas_top); + make.size.mas_equalTo(CGSizeMake(375, 120)); + }]; + + [self setupCenterVSMark]; + + [self addSubview:self.minionButton]; + [self.minionButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self).offset(12); + make.right.mas_equalTo(self).offset(-12); + make.size.mas_equalTo(CGSizeMake(30, 30)); + }]; + + [self addSubview:self.leaderRed]; + [self.leaderRed mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.topImageView.mas_bottom).offset(21); + make.left.mas_equalTo(self).offset(12.5); + make.size.mas_equalTo(CGSizeMake(68, 68)); + }]; + + [self addSubview:self.leaderBlue]; + [self.leaderBlue mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.topImageView.mas_bottom).offset(21); + make.right.mas_equalTo(self).offset(-12.5); + make.size.mas_equalTo(CGSizeMake(68, 68)); + }]; + + [self addSubview:self.redTeamStackView]; + [self.redTeamStackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(4); + make.top.mas_equalTo(self.leaderRed.mas_bottom).offset(36); + make.size.mas_equalTo(CGSizeMake(110, 36)); + }]; + [self.redTeamStackView addArrangedSubview:self.memberRed_1]; + [self.redTeamStackView addArrangedSubview:self.memberRed_2]; + [self.redTeamStackView addArrangedSubview:self.memberRed_3]; + + [self addSubview:self.blueTeamStackView]; + [self.blueTeamStackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self).offset(-4); + make.top.mas_equalTo(self.leaderRed.mas_bottom).offset(36); + make.size.mas_equalTo(CGSizeMake(110, 36)); + }]; + [self.blueTeamStackView addArrangedSubview:self.memberBlue_1]; + [self.blueTeamStackView addArrangedSubview:self.memberBlue_2]; + [self.blueTeamStackView addArrangedSubview:self.memberBlue_3]; + + [self setupCountDownView]; + + [self setupProgressArea]; + + [self addSubview:self.actionButton]; + [self.actionButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.bottom.mas_equalTo(self).offset(-26.5); + make.size.mas_equalTo(CGSizeMake(144, 32.5)); + }]; +} + +- (void)setupCallBack { + self.leaderRed.didTapAvatar = ^(XPRoomPKPaneAvatarType type) { + + }; + + self.leaderBlue.didTapAvatar = ^(XPRoomPKPaneAvatarType type) { + + }; +} + +- (void)handleTapAvatar { + +} + +#pragma mark - +- (void)enterRoomGetRoomPKDetailInfo { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + @kWeakify(self); + [Api getRoomPKDetail:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { + @kStrongify(self); + if (code == 200) { + RoomPKDetailInfoModel * pkDetailInfo = [RoomPKDetailInfoModel modelWithDictionary:data.data]; + self.pkInfo = pkDetailInfo.roomPK; + [self handleRoomPKInfoChangeState]; + if (self.pkInfo.pkStatus == RoomPKStatusType_Playing) { + [self updateCountDown]; + } + + ///配置一下麦序的信息 + NSMutableArray * redArray = [NSMutableArray array]; + NSMutableArray * blueArray = [NSMutableArray array]; + if (self.pkInfo.pkStatus == RoomPKStatusType_Playing) { + for (int i = 0; i < self.pkInfo.teams.count; i++) { + RoomPKTeamModel * teamInfo = [self.pkInfo.teams safeObjectAtIndex1:i]; + if (teamInfo.team == GroupType_Red) { + self.redTeamScore = teamInfo.score; + for (int i = 0; i < teamInfo.teamMembers.count; i++) { + RoomPKTeamUserModel * teamUserModel = [teamInfo.teamMembers safeObjectAtIndex1:i]; + RoomPKChooseUserModel * redInfo = [[RoomPKChooseUserModel alloc] init]; + redInfo.avatar = teamUserModel.avatar; + redInfo.uid = teamUserModel.uid; + redInfo.groupType = GroupType_Red; + redInfo.position = [self findMicroInfoByUid:teamUserModel.uid].microState.position; + redInfo.nick = teamUserModel.nick; + [redArray addObject:redInfo]; + } + } else if(teamInfo.team == GroupType_Blue) { + self.blueTeamScore = teamInfo.score; + for (int i = 0; i < teamInfo.teamMembers.count; i++) { + RoomPKTeamUserModel * teamUserModel = [teamInfo.teamMembers safeObjectAtIndex1:i]; + RoomPKChooseUserModel * blueInfo = [[RoomPKChooseUserModel alloc] init]; + blueInfo.avatar = teamUserModel.avatar; + blueInfo.uid = teamUserModel.uid; + blueInfo.groupType = GroupType_Blue; + blueInfo.position = [self findMicroInfoByUid:teamUserModel.uid].microState.position; + blueInfo.nick = teamUserModel.nick; + [blueArray addObject:blueInfo]; + } + } + } + [self configRedTeamScore:self.redTeamScore blueTeamScore:self.blueTeamScore]; + } else { + NSMutableDictionary * queue = self.micQueue; + for (int i = 0 ; i < queue.allValues.count; i++) { + MicroQueueModel * micModel = [queue.allValues safeObjectAtIndex1:i]; + if (micModel.userInfo && micModel.userInfo.uid > 0) { + UserInfoModel * userInfo = micModel.userInfo; + if (userInfo.groupType == GroupType_Red) { + RoomPKChooseUserModel * redInfo = [[RoomPKChooseUserModel alloc] init]; + redInfo.avatar = userInfo.avatar; + redInfo.uid = [NSString stringWithFormat:@"%ld", userInfo.uid]; + redInfo.groupType = userInfo.groupType; + redInfo.position = micModel.microState.position; + redInfo.nick = userInfo.nick; + [redArray addObject:redInfo]; + } else if(userInfo.groupType == GroupType_Blue) { + RoomPKChooseUserModel * blueInfo = [[RoomPKChooseUserModel alloc] init]; + blueInfo.avatar = userInfo.avatar; + blueInfo.uid = [NSString stringWithFormat:@"%ld", userInfo.uid]; + blueInfo.groupType = userInfo.groupType; + blueInfo.position = micModel.microState.position; + blueInfo.nick = userInfo.nick; + [blueArray addObject:blueInfo]; + } + } + } + + } + self.redChooseArray = redArray.copy; + self.blueChooseArray = blueArray.copy; + } else { + [XNDJTDDLoadingTool showErrorWithMessage:msg]; + } + } roomUid:roomUid]; +} + +- (void)handleRoomPKInfoChangeState { + self.isPlaying = NO; + if (self.pkInfo) { + switch (self.pkInfo.pkStatus) { + case RoomPKStatusType_End: +// [self handleBeginButtonState]; + break; + case RoomPKStatusType_Playing: { + [TTPopup dismiss]; +// [self handleBeginButtonState]; + self.isPlaying = YES; +// self.roomPKPlayingView.pkDetailInfo = self.roomPKInfo; +// self.roomPKPlayingView.redChooseArray = self.redChooseArray; +// self.roomPKPlayingView.blueChooseArray = self.blueChooseArray; +// [self.roomPKPlayingView configRedTeamScore:self.redTeamScore blueTeamScore:self.blueTeamScore]; +// [TTPopup popupView:self.roomPKPlayingView style:TTPopupStyleAlert]; + } + break; + case RoomPKStatusType_ReStart: + case RoomPKStatusType_NonStart: { +// [self handleBeginButtonState]; +// [self clearRoomPKTeamData]; +// [self stopRoomPKCountDown]; + } + break; + default: + break; + } + } +} + +- (void)updateCountDown { +// [self startRoomPKCountDown:(self.roomPKInfo.endTime - pkDetailInfo.now) / 1000]; +} + +- (void)startRoomPKCountDown:(CGFloat)time { + __block long tempTime = time; //倒计时时间 + __weak typeof(self) weakSelf = self; +// self.currentTime = tempTime; +// if (self.timer != nil) { +// dispatch_source_cancel(self.timer); +// } +// dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); +// self.timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); +// dispatch_source_set_timer(self.timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行 +// dispatch_source_set_event_handler(self.timer, ^{ +// typeof(weakSelf) self = weakSelf; +// if(tempTime <= 0){ //倒计时结束,关闭 +// self.currentTime = 0; +// dispatch_source_cancel(self.timer); +// dispatch_async(dispatch_get_main_queue(), ^{ +// [self checkRoomPKResult]; +// }); +// } else { +// dispatch_async(dispatch_get_main_queue(), ^{ +// //设置按钮显示读秒效果 +// NSInteger minute = tempTime / 60; +// NSInteger second = (tempTime % 60); +// NSString *timeStr = [NSString stringWithFormat:@"%02zd:%02zd", minute, second]; +// self.timeLabel.text= timeStr; +// self.roomPKPlayingView.currentTime = timeStr; +// }); +// tempTime--; +// self.currentTime = tempTime; +// } +// }); +// dispatch_resume(self.timer); +} + +- (MicroQueueModel *)findMicroInfoByUid:(NSString *)uid { + for (MicroQueueModel *model in self.micQueue.allValues) { + if (model.userInfo && model.userInfo.uid == uid.intValue) { + return model; + } + } + return nil; +} + + +- (void)configRedTeamScore:(long)redTeamScore + blueTeamScore:(long)blueTeamScore { + self.redTeamScore = redTeamScore; + self.blueTeamScore = blueTeamScore; +// self.redScoreLabel.text = [NSString stringWithFormat:@"%ld", redTeamScore]; +// self.blueScoreLabel.text = [NSString stringWithFormat:@"%ld", blueTeamScore]; + if (redTeamScore > 0 || blueTeamScore > 0) { + CGFloat redScale = (CGFloat)redTeamScore / (CGFloat)(redTeamScore + blueTeamScore); + if (redScale == 1) { + redScale = 0.99; + } +// [self.redProgressView mas_updateConstraints:^(MASConstraintMaker *make) { +// make.width.mas_equalTo(85 * 2 * redScale); +// }]; + } +// [self.roomPKPlayingView configRedTeamScore:redTeamScore blueTeamScore:blueTeamScore]; +} + +#pragma mark - +- (void)showSelectUserPanelWith:(GroupType)type { + XPRoomPKSelectUserView * chooseUserView = [[XPRoomPKSelectUserView alloc] init]; + chooseUserView.delegate = self; + chooseUserView.redUserArray = self.redChooseArray; + chooseUserView.blueUserArray = self.blueChooseArray; + chooseUserView.groupType = type; + chooseUserView.microQueueArray = self.micQueue.allValues; + [TTPopup popupView:chooseUserView style:TTPopupStyleAlert]; +} + +#pragma mark - +- (void)setIsManager:(BOOL)isManager { + _isManager = isManager; + self.frame = [self roomFrame]; + self.backgroundImageView.image = [self backgroundImage]; +} + +- (void)setMicQueue:(NSMutableDictionary *)micQueue { + +} + +#pragma mark - +- (void)didTapMinion { + // TODO: 最小化 +} + +- (void)didTapActionButton { + +} + +#pragma mark - +- (CGRect)roomFrame { + return CGRectMake(0, 0, 309, self.isManager ? 379 : 324); +} + +- (UIImage *)backgroundImage { + return self.isManager ? [UIImage imageNamed:@"room_pk_panel_bg_manager"] : [UIImage imageNamed:@"room_pk_panel_bg_normal"]; +} + +- (UIImageView *)backgroundImageView { + if (!_backgroundImageView) { + _backgroundImageView = [[UIImageView alloc] init]; + _backgroundImageView.contentMode = UIViewContentModeScaleAspectFill; + } + return _backgroundImageView; +} + +- (void)setupCenterVSMark { + UIImageView *vs = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"pk_vs_mark_big"]]; + [self addSubview:vs]; + [vs mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.topImageView.mas_bottom).offset(32.5); + make.size.mas_equalTo(CGSizeMake(112.5, 60.5)); + }]; +} + +- (UIImageView *)topImageView { + if (!_topImageView) { + _topImageView = [[UIImageView alloc] init]; + _topImageView.image = [UIImage imageNamed:@"room_pk_panel_top"]; + _topImageView.contentMode = UIViewContentModeScaleAspectFit; + } + return _topImageView; +} + +- (UIButton *)minionButton { + if (!_minionButton) { + _minionButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_minionButton setBackgroundImage:[UIImage imageNamed:@"room_pk_panel_be_mini_icon"] + forState:UIControlStateNormal]; + [_minionButton addTarget:self + action:@selector(didTapMinion) + forControlEvents:UIControlEventTouchUpInside]; + } + return _minionButton; +} + +- (XPRoomPKPaneAvatarView *)leaderRed { + if (!_leaderRed) { + _leaderRed = [[XPRoomPKPaneAvatarView alloc] initWithFrame:CGRectMake(0, 0, 112.5, 60.5)]; + _leaderRed.type = XPRoomPKPaneAvatarType_Leader_Red; + } + return _leaderRed; +} + +- (XPRoomPKPaneAvatarView *)memberRed_1 { + if (!_memberRed_1) { + _memberRed_1 = [[XPRoomPKPaneAvatarView alloc] initWithFrame:CGRectMake(0, 0, 35, 35)]; + _memberRed_1.type = XPRoomPKPaneAvatarType_Red; + } + return _memberRed_1; +} + +- (XPRoomPKPaneAvatarView *)memberRed_2 { + if (!_memberRed_2) { + _memberRed_2 = [[XPRoomPKPaneAvatarView alloc] initWithFrame:CGRectMake(0, 0, 35, 35)]; + _memberRed_2.type = XPRoomPKPaneAvatarType_Red; + } + return _memberRed_2; +} + +- (XPRoomPKPaneAvatarView *)memberRed_3 { + if (!_memberRed_3) { + _memberRed_3 = [[XPRoomPKPaneAvatarView alloc] initWithFrame:CGRectMake(0, 0, 35, 35)]; + _memberRed_3.type = XPRoomPKPaneAvatarType_Red; + } + return _memberRed_3; +} + +- (XPRoomPKPaneAvatarView *)leaderBlue { + if (!_leaderBlue) { + _leaderBlue = [[XPRoomPKPaneAvatarView alloc] initWithFrame:CGRectMake(0, 0, 112.5, 60.5)]; + _leaderBlue.type = XPRoomPKPaneAvatarType_Leader_Blue; + } + return _leaderBlue; +} + +- (XPRoomPKPaneAvatarView *)memberBlue_1 { + if (!_memberBlue_1) { + _memberBlue_1 = [[XPRoomPKPaneAvatarView alloc] initWithFrame:CGRectMake(0, 0, 35, 35)]; + _memberBlue_1.type = XPRoomPKPaneAvatarType_Blue; + } + return _memberBlue_1; +} + +- (XPRoomPKPaneAvatarView *)memberBlue_2 { + if (!_memberBlue_2) { + _memberBlue_2 = [[XPRoomPKPaneAvatarView alloc] initWithFrame:CGRectMake(0, 0, 35, 35)]; + _memberBlue_2.type = XPRoomPKPaneAvatarType_Blue; + } + return _memberBlue_2; +} + +- (XPRoomPKPaneAvatarView *)memberBlue_3 { + if (!_memberBlue_3) { + _memberBlue_3 = [[XPRoomPKPaneAvatarView alloc] initWithFrame:CGRectMake(0, 0, 35, 35)]; + _memberBlue_3.type = XPRoomPKPaneAvatarType_Blue; + } + return _memberBlue_3; +} + +- (UIStackView *)redTeamStackView { + if (!_redTeamStackView) { + _redTeamStackView = [[UIStackView alloc] init]; + _redTeamStackView.axis = UILayoutConstraintAxisHorizontal; + _redTeamStackView.distribution = UIStackViewDistributionFillEqually; + _redTeamStackView.alignment = UIStackViewAlignmentLeading; + _redTeamStackView.spacing = 4; + } + return _redTeamStackView; +} + +- (UIStackView *)blueTeamStackView { + if (!_blueTeamStackView) { + _blueTeamStackView = [[UIStackView alloc] init]; + _blueTeamStackView.axis = UILayoutConstraintAxisHorizontal; + _blueTeamStackView.distribution = UIStackViewDistributionFillEqually; + _blueTeamStackView.alignment = UIStackViewAlignmentTrailing; + _blueTeamStackView.spacing = 4; + } + return _blueTeamStackView; +} + +- (void)setupCountDownView { + UIView *transparentRoundedCornersBackgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 122, 30)]; + transparentRoundedCornersBackgroundView.layer.cornerRadius = 14.5; + transparentRoundedCornersBackgroundView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.7]; + [self addSubview:transparentRoundedCornersBackgroundView]; + [transparentRoundedCornersBackgroundView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.redTeamStackView.mas_bottom).offset(8); + make.size.mas_equalTo(CGSizeMake(122, 30)); + }]; + + UIImageView *clockImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_pk_clock_icon"]]; + [transparentRoundedCornersBackgroundView addSubview:clockImageView]; + [clockImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(transparentRoundedCornersBackgroundView); + make.left.mas_equalTo(transparentRoundedCornersBackgroundView).offset(12); + make.size.mas_equalTo(CGSizeMake(13, 13)); + }]; + + UILabel *titleLabel = [UILabel labelInitWithText:@"倒计时" + font:[UIFont systemFontOfSize:11 weight:UIFontWeightMedium] + textColor:[UIColor colorWithWhite:1 alpha:0.7]]; + [transparentRoundedCornersBackgroundView addSubview:titleLabel]; + [titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(transparentRoundedCornersBackgroundView); + make.left.mas_equalTo(clockImageView.mas_right).offset(6); + }]; + + [transparentRoundedCornersBackgroundView addSubview:self.countDownLabel]; + [self.countDownLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(transparentRoundedCornersBackgroundView); + make.left.mas_equalTo(titleLabel.mas_right).offset(6); + }]; +} + +- (void)setupProgressArea { + UIView *progressArea = [[UIView alloc] init]; + progressArea.backgroundColor = [UIColor colorWithWhite:1 alpha:0.6]; + [self addSubview:progressArea]; + [progressArea mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.redTeamStackView.mas_bottom).offset(28.5); + make.left.mas_equalTo(self.leaderRed.mas_left).offset(-4.5); + make.right.mas_equalTo(self.leaderBlue.mas_right).offset(4.5); + make.height.mas_equalTo(56.5); + }]; + + UIImageView *redPinImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_pk_panel_red_mark"]]; + [progressArea addSubview:redPinImageView]; + [redPinImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.mas_equalTo(progressArea); + make.size.mas_equalTo(CGSizeMake(47.5, 56.5)); + }]; + + UIImageView *bluePinImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"room_pk_panel_blue_mark"]]; + [progressArea addSubview:bluePinImageView]; + [bluePinImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.right.mas_equalTo(progressArea); + make.size.mas_equalTo(CGSizeMake(47.5, 56.5)); + }]; + + [progressArea insertSubview:self.redCountImageView belowSubview:redPinImageView]; + [self.redCountImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(progressArea); + make.left.mas_equalTo(progressArea).offset(47.5); + make.right.mas_equalTo(progressArea).offset(-47.5); + make.height.mas_equalTo(14); + }]; + + [progressArea addSubview:self.fireImageView]; + [self.fireImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(progressArea).offset(0); + make.centerY.mas_equalTo(progressArea); + make.height.mas_equalTo(35); + make.width.mas_equalTo(24); + }]; + + [progressArea insertSubview:self.blueCountImageView aboveSubview:self.redCountImageView]; + [self.blueCountImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(progressArea).offset(-47.5); + make.centerY.mas_equalTo(progressArea); + make.leading.mas_equalTo(self.fireImageView.mas_centerX); + make.height.mas_equalTo(14); + }]; + + UILabel *giftLabel_red = [UILabel labelInitWithText:@"Gift" + font:[UIFont systemFontOfSize:15 weight:UIFontWeightBold] + textColor:[UIColor whiteColor]]; + [redPinImageView addSubview:giftLabel_red]; + [giftLabel_red mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(redPinImageView); + make.bottom.mas_equalTo(redPinImageView).offset(-12); + }]; + UILabel *giftLabel_blue = [UILabel labelInitWithText:@"Gift" + font:[UIFont systemFontOfSize:15 weight:UIFontWeightBold] + textColor:[UIColor whiteColor]]; + [bluePinImageView addSubview:giftLabel_blue]; + [giftLabel_blue mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(bluePinImageView); + make.bottom.mas_equalTo(bluePinImageView).offset(-12); + }]; +} + +- (UILabel *)countDownLabel { + if (!_countDownLabel) { + _countDownLabel = [UILabel labelInitWithText:@"00:00" + font:[UIFont systemFontOfSize:15 weight:UIFontWeightBold] + textColor:[UIColor whiteColor]]; + } + return _countDownLabel; +} + +- (UIImageView *)redCountImageView { + if (!_redCountImageView) { + _redCountImageView = [[UIImageView alloc] init]; + _redCountImageView.image = [[UIImage imageNamed:@"pk_progress_red"] + resizableImageWithCapInsets:UIEdgeInsetsZero + resizingMode:UIImageResizingModeTile]; + } + return _redCountImageView; +} + +- (UILabel *)redCountLabel { + if (!_redCountLabel) { + _redCountLabel = [UILabel labelInitWithText:@"0" + font:[UIFont boldSystemFontOfSize:12] + textColor:[UIColor whiteColor]]; + _redCountLabel.textAlignment = NSTextAlignmentLeft; + } + return _redCountLabel; +} +- (UIImageView *)blueCountImageView { + if (!_blueCountImageView) { + _blueCountImageView = [[UIImageView alloc] init]; + _blueCountImageView.image = [[UIImage imageNamed:@"pk_progress_blue"] + resizableImageWithCapInsets:UIEdgeInsetsZero + resizingMode:UIImageResizingModeTile]; + } + return _blueCountImageView; +} + +- (UILabel *)blueCountLabel { + if (!_blueCountLabel) { + _blueCountLabel = [UILabel labelInitWithText:@"0" + font:[UIFont boldSystemFontOfSize:12] + textColor:[UIColor whiteColor]]; + _blueCountLabel.textAlignment = NSTextAlignmentRight; + } + return _blueCountLabel; +} + +- (UIImageView *)fireImageView { + if (!_fireImageView) { + _fireImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"pk_progress_fire_icon"]]; + _fireImageView.contentMode = UIViewContentModeScaleAspectFit; + } + return _fireImageView; +} + +- (UIButton *)actionButton { + if (!_actionButton) { + _actionButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_actionButton setBackgroundImage:[UIImage imageNamed:@"room_pk_panel_button_bg"] + forState:UIControlStateNormal]; + [_actionButton addTarget:self + action:@selector(didTapActionButton) + forControlEvents:UIControlEventTouchUpInside]; + } + return _actionButton; +} @end