Você não pode selecionar mais de 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.

237 linhas
8.7 KiB

  1. local DdzGameResult = class("DdzGameResult", cc.UIView)
  2. local DdzSoundHelper = require("pk_zgwrddz.luaScript.Views.Room.zgwrDdzSoundHelper"):new()
  3. function DdzGameResult:ctor( o ,soundFlag)
  4. self._data = o
  5. self.soundFlag = soundFlag
  6. local ui = loadUI("pk_zgwrddz/res/ui/ui_room/ui_wrddz_xiaoju.ui")
  7. self.ui = ui
  8. self:addChild(ui)
  9. self:initUi()
  10. self:showPlayers()
  11. self:showRightInfo()
  12. end
  13. function DdzGameResult:initUi()
  14. self.ui.Items.ImageView_1:setVisible(false)
  15. self.ui.Items.ImageView_2:setVisible(false)
  16. self.ui.Items.Layout_mult_detail:setVisible(false)
  17. self.playerItem = {}
  18. for i = 1 ,5 do
  19. local player = string.format("Layout_player_%d",i)
  20. local winbg = string.format("ImageView_winbg_%d",i)
  21. local sprDiZhu = string.format("ImageView_dizhu_%d",i)
  22. local sprAnDiZhu = string.format("ImageView_andizhu_%d",i)
  23. local imgHead = string.format("imgHead_%d",i)
  24. local name = string.format("Text_name_%d",i)
  25. local turnscore = string.format("Text_turn_score_%d",i)
  26. local totalscore = string.format("Text_total_score_%d",i)
  27. local mult = string.format("ImageView_mult_%d",i)
  28. if self.ui.Items[player] then
  29. self.playerItem[i] = self.ui.Items[player]
  30. self.playerItem[i]:setVisible(false)
  31. self.playerItem[i].winbg = self.ui.Items[winbg]
  32. self.playerItem[i].sprDiZhu = self.ui.Items[sprDiZhu]
  33. self.playerItem[i].sprAnDiZhu = self.ui.Items[sprAnDiZhu]
  34. self.playerItem[i].imgHead = self.ui.Items[imgHead]
  35. self.playerItem[i].name = self.ui.Items[name]
  36. self.playerItem[i].turnscore = self.ui.Items[turnscore]
  37. self.playerItem[i].totalscore = self.ui.Items[totalscore]
  38. self.playerItem[i].mult = self.ui.Items[mult]
  39. end
  40. end
  41. self.ui.Items.btnChaPai:registerClick(handler(self , self.onClickChaPai))
  42. self.ui.Items.btnContinue:registerClick(handler(self , self.onClickContinue))
  43. self.txtRoomID = self.ui.Items.txtRoomID
  44. self.txtRoundNum = self.ui.Items.txtRoundNum
  45. self.btnSure = self.ui.Items.btnSure
  46. local roomInfo = app.room:getRoomInfo()
  47. --self.dipaiCard = self._data.dipaiCard or roomInfo.dipaiCard
  48. self.txtRoomID:setString(string.format("房号:%d ", roomInfo.nShowTableId))
  49. self.txtRoundNum:setString(string.format("%s 局数:%d/%d", os.date("%m-%d %H:%M", os.time()), self._data.gameStartCount, self._data.totalGamenum))
  50. self.ui.Items.txtRoomRule:setString(self._data.ruleString or "")
  51. self.btnSure:registerClick(handler(self , self.onClickSure))
  52. self.btnSure:setVisible(false)
  53. --是否是game over 前的最后一局
  54. self.btnSure:setVisible(self._data.isLast==true)
  55. self.ui.Items.btnContinue:setVisible(self._data.isLast==false)
  56. end
  57. function DdzGameResult:showPlayers()
  58. local index = 1
  59. for i,v in ipairs(self._data.players) do
  60. if self.playerItem[index] then
  61. v.turnScore = tonumber(v.turnScore)
  62. self.playerItem[index]:setVisible(true)
  63. --self.ui.Items.Layout_player:addChild(self:createItem(v))
  64. if app.room:isMyself(v.userId) then
  65. if v.turnScore > 0 then --win
  66. if self.soundFlag then
  67. DdzSoundHelper:win()
  68. end
  69. self.ui.Items.ImageView_1:setVisible(true)
  70. else
  71. if self.soundFlag then
  72. DdzSoundHelper:lose()
  73. end
  74. self.ui.Items.ImageView_2:setVisible(true)
  75. end
  76. end
  77. if v.turnScore > 0 then --win
  78. self.playerItem[index].winbg:setVisible(true)
  79. else
  80. self.playerItem[index].winbg:setVisible(false)
  81. end
  82. self.playerItem[index].sprDiZhu:setVisible(self._data.lordId == v.userId)
  83. local showAdz = self._data.darkId == v.userId and self._data.isSelfEat == 0
  84. self.playerItem[index].sprAnDiZhu:setVisible(showAdz)
  85. self.playerItem[index].name:setString(getSubStringNickname(v.nickname or ""))
  86. self.playerItem[index].turnscore:setString(v.turnScore)
  87. self.playerItem[index].totalscore:setString(v.totalScore)
  88. self.playerItem[index].mult:setVisible(1 == v.isMult)
  89. if self._data.lordId == v.userId then
  90. self.playerItem[index].mult:loadTexture("pk_zgwrddz/res/ui/zy_gameresult/wrddz_xj_fanjiabei.png", 0)
  91. end
  92. setPlayerHeadImage(v.userId, v.headimgurl, self.playerItem[index].imgHead)
  93. index = index + 1
  94. end
  95. end
  96. end
  97. function DdzGameResult:showRightInfo()
  98. local roomInfo = app.room:getRoomInfo()
  99. local gameInfo = roomInfo.nGameInfo
  100. local ruleInfo = json.decode(gameInfo)
  101. --基础倍数
  102. local totalMult = 0
  103. if self._data.baseMult and self._data.baseMult > 0 then
  104. local item = self:getRightInfoItem()
  105. item.Items.Text_mult:setText("基础倍数x"..self._data.baseMult)
  106. item.Items.Text_addScore:setText("+"..self._data.baseMult)
  107. self.ui.Items.Layout_mult:addChild(item)
  108. totalMult = totalMult + self._data.baseMult
  109. end
  110. --涨水倍数
  111. if self._data.curMult and self._data.curMult > 0 then
  112. local item = self:getRightInfoItem()
  113. item.Items.Text_mult:setText("涨水倍数"..self._data.curMult)
  114. item.Items.Text_addScore:setText("+"..self._data.curMult)
  115. self.ui.Items.Layout_mult:addChild(item)
  116. totalMult = totalMult + self._data.curMult
  117. end
  118. --自吃
  119. if self._data.isSelfEat and self._data.isSelfEat > 0 then
  120. local item = self:getRightInfoItem()
  121. item.Items.Text_mult:setText("自吃x"..5)
  122. item.Items.Text_addScore:setText("+"..5)
  123. self.ui.Items.Layout_mult:addChild(item)
  124. totalMult = totalMult + 5
  125. end
  126. --春天
  127. if self._data.spring and self._data.spring > 0 then
  128. local item = self:getRightInfoItem()
  129. item.Items.Text_mult:setText("春天x"..1)
  130. item.Items.Text_addScore:setText("+"..20)
  131. self.ui.Items.Layout_mult:addChild(item)
  132. totalMult = totalMult + 20
  133. if totalMult >= ruleInfo.multLimit then
  134. self.ui.Items.Text_total_mult_num:setText(ruleInfo.multLimit)
  135. self.ui.Items.ImageView_fengding:setVisible(true)
  136. else
  137. self.ui.Items.Text_total_mult_num:setText(totalMult)
  138. self.ui.Items.ImageView_fengding:setVisible(false)
  139. end
  140. return
  141. end
  142. --4张牌炸倍数
  143. if self._data.fourMult and self._data.fourMult > 0 then
  144. local item = self:getRightInfoItem()
  145. item.Items.Text_mult:setText("四炸x"..self._data.fourMult)
  146. item.Items.Text_addScore:setText("+"..self._data.fourMult)
  147. self.ui.Items.Layout_mult:addChild(item)
  148. totalMult = totalMult + self._data.fourMult
  149. end
  150. --2王炸倍数
  151. if self._data.twoKMult and self._data.twoKMult > 0 then
  152. local item = self:getRightInfoItem()
  153. item.Items.Text_mult:setText("双王炸x"..self._data.twoKMult)
  154. item.Items.Text_addScore:setText("+"..self._data.twoKMult)
  155. self.ui.Items.Layout_mult:addChild(item)
  156. totalMult = totalMult + self._data.twoKMult
  157. end
  158. --8张牌炸倍数
  159. if self._data.eightMult and self._data.eightMult > 0 then
  160. local item = self:getRightInfoItem()
  161. item.Items.Text_mult:setText("八炸x"..self._data.eightMult)
  162. item.Items.Text_addScore:setText("+"..self._data.eightMult)
  163. self.ui.Items.Layout_mult:addChild(item)
  164. totalMult = totalMult + self._data.eightMult
  165. end
  166. --4王炸倍数
  167. if self._data.fourKMult and self._data.fourKMult > 0 then
  168. local item = self:getRightInfoItem()
  169. item.Items.Text_mult:setText("四王炸x"..self._data.fourKMult)
  170. item.Items.Text_addScore:setText("+"..self._data.fourKMult)
  171. self.ui.Items.Layout_mult:addChild(item)
  172. totalMult = totalMult + self._data.fourKMult
  173. end
  174. --12张牌炸倍数
  175. if self._data.twelveMult and self._data.twelveMult > 0 then
  176. local item = self:getRightInfoItem()
  177. item.Items.Text_mult:setText("十二炸x"..self._data.twelveMult)
  178. item.Items.Text_addScore:setText("+"..self._data.twelveMult)
  179. self.ui.Items.Layout_mult:addChild(item)
  180. totalMult = totalMult + self._data.twelveMult
  181. end
  182. --6王炸倍数
  183. if self._data.sixKMult and self._data.sixKMult > 0 then
  184. local item = self:getRightInfoItem()
  185. item.Items.Text_mult:setText("六王炸x"..self._data.sixKMult)
  186. item.Items.Text_addScore:setText("+"..self._data.sixKMult)
  187. self.ui.Items.Layout_mult:addChild(item)
  188. totalMult = totalMult + self._data.sixKMult
  189. end
  190. if totalMult >= ruleInfo.multLimit then
  191. self.ui.Items.Text_total_mult_num:setText(ruleInfo.multLimit)
  192. self.ui.Items.ImageView_fengding:setVisible(true)
  193. else
  194. self.ui.Items.Text_total_mult_num:setText(totalMult)
  195. self.ui.Items.ImageView_fengding:setVisible(false)
  196. end
  197. end
  198. function DdzGameResult:getRightInfoItem()
  199. local uiItem = self.ui.Items.Layout_mult_detail:getCopied()
  200. uiItem.Items = getUIItems(uiItem)
  201. return uiItem
  202. end
  203. function DdzGameResult:onClickContinue( sender )
  204. playBtnEffect()
  205. self.ui:sendMsg(app.room, "callReadyRequestPdk", function() print("根本没调用") end)
  206. performWithDelay(self, function()
  207. app.room:dispatchEvent({name = "ddzNormalEvent_show_game_over"})
  208. self:removeFromParent()
  209. end, 0.1)
  210. end
  211. function DdzGameResult:onClickSure( sender )
  212. playBtnEffect()
  213. app.room:dispatchEvent({name = "ddzNormalEvent_show_game_over"})
  214. self:removeFromParent()
  215. end
  216. function DdzGameResult:onClickChaPai( sender )
  217. playBtnEffect()
  218. self:removeFromParent()
  219. --self:setVisible(false)
  220. end
  221. return DdzGameResult