finish:1.0.17
This commit is contained in:
@@ -540,6 +540,8 @@
|
||||
54C3895F2C2189DD00FD47B1 /* XPHomeMinePresenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C3895E2C2189DD00FD47B1 /* XPHomeMinePresenter.m */; };
|
||||
54C389622C23BD1600FD47B1 /* HomeRankAvatarModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C389612C23BD1600FD47B1 /* HomeRankAvatarModel.m */; };
|
||||
54C389672C24464600FD47B1 /* HomeMineRoomModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C389662C24464600FD47B1 /* HomeMineRoomModel.m */; };
|
||||
54C608522CBE0BEB003DD5D2 /* game_floating_bg.svga in Resources */ = {isa = PBXBuildFile; fileRef = 54C608502CBE0BEB003DD5D2 /* game_floating_bg.svga */; };
|
||||
54C608552CBE1EC7003DD5D2 /* GameUniversalBannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C608542CBE1EC7003DD5D2 /* GameUniversalBannerView.m */; };
|
||||
54C9A10D2C3D2FD300C6D970 /* XPMineDataGameMateTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C9A10C2C3D2FD300C6D970 /* XPMineDataGameMateTableViewCell.m */; };
|
||||
54C9A1102C3D3E1700C6D970 /* XPMineGameMateOrderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C9A10F2C3D3E1700C6D970 /* XPMineGameMateOrderView.m */; };
|
||||
54C9A1132C3D5A2300C6D970 /* XPGameOrdersListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C9A1122C3D5A2300C6D970 /* XPGameOrdersListViewController.m */; };
|
||||
@@ -2638,6 +2640,9 @@
|
||||
54C389642C24448900FD47B1 /* XPHomeMineProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPHomeMineProtocol.h; sourceTree = "<group>"; };
|
||||
54C389652C24464600FD47B1 /* HomeMineRoomModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeMineRoomModel.h; sourceTree = "<group>"; };
|
||||
54C389662C24464600FD47B1 /* HomeMineRoomModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeMineRoomModel.m; sourceTree = "<group>"; };
|
||||
54C608502CBE0BEB003DD5D2 /* game_floating_bg.svga */ = {isa = PBXFileReference; lastKnownFileType = file; path = game_floating_bg.svga; sourceTree = "<group>"; };
|
||||
54C608532CBE1EC7003DD5D2 /* GameUniversalBannerView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GameUniversalBannerView.h; sourceTree = "<group>"; };
|
||||
54C608542CBE1EC7003DD5D2 /* GameUniversalBannerView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GameUniversalBannerView.m; sourceTree = "<group>"; };
|
||||
54C9A10B2C3D2FD300C6D970 /* XPMineDataGameMateTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineDataGameMateTableViewCell.h; sourceTree = "<group>"; };
|
||||
54C9A10C2C3D2FD300C6D970 /* XPMineDataGameMateTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPMineDataGameMateTableViewCell.m; sourceTree = "<group>"; };
|
||||
54C9A10E2C3D3E1700C6D970 /* XPMineGameMateOrderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPMineGameMateOrderView.h; sourceTree = "<group>"; };
|
||||
@@ -6530,6 +6535,14 @@
|
||||
path = SubViews;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
54C608512CBE0BEB003DD5D2 /* game */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
54C608502CBE0BEB003DD5D2 /* game_floating_bg.svga */,
|
||||
);
|
||||
path = game;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
54E82E9B2CA684A600C931D9 /* Features */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -8145,6 +8158,8 @@
|
||||
E80E09B22A42071D00CD2BE7 /* XPRoomStarKitchenBannerView.m */,
|
||||
238A90052BA9729200828123 /* PIUniversalBannerView.h */,
|
||||
238A90062BA9729200828123 /* PIUniversalBannerView.m */,
|
||||
54C608532CBE1EC7003DD5D2 /* GameUniversalBannerView.h */,
|
||||
54C608542CBE1EC7003DD5D2 /* GameUniversalBannerView.m */,
|
||||
54E4D52E2C9048E1009E1FEA /* LuckyGiftWinningFlagView.h */,
|
||||
54E4D52F2C9048E1009E1FEA /* LuckyGiftWinningFlagView.m */,
|
||||
54E4D5312C90658C009E1FEA /* LuckyGiftWinningBannerView.h */,
|
||||
@@ -10058,6 +10073,7 @@
|
||||
E8A1E45C276220B100B294CA /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
54C608512CBE0BEB003DD5D2 /* game */,
|
||||
54FFD3802C9BD12600DE61E5 /* cp */,
|
||||
54F179062C8EA48C00CB5219 /* Combo_Boom.svga */,
|
||||
23EE96F12B9FF6BE00475D69 /* pi_crazy_zoo.svga */,
|
||||
@@ -11331,6 +11347,7 @@
|
||||
54FFD3832C9BD12600DE61E5 /* 5.svga in Resources */,
|
||||
54FFD3842C9BD12600DE61E5 /* 3.svga in Resources */,
|
||||
54FFD3852C9BD12600DE61E5 /* 2.svga in Resources */,
|
||||
54C608522CBE0BEB003DD5D2 /* game_floating_bg.svga in Resources */,
|
||||
E80EC8A828ACD84100D133C5 /* emoji_76@2x.png in Resources */,
|
||||
2368ECCF2BC38F9800EDF4C9 /* InfoPlist.strings in Resources */,
|
||||
E80EC88E28ACD84000D133C5 /* emoji_142@2x.png in Resources */,
|
||||
@@ -12839,6 +12856,7 @@
|
||||
1427218829A75F6F00C7C423 /* HTTPErrorResponse.m in Sources */,
|
||||
E85E7B032A4EB0D200B6D00A /* XPGuildIncomePresenter.m in Sources */,
|
||||
E8A30BF928534E48003B4873 /* XPSessionFindNewEmptyTableViewCell.m in Sources */,
|
||||
54C608552CBE1EC7003DD5D2 /* GameUniversalBannerView.m in Sources */,
|
||||
545888362C1C306B00897585 /* XPRoomPKPaneAvatarView.m in Sources */,
|
||||
E896EFB22771C93B00AD2CC1 /* XPMineFriendNumberView.m in Sources */,
|
||||
14EB640D29A5C16000A4A00B /* XPMomentsSimpleDetailNav.m in Sources */,
|
||||
|
21
YuMi/Assets.xcassets/1.0.17/game_banner_go.imageset/Contents.json
vendored
Normal file
21
YuMi/Assets.xcassets/1.0.17/game_banner_go.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "go@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
BIN
YuMi/Assets.xcassets/1.0.17/game_banner_go.imageset/go@3x.png
vendored
Normal file
BIN
YuMi/Assets.xcassets/1.0.17/game_banner_go.imageset/go@3x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.8 KiB |
@@ -137,8 +137,13 @@ typedef NS_ENUM(NSInteger, BackMusicPlayState) {
|
||||
///背景人声的音量大小
|
||||
- (void)updateUserSound:(int)soundVol;
|
||||
|
||||
///用户调整麦位状态时触发,不持久化数值
|
||||
- (void)updateUserSoundWithUserInMic:(int)soundVol;
|
||||
|
||||
- (NSInteger)loadUserSound;
|
||||
|
||||
- (void)resetToDefault;
|
||||
|
||||
@property (nonatomic,assign) BOOL broadcast;
|
||||
@end
|
||||
|
||||
|
@@ -11,6 +11,9 @@
|
||||
#import "ZegoRtcImpl.h"
|
||||
#import "TRTCRtcImpl.h"
|
||||
|
||||
UIKIT_EXTERN NSString * kRoomBackMusicAudioMixingVolumeKey;
|
||||
UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
|
||||
|
||||
@interface RtcManager()<RtcImplDelegate>
|
||||
|
||||
@property (nonatomic, strong) id<RtcInterface> engine;
|
||||
@@ -132,18 +135,35 @@
|
||||
|
||||
///背景音乐的音量大小
|
||||
- (void)updateMusicSound:(int)soundVol {
|
||||
[[NSUserDefaults standardUserDefaults] setInteger:soundVol forKey:kRoomBackMusicAudioMixingVolumeKey];
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
[self.engine updateMusicSound:soundVol];
|
||||
}
|
||||
|
||||
///背景人声的音量大小
|
||||
- (void)updateUserSound:(int)soundVol {
|
||||
[[NSUserDefaults standardUserDefaults] setInteger:soundVol forKey:kRoomBackMusicCaptureVolumeKey];
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
[self.engine updateUserSound:soundVol];
|
||||
}
|
||||
|
||||
- (void)updateUserSoundWithUserInMic:(int)soundVol {
|
||||
[self.engine updateUserSound:soundVol];
|
||||
}
|
||||
|
||||
- (NSInteger)loadUserSound {
|
||||
// 查询 recEngine 的人声音量,如果没有数据,则设置为默认值 50
|
||||
if ([self.engine loadUserSound] == 0) {
|
||||
[self updateUserSound:50];
|
||||
return [[NSUserDefaults standardUserDefaults] integerForKey:kRoomBackMusicCaptureVolumeKey];
|
||||
}
|
||||
return [self.engine loadUserSound];
|
||||
}
|
||||
|
||||
- (void)resetToDefault {
|
||||
[self.engine updateUserSound:50];
|
||||
}
|
||||
|
||||
- (void)usersSpeaking:(NSMutableArray *)uids {
|
||||
if (self.engineDelegate) {
|
||||
[self.engineDelegate usersSpeaking:uids];
|
||||
|
@@ -125,9 +125,6 @@
|
||||
@property (nonatomic, strong) UIImageView *progressBar;
|
||||
|
||||
@property (nonatomic, strong) UIView *rankingView;
|
||||
//@property (nonatomic, strong) UIImageView *wear_1;
|
||||
//@property (nonatomic, strong) UIImageView *wear_2;
|
||||
//@property (nonatomic, strong) UIImageView *wear_3;
|
||||
@property (nonatomic, strong) NetImageView *rankAvatar_1;
|
||||
@property (nonatomic, strong) NetImageView *rankAvatar_2;
|
||||
@property (nonatomic, strong) NetImageView *rankAvatar_3;
|
||||
@@ -269,11 +266,15 @@
|
||||
}];
|
||||
|
||||
_vapView = [[VAPView alloc] init];
|
||||
_vapView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
_vapView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
[self.view addSubview:_vapView];
|
||||
[_vapView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.mas_equalTo(self.view);
|
||||
make.top.mas_equalTo(self.view).offset(kGetScaleWidth(170) - kSafeAreaBottomHeight);
|
||||
if (iPhoneXSeries) {
|
||||
make.top.mas_equalTo(self.view).offset(kGetScaleWidth(170) - kSafeAreaBottomHeight);
|
||||
} else {
|
||||
make.top.mas_equalTo(self.view).offset(kGetScaleWidth(40) - kSafeAreaBottomHeight);
|
||||
}
|
||||
make.width.mas_equalTo(kGetScaleWidth(211));
|
||||
make.height.mas_equalTo(kGetScaleWidth(489));
|
||||
}];
|
||||
@@ -306,7 +307,7 @@
|
||||
[self.giftsView addSubview:helpButton];
|
||||
[helpButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.mas_equalTo(jackpotBackgroundImageView).offset(-8);
|
||||
make.trailing.mas_equalTo(jackpotBackgroundImageView).offset(-3);
|
||||
make.trailing.mas_equalTo(jackpotBackgroundImageView).offset(-5);
|
||||
make.width.height.mas_equalTo(43);
|
||||
}];
|
||||
|
||||
@@ -319,7 +320,6 @@
|
||||
[jackpotTitleImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.mas_equalTo(jackpotBackgroundImageView);
|
||||
make.centerY.mas_equalTo(helpButton);
|
||||
// make.size.mas_equalTo(CGSizeMake(kGetScaleWidth(166), kGetScaleWidth(52)));
|
||||
make.height.mas_equalTo(kGetScaleWidth(52));
|
||||
make.leading.mas_equalTo(jackpotTitleLabel).offset(-40);
|
||||
make.trailing.mas_equalTo(jackpotTitleLabel).offset(40);
|
||||
@@ -335,7 +335,6 @@
|
||||
make.top.mas_equalTo(jackpotTitleImageView.mas_bottom).offset(4.5);
|
||||
make.leading.mas_equalTo(jackpotBackgroundImageView).offset(28);
|
||||
make.trailing.mas_equalTo(jackpotBackgroundImageView).offset(-28);
|
||||
make.height.mas_equalTo(12);
|
||||
}];
|
||||
|
||||
UIImageView *giftBigBG = [self jackpotGiftBigBG];
|
||||
@@ -414,15 +413,15 @@
|
||||
[progressBG mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.bottom.mas_equalTo(helpButton.mas_top).offset(-13);
|
||||
make.trailing.mas_equalTo(self.view).offset(-6);
|
||||
make.width.mas_equalTo(kGetScaleWidth(58));
|
||||
make.width.mas_equalTo(57);
|
||||
make.height.mas_equalTo(kGetScaleWidth(240));
|
||||
}];
|
||||
|
||||
[progressBG addSubview:self.progressBar];
|
||||
[self.progressBar mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(progressBG).offset(kGetScaleWidth(21.5));
|
||||
make.leading.mas_equalTo(progressBG).offset(21);
|
||||
make.bottom.mas_equalTo(progressBG).offset(kGetScaleWidth(-35));
|
||||
make.width.mas_equalTo(kGetScaleWidth(18));
|
||||
make.width.mas_equalTo(18);
|
||||
make.height.mas_equalTo(kGetScaleWidth(180)).multipliedBy(1);
|
||||
}];
|
||||
|
||||
@@ -430,8 +429,8 @@
|
||||
[self.view addSubview:progressNumberBG];
|
||||
[progressNumberBG mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.bottom.mas_equalTo(progressBG).offset(kGetScaleWidth(-13));
|
||||
make.leading.mas_equalTo(progressBG).offset(11);
|
||||
make.width.height.mas_equalTo(kGetScaleWidth(43));
|
||||
make.centerX.mas_equalTo(self.progressBar);
|
||||
make.width.height.mas_equalTo(43);
|
||||
}];
|
||||
|
||||
[self.view addSubview:self.progressLabel];
|
||||
@@ -679,9 +678,10 @@
|
||||
self.progressLabel.text = @(boom.speed).stringValue;
|
||||
CGFloat progress = boom.speed * 1.0 / 100.0;
|
||||
if (progress == 0) {
|
||||
progress = 0.05;
|
||||
progress = 0.1;
|
||||
}
|
||||
[UIView animateWithDuration:0.3 animations:^{
|
||||
|
||||
[UIView animateWithDuration:0.2 animations:^{
|
||||
[self.progressBar mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||
make.height.mas_equalTo(kGetScaleWidth(180) * progress); // 动态调整高度
|
||||
}];
|
||||
@@ -797,7 +797,10 @@
|
||||
#pragma mark -
|
||||
- (UILabel *)progressLabel {
|
||||
if (!_progressLabel) {
|
||||
_progressLabel = [UILabel labelInitWithText:@"99" font:kFontMedium(15) textColor:UIColorFromRGB(0xF0E7BA)];
|
||||
_progressLabel = [UILabel labelInitWithText:@""
|
||||
font:kFontMedium(15)
|
||||
textColor:UIColorFromRGB(0xF0E7BA)];
|
||||
_progressLabel.textAlignment = NSTextAlignmentCenter;
|
||||
}
|
||||
return _progressLabel;
|
||||
}
|
||||
@@ -810,7 +813,7 @@
|
||||
|
||||
- (UIImageView *)backgroundImageView {
|
||||
UIImageView *bg = [[UIImageView alloc] initWithImage:kImage(@"room_boom_progress_bg")];
|
||||
bg.contentMode = UIViewContentModeScaleAspectFit;
|
||||
bg.contentMode = UIViewContentModeScaleAspectFill;
|
||||
bg.userInteractionEnabled = YES;
|
||||
return bg;
|
||||
}
|
||||
@@ -862,6 +865,7 @@
|
||||
- (UILabel *)jackpotTipsLabel {
|
||||
UILabel *label = [UILabel labelInitWithText:YMLocalizedString(@"RoomBoom_10") font:kFontRegular(10) textColor:UIColorFromRGB(0xCBA1FF)];
|
||||
label.textAlignment = NSTextAlignmentCenter;
|
||||
label.numberOfLines = 2;
|
||||
return label;
|
||||
}
|
||||
|
||||
@@ -889,7 +893,7 @@
|
||||
}
|
||||
|
||||
- (UIImageView *)rankingTitleBG {
|
||||
UIImage *image = [kImage(@"room_boom_result_top_bg") resizableImageWithCapInsets:UIEdgeInsetsMake(0, 40, 0, 40) resizingMode:UIImageResizingModeStretch];
|
||||
UIImage *image = [kImage(@"room_boom_result_top_bg") resizableImageWithCapInsets:UIEdgeInsetsMake(0, 40, 0, 40) resizingMode:UIImageResizingModeTile];
|
||||
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
|
||||
return imageView;
|
||||
}
|
||||
@@ -1100,10 +1104,11 @@
|
||||
|
||||
- (UIImageView *)progressBar {
|
||||
if (!_progressBar) {
|
||||
UIImage *progressImage = [kImage(@"room_boom_progress_bar") resizableImageWithCapInsets:UIEdgeInsetsMake(10, 0, 10, 0) resizingMode:UIImageResizingModeStretch];
|
||||
UIImage *progressImage = [kImage(@"room_boom_progress_bar") resizableImageWithCapInsets:UIEdgeInsetsMake(40, 0, 0, 0) resizingMode:UIImageResizingModeTile];
|
||||
_progressBar = [[UIImageView alloc] initWithImage:progressImage];
|
||||
_progressBar.userInteractionEnabled = YES;
|
||||
_progressBar.hidden = NO;
|
||||
_progressBar.clipsToBounds = YES;
|
||||
}
|
||||
return _progressBar;
|
||||
}
|
||||
|
@@ -15,6 +15,7 @@
|
||||
#import "RoomHostDelegate.h"
|
||||
#import "XPRoomViewController.h"
|
||||
#import "XCCurrentVCStackManager.h"
|
||||
#import "XPSkillCardPlayerManager.h"
|
||||
|
||||
@interface RoomBoomBannerAnimation ()
|
||||
|
||||
@@ -25,7 +26,6 @@
|
||||
|
||||
@property (nonatomic, strong) Boom632Model *model;
|
||||
|
||||
//@property (nonatomic, copy) void(^didTapGo)(void);
|
||||
@property (nonatomic, assign) BOOL needHandleTap;
|
||||
|
||||
@end
|
||||
@@ -54,7 +54,7 @@
|
||||
[UIView animateWithDuration:0.25 animations:^{
|
||||
bannerView.center = CGPointMake(superView.center.x, height/2 + 80);
|
||||
} completion:^(BOOL finished) {
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||
[UIView animateWithDuration:0.25 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
|
||||
bannerView.frame = CGRectMake(-KScreenWidth, 80, width, height);
|
||||
} completion:^(BOOL finished) {
|
||||
@@ -90,14 +90,12 @@
|
||||
|
||||
if (roomVC) {
|
||||
// 是否相同房間
|
||||
if ([roomVC getRoomInfo].uid == self.model.roomUid) {
|
||||
if ([roomVC getRoomInfo].uid == [[XPSkillCardPlayerManager shareInstance] roomUid].integerValue) {
|
||||
return;
|
||||
}
|
||||
|
||||
__block NSString *targetRoomUid = @(self.model.roomUid).stringValue;
|
||||
@kWeakify(self);
|
||||
[TTPopup alertWithMessage:YMLocalizedString(@"Combo_10") confirmHandler:^{
|
||||
// @kStrongify(self);
|
||||
[roomVC exitRoom];
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||
[XPRoomViewController openRoom:targetRoomUid
|
||||
@@ -169,7 +167,7 @@
|
||||
make.top.mas_equalTo(self.titleLabel.mas_bottom);
|
||||
make.left.mas_equalTo(self.rocket.mas_right).offset(4);
|
||||
make.right.mas_equalTo(goButton.mas_left);
|
||||
make.height.mas_offset(17);
|
||||
// make.height.mas_offset(17);
|
||||
}];
|
||||
}
|
||||
return self;
|
||||
@@ -207,6 +205,7 @@
|
||||
_titleLabel = [UILabel labelInitWithText:@""
|
||||
font:kFontMedium(12)
|
||||
textColor:[UIColor whiteColor]];
|
||||
|
||||
_titleLabel.shadowColor = [UIColor grayColor];
|
||||
_titleLabel.shadowOffset = CGSizeMake(2, 2);
|
||||
}
|
||||
@@ -218,6 +217,7 @@
|
||||
_contentLabel = [UILabel labelInitWithText:@""
|
||||
font:kFontMedium(10)
|
||||
textColor:[UIColor whiteColor]];
|
||||
_contentLabel.numberOfLines = 2;
|
||||
NSAttributedString *as_2 = [[NSAttributedString alloc] initWithString:@"Boom"
|
||||
attributes:@{NSFontAttributeName: kFontMedium(10),
|
||||
NSForegroundColorAttributeName: UIColorFromRGB(0xFFE018)}];
|
||||
@@ -225,8 +225,15 @@
|
||||
attributes:@{NSFontAttributeName: kFontMedium(10),
|
||||
NSForegroundColorAttributeName: [UIColor whiteColor]}];
|
||||
NSMutableAttributedString *content = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"RoomBoom_3") attributes:@{NSFontAttributeName: kFontMedium(10), NSForegroundColorAttributeName: [UIColor whiteColor]}];
|
||||
[content appendAttributedString:as_2];
|
||||
[content appendAttributedString:as_3];
|
||||
if (isMSRTL()) {
|
||||
[content appendAttributedString:as_3];
|
||||
} else if (isMSZH()) {
|
||||
[content appendAttributedString:as_2];
|
||||
[content appendAttributedString:as_3];
|
||||
} else {
|
||||
[content insertAttributedString:as_2 atIndex:0];
|
||||
}
|
||||
|
||||
_contentLabel.attributedText = content;
|
||||
}
|
||||
return _contentLabel;
|
||||
|
@@ -26,6 +26,7 @@
|
||||
@kStrongify(self);
|
||||
self.icon.imageUrl = boomModel.pic;
|
||||
CGFloat progress = boomModel.speed * 1.0 / 100.0;
|
||||
|
||||
if (progress == 0) {
|
||||
self.progress.hidden = YES;
|
||||
} else {
|
||||
@@ -79,7 +80,7 @@
|
||||
|
||||
- (UIImageView *)progress {
|
||||
if (!_progress) {
|
||||
UIImage *progressImage = [kImage(@"room_boom_entry_progress_bar") resizableImageWithCapInsets:UIEdgeInsetsMake(0, 3, 0, 3) resizingMode:UIImageResizingModeStretch];
|
||||
UIImage *progressImage = [kImage(@"room_boom_entry_progress_bar") resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 3) resizingMode:UIImageResizingModeTile];
|
||||
_progress = [[UIImageView alloc] initWithImage:progressImage];
|
||||
_progress.userInteractionEnabled = YES;
|
||||
_progress.hidden = NO;
|
||||
|
@@ -261,9 +261,13 @@
|
||||
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
|
||||
layout.itemSize = CGSizeMake(kGetScaleWidth(88), kGetScaleWidth(88)); // 设置每个item的大小
|
||||
layout.minimumLineSpacing = 20; // 行间距
|
||||
layout.minimumInteritemSpacing = 11.5; // 列间距
|
||||
if (iPhoneXSeries) {
|
||||
layout.minimumInteritemSpacing = 11.5; // 列间距
|
||||
} else {
|
||||
layout.minimumInteritemSpacing = 4;
|
||||
}
|
||||
|
||||
layout.scrollDirection = UICollectionViewScrollDirectionVertical; // 垂直滚动
|
||||
// layout.sectionInset = UIEdgeInsetsMake(10, 10, 10, 10); // 设置边距
|
||||
|
||||
_giftsCollectionView = [[UICollectionView alloc] initWithFrame:CGRectZero
|
||||
collectionViewLayout:layout];
|
||||
|
@@ -50,6 +50,9 @@ typedef NS_ENUM(NSInteger, ActivityType) {
|
||||
@property(nonatomic,strong) ActivityInfoItemModel *gameModel;
|
||||
///游戏链接
|
||||
@property(nonatomic,copy) NSString *gameUrl;
|
||||
|
||||
///配置资源位 id
|
||||
@property (nonatomic, assign) NSInteger id;
|
||||
@end
|
||||
|
||||
|
||||
|
@@ -290,8 +290,6 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
|
||||
RoomBottomEntranceModel *model = roomInfo.rightBottomIconConfig;
|
||||
if (model) {
|
||||
@kWeakify(self);
|
||||
model.skipUrl = @"https://api.hfighting.com/molistar/modules/smashEggs/index.html";
|
||||
model.icon1Url = @"https://image.pekolive.com/egg.png";
|
||||
|
||||
if (model.icon2Url.length > 0) {
|
||||
if (!_loader_url_2) {
|
||||
@@ -658,8 +656,7 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
|
||||
- (void)didTapConfigEntranceButton {
|
||||
RoomInfoModel *roomInfo = self.hostDelegate.getRoomInfo;
|
||||
RoomBottomEntranceModel *model = roomInfo.rightBottomIconConfig;
|
||||
model.skipUrl = @"https://api.molistar.xyz/molistar/modules/smashEggs/index.html";
|
||||
model.icon1Url = @"https://image.pekolive.com/egg.png";
|
||||
|
||||
if (!model) {
|
||||
return;
|
||||
}
|
||||
|
@@ -0,0 +1,26 @@
|
||||
//
|
||||
// GameUniversalBannerView.h
|
||||
// YuMi
|
||||
//
|
||||
// Created by P on 2024/10/15.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@class SVGAVideoEntity, PIUniversalBannerModel, AttachmentModel;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface GameUniversalBannerView : UIView
|
||||
|
||||
@property (nonatomic, strong) SVGAVideoEntity *entity;
|
||||
@property (nonatomic, strong) PIUniversalBannerModel *model;
|
||||
|
||||
+ (void)display:(UIView *)superView
|
||||
with:(AttachmentModel *)attachment
|
||||
complete:(void(^)(void))complete
|
||||
goToGame:(void(^)(NSInteger gameID))go;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
290
YuMi/Modules/YMRoom/View/AnimationView/GameUniversalBannerView.m
Normal file
290
YuMi/Modules/YMRoom/View/AnimationView/GameUniversalBannerView.m
Normal file
@@ -0,0 +1,290 @@
|
||||
//
|
||||
// GameUniversalBannerView.m
|
||||
// YuMi
|
||||
//
|
||||
// Created by P on 2024/10/15.
|
||||
//
|
||||
|
||||
#import "GameUniversalBannerView.h"
|
||||
|
||||
#import <SVGA.h>
|
||||
#import "AttachmentModel.h"
|
||||
#import "PIUniversalBannerModel.h"
|
||||
|
||||
@interface GameUniversalBannerView ()
|
||||
|
||||
@property (nonatomic, strong) NetImageView *bgImageView;
|
||||
@property (nonatomic, strong) SVGAImageView *bgSVGA;
|
||||
@property (nonatomic, strong) NetImageView *gameIcon;
|
||||
@property (nonatomic, strong) NetImageView *avatarIcon;
|
||||
@property (nonatomic, strong) UILabel *titleLabel;
|
||||
@property (nonatomic, strong) UIButton *goButton;
|
||||
@property (nonatomic, assign) NSString *gameID;
|
||||
@property (nonatomic, strong) SVGAParser *parser;
|
||||
|
||||
@property (nonatomic, copy) void(^completeDisplay)(void);
|
||||
@property (nonatomic, copy) void(^didTapGo)(NSInteger gameID);
|
||||
|
||||
@end
|
||||
|
||||
@implementation GameUniversalBannerView
|
||||
|
||||
+ (void)display:(UIView *)superView
|
||||
with:(AttachmentModel *)attachment
|
||||
complete:(void(^)(void))complete
|
||||
goToGame:(void(^)(NSInteger gameID))go {
|
||||
|
||||
CGFloat width = KScreenWidth;
|
||||
CGFloat height = kGetScaleWidth(70);
|
||||
|
||||
PIUniversalBannerModel *model = [PIUniversalBannerModel modelWithDictionary:attachment.data];
|
||||
GameUniversalBannerView *bannerView = [[GameUniversalBannerView alloc] initWithFrame:CGRectMake(KScreenWidth, 80, width, height)];
|
||||
bannerView.model = model;
|
||||
bannerView.completeDisplay = complete;
|
||||
bannerView.didTapGo = go;
|
||||
bannerView.gameID = model.skipContent;
|
||||
[superView addSubview:bannerView];
|
||||
|
||||
@kWeakify(bannerView);
|
||||
[UIView animateWithDuration:0.25 animations:^{
|
||||
bannerView.center = CGPointMake(superView.center.x, height/2 + 80);
|
||||
} completion:^(BOOL finished) {
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||
[UIView animateWithDuration:0.25 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
|
||||
bannerView.frame = CGRectMake(-KScreenWidth, 80, width, height);
|
||||
} completion:^(BOOL finished) {
|
||||
@kStrongify(bannerView);
|
||||
[bannerView removeFromSuperview];
|
||||
if (bannerView.completeDisplay) {
|
||||
bannerView.completeDisplay();
|
||||
}
|
||||
}];
|
||||
});
|
||||
}];
|
||||
}
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
if (self = [super initWithFrame:frame]) {
|
||||
[self addSubview:self.bgSVGA];
|
||||
[self.bgSVGA mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.mas_equalTo(self);
|
||||
}];
|
||||
|
||||
[self addSubview:self.gameIcon];
|
||||
[self.gameIcon mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(44);
|
||||
make.height.mas_equalTo(44);
|
||||
make.centerY.mas_equalTo(self);
|
||||
make.leading.mas_equalTo(35);
|
||||
}];
|
||||
|
||||
[self addSubview:self.avatarIcon];
|
||||
[self.avatarIcon mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(28);
|
||||
make.height.mas_equalTo(28);
|
||||
make.centerY.mas_equalTo(self);
|
||||
make.leading.mas_equalTo(self.gameIcon.mas_trailing).offset(5);
|
||||
}];
|
||||
|
||||
[self addSubview:self.goButton];
|
||||
[self.goButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerY.mas_equalTo(self);
|
||||
make.trailing.mas_equalTo(-36);
|
||||
make.size.mas_equalTo(CGSizeMake(35, 20));
|
||||
}];
|
||||
|
||||
[self addSubview:self.titleLabel];
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(117);
|
||||
make.trailing.mas_equalTo(-80);
|
||||
make.height.mas_equalTo(70);
|
||||
}];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)setEntity:(SVGAVideoEntity *)entity {
|
||||
_entity = entity;
|
||||
self.bgSVGA.videoItem = entity;
|
||||
[self.bgSVGA autoPlay];
|
||||
}
|
||||
|
||||
- (void)setModel:(PIUniversalBannerModel *)model {
|
||||
_model = model;
|
||||
NSDictionary *textDic = model.template;
|
||||
if(textDic.allKeys.count == 0) {
|
||||
return ;
|
||||
}
|
||||
|
||||
NSString *key = [NSBundle uploadLanguageText];
|
||||
NSString *title = textDic[key] == nil ? textDic[textDic.allKeys.firstObject] : textDic[key];
|
||||
if(title.length == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
[title stringByReplacingOccurrencesOfString:@"\n" withString:@""];
|
||||
if (_model.fontSize <= 0){
|
||||
_model.fontSize = 12;
|
||||
}
|
||||
CGFloat font = _model.fontSize;
|
||||
NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title
|
||||
attributes:@{
|
||||
NSFontAttributeName:[UIFont systemFontOfSize:font],
|
||||
NSForegroundColorAttributeName:[DJDKMIMOMColor colorWithHexString:_model.textColor]}];
|
||||
|
||||
for (PIUniversalBannerItemModel *model in _model.contents) {
|
||||
if([model.type isEqualToString:@"TEXT"]){
|
||||
NSDictionary *subTextDic = model.text;
|
||||
if(subTextDic.allKeys.count > 0){
|
||||
NSString *subText = subTextDic[key] == nil ? subTextDic[subTextDic.allKeys.firstObject] : subTextDic[key];
|
||||
NSAttributedString *attText = [[NSAttributedString alloc]initWithString:subText attributes:@{NSForegroundColorAttributeName:[DJDKMIMOMColor colorWithHexString:model.textColor],NSFontAttributeName:[UIFont systemFontOfSize:font]}];
|
||||
if ([attribute.string containsString:[NSString stringWithFormat:@"{%@}",model.key]]){
|
||||
[attribute replaceCharactersInRange:[attribute.string rangeOfString:[NSString stringWithFormat:@"{%@}",model.key]] withAttributedString:attText];
|
||||
}
|
||||
}
|
||||
} else if ([model.type isEqualToString:@"IMAGE"]) {
|
||||
if ([model.key isEqualToString:@"avatar"]) {
|
||||
[self.avatarIcon loadImageWithUrl:model.image completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
|
||||
if (!image) {
|
||||
[self.avatarIcon mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(0);
|
||||
}];
|
||||
} else {
|
||||
self.avatarIcon.image = image;
|
||||
}
|
||||
}];
|
||||
} else if ([model.key isEqualToString:@"gameIcon"]) {
|
||||
[self.gameIcon loadImageWithUrl:model.image completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
|
||||
if (!image) {
|
||||
[self.gameIcon mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||
make.width.mas_equalTo(0);
|
||||
}];
|
||||
} else {
|
||||
self.gameIcon.image = image;
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
if ([attribute.string containsString:[NSString stringWithFormat:@"{%@}",model.key]]){
|
||||
[attribute replaceCharactersInRange:[attribute.string rangeOfString:[NSString stringWithFormat:@"{%@}",model.key]] withAttributedString:[NSAttributedString new]];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
self.titleLabel.attributedText = attribute;
|
||||
|
||||
|
||||
BOOL isSvga = [model.resourceType.uppercaseString isEqualToString:@"SVGA"];
|
||||
@kWeakify(self);
|
||||
if (isSvga == YES) {
|
||||
self.bgSVGA.hidden = NO;
|
||||
self.bgImageView.hidden = YES;
|
||||
if (!_parser) {
|
||||
_parser = [SVGAParser new];
|
||||
}
|
||||
[self.parser parseWithURL:[NSURL URLWithString:model.resourceContent] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
|
||||
@kStrongify(self);
|
||||
self.bgSVGA.videoItem = videoItem;
|
||||
} failureBlock:^(NSError * _Nonnull error) {
|
||||
@kStrongify(self);
|
||||
[self loadLocalSVGA];
|
||||
}];
|
||||
}else{
|
||||
self.bgSVGA.hidden = YES;
|
||||
self.bgImageView.hidden = NO;
|
||||
self.bgImageView.imageUrl = model.resourceContent;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)loadLocalSVGA {
|
||||
self.bgSVGA.hidden = NO;
|
||||
self.bgImageView.hidden = YES;
|
||||
|
||||
@kWeakify(self);
|
||||
[self.parser parseWithNamed:@"game_floating_bg"
|
||||
inBundle:[NSBundle mainBundle]
|
||||
completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
|
||||
@kStrongify(self);
|
||||
self.bgSVGA.videoItem = videoItem;
|
||||
} failureBlock:^(NSError * _Nonnull error) {
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)setupNotification {
|
||||
|
||||
}
|
||||
|
||||
- (void)handleTapGo {
|
||||
if (self.didTapGo) {
|
||||
self.didTapGo(self.gameID.integerValue);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
- (NetImageView *)bgImageView {
|
||||
if (_bgImageView) {
|
||||
_bgImageView = [[NetImageView alloc] init];
|
||||
_bgImageView.layer.cornerRadius = 2;
|
||||
_bgImageView.layer.masksToBounds = YES;
|
||||
}
|
||||
return _bgImageView;
|
||||
}
|
||||
|
||||
- (SVGAImageView *)bgSVGA {
|
||||
if (!_bgSVGA) {
|
||||
_bgSVGA = [[SVGAImageView alloc] init];
|
||||
_bgSVGA.autoPlay = YES;
|
||||
_bgSVGA.loops = -1;
|
||||
}
|
||||
return _bgSVGA;
|
||||
}
|
||||
|
||||
- (NetImageConfig *)avatarConfig {
|
||||
NetImageConfig * config = [[NetImageConfig alloc]init];
|
||||
config.imageType = ImageTypeUserIcon;
|
||||
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
||||
return config;
|
||||
}
|
||||
|
||||
- (NetImageView *)gameIcon {
|
||||
if (!_gameIcon) {
|
||||
_gameIcon = [[NetImageView alloc] initWithConfig:[self avatarConfig]];
|
||||
_gameIcon.layer.cornerRadius = 2;
|
||||
_gameIcon.layer.masksToBounds = YES;
|
||||
}
|
||||
return _gameIcon;
|
||||
}
|
||||
|
||||
- (NetImageView *)avatarIcon {
|
||||
if (!_avatarIcon) {
|
||||
_avatarIcon = [[NetImageView alloc] initWithConfig:[self avatarConfig]];
|
||||
_avatarIcon.layer.cornerRadius = 28/2;
|
||||
_avatarIcon.layer.masksToBounds = YES;
|
||||
}
|
||||
return _avatarIcon;
|
||||
}
|
||||
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.textAlignment = NSTextAlignmentCenter;
|
||||
_titleLabel.numberOfLines = 0;
|
||||
_titleLabel.adjustsFontSizeToFitWidth = YES;
|
||||
_titleLabel.minimumScaleFactor = 0.5;
|
||||
}
|
||||
return _titleLabel;
|
||||
}
|
||||
|
||||
- (UIButton *)goButton {
|
||||
if (!_goButton) {
|
||||
_goButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_goButton setImage:kImage(@"game_banner_go")
|
||||
forState:UIControlStateNormal];
|
||||
[_goButton addTarget:self
|
||||
action:@selector(handleTapGo)
|
||||
forControlEvents:UIControlEventTouchUpInside];
|
||||
}
|
||||
return _goButton;
|
||||
}
|
||||
|
||||
@end
|
@@ -16,7 +16,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@property(nonatomic,copy) NSString *resourceType;
|
||||
@property(nonatomic,copy) NSString *resourceContent;
|
||||
@property(nonatomic,assign) int skipType;
|
||||
@property(nonatomic,copy) NSString *skipContent;
|
||||
@property(nonatomic,copy) NSString *skipContent; // 当 skip 为 7 时,skipContent 内容为游戏 id
|
||||
@property(nonatomic,copy) NSString *svgaTextKey;
|
||||
@property(nonatomic,copy) NSArray<PIUniversalBannerItemModel *> *contents;
|
||||
@property(nonatomic,assign) CGFloat resourceWidth;
|
||||
@@ -24,6 +24,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@property(nonatomic,strong) SVGAVideoEntity *videoItem;
|
||||
@property(nonatomic,strong) UIImage *image;
|
||||
@property(nonatomic,assign) CGFloat resourceTop;
|
||||
@property (nonatomic, assign) NSInteger partitionId;
|
||||
@end
|
||||
|
||||
|
||||
@@ -35,5 +36,8 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@property(nonatomic,copy) NSDictionary *text;
|
||||
@property(nonatomic,assign) int skipType;
|
||||
@property(nonatomic,copy) NSString *skipContent;
|
||||
@property (nonatomic, assign) NSInteger height;
|
||||
@property (nonatomic, assign) NSInteger width;
|
||||
@property (nonatomic, copy) NSString *image;
|
||||
@end
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -41,6 +41,7 @@
|
||||
#import "AcrossRoomPKPrizeModel.h"
|
||||
#import "RoomHalfHourRankModel.h"
|
||||
#import "ClientConfig.h"
|
||||
#import "ActivityInfoModel.h"
|
||||
///View
|
||||
|
||||
#import "XPRoomGiftBroadcastView.h"
|
||||
@@ -75,6 +76,9 @@
|
||||
#import "CPLevelUpAnimation.h"
|
||||
#import "CPBindingAnimation.h"
|
||||
|
||||
#import "MSRoomGameWebVC.h"
|
||||
#import "GameUniversalBannerView.h"
|
||||
|
||||
@interface XPRoomAnimationView ()<
|
||||
SVGAPlayerDelegate,
|
||||
NIMBroadcastManagerDelegate,
|
||||
@@ -175,6 +179,7 @@ HWDMP4PlayDelegate>
|
||||
@property (nonatomic, copy) NSString *GiftDynamicEffectListPath;
|
||||
|
||||
/// 新的特效播放队列,包括幸运礼物 banner, CP banner 和 CP 特效
|
||||
/// 1.0.17 追加游戏 banner 的处理
|
||||
@property (nonatomic, strong) NSMutableArray *roomEffectModelsQueueV2;
|
||||
@property (nonatomic, assign) BOOL isRoomEffectV2Displaying;
|
||||
|
||||
@@ -282,7 +287,8 @@ HWDMP4PlayDelegate>
|
||||
[self receiveTarotBanner:attachment];
|
||||
}else if (attachment.first == CustomMessageType_Common_H5 &&(attachment.second == Custom_Message_Sub_Common_H5_Novice || attachment.second == Custom_Message_Sub_Common_H5_Advanced)){
|
||||
[self receiveCommonH5Banner:attachment];
|
||||
}else if (attachment.first == CustomMessageType_General_Floating_Screen && attachment.second == Custom_Message_Sub_General_Floating_Screen_All_Room ){
|
||||
}else if (attachment.first == CustomMessageType_General_Floating_Screen &&
|
||||
(attachment.second == Custom_Message_Sub_General_Floating_Screen_One_Room || attachment.second == Custom_Message_Sub_General_Floating_Screen_All_Room)){
|
||||
[self receiveRoomGeneralFloatingScreen:attachment];
|
||||
}
|
||||
}
|
||||
@@ -412,6 +418,45 @@ HWDMP4PlayDelegate>
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - 收到游戏大奖飘屏
|
||||
- (void)receiveGameBanner:(AttachmentModel *)attachment {
|
||||
[self.roomEffectModelsQueueV2 addObject:attachment];
|
||||
if (!self.isRoomEffectV2Displaying) {
|
||||
[self processNextRoomEffectAttachment];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)playGameBanner:(AttachmentModel *)attachment {
|
||||
@kWeakify(self);
|
||||
[GameUniversalBannerView display:self with:attachment complete:^{
|
||||
@kStrongify(self);
|
||||
[self processNextRoomEffectAttachment];
|
||||
} goToGame:^(NSInteger gameID) {
|
||||
@kStrongify(self);
|
||||
NSArray *baishunList = [self.delegate getPlayList];
|
||||
for (ActivityInfoModel *model in baishunList) {
|
||||
if (model.id == gameID) {
|
||||
if ([self.delegate isKindOfClass:[XPRoomViewController class]]){
|
||||
MSRoomGameWebVC *vc = [[MSRoomGameWebVC alloc]initWithDelegate:self.delegate gameModel:model];
|
||||
vc.view.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
|
||||
XPRoomViewController *roomVC = (XPRoomViewController *)self.delegate;
|
||||
[roomVC addChildViewController:vc];
|
||||
XPRoomAnimationView *animationView;
|
||||
for (id obj in self.delegate.getSuperView.subviews) {
|
||||
if ([obj isKindOfClass:[XPRoomAnimationView class]]){
|
||||
animationView = obj;
|
||||
break;
|
||||
}
|
||||
}
|
||||
[self.delegate.getSuperView addSubview:vc.view];
|
||||
vc.view.tag = 913;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - 收到送礼者中奖飘屏
|
||||
- (void)receiveLuckGiftWinning:(AttachmentModel *)attachment {
|
||||
RoomInfoModel *roomInfo = self.delegate.getRoomInfo;
|
||||
@@ -445,6 +490,10 @@ HWDMP4PlayDelegate>
|
||||
self.isRoomEffectV2Displaying = YES;
|
||||
|
||||
switch (nextAttachment.second) {
|
||||
case Custom_Message_Sub_General_Floating_Screen_One_Room:
|
||||
case Custom_Message_Sub_General_Floating_Screen_All_Room:
|
||||
[self playGameBanner:nextAttachment];
|
||||
break;
|
||||
case Custom_Message_Sub_Super_Gift_Winning_Coins_ALL_Room:
|
||||
[self playLuckyWinningBanner:nextAttachment];
|
||||
break;
|
||||
@@ -487,16 +536,27 @@ HWDMP4PlayDelegate>
|
||||
roomGraffiti.type = GiftBannerType_General_Floating_Screen;
|
||||
roomGraffiti.first = attachment.first;
|
||||
roomGraffiti.second = attachment.second;
|
||||
if(self.animationListB.count == 0 && self.isPlayOfB == NO){
|
||||
[self createGeneralFloatingScreenAnimation:roomGraffiti];
|
||||
|
||||
PIUniversalBannerModel *model = [PIUniversalBannerModel modelWithDictionary:attachment.data];
|
||||
if (model.skipType == 7 &&
|
||||
(attachment.second == Custom_Message_Sub_General_Floating_Screen_One_Room ||
|
||||
attachment.second == Custom_Message_Sub_General_Floating_Screen_All_Room)) {
|
||||
[self receiveGameBanner:attachment];
|
||||
} else {
|
||||
if(self.animationListB.count == 0 && self.isPlayOfB == NO){
|
||||
[self createGeneralFloatingScreenAnimation:roomGraffiti bannerModel:model];
|
||||
}
|
||||
[self.animationListB addObject:roomGraffiti];
|
||||
}
|
||||
[self.animationListB addObject:roomGraffiti];
|
||||
}
|
||||
- (void)createGeneralFloatingScreenAnimation:(PIBaseAnimationViewModel *)attachment{
|
||||
- (void)createGeneralFloatingScreenAnimation:(PIBaseAnimationViewModel *)attachment bannerModel:(PIUniversalBannerModel *)model {
|
||||
self.isPlayOfB = YES;
|
||||
CGFloat top = self.isPlayOfA == YES ? (self.broadCastHieght + statusbarHeight) : (kNavigationHeight + 15);
|
||||
|
||||
PIUniversalBannerModel *model = [PIUniversalBannerModel modelWithDictionary:attachment.data];
|
||||
|
||||
if (!model) {
|
||||
model = [PIUniversalBannerModel modelWithDictionary:attachment.data];
|
||||
}
|
||||
|
||||
BOOL isSvga = [model.resourceType.uppercaseString isEqualToString:@"SVGA"];
|
||||
__block PIUniversalBannerView *bannerView;
|
||||
@kWeakify(self);
|
||||
@@ -509,6 +569,7 @@ HWDMP4PlayDelegate>
|
||||
if(videoItem.videoSize.width > 0){
|
||||
height = KScreenWidth * videoItem.videoSize.height / videoItem.videoSize.width;
|
||||
}
|
||||
|
||||
bannerView = [[PIUniversalBannerView alloc]initWithFrame:CGRectMake(KScreenWidth, top, KScreenWidth, height)];
|
||||
[self showGeneralFloatingScreenView:bannerView model:model];
|
||||
} failureBlock:^(NSError * _Nonnull error) {
|
||||
@@ -1980,7 +2041,6 @@ HWDMP4PlayDelegate>
|
||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||
[self createGiftBannerViewAnimation:self.animationListA.firstObject];
|
||||
});
|
||||
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -2009,7 +2069,7 @@ HWDMP4PlayDelegate>
|
||||
}else if(model.type == GiftBannerType_Magic_House){
|
||||
[self createGiftCompoundBannerAnimation:model];
|
||||
}else if (model.type == GiftBannerType_General_Floating_Screen){
|
||||
[self createGeneralFloatingScreenAnimation:model];
|
||||
[self createGeneralFloatingScreenAnimation:model bannerModel:nil];
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -174,7 +174,7 @@ UIKIT_EXTERN NSString * kRoomBackMusicPlayMusicOrderKey;
|
||||
[self playNextMusic:index];
|
||||
}
|
||||
}];
|
||||
[[RtcManager instance] updateUserSound:captureVolum];
|
||||
|
||||
[[RtcManager instance] updateMusicSound:musicVolum];
|
||||
}
|
||||
|
||||
|
@@ -92,6 +92,7 @@
|
||||
make.width.mas_equalTo(40);
|
||||
}];
|
||||
}
|
||||
|
||||
#pragma mark - Event Response
|
||||
- (void)userVolumeSliderValueChange:(UISlider *)slider {
|
||||
if (slider == self.userVolumeSlider) {
|
||||
@@ -109,11 +110,13 @@
|
||||
- (void)setMusicVolum:(NSInteger)musicVolum {
|
||||
_musicVolum = musicVolum;
|
||||
self.musicVolumeSlider.value = musicVolum;
|
||||
self.musicVoiceLabel.text = [[NSString stringWithFormat:@"%ld", musicVolum] stringByAppendingString:@"%"];
|
||||
}
|
||||
|
||||
- (void)setCaptureVolum:(NSInteger)captureVolum {
|
||||
_captureVolum = captureVolum;
|
||||
self.userVolumeSlider.value = captureVolum;
|
||||
self.userVoiceLabel.text = [[NSString stringWithFormat:@"%ld",(NSInteger)captureVolum] stringByAppendingString:@"%"];
|
||||
}
|
||||
|
||||
- (UIStackView *)stackView {
|
||||
|
@@ -74,7 +74,7 @@ UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
|
||||
musicVolum = musicVolum > 0 ? musicVolum : 50;
|
||||
self.voiceSettingView.musicVolum = musicVolum;
|
||||
|
||||
NSInteger captureVolum = [[RtcManager instance] loadUserSound]; //[defaults integerForKey:kRoomBackMusicCaptureVolumeKey];
|
||||
NSInteger captureVolum = [defaults integerForKey:kRoomBackMusicCaptureVolumeKey];
|
||||
captureVolum = captureVolum > 0 ? captureVolum : 50;
|
||||
self.voiceSettingView.captureVolum = captureVolum;
|
||||
}
|
||||
@@ -258,15 +258,11 @@ UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
|
||||
switch (slider.tag) {
|
||||
case MusicVoiceSettingType_User:
|
||||
{
|
||||
[[NSUserDefaults standardUserDefaults] setInteger:slider.value forKey:kRoomBackMusicCaptureVolumeKey];
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
[[RtcManager instance] updateUserSound:(int)slider.value];
|
||||
}
|
||||
break;
|
||||
case MusicVoiceSettingType_Music:
|
||||
{
|
||||
[[NSUserDefaults standardUserDefaults] setInteger:slider.value forKey:kRoomBackMusicAudioMixingVolumeKey];
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
[[RtcManager instance] updateMusicSound:(int)slider.value];
|
||||
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(xPRoomMusicLibraryViewController:backMusicVolum:)]) {
|
||||
|
@@ -443,7 +443,6 @@
|
||||
[self.view removeFromSuperview]; //2
|
||||
[self removeFromParentViewController]; //3
|
||||
}];
|
||||
|
||||
}
|
||||
|
||||
#pragma mark - XPCandyTreeBuyViewDelegate
|
||||
|
@@ -314,7 +314,6 @@
|
||||
}
|
||||
}
|
||||
[self.hostDelegate.getSuperView addSubview:vc.view];
|
||||
// [self.hostDelegate.getSuperView bringSubviewToFront:animationView];
|
||||
vc.view.tag = 913;
|
||||
}
|
||||
}
|
||||
|
@@ -20,6 +20,10 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
- (instancetype)initWithDelegate:(id<RoomHostDelegate>)delegate;
|
||||
-(void)showInputView:(NSString *)text;
|
||||
- (void)menuResignFirstResponder;
|
||||
- (void)recheckMicState;
|
||||
|
||||
- (NSInteger)micState;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -36,6 +36,8 @@
|
||||
#import "MSRoomMenuGameVC.h"
|
||||
#import "SVGA.h"
|
||||
|
||||
#import "XPRoomMiniManager.h"
|
||||
|
||||
UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
|
||||
|
||||
@interface XPRoomMenuContainerView ()<XPRoomMessageBubbleViewDelegate>
|
||||
@@ -77,6 +79,8 @@ UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
|
||||
|
||||
@property (nonatomic, assign) BOOL isDisplayMicStatusControl;
|
||||
|
||||
@property (nonatomic, assign) NSInteger micStateType;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@@ -86,8 +90,8 @@ UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
|
||||
self = [super init];
|
||||
if (self) {
|
||||
self.clipsToBounds = NO;
|
||||
self.defaultVoiceVolume = [[RtcManager instance] loadUserSound] > 0 ? [[RtcManager instance] loadUserSound] : 50;
|
||||
|
||||
self.defaultVoiceVolume = [[RtcManager instance] loadUserSound];
|
||||
|
||||
self.delegate = delegate;
|
||||
[self initSubViews];
|
||||
[self initSubViewConstraints];
|
||||
@@ -276,8 +280,11 @@ UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
|
||||
}
|
||||
|
||||
- (void)handleMicControl:(UIButton *)sender {
|
||||
NSString *message = @"";
|
||||
switch (sender.tag) {
|
||||
case 1: {
|
||||
message = YMLocalizedString(@"RoomMicState_0");
|
||||
self.defaultVoiceVolume = [[RtcManager instance] loadUserSound];
|
||||
[RtcManager instance].localMuted = NO;
|
||||
[[RtcManager instance] updateUserSound:(int)self.defaultVoiceVolume];
|
||||
for (MicroQueueModel *sequence in [self.delegate getMicroQueue].allValues) {
|
||||
@@ -288,15 +295,14 @@ UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
|
||||
}
|
||||
break;
|
||||
case 2: {
|
||||
message = YMLocalizedString(@"RoomMicState_2");
|
||||
[RtcManager instance].localMuted = YES;
|
||||
}
|
||||
break;
|
||||
case 3: {
|
||||
// self.defaultVoiceVolume = [[RtcManager instance] loadUserSound];
|
||||
message = YMLocalizedString(@"RoomMicState_1");
|
||||
[RtcManager instance].localMuted = NO;
|
||||
[[RtcManager instance] updateUserSound:0];
|
||||
// [[NSUserDefaults standardUserDefaults] setInteger:0 forKey:kRoomBackMusicCaptureVolumeKey];
|
||||
// [[NSUserDefaults standardUserDefaults] synchronize];
|
||||
[[RtcManager instance] updateUserSoundWithUserInMic:0];
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -306,9 +312,11 @@ UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
|
||||
|
||||
[self micButtonUpdate:sender.tag];
|
||||
[self hideMicControlMenu];
|
||||
[XNDJTDDLoadingTool showErrorWithMessage:message];
|
||||
}
|
||||
|
||||
- (void)micButtonUpdate:(NSInteger)type {
|
||||
self.micStateType = type;
|
||||
switch (type) {
|
||||
case 1:
|
||||
// 开麦
|
||||
@@ -328,6 +336,17 @@ UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)recheckMicState {
|
||||
if (self.micStateType == 3) {
|
||||
[RtcManager instance].localMuted = NO;
|
||||
[[RtcManager instance] updateUserSoundWithUserInMic:0];
|
||||
}
|
||||
}
|
||||
|
||||
- (NSInteger)micState {
|
||||
return self.micStateType;
|
||||
}
|
||||
|
||||
#pragma mark - notification
|
||||
- (void)showGiftView:(NSNotification *)noti {
|
||||
NSDictionary *dict = noti.object;
|
||||
@@ -504,11 +523,20 @@ UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey;
|
||||
MicroQueueModel *model = [self findMySelfMicro:queue];
|
||||
if (model) {
|
||||
self.micButton.hidden = NO;
|
||||
if (model.microState.micState == MicroMicStateType_Close || [RtcManager instance].isLocalMuted) {
|
||||
if ([RtcManager instance].isLocalMuted) {
|
||||
[self micButtonUpdate:2];
|
||||
} else {
|
||||
[self micButtonUpdate:1];
|
||||
}
|
||||
|
||||
// 處理最小化進房
|
||||
NSInteger miniRoomMicState = [[XPRoomMiniManager shareManager] loadMicState];
|
||||
if (miniRoomMicState != -1) {
|
||||
[self micButtonUpdate:miniRoomMicState];
|
||||
}
|
||||
|
||||
self.micButton.enabled = model.microState.micState == MicroMicStateType_Open;
|
||||
|
||||
self.faceButton.hidden = NO;
|
||||
} else {
|
||||
self.micButton.hidden = YES;
|
||||
|
@@ -168,9 +168,13 @@
|
||||
if ([AccountInfoStorage instance].getUid.length == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ([XPSkillCardPlayerManager shareInstance].roomUid != broadcastMessage.sender) {
|
||||
return;
|
||||
if (broadcastMessage.content) {
|
||||
NSDictionary *msgDictionary = [broadcastMessage.content toJSONObject];
|
||||
AttachmentModel *attachment = [AttachmentModel modelWithJSON:msgDictionary[@"body"]];
|
||||
Boom632Model *m = [Boom632Model modelWithJSON:[attachment data]];
|
||||
if (m.roomUid != [XPSkillCardPlayerManager shareInstance].roomUid.integerValue) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
[self.messageListView handleBroadcastMessage:broadcastMessage];
|
||||
|
@@ -13,6 +13,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
///最小化时,免费礼物的倒计时还在,用来判断是否弹出获得免费礼物弹窗
|
||||
@property (nonatomic,copy) NSString *_Nullable curState;
|
||||
|
||||
+ (instancetype)shareManager;
|
||||
|
||||
- (RoomInfoModel *)getRoomInfo;
|
||||
@@ -34,6 +35,9 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
- (BOOL)musicPlaying;
|
||||
///最小化的时候也要保存一下当前播放的歌曲
|
||||
- (void)configCurrentMusic:(Music * _Nullable)roomInfo isPlaying:(BOOL)isPlaying;
|
||||
|
||||
- (void)saveMicState:(NSInteger)type;
|
||||
- (NSInteger)loadMicState;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
@@ -19,15 +19,18 @@
|
||||
@property (nonatomic,assign) BOOL isPlaying;
|
||||
///用户信息
|
||||
@property (nonatomic,strong) UserInfoModel *userInfo;
|
||||
|
||||
@property (nonatomic, assign) NSInteger micState;
|
||||
@end
|
||||
|
||||
@implementation XPRoomMiniManager
|
||||
|
||||
+ (instancetype)shareManager {
|
||||
static dispatch_once_t onceToken = 0;
|
||||
static id instance;
|
||||
static XPRoomMiniManager *instance;
|
||||
dispatch_once(&onceToken, ^{
|
||||
instance = [[XPRoomMiniManager alloc] init];
|
||||
instance.micState = -1;
|
||||
});
|
||||
return instance;
|
||||
}
|
||||
@@ -78,6 +81,7 @@
|
||||
|
||||
- (void)resetLocalMessage {
|
||||
[self.messageArray removeAllObjects];
|
||||
self.micState = -1;
|
||||
}
|
||||
|
||||
- (NSMutableArray *)messageArray {
|
||||
@@ -87,4 +91,15 @@
|
||||
return _messageArray;
|
||||
}
|
||||
|
||||
|
||||
- (void)saveMicState:(NSInteger)type {
|
||||
self.micState = type;
|
||||
}
|
||||
|
||||
- (NSInteger)loadMicState {
|
||||
NSInteger state = self.micState;
|
||||
self.micState = -1;
|
||||
return state;
|
||||
}
|
||||
|
||||
@end
|
||||
|
@@ -350,7 +350,6 @@ XPCandyTreeInsufficientBalanceViewDelegate>
|
||||
|
||||
[self setupForBoom];
|
||||
|
||||
|
||||
//#if DEBUG
|
||||
// UIButton *b = [UIButton buttonWithType:UIButtonTypeInfoLight];
|
||||
// b.frame = CGRectMake(100, 100, 100, 100);
|
||||
@@ -488,6 +487,8 @@ XPCandyTreeInsufficientBalanceViewDelegate>
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
|
||||
|
||||
[self.menuContainerView recheckMicState];
|
||||
}
|
||||
-(void)viewWillDisappear:(BOOL)animated{
|
||||
[super viewWillDisappear:animated];
|
||||
@@ -574,12 +575,17 @@ XPCandyTreeInsufficientBalanceViewDelegate>
|
||||
}
|
||||
[self.quickMessageContainerView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.bottom.mas_equalTo(self.view).offset(- 52 - kSafeAreaBottomHeight);
|
||||
// make.bottom.mas_equalTo(self.menuContainerView.mas_top);
|
||||
make.height.mas_equalTo(0);
|
||||
make.leading.trailing.mas_equalTo(self.view);
|
||||
}];
|
||||
[self.menuContainerView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.trailing.bottom.mas_equalTo(self.view);
|
||||
make.leading.trailing.mas_equalTo(self.view);
|
||||
if (iPhoneXSeries) {
|
||||
make.bottom.mas_equalTo(self.view);
|
||||
} else {
|
||||
make.bottom.mas_equalTo(-10);
|
||||
}
|
||||
|
||||
make.height.mas_equalTo(52 + kSafeAreaBottomHeight);
|
||||
}];
|
||||
|
||||
@@ -1143,6 +1149,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
|
||||
[self.messageContainerView onRoomMiniEntered];
|
||||
[self.functionView onRoomMiniEntered];
|
||||
[self.functionView onRoomEntered];
|
||||
[[RtcManager instance] setLocalMuted:YES];
|
||||
}
|
||||
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
|
||||
[[XPRoomMiniManager shareManager] configUserInfo:nil];
|
||||
@@ -1213,6 +1220,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
|
||||
[self.messageContainerView onRoomMiniEntered];
|
||||
[self.functionView onRoomMiniEntered];
|
||||
[self.functionView onRoomEntered];
|
||||
[[RtcManager instance] setLocalMuted:YES];
|
||||
}
|
||||
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
|
||||
[[XPRoomMiniManager shareManager] configUserInfo:nil];
|
||||
@@ -1307,6 +1315,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
|
||||
}
|
||||
|
||||
[self.messageContainerView onRoomMiniEntered];
|
||||
[[RtcManager instance] setLocalMuted:YES];
|
||||
}
|
||||
|
||||
[self cleanMiniRoomStatues];
|
||||
@@ -1603,6 +1612,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
|
||||
[self.messageContainerView onRoomMiniEntered];
|
||||
[self.functionView onRoomMiniEntered];
|
||||
[self.functionView onRoomEntered];
|
||||
[[RtcManager instance] setLocalMuted:YES];
|
||||
}
|
||||
|
||||
[self cleanMiniRoomStatues];
|
||||
@@ -2315,6 +2325,9 @@ XPCandyTreeInsufficientBalanceViewDelegate>
|
||||
if(self.freeModel != nil){
|
||||
[XPRoomMiniManager shareManager].curState = self.freeModel.curStage;
|
||||
}
|
||||
|
||||
[[XPRoomMiniManager shareManager] saveMicState:[self.menuContainerView micState]];
|
||||
|
||||
[self.menuContainerView menuResignFirstResponder];
|
||||
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(showRoomFirstChargeWindow) object:nil];
|
||||
NSDictionary *roomInfoDic = self.roomInfo.model2dictionary != nil ? self.roomInfo.model2dictionary : @{};
|
||||
@@ -2510,6 +2523,7 @@ XPCandyTreeInsufficientBalanceViewDelegate>
|
||||
[self.messageContainerView onRoomMiniEntered];
|
||||
[self.functionView onRoomMiniEntered];
|
||||
[self.functionView onRoomEntered];
|
||||
[[RtcManager instance] setLocalMuted:YES];
|
||||
}
|
||||
[[XPRoomMiniManager shareManager] configRoomInfo:nil];
|
||||
[[XPRoomMiniManager shareManager] configUserInfo:nil];
|
||||
@@ -2613,7 +2627,6 @@ XPCandyTreeInsufficientBalanceViewDelegate>
|
||||
[_menuContainerView setUpdateHeight:^(CGFloat height) {
|
||||
@kStrongify(self);
|
||||
[self.menuContainerView mas_updateConstraints:^(MASConstraintMaker *make) {
|
||||
// make.leading.trailing.bottom.mas_equalTo(self.view);
|
||||
make.height.mas_equalTo(height + kSafeAreaBottomHeight);
|
||||
}];
|
||||
}];
|
||||
|
@@ -676,9 +676,10 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey;
|
||||
// if([XPSkillCardPlayerManager shareInstance].isInRoomVC == YES)return;
|
||||
// [self.roomAnimation receiveNobleLevelUp:attachment];
|
||||
}else if (attachment.first == CustomMessageType_General_Floating_Screen && attachment.second == Custom_Message_Sub_General_Floating_Screen_All_Room){
|
||||
if([XPSkillCardPlayerManager shareInstance].isInRoomVC == YES) {
|
||||
return;
|
||||
}
|
||||
return;
|
||||
// if([XPSkillCardPlayerManager shareInstance].isInRoomVC == YES) {
|
||||
// return;
|
||||
// }
|
||||
// 房间会发通知
|
||||
// [self.roomAnimation receiveRoomGeneralFloatingScreen:attachment];
|
||||
}
|
||||
|
BIN
YuMi/Resources/game/game_floating_bg.svga
Normal file
BIN
YuMi/Resources/game/game_floating_bg.svga
Normal file
Binary file not shown.
@@ -3909,15 +3909,15 @@ ineHeadView12" = "الحمل";
|
||||
"Combo_9" = "مرة";
|
||||
"Combo_10" = "هل أنت متأكد أنك تريد الذهاب إلى هذه الغرفة؟";
|
||||
|
||||
"UserDetail_0" = "النقابة";
|
||||
"UserDetail_1" = "نيك النقابة";
|
||||
"UserDetail_2" = "معرّف النقابة:";
|
||||
"UserDetail_3" = "معرّف العميل";
|
||||
"UserDetail_0" = "الوكالة";
|
||||
"UserDetail_1" = "اسم الوكالة";
|
||||
"UserDetail_2" = "معرّف الوكالة:";
|
||||
"UserDetail_3" = "معرّف الوكيل";
|
||||
"UserDetail_4" = "CP";
|
||||
"UserDetail_5" = "المعيشة";
|
||||
"UserDetail_5" = "البث المباشر";
|
||||
"UserDetail_Setting_0" = "عرض الرسوم المتحركة للصفحة الرئيسية - CP";
|
||||
"UserDetail_Setting_1" = "عرض الصور الرمزية للصفحة الرئيسية- CP";
|
||||
"UserDetail_CP_List_0" = "تحتاج إلى %@ للترقية";
|
||||
"UserDetail_CP_List_0" = "تحتاج إلى للترقية%@";
|
||||
"UserDetail_CP_List_1" = "Waiting for love";
|
||||
"UserDetail_CP_Toast_0" = "نصيحة";
|
||||
"UserDetail_CP_Toast_1" = "هل أنت متأكد من أنك تريد إنفاق %@ قطعة نقدية لإلغاء CP الخاص بك مع %@؟";
|
||||
@@ -3934,9 +3934,9 @@ ineHeadView12" = "الحمل";
|
||||
"RoomBoom_0" = "لسوء الحظ! لم تحصل على مكافأة، يرجى مواصلة العمل الجيد";
|
||||
"RoomBoom_1" = "تهانينا على حصولك على الجوائز التالية في هذه الجولة من Boom";
|
||||
"RoomBoom_2" = "قدم الهدايا واربح جوائز كبرى";
|
||||
"RoomBoom_3" = "触发了";
|
||||
"RoomBoom_4" = ",前去圍觀";
|
||||
"RoomBoom_5" = "لقب الغرفة:";
|
||||
"RoomBoom_3" = "";
|
||||
"RoomBoom_4" = "تم تشغيل بوم وذهب للمشاهدة";
|
||||
"RoomBoom_5" = "";//"لقب الغرفة:";
|
||||
"RoomBoom_6" = "Reset time: 0:00 (GMT+3) daily";
|
||||
"RoomBoom_7" = "تصنيف الداعمين";
|
||||
"RoomBoom_8" = "الجائزة الكبرى";
|
||||
@@ -3948,3 +3948,8 @@ ineHeadView12" = "الحمل";
|
||||
"RoomMessageTitle_2" = "إرسال";
|
||||
"RoomMessageBoom_0" = "تهانينا! ";
|
||||
"RoomMessageBoom_1" = " إطلاق الجائزة الكبرى السوبر بووم، ستتم مكافأة جميع المستخدمين في الغرفة!";
|
||||
|
||||
"RoomMicState_0" = "لقد قمت بتشغيل الميكروفون والموسيقى.";
|
||||
"RoomMicState_1" = "لقد قمت بتشغيل الموسيقى ولكنك أوقفت الميكروفون.";
|
||||
"RoomMicState_2" = "لقد أوقفت الموسيقى والميكروفون.";
|
||||
|
||||
|
@@ -3730,9 +3730,9 @@
|
||||
"RoomBoom_0" = "Unfortunately! You did not receive reward, please keep up the good work!";
|
||||
"RoomBoom_1" = "Congratulations on being awarded the following prizes in this round of Boom";
|
||||
"RoomBoom_2" = "Give gifts and win super prizes";
|
||||
"RoomBoom_3" = "触发了";
|
||||
"RoomBoom_4" = ",前去圍觀";
|
||||
"RoomBoom_5" = "Room name:";
|
||||
"RoomBoom_3" = "";
|
||||
"RoomBoom_4" = "was triggered, go and watch";
|
||||
"RoomBoom_5" = "";//"Room name:";
|
||||
"RoomBoom_6" = "Reset time: 0:00 (GMT+3) daily";
|
||||
"RoomBoom_7" = " Supporter Ranking";
|
||||
"RoomBoom_8" = "Super Jackpot";
|
||||
@@ -3744,3 +3744,7 @@
|
||||
"RoomMessageTitle_2" = "Gift";
|
||||
"RoomMessageBoom_0" = "Congratulations! ";
|
||||
"RoomMessageBoom_1" = " has triggered the super jackpot BOOM, and all users in the room will receive rewards!";
|
||||
|
||||
"RoomMicState_0" = "You turned on the mic and the music.";
|
||||
"RoomMicState_1" = "You turned on the music but turned off the mic.";
|
||||
"RoomMicState_2" = "You turned off the music and the mic.";
|
||||
|
@@ -3394,9 +3394,9 @@
|
||||
"RoomBoom_0" = "很遺憾 您沒有獲得獎品,請繼續努力!";
|
||||
"RoomBoom_1" = "恭喜您在本輪 Boom 中獲得以下獎励。";
|
||||
"RoomBoom_2" = "送禮物,贏取超級獎品";
|
||||
"RoomBoom_3" = "触发了";
|
||||
"RoomBoom_3" = "觸發了";
|
||||
"RoomBoom_4" = ",前去圍觀";
|
||||
"RoomBoom_5" = "房間暱稱:";
|
||||
"RoomBoom_5" = "";//房間暱稱:";
|
||||
"RoomBoom_6" = "Reset time: 0:00 (GMT+3) daily";
|
||||
"RoomBoom_7" = "支持者排名";
|
||||
"RoomBoom_8" = "超大獎";
|
||||
@@ -3409,3 +3409,6 @@
|
||||
"RoomMessageBoom_0" = "恭喜!";
|
||||
"RoomMessageBoom_1" = "触发超级大奖BOOM,所有在房用户将获得奖励!";
|
||||
|
||||
"RoomMicState_0" = "你打開了麥克風和音樂。";
|
||||
"RoomMicState_1" = "您打開了音樂但關閉了麥克風。";
|
||||
"RoomMicState_2" = "你關掉了音樂和麥克風。";
|
||||
|
@@ -3386,9 +3386,9 @@
|
||||
"RoomBoom_0" = "很遺憾 您沒有獲得獎品,請繼續努力!";
|
||||
"RoomBoom_1" = "恭喜您在本輪 Boom 中獲得以下獎励。";
|
||||
"RoomBoom_2" = "送禮物,贏取超級獎品";
|
||||
"RoomBoom_3" = "触发了";
|
||||
"RoomBoom_3" = "觸發了";
|
||||
"RoomBoom_4" = ",前去圍觀";
|
||||
"RoomBoom_5" = "房間暱稱:";
|
||||
"RoomBoom_5" = "";//房間暱稱:";
|
||||
"RoomBoom_6" = "Reset time: 0:00 (GMT+3) daily";
|
||||
"RoomBoom_7" = "支持者排名";
|
||||
"RoomBoom_8" = "超大獎";
|
||||
@@ -3401,3 +3401,7 @@
|
||||
"RoomMessageBoom_0" = "恭喜!";
|
||||
"RoomMessageBoom_1" = "触发超级大奖BOOM,所有在房用户将获得奖励!";
|
||||
|
||||
"RoomMicState_0" = "你打開了麥克風和音樂。";
|
||||
"RoomMicState_1" = "您打開了音樂但關閉了麥克風。";
|
||||
"RoomMicState_2" = "你關掉了音樂和麥克風。";
|
||||
|
||||
|
Reference in New Issue
Block a user