新增游戏

This commit is contained in:
liyuhua
2024-04-30 19:30:11 +08:00
parent adabc08d07
commit 3be0f8bc74
46 changed files with 761 additions and 83 deletions

View File

@@ -150,6 +150,10 @@
23194DD12AD14BF000649F51 /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 23194DC92AD14BF000649F51 /* DDAbstractDatabaseLogger.m */; };
23194DD22AD14BF000649F51 /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 23194DCA2AD14BF000649F51 /* DDFileLogger.m */; };
23194DD52AD292F200649F51 /* PIPageControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 23194DD42AD292F200649F51 /* PIPageControl.m */; };
2320F6392BDF732C00227EEB /* MSRoomMenuGameView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2320F6382BDF732C00227EEB /* MSRoomMenuGameView.m */; };
2320F63C2BDF738E00227EEB /* MSRoomMenuGameCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2320F63B2BDF738E00227EEB /* MSRoomMenuGameCell.m */; };
2320F63F2BDF8B3000227EEB /* MSRoomMenuGameVC.m in Sources */ = {isa = PBXBuildFile; fileRef = 2320F63E2BDF8B3000227EEB /* MSRoomMenuGameVC.m */; };
2320F6422BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 2320F6412BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.m */; };
2323E0372ABDAE8F00CCAD2F /* FBSDKSettings+PISDKSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = 2323E0362ABDAE8F00CCAD2F /* FBSDKSettings+PISDKSettings.m */; };
232C43EA2AB15F4100D4B2ED /* XPRoomTarrowBannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 232C43E92AB15F4100D4B2ED /* XPRoomTarrowBannerView.m */; };
232C43EC2AB169EC00D4B2ED /* pi_room_tarrow_banner.svga in Resources */ = {isa = PBXBuildFile; fileRef = 232C43EB2AB169EB00D4B2ED /* pi_room_tarrow_banner.svga */; };
@@ -1799,6 +1803,14 @@
23194DCB2AD14BF000649F51 /* DDASLLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDASLLogger.h; sourceTree = "<group>"; };
23194DD32AD292F200649F51 /* PIPageControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PIPageControl.h; sourceTree = "<group>"; };
23194DD42AD292F200649F51 /* PIPageControl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PIPageControl.m; sourceTree = "<group>"; };
2320F6372BDF732C00227EEB /* MSRoomMenuGameView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSRoomMenuGameView.h; sourceTree = "<group>"; };
2320F6382BDF732C00227EEB /* MSRoomMenuGameView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSRoomMenuGameView.m; sourceTree = "<group>"; };
2320F63A2BDF738E00227EEB /* MSRoomMenuGameCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSRoomMenuGameCell.h; sourceTree = "<group>"; };
2320F63B2BDF738E00227EEB /* MSRoomMenuGameCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSRoomMenuGameCell.m; sourceTree = "<group>"; };
2320F63D2BDF8B3000227EEB /* MSRoomMenuGameVC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSRoomMenuGameVC.h; sourceTree = "<group>"; };
2320F63E2BDF8B3000227EEB /* MSRoomMenuGameVC.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSRoomMenuGameVC.m; sourceTree = "<group>"; };
2320F6402BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MSRoomMenuGameEmptyCell.h; sourceTree = "<group>"; };
2320F6412BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MSRoomMenuGameEmptyCell.m; sourceTree = "<group>"; };
2323E0352ABDAE8F00CCAD2F /* FBSDKSettings+PISDKSettings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "FBSDKSettings+PISDKSettings.h"; path = "YuMi/Appdelegate/FBSDKSettings+PISDKSettings.h"; sourceTree = SOURCE_ROOT; };
2323E0362ABDAE8F00CCAD2F /* FBSDKSettings+PISDKSettings.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "FBSDKSettings+PISDKSettings.m"; path = "YuMi/Appdelegate/FBSDKSettings+PISDKSettings.m"; sourceTree = SOURCE_ROOT; };
232C43E82AB15F4100D4B2ED /* XPRoomTarrowBannerView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomTarrowBannerView.h; sourceTree = "<group>"; };
@@ -9911,6 +9923,14 @@
E8EE827C272B9A2300A17217 /* XPRoomSendTextView.m */,
E8AEAEEE27141C430017FCE0 /* XPRoomMenuContainerView.h */,
E8AEAEEF27141C430017FCE0 /* XPRoomMenuContainerView.m */,
2320F6372BDF732C00227EEB /* MSRoomMenuGameView.h */,
2320F6382BDF732C00227EEB /* MSRoomMenuGameView.m */,
2320F63D2BDF8B3000227EEB /* MSRoomMenuGameVC.h */,
2320F63E2BDF8B3000227EEB /* MSRoomMenuGameVC.m */,
2320F63A2BDF738E00227EEB /* MSRoomMenuGameCell.h */,
2320F63B2BDF738E00227EEB /* MSRoomMenuGameCell.m */,
2320F6402BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.h */,
2320F6412BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.m */,
);
path = MenuContainerView;
sourceTree = "<group>";
@@ -11108,6 +11128,7 @@
E81061032987CFCE00B772F0 /* MessageSkillCardModel.m in Sources */,
9BD9A18727A120FD004186FE /* XPMineVisitorUnReadModel.m in Sources */,
E85E7BAD2A4EC99300B6D00A /* XPMineGiveDiamondDetailsCell.m in Sources */,
2320F63C2BDF738E00227EEB /* MSRoomMenuGameCell.m in Sources */,
E824543D26F58C3A00BE8163 /* XPLoginBindSuccessView.m in Sources */,
E85E7B282A4EB0D300B6D00A /* XPClanMenuView.m in Sources */,
9BE01AF72893E7F500B50299 /* XPNewUserRechargeCollectionViewCell.m in Sources */,
@@ -11347,6 +11368,7 @@
238B37B22AC55A2C00BFC9D5 /* XPTreasureFairyPrizePoolCell.m in Sources */,
9BE01AF02893E31700B50299 /* NewUserRechargeModel.m in Sources */,
E82325E6274CCAFA003A3332 /* XPShareInfoModel.m in Sources */,
2320F6392BDF732C00227EEB /* MSRoomMenuGameView.m in Sources */,
9B32A04728881845002009D2 /* XPRoomTagListView.m in Sources */,
E85E7B1D2A4EB0D200B6D00A /* XPMineClanIncomeStatisViewController.m in Sources */,
189DD55A26DE39D200AB55B1 /* BaseMvpPresenter.m in Sources */,
@@ -11648,6 +11670,7 @@
236B2E592AA18E13003967A8 /* XPMIneGameCollectionViewCell.m in Sources */,
9BDA3E7D27FD47AB00517FE6 /* XPAnchorFansTeamPresenter.m in Sources */,
E8C6FFE62754FE53004DC9F0 /* XPHomeSearchPresenter.m in Sources */,
2320F6422BE0F53F00227EEB /* MSRoomMenuGameEmptyCell.m in Sources */,
238B37C02AC55A2C00BFC9D5 /* XPTreasureFairyPoolRecordView.m in Sources */,
9B2A12DE2783FEDD00CED41B /* UserVipInfoVo.m in Sources */,
233423CA2AAEE97500B1253F /* XPCandyTreeConfirmBuyView.m in Sources */,
@@ -12003,6 +12026,7 @@
E8C1CD7627D8AE3D00376F83 /* XPRoomFacePresenter.m in Sources */,
E85E7B362A4EB0D300B6D00A /* XPClanRoomCollectionViewCell.m in Sources */,
18F4043A275E20D900A6C548 /* TRTCRtcImpl.m in Sources */,
2320F63F2BDF8B3000227EEB /* MSRoomMenuGameVC.m in Sources */,
E8899C7F27853B6A007944BE /* DatingMicroView.m in Sources */,
23E9EA882A84B75900B792F2 /* XPMineUserInfoHeaderTagView.m in Sources */,
E87DF4EC2A42CB60009C1185 /* XPSearchListTableViewCell.m in Sources */,

View File

@@ -63,7 +63,7 @@ UIKIT_EXTERN NSString * const kOpenRoomNotification;
[[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
[FIRApp configure];
[MobLink setDelegate:self];
return YES;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

After

Width:  |  Height:  |  Size: 122 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "ms_room_bottom_game_icon@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "ms_room_bottom_game_icon@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "ms_room_menu_game@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "ms_room_menu_game@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -66,7 +66,7 @@ NSString * const KeyWithType(Pi_KeyType type) {
@(KeyType_PasswordEncode) : @"1ea53d260ecf11e7b56e00163e046a26",
@(KeyType_Agora) : @"f8713b6ec98c4c01adaf34cb4fa091b1",
@(KeyType_TRTC) : @"1400741885",
@(KeyType_NetEase) : @"1c3b8c6bf8467d8e4c33a004dbec5c94",
@(KeyType_NetEase) : @"79bc37000f4018a2a24ea9dc6ca08d32",
@(keyType_YiDunBussinessId) : @"yinyouApnsDebug",
@(KeyType_FacePwdEncode) : @"1ea53d260ecf11e7b56e00163e046a26",
@(KeyType_SudGameAppID) : @"1578948593831571457",

View File

@@ -53,7 +53,7 @@ isPhoneXSeries = [[UIApplication sharedApplication] delegate].window.safeAreaIns
///渠道
#define PI_App_Source @"appstore"
#define PI_Test_Flight @"TestFlight"
#define ISTestFlight 0
///正式环境
#define API_HOST_URL @"https://api.hfighting.com"
//#define API_HOST_URL @"https://api.molistar.xyz"

View File

@@ -36,7 +36,7 @@
//
NSData *data = [[NSData alloc] initWithContentsOfFile:path];
// JSON
NSDictionary *codeData = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
NSDictionary *codeData = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
NSArray *codeList = [LoginAreaModel modelsWithArray:codeData[@"RECORDS"]];
[self getLocalPlistWithList:codeList];
}

View File

@@ -134,7 +134,7 @@
_titleView.text = [NSString stringWithFormat:YMLocalizedString(@"XPMineConfirmGiveDiamondView1"),_giveDiamondModel.targetNick];
NSTextAttachment * attachment = [[NSTextAttachment alloc] init];
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:@(self.inputDiamonds).stringValue attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:kGetScaleWidth(30) weight:UIFontWeightMedium],NSForegroundColorAttributeName:[DJDKMIMOMColor inputTextColor]}];
UIImage *iconImage = [UIImage imageNamed:@"mine_give_diamone_icon"];;
UIImage *iconImage = [UIImage imageNamed:@"exchange_gold_icon"];;
attachment.bounds = CGRectMake(0, roundf(self.numView.font.capHeight - 24)/2.f, 24, 24);
attachment.image =iconImage;

View File

@@ -309,6 +309,7 @@
[_applyBtn addTarget:self action:@selector(applyAction) forControlEvents:UIControlEventTouchUpInside];
_applyBtn.layer.cornerRadius = kGetScaleWidth(25)/2;
_applyBtn.layer.masksToBounds = YES;
_applyBtn.titleLabel.numberOfLines = 2;
}
return _applyBtn;

View File

@@ -134,7 +134,7 @@
_bgImageView.contentMode = UIViewContentModeScaleAspectFill;
_bgImageView.layer.cornerRadius = 10.f;
_bgImageView.clipsToBounds = YES;
_bgImageView.image = self.type == IncomeRecord_Diamond ? [UIImage imageNamed:@"income_record_diamond_bg"]: [UIImage imageNamed:@"income_record_gold_bg"];
_bgImageView.image = self.type == IncomeRecord_Diamond ? [UIImage imageNamed:@"income_record_gold_bg"]:[UIImage imageNamed:@"income_record_diamond_bg"];
}
return _bgImageView;
}

View File

@@ -113,6 +113,8 @@
NobleAuthInfo *info = [self.vipAuthInfos safeObjectAtIndex1:indexPath.row];
if ([self.vipInfo.ownAuthTypes containsObject:@(info.authType)]) {
cell.isOwn = YES;
}else{
cell.isOwn = NO;
}
cell.vipInfo = info;
return cell;

View File

@@ -82,7 +82,7 @@
[self.presenter getHomePersonalRoomList];
}else{
self.page = 1;
[self.presenter getRecommendRoomList:self.tagModel.id page:self.page pageSize:20];
[self.presenter getRecommendRoomList:self.tagModel.id page:self.page pageSize:50];
}
}

View File

@@ -6,7 +6,7 @@
//
#import <Foundation/Foundation.h>
@class ActivityInfoItemModel;
NS_ASSUME_NONNULL_BEGIN
///跳转的类型
typedef NS_ENUM(NSInteger, ActivitySkipType) {
@@ -32,6 +32,7 @@ typedef NS_ENUM(NSInteger, ActivityType) {
@property(nonatomic,copy) NSString *code;
@property(nonatomic,copy) NSString *icon;
@property(nonatomic,copy) NSString *skipContent;
@property(nonatomic,copy) NSString *name;
///名称
@property (nonatomic,copy) NSString *bannerName;
///外面的活动的图片
@@ -46,6 +47,32 @@ typedef NS_ENUM(NSInteger, ActivityType) {
@property (nonatomic, assign)NSInteger showType;
///活动类型
@property (nonatomic,assign) ActivityType activityType;
@property(nonatomic,copy) NSString *ruleValue;
@property(nonatomic,strong) ActivityInfoItemModel *gameModel;
///游戏链接
@property(nonatomic,copy) NSString *gameUrl;
@end
@interface ActivityInfoItemModel : PIBaseModel
///商⼾ idBAISHUN 提供,商⼾后台可查看)
@property(nonatomic,assign) int64_t appId;
///⽤⼾ userId
@property(nonatomic,copy) NSString *userId;
///商⼾⽣成的认证令牌(⽤于游戏服务器获取⽤⼾信息)
@property(nonatomic,copy) NSString *code;
///房间 ID不存在可以传空
@property(nonatomic,copy) NSString *roomId;
////房间 ID不存在可以传空
@property(nonatomic,copy) NSString *gameMode;
@property(nonatomic,copy) NSString *language;
@property(nonatomic,copy) NSDictionary *gameConfig;
///游戏正式服务器节点101:新加坡(阿⾥云) 201:迪拜AWS301:硅⾕ (阿⾥云) 401:法兰克福(阿⾥云)
@property(nonatomic,assign) int gsp;
///商⼾渠道BAISHUN 提供,商⼾后台可查看)
@property(nonatomic,copy) NSString *appChannel;
@end
NS_ASSUME_NONNULL_END

View File

@@ -8,5 +8,20 @@
#import "ActivityInfoModel.h"
@implementation ActivityInfoModel
- (void)setRuleValue:(NSString *)ruleValue{
_ruleValue = ruleValue;
id data = [_ruleValue mj_JSONObject];
if([data isKindOfClass:[NSDictionary class]]){
NSDictionary *dic = (NSDictionary *)data;
if(dic[@"RESERVE"]!=nil){
_gameModel = [ActivityInfoItemModel modelWithJSON:dic[@"RESERVE"]];
}
}
}
@end
@implementation ActivityInfoItemModel
@end

View File

@@ -170,6 +170,8 @@ typedef NS_ENUM(NSInteger, RoomDatingStateChangeType) {
@property(nonatomic,assign) BOOL hasRoomAlbum;
//1 厅内红包 2 全服红包 3 厅内红包+全服红包
@property(nonatomic,assign) NSInteger redEnvelopeType;
@end
NS_ASSUME_NONNULL_END

View File

@@ -10,7 +10,7 @@
#import "RoomGuestDelegate.h"
#import "XPRedPacketModel.h"
#import "RoomInfoModel.h"
#import "ActivityInfoModel.h"
typedef void(^OpenRedPacketHandle)(XPRedPacketModel *_Nullable,RoomType type ,BOOL isChangeRoom);
@@ -19,6 +19,7 @@ NS_ASSUME_NONNULL_BEGIN
@interface XPRoomActivityContainerView : UIView<RoomGuestDelegate>
@property(nonatomic,strong) NSMutableArray *redPacketList;
@property(nonatomic,copy)OpenRedPacketHandle openRedPacketHandle;
@property(nonatomic,strong) NSMutableArray<ActivityInfoModel *> *playList;
- (instancetype)initWithdelegate:(id<RoomHostDelegate>)delegate;
@end

View File

@@ -21,7 +21,7 @@
///Model
#import "UserInfoModel.h"
#import "RoomInfoModel.h"
#import "ActivityInfoModel.h"
#import "AttachmentModel.h"
#import "FirstRechargeModel.h"
#import "TreasureFairyLimitModel.h"
@@ -59,7 +59,6 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
@property (nonatomic,weak) id<RoomHostDelegate>hostDelegate;
///
@property (nonatomic,strong) NSMutableArray<ActivityInfoModel *> *activityList;
@property(nonatomic,strong) NSMutableArray<ActivityInfoModel *> *playList;
///
@property (nonatomic,assign) BOOL isLoadActivity;
@property(nonatomic,assign) BOOL isShowChoosePlayView;
@@ -180,9 +179,9 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
if(self.playList.count > 0){
ActivityInfoModel *playModel = self.playList.firstObject;
self.clickPlayView.model = playModel;
if(self.isShowChoosePlayView == NO){
self.clickPlayView.hidden = NO;
}
// if(self.isShowChoosePlayView == NO){
// self.clickPlayView.hidden = NO;
// }
}else{
self.clickPlayView.hidden = YES;
}
@@ -196,11 +195,11 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
NSMutableArray *list = [NSMutableArray array];
[list addObjectsFromArray:self.playList];
[list addObjectsFromArray:self.activityList];
NSMutableArray *picArray = [NSMutableArray array];
for (ActivityInfoModel *model in list) {
[picArray addObject:model.icon];
[picArray addObject:model.icon ?: @""];
}
self.pi_cycleScrollView.imageURLStringsGroup = picArray;
if (self.activityList.count > 1) {
@@ -257,9 +256,9 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
if(self.playList.count > 0){
ActivityInfoModel *playModel = self.playList.firstObject;
self.clickPlayView.model = playModel;
if(self.isShowChoosePlayView == NO){
self.clickPlayView.hidden = NO;
}
// if(self.isShowChoosePlayView == NO){
// self.clickPlayView.hidden = NO;
// }
}else{
self.clickPlayView.hidden = YES;
}
@@ -613,7 +612,7 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView;
[UIView animateWithDuration:0.1 animations:^{
view.frame = isMSRTL() ? CGRectMake(-201, y, 201, 124) : CGRectMake(KScreenWidth, y, 201, 124);
}completion:^(BOOL finished) {
self.clickPlayView.hidden = NO;
// self.clickPlayView.hidden = NO;
[view removeFromSuperview];
}];
}

View File

@@ -305,21 +305,19 @@
- (void)configLittleGameState {
RoomInfoModel * roomInfo = self.delegate.getRoomInfo;
if (roomInfo.isPermitRoom != PermitRoomType_Licnese && roomInfo.roomModeType != RoomModeType_Open_Blind && roomInfo.roomModeType != RoomModeType_Open_PK_Mode && roomInfo.roomModeType != RoomModeType_Open_AcrossRoomPK_mode && roomInfo.roomModeType != RoomModeType_Open_Micro_Mode && !roomInfo.leaveMode && roomInfo.uid == [AccountInfoStorage instance].getUid.integerValue) {
// if (!self.gameListView.superview) {
// [self addSubview:self.gameListView];
// [self.gameListView mas_makeConstraints:^(MASConstraintMaker *make) {
// make.trailing.mas_equalTo(self).offset(-85);
// make.top.mas_equalTo(self).offset(kNavigationHeight - 14 - 11 - 19.0 / 2.0);
// }];
// }
// self.gameListView.mgId = roomInfo.mgId > 0 ? [NSString stringWithFormat:@"%lld", roomInfo.mgId] : @"0";
// } else {
// if (self.gameListView.superview) {
// [self.gameListView removeFromSuperview];
// }
if (!self.gameListView.superview) {
[self addSubview:self.gameListView];
[self.gameListView mas_makeConstraints:^(MASConstraintMaker *make) {
make.trailing.mas_equalTo(self).offset(-85);
make.top.mas_equalTo(self).offset(kNavigationHeight - 14 - 11 - 19.0 / 2.0);
}];
}
self.gameListView.mgId = roomInfo.mgId > 0 ? [NSString stringWithFormat:@"%lld", roomInfo.mgId] : @"0";
} else {
if (self.gameListView.superview) {
[self.gameListView removeFromSuperview];
}
}
}
//

View File

@@ -6,7 +6,7 @@
//
#import <Foundation/Foundation.h>
@class LittleGameInfoItemModel;
NS_ASSUME_NONNULL_BEGIN
@interface LittleGameInfoModel : PIBaseModel
@@ -18,6 +18,12 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, copy) NSString *pic;
///是否选择
@property (nonatomic,assign) BOOL isSelect;
///游戏类型 ///SUD/BAISHUN
@property(nonatomic,copy) NSString *gameType;
@property(nonatomic,copy) NSString *configJson;
@property(nonatomic,strong) LittleGameInfoItemModel *gameItem;
@end
NS_ASSUME_NONNULL_END

View File

@@ -10,3 +10,7 @@
@implementation LittleGameInfoModel
@end

View File

@@ -61,6 +61,7 @@
[self initHttpRequest];
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
@@ -294,7 +295,6 @@
[_gameRoomButton setImage:[UIImage getLanguageImage:@"room_little_game_game_room_select"] forState:UIControlStateSelected];
[_gameRoomButton addTarget:self action:@selector(gameRoomButtonAction:) forControlEvents:UIControlEventTouchUpInside];
_gameRoomButton.selected = NO;
_gameRoomButton.hidden = YES;
}
return _gameRoomButton;
}

View File

@@ -0,0 +1,16 @@
//
// MSRoomMenuGameCell.h
// YuMi
//
// Created by duoban on 2024/4/29.
//
#import <UIKit/UIKit.h>
#import "ActivityInfoModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MSRoomMenuGameCell : UICollectionViewCell
@property(nonatomic,strong) ActivityInfoModel *model;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,67 @@
//
// MSRoomMenuGameCell.m
// YuMi
//
// Created by duoban on 2024/4/29.
//
#import "MSRoomMenuGameCell.h"
@interface MSRoomMenuGameCell()
@property(nonatomic,strong) NetImageView *gameView;
@property(nonatomic,strong) UILabel *textView;
@end
@implementation MSRoomMenuGameCell
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
[self.contentView addSubview:self.gameView];
[self.contentView addSubview:self.textView];
}
-(void)installConstraints{
[self.gameView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kGetScaleWidth(20));
make.width.height.mas_equalTo(kGetScaleWidth(56));
make.centerX.equalTo(self.contentView);
}];
[self.textView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.gameView.mas_bottom).mas_offset(kGetScaleWidth(10));
make.leading.trailing.equalTo(self.contentView).inset(kGetScaleWidth(5));
}];
}
- (void)setModel:(ActivityInfoModel *)model{
_model = model;
_gameView.image = nil;
[_gameView loadImageWithUrl:_model.icon completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) {
self.gameView.image = image;
}];
_textView.text = _model.name;
}
#pragma mark -
- (NetImageView *)gameView{
if(!_gameView){
NetImageConfig *config = [NetImageConfig new];
config.placeHolder = [UIImageConstant defaultEmptyAvatarPlaceholder];
_gameView = [[NetImageView alloc]initWithConfig:config];
_gameView.layer.cornerRadius = kGetScaleWidth(6);
_gameView.layer.masksToBounds = YES;
}
return _gameView;
}
- (UILabel *)textView{
if(!_textView){
_textView = [UILabel labelInitWithText:@"" font:kFontRegular(12) textColor:[UIColor whiteColor]];
_textView.textAlignment = NSTextAlignmentCenter;
_textView.numberOfLines = 2;
}
return _textView;
}
@end

View File

@@ -0,0 +1,16 @@
//
// MSRoomMenuGameEmptyCell.h
// YuMi
//
// Created by duoban on 2024/4/30.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface MSRoomMenuGameEmptyCell : UICollectionViewCell
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,54 @@
//
// MSRoomMenuGameEmptyCell.m
// YuMi
//
// Created by duoban on 2024/4/30.
//
#import "MSRoomMenuGameEmptyCell.h"
@interface MSRoomMenuGameEmptyCell()
@property(nonatomic,strong) UIImageView *iconView;
@property(nonatomic,strong) UILabel *textView;
@end
@implementation MSRoomMenuGameEmptyCell
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
[self.contentView addSubview:self.iconView];
[self.contentView addSubview:self.textView];
}
-(void)installConstraints{
[self.iconView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(kGetScaleWidth(101));
make.height.mas_equalTo(kGetScaleWidth(106));
make.centerX.equalTo(self.contentView);
make.top.mas_equalTo(kGetScaleWidth(50));
}];
[self.textView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.iconView.mas_bottom).mas_offset(kGetScaleWidth(14));
make.centerX.equalTo(self.contentView);
}];
}
#pragma mark -
- (UIImageView *)iconView{
if(!_iconView){
_iconView = [UIImageView new];
_iconView.image = kImage(@"ms_room_bottom_game_icon");
}
return _iconView;
}
- (UILabel *)textView{
if(!_textView){
_textView = [UILabel labelInitWithText:YMLocalizedString(@"XPCandyTreeEmptyableViewCell0") font:kFontRegular(14) textColor:[UIColor whiteColor]];
}
return _textView;
}
@end

View File

@@ -0,0 +1,17 @@
//
// MSRoomMenuGameVC.h
// YuMi
//
// Created by duoban on 2024/4/29.
//
#import "MvpViewController.h"
#import "RoomHostDelegate.h"
#import "RoomGuestDelegate.h"
NS_ASSUME_NONNULL_BEGIN
@interface MSRoomMenuGameVC : MvpViewController<RoomGuestDelegate>
- (instancetype)initWithDelegate:(id<RoomHostDelegate>)delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,155 @@
//
// MSRoomMenuGameVC.m
// YuMi
//
// Created by duoban on 2024/4/29.
//
#import "Api+Room.h"
#import "MSRoomMenuGameVC.h"
#import "MSRoomMenuGameView.h"
#import "XPTreasureFairyViewController.h"
#import "XPRoomHalfWebView.h"
#import "XPWebViewController.h"
#import "XPCandyTreeViewController.h"
#import "XPSailingViewController.h"
#import "XPRoomViewController.h"
#import "MSRoomGameWebVC.h"
@interface MSRoomMenuGameVC ()<MSRoomMenuGameViewDelegate>
@property(nonatomic,strong) MSRoomMenuGameView *gameView;
///host
@property (nonatomic,weak) id<RoomHostDelegate>hostDelegate;
@end
@implementation MSRoomMenuGameVC
-(void)dealloc{
}
- (instancetype)initWithDelegate:(id<RoomHostDelegate>)delegate{
self = [super init];
if(self){
self.hostDelegate = delegate;
}
return self;
}
- (BOOL)isHiddenNavBar {
return YES;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self installUI];
[self installConstraints];
[self getGameData];
}
-(void)getGameData{
NSMutableArray *playList = [self.hostDelegate getPlayList];
if(playList.count > 0){
_gameView.playList = playList;
return;
}
NSString * roomId = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.roomId];
[Api getPlayList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) {
if (code == 200) {
NSArray <ActivityInfoModel *>* array = [ActivityInfoModel modelsWithArray:data.data];
self.gameView.playList = [[NSMutableArray alloc]initWithArray:array];
}
} roomId:roomId];
}
-(void)installUI{
self.view.backgroundColor = [UIColor clearColor];
[self.view addSubview:self.gameView];
}
-(void)installConstraints{
[self.gameView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.view);
}];
}
#pragma mark- MSRoomMenuGameViewDelegate
- (void)didClickBackBtnAction{
[self dismissViewControllerAnimated:YES completion:nil];
}
-(void)ms_didSelectItemAtIndexPath:(ActivityInfoModel *)model{
self.gameView.hidden = YES;
if ([model.code isEqualToString:@"FIND_LOVE"]) {
[self lookLoveTapRecognizer];
} else if([model.code isEqualToString:@"NAUTICAL_ADVENTURE"]) {
[self sailTapRecognizer];
}else if([model.code isEqualToString:@"BAISHUN"]){
[self clickGameVC:model];
}else if([model.code isEqualToString:@"SEIZE_TREASURE"]){
if ([self.hostDelegate isKindOfClass:[XPRoomViewController class]]){
XPRoomViewController *vc = (XPRoomViewController *)self.hostDelegate;
XPTreasureFairyViewController * fairyVC = [[XPTreasureFairyViewController alloc] initWithdelegate:self.hostDelegate];
fairyVC.roomUid =[NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
fairyVC.view.frame = CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight);
[vc addChildViewController:fairyVC];
[fairyVC.navigationController setNavigationBarHidden:YES animated:NO];
[vc.view addSubview:fairyVC.view];
[UIView animateWithDuration:0.2 animations:^{
fairyVC.view.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
}completion:^(BOOL finished) {
}];
}
} else if(model.skipType == ActivitySkipType_Web) {
if(model.showType == ActivityShowType_Half){
XPRoomHalfWebView * webView = [[XPRoomHalfWebView alloc] init];
webView.isPlayView = YES;
webView.roomUid = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
webView.url = model.skipContent;
[TTPopup popupView:webView style:TTPopupStyleActionSheet];
return;
}
XPWebViewController * webVC = [[XPWebViewController alloc] init];
webVC.roomUid = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
webVC.url = model.skipContent;
[self.hostDelegate.getCurrentNav pushViewController:webVC animated:YES];
}
[self dismissViewControllerAnimated:YES completion:nil];
}
-(void)clickGameVC:(ActivityInfoModel *)model{
if ([self.hostDelegate isKindOfClass:[XPRoomViewController class]]){
MSRoomGameWebVC *vc = [[MSRoomGameWebVC alloc]initWithDelegate:self.hostDelegate gameModel:model];
vc.view.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
XPRoomViewController *roomVC = (XPRoomViewController *)self.hostDelegate;
[roomVC addChildViewController:vc];
[self.hostDelegate.getSuperView addSubview:vc.view];
}
}
- (void)lookLoveTapRecognizer {
if ([self.hostDelegate isKindOfClass:[XPRoomViewController class]]){
XPCandyTreeViewController * candyTreeVC = [[XPCandyTreeViewController alloc] initWithDelegate:self.hostDelegate];
candyTreeVC.view.frame = CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight);
[self.hostDelegate.getSuperView addSubview:candyTreeVC.view];
XPRoomViewController *vc = (XPRoomViewController *)self.hostDelegate;
[vc addChildViewController:candyTreeVC];
[candyTreeVC.navigationController setNavigationBarHidden:YES animated:NO];
[UIView animateWithDuration:0.1 animations:^{
candyTreeVC.view.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
}completion:^(BOOL finished) {
}];
}
}
- (void)sailTapRecognizer {
NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.uid];
XPSailingViewController * sailingVC = [[XPSailingViewController alloc] initWithRoomUid:roomUid];
[self.hostDelegate.getCurrentNav presentViewController:sailingVC animated:YES completion:nil];
}
#pragma mark -
- (MSRoomMenuGameView *)gameView{
if(!_gameView){
_gameView = [[MSRoomMenuGameView alloc]initWithFrame:CGRectZero];
_gameView.delegate = self;
}
return _gameView;
}
@end

View File

@@ -0,0 +1,24 @@
//
// MSRoomMenuGameView.h
// YuMi
//
// Created by duoban on 2024/4/29.
//
#import <UIKit/UIKit.h>
#import "ActivityInfoModel.h"
NS_ASSUME_NONNULL_BEGIN
@protocol MSRoomMenuGameViewDelegate <NSObject>
-(void)didClickBackBtnAction;
-(void)ms_didSelectItemAtIndexPath:(ActivityInfoModel *)model;
@end
@interface MSRoomMenuGameView : UIView
@property(nonatomic,strong) NSMutableArray<ActivityInfoModel *> *playList;
@property(nonatomic,weak) id<MSRoomMenuGameViewDelegate>delegate;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,116 @@
//
// MSRoomMenuGameView.m
// YuMi
//
// Created by duoban on 2024/4/29.
//
#import "MSRoomMenuGameView.h"
#import "MSRoomMenuGameCell.h"
#import "MSRoomMenuGameEmptyCell.h"
@interface MSRoomMenuGameView()<UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>
@property(nonatomic,strong) UIButton *backBtn;
@property(nonatomic,strong) UIView *ms_bgView;
@property(nonatomic,strong) UICollectionView *collectionView;
@end
@implementation MSRoomMenuGameView
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
self.backgroundColor = [UIColor clearColor];
[self addSubview:self.backBtn];
[self addSubview:self.ms_bgView];
[self.ms_bgView addSubview:self.collectionView];
}
-(void)installConstraints{
[self.backBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
[self.ms_bgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.leading.trailing.equalTo(self).inset(kGetScaleWidth(0));
make.height.mas_equalTo(kGetScaleWidth(247));
}];
[self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.ms_bgView);
}];
}
-(void)backBtnAction{
if (self.delegate && [self.delegate respondsToSelector:@selector(didClickBackBtnAction)]){
[self.delegate didClickBackBtnAction];
}
}
-(void)setPlayList:(NSMutableArray<ActivityInfoModel *> *)playList{
_playList = playList;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self.collectionView reloadData];
});
}
#pragma mark- UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
CGFloat width = (KScreenWidth-kGetScaleWidth(6))/5;
return self.playList.count > 0 ? CGSizeMake(width, kGetScaleWidth(100)): CGSizeMake(KScreenWidth, kGetScaleWidth(200));
}
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{
return self.playList.count > 0 ? UIEdgeInsetsMake(0, kGetScaleWidth(3), 0, kGetScaleWidth(3)): UIEdgeInsetsMake(0, 0, 0, 0);
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
return self.playList.count > 0 ? self.playList.count : 1;
}
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
if (self.playList.count == 0){
MSRoomMenuGameEmptyCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MSRoomMenuGameEmptyCell class]) forIndexPath:indexPath];
return cell;
}
MSRoomMenuGameCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MSRoomMenuGameCell class]) forIndexPath:indexPath];
cell.model = [self.playList safeObjectAtIndex1:indexPath.row];
return cell;
}
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
if (self.delegate && [self.delegate respondsToSelector:@selector(ms_didSelectItemAtIndexPath:)]){
[self.delegate ms_didSelectItemAtIndexPath:[self.playList safeObjectAtIndex1:indexPath.row]];
}
}
#pragma mark -
- (UIButton *)backBtn{
if(!_backBtn){
_backBtn = [UIButton new];
[_backBtn addTarget:self action:@selector(backBtnAction) forControlEvents:UIControlEventTouchUpInside];
}
return _backBtn;
}
- (UIView *)ms_bgView{
if(!_ms_bgView){
_ms_bgView = [UIView new];
_ms_bgView.backgroundColor = UIColorFromRGB(0x2D1E4D);
[_ms_bgView setCornerWithLeftTopCorner:kGetScaleWidth(12) rightTopCorner:kGetScaleWidth(12) bottomLeftCorner:0 bottomRightCorner:0 size:CGSizeMake(KScreenWidth, kGetScaleWidth(247))];
}
return _ms_bgView;
}
- (UICollectionView *)collectionView{
if (!_collectionView) {
MSBaseRTLFlowLayout *layout = [[MSBaseRTLFlowLayout alloc] init];
layout.minimumLineSpacing = 0;
layout.minimumInteritemSpacing = 0;
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
_collectionView.showsHorizontalScrollIndicator = NO;
_collectionView.dataSource = self;
_collectionView.delegate = self;
_collectionView.backgroundColor = [UIColor clearColor];
[_collectionView registerClass:[MSRoomMenuGameCell class] forCellWithReuseIdentifier:NSStringFromClass([MSRoomMenuGameCell class])];
[_collectionView registerClass:[MSRoomMenuGameEmptyCell class] forCellWithReuseIdentifier:NSStringFromClass([MSRoomMenuGameEmptyCell class])];
}
return _collectionView;
}
@end

View File

@@ -19,6 +19,7 @@ typedef NS_ENUM(NSInteger, XPRoomMenuItemType) {
XPRoomMenuItemType_ArrangeMic,///排麦
XPRoomMenuItemType_Gift,///礼物
XPRoomMenuItemType_Noble,///VIP
MSRoomMenuItemType_Game,///VIP
};
@interface XPRoomMenuItem : NSObject

View File

@@ -32,6 +32,7 @@
#import "XPRoomFaceViewController.h"
#import "XPRoomHalfMessageView.h"
#import "XPRoomMessageBubbleView.h"
#import "MSRoomMenuGameVC.h"
@interface XPRoomMenuContainerView ()<XPRoomMessageBubbleViewDelegate>
///
@@ -56,6 +57,9 @@
@property (nonatomic,strong) UIButton *arrangeMicButton;
///VIP
@property (nonatomic,strong) UIButton *nobleButton;
///
@property(nonatomic,strong) UIButton *gameButton;
///
@property (nonatomic,strong) XPRoomSendTextView *inputTextView;
@property (nonatomic,strong) XPRoomMessageBubbleView *miniMessageView;
@@ -155,6 +159,7 @@
break;
case XPRoomMenuItemType_More: {
XPRoomMoreMenuViewController * moreMenuVC = [[XPRoomMoreMenuViewController alloc] initWithDelegate:self.delegate];
[self.delegate.getCurrentNav presentViewController:moreMenuVC animated:YES completion:nil];
}
break;
@@ -194,6 +199,14 @@
[self.delegate.getCurrentNav pushViewController:nobleVC animated:YES];
}
break;
case MSRoomMenuItemType_Game:
{
MSRoomMenuGameVC *vc = [[MSRoomMenuGameVC alloc]initWithDelegate:self.delegate];
vc.modalPresentationStyle = UIModalPresentationOverFullScreen;
[self.delegate.getCurrentNav presentViewController:vc animated:YES completion:nil];
break;
}
default:
break;
}
@@ -216,6 +229,7 @@
- (void)initSubViews {
[self addSubview:self.scrollView];
[self addSubview:self.giftButton];
[self addSubview:self.gameButton];
[self.scrollView addSubview:self.stackView];
@@ -247,7 +261,7 @@
- (void)initSubViewConstraints {
[self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(self).offset(15);
make.trailing.mas_equalTo(self.giftButton.mas_leading).offset(-10);
make.trailing.mas_equalTo(self.gameButton.mas_leading).offset(-10);
make.top.mas_equalTo(self).offset(8);
make.bottom.mas_equalTo(self).offset(-12 - kSafeAreaBottomHeight);
}];
@@ -265,7 +279,11 @@
make.trailing.mas_equalTo(self).offset(-20);
make.size.mas_equalTo(CGSizeMake(35, 35));
}];
[self.gameButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self.scrollView);
make.trailing.mas_equalTo(self).offset(-64);
make.size.mas_equalTo(CGSizeMake(32, 32));
}];
}
- (NSArray<XPGiftUserInfoModel *> *)configGiftUsers:(NSMutableDictionary<NSString *,MicroQueueModel *> *)queue {
@@ -597,5 +615,14 @@
}
return _miniMessageView;
}
- (UIButton *)gameButton{
if(!_gameButton){
_gameButton = [UIButton new];
[_gameButton setImage:[UIImage imageNamed:@"ms_room_menu_game"] forState:UIControlStateNormal];
[_gameButton setImage:[UIImage imageNamed:@"ms_room_menu_game"] forState:UIControlStateSelected];
_gameButton.tag = MSRoomMenuItemType_Game;
[_gameButton addTarget:self action:@selector(menuButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _gameButton;
}
@end

View File

@@ -176,9 +176,9 @@
}
// [array addObject:inviteFriend];
[array addObject:trumpet];
if (isCreator && roomInfo.type != RoomType_Anchor && roomInfo.isPermitRoom != PermitRoomType_Licnese && roomInfo.isPermitRoom != PermitRoomType_YoungerStar) {
[array addObject:releaseRadio];
}
// if (isCreator && roomInfo.type != RoomType_Anchor && roomInfo.isPermitRoom != PermitRoomType_Licnese && roomInfo.isPermitRoom != PermitRoomType_YoungerStar) {
// [array addObject:releaseRadio];
// }
[array addObject:giftEffect];
[array addObject:roomSetting];
[array addObject:messageScreen];

View File

@@ -40,6 +40,7 @@ NS_ASSUME_NONNULL_BEGIN
-(BOOL)getIsMiniEnter;
///屏蔽
-(void)requesstShieldingAction;
-(NSMutableArray *)getPlayList;;
@end
NS_ASSUME_NONNULL_END

View File

@@ -563,9 +563,9 @@
XPWebViewController * webVC = [[XPWebViewController alloc] init];
webVC.roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid];
if (self.roomInfo.leaveMode && self.userInfo.uid == self.roomInfo.uid) { ///
webVC.url = [NSString stringWithFormat:@"%@?uid=%ld", URLWithType(kRoomCharmRankURL), self.microModel.userInfo.uid ? self.microModel.userInfo.uid : self.roomInfo.uid];
webVC.url = [NSString stringWithFormat:@"%@?uid=%ld&roomUid=%ld", URLWithType(kRoomCharmRankURL), (self.microModel.userInfo.uid ? self.microModel.userInfo.uid : self.roomInfo.uid),(long)self.roomInfo.uid];
} else {
webVC.url = [NSString stringWithFormat:@"%@?uid=%ld", URLWithType(kRoomCharmRankURL), self.microModel.userInfo.uid];
webVC.url = [NSString stringWithFormat:@"%@?uid=%ld&roomUid=%ld", URLWithType(kRoomCharmRankURL), self.microModel.userInfo.uid,self.roomInfo.uid];
}
[[XCCurrentVCStackManager shareManager].getCurrentVC.navigationController pushViewController:webVC animated:YES];
}

View File

@@ -1789,7 +1789,9 @@ NSString * const kHadQuitOtherRoomKey = @"kHadQuitOtherRoomKey";//是否退出
- (UserInfoModel *)getUserInfo {
return self.userInfo;
}
-(NSMutableArray *)getPlayList{
return self.activityContainerView.playList;
}
- (void)exitRoom {
[self.stageView exitRoom];
[self.menuContainerView menuResignFirstResponder];

View File

@@ -7,10 +7,12 @@
#import "BaseViewController.h"
#import <WebKit/WebKit.h>
#import "RoomHostDelegate.h"
#import "ActivityInfoModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface MSRoomGameWebVC : BaseViewController
- (instancetype)initWithDelegate:(id<RoomHostDelegate>)delegate gameModel:(ActivityInfoModel *)gameModel;
@end
NS_ASSUME_NONNULL_END

View File

@@ -6,6 +6,10 @@
//
#import "MSRoomGameWebVC.h"
#import "LittleGameInfoModel.h"
#import "RoomInfoModel.h"
#import "XPIAPRechargeViewController.h"
@interface MSWeakWebViewScriptMessageDelegate : NSObject<WKScriptMessageHandler>
//WKScriptMessageHandler JavaScriptOC
@@ -46,11 +50,24 @@ NSString * const kMSGameLoaded = @"gameLoaded";
@property (strong, nonatomic) WKWebView *webview;
@property (strong, nonatomic) UIProgressView *progressView;
@property (nonatomic, strong) WKUserContentController *ms_userContentController;
@property (nonatomic,weak) id<RoomHostDelegate> hostDelegate;
@property(nonatomic,strong) ActivityInfoModel *gameModel;
@end
@implementation MSRoomGameWebVC
- (instancetype)initWithDelegate:(id<RoomHostDelegate>)delegate gameModel:(ActivityInfoModel *)gameModel
{
self = [super init];
if (self) {
self.hostDelegate = delegate;
self.gameModel = gameModel;
}
return self;
}
- (BOOL)isHiddenNavBar {
return YES;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self installUI];
@@ -80,11 +97,7 @@ NSString * const kMSGameLoaded = @"gameLoaded";
//
int ScreenHeight = [[UIScreen mainScreen] bounds].size.height;
int ScreenWidth = [[UIScreen mainScreen] bounds].size.width;
//
CGRect statusBarRect = [[UIApplication sharedApplication]
statusBarFrame];
int statusBarHeight = statusBarRect.size.height;
self.webview = [[WKWebView alloc] initWithFrame:CGRectMake(0,0,
ScreenWidth, ScreenHeight) configuration:config];
[self.webview.scrollView setBackgroundColor:[UIColor clearColor]];
@@ -98,6 +111,11 @@ NSString * const kMSGameLoaded = @"gameLoaded";
UIScrollViewContentInsetAdjustmentNever;
}
[self.view addSubview:self.webview];
NSString *h5Url = self.gameModel.skipContent;
NSURL *url = [NSURL URLWithString:h5Url];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
[self.webview loadRequest:request];
}
- (void)webView:(WKWebView *)webView didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential * _Nullable))completionHandler{
@@ -106,8 +124,6 @@ NSString * const kMSGameLoaded = @"gameLoaded";
NSURLCredential *card = [[NSURLCredential alloc]initWithTrust:challenge.protectionSpace.serverTrust];
completionHandler(NSURLSessionAuthChallengeUseCredential,card);
});
}
}
@@ -171,32 +187,58 @@ NSString * const kMSGameLoaded = @"gameLoaded";
//
- (void) getConfig:(NSDictionary*)args
{
NSLog(@"BSGAME %s","游戏调⽤getConfig");
NSString* method = [args objectForKey:@"jsCallback"];
RoomInfoModel *roomInfo = self.hostDelegate.getRoomInfo;
ActivityInfoItemModel *gameModel = self.gameModel.gameModel;
NSString *appChannel = gameModel.appChannel ?: @"";
int64_t appId = gameModel.appId;
NSString *userId = [AccountInfoStorage instance].getUid;
NSString *code = gameModel.code ?: @"";
NSString *roomId = [NSString stringWithFormat:@"%ld",roomInfo.uid];
NSString *gameMode = gameModel.gameMode ?: @"";
NSString *language = gameModel.language ?: @"";
NSDictionary *gameConfig = gameModel.gameConfig ?: @{};
int gsp = gameModel.gsp;
// APP
NSObject* configData = @{
@"appChannel":@"mesh",
@"appId":@88888888,
@"userId":@"534206265",
@"code":@"j10NQCb16b6E1oCnAx4o3hHdEaDzm6RLZjyyyEcn34tiJcPXNbkZh5g8Q6Zd",
@"roomId":@"20230901",
@"gameMode":@"3",
@"language":@"2",
@"gameConfig":@{
@"sceneMode":@0,
@"currencyIcon":@"https://bsyx-store.s3.ap-southeast-.amazonaws.com/game-icons/20230906-163004.png",
},
@"gsp":@101,
@"appChannel":appChannel,
@"appId":@(appId),
@"userId":userId,
@"code":code,
@"roomId":roomId,
@"gameMode":gameMode,
@"language":[self getlanguage],
@"gameConfig":gameConfig,
@"gsp":@(gsp),
};
[self callJs:method withJavaScriptValue:configData];
}
-(NSString *)getlanguage{
NSString *language = [NSBundle getLanguageText];
if ([language hasPrefix:@"zh"]) {
if ([language rangeOfString:@"Hans"].location != NSNotFound) {
language = @"0"; //
} else {
language = @"1"; //
}
}else if([language hasPrefix:@"ar"]){///
language = @"7";
}else{///
language = @"2";
}
return language;
}
//
- (void) destroy:(NSDictionary*)args
{
NSLog(@"BSGAME %s","游戏调⽤destroy");
// TODO
[self willMoveToParentViewController:nil]; //1
[self.view removeFromSuperview]; //2
[self removeFromParentViewController]; //3
}
//
@@ -204,6 +246,16 @@ NSString * const kMSGameLoaded = @"gameLoaded";
{
NSLog(@"BSGAME %s","游戏调⽤gameRecharge");
// TODO
TTAlertConfig *config = [[TTAlertConfig alloc]init];
config.message = YMLocalizedString(@"XPNobleCenterViewController3");
config.actionStyle = TTAlertActionBothStyle;
[TTPopup alertWithConfig:config showBorder:NO confirmHandler:^{
XPIAPRechargeViewController * webVC =[[XPIAPRechargeViewController alloc] init];
webVC.type = @"4";
[self.navigationController pushViewController:webVC animated:YES];
} cancelHandler:^{
}];
}
//

View File

@@ -122,7 +122,7 @@ static NSString *_from = nil;
+ (NSString *)getAppSource{
if (_from == nil) {
if (isEnterprise == NO) {
_from = @"molistar_enterprise"; //
_from = ISTestFlight ? PI_Test_Flight : @"molistar_enterprise"; //
}else {
_from = [ClientConfig shareConfig].isTF == YES ? PI_Test_Flight : PI_App_Source; // Test_Flightappstore App Store
}

View File

@@ -167,7 +167,7 @@
"XPMineGuildListCell5" = "قيد المراجعة";
"XPMineGuildListCell6" = "تمت الدعوة";
"XPMineMainGuildListVC0" = "النقابة";
"XPMineMainGuildListVC0" = "الوكالة";
"XPMineMainGuildListVC1" = "الغرفة";
///XPMineHallAnchorIncomeStatisViewController.m
@@ -274,7 +274,7 @@
"XPIncomeRecordView1"="إعادة الشحن";
"XPIncomeRecordView2"="تبادل العملات";
"XPIncomeRecordView3"="سحب";
"XPIncomeRecordView4"="العملات";
"XPIncomeRecordView4"="العملات الذهبية";
"XPIncomeRecordView5"="الماس";
"XPIncomeRecordVC0"="سجل الأرباح";
@@ -1677,8 +1677,8 @@ ineHeadView12" = "الحمل";
"XPRoomInsideRecommendEmptyCell0" = "في محاولة للعثور على غرف مناسبة";
"XPRoomRecommendView0" = "حظر / إبلاغ";
"XPRoomRecommendView1" = "إغلاق الغرفة";
"XPRoomRecommendView2" = "الخروج من الغرفة";
"XPRoomRecommendView1" = "تصغير";
"XPRoomRecommendView2" = "الخروج";
"XPRoomRecommendView3" = "نوصي لك";
"XPAnchorFansTeamEntranceView0" = "الفريق الفانز (%ld)";
@@ -1845,7 +1845,7 @@ ineHeadView12" = "الحمل";
"AnchorStageView5" = "أنت بالفعل على المنصة";
"AnchorStageView6" = "دع الرئيس يجذبك إلى المنصة للمزيد من التفاعل";
"SocialMicroView0" = "موقع صاحب الغرفة";
"SocialMicroView0" = "رئيس";
"LittleGameMicroView0" = "صاحب الغرفة";
"LittleGameMicroView1" = "غير جاهز";
@@ -2102,9 +2102,9 @@ ineHeadView12" = "الحمل";
"XPGiftBarView0" = "الرصيد: %@";
"XPGiftBarView1" = "شحن";
"XPGiftBarView2" = "إهداء";
"XPGiftBarView3" = "جاري الإهداء...";
"XPGiftBarView4" = "إهداء";
"XPGiftBarView2" = "إرسال";
"XPGiftBarView3" = "إرسال";
"XPGiftBarView4" = "إرسال";
"XPGiftBarView5" = "الرجاء إدخال مبلغ الهدية";
"XPGiftBarView6" = "تأكيد";
@@ -2148,8 +2148,8 @@ ineHeadView12" = "الحمل";
"XPGiftInfoView0" = "الإجمالي:";
"XPGiftInfoView1" = "لا توجد هدايا حالياً~";
"XPGiftInfoView2" = "الهدايا";
"XPGiftInfoView3" = "الحظ السعيد";
"XPGiftInfoView2" = "هدية";
"XPGiftInfoView3" = "الحظ";
"XPGiftInfoView4" = "نجم الأسبوع";
"XPGiftInfoView5" = "الحقيبة";
"XPGiftInfoView6" = "هدية الرسم";
@@ -3101,7 +3101,7 @@ ineHeadView12" = "الحمل";
"MessageContentGuildDialogView15"="الموافقة على الخروج";
"MessageContentGuildDialogView16"="رفض الخروج";
///XPMineGuildListVC.m
"XPMineGuildListVC0" = "التصنيف الأسبوعي للجمعية";
"XPMineGuildListVC0" = "قائمة التصنيف الأسبوعية";
"XPMineGuildListVC1" = "لا توجد جمعيات حاليًا";
"XPMineGuildListVC2"="تم الإرسال بنجاح، يرجى الانتظار بصبر";
"XPMineGuildListVC3" = "لم يتم العثور على غرف ذات صلة";
@@ -3154,7 +3154,6 @@ ineHeadView12" = "الحمل";
"XPMineGiveDiamondDetailsVC1" = "نقود";
"XPMineGiveDiamondDetailsVC2"="الهدايا";
"XPIncomeRecordView2" = "تحويل النقود";
"XPIncomeRecordView4" = "نقود";
"XPExchangeDiamondsItemView0" = "نقودي: %@";
"XPExchangeDiamondsView3" = "على الأقل يجب تحويل %ld نقود";
@@ -3555,8 +3554,8 @@ ineHeadView12" = "الحمل";
"XPHomeLittleGameTableViewCell1" = "في انتظار";
"XPHomeLittleGameTableViewCell2" = "الانضمام إلى الغرفة";
///XPLittleGameRoomListView.m
"XPLittleGameRoomListView0" = "توسيع قائمة الأصدقاء";
"XPLittleGameRoomListView1" = "توسيع قائمة الأصدقاء";
"XPLittleGameRoomListView0" = "توسيع الأصدقاء";
"XPLittleGameRoomListView1" = "توسيع الأصدقاء";
///XPLittleGameRoomOpenView.m
"XPLittleGameRoomOpenView0" = "فشل طلب معلومات الغرفة ، يرجى المحاولة مرة أخرى!";
"XPLittleGameRoomOpenView1" = "إنشاء غرفة جديدة";

View File

@@ -150,6 +150,12 @@
"mcc": "724",
"code": "55"
},
{
"name": "Britain",
"abbr": "BI",
"mcc": "234",
"code": "44"
},
{
"name": "Brunei Darussalam",
"abbr": "BN",

View File

@@ -1103,7 +1103,7 @@
"XPMoreMenuPresenter20" = "清空公屏";
"XPMoreMenuPresenter21" = "房间设置";
"XPMoreMenuPresenter22" = "邀请粉丝";
"XPMoreMenuPresenter23" = "发广播";
"XPMoreMenuPresenter23" = "发广播";
"XPMoreMenuPresenter24" = "红包";
"XPMoreMenuPresenter26" = "PK中...";
@@ -1197,7 +1197,7 @@
"AnchorStageView5" = "你已经在麦上了喔";
"AnchorStageView6" = "让主播抱你上麦进行更多互动吧~";
"SocialMicroView0" = "老位";
"SocialMicroView0" = "老位";
"LittleGameMicroView0" = "房主";
"LittleGameMicroView1" = "未准备";