Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

383 linhas
13 KiB

  1. local PdkRoomViewConfig = {}
  2. local gameConfig = getSubGameConfig(GAME_IDS.PaoDeKuai)
  3. local PDKDefine = require("luaScript.SubGameDefine.Poker.pdkWanFa")
  4. local winSize = cc.Director:getInstance():getWinSize()
  5. local designSize = cc.p(1280,720)
  6. -- 玩家节点位置
  7. PdkRoomViewConfig.PLAYER_POS = {
  8. [0] = {
  9. -- cc.p(62, 111),
  10. -- cc.p(62, 481),
  11. -- cc.p(1224, 481),--x-机器人牌位置
  12. cc.p((62)/designSize.x * winSize.width, 111/designSize.y * winSize.height),
  13. cc.p((1224-25)/designSize.x * winSize.width, 481/designSize.y * winSize.height),
  14. cc.p((62+25)/designSize.x * winSize.width, 481/designSize.y * winSize.height),
  15. },
  16. [1] = {
  17. cc.p((62)/designSize.x * winSize.width, 111/designSize.y * winSize.height),
  18. cc.p((1224-25)/designSize.x * winSize.width, 481/designSize.y * winSize.height),
  19. cc.p((62+25)/designSize.x * winSize.width, 481/designSize.y * winSize.height),
  20. },
  21. }
  22. --root cardRoot手牌开始位置
  23. PdkRoomViewConfig.CARD_POS = {
  24. [0] = {
  25. cc.p(62/designSize.x * winSize.width, 111),
  26. cc.p(1134/designSize.x * winSize.width, 596/designSize.y * winSize.height),
  27. },
  28. [1] = {
  29. cc.p(62/designSize.x * winSize.width, 111),
  30. cc.p(1134/designSize.x * winSize.width, 596/designSize.y * winSize.height),
  31. cc.p(152/designSize.x * winSize.width, 596/designSize.y * winSize.height),
  32. },
  33. }
  34. -- 出牌显示位置
  35. PdkRoomViewConfig.SHOW_CARD_POS = {
  36. [0] = {
  37. cc.p(200/designSize.x * winSize.width, 110/designSize.y * winSize.height),
  38. cc.p(980/designSize.x * winSize.width, 481/designSize.y * winSize.height),
  39. },
  40. [1] = {
  41. cc.p(200/designSize.x * winSize.width, 110/designSize.y * winSize.height),
  42. cc.p(1095/designSize.x * winSize.width, 481/designSize.y * winSize.height),
  43. cc.p(200/designSize.x * winSize.width, 481/designSize.y * winSize.height),
  44. },
  45. }
  46. PdkRoomViewConfig.NEW_SHOW_CARD_POS = {
  47. [0] = {
  48. cc.p(640/designSize.x * winSize.width, 330/designSize.y * winSize.height),
  49. cc.p(-130/designSize.x * winSize.width, 0/designSize.y * winSize.height),
  50. },
  51. [1] = {
  52. cc.p(640/designSize.x * winSize.width, 330/designSize.y * winSize.height),
  53. cc.p(-130/designSize.x * winSize.width, 0/designSize.y * winSize.height),
  54. cc.p(230/designSize.x * winSize.width, 0/designSize.y * winSize.height),
  55. },
  56. }
  57. PdkRoomViewConfig.PASS_SHOW_POS = {
  58. [0] = {
  59. cc.p(580/designSize.x * winSize.width, 200/designSize.y * winSize.height),
  60. cc.p(-160/designSize.x * winSize.width, 0/designSize.y * winSize.height),
  61. },
  62. [1] = {
  63. cc.p(580/designSize.x * winSize.width, 200/designSize.y * winSize.height),
  64. cc.p(-160/designSize.x * winSize.width, 0/designSize.y * winSize.height),
  65. cc.p(170/designSize.x * winSize.width, 0/designSize.y * winSize.height),
  66. },
  67. }
  68. -- 牌缩放
  69. PdkRoomViewConfig.CARD_SCALE = {
  70. [1] = 1,
  71. [2] = 0.6,
  72. [3] = 0.6,
  73. }
  74. -- 发牌时的起始缩放
  75. PdkRoomViewConfig.CARD_SCALE_START = 0.5
  76. -- 牌间距
  77. PdkRoomViewConfig.CARD_DLT_WIDTH = 60
  78. -- 发牌开始位置
  79. PdkRoomViewConfig.CARD_START_POS = cc.p(640/designSize.x * winSize.width, 340/designSize.y * winSize.height)
  80. -- 牌的正常位置高度
  81. PdkRoomViewConfig.NORMAL_HEIGHT = 111
  82. -- 牌选择时的高度
  83. PdkRoomViewConfig.SELECTED_HEIGHT = 111+40
  84. -- 卡牌高度
  85. PdkRoomViewConfig.CARD_HEIGHT = 231
  86. PdkRoomViewConfig.CARD_WIDTH = 163
  87. --[[
  88. ]]
  89. -- 牌型显示类型
  90. PdkRoomViewConfig.EffectType = {
  91. PASS = 0,--要不起
  92. SINGLE_CARD = 1, --//单牌
  93. DUI_ZI = 2, --//对子
  94. THREE_AND_TWO = 3, --//三带二
  95. SHUN_ZI = 4, --//顺子
  96. LIAN_DUI = 5, --//连对(至少3连对)
  97. AIRPLANE = 6, --//飞机
  98. FOUR_AND_THREE = 7, --//四带三
  99. BOMB = 8, --//炸弹
  100. FOUR_AND_ONE = 9, --//四带一
  101. THREE_AND_ONE = 10, --三带一
  102. THREE = 11, --三个
  103. FOUR_AND_TWO = 12, --四带二
  104. SPRING_HUA = 99, -- 春天花
  105. NONE = 100, --不适用类型
  106. }
  107. -- 游戏桌子状态
  108. PdkRoomViewConfig.GameStatus = {
  109. GAME_STATE_INIT =0, --//游戏准备状态
  110. GAME_STATE_SEND_HAND_CARD =1, --//发牌
  111. GAME_STATE_OUT_CARD =2, --//打牌
  112. GAME_STATE_ROUND_OVER =3, --//游戏一局结束
  113. GAME_STATE_GAME_OVER =4, --//游戏结束
  114. }
  115. -- 创建房间参数
  116. PdkRoomViewConfig.CreateParams = {
  117. 0x0001, --红桃10扎鸟
  118. 0x0002, --可4带3
  119. 0x0004, --炸弹可拆
  120. 0x0008, --3张,飞机少带接完
  121. 0x0010, --首局先出黑桃三
  122. 0x0020, --显示牌的张数
  123. 0x0040, --第一手牌必须包含最小牌
  124. 0x0200, -- '3必带2',
  125. 0x0400, -- '可4带2',
  126. 0x0800, -- '反春天',
  127. }
  128. PdkRoomViewConfig.CreateParamsMean = PDKDefine.CreateParamsMean
  129. PdkRoomViewConfig.RoonInfoConfig = {
  130. play = PDKDefine.GameTypesStr,
  131. num = PDKDefine.GamePlayerCount,
  132. wanfa = PDKDefine.GameWanfa,
  133. bombScore = PDKDefine.BombScore,
  134. }
  135. PdkRoomViewConfig.InviteConfig = {
  136. [2] = {
  137. [1] = "一缺一",
  138. [2] = "",
  139. },
  140. [3] = {
  141. [1] = "一缺二",
  142. [2] = "二缺一",
  143. [3] = "",
  144. }
  145. }
  146. --[[
  147. print("------------rule--------", getNumBand(rule, 0x0001))
  148. print("------------rule--------", getNumBand(rule, 0x0002))
  149. print("------------rule--------", getNumBand(rule, 0x0004))
  150. print("------------rule--------", getNumBand(rule, 0x0008))
  151. print("------------rule--------", getNumBand(rule, 0x0010))
  152. print("------------rule--------", getNumBand(rule, 0x0020))
  153. print("------------rule--------", getNumBand(rule, 0x0040))
  154. ]]
  155. PdkRoomViewConfig.PayConfig = {
  156. [0] = "房主付费",
  157. [1] = "AA支付"
  158. }
  159. function PdkRoomViewConfig.getPayInfo( gameInfo )
  160. local data = json.decode(gameInfo)
  161. if data == nil then
  162. return ""
  163. end
  164. return PdkRoomViewConfig.PayConfig[tonumber(data.deductRule)]
  165. end
  166. function PdkRoomViewConfig.getRoundCount( gameInfo )
  167. local data = json.decode(gameInfo)
  168. if data == nil then
  169. return ""
  170. end
  171. return PdkRoomViewConfig.RoonInfoConfig.num[tonumber(data.playerNum)]
  172. end
  173. function PdkRoomViewConfig.getWanfa( gameInfo )
  174. local data = json.decode(gameInfo)
  175. if data == nil then
  176. return ""
  177. end
  178. return PdkRoomViewConfig.RoonInfoConfig.wanfa[tonumber(data.allowPass)]
  179. end
  180. --[[获取房间详情字符串--]]
  181. function PdkRoomViewConfig.getRuleString(gameInfo)
  182. -- local gameInfo = app.room:getRoomInfo().nGameInfo
  183. local data = json.decode(gameInfo)
  184. if data == nil then
  185. return ""
  186. end
  187. local rule = tonumber(data.specialRule)
  188. local ruleStr = ""
  189. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.play[tonumber(data.gamerule)]..","
  190. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.num[tonumber(data.playerNum)]..","
  191. ruleStr = ruleStr..(PdkRoomViewConfig.RoonInfoConfig.bombScore[tonumber(data.bombScore)] or "")..","
  192. if data.allowPass and data.allowPass >= 0 then
  193. ruleStr = ruleStr..PdkRoomViewConfig.RoonInfoConfig.wanfa[tonumber(data.allowPass)]..","
  194. end
  195. if data.baseMulti and data.baseMulti > 0 then
  196. ruleStr = ruleStr .. "积分倍数x" .. data.baseMulti .. ","
  197. end
  198. if getNumBand(rule, 0x0001)>0 then
  199. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0001]..","
  200. end
  201. if getNumBand(rule, 0x0002)>0 then
  202. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0002]..","
  203. end
  204. if getNumBand(rule, 0x0004)>0 then
  205. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0004]..","
  206. end
  207. -- if getNumBand(rule, 0x0008)>0 then
  208. -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0008]..","
  209. -- end
  210. if getNumBand(rule, 0x0010)>0 then
  211. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0010]..","
  212. end
  213. if getNumBand(rule, 0x0020)>0 then
  214. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0020]..","
  215. end
  216. if getNumBand(rule, 0x0040)>0 then
  217. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0040]..","
  218. end
  219. if getNumBand(rule, 0x0080)>0 then
  220. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0080]..","
  221. end
  222. if getNumBand(rule, 0x0200)>0 then
  223. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0200]..","
  224. end
  225. if getNumBand(rule, 0x0400)>0 then
  226. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0400]..","
  227. end
  228. if getNumBand(rule, 0x0800)>0 then
  229. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0800]..","
  230. end
  231. if string.len(ruleStr) > 0 then
  232. ruleStr = string.sub(ruleStr, 1, string.len(ruleStr)-1)
  233. end
  234. return ruleStr
  235. end
  236. function PdkRoomViewConfig.getRuleString2(gameInfo)
  237. -- local gameInfo = app.room:getRoomInfo().nGameInfo
  238. local data = json.decode(gameInfo)
  239. if data == nil then
  240. return ""
  241. end
  242. local rule = tonumber(data.specialRule)
  243. local ruleStr = ""
  244. if getNumBand(rule, 0x0001)>0 then
  245. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0001].. "、"
  246. end
  247. if getNumBand(rule, 0x0002)>0 then
  248. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0002].. "、"
  249. end
  250. if getNumBand(rule, 0x0004)>0 then
  251. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0004].. "、"
  252. end
  253. -- if getNumBand(rule, 0x0008)>0 then
  254. -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0008]..","
  255. -- end
  256. if getNumBand(rule, 0x0010)>0 then
  257. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0010].. "、"
  258. end
  259. if getNumBand(rule, 0x0020)>0 then
  260. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0020].. "、"
  261. end
  262. if getNumBand(rule, 0x0040)>0 then
  263. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0040].. "、"
  264. end
  265. if getNumBand(rule, 0x0080)>0 then
  266. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0080].. "、"
  267. end
  268. if getNumBand(rule, 0x0200)>0 then
  269. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0200].. "、"
  270. end
  271. if getNumBand(rule, 0x0400)>0 then
  272. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0400].. "、"
  273. end
  274. if getNumBand(rule, 0x0800)>0 then
  275. ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0800]
  276. end
  277. if data.baseMulti and data.baseMulti > 0 then
  278. ruleStr = ruleStr .. "积分倍数x" .. data.baseMulti .. "、"
  279. end
  280. return ruleStr
  281. end
  282. function PdkRoomViewConfig.getWanfaTab(strGameInfo)
  283. local data = json.decode(strGameInfo)
  284. local rule = tonumber(data.specialRule)
  285. local rules = {}
  286. table.insert(rules,PdkRoomViewConfig.getPayInfo(strGameInfo))
  287. table.insert(rules,PdkRoomViewConfig.getRoundCount(strGameInfo))
  288. table.insert(rules,PdkRoomViewConfig.RoonInfoConfig.wanfa[tonumber(data.allowPass)])
  289. table.insert(rules,(PdkRoomViewConfig.RoonInfoConfig.bombScore[tonumber(data.bombScore)] or ""))
  290. if data.baseMulti and data.baseMulti > 0 then
  291. table.insert(rules, "积分倍数x" .. data.baseMulti)
  292. end
  293. if data.forbidProp and data.forbidProp > 0 then
  294. table.insert(rules, "屏蔽快捷语与道具")
  295. end
  296. if data.forbidVoice and data.forbidVoice > 0 then
  297. table.insert(rules, "屏蔽语音")
  298. end
  299. if getNumBand(rule, 0x0001)>0 then
  300. table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0001])
  301. -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0001].. "、"
  302. end
  303. if getNumBand(rule, 0x0002)>0 then
  304. table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0002])
  305. -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0002].. "、"
  306. end
  307. if getNumBand(rule, 0x0004)>0 then
  308. table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0004])
  309. -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0004].. "、"
  310. end
  311. -- if getNumBand(rule, 0x0008)>0 then
  312. -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0008]..","
  313. -- end
  314. if getNumBand(rule, 0x0010)>0 then
  315. table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0010])
  316. -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0010].. "、"
  317. end
  318. if getNumBand(rule, 0x0020)>0 then
  319. table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0020])
  320. -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0020].. "、"
  321. end
  322. if getNumBand(rule, 0x0040)>0 then
  323. table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0040])
  324. -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0040].. "、"
  325. end
  326. if getNumBand(rule, 0x0080)>0 then
  327. table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0080])
  328. -- ruleStr = ruleStr..PdkRoomViewConfig.CreateParamsMean[0x0080]
  329. end
  330. if getNumBand(rule, 0x0200)>0 then
  331. table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0200])
  332. end
  333. if getNumBand(rule, 0x0400)>0 then
  334. table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0400])
  335. end
  336. if getNumBand(rule, 0x0800)>0 then
  337. table.insert(rules,PdkRoomViewConfig.CreateParamsMean[0x0800])
  338. end
  339. return rules
  340. end
  341. function PdkRoomViewConfig.getSimpleInviteStr(gameId, roomInfo)
  342. local data = json.decode(roomInfo.nGameInfo or "")
  343. if data == nil then
  344. return ""
  345. end
  346. local gamerule = data.gamerule -- 玩法
  347. local roundCount = roomInfo.nTotalGameNum -- 局数
  348. local gameConfig = getSubGameConfig(gameId)
  349. local gameType = gameConfig.GameType or {}
  350. local content = string.format("%s局 %s", roundCount, gameType[gamerule] or gameConfig.gameName)
  351. return content
  352. end
  353. return PdkRoomViewConfig