您不能選擇超過 %s 個話題 話題必須以字母或數字為開頭,可包含連接號 ('-') 且最長為 35 個字

215 行
6.4 KiB

  1. require("luaScript.SubGameConfigs")
  2. -- 获取子游戏的配置信息
  3. function getSubGameConfig(gameId)
  4. local gameId = tonumber(gameId)
  5. logD("getSubGameConfig:"..gameId)
  6. local gameConfig = app.subGameConfigManager:getSubGameConfig(gameId)
  7. if not gameConfig then
  8. gameConfig = app.config.SubGameConfigs[gameId]
  9. end
  10. return gameConfig;
  11. end
  12. -- 获取子游戏的名称
  13. -- 名称来自服务器的配置
  14. function getSubGameName(gameId)
  15. local gameId = tonumber(gameId)
  16. logD("getSubGameName:"..gameId)
  17. local gameConfig = getSubGameConfig(gameId)
  18. if gameConfig then
  19. return gameConfig.gameName or ""
  20. end
  21. end
  22. -- 获取子游戏的大厅类
  23. function getSubGameMainView(gameId)
  24. local gameId = tonumber(gameId)
  25. logD("getSubGameMainView:"..gameId)
  26. local gameConfig = getSubGameConfig(gameId)
  27. if not gameConfig then
  28. logE("Error :: getSubGameMainView() 没有找到对应的子游戏配置信息, ", gameId)
  29. return nil
  30. end
  31. return gameConfig.mainViewName
  32. end
  33. -- 获取子游戏的房间类
  34. -- 由于历史原因,房间内可能根据玩法不一样存在多个
  35. function getSubGameRoomView(gameId, gameRule, protocolType)
  36. local gameId = tonumber(gameId)
  37. local gameRule = tonumber(gameRule)
  38. logD("getSubGameRoomView:"..gameId)
  39. local gameConfig = getSubGameConfig(gameId)
  40. if not gameConfig then
  41. logE("Error :: getSubGameRoomView() 没有找到对应的子游戏配置信息, ", gameId, gameRule)
  42. return nil
  43. end
  44. local roomViewName = gameConfig.roomViewName
  45. if protocolType == PROTOCOL_TYPE.COIN then
  46. roomViewName = gameConfig.roomViewNameCoin or roomViewName;
  47. elseif protocolType == PROTOCOL_TYPE.MATCH then
  48. roomViewName = gameConfig.roomViewNameMatch or roomViewName;
  49. end
  50. if roomViewName and type(roomViewName) == "table" then
  51. return roomViewName[gameRule]
  52. else
  53. return roomViewName;
  54. end
  55. end
  56. --- getSubGameProtocolClass 获取子游戏的协议类
  57. -- 由于历史原因,协议类可能根据玩法不一样存在多个
  58. -- @param gameId 游戏id
  59. -- @param gameRule 游戏玩法
  60. -- @param protocolType 协议类型
  61. function getSubGameProtocolClass(gameId, gameRule, protocolType)
  62. local gameId = tonumber(gameId)
  63. local gameRule = tonumber(gameRule)
  64. logD("getSubGameProtocolClass:"..gameId)
  65. local gameConfig = getSubGameConfig(gameId)
  66. if not gameConfig then
  67. logE("Error :: getSubGameProtocolClass() 没有找到对应的子游戏配置信息, ", gameId, gameRule)
  68. return nil
  69. end
  70. local protocolClass = gameConfig.protocolClass;
  71. if protocolType == PROTOCOL_TYPE.COIN then
  72. protocolClass = gameConfig.protocolClassCoin or protocolClass;
  73. elseif protocolType == PROTOCOL_TYPE.MATCH then
  74. protocolClass = gameConfig.protocolClassMatch or protocolClass;
  75. end
  76. if protocolClass and type(protocolClass) == "table" then
  77. return protocolClass[gameRule]
  78. else
  79. return protocolClass;
  80. end
  81. end
  82. -- 获取子游戏的战绩协议类
  83. function getSubGameProtocolZhanJi(gameId)
  84. local gameId = tonumber(gameId)
  85. logD("getSubGameProtocolZhanJi:"..gameId)
  86. local gameConfig = getSubGameConfig(gameId)
  87. if not gameConfig then
  88. logE("Error :: getSubGameProtocolZhanJi() 没有找到对应的子游戏配置信息, ", gameId)
  89. return nil
  90. end
  91. return gameConfig.protocolZhanJi
  92. end
  93. -- 获取子游戏的战绩单局界面
  94. function getSubGameZhanjiDanJuView(gameId)
  95. local gameId = tonumber(gameId)
  96. logD("getSubGameZhanjiDanJuView:"..gameId)
  97. local gameConfig = getSubGameConfig(gameId)
  98. if not gameConfig then
  99. logE("Error :: getSubGameZhanjiView() 没有找到对应的子游戏配置信息, ", gameId)
  100. return nil
  101. end
  102. return gameConfig.zhanjiDanjuView
  103. end
  104. -- 获取子游戏创建房间界面的规则ui
  105. function getSubGameCreateRoomUi(gameId, gameRule)
  106. local gameId = tonumber(gameId)
  107. local gameRule = tonumber(gameRule)
  108. logD("getSubGameCreateRoomUi:"..gameId)
  109. local gameConfig = getSubGameConfig(gameId)
  110. if not gameConfig then
  111. logE("Error :: getSubGameProtocolClass() 没有找到对应的子游戏配置信息, ", gameId, gameRule)
  112. return nil
  113. end
  114. if gameConfig.uiCreateRule and type(gameConfig.uiCreateRule) == "table" then
  115. return gameConfig.uiCreateRule[gameRule] or gameConfig.uiCreateRule[tostring(gameRule)]
  116. else
  117. return nil
  118. end
  119. end
  120. -- 获取子游戏玩法的名字
  121. function getSubGameRuleName(gameId, gameRule)
  122. local gameId = tonumber(gameId)
  123. local gameRule = tonumber(gameRule)
  124. logD("getSubGameRuleName:"..gameId)
  125. local gameConfig = getSubGameConfig(gameId)
  126. if not gameConfig then
  127. logE("Error :: getSubGameRuleName() 没有找到对应的子游戏配置信息, ", gameId, gameRule)
  128. return ""
  129. end
  130. if gameConfig.GameType and type(gameConfig.GameType) == "table" then
  131. return gameConfig.GameType[gameRule] or gameConfig.GameType[tostring(gameRule)]
  132. else
  133. return ""
  134. end
  135. end
  136. -- 获取子游戏玩法的人数
  137. function getSubGamePlayerNum(gameId, gameRule)
  138. local gameId = tonumber(gameId)
  139. local gameRule = tonumber(gameRule)
  140. logD("getSubGamePlayerNum:"..gameId)
  141. local gameConfig = getSubGameConfig(gameId);
  142. if not gameConfig or not gameConfig.playerNum then
  143. return
  144. end
  145. return gameConfig.playerNum[gameRule] or gameConfig.playerNum[tostring(gameRule)] or 4
  146. end
  147. -- 获取子游戏的战绩回放界面
  148. function getSubGameZhanjiRecordView(gameId)
  149. local gameId = tonumber(gameId)
  150. logD("getSubGameZhanjiRecordView:"..gameId)
  151. local gameConfig = getSubGameConfig(gameId)
  152. if not gameConfig then
  153. logE("Error :: getSubGameZhanjiRecordView() 没有找到对应的子游戏配置信息, ", gameId)
  154. return nil
  155. end
  156. return gameConfig.zhanjiRecordView
  157. end
  158. -- 获取子游戏的桌面水印
  159. -- 可能返回""或者nil
  160. function getSubGameRoomLogo(gameId, ruleId)
  161. logD("getSubGameRoomLogo() gameId = "..tostring(gameId) .. ", ruleId = "..tostring(ruleId))
  162. if not gameId or not ruleId then
  163. error("")
  164. return;
  165. end
  166. local gameId = tonumber(gameId)
  167. local ruleId = tonumber(ruleId)
  168. local gameConfig = getSubGameConfig(gameId)
  169. if not gameConfig then
  170. logE("Error :: getSubGameRoomLogo() 没有找到对应的子游戏配置信息 ", gameId, ruleId)
  171. return nil
  172. end
  173. if not gameConfig.room_logos then
  174. logE("Error :: getSubGameRoomLogo() 没有找到对应的水印配置信息")
  175. return nil
  176. end
  177. return gameConfig.room_logos[ruleId] or gameConfig.room_logos[tostring(ruleId)]
  178. end
  179. -- 获取子游戏创建房间界面的配置
  180. function getSubGameCreateRuleConfig(gameId)
  181. local gameConfig = getSubGameConfig(gameId)
  182. if gameConfig then
  183. return gameConfig.createRule
  184. else
  185. return nil
  186. end
  187. end