|
- require("luaScript.SubGameConfigs")
-
- -- 获取子游戏的配置信息
- function getSubGameConfig(gameId)
- local gameId = tonumber(gameId)
- logD("getSubGameConfig:"..gameId)
- local gameConfig = app.subGameConfigManager:getSubGameConfig(gameId)
- if not gameConfig then
- gameConfig = app.config.SubGameConfigs[gameId]
- end
- return gameConfig;
- end
-
- -- 获取子游戏的名称
- -- 名称来自服务器的配置
- function getSubGameName(gameId)
- local gameId = tonumber(gameId)
- logD("getSubGameName:"..gameId)
- local gameConfig = getSubGameConfig(gameId)
- if gameConfig then
- return gameConfig.gameName or ""
- end
- end
-
- -- 获取子游戏的大厅类
- function getSubGameMainView(gameId)
- local gameId = tonumber(gameId)
- logD("getSubGameMainView:"..gameId)
- local gameConfig = getSubGameConfig(gameId)
- if not gameConfig then
- logE("Error :: getSubGameMainView() 没有找到对应的子游戏配置信息, ", gameId)
- return nil
- end
-
- return gameConfig.mainViewName
- end
-
- -- 获取子游戏的房间类
- -- 由于历史原因,房间内可能根据玩法不一样存在多个
- function getSubGameRoomView(gameId, gameRule, protocolType)
- local gameId = tonumber(gameId)
- local gameRule = tonumber(gameRule)
- logD("getSubGameRoomView:"..gameId)
- local gameConfig = getSubGameConfig(gameId)
- if not gameConfig then
- logE("Error :: getSubGameRoomView() 没有找到对应的子游戏配置信息, ", gameId, gameRule)
- return nil
- end
-
- local roomViewName = gameConfig.roomViewName
-
- if protocolType == PROTOCOL_TYPE.COIN then
- roomViewName = gameConfig.roomViewNameCoin or roomViewName;
- elseif protocolType == PROTOCOL_TYPE.MATCH then
- roomViewName = gameConfig.roomViewNameMatch or roomViewName;
- end
-
- if roomViewName and type(roomViewName) == "table" then
- return roomViewName[gameRule]
- else
- return roomViewName;
- end
- end
-
- --- getSubGameProtocolClass 获取子游戏的协议类
- -- 由于历史原因,协议类可能根据玩法不一样存在多个
- -- @param gameId 游戏id
- -- @param gameRule 游戏玩法
- -- @param protocolType 协议类型
- function getSubGameProtocolClass(gameId, gameRule, protocolType)
- local gameId = tonumber(gameId)
- local gameRule = tonumber(gameRule)
- logD("getSubGameProtocolClass:"..gameId)
- local gameConfig = getSubGameConfig(gameId)
- if not gameConfig then
- logE("Error :: getSubGameProtocolClass() 没有找到对应的子游戏配置信息, ", gameId, gameRule)
- return nil
- end
-
- local protocolClass = gameConfig.protocolClass;
- if protocolType == PROTOCOL_TYPE.COIN then
- protocolClass = gameConfig.protocolClassCoin or protocolClass;
- elseif protocolType == PROTOCOL_TYPE.MATCH then
- protocolClass = gameConfig.protocolClassMatch or protocolClass;
- end
-
- if protocolClass and type(protocolClass) == "table" then
- return protocolClass[gameRule]
- else
- return protocolClass;
- end
- end
-
- -- 获取子游戏的战绩协议类
- function getSubGameProtocolZhanJi(gameId)
- local gameId = tonumber(gameId)
- logD("getSubGameProtocolZhanJi:"..gameId)
- local gameConfig = getSubGameConfig(gameId)
- if not gameConfig then
- logE("Error :: getSubGameProtocolZhanJi() 没有找到对应的子游戏配置信息, ", gameId)
- return nil
- end
-
- return gameConfig.protocolZhanJi
- end
-
- -- 获取子游戏的战绩单局界面
- function getSubGameZhanjiDanJuView(gameId)
- local gameId = tonumber(gameId)
- logD("getSubGameZhanjiDanJuView:"..gameId)
- local gameConfig = getSubGameConfig(gameId)
- if not gameConfig then
- logE("Error :: getSubGameZhanjiView() 没有找到对应的子游戏配置信息, ", gameId)
- return nil
- end
-
- return gameConfig.zhanjiDanjuView
- end
-
- -- 获取子游戏创建房间界面的规则ui
- function getSubGameCreateRoomUi(gameId, gameRule)
- local gameId = tonumber(gameId)
- local gameRule = tonumber(gameRule)
- logD("getSubGameCreateRoomUi:"..gameId)
- local gameConfig = getSubGameConfig(gameId)
- if not gameConfig then
- logE("Error :: getSubGameProtocolClass() 没有找到对应的子游戏配置信息, ", gameId, gameRule)
- return nil
- end
-
- if gameConfig.uiCreateRule and type(gameConfig.uiCreateRule) == "table" then
- return gameConfig.uiCreateRule[gameRule] or gameConfig.uiCreateRule[tostring(gameRule)]
- else
- return nil
- end
- end
-
- -- 获取子游戏玩法的名字
- function getSubGameRuleName(gameId, gameRule)
- local gameId = tonumber(gameId)
- local gameRule = tonumber(gameRule)
- logD("getSubGameRuleName:"..gameId)
- local gameConfig = getSubGameConfig(gameId)
- if not gameConfig then
- logE("Error :: getSubGameRuleName() 没有找到对应的子游戏配置信息, ", gameId, gameRule)
- return ""
- end
-
- if gameConfig.GameType and type(gameConfig.GameType) == "table" then
- return gameConfig.GameType[gameRule] or gameConfig.GameType[tostring(gameRule)]
- else
- return ""
- end
- end
-
- -- 获取子游戏玩法的人数
- function getSubGamePlayerNum(gameId, gameRule)
- local gameId = tonumber(gameId)
- local gameRule = tonumber(gameRule)
- logD("getSubGamePlayerNum:"..gameId)
- local gameConfig = getSubGameConfig(gameId);
- if not gameConfig or not gameConfig.playerNum then
- return
- end
-
- return gameConfig.playerNum[gameRule] or gameConfig.playerNum[tostring(gameRule)] or 4
- end
-
- -- 获取子游戏的战绩回放界面
- function getSubGameZhanjiRecordView(gameId)
- local gameId = tonumber(gameId)
- logD("getSubGameZhanjiRecordView:"..gameId)
- local gameConfig = getSubGameConfig(gameId)
- if not gameConfig then
- logE("Error :: getSubGameZhanjiRecordView() 没有找到对应的子游戏配置信息, ", gameId)
- return nil
- end
-
- return gameConfig.zhanjiRecordView
- end
-
- -- 获取子游戏的桌面水印
- -- 可能返回""或者nil
- function getSubGameRoomLogo(gameId, ruleId)
- logD("getSubGameRoomLogo() gameId = "..tostring(gameId) .. ", ruleId = "..tostring(ruleId))
- if not gameId or not ruleId then
- error("")
- return;
- end
-
- local gameId = tonumber(gameId)
- local ruleId = tonumber(ruleId)
- local gameConfig = getSubGameConfig(gameId)
- if not gameConfig then
- logE("Error :: getSubGameRoomLogo() 没有找到对应的子游戏配置信息 ", gameId, ruleId)
- return nil
- end
-
- if not gameConfig.room_logos then
- logE("Error :: getSubGameRoomLogo() 没有找到对应的水印配置信息")
- return nil
- end
-
- return gameConfig.room_logos[ruleId] or gameConfig.room_logos[tostring(ruleId)]
- end
-
- -- 获取子游戏创建房间界面的配置
- function getSubGameCreateRuleConfig(gameId)
- local gameConfig = getSubGameConfig(gameId)
- if gameConfig then
- return gameConfig.createRule
- else
- return nil
- end
- end
|