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