diff --git a/lua_probject/base_project/Game/Controller/LoginController.lua b/lua_probject/base_project/Game/Controller/LoginController.lua index b0af976e..397fcc44 100644 --- a/lua_probject/base_project/Game/Controller/LoginController.lua +++ b/lua_probject/base_project/Game/Controller/LoginController.lua @@ -14,7 +14,7 @@ end local _LocalConfigAllGame = { 10, 33, - 65, + 90, 66, 86, 87, 88, 89 } diff --git a/lua_probject/extend_project/extend/poker/runfast/RunFast_MainView.lua b/lua_probject/extend_project/extend/poker/runfast/RunFast_MainView.lua index b0061cdd..f6f7bcbb 100644 --- a/lua_probject/extend_project/extend/poker/runfast/RunFast_MainView.lua +++ b/lua_probject/extend_project/extend/poker/runfast/RunFast_MainView.lua @@ -170,7 +170,7 @@ function M:InitView(url) self:ChangeBgmMusic() self:EventInit() - self._view:GetChild("mask").onClick:Set(function() + self._view:GetChild("bg_mask").onClick:Set(function() self:ResetPoker() end) local btn_rule = self._view:GetChild("right_panel"):GetChild("btn_log") @@ -499,9 +499,9 @@ function M:EventInit() if p.seat == self._room.self_player.seat then if self._room.room_config.people_num == 3 and self._room.room_config.fangzuobi == 1 then -- body - card_info:InitPoker(cardlist, true, 1) + card_info:InitPoker(cardlist, false, 1) else - card_info:InitPoker(cardlist, true) + card_info:InitPoker(cardlist, false) end else --card_info:UpdateHandPoker(#cardlist,true,false) --todo @@ -577,11 +577,13 @@ function M:EventInit() local otherList = arg[5] local length = arg[6] self.ctr_time.selectedIndex = 0 - + print("lingmengOnPlaySucc", p, card_number, cardstype, num, otherList) local index = self:GetPos(p.seat) if index == 1 then self.caozuo = 0 end + print("lingmengOnPlaySucc1") + local head_info = self._player_info[index] if head_info._view:GetChild("shengyu") ~= nil then -- body @@ -591,13 +593,18 @@ function M:EventInit() head_info._view:GetChild("shengyu"):GetChild("shengyu").text = "剩" .. card_number .. "张" end end + print("lingmengOnPlaySucc2") + local card_info = self._player_card_info[index] card_info:SetOutCardInfo(p.out_card_list, false, true) + print("lingmengOnPlaySucc3") + for i = 1, #otherList do local other_seat = otherList[i] local other_card_info = self._player_card_info[self:GetPos(other_seat)] other_card_info:SetOutCardBlack() end + print("lingmengOnPlaySucc4") if index == 1 then card_info:DeleteHandCards(p.out_card_list) @@ -605,6 +612,8 @@ function M:EventInit() card_info:SetRemainCardNumber(card_number == 1) --card_info:UpdateHandPoker(card_number,false,false) -- todo end + print("lingmengOnPlaySucc5") + if self._room.is_new_bout == true then for i = 1, #self._room.player_list do local player = self._room.player_list[i] @@ -645,6 +654,8 @@ function M:EventInit() self:_Effect(cardstype, p) end end + print("lingmengOnPlaySucc6") + self:PlaySound(p.self_user.sex, self:GetSoundFileName(cardstype, num, self._room.is_new_bout)) if card_number == 1 then --self:ChangeBgmMusic(2) @@ -658,6 +669,7 @@ function M:EventInit() self:PlaySound(p.self_user.sex, "card_1") end) end + print("lingmengOnPlaySucc7") end) @@ -1070,7 +1082,6 @@ function M:ReConnectForStart() self._state.selectedIndex = 1 self._view:GetController("time").selectedIndex = self:GetPos(self._room.curren_turn_seat) - self:UpdateRound(self._room.curren_round) for _, player in ipairs(self._room.player_list) do local player_card_info = self._player_card_info[self:GetPos(player.seat)] local head_info = self._player_info[self:GetPos(player.seat)] diff --git a/lua_probject/extend_project/extend/poker/runfast/RunFast_PlayerPokerInfoView.lua b/lua_probject/extend_project/extend/poker/runfast/RunFast_PlayerPokerInfoView.lua index 72d35da8..11070369 100644 --- a/lua_probject/extend_project/extend/poker/runfast/RunFast_PlayerPokerInfoView.lua +++ b/lua_probject/extend_project/extend/poker/runfast/RunFast_PlayerPokerInfoView.lua @@ -154,31 +154,33 @@ function M:SetOutCardInfo(cardlist, isPass, isAnim) self.ctr_outpoker.selectedIndex = 0 end else + self.ctr_outpoker.selectedIndex = 1 if isAnim then if self.move_cor then coroutine.stop(self.move_cor) self.move_cor = nil end - local time = 0.1 + for i = 1, #cardlist do local poker_item = self._view_Out:AddItemFromPool() local code = self:ChangeCodeByTo(cardlist[i]) - self:FillPoker(poker_item, "", code) + self:FillPoker(poker_item, "", cardlist[i]) end self.move_cor = coroutine.start(function() coroutine.wait(0.1) + ViewUtil.PlaySound("RunFastNew_PK", "extend/poker/runfast/sound/chupai.mp3") end) else for i = 1, #cardlist do local poker_item = self._view_Out:AddItemFromPool() + local code = self:ChangeCodeByTo(cardlist[i]) - self:FillPoker(poker_item, "", code) + self:FillPoker(poker_item, "", cardlist[i]) end end - --self.ctr_outpoker.selectedIndex = 1 end end diff --git a/lua_probject/extend_project/extend/poker/runfast/RunFast_PlayerSelfPokerInfoView.lua b/lua_probject/extend_project/extend/poker/runfast/RunFast_PlayerSelfPokerInfoView.lua index 4fabc736..0bf9c5c3 100644 --- a/lua_probject/extend_project/extend/poker/runfast/RunFast_PlayerSelfPokerInfoView.lua +++ b/lua_probject/extend_project/extend/poker/runfast/RunFast_PlayerSelfPokerInfoView.lua @@ -222,6 +222,7 @@ function M:InitPoker(pokerList, isPlayAni, open) self._mainView._rightPanelView._settingView:SetBtnDismissRoomEnable(false) end table.sort(pokerList) + table.sort(self.card_list, tableSortNumber) for i = #pokerList, 1, -1 do local card_number_code = self:ChangeOneCodeByFrom(pokerList[i]) local card_flower_code = pokerList[i] @@ -237,7 +238,6 @@ function M:InitPoker(pokerList, isPlayAni, open) local card_view = NewCardView(btn_card, card_number_code, card_flower_code) self.card_list[#self.card_list + 1] = card_view - table.sort(self.card_list, tableSortNumber) self:AddTouchMoveEvent(self._view_handCard) if i == #pokerList then @@ -652,48 +652,28 @@ function M:TouchMoving(context) if xy.x - self.touchBegin.x > 0 then -- 往右边滑 max_x = xy.x min_x = self.touchBegin.x - for i = 1, #self.card_list do - local card = self.card_list[i] - if card.btn_card.touchable == false or card.card_isTouchable == 1 then - else - if - (card.btn_card.x + oneCardWidth > min_x or (i == #self.card_list and card.btn_card.x + CardWidth > min_x)) - and card.btn_card.x < max_x - then - self:SetBtnCardColor(card, 1) - if #send_card1 == 0 then - send_card1[1] = card - end - if send_card1[#send_card1] ~= card then - send_card1[#send_card1 + 1] = card - end - else - self:SetBtnCardColor(card, 0) - end - end - end -- elseif xy.x - self.touchBegin.x < 0 then -- 左边滑 else max_x = self.touchBegin.x min_x = xy.x - for i = 1, #self.card_list do - local card = self.card_list[i] - if card.btn_card.touchable == false or card.card_isTouchable == 1 then - else - if - (card.btn_card.x + oneCardWidth > min_x or (i == #self.card_list and card.btn_card.x + CardWidth > min_x)) - and card.btn_card.x < max_x - then - self:SetBtnCardColor(card, 1) - if #send_card1 == 0 then - send_card1[1] = card - end - if send_card1[#send_card1] ~= card then - send_card1[#send_card1 + 1] = card - end - else - self:SetBtnCardColor(card, 0) + end + for i = 1, #self.card_list do + local card = self.card_list[i] + if card.btn_card.touchable == false or card.card_isTouchable == 1 then + else + if + (card.btn_card.x + oneCardWidth > min_x or (i == #self.card_list and card.btn_card.x + CardWidth > min_x)) + and card.btn_card.x < max_x + then + self:SetBtnCardColor(card, 1) + if #send_card1 == 0 then + send_card1[1] = card end + if send_card1[#send_card1] ~= card then + send_card1[#send_card1 + 1] = card + end + else + self:SetBtnCardColor(card, 0) end end end @@ -727,14 +707,14 @@ function M:TouchMoveEnd(context) if not card.btn_card.selected then downCards = downCards - 1 end - if card.btn_card.touchable == true then + if card.btn_card.touchable == false or card.card_isTouchable == 1 then + else send_card[#send_card + 1] = card self:SetBtnCardColor(card, 0) if (card.btn_card.x + oneCardWidth > min_x or (k == #self.card_list and card.btn_card.x + CardWidth > min_x)) and card.btn_card.x < max_x - and card.card_isTouchable == 0 then self:UpdateCardMove(card.btn_card, not card.btn_card.selected, false) --ViewUtil.PlaySound("RunFastNew_PK", "extend/poker/paodekuai/sound/click.mp3") @@ -824,30 +804,30 @@ function M:ShowOutCardOption(ctr_select, type, number, length, mustPutMaxCard, p self.ctr_put_card_option.selectedIndex = ctr_select end -function M:SetOutCardInfo(cardlist, isPass, isAnim) - self.ctr_put_card_option.selectedIndex = 0 - for i = 1, #self.out_card_list do - local card = self.out_card_list[i] - self.cards_view:RemoveChild(card, true) - end - self.out_card_list = {} - if cardlist ~= nil then - -- todo - self:SetOutCardList(cardlist, isAnim) - else - if isPass == true then - self.ctr_outpoker.selectedIndex = 2 - for i = 1, #self.card_list do - local card_view = self.card_list[i] - card_view.btn_card.touchable = true - self:UpdateCardMove(card_view.btn_card, false, false) - self:SetBtnCardColor(card_view, 0) - end - else - self.ctr_outpoker.selectedIndex = 0 - end - end -end +-- function M:SetOutCardInfo(cardlist, isPass, isAnim) +-- self.ctr_put_card_option.selectedIndex = 0 +-- for i = 1, #self.out_card_list do +-- local card = self.out_card_list[i] +-- self.cards_view:RemoveChild(card, true) +-- end +-- self.out_card_list = {} +-- if cardlist ~= nil then +-- -- todo +-- self:SetOutCardList(cardlist, isAnim) +-- else +-- if isPass == true then +-- self.ctr_outpoker.selectedIndex = 2 +-- for i = 1, #self.card_list do +-- local card_view = self.card_list[i] +-- card_view.btn_card.touchable = true +-- self:UpdateCardMove(card_view.btn_card, false, false) +-- self:SetBtnCardColor(card_view, 0) +-- end +-- else +-- self.ctr_outpoker.selectedIndex = 0 +-- end +-- end +-- end function M:SetOutCardBlack() for i = 1, #self.out_card_list do @@ -964,16 +944,31 @@ function M:SetOutCardList(cardlist, isAnim) end end +-- function M:DeleteHandCards(cardlist) +-- for i = 1, #cardlist do +-- local card_code_number = cardlist[i] +-- for j = 1, #self.card_list do +-- local card = self.card_list[j] +-- if card_code_number == card.card_code_number then +-- --self.out_card_list[#self.out_card_list + 1] = card +-- list_remove(self.card_list, card) +-- -- todo 出牌动画 +-- self.cards_view:RemoveChild(card.btn_card, true) +-- break +-- end +-- end +-- end +-- self:UpdateHandCardsPos() +-- end function M:DeleteHandCards(cardlist) + self.ctr_put_card_option.selectedIndex = 0 for i = 1, #cardlist do local card_code_number = cardlist[i] for j = 1, #self.card_list do local card = self.card_list[j] if card_code_number == card.card_code_number then - --self.out_card_list[#self.out_card_list + 1] = card list_remove(self.card_list, card) - -- todo 出牌动画 - self.cards_view:RemoveChild(card.btn_card, true) + self._view_handCard:RemoveChild(card.btn_card, true) break end end @@ -986,9 +981,6 @@ function M:UpdateHandCardsPos() local card_view = self.card_list[i] card_view.index = i card_view.btn_card.touchable = true - self.cards_view:SetChildIndex(card_view.btn_card, card_view.index - 1) - --card_view.btn_card.xy = self:GetHandCardPos(i, #self.card_list) - card_view.btn_card:TweenMove(self:GetHandCardPos(i, #self.card_list), 0.1) self:UpdateCardMove(card_view.btn_card, false, false) self:SetBtnCardColor(card_view, 0) end diff --git a/lua_probject/extend_project/extend/poker/suoha/EXGameInfo.lua b/lua_probject/extend_project/extend/poker/suoha/EXGameInfo.lua new file mode 100644 index 00000000..3d16203a --- /dev/null +++ b/lua_probject/extend_project/extend/poker/suoha/EXGameInfo.lua @@ -0,0 +1,315 @@ +--- +--- Created by 谌建军. +--- DateTime: 2017/12/18 15:19 +--- +local EXGameInfo = {} + +local M = EXGameInfo + +function EXGameInfo.new(blur_view) + setmetatable(M, { __index = IGameInfo }) + local self = setmetatable({}, { __index = M }) + self.class = "EXGameInfo" + UIPackage.AddPackage("extend/poker/suoha/ui/Info_Poker_SuoHa") + return self +end + +function M:FillData(view, index) + self._maxPlayer = 2 -- 默认玩家人数 + self._roundChoice = 5 -- 回合选项数 + + -- if oldGameVersion == 1 then + self._config = UIPackage.CreateObjectFromURL("ui://Info_Poker_SuoHa/Label_Detail_Play") + -- else + -- self._config = UIPackage.CreateObjectFromURL("ui://Info_Poker_SuoHa/Creat_SuoHa_yueyang") + -- end + + + if oldGameVersion == 2 then + self._config:GetController("xipai").selectedIndex = 0 + + self.xipaiValueText = self._config:GetChild('xipaifen') + self.xipaiValueText.text = 1 + self.xipaiValue = 1 + + self.anchouValueText = self._config:GetChild('anchoufen') + self.anchouValueText.text = 1 + self.anchouValue = 1 + + local btn_cr = self._config:GetChild('sdsrbtn') + btn_cr.onClick:Set( + function() + local gniv = GroupNumberInputView_Game.new(nil, function(num) + local value = limit + if otype == 1 then + value = value + ad2d(num) + elseif otype == -1 then + value = value - ad2d(num) + else + value = ad2d(num) + end + + if value < 0 then + ViewUtil.ErrorTip(1, "输入数据异常!") + end + + self.xipaiValueText.text = value / 1000 + self.xipaiValue = value / 1000 + end, 0, nil) + gniv:Show() + end + ) + + + local btn_cr2 = self._config:GetChild('anchoubtn') + btn_cr2.onClick:Set( + function() + local gniv = GroupNumberInputView_Game.new(nil, function(num) + local value = limit + if otype == 1 then + value = value + ad2d(num) + elseif otype == -1 then + value = value - ad2d(num) + else + value = ad2d(num) + end + + if value < 0 then + ViewUtil.ErrorTip(1, "输入数据异常!") + end + + self.anchouValueText.text = value / 1000 + self.anchouValue = value / 1000 + end, 3, nil) + gniv:Show() + end + ) + end + + + + self._config:GetChild("people_2").onClick:Set(function() + self._config:GetController("rule").selectedIndex = 0 + end) + + local piao = self._config:GetController("piao") + local daniao = self._config:GetController("daniao") + + piao.onChanged:Add(function() + if piao.selectedIndex ~= 0 then + daniao.selectedIndex = 0 + end + end) + + daniao.onChanged:Add(function() + if daniao.selectedIndex ~= 0 then + piao.selectedIndex = 0 + end + end) +end + +local _help_url = "ui://Info_Poker_SuoHa/Com_help" +function M:GetHelpUrl() + return _help_url +end + +local _icon_url = "ui://Info_Poker_SuoHa/icon" +function M:GetIconUrl() + return _icon_url +end + +local _icon_url1 = "ui://Info_Poker_SuoHa/icon1" +function M:GetIconUrl1() + return _icon_url1 +end + +local _play_list = { "15张玩法", "16张玩法" } +function M:GetPlayList() + return _play_list +end + +function M:LoadConfigData(data) + local _config = self._config + _config:GetController("round").selectedIndex = data.opt - 1 + _config:GetController("rule").selectedIndex = data.rule == 2 and 0 or 1 + _config:GetController("play_list").selectedIndex = data.leaf - 1 + _config:GetController("willBeOut").selectedIndex = data.willBeOut - 1 + _config:GetController("heart10").selectedIndex = data.heartten - 1 + _config:GetController("bombSpring").selectedIndex = data.minboom - 1 + _config:GetController("player_num").selectedIndex = data.maxPlayers == 2 and 0 or 1 + _config:GetController("Cost").selectedIndex = data.AA == 0 and 0 or 1 + _config:GetController("showlength").selectedIndex = data.showlength + _config:GetController("fourBeltThree").selectedIndex = data.fourBeltThree + _config:GetController("demolition").selectedIndex = data.demolition + _config:GetController("fangzuobi").selectedIndex = data.fangzuobi + + local sandaidan = data.sandaidan + if sandaidan ~= nil and sandaidan == 1 then + _config:GetChild("sandaidan").selected = true + + _config:GetChild("planelack").selected = false + _config:GetChild("Threelack").selected = false + else + _config:GetChild("sandaidan").selected = false + + _config:GetChild("planelack").selected = data.planelack == 1 and true or false + _config:GetChild("Threelack").selected = data.threelack == 1 and true or false + end + + local fs = data.fs + if fs ~= nil and fs == 1 then + _config:GetChild("fan_sprint").selected = true + else + _config:GetChild("fan_sprint").selected = false + end + + local ba = data.ba + if ba ~= nil and ba == 1 then + _config:GetChild("boom_add").selected = true + else + _config:GetChild("boom_add").selected = false + end + + _config:GetChild("ThreeA").selected = data.threeA == 1 and true or false + + if data.piao ~= nil then + _config:GetController("piao").selectedIndex = data.piao + end + + if data.daniao ~= nil then + _config:GetController("daniao").selectedIndex = data.daniao + end + + if _config:GetChild("fourBeltThree") then + _config:GetChild("fourBeltThree").selected = data.fourDaiTwo + end + + if _config:GetChild("fourBeltTwo") then + _config:GetChild("fourBeltTwo").selected = data.fourDaiThree + end + + if _config:GetChild("xipai") then + _config:GetChild("xipai").selected = data.xi_pai + end + + + if oldGameVersion == 2 then + self.xipaiValueText.text = data.xi_pai_score / 1000 + self.xipaiValue = data.xi_pai_score / 1000 + + self.anchouValueText.text = data.an_chou_score / 1000 + self.anchouValue = data.an_chou_score / 1000 + end +end + +function M:SelectedConfigData() + local _config = self._config + local round = _config:GetController("round").selectedIndex + local rule = _config:GetController("rule").selectedIndex + local leaf = _config:GetController("play_list").selectedIndex + local willBeOut = _config:GetController("willBeOut").selectedIndex + local bombSpring = _config:GetController("bombSpring").selectedIndex + local heart10 = _config:GetController("heart10").selectedIndex + local player_num = _config:GetController("player_num").selectedIndex + local AA = _config:GetController("Cost").selectedIndex + local showlength = _config:GetController("showlength").selectedIndex + local fourBeltThree = _config:GetController("fourBeltThree").selectedIndex + local demolition = _config:GetController("demolition").selectedIndex + local fangzuobi = _config:GetController("fangzuobi").selectedIndex + local planelack = _config:GetChild("planelack").selected and 1 or 0 + local threelack = _config:GetChild("Threelack").selected and 1 or 0 + local ThreeA = _config:GetChild("ThreeA").selected and 1 or 0 + local piao = _config:GetController("piao").selectedIndex + local daniao = _config:GetController("daniao").selectedIndex + local sandaidan = _config:GetController("sandaidan").selectedIndex + local ba = _config:GetChild("boom_add").selected and 1 or 0 + local fs = _config:GetChild("fan_sprint").selected and 1 or 0 + + ----- + local fourDaiTwo = false + if _config:GetChild("fourBeltThree") then + fourDaiTwo = _config:GetChild("fourBeltThree").selected + end + + local fourDaiThree = false + if _config:GetChild("fourBeltTwo") then + fourDaiThree = _config:GetChild("fourBeltTwo").selected + end + + local xi_pai = false + if _config:GetChild("xipai") then + xi_pai = _config:GetChild("xipai").selected + end + + ---- + local _data = {} + _data["account_id"] = DataManager.SelfUser.Id + _data["opt"] = round + 1 + _data["rule"] = rule == 0 and 2 or 1 + _data["leaf"] = leaf + 1 + _data["AA"] = AA + _data["willBeOut"] = willBeOut + 1 + _data["showlength"] = showlength + _data["heartten"] = willBeOut == 0 and heart10 + 1 or 2 + _data["minboom"] = (willBeOut == 0 and leaf == 1 and player_num == 1) and bombSpring + 1 or 2 + _data["maxPlayers"] = player_num + 2 + _data["fourBeltThree"] = fourBeltThree + _data["demolition"] = demolition + _data["fangzuobi"] = fangzuobi + _data["threeA"] = ThreeA + _data["piao"] = piao + _data["daniao"] = daniao + _data["sandaidan"] = sandaidan + _data["ba"] = ba + _data["fs"] = fs + + _data["fourDaiTwo"] = fourDaiTwo + _data["fourDaiThree"] = fourDaiThree + + + if willBeOut == 1 then + -- body + _data["planelack"] = 0 + _data["threelack"] = 0 + else + if sandaidan == 1 then + _data["planelack"] = 0 + _data["threelack"] = 0 + else + _data["planelack"] = planelack + _data["threelack"] = threelack + end + end + + _data['xi_pai'] = xi_pai + + local xi_pai_score = 0 + local an_chou_score = 0 + + if oldGameVersion == 2 then + xi_pai_score = self.xipaiValue + an_chou_score = self.anchouValue + end + + _data['xi_pai_score'] = xi_pai_score * 1000 + _data['an_chou_score'] = an_chou_score * 1000 + + return _data +end + +function M:OnChangeOption(ctype, pay_obj) + IGameInfo.OnChangeOption(self, ctype, pay_obj) + local people = self._config:GetController("player_num") + people.onChanged:Set(function() + self._maxPlayer = people.selectedIndex + 2 + self:ShowVariablePrice(ctype, pay_obj) + end) +end + +function M:LoadConfigToDetail(data) + local configData = json.decode(data) + local returnString = string.format("人数%s人", configData.maxPlayers) + return returnString +end + +return M diff --git a/lua_probject/extend_project/extend/poker/suoha/EXGameInfo_jiangxi.lua b/lua_probject/extend_project/extend/poker/suoha/EXGameInfo_jiangxi.lua new file mode 100644 index 00000000..606f6583 --- /dev/null +++ b/lua_probject/extend_project/extend/poker/suoha/EXGameInfo_jiangxi.lua @@ -0,0 +1,293 @@ +--- +--- Created by 谌建军. +--- DateTime: 2017/12/18 15:19 +--- +local EXGameInfo = {} + +local M = EXGameInfo + +local roundTable = { 10, 15, 20 } +function EXGameInfo.new(blur_view) + setmetatable(M, { __index = IGameInfo }) + local self = setmetatable({}, { __index = M }) + self.class = "EXGameInfo" + UIPackage.AddPackage("extend/poker/suoha/ui/Info_Poker_SuoHa") + return self +end + +function M:FillData(view, index) + self._maxPlayer = 2 -- 默认玩家人数 + self._roundChoice = 5 -- 回合选项数 + + -- if oldGameVersion == 1 then + self._config = UIPackage.CreateObjectFromURL("ui://Info_Poker_SuoHa/Label_Detail_Play") + -- else + -- self._config = UIPackage.CreateObjectFromURL("ui://Info_Poker_SuoHa/Creat_SuoHa_yueyang") + -- end + + + -- self._config:GetChild("people_2").onClick:Set(function() + -- self._config:GetController("rule").selectedIndex = 0 + -- end) + + -- local piao = self._config:GetController("piao") + -- local daniao = self._config:GetController("daniao") + + -- piao.onChanged:Add(function() + -- if piao.selectedIndex ~= 0 then + -- daniao.selectedIndex = 0 + -- end + -- end) + + -- daniao.onChanged:Add(function() + -- if daniao.selectedIndex ~= 0 then + -- piao.selectedIndex = 0 + -- end + -- end) +end + +local _help_url = "ui://Info_Poker_SuoHa/Com_help" +function M:GetHelpUrl() + return _help_url +end + +local _icon_url = "ui://Info_Poker_SuoHa/icon" +function M:GetIconUrl() + return _icon_url +end + +local _icon_url1 = "ui://Info_Poker_SuoHa/icon1" +function M:GetIconUrl1() + return _icon_url1 +end + +local _play_list = { "15张玩法", "16张玩法" } +function M:GetPlayList() + return _play_list +end + +function M:LoadConfigData(data) + local _config = self._config + _config:GetController("round").selectedIndex = data.opt - 1 + _config:GetController("rule").selectedIndex = data.rule == 2 and 0 or 1 + _config:GetController("play_list").selectedIndex = data.leaf - 1 + _config:GetController("willBeOut").selectedIndex = data.willBeOut - 1 + _config:GetController("heart10").selectedIndex = data.heartten - 1 + _config:GetController("bombSpring").selectedIndex = data.minboom - 1 + _config:GetController("player_num").selectedIndex = data.maxPlayers == 2 and 0 or 1 + _config:GetController("Cost").selectedIndex = data.AA == 0 and 0 or 1 + _config:GetController("showlength").selectedIndex = data.showlength + _config:GetController("fourBeltThree").selectedIndex = data.fourBeltThree + _config:GetController("demolition").selectedIndex = data.demolition + _config:GetController("fangzuobi").selectedIndex = data.fangzuobi + + local sandaidan = data.sandaidan + if sandaidan ~= nil and sandaidan == 1 then + _config:GetChild("sandaidan").selected = true + + _config:GetChild("planelack").selected = false + _config:GetChild("Threelack").selected = false + else + _config:GetChild("sandaidan").selected = false + + _config:GetChild("planelack").selected = data.planelack == 1 and true or false + _config:GetChild("Threelack").selected = data.threelack == 1 and true or false + end + + local fs = data.fs + if fs ~= nil and fs == 1 then + _config:GetChild("fan_sprint").selected = true + else + _config:GetChild("fan_sprint").selected = false + end + + local ba = data.ba + if ba ~= nil and ba == 1 then + _config:GetChild("boom_add").selected = true + else + _config:GetChild("boom_add").selected = false + end + + _config:GetChild("ThreeA").selected = data.threeA == 1 and true or false + + if data.piao ~= nil then + _config:GetController("piao").selectedIndex = data.piao + end + + if data.daniao ~= nil then + _config:GetController("daniao").selectedIndex = data.daniao + end + + if _config:GetChild("fourBeltThree") then + _config:GetChild("fourBeltThree").selected = data.fourDaiTwo + end + + if _config:GetChild("fourBeltTwo") then + _config:GetChild("fourBeltTwo").selected = data.fourDaiThree + end + + if _config:GetChild("xipai") then + _config:GetChild("xipai").selected = data.xi_pai + end + + + if oldGameVersion == 2 then + self.xipaiValueText.text = data.xi_pai_score / 1000 + self.xipaiValue = data.xi_pai_score / 1000 + + self.anchouValueText.text = data.an_chou_score / 1000 + self.anchouValue = data.an_chou_score / 1000 + end +end + +function M:SelectedConfigData() + local _config = self._config + local round = _config:GetController("round").selectedIndex + local handcard = _config:GetController("handcard").selectedIndex + local peopleNum = _config:GetController("peopleNum").selectedIndex + local showCardNum = _config:GetController("showCardNum").selectedIndex + local wanfa1_1 = _config:GetController("wanfa1_1").selectedIndex + local wanfa1_2 = _config:GetController("wanfa1_2").selectedIndex + local wanfa1_3 = _config:GetController("wanfa1_3").selectedIndex + local wanfa1_4 = _config:GetController("wanfa1_4").selectedIndex + local wanfa1_5 = _config:GetController("wanfa1_5").selectedIndex + local wanfa2_1 = _config:GetController("wanfa2_1").selectedIndex + + -- local rule = _config:GetController("rule").selectedIndex + -- local leaf = _config:GetController("play_list").selectedIndex + -- local willBeOut = _config:GetController("willBeOut").selectedIndex + -- local bombSpring = _config:GetController("bombSpring").selectedIndex + -- local heart10 = _config:GetController("heart10").selectedIndex + -- local player_num = _config:GetController("player_num").selectedIndex + -- local AA = _config:GetController("Cost").selectedIndex + -- local showlength = _config:GetController("showlength").selectedIndex + -- local fourBeltThree = _config:GetController("fourBeltThree").selectedIndex + -- local demolition = _config:GetController("demolition").selectedIndex + -- local fangzuobi = _config:GetController("fangzuobi").selectedIndex + -- local planelack = _config:GetChild("planelack").selected and 1 or 0 + -- local threelack = _config:GetChild("Threelack").selected and 1 or 0 + -- local ThreeA = _config:GetChild("ThreeA").selected and 1 or 0 + -- local piao = _config:GetController("piao").selectedIndex + -- local daniao = _config:GetController("daniao").selectedIndex + -- local sandaidan = _config:GetController("sandaidan").selectedIndex + -- local ba = _config:GetChild("boom_add").selected and 1 or 0 + -- local fs = _config:GetChild("fan_sprint").selected and 1 or 0 + + ----- + local fourDaiTwo = false + if _config:GetChild("fourBeltThree") then + fourDaiTwo = _config:GetChild("fourBeltThree").selected + end + + local fourDaiThree = false + if _config:GetChild("fourBeltTwo") then + fourDaiThree = _config:GetChild("fourBeltTwo").selected + end + + local xi_pai = false + if _config:GetChild("xipai") then + xi_pai = _config:GetChild("xipai").selected + end + + ---- + local _data = {} + _data["account_id"] = DataManager.SelfUser.Id + -- _data["AA"] = AA + -- _data["willBeOut"] = willBeOut + 1 + -- _data["minboom"] = (willBeOut == 0 and leaf == 1 and player_num == 1) and bombSpring + 1 or 2 + -- _data["fourBeltThree"] = fourBeltThree + -- _data["demolition"] = demolition + -- _data["fangzuobi"] = fangzuobi + -- _data["threeA"] = ThreeA + -- _data["piao"] = piao + -- _data["daniao"] = daniao + -- _data["sandaidan"] = sandaidan + -- _data["ba"] = ba + -- _data["fs"] = fs + + _data["fourDaiTwo"] = fourDaiTwo + + -----------------------lingmeng---------------------------- + + _data["AA"] = 0 + _data["willBeOut"] = 1 + _data["minboom"] = 2 + _data["fourBeltThree"] = 0 + _data["demolition"] = 0 + _data["fangzuobi"] = 0 + _data["threeA"] = 0 + _data["piao"] = 0 + _data["daniao"] = 0 + _data["sandaidan"] = 0 + _data["ba"] = 0 + _data["fs"] = 0 + + + _data["leaf"] = handcard == 0 and 2 or handcard --手牌 1是15张,2是16张 + _data["opt"] = round + 1 --局数 1是10局 2是15局 3是20局 ("未知") + _data["maxPlayers"] = peopleNum == 1 and 2 or 3 --人数 2是2人 3是三人 + _data["rule"] = wanfa1_5 == 0 and 2 or 1 --黑桃3必出 2是选择了该玩法 1是没有该玩法 + _data["showlength"] = (showCardNum + 1) % 2 --显示手牌数量 0是不显示 1是显示 + _data["planeNoBelt"] = wanfa1_1 --飞机不带 + _data["threeNoBelt"] = wanfa1_1 --三张不带 + _data["planelack"] = wanfa1_2 --飞机可少带接完 + _data["threelack"] = wanfa1_2 --三张可少带接完 + _data["fourDaiThree"] = false --四带三 false没有该玩法 true有该玩法 + if wanfa1_3 == 1 then + _data["fourDaiThree"] = true + end + _data["heartten"] = wanfa1_4 + 1 --红桃扎鸟 1没有该玩法 2有该玩法 似乎说的是红桃10分数翻倍,具体要问江西那边 + _data["specilAdd"] = wanfa2_1 --特殊加分规则:只出一张加扣10分,出2-3张加扣5分 0没有该玩法 1有该玩法 + + + + + ----------------------------------------------------------- + + + -- if willBeOut == 1 then + -- -- body + -- _data["planelack"] = 0 + -- _data["threelack"] = 0 + -- else + -- if sandaidan == 1 then + -- _data["planelack"] = 0 + -- _data["threelack"] = 0 + -- else + -- _data["planelack"] = planelack + -- _data["threelack"] = threelack + -- end + -- end + + _data['xi_pai'] = xi_pai + + local xi_pai_score = 1 + local an_chou_score = 1 + + -- if oldGameVersion == 2 then + -- xi_pai_score = self.xipaiValue + -- an_chou_score = self.anchouValue + -- end + + _data['xi_pai_score'] = xi_pai_score * 1000 + _data['an_chou_score'] = an_chou_score * 1000 + + return _data +end + +function M:OnChangeOption(ctype, pay_obj) + IGameInfo.OnChangeOption(self, ctype, pay_obj) + local peopleNum = self._config:GetController("peopleNum") + peopleNum.onChanged:Set(function() + self._maxPlayer = peopleNum.selectedIndex == 1 and 2 or 3 + self:ShowVariablePrice(ctype, pay_obj) + end) +end + +function M:LoadConfigToDetail(data) + local configData = json.decode(data) + local returnString = string.format("人数%s人", configData.maxPlayers) + return returnString +end + +return M diff --git a/lua_probject/extend_project/extend/poker/suoha/EXPlayerInfoView.lua b/lua_probject/extend_project/extend/poker/suoha/EXPlayerInfoView.lua new file mode 100644 index 00000000..541ed751 --- /dev/null +++ b/lua_probject/extend_project/extend/poker/suoha/EXPlayerInfoView.lua @@ -0,0 +1,45 @@ +local PlayerInfoView = require("Game.View.PlayerInfoView_copy") + +local M = {} + +function M.new(view, mainView) + setmetatable(M, { __index = PlayerInfoView }) + local self = setmetatable({}, { __index = M }) + self._view = view + self._main_view = mainView + self:init() + return self +end + +function M:FillData(player) + PlayerInfoView.FillData(self, player) + -- if player.cur_hp ~= nil then + -- self:UpdateScore(d2ad(player.cur_hp)) + -- else + -- local rt = 1 + -- if self._main_view._room.hpOnOff == 1 then + -- rt = self._main_view._room.score_times + -- end + -- self:UpdateScore(player.total_score * rt) + -- end +end + +function M:UpdatePiao(piao) + if piao == nil or piao == -1 then + self._view:GetChild("piao").text = "" + elseif piao == 0 then + self._view:GetChild("piao").text = "不飘" + elseif piao == 1 then + self._view:GetChild("piao").text = "飘1分" + elseif piao == 2 then + self._view:GetChild("piao").text = "飘2分" + elseif piao == 3 then + self._view:GetChild("piao").text = "飘3分" + elseif piao == 5 then + self._view:GetChild("piao").text = "飘5分" + elseif piao == 8 then + self._view:GetChild("piao").text = "飘8分" + end +end + +return M diff --git a/lua_probject/extend_project/extend/poker/suoha/ExtendConfig.lua b/lua_probject/extend_project/extend/poker/suoha/ExtendConfig.lua new file mode 100644 index 00000000..f83b90d5 --- /dev/null +++ b/lua_probject/extend_project/extend/poker/suoha/ExtendConfig.lua @@ -0,0 +1,262 @@ +--- +--- Created by 谌建军. +--- DateTime: 2017/12/13 10:57 +--- + +local EXTEND_MODEL_NAME = ... +local EXGameInfo = import(".EXGameInfo_jiangxi") +local SuoHa_MainView = import(".SuoHa_MainView") +local SuoHa_GameController = import(".SuoHa_GameController") +local SuoHa_RoomConfig = import(".SuoHa_RoomConfig") +local SuoHa_Player = import(".SuoHa_Player") +local SuoHa_Room = import(".SuoHa_Room") +local SuoHa_PlayerBackView = import(".SuoHa_PlayerBackView") + +local ExtendConfig = {} + +local M = ExtendConfig + + +function ExtendConfig.new() + setmetatable(M, { __index = IExtendConfig }) + local self = setmetatable({}, { __index = M }) + self.class = "ExtendConfig" + self.extend_id = 14 + self._viewMap = {} + self._viewMap[ViewManager.View_Main] = SuoHa_MainView + self._viewMap[ViewManager.View_PlayBack] = SuoHa_PlayerBackView + return self +end + +--卸载资源 +function M:UnAllAssets() + UIPackage.RemovePackage("extend/poker/suoha/ui/Info_Poker_SuoHa") + self:UnAssets() +end + +function M:UnAssets() + UIPackage.RemovePackage("extend/poker/suoha/ui/Extend_Poker_SuoHa") + ResourcesManager.UnLoadGroup("RunFase_PK") +end + +local _gameInfo = nil +function M:GetGameInfo() + if not _gameInfo then + _gameInfo = EXGameInfo.new() + end + return _gameInfo +end + +local _ctr_game = nil +function M:GetGameController() + if _ctr_game == nil then + _ctr_game = SuoHa_GameController.new() + end + return _ctr_game +end + +function M:NewRoom() + return SuoHa_Room.new() +end + +function M:GetGameRule() + return SuoHa_RuleView.new() +end + +function M:GetIconUrl() + return "ui://Extend_Poker_SuoHa/icon" + -- +end + +function M:FillRoomConfig(room, _config) + room.room_config = SuoHa_RoomConfig.new(_config) +end + +function M:FillRoomData(s2croom) + local room = DataManager.CurrenRoom + if _ctr_game == nil then + self:GetGameController() + end + + local reload = s2croom["reload"] + + local _tableInfo = s2croom["tableInfo"] + + room.xipaiScore = _tableInfo["xipai_score"] + + local _config = _tableInfo["config"] + room.room_config = SuoHa_RoomConfig.new(_config) + + room.curren_round = _tableInfo["round"] + if room.curren_round == 0 and reload then + room.curren_round = 1 + end + + local playerList = _tableInfo["playerData"] + for i = 1, #playerList do + local _jp = playerList[i] + + local p = SuoHa_Player.new() + p.seat = _jp["seat"] + local online = _jp["online"] + p.line_state = online + p.ready = _jp["ready"] == 1 and true or false + local pid = _jp["aid"] + if (DataManager.SelfUser.account_id == pid) then + room.self_player = p + p.self_user = DataManager.SelfUser + else + local u = User.new() + u.account_id = pid + p.self_user = u + u.nick_name = _jp["nick"] + u.head_url = _jp["portrait"] + u.sex = _jp["sex"] + end + p.self_user.location = Location.new(_jp["pos"] or "") + p.self_user.host_ip = _jp["ip"] + p.total_score = _jp["score"] or 0 + if _jp.hp_info then + p.cur_hp = _jp.hp_info.cur_hp + end + p.hp_info = _jp["hp_info"] + + if _jp["entrust"] then + p.entrust = _jp.entrust + end + room:AddPlayer(p) + end + + + + local owner = s2croom["owner"] + room.owner_id = owner + room.game_status = 0 + if reload then + local reloadInfo = s2croom["reloadInfo"] + + + + local playing = reloadInfo["playing"] + + room.curren_turn_seat = reloadInfo["active_seat"] + local info_list = reloadInfo["info_list"] + if playing == true then + room.CurnrenState = StateType.Palying + room.game_status = 1 + + + for i = 1, #info_list do + local p = room:GetPlayerById(info_list[i]["playerid"]) + + if p == room.self_player then + p.hand_list = reloadInfo["hand_card"] + p.open = reloadInfo["open"] + end + + p.hand_count = info_list[i]["card_size"] + p.piao = info_list[i]["piao"] + p.handCards = info_list[i]["handCards"] + p.outCards = info_list[i]["outCards"] + local last_outcard = info_list[i]["last_outcard"] + if last_outcard ~= nil and last_outcard[1] ~= 0 then + local out_card_list = _ctr_game:ChangeCodeByFrom(last_outcard.card_list, true) + local card_type, number, length, plan_three_count = _ctr_game:GetCardListInfo(out_card_list) + p.out_card_list = _ctr_game:GetSortOutCardList(out_card_list, card_type, number, plan_three_count) + else + p.out_card_list = { 0 } + end + end + else + -- -- print("aaaaaaaaaaaaaaaa1111111111111111111111111") + --pt(s2croom) + room.game_status = 1 + + room.CurnrenState = StateType.PalyingWait + + room.winseat = reloadInfo["winseat"] + room.remaincards = reloadInfo["remaincards"] + + for i = 1, #info_list do + local playerData = info_list[i] + local p = room:GetPlayerById(playerData["playerid"]) + + p.ready = playerData["certainseat"] == 1 and true or false + + local last_outcard = info_list[i]["last_outcard"] + if last_outcard ~= nil and last_outcard[1] ~= 0 then + local out_card_list = _ctr_game:ChangeCodeByFrom(last_outcard.card_list, true) + local card_type, number, length, plan_three_count = _ctr_game:GetCardListInfo(out_card_list) + p.out_card_list = _ctr_game:GetSortOutCardList(out_card_list, card_type, number, plan_three_count) + else + p.out_card_list = { 0 } + end + + p.hand_list = info_list[i]["cards"] + p.winscore = info_list[i]["winscore"] + p.piao = info_list[i]["piao"] + p.hand_count = info_list[i]["card_size"] + p.thisboomnum = info_list[i]["thisboomnum"] + p.open = info_list[i]["open"] + + p.handCards = info_list[i]["handCards"] + p.outCards = info_list[i]["outCards"] + end + end + else + room.CurnrenState = StateType.Ready + end +end + +function M:FillPlayBackData(pd_data) + local room = DataManager.CurrenRoom + local _tableInfo = pd_data["info"] + + local _config = _tableInfo["config"] + room.room_id = _tableInfo.room_id + room.room_config = SuoHa_RoomConfig.new(_config) + room.owner_id = _config["ownerid"] + local active_seat = _tableInfo["active_seat"] + local bank_seat = _tableInfo["banker_seat"] + room.banker_seat = bank_seat + room.curren_turn_seat = active_seat + room.curren_round = _tableInfo["round"] + local _info_list = _tableInfo["playerData"] + for i = 1, #_info_list do + local _jp = _info_list[i] + local p = SuoHa_Player.new() + p.seat = _jp["seat"] + p.aid = _jp["aid"] + local pid = _jp["aid"] + if p.aid == DataManager.SelfUser.account_id then + room.self_player = p + end + local u = User.new() + u.account_id = pid + p.self_user = u + u.nick_name = _jp["nick"] + u.head_url = _jp["portrait"] + u.sex = _jp["sex"] + -- end + p.self_user.host_ip = p.self_user.host_ip + local _hand_card = _jp["hand_card"] + p.hand_list = _hand_card + p.hand_count = #_hand_card + p.total_score = _jp["score"] + p.piao = _jp["piao"] + p.open = _jp["open"] + p.hp_info = _jp["hp_info"] + if _jp['hp_info'] then + p.cur_hp = _jp.hp_info.cur_hp + p.total_hp = _jp.hp_info.total_hp + end + room:AddPlayer(p) + end + room.cmdList = pd_data["cmdList"] +end + +function M:LoadConfigToDetail(data) + return data +end + +return M diff --git a/lua_probject/extend_project/extend/poker/suoha/SuoHa_CardType.lua b/lua_probject/extend_project/extend/poker/suoha/SuoHa_CardType.lua new file mode 100644 index 00000000..1fc4b16b --- /dev/null +++ b/lua_probject/extend_project/extend/poker/suoha/SuoHa_CardType.lua @@ -0,0 +1,24 @@ +--- +--- Created by 谌建军. +--- DateTime: 2017/12/18 11:30 +--- + +local SuoHa_CardType = { + None = 0, + OneCard = 1, --一张 + OnePair = 2, --一对 + Three = 3, --三张 + Pairs = 4, --连对 + ThreeAndTwo = 5, --三带二 + ThreeAndOne = 6, --三带一 + Plane = 7, --飞机 + PlaneAndTwo = 8, --飞机带二 + PlaneAndOne = 9, --飞机带一 + Straight = 10, --顺子 + + Bomb = 11, --炸 + FourAndtThree = 12, --四代三 + +} + +return SuoHa_CardType diff --git a/lua_probject/extend_project/extend/poker/suoha/SuoHa_GameController.lua b/lua_probject/extend_project/extend/poker/suoha/SuoHa_GameController.lua new file mode 100644 index 00000000..c9a8641e --- /dev/null +++ b/lua_probject/extend_project/extend/poker/suoha/SuoHa_GameController.lua @@ -0,0 +1,702 @@ +--- +--- Created by 谌建军. +--- DateTime: 2017/12/13 11:28 +--- + +local SuoHa_Protocol = import(".SuoHa_Protocol") +local SuoHa_GameEvent = import(".SuoHa_GameEvent") +local SuoHa_CardType = import(".SuoHa_CardType") +local SuoHa_PutError = { + "必须先出最小的牌", + "出牌不符合规定牌型 ", + "下家报单,请出最大的牌 ", + "炸弹不能拆" +} + +local SuoHa_GameController = {} + +local M = SuoHa_GameController + +function M.new() + setmetatable(M, { __index = GameController }) + local self = setmetatable({}, { __index = M }) + self:init("跑得快") + self.class = "SuoHa_GameController" + return self +end + +function M:init(name) + GameController.init(self, name) + self:RegisterEvt() +end + +-- 事件注册 +function M:RegisterEvt() + self._eventmap[SuoHa_Protocol.SuoHa_Ming_Card] = self.OnMingCard + self._eventmap[SuoHa_Protocol.SuoHa_Init_Card] = self.OnInitCard + self._eventmap[SuoHa_Protocol.SuoHa_Options] = self.OnOptions + self._eventmap[SuoHa_Protocol.SuoHa_Index_Move] = self.OnIndexMove + self._eventmap[SuoHa_Protocol.SuoHa_Play_Succ] = self.OnPlaySucc + self._eventmap[SuoHa_Protocol.SuoHa_Put_Error] = self.OnPutError + self._eventmap[SuoHa_Protocol.SuoHa_Pass_Succ] = self.OnPassSucc + self._eventmap[SuoHa_Protocol.SuoHa_Result] = self.OnResult + self._eventmap[SuoHa_Protocol.SuoHa_Bomb_Score] = self.OnBombScore + self._eventmap[SuoHa_Protocol.SuoHa_Piao_Tip] = self.OnPiaoTip + self._eventmap[SuoHa_Protocol.SuoHa_Piao_Action] = self.OnPiaoAction + self._eventmap[SuoHa_Protocol.SuoHa_ConfirmToNextGameSucc] = self.OnConfrimToNextGameSucc + --self._eventmap[SuoHa_Protocol.SuoHa_Oener] = self.Oener + -- self._eventmap[Protocol.GAME_EVT_PLAYER_JOIN] = self.OnEventPlayerEnter + self._eventmap[SuoHa_Protocol.PT_GAMETUOGUAN] = self.Game_TuoGuan + + self._eventmap[SuoHa_Protocol.GAME_EVENT_XIPAI] = self.OnEventXiPai + self._eventmap[SuoHa_Protocol.GAME_EVENT_NOTIFY_XIPAI] = self.OnEventXiPaiAnim + + self._eventmap[SuoHa_Protocol.GAME_EVT_CARDINHAND] = self.OnPlaySuccCheckHandCard +end + +-- function M:Oener(evt_data) +-- local seat = evt_data["owner"] +-- self._cacheEvent:Enqueue(function() + +-- DispatchEvent(self._dispatcher,SuoHa_GameEvent.Oener,seat) +-- end) +-- end +-- function M:OnEventPlayerEnter(evt_data) +-- local p = self._room:NewPlayer() +-- local _user + +-- _user = User.new() +-- _user.account_id = evt_data["aid"] +-- _user.host_ip = evt_data["ip"] +-- _user.nick_name = evt_data["nick"] +-- _user.head_url = evt_data["portrait"] +-- _user.sex = evt_data["sex"] +-- _user.location = Location.new(evt_data["pos"] or "") +-- p.seat = evt_data["seat"] +-- p.ready = evt_data["ready"] == 1 and true or false +-- p.self_user = _user +-- p.line_state = 1 +-- p.total_score=evt_data["score"] +-- p.hp_info = evt_data["hp_info"] +-- -- p.total_score=self._room.room_config.energyTab==0 and evt_data["score"] or evt_data["score"]/10 + +-- DataManager.CurrenRoom:AddPlayer(p) +-- DispatchEvent(self._dispatcher,GameEvent.PlayerEnter, p) +-- end + + +function M:SendXiPaiAction(callBack) + local _data = {} + local _client = ControllerManager.GameNetClinet + _client:send(SuoHa_Protocol.GAME_XIPAI, _data) + self.XiPaiCallBack = callBack +end + +function M:OnEventXiPai(evt_data) + if evt_data["result"] == 0 then + if self.XiPaiCallBack then + self.XiPaiCallBack() + end + else + ViewUtil.ErrorTip(1000000, "申请洗牌失败") + end +end + +function M:OnEventXiPaiAnim(evt_data) + printlog("洗牌动画===》》》》") + pt(evt_data) + local playeridList = evt_data["list"] + local my_isXiPai = false + local other_isXiPai = false + if playeridList and #playeridList > 0 then + for i = 1, #playeridList do + local p = self._room:GetPlayerById(playeridList[i]) + if p == self._room.self_player then + my_isXiPai = true + else + other_isXiPai = true + end + end + end + + self._cacheEvent:Enqueue(function() + DispatchEvent(self._dispatcher, SuoHa_GameEvent.EventXiPai, my_isXiPai, other_isXiPai) + end) +end + +function M:SendCard(cards, currentCard) + local _data = {} + _data["card"] = cards + _data["all_card"] = currentCard + local _client = ControllerManager.GameNetClinet + _client:send(SuoHa_Protocol.SuoHa_Send_Card, _data) +end + +function M:SendPiao(piao) + local _data = {} + _data["id"] = piao + local _client = ControllerManager.GameNetClinet + _client:send(SuoHa_Protocol.SuoHa_Send_Piao, _data) +end + +function M:SendPass() + local _client = ControllerManager.GameNetClinet + _client:send(SuoHa_Protocol.SuoHa_Send_Guo) +end + +function M:SendInitCardEnd() + local _client = ControllerManager.GameNetClinet + _client:send(SuoHa_Protocol.SuoHa_Init_Card_End) +end + +function M:ConformToNextGame() + local _client = ControllerManager.GameNetClinet + _client:send(SuoHa_Protocol.SuoHa_ConfirmToNextGame) +end + +function M:OnMingCard(evt_data) + if ViewManager.GetCurrenView().dview_class == LobbyView then + self:ReturnToRoom() + return + end + + local card = evt_data["mingpai"] + self._cacheEvent:Enqueue( + function() + self._room.ming_card = card + DispatchEvent(self._dispatcher, SuoHa_GameEvent.OnMingCard, card) + end + ) +end + +function M:OnInitCard(evt_data) + if ViewManager.GetCurrenView().dview_class == LobbyView then + self:ReturnToRoom() + return + end + + local cardlist = evt_data["cards"] + local round = evt_data["round"] + self._cacheEvent:Enqueue( + function() + for _, player in ipairs(self._room.player_list) do + player:Clear() + player.hand_count = #cardlist + end + + self._room.curren_round = round + DispatchEvent(self._dispatcher, SuoHa_GameEvent.OnInitCard, round, cardlist) + end + ) +end + +function M:OnBombScore(evt_data) + local scoreList = evt_data["gold_list"] + self._cacheEvent:Enqueue( + function() + for i = 1, #scoreList do + local score = scoreList[i].bom_score + local player = self._room:GetPlayerById(scoreList[i].aid) + player.total_score = player.total_score + score + end + DispatchEvent(self._dispatcher, SuoHa_GameEvent.OnBombScore, scoreList) + end + ) +end + +function M:OnPlaySucc(evt_data) + if pcall( + self.OnPlaySuccCheck, self, evt_data + ) then + + else + printlog("数据异常OnPlaySucc==>>>") + end +end + +function M:OnPlaySuccCheck(evt_data) + local seat = evt_data["player"] + local card_obj = evt_data["card_obj"] + local cards = card_obj["card_list"] + local remain = evt_data["remain"] -- 报单 + self._cacheEvent:Enqueue( + function() + local otherList = self:GetOtherSeatList(seat) + local player = self._room:GetPlayerBySeat(seat) + local out_card_list = self:ChangeCodeByFrom(cards, true) + player.hand_count = remain + local card_type, number, length, plan_three_count = self:GetCardListInfo(out_card_list) + player.out_card_list = self:GetSortOutCardList(out_card_list, card_type, number, plan_three_count) + DispatchEvent(self._dispatcher, SuoHa_GameEvent.OnPlaySucc, player, remain, card_type, number, otherList, + length) + end + ) +end + +function M:OnPlaySuccCheckHandCard(evt_data) + local seat = evt_data["player"] + local cards = evt_data["handCards"] + self._cacheEvent:Enqueue( + function() + DispatchEvent(self._dispatcher, SuoHa_GameEvent.OnPassSuccCheckCard, seat, cards) + end + ) +end + +function M:OnPassSucc(evt_data) + local seat = evt_data["seat"] + self._cacheEvent:Enqueue( + function() + local p = self._room:GetPlayerBySeat(seat) + p.out_card_list = { 0 } + DispatchEvent(self._dispatcher, SuoHa_GameEvent.OnPassSucc, p) + end + ) +end + +function M:OnPutError(evt_data) + local code = evt_data["error"] + self._cacheEvent:Enqueue( + function() + local error_str = self:GetErrorStr(code) + DispatchEvent(self._dispatcher, SuoHa_GameEvent.OnErrorTip, error_str) + end + ) +end + +function M:TuoGuan(isTuo) + local _data = {} + _data["tuoguan"] = isTuo + local _client = ControllerManager.GameNetClinet + _client:send(SuoHa_Protocol.SEND_TUOGUAN, _data) +end + +function M:Game_TuoGuan(evt_data) + local tuoguan = evt_data["tuoguan"] + local seat = evt_data["seat"] + self._cacheEvent:Enqueue(function() + DispatchEvent(self._dispatcher, SuoHa_GameEvent.Game_TuoGuan, tuoguan, seat) + end) +end + +function M:OnIndexMove(evt_data) + local seat = evt_data["index"] + self._cacheEvent:Enqueue( + function() + self._room.curren_turn_seat = seat + self._room.is_new_bout = self:GetIsNewBout(seat) + DispatchEvent(self._dispatcher, SuoHa_GameEvent.OnIndexMove, seat) + end + ) +end + +function M:OnOptions(evt_data) + local play = evt_data["play"] + local pass = evt_data["pass"] + + self._cacheEvent:Enqueue( + function() + local lastCardList = self:GetLastCardList(self._room.self_player.seat) + local cardType, cardNum, cardLength = self:GetCardListInfo(lastCardList) + + DispatchEvent(self._dispatcher, SuoHa_GameEvent.OnOptions, play, cardType, cardNum, cardLength, pass) + end + ) +end + +function M:OnPiaoTip(evt_data) + if ViewManager.GetCurrenView().dview_class == LobbyView then + self:ReturnToRoom() + return + end + + local piao = evt_data["piao"] + local reload = evt_data["reload"] + self._cacheEvent:Enqueue( + function() + DispatchEvent(self._dispatcher, SuoHa_GameEvent.OnPiaoTips, piao, reload) + end + ) +end + +function M:OnPiaoAction(evt_data) + local seat = evt_data["seat"] + local piao = evt_data["piao"] + + self._cacheEvent:Enqueue( + function() + DispatchEvent(self._dispatcher, SuoHa_GameEvent.OnPiaoAction, seat, piao) + end + ) +end + +function M:OnResult(evt_data) + local result_type = evt_data["type"] + + local info = evt_data["info"] + local winseat = evt_data["winseat"] + local remaincards = evt_data["remaincards"] + DataManager.CurrenRoom.xipaiScore = evt_data["xipai_score"] + --printlog("wwwwwwwwwwwwwwwwwwwww1111111 ",result_type) + --pt(evt_data) + if result_type == 1 then + local over = 1 + ControllerManager.SetGameNetClient(nil, true) + self._cacheEvent:Enqueue( + function() + for i = 1, #info do + local p = self._room:GetPlayerBySeat(info[i]["seat"]) + p.total_score = info[i]["score"] + info[i]["self_user"] = p.self_user + end + + DispatchEvent(self._dispatcher, SuoHa_GameEvent.OnResult, over, info, winseat, remaincards) + end + ) + elseif result_type == 0 then + local over = 0 + self._cacheEvent:Enqueue( + function() + for i = 1, #info do + local p = self._room:GetPlayerBySeat(info[i]["seat"]) + p.total_score = info[i]["score"] + info[i]["self_user"] = p.self_user + end + DispatchEvent(self._dispatcher, SuoHa_GameEvent.OnResult, over, info, winseat, remaincards) + end + ) + else + local dissolve = 1 + ControllerManager.SetGameNetClient(nil, true) + for i = 1, #info do + local p = self._room:GetPlayerBySeat(info[i]["seat"]) + p.total_score = info[i]["score"] + info[i]["self_user"] = p.self_user + end + -- ControllerManager.ChangeController(LoddyController) + DispatchEvent(self._dispatcher, SuoHa_GameEvent.OnResultByDissolve, over, info, winseat, dissolve) + end +end + +function M:OnConfrimToNextGameSucc(evt_data) + local aid = evt_data["aid"] + self._cacheEvent:Enqueue( + function() + DispatchEvent(self._dispatcher, SuoHa_GameEvent.OnConfrimToNextGameSucc, aid) + end + ) +end + +function M:Game_TuoGuan(evt_data) + local tuoguan = evt_data["tuoguan"] + local seat = evt_data["seat"] + self._cacheEvent:Enqueue(function() + DispatchEvent(self._dispatcher, SuoHa_GameEvent.Game_TuoGuan, tuoguan, seat) + end) +end + +function M:ChangeCodeByFrom(cardList, isSort) + isSort = isSort or false + local new_card_list = {} + for i = 1, #cardList do + local flower = math.floor(cardList[i] / 100) + local number = cardList[i] % 100 + if number == 2 then + number = 15 + end + local card = number * 10 + flower + new_card_list[#new_card_list + 1] = card + end + return isSort == true and table.sort(new_card_list) or new_card_list +end + +function M:GetOtherSeatList(seat) + local list = {} + for i = 1, self._room.room_config.people_num do + if seat ~= i then + list[#list + 1] = i + end + end + return list +end + +-- +function M:GetIsNewBout(seat) + local passCount = 0 + for i = 1, #self._room.player_list do + local player = self._room.player_list[i] + if seat ~= player.seat then + local isPass = self:GetIsPass(player.out_card_list) + if isPass then + passCount = passCount + 1 + end + end + end + if passCount == self._room.room_config.people_num - 1 then + return true + else + return false + end +end + +function M:GetLastSeat(seat) + local last_seat = seat - 1 + if last_seat < 1 then + last_seat = last_seat + self._room.room_config.people_num + end + return last_seat +end + +function M:GetLastCardList(seat) + local last_seat = self:GetLastSeat(seat) + local player = self._room:GetPlayerBySeat(last_seat) + local isPass = self:GetIsPass(player.out_card_list) + if isPass then + if self._room.room_config.people_num == 2 then + return {} + end + local last_seat_2 = self:GetLastSeat(last_seat) + local player_2 = self._room:GetPlayerBySeat(last_seat_2) + local isPass_2 = self:GetIsPass(player_2.out_card_list) + if isPass_2 then + return {} + else + return player_2.out_card_list + end + else + return player.out_card_list + end +end + +function M:GetErrorStr(code) + return SuoHa_PutError[code + 1] +end + +function M:GetSortOutCardList(outCardList, cardType, cardNumber, plan_three_count) + if cardType == 3 or cardType == 5 or cardType == 6 then + local removeList = {} + for i = #outCardList, 1, -1 do + local card = outCardList[i] + if math.floor(card / 10) == cardNumber then + removeList[#removeList + 1] = card + table.remove(outCardList, i) + end + end + for i = 1, #removeList do + table.insert(outCardList, 1, removeList[i]) + end + elseif cardType >= 7 and cardType <= 9 then + local removeList = {} + for i = #outCardList, 1, -1 do + local card = outCardList[i] + if math.floor(card / 10) <= cardNumber and math.floor(card / 10) > cardNumber - plan_three_count then + removeList[#removeList + 1] = card + table.remove(outCardList, i) + end + end + for i = 1, #removeList do + table.insert(outCardList, 1, removeList[i]) + end + end + return outCardList +end + +--None = 0, +--OneCard = 1, +--OnePair = 2, +--Three = 3, +--Pairs = 4, +--ThreeAndTwo = 5, +--ThreeAndOne = 6, +--Plane = 7, +--PlaneAndTwo = 8, +--PlaneAndOne = 9, +--Straight = 10, +--Bomb = 11 +-- 牌型,大小, 长度 +function M:GetCardListInfo(cardlist) + if #cardlist == 0 then + return 0, 0, 0, 0 + end + -- 检测牌型 + local card_type, card_num, card_length, plan_three_count = SuoHa_CardType.None, 0, #cardlist, 0 + local card_map = self:GetCardMapByList(cardlist) + + if #cardlist == 1 then + card_type = SuoHa_CardType.OneCard + card_num = math.floor(cardlist[1] / 10) + elseif #cardlist == 2 then + card_type = SuoHa_CardType.OnePair + card_num = math.floor(cardlist[1] / 10) + elseif #cardlist == 3 then + card_num = math.floor(cardlist[1] / 10) + if card_num == 14 and DataManager.CurrenRoom.room_config.threeA == 1 then + -- body + card_type = SuoHa_CardType.Bomb + else + card_type = SuoHa_CardType.Three + end + elseif #cardlist == 4 then + local max_key = 0 + for k, v in pairs(card_map) do + if #v == 4 then + card_type = SuoHa_CardType.Bomb + card_num = k + elseif #v == 3 then + card_type = SuoHa_CardType.ThreeAndOne + card_num = k + elseif #v == 2 then + if k > max_key then + max_key = k + end + card_type = SuoHa_CardType.Pairs + card_num = max_key + end + end + elseif #cardlist == 5 then + local count, max_key = 0, 0 + for k, v in pairs(card_map) do + if #v >= 3 then + card_type = SuoHa_CardType.ThreeAndTwo + card_num = k + elseif #v == 1 then + count = count + 1 + if k > max_key then + max_key = k + end + if count == 5 then + card_type = SuoHa_CardType.Straight + card_num = max_key + end + end + end + elseif #cardlist == 7 then + local count, max_key = 0, 0 + for k, v in pairs(card_map) do + if #v >= 4 then + card_type = SuoHa_CardType.FourAndtThree + card_num = k + elseif #v == 1 then + count = count + 1 + if k > max_key then + max_key = k + end + if count == 7 then + card_type = SuoHa_CardType.Straight + card_num = max_key + end + end + end + else + local one_count, two_count, three_count = 0, 0, 0 + local max_one_key, max_two_key, max_three_key = 0, 0, 0 + + for k, v in pairs(card_map) do + if #v == 2 then + if k > max_two_key then + max_two_key = k + end + two_count = two_count + 1 + if two_count == #cardlist / 2 then + card_type = SuoHa_CardType.Pairs + card_num = max_two_key + end + elseif #v == 1 then + if k > max_one_key then + max_one_key = k + end + one_count = one_count + 1 + if one_count == #cardlist then + card_type = SuoHa_CardType.Straight + card_num = max_one_key + end + elseif #v == 3 then + if max_three_key == 0 then + max_three_key = k + three_count = three_count + 1 + elseif k > max_three_key and k == max_three_key + 1 then + max_three_key = k + three_count = three_count + 1 + elseif k < max_three_key and k == max_three_key - 1 then + max_three_key = k + three_count = three_count + 1 + -- else + -- max_three_key = k + end + + --three_count = three_count + 1 + end + end + -- plan_three_count = three_count + -- if three_count * 5 >= #cardlist then + -- card_type = SuoHa_CardType.PlaneAndTwo + -- card_num = max_three_key + -- elseif three_count * 4 >= #cardlist then + -- card_type = SuoHa_CardType.PlaneAndOne + -- card_num = max_three_key + -- elseif three_count * 3 >= #cardlist then + -- card_type = SuoHa_CardType.Plane + -- card_num = max_three_key + -- end + plan_three_count = three_count + + if three_count * 3 == #cardlist then + card_type = SuoHa_CardType.Plane + card_num = max_three_key + elseif three_count * 4 >= #cardlist and #cardlist % 4 == 0 then + card_type = SuoHa_CardType.PlaneAndOne + card_num = max_three_key + elseif three_count * 5 >= #cardlist and #cardlist % 5 == 0 then + card_type = SuoHa_CardType.PlaneAndTwo + card_num = max_three_key + end + end + + return card_type, card_num, card_length, plan_three_count +end + +function M:GetCardMapByList(cardlist) + local card_map = {} + for i = 1, #cardlist do + local card = cardlist[i] + local card_num = math.floor(cardlist[i] / 10) + if card_map[card_num] == nil then + card_map[card_num] = { card } + else + card_map[card_num][#card_map[card_num] + 1] = card + end + end + return card_map +end + +function M:GetIsPass(cardlist) + if #cardlist == 0 then + return true + end + if cardlist[1] ~= nil and cardlist[1] == 0 then + return true + end + return false +end + +--请求离开房间 +function M:LevelRoom(callBack) + local _client = ControllerManager.GameNetClinet + if not _client then + return + end + _client:send( + Protocol.GAME_EXIT_ROOM, + nil, + function(res) + if res.ReturnCode == 0 then + ControllerManager.ChangeController(LoddyController) + elseif res.ReturnCode == 27 then + ViewUtil.ErrorTip(res.ReturnCode, "退出房间失败!") + end + callBack(res) + end + ) +end + +return M diff --git a/lua_probject/extend_project/extend/poker/suoha/SuoHa_GameEvent.lua b/lua_probject/extend_project/extend/poker/suoha/SuoHa_GameEvent.lua new file mode 100644 index 00000000..4f6ffbdb --- /dev/null +++ b/lua_probject/extend_project/extend/poker/suoha/SuoHa_GameEvent.lua @@ -0,0 +1,23 @@ +--- +--- Created by 谌建军. +--- DateTime: 2017/12/13 10:55 +--- +local SuoHa_GameEvent = { + OnMingCard = "OnMingCard", + OnInitCard = "OnInitCard", + OnOptions = "OnOptions", + OnPiaoTips = "OnPiaoTips", + OnPiaoAction = "OnPiaoAction", + OnBombScore = "OnBombScore", + OnIndexMove = "OnIndexMove", + OnPlaySucc = "OnPlaySucc", + OnErrorTip = "OnErrorTip", + OnPassSucc = "OnPassSucc", + OnResult = "OnResult", + OnResultByDissolve = "OnResultByDissolve", + OnConfrimToNextGameSucc = "OnConfrimToNextGameSucc", + Game_TuoGuan = "Game_TuoGuan", + EventXiPai = "EventXiPai", + OnPassSuccCheckCard = "OnPassSuccCheckCard", +} +return SuoHa_GameEvent diff --git a/lua_probject/extend_project/extend/poker/suoha/SuoHa_MainView.lua b/lua_probject/extend_project/extend/poker/suoha/SuoHa_MainView.lua new file mode 100644 index 00000000..612e4fbc --- /dev/null +++ b/lua_probject/extend_project/extend/poker/suoha/SuoHa_MainView.lua @@ -0,0 +1,1574 @@ +--- +--- Created by 谌建军. +--- DateTime: 2017/12/18 9:41 +--- +local PKMainView = import("main.poker.PKMainView") +local SuoHa_PlayerPokerInfoView = import(".SuoHa_PlayerPokerInfoView") +local SuoHa_PlayerSelfPokerInfoView = import(".SuoHa_PlayerSelfPokerInfoView") +local SuoHa_GameEvent = import(".SuoHa_GameEvent") +local SuoHa_ResultView = import(".SuoHa_ResultView") +local SuoHa_RightPanelView = import(".SuoHa_RightPanelView") +local PlayerInfoView = import(".EXPlayerInfoView") +local TableBG = import('Game.Data.TableBG') +local M = {} +function M.new() + setmetatable(M, { __index = PKMainView }) + local self = setmetatable({}, { __index = M }) + self.class = "SuoHa_MainView" + self:init() + self._gamectr = ControllerManager.GetController(GameController) + return self +end + +local default_bg = 1 +local bg_config = { + { id = 1, url = 'extend/poker/suoha/bg/bg1', thumb = 'ui://Extend_Poker_SuoHa/table_bg1' }, + { id = 2, url = 'extend/poker/suoha/bg/bg2', thumb = 'ui://Extend_Poker_SuoHa/table_bg2' }, + { id = 3, url = 'extend/poker/suoha/bg/bg3', thumb = 'ui://Extend_Poker_SuoHa/table_bg3' } +} + +function M:InitView(url) + local room = self._room + UIPackage.AddPackage("extend/poker/suoha/ui/Extend_Poker_SuoHa") + PKMainView.InitView(self, "ui://Extend_Poker_SuoHa/SuoHa_Main_New_" .. room.room_config.people_num, nil, 1, + default_bg, bg_config, nil) + local _room = DataManager.CurrenRoom + local user_id = DataManager.SelfUser.account_id + local json_data = Utils.LoadLocalFile(user_id .. _room.game_id .. "pai") + if json_data == nil then + local _gamectr = self._gamectr + self._room.pai = 0 + else + local _data = json.decode(json_data) + local pai = _data["pai"] + self._room.pai = pai + end + + json_data = Utils.LoadLocalFile(user_id .. _room.game_id .. "cardsize") + if json_data == nil then + local _gamectr = self._gamectr + self._room.cardsize = 1 + else + local _data = json.decode(json_data) + local cardsize = _data["cardsize"] + self._room.cardsize = cardsize + end + + + self._player_info = {} + local _player_info = self._player_info + for i = 1, self._room.room_config.people_num do + local tem = self._view:GetChild("player_info" .. i) + _player_info[i] = PlayerInfoView.new(tem, self) + tem.visible = false + end + local list = self._room.player_list + for i = 1, #list do + local p = list[i] + local info = _player_info[self:GetPos(p.seat)] + info._view.visible = true + info:FillData(p) + end + + + local rightpanel = self._view:GetChild("right_panel") + if self._rightPanelView ~= nil then + self._rightPanelView:Destroy() + end + + self._rightPanelView = SuoHa_RightPanelView.new(self, rightpanel) + for i = 1, #self._room.player_list do + if self._room.self_player.seat == self._room.player_list[i].seat and self._room.self_player.self_user.account_id ~= self._room.player_list[i].self_user.account_id then + -- body + local ErrorMsgTip = UIPackage.CreateObject("Common", "Win_ConnectTip") + local _action = self._view:AddChild(ErrorMsgTip) + _action.xy = Vector2((self._view.width - _action.width) / 4, self._view.height / 4) + local text = _action:GetChild("tex_message") + local btn1 = _action:GetChild("btn_connect") + local btn2 = _action:GetChild("btn_back") + text.text = "您来晚了,座位有人,请重新进牌桌" + btn1.visible = false + btn2:Center() + btn2.y = btn2.y + 50 + btn2.onClick:Set(function() + -- body + ErrorMsgTip:Destroy() + ErrorMsgTip = nil + self._gamectr:LevelRoom(function(res) + ViewUtil.CloseModalWait() + NetResetConnectWindow.CloseNetReset() + ControllerManager.ChangeController(LoddyController) + ViewManager.ChangeView(ViewManager.View_Lobby) + end) + end) + end + end + + if self._room.hpOnOff == 1 and self._room.score_times ~= 1 then + -- body + self._view:GetChild("roominfo_panel1"):GetChild("tex_beishu").text = self._room.score_times .. "倍" + else + self._view:GetChild("roominfo_panel1"):GetChild("tex_beishu").text = "" + end + + self.ctr_state = self._view:GetController("state") + self._ctr_action = self._view:GetController("action") + self._tex_leftTime = self._view:GetChild("time"):GetChild("title") + self.ctr_time = self._view:GetController("time") + self._text_round = self._view:GetChild("round") + self.ctr_card_eff = self._view:GetController("card_eff") + self._player_card_info = {} + + local _player_card_info = self._player_card_info + for i = 1, room.room_config.people_num do + local tem = self._view:GetChild("player_card_info_" .. i) + _player_card_info[i] = self:NewPlayerCardInfoView(tem, i) + end + + local list = room.player_list + if not room.self_player.ready then + local round = DataManager.CurrenRoom.room_config.config.times or 1 + local xpconfig = DataManager.CurrenRoom.room_config.config.xi_pai + if xpconfig then + if round > 1 then + self._ctr_action.selectedIndex = 1 + else + self._ctr_action.selectedIndex = 2 + end + else + self._ctr_action.selectedIndex = 1 + end + else + self._ctr_action.selectedIndex = 0 + end + self._left_time = 0 + self.bgm_index = 1 + local state = self._room.CurnrenState + + if room.CurnrenState ~= StateType.PalyingWait then + self._state.selectedIndex = state + if room.CurnrenState == StateType.Palying then + self:ReConnectForStart() + end + else + self._state.selectedIndex = StateType.Palying + self:ReconnectForClearing() + end + + self._view:GetChild("btn_back_jiesan").onClick:Set(function() + if self.dismiss_room_cd_time > 0 then + ViewUtil.ErrorTip(nil, "您还处于解散冷却时间当中,请稍后重试!") + else + local _gamectr = ControllerManager.GetController(GameController) + _gamectr:AskDismissRoom() + end + end) + --local tempdsaf=self._view:GetChild("btn_back_jiesan") + --tempdsaf:GetChild("n3").displayObject.gameObject:SetActive(false) + --self._view:GetChild("btn_back_jiesan").displayObject.gameObject:SetActive(false) + + self:ChangeBgmMusic() + self:EventInit() + + self._view:GetChild("bg_mask").onClick:Set(function() + self:ResetPoker() + end) + local btn_rule = self._view:GetChild("right_panel"):GetChild("btn_log") + self._view:GetChild('info_text'):GetChild('text').text = room.room_config:GetDes() + if room.room_config.Leaf == 1 then + if room.room_config.people_num == 2 then + self._view:GetChild('wanfa_text').text = '十五张' .. '二人跑得快' .. room.score_times .. '倍' + else + self._view:GetChild('wanfa_text').text = '十五张' .. '三人跑得快' .. room.score_times .. '倍' + end + else + if room.room_config.people_num == 2 then + self._view:GetChild('wanfa_text').text = '十六张' .. '二人跑得快' .. room.score_times .. '倍' + else + self._view:GetChild('wanfa_text').text = '十六张' .. '三人跑得快' .. room.score_times .. '倍' + end + end + + if self._view:GetChild("shengyu") ~= nil then + -- body + + if room.room_config.Leaf == 1 then + -- body + self._view:GetChild("shengyu"):GetChild("shengyu").text = "剩余15张" + else + self._view:GetChild("shengyu"):GetChild("shengyu").text = "剩余16张" + end + end + ------------------lingmeng-------------------------- + + self._tex_leftTime = self._view:GetChild('Comp_Clock'):GetChild('time') -- 重写 + self._text_currenRound = self._view:GetChild('Text_CurrenRound') + self._text_maxRound = self._view:GetChild('Text_MaxMaxRound') + + self:UpdateRound(0) + + --按钮功能全部未开放 + self._view:GetChild('Btn_Spectator').onClick:Set(function() + ViewUtil.ErrorMsg(self._view, "", "该功能还未开放") + end) + self._view:GetChild('Btn_GamePlay').onClick:Set(function() + ViewUtil.ErrorMsg(self._view, "", "该功能还未开放") + end) + self._view:GetChild('Btn_Check').onClick:Set(function() + ViewUtil.ErrorMsg(self._view, "", "该功能还未开放") + end) + self._view:GetChild('Btn_Message').onClick:Set(function() + ViewUtil.ErrorMsg(self._view, "", "该功能还未开放") + end) + self._view:GetChild('Btn_Invite').onClick:Set(function() + ViewUtil.ErrorMsg(self._view, "", "该功能还未开放") + end) + + ---------------------------------------------------- +end + +function M:UpdateCard(index) + self._room.pai = index + local card_info = self._player_card_info[1] + -- for i=1,#self._room.player_list do + -- -- print(i) + -- end + card_info:updatePoker() + for _, player in ipairs(self._room.player_list) do + local player_card_info = self._player_card_info[self:GetPos(player.seat)] + + if self._room.curren_turn_seat ~= player.seat then + if player.out_card_list[1] == 0 then + player_card_info:SetOutCardInfo(nil, true) + else + player_card_info:SetOutCardInfo(player.out_card_list, false) + end + end + end + if self.caozuo == 1 then + local ctr_number = self.pass == nil and 2 or 1 + local lastCardList = self._gamectr:GetLastCardList(self._room.self_player.seat) + local cardType, cardNum, cardLength = self._gamectr:GetCardListInfo(lastCardList) + local m = false + local next_seat = self._room.self_player.seat + 1 + if next_seat > self._room.room_config.people_num then + next_seat = next_seat - self._room.room_config.people_num + end + if self._room:GetPlayerBySeat(next_seat).hand_count == 1 and self._room.room_config.WillBeOut == 1 then + m = true + end + local zdts = self._view:GetController("zidongtishi").selectedIndex + self._player_card_info[1]:ShowOutCardOption(ctr_number, cardType, cardNum, cardLength, m) + end +end + +function M:UpdateCardSize(index) + self._room.cardsize = index + local card_info = self._player_card_info[1] + card_info:updatePoker() +end + +function M:NewPlayerCardInfoView(tem, index) + if index == 1 then + return SuoHa_PlayerSelfPokerInfoView.new(tem, self) + end + return SuoHa_PlayerPokerInfoView.new(tem, self) +end + +function M:OnPlayerEnter(...) + MainView.OnPlayerEnter(self, ...) + local arg = { ... } + local p = arg[1] + local index = self:GetPos(p.seat) + local info = self._player_info[index] + local selecet_seat = self._view:GetChild("seat_" .. index) + if selecet_seat ~= nil then + selecet_seat.visible = true + end + info:FillData(p) + if self._room.banker_seat == self._room.self_player.seat and self._room.self_player.ready then + self._ctr_action.selectedIndex = 0 + end +end + +function M:OnPlayerReady(...) + local arg = { ... } + local p = arg[1] + local _room = self._room + local _player_info = self._player_info + if p.seat == _room.self_player.seat then + self._ctr_action.selectedIndex = 0 + end + local info = _player_info[self:GetPos(p.seat)] + info:Ready(true) + --local readyNum = 0 + --for i = 1, #_room.player_list do + -- local player = _room.player_list[i] + -- if player.ready then readyNum = readyNum + 1 end + --end + --if _room.banker_seat == _room.self_player.seat and readyNum > 1 and readyNum == _room.room_config.people_num then + -- if self._state.selectedIndex == 2 then + -- local _gamectr = ControllerManager.GetController(GameController) + -- _gamectr:StartGame() + -- end + -- --self._ctr_action.selectedIndex = 2 + --end +end + +function M:OnPlayerLeave(...) + MainView.OnPlayerLeave(self, ...) + local _room = self._room + if not _room.self_player.ready then + --self._ctr_action.selectedIndex = 1 + local round = DataManager.CurrenRoom.room_config.config.times or 1 + local xpconfig = DataManager.CurrenRoom.room_config.config.xi_pai + if xpconfig then + if round > 1 then + self._ctr_action.selectedIndex = 1 + else + self._ctr_action.selectedIndex = 2 + end + else + self._ctr_action.selectedIndex = 1 + end + else + self._ctr_action.selectedIndex = 0 + end +end + +function M:EventInit() + local _gamectr = ControllerManager.GetController(GameController) + MainView.EventInit(self) + local _player_info = self._player_info + local _player_card_info = self._player_card_info + local _room = self._room + + + _gamectr:AddEventListener(SuoHa_GameEvent.EventXiPai, function(...) + if self.result_view ~= nil then + self.result_view:Destroy() + self.result_view = nil + end + + self._player_card_info[1]:HidePiao() + + if self._room.room_config.people_num == 3 and self._room.room_config.fangzuobi == 1 then + -- body + self.MypokerList = cardlist + end + local otherpoker_list = self._view:GetChild("otherpoker_list") + + if otherpoker_list ~= nil then + -- body + otherpoker_list.visible = false + otherpoker_list:RemoveChildrenToPool() + end + self.ctr_state.selectedIndex = 1 + self.ctr_card_eff.selectedIndex = 0 + if self.rank_view ~= nil then + self.rank_view:Dispose() + self.rank_view = nil + end + + local list = _room.player_list + for i = 1, #list do + local p = list[i] + local head_info = self._player_info[self:GetPos(p.seat)] + if head_info._view:GetChild("shengyu") ~= nil and head_info._view:GetController("shengyu") ~= nil then + -- body + + if self._room.room_config.showlength == 1 then + -- body + head_info._view:GetController("shengyu").selectedIndex = 1 + else + head_info._view:GetController("shengyu").selectedIndex = 0 + end + + -- body + head_info._view:GetChild("shengyu"):GetChild("shengyu").text = "剩" .. p.hand_count .. "张" + end + p:Clear() + head_info:FillData(p) + local card_info = self._player_card_info[self:GetPos(p.seat)] + card_info:Clear() + head_info:Ready(false) + end + + + --[[if ( currentPlayer ) then + self._popEvent = false + local xipaiCB=function () + self._popEvent = true + end + self:PlayXiPai(xipaiCB) + else + ViewUtil.ShowModalWait(self._root_view,"等待其它玩家洗牌...") + coroutine.start(function() + coroutine.wait(3) + ViewUtil.CloseModalWait() + end) + + + end--]] + + + local arg = { ... } + local currentPlayer1 = arg[1] + local currentPlayer2 = arg[2] + self._popEvent = false + if (currentPlayer1) then + local xipaiCB = function() + self._popEvent = true + end + self:PlayXiPai(xipaiCB) + end + + + if (currentPlayer2) then + --self._popEvent = false + local xipaiCB2 = function() + self._popEvent = true + end + self:PlayXiPai1(xipaiCB2) + end + end) + + _gamectr:AddEventListener(SuoHa_GameEvent.OnMingCard, function(...) + local arg = { ... } + local card = arg[1] + self.ctr_state.selectedIndex = 1 + self.ctr_card_eff.selectedIndex = 1 + self:PlayCardEff(card) + end) + + _gamectr:AddEventListener(SuoHa_GameEvent.OnInitCard, function(...) + local arg = { ... } + local round = arg[1] + local cardlist = arg[2] + + + if self.result_view ~= nil then + self.result_view:Destroy() + self.result_view = nil + end + + self._player_card_info[1]:HidePiao() + + if self._room.room_config.people_num == 3 and self._room.room_config.fangzuobi == 1 then + -- body + self.MypokerList = cardlist + end + local otherpoker_list = self._view:GetChild("otherpoker_list") + + if otherpoker_list ~= nil then + -- body + otherpoker_list.visible = false + otherpoker_list:RemoveChildrenToPool() + end + self.ctr_state.selectedIndex = 1 + self.ctr_card_eff.selectedIndex = 0 + if self.rank_view ~= nil then + self.rank_view:Dispose() + self.rank_view = nil + end + self:UpdateRound(round) + ViewUtil.PlaySound("SuoHa_PK", "extend/poker/suoha/sound/fapai.mp3") + local list = _room.player_list + for i = 1, #list do + local p = list[i] + local head_info = self._player_info[self:GetPos(p.seat)] + if head_info._view:GetChild("shengyu") ~= nil and head_info._view:GetController("shengyu") ~= nil then + -- body + + if self._room.room_config.showlength == 1 then + -- body + head_info._view:GetController("shengyu").selectedIndex = 1 + else + head_info._view:GetController("shengyu").selectedIndex = 0 + end + + -- body + head_info._view:GetChild("shengyu"):GetChild("shengyu").text = "剩" .. p.hand_count .. "张" + end + p:Clear() + head_info:FillData(p) + local card_info = self._player_card_info[self:GetPos(p.seat)] + card_info:Clear() + head_info:Ready(false) + + if p.seat == self._room.self_player.seat then + if self._room.room_config.people_num == 3 and self._room.room_config.fangzuobi == 1 then + -- body + card_info:InitPoker(cardlist, false, 1) + else + card_info:InitPoker(cardlist, false) + end + else + --card_info:UpdateHandPoker(#cardlist,true,false) --todo + --card_info:UpdateRemainCard(#cardlist,true) + end + end + end) + + + -- _gamectr:AddEventListener(SuoHa_GameEvent.Oener,function ( ... ) + -- local arg = {...} + -- local seat = arg[1] + -- local head_info = self._player_info[self:GetPos(seat)] + -- head_info._view:GetController("Oener").selectedIndex=1 + -- end) + _gamectr:AddEventListener(SuoHa_GameEvent.OnIndexMove, function(...) + local arg = { ... } + local seat = arg[1] + local isNewBout = arg[2] + local index = self:GetPos(seat) + + self.ctr_time.selectedIndex = index + -- for i=1,#self._player_info do + -- if index==i then + -- -- body + -- local head_info = self._player_info[index] + -- head_info:MarkBank(true) + -- else + -- local head_info = self._player_info[i] + -- head_info:MarkBank(false) + -- end + -- end + + if index == 1 then + local card_info = self._player_card_info[index] + card_info:SetOutCardInfo(nil, false) + -- if self.MypokerList ~= nil then + -- -- body + -- card_info:Clear() + -- card_info:InitPoker(self.MypokerList, false) + -- self.MypokerList = nil + -- end + end + self._left_time = 20 + if self._room.ming_card ~= nil then + self._view:GetTransition("t" .. index):Play() + self._room.ming_card = nil + if self.tween ~= nil then + TweenUtils.Kill(self.tween) + self.tween = nil + end + end + end) + + _gamectr:AddEventListener(SuoHa_GameEvent.OnBombScore, function(...) + local arg = { ... } + local scoreList = arg[1] + -- for i = 1, #scoreList do + -- local player = self._room:GetPlayerBySeat(i) + -- local card_info = self._player_card_info[self:GetPos(i)] + -- local head_info = self._player_info[self:GetPos(i)] + -- card_info:PlayScore(scoreList[i], true) + -- head_info:UpdateScore(player.total_score) + -- end + end) + + _gamectr:AddEventListener(SuoHa_GameEvent.OnPlaySucc, function(...) + local arg = { ... } + local p = arg[1] + local card_number = arg[2] + local cardstype = arg[3] + local num = arg[4] + local otherList = arg[5] + local length = arg[6] + self.ctr_time.selectedIndex = 0 + print("lingmengOnPlaySucc", p, card_number, cardstype, num, otherList) + local index = self:GetPos(p.seat) + if index == 1 then + self.caozuo = 0 + end + print("lingmengOnPlaySucc1") + + local head_info = self._player_info[index] + if head_info._view:GetChild("shengyu") ~= nil then + -- body + -- body + if card_number ~= nil then + -- body + head_info._view:GetChild("shengyu"):GetChild("shengyu").text = "剩" .. card_number .. "张" + end + end + print("lingmengOnPlaySucc2") + + local card_info = self._player_card_info[index] + card_info:SetOutCardInfo(p.out_card_list, false, true) + print("lingmengOnPlaySucc3") + + for i = 1, #otherList do + local other_seat = otherList[i] + local other_card_info = self._player_card_info[self:GetPos(other_seat)] + other_card_info:SetOutCardBlack() + end + print("lingmengOnPlaySucc4") + + if index == 1 then + card_info:DeleteHandCards(p.out_card_list) + else + card_info:SetRemainCardNumber(card_number == 1) + --card_info:UpdateHandPoker(card_number,false,false) -- todo + end + print("lingmengOnPlaySucc5") + + if self._room.is_new_bout == true then + for i = 1, #self._room.player_list do + local player = self._room.player_list[i] + local card_info_i = self._player_card_info[self:GetPos(player.seat)] + if p.seat ~= player.seat then + card_info_i:SetOutCardInfo(nil, false) + end + end + -- card_info:PlayCardTypeEff(cardstype) + -- if cardstype~=12 then + -- -- body + + + -- if cardstype==10 and length>=6 then + -- -- card_info_i + -- local chuan = UIPackage.CreateObject("Extend_Poker_SuoHa", "chuan1") + -- local card_info_i = self._player_card_info[self:GetPos(p.seat)] + + -- card_info_i._mask_liangpai:AddChild(chuan) + -- chuan:GetChild("n0").asMovieClip.playing = true + -- ViewUtil.PlaySound("SuoHa_PK", "extend/poker/paodekuai/sound/sunzi.mp3") + -- coroutine.start(function() + -- coroutine.wait(1.5) + -- if chuan~=nil then + -- -- body + -- chuan:Dispose() + -- end + + -- end) + + -- else + -- self:_Effect(cardstype, p) + -- end + -- end + self:_Effect(cardstype, p) + else + if cardstype == 11 and cardstype ~= 12 then + self:_Effect(cardstype, p) + end + end + print("lingmengOnPlaySucc6") + + self:PlaySound(p.self_user.sex, self:GetSoundFileName(cardstype, num, self._room.is_new_bout)) + if card_number == 1 then + --self:ChangeBgmMusic(2) + self:ChangeBgmMusic(1) + if self._cor_sound ~= nil then + coroutine.stop(self._cor_sound) + end + self._cor_sound = nil + self._cor_sound = coroutine.start(function() + coroutine.wait(1) + self:PlaySound(p.self_user.sex, "card_1") + end) + end + print("lingmengOnPlaySucc7") + end) + + + _gamectr:AddEventListener(SuoHa_GameEvent.OnPassSuccCheckCard, function(...) + self._popEvent = false + local arg = { ... } + local seat = arg[1] + local cards = arg[2] + --self.MypokerList=cards + self.ctr_time.selectedIndex = 0 + local card_info = self._player_card_info[self:GetPos(seat)] + if seat == self._room.self_player.seat then + card_info:ClearCheck() + card_info:InitPoker(cards, false) + + --local player=self._room:GetPlayerBySeat(seat) + --if player.out_card_list[1] == 0 then + -- player_card_info:SetOutCardInfo(nil, true) + --else + --player:SetOutCardInfo({207}, false) + -- end + end + + self._popEvent = true + end) + + _gamectr:AddEventListener(SuoHa_GameEvent.OnPassSucc, function(...) + local arg = { ... } + local p = arg[1] + + self.ctr_time.selectedIndex = 0 + local card_info = self._player_card_info[self:GetPos(p.seat)] + + --card_info:SetOutCardInfo(nil, false) + if p.seat == self._room.self_player.seat and self.MypokerList ~= nil then + -- body + card_info:Clear() + card_info:InitPoker(self.MypokerList, false) + self.MypokerList = nil + end + card_info:SetOutCardInfo(nil, true) + self:PlaySound(p.self_user.sex, "pass_" .. math.random(1, 4)) + end) + + _gamectr:AddEventListener(SuoHa_GameEvent.OnErrorTip, function(...) + local arg = { ... } + local error_str = arg[1] + self._player_card_info[1]:ErrorTip(error_str) + -- self._player_card_info[1]:ResetPoker() + end) + + _gamectr:AddEventListener(SuoHa_GameEvent.OnPiaoTips, function(...) + local arg = { ... } + local piao = arg[1] + local reload = arg[2] + if reload == 0 then + if self._room.room_config.people_num == 3 and self._room.room_config.fangzuobi == 1 then + -- body + self.MypokerList = cardlist + end + local otherpoker_list = self._view:GetChild("otherpoker_list") + + if otherpoker_list ~= nil then + -- body + otherpoker_list.visible = false + otherpoker_list:RemoveChildrenToPool() + end + self.ctr_state.selectedIndex = 1 + self.ctr_card_eff.selectedIndex = 0 + if self.rank_view ~= nil then + self.rank_view:Dispose() + self.rank_view = nil + end + self:UpdateRound(self._room.curren_round) + + local list = _room.player_list + for i = 1, #list do + local p = list[i] + local head_info = self._player_info[self:GetPos(p.seat)] + + p:Clear() + head_info:FillData(p) + local card_info = self._player_card_info[self:GetPos(p.seat)] + card_info:Clear() + head_info:Ready(false) + head_info:UpdatePiao(-1) + end + end + + self._player_card_info[1]:ShowPiao(piao) + end) + + _gamectr:AddEventListener(SuoHa_GameEvent.OnPiaoAction, function(...) + local arg = { ... } + local seat = arg[1] + local piao = arg[2] + local head_info = self._player_info[self:GetPos(seat)] + head_info:UpdatePiao(piao) + end) + + _gamectr:AddEventListener(SuoHa_GameEvent.OnOptions, function(...) + local arg = { ... } + local play = arg[1] + local pass = arg[5] + local card_type = arg[2] + local card_number = arg[3] + local card_length = arg[4] + local ctr_number = pass == nil and 2 or 1 + self.caozuo = 1 --记录是否是自己出牌的阶段 + self.pass = pass + local m = false + local next_seat = self._room.self_player.seat + 1 + local card_info = self._player_card_info[1] + --card_info:SetOutCardInfo(nil, false) + if self.MypokerList ~= nil then + -- body + card_info:Clear() + card_info:InitPoker(self.MypokerList, false) + self.MypokerList = nil + end + if next_seat > self._room.room_config.people_num then + next_seat = next_seat - self._room.room_config.people_num + end + if self._room:GetPlayerBySeat(next_seat).hand_count == 1 and self._room.room_config.WillBeOut == 1 then + m = true + end + local zdts = self._view:GetController("zidongtishi").selectedIndex + self._player_card_info[1]:ShowOutCardOption(ctr_number, card_type, card_number, card_length, m, play, zdts) + end) + -- 托管 + _gamectr:AddEventListener(SuoHa_GameEvent.Game_TuoGuan, function(...) + local arg = { ... } + local tuoguan = arg[1] + local seat = arg[2] + + local tuoguanzhong = self._view:GetChild("tuoguanzhong") + local zhezhao = self._view:GetChild("n109") + local head_info = self._player_info[self:GetPos(seat)] + if (tuoguan == 1) then + if (seat == self._room.self_player.seat) then + tuoguanzhong.visible = true + -- tuoguanzhong.sortingOrder = 2 + zhezhao.visible = true + zhezhao.onClick:Set(function() + _gamectr:TuoGuan(0) + end) + else + head_info._view:GetController("tuoguan").selectedIndex = 1 + end + -- if self.ispanguangzhe == true then + -- -- body + -- zhezhao.visible = false + -- end + else + if (seat == self._room.self_player.seat) then + tuoguanzhong.visible = false + zhezhao.visible = false + -- local btn_tuoguan = self._view:GetChild("n107") + -- btn_tuoguan.onClick:Set(function() + -- _gamectr:TuoGuan(1) + -- -- self:ZhiNengtuoguan() + -- end) + else + head_info._view:GetController("tuoguan").selectedIndex = 0 + end + end + end) + _gamectr:AddEventListener(SuoHa_GameEvent.OnResult, function(...) + local arg = { ... } + local over = arg[1] + local info = arg[2] + local win_seat = arg[3] + local remaincards = arg[4] + -- local energyTab = arg[5] + local otherpoker_list = self._view:GetChild("otherpoker_list") + + if self.MypokerList ~= nil then + -- body + local card_info = self._player_card_info[self:GetPos(self._room.self_player.seat)] + card_info:Clear() + card_info:InitPoker(self.MypokerList, false) + self.MypokerList = nil + end + if otherpoker_list ~= nil then + -- body + otherpoker_list:RemoveChildrenToPool() + otherpoker_list.visible = true + end + + if remaincards then + -- body + local newremaincards = _gamectr:ChangeCodeByFrom(remaincards, true) + table.sort(remaincards) + for i = #newremaincards, 1, -1 do + coroutine.start(function() + coroutine.wait(0.01) + + local flow = newremaincards[i] % 10 + local num = (newremaincards[i] - (newremaincards[i] % 10)) / 10 + local card_n = flow * 100 + num + local poker_item = UIPackage.CreateObject("Extend_Poker_SuoHa", "poker6") + + --local code = self:ChangeCodeByTo(card_n) + -- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. card_n) + -- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. card_n .. "_2") + local card_code_obj = nil + if DataManager.CurrenRoom.pai == 0 then + if card_n == 310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then + -- body + card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. card_n .. + "_1") + else + card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. card_n) + end + else + if card_n == 310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then + -- body + card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. card_n .. + "_2") + else + card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. card_n .. "_2") + end + end + if card_code_obj ~= nil then + card_code_obj:SetScale(0.6, 0.6) + if poker_item ~= nil then + poker_item:AddChild(card_code_obj) + otherpoker_list:AddChild(poker_item) + end + end + end) + end + end + if self._cor_sound ~= nil then + coroutine.stop(self._cor_sound) + self._cor_sound = nil + end + + if self.destory_win ~= nil then + coroutine.stop(self.destory_win) + end + + self.destory_win = nil + self.destory_win = coroutine.start(function() + -- -- print("11111111111111") + -- coroutine.wait(1) + if self._room.self_player.seat == win_seat then + local sprint_seat_list = self:GetSpringSeats(info) + if #sprint_seat_list > 0 then + local url = "ui://Extend_Poker_SuoHa/Spring" + self.WinItem_view = UIPackage.CreateObjectFromURL(url) + self._view:AddChild(self.WinItem_view) + self.WinItem_view:Center() + self.WinItem_view:GetTransition("t0"):Play() + ViewUtil.PlaySound("SuoHa_PK", "base/common/sound/win new.mp3") + end + -- local url = #sprint_seat_list > 0 and "ui://Extend_Poker_SuoHa/Spring" or "ui://Extend_Poker_SuoHa/Win_Mine" + else + local beigang = false + if #self:GetSpringSeats(info) > 0 then + for i = 1, #self:GetSpringSeats(info) do + if self:GetSpringSeats(info)[i] == self._room.self_player.seat then + local url = "ui://Extend_Poker_SuoHa/spring2" + self.WinItem_view = UIPackage.CreateObjectFromURL(url) + self._view:AddChild(self.WinItem_view) + self.WinItem_view:Center() + self.WinItem_view:GetTransition("t0"):Play() + beigang = true + end + end + end + -- if beigang == false then + -- self:CreateRankEff() + -- end + end + for i = 1, #info do + local player = info[i] + local p = self._room:GetPlayerBySeat(player.seat) + local head_info = self._player_info[self:GetPos(player.seat)] + local card_info = self._player_card_info[self:GetPos(player.seat)] + if player.hp_info ~= nil and player.hp_info.cur_hp ~= nil then + p.hp_info = player.hp_info + head_info:UpdateScore(d2ad(player.hp_info.cur_hp)) + head_info._view:GetChild('zhanji').visible = true + local num = player.hp_info.total_hp + if num > 0 then + head_info._view:GetController('text_color').selectedIndex = 0 + head_info._view:GetChild('text_score').text = "+" .. d2ad(player.hp_info.total_hp) + else + head_info._view:GetController('text_color').selectedIndex = 1 + head_info._view:GetChild('text_score').text = d2ad(player.hp_info.total_hp) + end + card_info:PlayScore(d2ad(player.hp_info.round_actual_hp), false, win_seat == player.seat) + else + local rt = 1 + if self._room.hpOnOff == 1 then + rt = self._room.score_times + end + if over == 1 and self._room.hpOnOff == 1 then + head_info:UpdateScore(player.score / 10) --不可负分 + else + head_info:UpdateScore(player.score * rt) + end + card_info:PlayScore(player.winscore * rt, false, win_seat == player.seat) + end + + + if player.seat ~= self._room.self_player.seat then + card_info:UpdateHandPoker(player.cards, false, true) + card_info:SetRemainCardNumber(false) + end + end + self:ChangeBgmMusic(1) + -- if over == 0 then + if #self:GetSpringSeats(info) > 0 then + -- -- print("222222222222222222") + coroutine.wait(1) + else + -- -- print("333333333333333333") + -- coroutine.wait(2) + end + + self.result_view = SuoHa_ResultView.new(self._root_view, info, self._room.room_id, over, win_seat, 0, + remaincards) + self.result_view:Show() + if self.WinItem_view ~= nil then + self.WinItem_view:Dispose() + self.WinItem_view = nil + end + if self.rank_view ~= nil then + self.rank_view:Dispose() + self.rank_view = nil + end + + if self._room.self_player.entrust == true then + local btn_confirm = self.result_view._view:GetChild("btn_confirm") + btn_confirm.onClick:Call() + end + + -- local _actionView = UIPackage.CreateObject("Common", "Btn_Yellow") + -- _actionView.icon = "ui://Common/btn_comfirm" + -- _actionView.onClick:Set(function () + -- --local _gamectr = ControllerManager.GetController(GameController) + -- _gamectr:ConformToNextGame() + -- _actionView:Dispose() + -- end) + -- _actionView.xy = Vector2(900, 625) + -- self._view:AddChild(_actionView) + -- else + -- coroutine.wait(4) + -- self.result_view = SuoHa_ResultView.new(self._root_view,info,self._room.room_id) + -- self.result_view:Show() + -- end + end) + if over == 1 then + -- body + self:UnmarkSelfTuoguan() + ControllerManager.ChangeController(LoddyController) + end + end) + + _gamectr:AddEventListener(SuoHa_GameEvent.OnResultByDissolve, function(...) + local arg = { ... } + local over = arg[1] + local info = arg[2] + local winseat = arg[3] + local dissolve = arg[4] + + self.result_view = SuoHa_ResultView.new(self._root_view, info, self._room.room_id, over, winseat, dissolve, nil) + self.result_view:Show() + ControllerManager.ChangeController(LoddyController) + self:UnmarkSelfTuoguan() + end) + + -- 确定开始下一局 成功 + _gamectr:AddEventListener(SuoHa_GameEvent.OnConfrimToNextGameSucc, function(...) + local arg = { ... } + local aid = arg[1] + local p = self._room:GetPlayerById(aid) + if p.seat == self._room.self_player.seat then + if self.rank_view ~= nil then + self.rank_view:Dispose() + self.rank_view = nil + end + if self.destory_win ~= nil then + coroutine.stop(self.destory_win) + self.destory_win = nil + end + for _, player in ipairs(self._room.player_list) do + local player_card_info = self._player_card_info[self:GetPos(player.seat)] + local player_head = self._player_info[self:GetPos(player.seat)] + player_card_info:Clear() + local otherpoker_list = self._view:GetChild("otherpoker_list") + if otherpoker_list ~= nil then + -- body + otherpoker_list.visible = false + otherpoker_list:RemoveChildrenToPool() + end + --player_head._view:GetController("Oener").selectedIndex=0 + end + end + local player_info = self._player_info[self:GetPos(p.seat)] + player_info:Ready(true) + end) +end + +function M:ReConnectForStart() + local _gamectr = ControllerManager.GetController(GameController) + self._room.is_new_bout = _gamectr:GetIsNewBout(self._room.curren_turn_seat) + self._state.selectedIndex = 1 + self._view:GetController("time").selectedIndex = self:GetPos(self._room.curren_turn_seat) + + for _, player in ipairs(self._room.player_list) do + local player_card_info = self._player_card_info[self:GetPos(player.seat)] + local head_info = self._player_info[self:GetPos(player.seat)] + head_info:Ready(false) + + --如果是体力值不可负分模式 则显示当前的hp值 + if player.hp_info ~= nil and player.hp_info.cur_hp ~= nil then + head_info:UpdateScore(d2ad(player.hp_info.cur_hp)) + head_info._view:GetChild('zhanji').visible = true + local num = player.hp_info.total_hp + if num > 0 then + head_info._view:GetController('text_color').selectedIndex = 0 + head_info._view:GetChild('text_score').text = '+' .. d2ad(player.hp_info.total_hp) + else + head_info._view:GetController('text_color').selectedIndex = 1 + head_info._view:GetChild('text_score').text = d2ad(player.hp_info.total_hp) + end + else + local rt = 1 + if self._room.hpOnOff == 1 then + rt = self._room.score_times + end + head_info:UpdateScore(player.total_score * rt) + end + + head_info:UpdateLineState(player.line_state) + head_info:UpdatePiao(player.piao) + + if head_info._view:GetChild("shengyu") ~= nil and head_info._view:GetController("shengyu") ~= nil then + -- body + + + if self._room.room_config.showlength == 1 then + -- body + head_info._view:GetController("shengyu").selectedIndex = 1 + else + head_info._view:GetController("shengyu").selectedIndex = 0 + end + + -- body + head_info._view:GetChild("shengyu"):GetChild("shengyu").text = "剩" .. player.hand_count .. "张" + end + if player.seat == self._room.self_player.seat then + if player.open ~= nil and player.open == 0 and self._room.room_config.people_num == 3 and self._room.room_config.fangzuobi == 1 then + -- body + self.MypokerList = player.hand_list + player_card_info:InitPoker(player.hand_list, false, 1) + else + player_card_info:InitPoker(player.hand_list, false) + end + else + player_card_info:SetRemainCardNumber(player.hand_count == 1) + if player.hand_count == 1 then + self.bgm_index = 2 + end + end + if self._room.curren_turn_seat ~= player.seat then + -- head_info:MarkBank(false) + if player.out_card_list[1] == 0 then + player_card_info:SetOutCardInfo(nil, false) + else + player_card_info:SetOutCardInfo(player.out_card_list, false) + end + else + -- head_info:MarkBank(true) + end + end +end + +function M:ReconnectForClearing() + self:UpdateRound(self._room.curren_round) + local win_seat = 0 + --self.rank_view = self:CreateRankEff(self._room.winseat) + for _, player in ipairs(self._room.player_list) do + local head_info = self._player_info[self:GetPos(player.seat)] + local player_card_info = self._player_card_info[self:GetPos(player.seat)] + + --如果是体力值不可负分模式 则显示当前的hp值 + if player.hp_info ~= nil and player.hp_info.cur_hp ~= nil then + head_info:UpdateScore(d2ad(player.hp_info.cur_hp)) + head_info._view:GetChild('zhanji').visible = true + local num = player.hp_info.total_hp + if num > 0 then + head_info._view:GetController('text_color').selectedIndex = 0 + head_info._view:GetChild('text_score').text = '+' .. d2ad(player.hp_info.total_hp) + else + head_info._view:GetController('text_color').selectedIndex = 1 + head_info._view:GetChild('text_score').text = d2ad(player.hp_info.total_hp) + end + -- player_card_info:PlayScore(d2ad(player.hp_info.round_actual_hp)) + else + local rt = 1 + if self._room.hpOnOff == 1 then + rt = self._room.score_times + end + head_info:UpdateScore(player.total_score * rt) + -- player_card_info:PlayScore(player.winscore * rt, false, self._room.winseat) + end + + head_info:UpdateLineState(player.line_state) + --head_info._view:GetController("Oener").selectedIndex=0 + head_info:UpdatePiao(player.piao) + if head_info._view:GetChild("shengyu") ~= nil and head_info._view:GetController("shengyu") ~= nil then + -- body + + if self._room.room_config.showlength == 1 then + -- body + head_info._view:GetController("shengyu").selectedIndex = 1 + else + head_info._view:GetController("shengyu").selectedIndex = 0 + end + + -- body + head_info._view:GetChild("shengyu"):GetChild("shengyu").text = "剩" .. player.hand_count .. "张" + end + + + if player.seat == self._room.self_player.seat then + player_card_info:InitPoker(player.hand_list, false) + else + player_card_info:UpdateHandPoker(player.hand_list, false, true) + end + if player.out_card_list[1] == 0 then + player_card_info:SetOutCardInfo(nil, false) + else + player_card_info:SetOutCardInfo(player.out_card_list, false) + end + end + win_seat = self._room.winseat + self._room.winseat = nil + + local remaincards = self._room.remaincards + if self._room.game_status == 1 then + -- body + coroutine.start(function() + coroutine.wait(0.3) + + self.result_view = SuoHa_ResultView.new(self._root_view, self._room.player_list, self._room.room_id, 0, + win_seat, 0, remaincards) + self.result_view:Show() + local card_info = self._player_card_info[1] + card_info._view:GetChild("out_card_list").visible = true + end) + if remaincards then + local newremaincards = self._gamectr:ChangeCodeByFrom(remaincards, true) + + -- body + local otherpoker_list = self._view:GetChild("otherpoker_list") + + if otherpoker_list ~= nil then + -- body + otherpoker_list:RemoveChildrenToPool() + otherpoker_list.visible = true + end + + for i = #newremaincards, 1, -1 do + coroutine.start(function() + coroutine.wait(0.1 * (15 - i)) + + + local flow = newremaincards[i] % 10 + local num = (newremaincards[i] - (newremaincards[i] % 10)) / 10 + local card_n = flow * 100 + num + local poker_item = UIPackage.CreateObject("Extend_Poker_SuoHa", "poker6") + + --local code = self:ChangeCodeByTo(card_n) + -- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. card_n) + -- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. card_n .. "_2") + local card_code_obj + if DataManager.CurrenRoom.pai == 0 then + card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. card_n) + else + card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. card_n .. "_2") + end + if card_n == 310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then + -- body + card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. card_n .. "_1") + end + card_code_obj:SetScale(0.6, 0.6) + poker_item:AddChild(card_code_obj) + otherpoker_list:AddChild(poker_item) + end) + end + end + end +end + +function M:CreateRankEff() + self.rank_view = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/rank_eff") + self._view:AddChild(self.rank_view) + self.rank_view:Center() + self.rank_view:GetTransition("t0"):Play() +end + +function M:_Effect(type1, player) + -- body + + if type1 < 7 and type1 ~= 4 and type1 ~= 5 then + return + end + local eff_code = 0 + if type1 == 10 then + eff_code = 2 + elseif type1 == 11 then + eff_code = 3 + elseif type1 == 4 then + eff_code = 4 + elseif type1 == 12 then + return + elseif type1 == 5 then + eff_code = 5 + else + eff_code = 1 + end + local info = self._player_card_info[self:GetPos(player.seat)] + local pNode = info._mask_liangpai + local effect = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/eff_" .. eff_code) + -- local effect = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/eff2_1") + effect.touchable = false + effect:GetTransition("t0"):Play() + -- effect:SetXY((self._view.width - effect.width) / 2,(self._view.hight - effect.hight) / 2) + if eff_code == 3 then + self._view:AddChild(effect) + else + pNode:AddChild(effect) + end + + + if eff_code == 1 then + self.eff_feiji = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/eff_feiji") + self._view:AddChild(self.eff_feiji) + self.eff_feiji:Center() + self.eff_feiji:GetTransition("t0"):Play() + end + if eff_code == 3 then + effect:Center() + else + if self:GetPos(player.seat) == 1 then + effect.x, effect.y = 0, 24 + else + effect.x, effect.y = 24, 67 + end + end + + + -- effect:Center() + -- if eff_code ==3 then + -- coroutine.start(function() + -- coroutine.wait(1) + -- effect:Dispose() + -- end) + -- else + coroutine.start(function() + coroutine.wait(1) + if self.eff_feiji ~= nil then + self.eff_feiji:Dispose() + end + effect:Dispose() + end) + -- end +end + +-- function M:_Effect(type1, player) +-- if type1 < 7 and type1 ~= 4 then return end +-- local eff_code = 0 +-- if type1 == 10 then --顺子 +-- eff_code = 2 +-- elseif type1 == 11 then --炸 +-- eff_code = 3 +-- elseif type1 == 4 then --连对 +-- eff_code = 4 +-- else +-- eff_code = 6 +-- end +-- local info = self._player_card_info[self:GetPos(player.seat)] +-- local pNode = info._mask_liangpai +-- local effect = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/MovieClip" .. eff_code) + +-- effect.touchable = false + +-- --effect:SetXY((self._view.width - effect.width) / 2,(self._view.hight - effect.hight) / 2) +-- pNode:AddChild(effect) +-- if type1 == 10 then --顺子 +-- effect.x, effect.y = -400, -200 +-- elseif type1 == 11 then --炸 +-- effect.x, effect.y = -80, -225 +-- elseif type1 == 4 then --连对 +-- effect.x, effect.y = -400, -200 +-- else +-- effect.x, effect.y = -157, -140 +-- end +-- coroutine.start(function() +-- if type1== 10 or type1== 11 or type1== 4 then +-- -- body +-- coroutine.wait(2) +-- effect:Dispose() +-- else +-- coroutine.wait(1.2) +-- effect:Dispose() +-- end + +-- end) +-- if eff_code ==3 then +-- coroutine.start(function() +-- coroutine.wait(1) +-- effect:Dispose() +-- end) +-- else +-- coroutine.start(function() +-- coroutine.wait(2) +-- effect:Dispose() +-- end) +-- end +-- end + + +function M:UpdateRound(round) + local total_round = self._room.room_config.Times + -- self._text_round.text = string.format("%d / %d 局", round, total_round) + if not self._text_currenRound then + self._text_currenRound = self._view:GetChild('Text_CurrenRound') + end + if not self._text_maxRound then + self._text_maxRound = self._view:GetChild('Text_MaxMaxRound') + end + self._text_currenRound.text = round + self._text_maxRound.text = string.format("/%s局", total_round) +end + +function M:GetSoundFileName(type, num, isNewBout) + local fileName + if isNewBout then + if type > 6 or type == 4 then + if type == 8 or type == 9 then + type = 7 + end + fileName = tostring(type) + elseif type > 2 then + fileName = string.format("3_%d", num) + else + fileName = string.format("%d_%d", type, num) + end + else + math.randomseed(os.time()) + if type > 2 and type ~= 11 then + local r = math.random(1, 3) + fileName = "dani_" .. r + elseif type == 11 then + fileName = tostring(type) + else + fileName = string.format("%d_%d", type, num) + end + end + return fileName +end + +function M:GetSpringSeats(player_info) + local seat_list = {} + local card_max_length = self._room.room_config.Leaf + 14 + for i = 1, #player_info do + local player = player_info[i] + if #player.cards == card_max_length then + seat_list[#seat_list + 1] = player.seat + end + end + return seat_list +end + +function M:PlayCardEff(card) + if self.cor_card_eff ~= nil then + coroutine.stop(self.cor_card_eff) + end + self.cor_card_eff = nil + local cor_time = 0.1 + self.cor_card_eff = coroutine.start(function() + self._popEvent = false + local eff = self._view:GetChild("poker_eff") + local poker_obj = eff:GetChild("poker") + local poker_back = eff:GetChild("di") + poker_back.visible = false + -- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. card) + -- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. card .. "_2") + local card_code_obj + if DataManager.CurrenRoom.pai == 0 then + card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. card) + else + card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. card .. "_2") + end + if card_code_obj then + card_code_obj:SetScale(1, 1) + poker_obj:AddChild(card_code_obj) + card_code_obj.visible = true + end + + self.tween = TweenUtils.TweenFloat(0, 2340, cor_time, function(x) + poker_back.rotationY = x + poker_obj.rotationY = -180 + x + local x_1 = x % 360 + if (x_1 > 90 and x_1 < 270) then + poker_obj.visible = true + poker_back.visible = false + else + poker_obj.visible = false + poker_back.visible = true + end + end) + coroutine.wait(1) + self._popEvent = true + end) +end + +function M:ResetPoker() + -- if self._room.curren_turn_seat == self._room.self_player.seat then + -- self._player_card_info[1]:ResetPoker() + -- end + self._player_card_info[1]:ResetPoker() +end + +function M:PlaySound(sex, path) + local sex_path = ViewUtil.Sex_Chat[sex] -- 1 男 2 女 + local sound_path = string.format("extend/poker/suoha/sound/%s/%s.mp3", sex_path, path) + ViewUtil.PlaySound("SuoHa_PK", sound_path) +end + +function M:ChangeBgmMusic(bgm_index) + if bgm_index == nil then + bgm_index = self.bgm_index + else + self.bgm_index = bgm_index + end + ViewUtil.PlayMuisc("SuoHa_PK", string.format("extend/poker/suoha/sound/bgm%d.mp3", 1)) +end + +function M:OnPlayerEnter(...) + local arg = { ... } + local p = arg[1] + for i = 1, #self._room.player_list do + if self._room.self_player.seat == self._room.player_list[i].seat and self._room.self_player.self_user.account_id ~= self._room.player_list[i].self_user.account_id then + -- body + local ErrorMsgTip = UIPackage.CreateObject("Common", "Win_ConnectTip") + local _action = self._view:AddChild(ErrorMsgTip) + _action.xy = Vector2((self._view.width - _action.width) / 4, self._view.height / 4) + local text = _action:GetChild("tex_message") + local btn1 = _action:GetChild("btn_connect") + local btn2 = _action:GetChild("btn_back") + text.text = "您来晚了,座位有人,请重新进牌桌" + btn1.visible = false + btn2:Center() + btn2.y = btn2.y + 50 + btn2.onClick:Set(function() + -- body + ErrorMsgTip:Destroy() + ErrorMsgTip = nil + self._gamectr:LevelRoom(function(res) + ViewUtil.CloseModalWait() + NetResetConnectWindow.CloseNetReset() + ControllerManager.ChangeController(LoddyController) + ViewManager.ChangeView(ViewManager.View_Lobby) + end) + end) + end + end + -- if p ~= self._room.self_player and self._room.room_config.people_num <= 4 and self._room.room_config.people_num >= 3 and self._gamectr:CheckGPS() then + -- if self.distance_view then + -- self.distance_view:Destroy() + -- end + -- self.distance_view = PlayerDistanceView.new(true) + -- self.distance_view:Show() + -- end + -- local info = self._player_info[self:GetPos(p.seat)] + -- info:FillData(p) + -- info._view.visible = true + MainView.OnPlayerEnter(self, ...) +end + +function M:Destroy() + for i = 1, #self._room.player_list do + local player = self._room.player_list[i] + local card_info_i = self._player_card_info[self:GetPos(player.seat)] + + card_info_i:Destroy() + if card_info_i ~= nil and card_info_i.cor_init_poker ~= nil then + coroutine.stop(card_info_i.cor_init_poker) + end + end + PKMainView.Destroy(self) + UIPackage.RemovePackage("extend/poker/suoha/ui/Extend_Poker_SuoHa") +end + +return M diff --git a/lua_probject/extend_project/extend/poker/suoha/SuoHa_Player.lua b/lua_probject/extend_project/extend/poker/suoha/SuoHa_Player.lua new file mode 100644 index 00000000..97162c8f --- /dev/null +++ b/lua_probject/extend_project/extend/poker/suoha/SuoHa_Player.lua @@ -0,0 +1,35 @@ +--- +--- Created by 谌建军. +--- DateTime: 2017/12/13 10:42 +--- +local SuoHa_Player = { + -- 手牌列表 + hand_count = 0, + out_card_list = {}, + hand_list = {}, + isOneCard = false, -- 报单 +} + +local M = SuoHa_Player + +--- Create a new EXPlayer +function M.new() + setmetatable(M, { __index = Player }) + local self = setmetatable({}, { __index = M }) + self.hand_count = 0 + self.out_card_list = {} + self.hand_list = {} + self.isOneCard = false + return self +end + +-- 清理玩家数据 +function M:Clear() + Player.Clear(self) + self.hand_count = 0 + self.out_card_list = {} + self.hand_list = {} + self.isOneCard = false +end + +return M diff --git a/lua_probject/extend_project/extend/poker/suoha/SuoHa_PlayerBackView.lua b/lua_probject/extend_project/extend/poker/suoha/SuoHa_PlayerBackView.lua new file mode 100644 index 00000000..bc583cec --- /dev/null +++ b/lua_probject/extend_project/extend/poker/suoha/SuoHa_PlayerBackView.lua @@ -0,0 +1,440 @@ +--- +--- Created by 谌建军. +--- DateTime: 2017/12/25 13:52 +--- +local PKPlayBackView = require('main.poker.PKPlayBackView') +local SuoHa_PlayerCardInfoView = import('.SuoHa_PlayerPokerInfoView') +local SuoHa_PlayerSelfCardInfoView = import('.SuoHa_PlayerSelfPokerInfoView') +local PlayerInfoView = import('.EXPlayerInfoView') +local SuoHa_RightPanelView = import(".SuoHa_RightPanelView") +local SuoHa_ResultView = import(".SuoHa_ResultView") +local M = {} + +local SuoHa_Record_Event = { + Evt_OutCard = 'OutCard', + Evt_Pass = 'pass', + Evt_NewRound = 'newindex', + Evt_result = 'result', + Evt_Result = 'Result' +} + +local default_bg = 1 +local bg_config = { + { id = 1, url = 'extend/poker/suoha/bg/bg1', thumb = 'ui://Extend_Poker_SuoHa/table_bg1' }, + { id = 2, url = 'extend/poker/suoha/bg/bg2', thumb = 'ui://Extend_Poker_SuoHa/table_bg2' }, + { id = 3, url = 'extend/poker/suoha/bg/bg3', thumb = 'ui://Extend_Poker_SuoHa/table_bg3' } +} + +--- Create a new +function M.new() + setmetatable(M, { __index = PKPlayBackView }) + local self = setmetatable({}, { __index = M }) + self.class = 'SuoHa_PlayBackView' + self:init() + + return self +end + +function M:InitView(url) + local room = self._room + if not room.self_player then + room.self_player = room:GetPlayerBySeat(1) + end + self._gamectr = ControllerManager.GetController(GameController) + UIPackage.AddPackage('extend/poker/suoha/ui/Extend_Poker_SuoHa') + PKPlayBackView.InitView(self, 'ui://Extend_Poker_SuoHa/SuoHa_Main_' .. self._room.room_config.people_num, + default_bg, bg_config) + self._tex_round = self._view:GetChild('round') + self._player_card_info = {} + local _player_card_info = self._player_card_info + for i = 1, room.room_config.people_num do + local tem = self._view:GetChild('player_card_info_' .. i) + self._player_card_info[i] = self:NewPlayerPokerInfoView(tem, i) + end + local rightpanel = self._view:GetChild("right_panel") + if self._rightPanelView ~= nil then + self._rightPanelView:Destroy() + end + + self._rightPanelView = SuoHa_RightPanelView.new(self, rightpanel) + rightpanel:GetChild("btn_setting").onClick:Clear() + + self._player_info = {} + local _player_info = self._player_info + for i = 1, self._room.room_config.people_num do + local tem = self._view:GetChild('player_info' .. i) + _player_info[i] = PlayerInfoView.new(tem, self) + end + local list = self._room.player_list + for i = 1, #list do + local p = list[i] + local info = _player_info[self:GetPos(p.seat)] + info._view.visible = true + info:FillData(p) + end + if self._room.hpOnOff == 1 and self._room.score_times ~= 1 then + -- body + self._view:GetChild('roominfo_panel1'):GetChild('tex_beishu').text = self._room.score_times .. '倍' + else + self._view:GetChild('roominfo_panel1'):GetChild('tex_beishu').text = '' + end + self._eventmap = {} + self._cmdmap = {} + self._cmdmap[SuoHa_Record_Event.Evt_OutCard] = self.CmdOutCard + self._cmdmap[SuoHa_Record_Event.Evt_Pass] = self.CmdPass + self._cmdmap[SuoHa_Record_Event.Evt_NewRound] = self.CmdNewRound + self._cmdmap[SuoHa_Record_Event.Evt_result] = self.Cmdresult + self._cmdmap[SuoHa_Record_Event.Evt_Result] = self.CmdResult +end + +function M:NewPlayerPokerInfoView(view, index) + if index == 1 then + return SuoHa_PlayerSelfCardInfoView.new(view, self) + end + return SuoHa_PlayerCardInfoView.new(view, self) +end + +function M:FillRoomData(data) + -- print("hidezhanji 1111") + self._currentStep = 1 + local room = DataManager.CurrenRoom + local _player_card_info = self._player_card_info + local roominfo_panel = self._view:GetChild('roominfo_panel1') + + roominfo_panel:GetChild('tex_roomid').text = data.info.roomid + roominfo_panel:GetChild('tex_gametype').text = room.room_config:GetGameName() + + for i = 1, #room.player_list do + local p = room.player_list[i] + local card_info = _player_card_info[self:GetPos(p.seat)] + local head_info = self._player_info[self:GetPos(p.seat)] + + if p.total_hp then + -- print("hidezhanji 2222") + + head_info._view:GetChild('zhanji').visible = false + + if room.hpOnOff == 1 or room:checkHpNonnegative() then + head_info._view:GetChild('zhanji').visible = true + head_info._view:GetChild('text_score').text = d2ad(p.total_hp) + end + end + head_info:FillData(p) + head_info:UnmarkTuoguan() + head_info:UpdateScore() + if p.seat ~= room.self_player.seat then + card_info:UpdateHandPoker(p.hand_list, false, true) + end + head_info:UpdatePiao(p.piao) + end + + self:UpdateRound() + + self:GenerateAllStepData(data) + self:ShowStep(1) +end + +function M:ShowStep(index) + local step = self._step[index] + if step == nil then + return + end + for i = 1, #step.player_card_data do + local p = self._room:GetPlayerBySeat(i) + + local info = self._player_card_info[self:GetPos(i)] + p.hand_list = step.player_card_data[i].hand_list + p.out_card_list = step.player_card_data[i].out_card_list + p.hand_left_count = #p.hand_list + + if p.seat ~= self._room.self_player.seat then + info:UpdateHandPoker(p.hand_list, false, true) + else + info:InitPoker(p.hand_list, false) + end + end + + if step.cmd == SuoHa_Record_Event.Evt_OutCard then + local seat = step.current_out_seat + local p = self._room:GetPlayerBySeat(seat) + local info = self._player_card_info[self:GetPos(seat)] + local card = step.out_card_list + local card_list = self._gamectr:ChangeCodeByFrom(card, true) + info:SetOutCardInfo(card_list, false) + self:ClearNextSeatOutCard(seat) + end + + if step.cmd == SuoHa_Record_Event.Evt_Pass then + local seat = step.current_out_seat + local p = self._room:GetPlayerBySeat(seat) + local info = self._player_card_info[self:GetPos(seat)] + info:SetOutCardInfo(nil, true) + self:ClearNextSeatOutCard(seat) + end + if step.cmd == SuoHa_Record_Event.Evt_NewRound then + for i = 1, #self._room.player_list do + local p = self._room:GetPlayerBySeat(i) + local card_info = self._player_card_info[self:GetPos(p.seat)] + card_info:SetOutCardInfo(nil, false) + end + end + if step.cmd == SuoHa_Record_Event.Evt_result then + local result = step.result + for i = 1, #result do + local card_info = self._player_card_info[self:GetPos(result[i].seat)] + + if result[i].entrust ~= nil and result[i].entrust == true then + local head_info = self._player_info[self:GetPos(result[i].seat)] + head_info:MarkTuoguan() + end + -- head_info:UpdateScore(result[i].score) + card_info:PlayScore(result[i].score, false, step.win_seat == result[i].seat) + end + end + if step.cmd == SuoHa_Record_Event.Evt_Result then + local Result = step.Result + self.result_view = SuoHa_ResultView.new(self._root_view, Result.info, self._room.room_id, Result.type, + Result.winseat, 0, Result.remaincards) + local num = self._view:GetChildIndex(self._view:GetChild("panel_record")) + self._view:AddChildAt(self.result_view._view, num) + else + if self.result_view then + self.result_view:Dispose() + end + end +end + +function M:GenerateAllStepData(data) + local cmdList = self.cmdList + self._step = {} + local step = {} + local info = data.info + step.cmd = '' + + step.win = 0 + step.player_card_data = {} + for i = 1, #self._room.player_list do + local p = info.playerData[i] + local u = {} + u.seat = p.seat + u.hand_list = p.hand_card + u.hand_count = #u.hand_list + u.out_card_list = {} + step.player_card_data[u.seat] = u + end + self._step[#self._step + 1] = step + for i = 1, #cmdList do + local tem = cmdList[i] + self._cmdmap[tem.cmd](self, tem, i) + end +end + +function M:CmdOutCard(cmd, index) + local data = self:CopyLastStep(index) + data.cmd = cmd.cmd + data.current_out_seat = cmd.seat + local u = data.player_card_data[cmd.seat] + u.card_list = cmd.data.card + data.out_card_list = cmd.data.card_list + for i = 1, #data.out_card_list do + local out_card = data.out_card_list[i] + for j = 1, #u.hand_list do + if u.hand_list[j] == out_card then + list_remove(u.hand_list, out_card) + break + end + end + end +end + +function M:CmdNewRound(cmd, index) + local data = self:CopyLastStep(index) + data.cmd = cmd.cmd +end + +function M:CmdPass(cmd, index) + local data = self:CopyLastStep(index) + data.cmd = cmd.cmd + data.current_out_seat = cmd.seat +end + +function M:Cmdresult(cmd, index) + local data = self:CopyLastStep(index) + data.cmd = cmd.cmd + data.result = cmd.data.result + data.win_seat = cmd.seat +end + +function M:CmdResult(cmd, index) + local data = self:CopyLastStep(index) + data.cmd = cmd.cmd + data.Result = cmd.data + for i = 1, #data.Result.info do + local p = data.Result.info[i] + p.nick = self._room:GetPlayerBySeat(p.seat).self_user.nick_name + end +end + +function M:CopyLastStep(index) + local step = {} + local last_step = self._step[index] + step = membe_clone(last_step) + step.player_card_data = {} + local card_data = step.player_card_data + for i = 1, #last_step.player_card_data do + card_data[i] = {} + card_data[i].hand_list = membe_clone(last_step.player_card_data[i].hand_list) + card_data[i].out_card_list = membe_clone(last_step.player_card_data[i].out_card_list) + end + step.Result = nil + self._step[#self._step + 1] = step + return step +end + +function M:ClearNextSeatOutCard(currenOutCardSeat) + local people_num = self._room.room_config.people_num + local next_seat = currenOutCardSeat + 1 + if next_seat > people_num then + next_seat = next_seat - people_num + end + local p = self._room:GetPlayerBySeat(next_seat) + local card_info = self._player_card_info[self:GetPos(p.seat)] + card_info:SetOutCardInfo(nil, false) +end + +function M:UpdateRound() + local round = self._room.curren_round + self._tex_round.text = string.format('第 %d 局', round) +end + +function M:NextRecordPlay() + self._totalRound = tonumber(self._totalRound) + local result = PlayBackView.NextRecordPlay(self) + if not result then + return + end + self:ChangePlayState(false) + self._speed = 1 + self._playFoward = true + self:ChangeTextSpeed() + if self.result_view then + self.result_view:Dispose() + self.result_view = nil + end +end + +function M:LastRecordPlay() + local result = PlayBackView.LastRecordPlay(self) + if not result then + return + end + self:ChangePlayState(false) + self._speed = 1 + self._playFoward = true + self:ChangeTextSpeed() + if self.result_view then + self.result_view:Dispose() + self.result_view = nil + end +end + +function M:Play() + self:ChangeAlpha() + self:ChangePlayState(not self._play) + if not self._play then + return + end + if (self._currentStep == #self.cmdList and self._playFoward) or (self._currentStep == 0 and not self._playFoward) then + self._currentStep = 0 + self._speed = 1 + self._playFoward = true + self:ChangeTextSpeed() + end +end + +function M:ChangePlayState(state) + self._play = state + self:ChangeTextSpeed() + local btn_play = self._view:GetChild('panel_record'):GetChild('btn_play') + if self._play then + btn_play:GetController('state').selectedIndex = 1 + else + btn_play:GetController('state').selectedIndex = 0 + end +end + +function M:ChangeTextSpeed() + local str1 = self._play and self._speed or '' + self._view:GetChild('panel_record'):GetChild('tex_speed').text = str1 + local str2 = + not self._play and (self._playFoward and '播放暂停' or '回退暂停') or + self._playFoward and (self._speed == 1 and '播放' or '快进') or + (self._speed == 1 and '回退' or '快退') + self._view:GetChild('panel_record'):GetChild('tex_2').text = str2 + local str3 = self._play and '倍速度' or '' + self._view:GetChild('panel_record'):GetChild('tex_1').text = str3 +end + +function M:CmdLeftArrows() + self:ChangeAlpha() + self:ChangePlayState(true) + if not self._playFoward then + if self._speed < 16 then + self._speed = self._speed * 2 + else + self._speed = 1 + end + self:ChangeTextSpeed() + else + self._speed = 1 + self._playFoward = false + self:ChangeTextSpeed() + end +end + +function M:CmdRightArrows() + self:ChangeAlpha() + self:ChangePlayState(true) + if self._playFoward then + if self._speed < 16 then + self._speed = self._speed * 2 + else + self._speed = 1 + end + self:ChangeTextSpeed() + else + self._speed = 1 + self._playFoward = true + self:ChangeTextSpeed() + end +end + +function M:OnUpdate() + if self._play then + if (self._currentStep == #self.cmdList + 1 and self._playFoward) then + self:ChangePlayState(false) + ViewUtil.ErrorTip(nil, '当前已是录像结尾了,再次点击播放按钮可重新播放') + return + elseif (self._currentStep == 0 and not self._playFoward) then + self:ChangePlayState(false) + ViewUtil.ErrorTip(nil, '当前已是录像开头了,再次点击播放按钮可重新播放') + return + end + self._timer = self._timer + Time.deltaTime + if self._timer >= 1 / self._speed then + self._timer = 0 + local step = self._playFoward and 1 or -1 + self._currentStep = self._currentStep + step + if self._currentStep > 0 then + self:ShowStep(self._currentStep) + end + end + end +end + +function M:Destroy() + UpdateBeat:Remove(self.OnUpdate, self) + PlayBackView.Destroy(self) +end + +return M diff --git a/lua_probject/extend_project/extend/poker/suoha/SuoHa_PlayerPokerInfoView.lua b/lua_probject/extend_project/extend/poker/suoha/SuoHa_PlayerPokerInfoView.lua new file mode 100644 index 00000000..7baacd59 --- /dev/null +++ b/lua_probject/extend_project/extend/poker/suoha/SuoHa_PlayerPokerInfoView.lua @@ -0,0 +1,425 @@ +--- +--- Created by 谌建军. +--- DateTime: 2017/12/13 16:35 +--- +local SuoHa_PlayerPokerInfoView = { + _view = nil, + _mainView = nil, + _mask_liangpai = nil, +} + +local M = SuoHa_PlayerPokerInfoView + +function M.new(view, mainView) + local self = {} + setmetatable(self, { __index = M }) + self._view = view + self._mainView = mainView + self:init() + return self +end + +function M:init() + local view = self._view + self._gameCtr = ControllerManager.GetController(GameController) + + self.item_data = json.decode(self._view:GetChild("area_mask").text) + self.out_card_data = self.item_data["outcard_list"] + self._mask_liangpai = view:GetChild("mask_liangpai") + self.ctr_outpoker = view:GetController("output") + self.outpoker_list = view:GetChild(self.out_card_data["parent"]) + + self.hand_card_list = view:GetChild("hand_card_list") + + self.ctr_one_card = view:GetController("one_card") + self.eff_one_card = view:GetChild("one_card_eff"):GetTransition("t0") + + self.text_bomb_score = view:GetChild("Score") + self.ani_bomb_score = view:GetTransition("score") + self.ani_result_score = view:GetTransition("score_1") + + ------------------------------lingmeng------------------------ + + self._view_Out = self._view:GetChild('List_Out') + + -------------------------------------------------------------- +end + +-- function M:SetOutCardInfo(cardlist, isPass, isAnim) +-- self.outpoker_list:RemoveChildren(0, -1, true) +-- if cardlist == nil then +-- if isPass == true then +-- self.ctr_outpoker.selectedIndex = 2 +-- else +-- self.ctr_outpoker.selectedIndex = 0 +-- end +-- else +-- if isAnim then +-- if self.move_cor then +-- coroutine.stop(self.move_cor) +-- self.move_cor = nil +-- end +-- local time = 0.1 +-- for i = 1, #cardlist do +-- local poker_item = UIPackage.CreateObject("Extend_Poker_SuoHa", "poker7") +-- local code = self:ChangeCodeByTo(cardlist[i]) +-- -- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/"..code) +-- -- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code .. "_2") +-- local card_code_obj +-- -- if DataManager.CurrenRoom.pai==0 then +-- -- card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/"..code) +-- -- else +-- -- card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code .. "_2") +-- -- end +-- -- if code==310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then +-- -- -- body +-- -- card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/"..code.."_1") +-- -- end +-- if DataManager.CurrenRoom.pai == 0 then +-- if code == 310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then +-- -- body +-- card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. code .. "_1") +-- else +-- card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. code) +-- end +-- else +-- if code == 310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then +-- -- body +-- card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. code .. "_2") +-- else +-- card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code .. "_2") +-- end +-- end +-- if card_code_obj == nil then +-- card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/00") +-- end +-- poker_item:AddChild(card_code_obj) +-- --local poker = self:CreatPoker(cardlist[i],0.7) +-- self.outpoker_list:AddChild(poker_item) +-- poker_item.xy = Vector2.New(self.out_card_data["start_x"], self.out_card_data["start_y"]) +-- poker_item:TweenMove( +-- self:GetOutCardEndPokerPos(i, #cardlist, self.outpoker_list, poker_item, self.out_card_data +-- ["maxcount_x"], 1.5), time) +-- --card_code_obj +-- -- self.tween = TweenUtils.TweenFloat(1,0.7,time,function(x) +-- -- card_code_obj:SetScale(x,x) +-- -- end) +-- card_code_obj:SetScale(1.5, 1.5) +-- end +-- self.move_cor = coroutine.start(function() +-- coroutine.wait(0.1) +-- ViewUtil.PlaySound("SuoHa_PK", "extend/poker/suoha/sound/chupai.mp3") +-- end) +-- else +-- for i = 1, #cardlist do +-- local poker_item = UIPackage.CreateObject("Extend_Poker_SuoHa", "poker7") +-- local code = self:ChangeCodeByTo(cardlist[i]) +-- local card_code_obj +-- if DataManager.CurrenRoom.pai == 0 then +-- if code == 310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then +-- -- body +-- card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. code .. "_1") +-- else +-- card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. code) +-- end +-- else +-- if code == 310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then +-- -- body +-- card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. code .. "_2") +-- else +-- card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code .. "_2") +-- end +-- end +-- if card_code_obj == nil then +-- card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/00") +-- end +-- card_code_obj:SetScale(1.5, 1.5) +-- poker_item:AddChild(card_code_obj) +-- --local poker = self:CreatPoker(cardlist[i],0.7) +-- self.outpoker_list:AddChild(poker_item) +-- poker_item.xy = self:GetOutCardEndPokerPos(i, #cardlist, self.outpoker_list, poker_item, +-- self.out_card_data["maxcount_x"], 1.5) +-- end +-- end +-- --self.ctr_outpoker.selectedIndex = 1 +-- end +-- end + +function M:SetOutCardInfo(cardlist, isPass, isAnim) + self._view_Out:RemoveChildren(0, -1, true) + if cardlist == nil then + if isPass == true then + self.ctr_outpoker.selectedIndex = 2 + else + self.ctr_outpoker.selectedIndex = 0 + end + else + self.ctr_outpoker.selectedIndex = 1 + if isAnim then + if self.move_cor then + coroutine.stop(self.move_cor) + self.move_cor = nil + end + + for i = 1, #cardlist do + local poker_item = self._view_Out:AddItemFromPool() + local code = self:ChangeCodeByTo(cardlist[i]) + + self:FillPoker(poker_item, "", cardlist[i]) + end + self.move_cor = coroutine.start(function() + coroutine.wait(0.1) + + ViewUtil.PlaySound("SuoHa_PK", "extend/poker/suoha/sound/chupai.mp3") + end) + else + for i = 1, #cardlist do + local poker_item = self._view_Out:AddItemFromPool() + + local code = self:ChangeCodeByTo(cardlist[i]) + + self:FillPoker(poker_item, "", cardlist[i]) + end + end + end +end + +function M:SetOutCardBlack() + for i = 0, self.outpoker_list.numChildren - 1 do + self.outpoker_list:GetChildAt(i):GetChildAt(0):GetChildAt(0):GetChildAt(0).color = Color(0.7, 0.7, 0.7) + end +end + +-- 12 -61 --11 58 --10 55 --46 +function M:GetOffSet(cardLength) -- 15 -70 + if cardLength > 8 then + return 52 --40 + else + return -cardLength * -10 + 60 + end +end + +function M:GetOutCardEndFirstPokerPos(count, parent_com, poker_obj, max_count, scale) + local parent_width, parent_height = parent_com.width, parent_com.height + local poker_width, poker_height = poker_obj.width * scale, poker_obj.height * scale + local offset = self:GetOffSet(count) + local x, y = 0, 0 + --local length = (count - 1) * (poker_width + offset) + poker_width + --if length <= parent_width then + -- x = (parent_width - length) / 2 + -- y = (parent_height - poker_height) / 2 + --end + if count <= max_count then + local length = (count - 1) * offset + poker_width + x = (parent_width - length) / 2 + y = ((parent_height - poker_height) / 2) + end + return Vector2.New(x, y) +end + +function M:GetOutCardEndPokerPos(index, count, parent_com, poker_obj, max_count, scale) + local offset_x, offset_y = self:GetOffSet(count), -100 + local start_pos = self:GetOutCardEndFirstPokerPos(count, parent_com, poker_obj, max_count, scale) + local poker_width, poker_height = poker_obj.width * scale, poker_obj.height * scale + local parent_width, parent_height = parent_com.width, parent_com.height + local pos_x, pos_y = start_pos.x + (index - 1) * offset_x, start_pos.y + if index > max_count then + pos_x = (index - max_count - 1) * offset_x + pos_y = pos_y + poker_height + offset_y + end + + return Vector2.New(pos_x, pos_y) +end + +-- function M:PlayCardTypeEff(type1) +-- if type1 < 7 and type1 ~= 4 then return end +-- local eff_code = 0 +-- if type1 == 10 then +-- eff_code = 2 +-- elseif type1 == 11 then +-- eff_code = 3 +-- elseif type1 == 4 then +-- eff_code = 4 +-- else +-- eff_code = 1 +-- end +-- if self.cro_type_eff ~= nil then +-- coroutine.stop(self.cro_type_eff) +-- end +-- self.cro_type_eff = nil +-- self.cro_type_eff = coroutine.start(function() +-- self.type_eff_view = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/eff_"..eff_code) +-- if self.type_eff_view == nil then return end +-- self._view:AddChild(self.type_eff_view) +-- self.type_eff_view:SetXY((self._view.width - self.type_eff_view.width) / 2,self.outpoker_list.y) +-- self.type_eff_view:GetTransition("t0"):Play() +-- coroutine.wait(1.5) +-- if self.type_eff_view ~= nil then +-- self.type_eff_view:Dispose() +-- self.type_eff_view = nil +-- end +-- end) +-- end + +function M:PlayScore(score, isBomb, isWin) + if score == nil then + self.text_bomb_score.alpha = 0 + return + end + if isBomb then + self.text_bomb_score.text = score >= 0 and "+" .. score or tostring(score) + self.text_bomb_score.grayed = score < 0 + self.ani_bomb_score:Play() + else + if score < 0 then + self.text_bomb_score.text = tostring(score) + self.text_bomb_score.grayed = true + elseif score > 0 then + self.text_bomb_score.text = "+" .. score + self.text_bomb_score.grayed = false + else + local str = isWin and "+" or "-" + self.text_bomb_score.text = str .. score + self.text_bomb_score.grayed = not isWin + end + self.ani_result_score:Play() + end +end + +function M:UpdateHandPoker(cardList, isPlayAni, isMing) + if self.cor_init_poker ~= nil then + coroutine.stop(self.cor_init_poker) + end + self.cor_init_poker = nil + self.card_list = {} + self.hand_card_list:RemoveChildren(0, -1, true) + local card_length + local new_card_list + if isMing == true then + new_card_list = self._gameCtr:ChangeCodeByFrom(cardList, true) + card_length = #cardList + else + card_length = cardList + end + if isPlayAni == true then + self.cor_init_poker = coroutine.start(function() + for i = card_length, 1, -1 do + local code = isMing == true and new_card_list[i] or 0 + coroutine.wait(0.01) + local poker = self:CreatPoker1(code, 0.4) + self.hand_card_list:AddChild(poker) + end + end) + else + for i = card_length, 1, -1 do + local code = isMing == true and new_card_list[i] or 0 + local poker = self:CreatPoker1(code, 0.4) + self.hand_card_list:AddChild(poker) + end + end +end + +function M:SetRemainCardNumber(isPlay) + if isPlay then + self.ctr_one_card.selectedIndex = 1 + self.eff_one_card:Play(-1, 0, nil) + else + self.ctr_one_card.selectedIndex = 0 + end + --if self.card_number then + -- self.card_number.visible = show + -- self.card_number.text = string.format("剩余:%d",number) + --end +end + +function M:FillPoker(poker, prefix, num) + num = self:ChangeCodeByTo(num) + local suffix = num == 310 and (DataManager.CurrenRoom.pai == 0 and "_1" or "_2") or "" + num = num == 1 and "00" or num + if not poker.icon then + poker:GetChild('icon').url = string.format("ui://Extend_Poker_SuoHa/%s%s%s", prefix, num, suffix) + else + poker.icon = string.format("ui://Extend_Poker_SuoHa/%s%s%s", prefix, num, suffix) + end +end + +function M:CreatPoker1(poker, scale, bank) + local poker_item = UIPackage.CreateObject("Extend_Poker_SuoHa", "poker" .. scale * 10) + local code = self:ChangeCodeByTo(poker) + local card_code_obj + + if DataManager.CurrenRoom.pai == 0 then + if code == 310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then + -- body + card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. code .. "_1") + else + card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. code) + end + else + if code == 310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then + -- body + card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. code .. "_2") + else + card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code .. "_2") + end + end + if card_code_obj == nil or bank == 1 then + card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/00") + end + + card_code_obj:SetScale(scale, scale) + poker_item:AddChild(card_code_obj) + + return poker_item +end + +function M:CreatPoker(poker, scale, bank) + local poker_item = UIPackage.CreateObject("Extend_Poker_SuoHa", "poker" .. 12.5) + local code = self:ChangeCodeByTo(poker) + local card_code_obj + if DataManager.CurrenRoom.pai == 0 then + if code == 310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then + -- body + card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. code .. "_1") + else + card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. code) + end + else + if code == 310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then + -- body + card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. code .. "_2") + else + card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code .. "_2") + end + end + if card_code_obj == nil or bank == 1 then + card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/00") + end + card_code_obj:SetScale(scale, scale) + poker_item:AddChild(card_code_obj) + + return poker_item +end + +function M:ChangeCodeByTo(card) + local flower = card % 10 + local number = math.floor(card / 10) + if number == 15 then + number = 2 + end + return flower * 100 + number +end + +function M:Clear() + self:PlayScore(nil) + self:SetRemainCardNumber(false) + self:SetOutCardInfo(nil, false) + self.hand_card_list:RemoveChildren(0, -1, true) + self._mask_liangpai:RemoveChildren(0, -1, true) + self._view_Out:RemoveChildren(0, -1, true) +end + +function M:Destroy() +end + +return M diff --git a/lua_probject/extend_project/extend/poker/suoha/SuoHa_PlayerSelfPokerInfoView.lua b/lua_probject/extend_project/extend/poker/suoha/SuoHa_PlayerSelfPokerInfoView.lua new file mode 100644 index 00000000..29c812a3 --- /dev/null +++ b/lua_probject/extend_project/extend/poker/suoha/SuoHa_PlayerSelfPokerInfoView.lua @@ -0,0 +1,1640 @@ +--- +--- Created by 谌建军. +--- DateTime: 2017/12/13 17:04 +--- +local SuoHa_PlayerPokerInfoView = import('.SuoHa_PlayerPokerInfoView') +local SuoHa_CardType = import('.SuoHa_CardType') + +local CardView = { + btn_card = nil, + -- 牌号码 (大小) + card_code_number = 0, + -- 牌号码 (花色) + card_code_flower = 0, + -- 索引 + index = 0 +} + +local function NewCardView(card, cardcodenum, cardcodeflower) + local self = {} + setmetatable(self, { __index = CardView }) + self.btn_card = card + self.card_code_number = cardcodenum + self.card_code_flower = cardcodeflower + self.card_isTouchable = 0 + return self +end + +local function tableSortNumber(a, b) + return a.card_code_number > b.card_code_number +end + +local SuoHa_PlayerSelfPokerInfoView = { + _view = nil, + _mainView = nil, + _mask_liangpai = nil +} + +local M = SuoHa_PlayerSelfPokerInfoView + +function M.new(view, mainView) + setmetatable(M, { __index = SuoHa_PlayerPokerInfoView }) + local self = setmetatable({}, { __index = M }) + self._view = view + self._mainView = mainView + self.gameCtr = ControllerManager.GetController(GameController) + self:init() + return self +end + +function M:init() + self.Reset = false + self.ctr_outpoker = self._view:GetController('output') + self.outpoker_list = self._view:GetChild('out_card_list') + self.item_data = json.decode(self._view:GetChild('area_mask').text) + self.out_card_data = self.item_data['outcard_list'] + self.hand_card_list = self._view:GetChild('hand_card_list') + self.ctr_hand_card_pos = self._view:GetChild('hand_card_list') + self._mask_liangpai = self._view:GetChild('mask_liangpai') + self.card_width = 171 + self.cards_view = self._view:GetChild('hand_poker_c') + self.card_list = {} + self.out_card_list = {} + self.touchMoveFun = handler(self, self.TouchMoving) + self.ctr_put_card_option = self._view:GetController('out_card_option') + self.ctr_piao = self._view:GetController('piao') + self.ctr_piao_value = self._view:GetController('piao_value') + self.ctr_put_error = self._view:GetController('put_error') + self.put_error_text = self._view:GetChild('put_error') + + self.ctr_select_card_type = self._view:GetController('select_card_type') + self.select_card_type_view = self._view:GetChild('choose_type') + + self.text_bomb_score = self._view:GetChild('Score') + self.ani_bomb_score = self._view:GetTransition('score') + self.ani_result_score = self._view:GetTransition('score_1') + + self.send_card = {} + self.tips_click_count = 0 + self:BtnEvent() + + ------------------------------lingmeng------------------------ + self.touchMoveEndFun = handler(self, self.TouchMoveEnd) + + self._view_handCard = self._view:GetChild('List_HandCard') + self._view_Out = self._view:GetChild('List_Out') + + -------------------------------------------------------------- +end + +-- function M:InitPoker(pokerList, isPlayAni, open) +-- -- self.zhizhanctr_select=0 +-- -- self.zhizhantype=0 +-- -- self.zhizhannumber=0 +-- -- self.zhizhanlength=0 +-- -- self.zhizhanmustPutMaxCard=0 +-- -- self.zhizhanplay=0 +-- -- self.zhizhanzdts=0 +-- local cs = 1.25 +-- -- print("==========================DataManager.CurrenRoom.cardsize", DataManager.CurrenRoom.cardsize) +-- if DataManager.CurrenRoom.cardsize == 0 then +-- cs = 2.5 +-- elseif DataManager.CurrenRoom.cardsize == 1 then +-- cs = 2 +-- elseif DataManager.CurrenRoom.cardsize == 2 then +-- cs = 1.75 +-- end +-- print("lingmengInitPoker", pokerList, isPlayAni, open) +-- if self.cor_init_poker ~= nil then +-- coroutine.stop(self.cor_init_poker) +-- end +-- -- -- print(vardump(self.card_list)) +-- self.cor_init_poker = nil +-- self.card_list = {} + +-- self.cards_view:RemoveChildren(0, -1, true) +-- if isPlayAni == true then +-- self.cor_init_poker = +-- coroutine.start( +-- function() +-- self._mainView._popEvent = false +-- if self._mainView._rightPanelView._settingView ~= nil then +-- self._mainView._rightPanelView._settingView:SetBtnDismissRoomEnable(false) +-- end +-- table.sort(pokerList) + +-- for i = 1, #pokerList do +-- local card_number_code = self:ChangeOneCodeByFrom(pokerList[i]) +-- local card_flower_code = pokerList[i] +-- local btn_card = self:CreatPoker(card_number_code, cs, open) +-- local x, y = self._view.width / 2 + 100, -200 +-- btn_card:SetXY(x, y) +-- btn_card.alpha = 0 +-- btn_card.touchable = false +-- -- coroutine.wait(0.05) +-- self.cards_view:AddChild(btn_card) +-- local card_view = NewCardView(btn_card, card_number_code, card_flower_code) +-- self.card_list[#self.card_list + 1] = card_view + +-- table.sort(self.card_list, tableSortNumber) + +-- if i == #pokerList then +-- for j = 1, #self.card_list do +-- local card = self.card_list[j] +-- card.btn_card.touchable = true +-- if open ~= 1 then +-- -- body +-- self:AddCardMoveEvent(card) +-- end +-- end +-- end +-- end +-- for j = #self.card_list, 1, -1 do +-- -- ViewUtil.PlaySound('SuoHa_PK', 'extend/poker/suoha/sound/mopai.mp3') +-- local card_view = self.card_list[j] +-- card_view.index = j +-- self.cards_view:SetChildIndex(card_view.btn_card, card_view.index - 1) + +-- card_view.btn_card:TweenMove(self:GetHandCardPos(j, #self.card_list), 0.10) +-- DSTween.To( +-- 0.7, +-- 1, +-- 0.1, +-- function(value) +-- card_view.btn_card:SetScale(value, value) +-- end +-- ) +-- DSTween.To( +-- 0.7, +-- 1, +-- 0.1, +-- function(value) +-- card_view.btn_card.alpha = value +-- end +-- ) +-- card_view.btn_card.alpha = 1 +-- end + +-- self._mainView._popEvent = true +-- if self._mainView._rightPanelView._settingView ~= nil then +-- self._mainView._rightPanelView._settingView:SetBtnDismissRoomEnable(true) +-- end +-- end +-- ) +-- else +-- for i = 1, #pokerList do +-- local card_number_code = self:ChangeOneCodeByFrom(pokerList[i]) +-- local card_flower_code = pokerList[i] +-- local btn_card = self:CreatPoker(card_number_code, cs, open) +-- self.cards_view:AddChild(btn_card) +-- local card_view = NewCardView(btn_card, card_number_code, card_flower_code) +-- self.card_list[#self.card_list + 1] = card_view +-- end +-- table.sort(self.card_list, tableSortNumber) +-- for i = 1, #self.card_list do +-- local card = self.card_list[i] +-- card.index = i +-- self.cards_view:SetChildIndex(card.btn_card, card.index - 1) +-- card.btn_card.xy = self:GetHandCardPos(i, #self.card_list) +-- if open ~= 1 then +-- -- body +-- self:AddCardMoveEvent(card) +-- end +-- end +-- end +-- end + +function M:InitPoker(pokerList, isPlayAni, open) + if self.cor_init_poker ~= nil then + coroutine.stop(self.cor_init_poker) + end + -- -- print(vardump(self.card_list)) + self.cor_init_poker = nil + self.card_list = {} + + self._view_handCard:RemoveChildren(0, -1, true) + if isPlayAni == true then + self.cor_init_poker = + coroutine.start( + function() + self._mainView._popEvent = false + if self._mainView._rightPanelView._settingView ~= nil then + self._mainView._rightPanelView._settingView:SetBtnDismissRoomEnable(false) + end + table.sort(pokerList) + table.sort(self.card_list, tableSortNumber) + for i = #pokerList, 1, -1 do + local card_number_code = self:ChangeOneCodeByFrom(pokerList[i]) + local card_flower_code = pokerList[i] + -- local btn_card = self:CreatPoker(card_number_code, cs, open) + local btn_card = self._view_handCard:AddItemFromPool() + self:FillPoker(btn_card, "", card_number_code) + -- local x, y = self._view.width / 2 + 100, -200 + -- btn_card:SetXY(x, y) + btn_card.alpha = 0 + btn_card.touchable = false + -- coroutine.wait(0.05) + -- self.cards_view:AddChild(btn_card) + local card_view = NewCardView(btn_card, card_number_code, card_flower_code) + self.card_list[#self.card_list + 1] = card_view + + self:AddTouchMoveEvent(self._view_handCard) + + if i == #pokerList then + for j = 1, #self.card_list do + local card = self.card_list[j] + card.btn_card.touchable = true + if open ~= 1 then + -- body + self:AddCardTouchEvent(card) + end + end + end + end + for j = #self.card_list, 1, -1 do + -- ViewUtil.PlaySound('SuoHa_PK', 'extend/poker/suoha/sound/mopai.mp3') + local card_view = self.card_list[j] + card_view.index = j + -- self.cards_view:SetChildIndex(card_view.btn_card, card_view.index - 1) + + card_view.btn_card:TweenMove(self:GetHandCardPos(j, #self.card_list), 0.10) + DSTween.To( + 0.7, + 1, + 0.1, + function(value) + card_view.btn_card:SetScale(value, value) + end + ) + DSTween.To( + 0.7, + 1, + 0.1, + function(value) + card_view.btn_card.alpha = value + end + ) + card_view.btn_card.alpha = 1 + end + + self._mainView._popEvent = true + if self._mainView._rightPanelView._settingView ~= nil then + self._mainView._rightPanelView._settingView:SetBtnDismissRoomEnable(true) + end + end + ) + else + for i = #pokerList, 1, -1 do + local card_number_code = self:ChangeOneCodeByFrom(pokerList[i]) + local card_flower_code = pokerList[i] + local btn_card = self._view_handCard:AddItemFromPool() + self:FillPoker(btn_card, "", card_number_code) + -- self.cards_view:AddChild(btn_card) + local card_view = NewCardView(btn_card, card_number_code, card_flower_code) + self.card_list[#self.card_list + 1] = card_view + end + table.sort(self.card_list, tableSortNumber) + self:AddTouchMoveEvent(self._view_handCard) + for i = 1, #self.card_list do + local card = self.card_list[i] + -- card.index = i + -- self.cards_view:SetChildIndex(card.btn_card, card.index - 1) + -- card.btn_card.xy = self:GetHandCardPos(i, #self.card_list) + if open ~= 1 then + -- body + self:AddCardTouchEvent(card) + end + end + end +end + +function M:updatePoker() + local templist = {} + for i = 1, #self.card_list do + templist[#templist + 1] = self.card_list[i].card_code_flower + end + self:InitPoker(templist, false, 0) +end + +-- function M:AddCardMoveEvent(card) +-- local send_card = {} + +-- card.btn_card.onTouchBegin:Set( +-- function(context) +-- self.send_card = {} +-- if card.btn_card.touchable == false then +-- return +-- end +-- local fristCard = self._view_handCard:GetChildAt(0) +-- local CardWidth = fristCard.width +-- local columnGap = self._view_handCard.columnGap +-- local oneCardWidth = CardWidth - columnGap +-- local xy = fristCard:GlobalToLocal(Vector2.New(context.inputEvent.x, context.inputEvent.y)) +-- -- if xy.y > -21 and xy.y < 316 then +-- self.touchBegin = xy +-- Stage.inst.onTouchMove:Add(self.touchMoveFun) +-- --Stage.inst.onClick:Add(self.touchMoveFun) +-- card.btn_card.onTouchEnd:Set( +-- function(context) +-- local downCards = #self.card_list +-- local xy = fristCard:GlobalToLocal(Vector2.New(context.inputEvent.x, context.inputEvent.y)) +-- Stage.inst.onTouchMove:Remove(self.touchMoveFun) +-- --Stage.inst.onClick:onTouchMove(self.touchMoveFun) +-- -- if xy.y > -21 and xy.y < 316 then +-- local max_x +-- local min_x +-- if xy.x - self.touchBegin.x > 0 then +-- max_x = xy.x +-- min_x = self.touchBegin.x +-- else +-- max_x = self.touchBegin.x +-- min_x = xy.x +-- end + +-- for k = 1, #self.card_list do +-- local card = self.card_list[k] +-- if not card.btn_card.selected then +-- downCards = downCards - 1 +-- end +-- -- for i = 1, #self.card_list do +-- -- local card = self.card_list[i] +-- -- if card.btn_card.selected then +-- -- send_card[#send_card + 1] = card.card_code_flower +-- -- self.send_card[#self.send_card + 1] = card +-- -- end +-- -- end +-- if card.btn_card.touchable == true then +-- send_card[#send_card + 1] = card + +-- self:SetBtnCardColor(card, 0) +-- -- if k == #self.card_list then +-- -- if +-- -- card.btn_card.x + self.card_width > min_x and card.btn_card.x < max_x and +-- -- card.card_isTouchable == 0 +-- -- then +-- -- self:UpdateCardMove(card.btn_card, not card.btn_card.selected, false) +-- -- --ViewUtil.PlaySound("SuoHa_PK", "extend/poker/paodekuai/sound/click.mp3") +-- -- end +-- -- else +-- -- if +-- -- card.btn_card.x + +-- -- (self.card_width + self:GetHandCardOffset(#self.card_list)) > +-- -- min_x and +-- -- card.btn_card.x < max_x and +-- -- card.card_isTouchable == 0 +-- -- then +-- -- self:UpdateCardMove(card.btn_card, not card.btn_card.selected, false) +-- -- --ViewUtil.PlaySound("SuoHa_PK", "extend/poker/paodekuai/sound/click.mp3") +-- -- end +-- -- end +-- if +-- (card.btn_card.x + oneCardWidth > min_x or (k == #self.card_list and card.btn_card.x + CardWidth > min_x)) +-- and card.btn_card.x < max_x and card.card_isTouchable == 0 +-- then +-- self:UpdateCardMove(card.btn_card, not card.btn_card.selected, false) +-- --ViewUtil.PlaySound("SuoHa_PK", "extend/poker/paodekuai/sound/click.mp3") +-- end +-- end +-- end + +-- ViewUtil.PlaySound('SuoHa_PK', 'extend/poker/suoha/sound/click.mp3') + +-- Stage.inst:ResetInputState() +-- card.btn_card.onTouchEnd:Set(nil) + +-- if downCards == 0 then +-- self:zhizhanxuanpai() +-- end +-- end +-- ) +-- -- else +-- -- local button = card.btn_card +-- -- button.onChanged:Add( +-- -- function() +-- -- -- body +-- -- if card.btn_card.selected == true then +-- -- self:UpdateCardMove(card.btn_card, not card.btn_card.selected, false) +-- -- else +-- -- self:UpdateCardMove(card.btn_card, card.btn_card.selected, false) +-- -- end +-- -- end +-- -- ) +-- -- end +-- end +-- ) +-- end + +function M:AddTouchMoveEvent(list) + local send_card = {} + + list.onTouchBegin:Set( + function(context) + self.send_card = {} + if list.touchable == false then + return + end + local fristCard = self._view_handCard:GetChildAt(0) + local CardWidth = fristCard.width + local columnGap = self._view_handCard.columnGap + local oneCardWidth = CardWidth - columnGap + local xy = fristCard:GlobalToLocal(Vector2.New(context.inputEvent.x, context.inputEvent.y)) + -- if xy.y > -21 and xy.y < 316 then + self.touchBegin = xy + Stage.inst.onTouchMove:Add(self.touchMoveFun) + Stage.inst.onTouchEnd:Add(self.touchMoveEndFun) + --Stage.inst.onClick:Add(self.touchMoveFun) + -- else + -- local button = card.btn_card + -- button.onChanged:Add( + -- function() + -- -- body + -- if card.btn_card.selected == true then + -- self:UpdateCardMove(card.btn_card, not card.btn_card.selected, false) + -- else + -- self:UpdateCardMove(card.btn_card, card.btn_card.selected, false) + -- end + -- end + -- ) + -- end + end + ) +end + +function M:AddCardTouchEvent(card) + card.btn_card.onTouchBegin:Set( + function(context) + if card.btn_card.touchable == false then + return + end + self:SetBtnCardColor(card, 1) + end + ) +end + +-- function M:zhizhanxuanpai() --智障选牌 +-- print("lingmengxuan", #self.send_card) +-- -- body +-- local temp_send_card = {} +-- for i = 1, #self.send_card do +-- if self.send_card[i] ~= self.send_card[i - 1] then +-- -- body +-- temp_send_card[#temp_send_card + 1] = self.send_card[i] +-- end +-- end + +-- local card_map, max_key = self:GetCardMapAndMaxKey(temp_send_card) + +-- list_type1, touch_type1 = self:CheckPairs(card_map, 0, 8) + +-- list_type2, touch_type2 = self:CheckPlane(card_map, 0, 6, 0) +-- list_bomb, touch_bomb = self:CheckBomb(card_map, 0, 4) + +-- local list_type, touch_type = self:CheckOnes(card_map, 0, 11) +-- for i = 5, 11 do +-- local list_temp, touch_temp = self:CheckOnes(card_map, 0, i) +-- if list_temp[1] ~= nil then +-- -- body +-- list_type = list_temp +-- end +-- end +-- local temp_list = list_type[1] +-- local temp_list1 = list_type1[1] +-- local temp_list2 = list_type2[1] +-- local temp_bomb = list_bomb[1] +-- if self.xunpai == nil then +-- -- body +-- self.xunpai = {} +-- end + +-- -- if temp_list ~= nil and temp_list1 == nil and temp_list2 == nil and temp_bomb == nil and #temp_list > #self.xunpai then +-- if temp_list ~= nil and temp_list1 == nil and temp_list2 == nil and temp_bomb == nil then +-- -- for i = 1, #self.send_card do +-- for i = 1, #self.card_list do +-- self:UpdateCardMove(self.card_list[i].btn_card, false, false) +-- end +-- for i = 1, #self.send_card do +-- for j = 1, #temp_list do +-- if self.send_card[i] == temp_list[j] then +-- -- body +-- self:UpdateCardMove(self.send_card[i].btn_card, true, false) +-- end +-- end +-- end +-- self.xunpai = temp_list +-- else +-- self.xunpai = {} +-- end +-- end +function M:zhizhanxuanpai() --智障选牌 + -- body + local temp_send_card = {} + for i = 1, #self.send_card do + if self.send_card[i] ~= self.send_card[i - 1] then + -- body + temp_send_card[#temp_send_card + 1] = self.send_card[i] + end + end + + local card_map, max_key = self:GetCardMapAndMaxKey(temp_send_card) + local list_ones = self:CheckOnes(card_map) + + if list_ones ~= nil and #list_ones > 0 then + for i = 1, #self.card_list do + self:UpdateCardMove(self.card_list[i].btn_card, false, false) + end + for i = 1, #self.send_card do + for j = 1, #list_ones do + if self.send_card[i] == list_ones[j][1] then + -- body + self:UpdateCardMove(self.send_card[i].btn_card, true, false) + end + end + end + else + end +end + +-- function M:TouchMoving(context) +-- if self.cards_view == nil then +-- return +-- end +-- local send_card1 = {} +-- local xy = self.cards_view:GlobalToLocal(Vector2.New(context.inputEvent.x, context.inputEvent.y)) +-- self.isTouching = true +-- if xy.x - self.touchBegin.x > 0 then -- 往右边滑 +-- local max_x = xy.x +-- local min_x = self.touchBegin.x +-- for i = 1, #self.card_list do +-- local card = self.card_list[i] +-- if card.btn_card.touchable == false or card.card_isTouchable == 1 then +-- else +-- if +-- card.btn_card.x + (self.card_width + self:GetHandCardOffset(#self.card_list)) > min_x and +-- card.btn_card.x < max_x +-- then +-- printlog("cccccccccccccc22222222222222") +-- self:SetBtnCardColor(card, 0.8) +-- if #send_card1 == 0 then +-- -- body +-- send_card1[1] = card +-- end +-- for i = 1, #send_card1 do +-- if send_card1[i] ~= card then +-- -- body +-- send_card1[#send_card1 + 1] = card +-- end +-- end +-- else +-- -- self:UpdateCardMove(card.btn_card, not card.btn_card.selected, false) +-- -- card.card_isTouchable = 1 +-- -- ViewUtil.PlaySound("SuoHa_PK", "extend/poker/paodekuai/sound/click.mp3") +-- self:SetBtnCardColor(card, 1) +-- end +-- end +-- end +-- elseif xy.x - self.touchBegin.x < 0 then -- 左边滑 +-- local max_x = self.touchBegin.x +-- local min_x = xy.x +-- for i = 1, #self.card_list do +-- local card = self.card_list[i] +-- if card.btn_card.touchable == false or card.card_isTouchable == 1 then +-- else +-- if +-- card.btn_card.x + (self.card_width + self:GetHandCardOffset(#self.card_list)) > min_x and +-- card.btn_card.x < max_x +-- then +-- -- self:UpdateCardMove(card.btn_card, not card.btn_card.selected, false) +-- -- card.card_isTouchable = 1 +-- -- ViewUtil.PlaySound("SuoHa_PK", "extend/poker/paodekuai/sound/click.mp3") +-- self:SetBtnCardColor(card, 0.8) +-- if #send_card1 == 0 then +-- -- body +-- send_card1[1] = card +-- end +-- for i = 1, #send_card1 do +-- if send_card1[i] ~= card then +-- -- body +-- send_card1[#send_card1 + 1] = card +-- end +-- end +-- else +-- self:SetBtnCardColor(card, 1) +-- end +-- end +-- end +-- end +-- ---- print(vardump(send_card1)) +-- -- local send_card = {} +-- -- self.send_card = {} +-- -- for i = 1, #self.card_list do +-- -- local card = self.card_list[i] +-- -- if card.btn_card.selected then +-- -- send_card[#send_card + 1] = card.card_code_flower +-- -- self.send_card[#self.send_card + 1] = card +-- -- end +-- -- end +-- self.send_card = send_card1 +-- end + +function M:TouchMoving(context) + if self._view_handCard == nil then + return + end + local send_card1 = {} + local fristCard = self._view_handCard:GetChildAt(0) + local CardWidth = fristCard.width + local columnGap = self._view_handCard.columnGap + local oneCardWidth = CardWidth + columnGap + local xy = fristCard:GlobalToLocal(Vector2.New(context.inputEvent.x, context.inputEvent.y)) + self.isTouching = true + local max_x + local min_x + if xy.x - self.touchBegin.x > 0 then -- 往右边滑 + max_x = xy.x + min_x = self.touchBegin.x + -- elseif xy.x - self.touchBegin.x < 0 then -- 左边滑 + else + max_x = self.touchBegin.x + min_x = xy.x + end + for i = 1, #self.card_list do + local card = self.card_list[i] + if card.btn_card.touchable == false or card.card_isTouchable == 1 then + else + if + (card.btn_card.x + oneCardWidth > min_x or (i == #self.card_list and card.btn_card.x + CardWidth > min_x)) + and card.btn_card.x < max_x + then + self:SetBtnCardColor(card, 1) + if #send_card1 == 0 then + send_card1[1] = card + end + if send_card1[#send_card1] ~= card then + send_card1[#send_card1 + 1] = card + end + else + self:SetBtnCardColor(card, 0) + end + end + end + self.send_card = send_card1 +end + +function M:TouchMoveEnd(context) + local send_card = {} + + local fristCard = self._view_handCard:GetChildAt(0) + local CardWidth = fristCard.width + local columnGap = self._view_handCard.columnGap + local oneCardWidth = CardWidth + columnGap + local xy = fristCard:GlobalToLocal(Vector2.New(context.inputEvent.x, context.inputEvent.y)) + local downCards = #self.card_list + Stage.inst.onTouchMove:Remove(self.touchMoveFun) + Stage.inst.onTouchEnd:Remove(self.touchMoveEndFun) + + local max_x + local min_x + if xy.x - self.touchBegin.x > 0 then + max_x = xy.x + min_x = self.touchBegin.x + else + max_x = self.touchBegin.x + min_x = xy.x + end + + for k = 1, #self.card_list do + local card = self.card_list[k] + if not card.btn_card.selected then + downCards = downCards - 1 + end + if card.btn_card.touchable == false or card.card_isTouchable == 1 then + else + send_card[#send_card + 1] = card + + self:SetBtnCardColor(card, 0) + if + (card.btn_card.x + oneCardWidth > min_x or (k == #self.card_list and card.btn_card.x + CardWidth > min_x)) + and card.btn_card.x < max_x + then + self:UpdateCardMove(card.btn_card, not card.btn_card.selected, false) + --ViewUtil.PlaySound("SuoHa_PK", "extend/poker/paodekuai/sound/click.mp3") + end + end + end + + ViewUtil.PlaySound('SuoHa_PK', 'extend/poker/suoha/sound/click.mp3') + + Stage.inst:ResetInputState() + + if downCards == 0 then + self:zhizhanxuanpai() + end +end + +-- function M:SetBtnCardColor(card, num) +-- if +-- card.btn_card:GetChildAt(0) ~= nil and card.btn_card:GetChildAt(0):GetChildAt(0) ~= nil and +-- card.btn_card:GetChildAt(0):GetChildAt(0):GetChildAt(0) ~= nil +-- then +-- -- body +-- card.btn_card:GetChildAt(0):GetChildAt(0):GetChildAt(0).color = Color(num, num, num) +-- end + +-- --if card.card_code_flower < 500 then +-- -- card.btn_card:GetChildAt(0):GetChildAt(2).color = Color(num,num,num) +-- -- card.btn_card:GetChildAt(0):GetChildAt(3).color = Color(num,num,num) +-- --end +-- end +function M:SetBtnCardColor(card, num) + card.btn_card:GetController('choose').selectedIndex = num +end + +function M:ShowPiao(piao) + self.ctr_piao.selectedIndex = piao +end + +function M:HidePiao() + self.ctr_piao.selectedIndex = 0 +end + +function M:ShowOutCardOption(ctr_select, type, number, length, mustPutMaxCard, play, zdts) + --for i = 1, #self.out_card_list do + -- local card = self.out_card_list[i] + -- self.cards_view:RemoveChild(card.btn_card,true) + --end + --self.out_card_list = {} + + -- self.zhizhanctr_select=ctr_select + -- self.zhizhantype=type + -- self.zhizhannumber=number + -- self.zhizhanlength=length + -- self.zhizhanmustPutMaxCard=mustPutMaxCard + -- self.zhizhanplay=play + -- self.zhizhanzdts=zdts + self.tips_click_count = 0 + self.send_card = {} + self.tips_card_list = self:GetCardTips(type, number, length, mustPutMaxCard) + + if #self.tips_card_list >= 1 then + -- body + self:UpdateHandCardsColor() + end + -- + -- 自动提示 + -- if #self.tips_card_list ~= 0 and play~=0 and mustPutMaxCard==false and zdts==1 then + -- local index = self.tips_click_count % #self.tips_card_list + 1 + -- self:ShowTipsCard(index) + -- self.tips_click_count = self.tips_click_count + 1 + -- end + if #self.tips_card_list == 2 and self.tips_card_list[2][1].index == self.tips_card_list[1][1].index then + if #self.tips_card_list[2] == #self.tips_card_list[1] then + for i = 1, #self.tips_card_list[2] do + if self.tips_card_list[2][i].index == self.tips_card_list[1][i].index then + self:ShowTipsCard(1) + end + end + end + elseif #self.tips_card_list == 1 then + self:ShowTipsCard(1) + end + if mustPutMaxCard and play ~= 0 and zdts == 1 then + -- body + self:ShowTipsCard(#self.tips_card_list) + end + self.ctr_put_card_option.selectedIndex = ctr_select +end + +-- function M:SetOutCardInfo(cardlist, isPass, isAnim) +-- self.ctr_put_card_option.selectedIndex = 0 +-- for i = 1, #self.out_card_list do +-- local card = self.out_card_list[i] +-- self.cards_view:RemoveChild(card, true) +-- end +-- self.out_card_list = {} +-- if cardlist ~= nil then +-- -- todo +-- self:SetOutCardList(cardlist, isAnim) +-- else +-- if isPass == true then +-- self.ctr_outpoker.selectedIndex = 2 +-- for i = 1, #self.card_list do +-- local card_view = self.card_list[i] +-- card_view.btn_card.touchable = true +-- self:UpdateCardMove(card_view.btn_card, false, false) +-- self:SetBtnCardColor(card_view, 0) +-- end +-- else +-- self.ctr_outpoker.selectedIndex = 0 +-- end +-- end +-- end + +function M:SetOutCardBlack() + for i = 1, #self.out_card_list do + local card = self.out_card_list[i] + if card and card:GetChildAt(0) and card:GetChildAt(0):GetChildAt(0) and card:GetChildAt(0):GetChildAt(0):GetChildAt(0) then + card:GetChildAt(0):GetChildAt(0):GetChildAt(0).color = Color(0.7, 0.7, 0.7) + end + end +end + +function M:SetOutCardList(cardlist, isAnim) + local pos_y = -320 + if isAnim then + -- self.zhizhanctr_select=0 + -- self.zhizhantype=0 + -- self.zhizhannumber=0 + -- self.zhizhanlength=0 + -- self.zhizhanmustPutMaxCard=0 + -- self.zhizhanplay=0 + -- self.zhizhanzdts=0 + if self.move_cor then + coroutine.stop(self.move_cor) + self.move_cor = nil + end + local time = 0.1 + for i = 1, #cardlist do + local card_code_number = cardlist[i] + for j = 1, #self.card_list do + local card = self.card_list[j] + if card_code_number == card.card_code_number then + card.btn_card.onTouchBegin:Set(nil) + self.out_card_list[#self.out_card_list + 1] = card.btn_card + list_remove(self.card_list, card) + -- todo 出牌动画 + local pos = + self:GetOutCardEndPokerPos( + i, + #cardlist, + self.cards_view, + card.btn_card, + self.out_card_data['maxcount_x'], + 1.5 + ) + card.btn_card:TweenMove(Vector2.New(pos.x, pos_y), time) + -- self.tween = TweenUtils.TweenFloat(1, 0.7, time, function(x) + -- card.btn_card:GetChildAt(0):SetScale(x, x) + -- end) + card.btn_card:GetChildAt(0):SetScale(1.5, 1.5) + break + end + end + end + self.move_cor = + coroutine.start( + function() + coroutine.wait(0.05) + for i = 1, #self.out_card_list do + local card = self.out_card_list[i] + self.cards_view:SetChildIndex(card, i - 1) + end + coroutine.wait(0.1) + ViewUtil.PlaySound('SuoHa_PK', 'extend/poker/suoha/sound/chupai.mp3') + end + ) + else + for i = 1, #cardlist do + local poker_item = UIPackage.CreateObject('Extend_Poker_SuoHa', 'poker7') + local code = self:ChangeCodeByTo(cardlist[i]) + -- local card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. code) + local card_code_obj + -- if DataManager.CurrenRoom.pai==0 then + -- card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/"..code) + -- else + -- card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code .. "_2") + -- end + -- if code == 310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then + -- -- body + -- card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. code .. "_1") + -- end + if DataManager.CurrenRoom.pai == 0 then + if code == 310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then + -- body + card_code_obj = UIPackage.CreateObjectFromURL('ui://Extend_Poker_SuoHa/' .. code .. '_1') + else + card_code_obj = UIPackage.CreateObjectFromURL('ui://Extend_Poker_SuoHa/' .. code) + end + else + if code == 310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then + -- body + card_code_obj = UIPackage.CreateObjectFromURL('ui://Extend_Poker_SuoHa/' .. code .. '_2') + else + card_code_obj = UIPackage.CreateObjectFromURL('ui://Main_Poker/' .. code .. '_2') + end + end + if card_code_obj == nil then + card_code_obj = UIPackage.CreateObjectFromURL('ui://Main_Poker/00') + end + card_code_obj:SetScale(1.5, 1.5) + poker_item:AddChild(card_code_obj) + --local poker = self:CreatPoker(cardlist[i],0.7) + self.cards_view:AddChild(poker_item) + local pos = + self:GetOutCardEndPokerPos( + i, + #cardlist, + self.cards_view, + poker_item, + self.out_card_data['maxcount_x'], + 1.5 + ) + poker_item.xy = Vector2.New(pos.x, pos_y) + self.out_card_list[#self.out_card_list + 1] = poker_item + end + end +end + +-- function M:DeleteHandCards(cardlist) +-- for i = 1, #cardlist do +-- local card_code_number = cardlist[i] +-- for j = 1, #self.card_list do +-- local card = self.card_list[j] +-- if card_code_number == card.card_code_number then +-- --self.out_card_list[#self.out_card_list + 1] = card +-- list_remove(self.card_list, card) +-- -- todo 出牌动画 +-- self.cards_view:RemoveChild(card.btn_card, true) +-- break +-- end +-- end +-- end +-- self:UpdateHandCardsPos() +-- end +function M:DeleteHandCards(cardlist) + self.ctr_put_card_option.selectedIndex = 0 + for i = 1, #cardlist do + local card_code_number = cardlist[i] + for j = 1, #self.card_list do + local card = self.card_list[j] + if card_code_number == card.card_code_number then + list_remove(self.card_list, card) + self._view_handCard:RemoveChild(card.btn_card, true) + break + end + end + end + self:UpdateHandCardsPos() +end + +function M:UpdateHandCardsPos() + for i = 1, #self.card_list do + local card_view = self.card_list[i] + card_view.index = i + card_view.btn_card.touchable = true + self:UpdateCardMove(card_view.btn_card, false, false) + self:SetBtnCardColor(card_view, 0) + end +end + +function M:ResetPoker() + self.Reset = true + for i = 1, #self.card_list do + local card_view = self.card_list[i] + self:UpdateCardMove(card_view.btn_card, false, false) + end + self.send_card = {} + self.Reset = false +end + +function M:UpdateCardMove(btn_card, isSelected, isPlay) + btn_card.selected = isSelected + -- local card_Move = btn_card + -- local xy = isSelected == true and Vector2.New(0, -65) or Vector2.New(0, 0) + -- if isPlay then + -- -- body + -- card_Move:TweenMove(xy, 0) + -- else + -- card_Move:TweenMove(xy, 0) + -- end +end + +-- +function M:UpdateHandCardsColor() + for i = 1, #self.card_list do + local card_view = self.card_list[i] + local num = card_view.btn_card.touchable == true and 0 or 1 + self:SetBtnCardColor(card_view, num) + end +end + +function M:BtnEvent() + self.btn_not_put = self._view:GetChild('btn_not_put') + self.btn_tips = self._view:GetChild('Btn_Tip') -- 覆盖 + self.btn_sendCards = self._view:GetChild('Btn_SendCard') + self._ctr_canSendCard = self.btn_sendCards:GetController('can') + self._ctr_canSendCard.selectedIndex = 1 + + self.btn_sendCards.onClick:Set( + function() + if self.Reset then + return + end + if self._ctr_canSendCard.selectedIndex == 0 then + return + end + local send_card = {} + self.send_card = {} + local currentCard = {} + for i = 1, #self.card_list do + local card = self.card_list[i] + table.insert(currentCard, card.card_code_flower) + if card.btn_card.selected then + send_card[#send_card + 1] = card.card_code_flower + self.send_card[#self.send_card + 1] = card + end + end + + if #send_card == 0 then + self:ErrorTip('请选择要出的牌 ') + else + self.gameCtr:SendCard(send_card, currentCard) + end + end + ) + self.btn_tips.onClick:Set( + function() + --printlog("wwwwwwwwwww111111111111111111111111") + --pt(self.tips_card_list) + if self.tips_card_list ~= nil and #self.tips_card_list ~= 0 then + local index = self.tips_click_count % #self.tips_card_list + 1 + self:ShowTipsCard(index) + self.tips_click_count = self.tips_click_count + 1 + end + end + ) + -- 过 + self.btn_not_put.onClick:Set( + function() + self.gameCtr:SendPass() + end + ) + + local function click_piao() + self.ctr_piao.selectedIndex = 0 + self.gameCtr:SendPiao(tonumber(self.ctr_piao_value.selectedPage)) + end + + local btn_piao0 = self._view:GetChild('piao0') + btn_piao0.onClick:Set(click_piao) + + local btn_piao1 = self._view:GetChild('piao1') + btn_piao1.onClick:Set(click_piao) + + local btn_piao2 = self._view:GetChild('piao2') + btn_piao2.onClick:Set(click_piao) + + local btn_piao3 = self._view:GetChild('piao3') + btn_piao3.onClick:Set(click_piao) + + local btn_piao5 = self._view:GetChild('piao5') + btn_piao5.onClick:Set(click_piao) + + local btn_piao8 = self._view:GetChild('piao8') + btn_piao8.onClick:Set(click_piao) +end + +function M:ShowTipsCard(index) + local item = self.tips_card_list[index] + for i = 1, #self.card_list do + local card = self.card_list[i] + local isExsit = false + for j = 1, #item do + if item[j] == self.card_list[i] then + self:UpdateCardMove(card.btn_card, true, false) + isExsit = true + end + end + if isExsit == false then + self:UpdateCardMove(card.btn_card, false, false) + end + end +end + +function M:GetHandCardOffset(count) + local start = -90 ---54 + + local offset = 0 + if count > 10 then + offset = start - count + 26 + else + offset = -30 + end + return 20 +end + +function M:GetHandCardPos(index, card_count) + local x, y = 0, -20 + local offset = self:GetHandCardOffset(card_count) + local middle_x = self.cards_view.width / 2 + local start_x = middle_x - (card_count / 2 * (self.card_width + offset)) + (offset / 2) + x = start_x + (self.card_width + offset) * (index - 1) + return Vector2.New(x, y) +end + +function M:GetHandCardPos1(index, card_count) + local x, y = 0, -18 + local offset = self:GetHandCardOffset(card_count) + local middle_x = self.cards_view.width / 2 + local start_x = middle_x - (card_count / 2 * (self.card_width + offset)) + (offset / 2) + x = start_x + (self.card_width + offset) * (index - 1) + return x, y +end + +function M:ChangeOneCodeByFrom(card) + local flower = math.floor(card / 100) + local number = card % 100 + if number == 2 then + number = 15 + end + return number * 10 + flower +end + +function M:ErrorTip(error_text) + if self.cor_init_poker ~= nil then + coroutine.stop(self.cor_init_poker) + end + self.cor_init_poker = nil + self.cor_init_poker = + coroutine.start( + function() + self.put_error_text.text = error_text + self.ctr_put_error.selectedIndex = 1 + coroutine.wait(2) + self.ctr_put_error.selectedIndex = 0 + end + ) +end + +--SuoHa_CardType +--None = 0, +--OneCard = 1, +--OnePair = 2, +--Three = 3, +--Pairs = 4, +--ThreeAndTwo = 5, +--ThreeAndOne = 6, +--Plane = 7, +--PlaneAndTwo = 8, +--PlaneAndOne = 9, +--Straight = 10, +--Bomb = 11 +function M:GetCardTips(type, number, length, mustPutMaxCard, tip_templist) + local tip_list = {} + local sidaisan = false + local touch_key_list = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } + --printlog("aaaaaaaaaaaaacccccccccccccccccccc11111111111111111111111111111") + --pt(self.card_list) + local card_map, max_key = self:GetCardMapAndMaxKey(self.card_list) + --printlog("aaaaaaaaaaaaaaaaaa222222222222222222222222222222222222222 ",max_key) + --pt(card_map) + if type == SuoHa_CardType.None then + if DataManager.CurrenRoom.is_new_bout then + tip_list = self:NewBoutTips(card_map) + end + return tip_list, touch_key_list + elseif type == SuoHa_CardType.Bomb then + tip_list, touch_key_list = self:CheckBomb(card_map, number, length) + else + local list_type, list_bomb = {}, {} + local touch_type, touch_bomb + list_bomb, touch_bomb = self:CheckBomb(card_map, 0, 4) + + local card_templist = membe_clone(self.card_list) + + if list_bomb ~= nil and tip_templist == nil then + -- body + for i = 1, #list_bomb do + local templist_bomb = list_bomb[i] + for j = 1, #templist_bomb do + for k = 1, #card_templist do + if templist_bomb[j] == card_templist[k] then + -- body + list_remove(card_templist, card_templist[k]) + end + end + end + end + card_map, max_key = self:GetCardMapAndMaxKey(card_templist) + end + + if type == SuoHa_CardType.OneCard then + -- if mustPutMaxCard then + -- number = max_key - 1 + -- self:ErrorTip("下家报单,请出最大的牌 ") + -- end + list_type, touch_type = self:CheckOneCard(card_map, number, length) + elseif type == SuoHa_CardType.OnePair then + list_type, touch_type = self:CheckOnePair(card_map, number, length) + elseif type == SuoHa_CardType.Three then + list_type, touch_type = self:CheckThree(card_map, number, length) + elseif type == SuoHa_CardType.Pairs then + list_type, touch_type = self:CheckPairs(card_map, number, length) + elseif type == SuoHa_CardType.ThreeAndTwo then + list_type, touch_type = self:CheckThreeAndTwo(card_map, number, length) + elseif type == SuoHa_CardType.ThreeAndOne then + list_type, touch_type = self:CheckThreeAndOne(card_map, number, length) + elseif type == SuoHa_CardType.Plane then + list_type, touch_type = self:CheckPlane(card_map, number, length, 0) + elseif type == SuoHa_CardType.PlaneAndTwo then + list_type, touch_type = self:CheckPlane(card_map, number, length, 2) + elseif type == SuoHa_CardType.PlaneAndOne then + list_type, touch_type = self:CheckPlane(card_map, number, length, 1) + elseif type == SuoHa_CardType.Straight then + list_type, touch_type = self:CheckStraight(card_map, number, length) + elseif type == SuoHa_CardType.FourAndtThree then + list_type, touch_type = self:CheckBomb(card_map, 0, 4) + if #list_type > 0 then + -- body + sidaisan = true + end + end + card_map, max_key = self:GetCardMapAndMaxKey(self.card_list) + tip_list = self:GetMergeAllList(list_type, list_bomb) + --list_bomb, touch_bomb = self:CheckBomb(card_map, 0, 4) + touch_key_list = self:GetMergeAllList(touch_type, touch_bomb) + local tip_templist2 = {} + if tip_templist == nil then + -- body + tip_templist2 = self:GetCardTips(type, number, length, mustPutMaxCard, tip_list) + end + if #tip_templist2 > 0 then + -- body + tip_list = self:GetMergeAllList(tip_list, tip_templist2) + end + end + + if (tip_templist ~= nil and sidaisan == false and #tip_templist >= 1) then + -- body + self:SetNotTouchCard(touch_key_list, card_map) + end + + return tip_list +end + +-- 合并多个list +function M:GetMergeAllList(...) + local lists = { ... } + local merge_list = {} + for i = 1, #lists do + local list_item = lists[i] + for j = 1, #list_item do + merge_list[#merge_list + 1] = list_item[j] + end + end + + return merge_list +end + +function M:NewBoutTips(pokerMap) + local new_bout_list = {} + for k, v in pairs(pokerMap) do + new_bout_list[#new_bout_list + 1] = v + end + return new_bout_list +end + +function M:CheckOneCard(pokerMap, num, length) + local one_card_list = {} + local touch_key_list = {} + if #self.card_list < length then + return one_card_list, touch_key_list + end + for k, v in pairs(pokerMap) do + if k > num and #v == 1 then + one_card_list[#one_card_list + 1] = { v[1] } + touch_key_list[#touch_key_list + 1] = k + end + end + for k, v in pairs(pokerMap) do + if k > num and #v ~= 1 then + one_card_list[#one_card_list + 1] = { v[1] } + touch_key_list[#touch_key_list + 1] = k + end + end + return one_card_list, touch_key_list +end + +function M:CheckOnePair(pokerMap, num, length) + local one_pair_list = {} + local touch_key_list = {} + if #self.card_list < length then + return one_pair_list, touch_key_list + end + for k, v in pairs(pokerMap) do -- 从三条和对子里面提取 + if #v > 1 and k > num then + one_pair_list[#one_pair_list + 1] = { v[1], v[2] } + touch_key_list[#touch_key_list + 1] = k + end + end + return one_pair_list, touch_key_list +end + +function M:CheckThree(pokerMap, num, length) + local three_list = {} + local touch_key_list = {} + if #self.card_list < length then + return three_list, touch_key_list + end + for k, v in pairs(pokerMap) do + if #v > 2 and k > num then + three_list[#three_list + 1] = { v[1], v[2], v[3] } + touch_key_list[#touch_key_list + 1] = k + end + end + return three_list, touch_key_list +end + +function M:CheckPairs(pokerMap, num, length) + local pairs_list = {} + local touch_key_list = {} + if #self.card_list < length then + return pairs_list, touch_key_list + end + local pair_length = length / 2 + local number_start = num - pair_length + 2 + local number_end = 15 - pair_length + for i = number_start, number_end do + local item_all_list = {} + for j = i, i + pair_length - 1 do + local item_list = pokerMap[j] + if item_list == nil then + break + elseif #item_list < 2 then + break + else + item_all_list[#item_all_list + 1] = item_list[1] + item_all_list[#item_all_list + 1] = item_list[2] + end + if j == i + pair_length - 1 then + pairs_list[#pairs_list + 1] = item_all_list + for k = i, i + pair_length - 1 do + touch_key_list[#touch_key_list + 1] = k + end + end + end + end + return pairs_list, touch_key_list +end + +function M:CheckThreeAndOne(pokerMap, num, length) + local three_and_one_list = {} + local touch_key_list = {} + if #self.card_list < length then + return three_and_one_list, touch_key_list + end + for k, v in pairs(pokerMap) do + if #v >= 3 and k > num then + three_and_one_list[#three_and_one_list + 1] = { v[1], v[2], v[3] } + touch_key_list = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } + end + end + return three_and_one_list, touch_key_list +end + +function M:CheckThreeAndTwo(pokerMap, num, length) + local three_and_two_list = {} + local touch_key_list = {} + if #self.card_list < length then + return three_and_two_list, touch_key_list + end + for k, v in pairs(pokerMap) do + if #v >= 3 and k > num then + three_and_two_list[#three_and_two_list + 1] = { v[1], v[2], v[3] } + touch_key_list = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } + end + end + return three_and_two_list, touch_key_list +end + +function M:CheckStraight(pokerMap, num, length) + local straight_list = {} + local touch_key_list = {} + if #self.card_list < length then + return straight_list, touch_key_list + end + local number_start = num - length + 2 + local number_end = 15 - length + for i = number_start, number_end do + local item_all_list = {} + for j = i, i + length - 1 do + local item_list = pokerMap[j] + if item_list == nil then + break + else + item_all_list[#item_all_list + 1] = item_list[1] + end + if j == i + length - 1 then + straight_list[#straight_list + 1] = item_all_list + for k = i, i + length - 1 do + touch_key_list[#touch_key_list + 1] = k + end + end + end + end + return straight_list, touch_key_list +end + +function M:CheckBomb(pokerMap, num, length) + local bomb_list = {} + local touch_key_list = {} + local threeA = DataManager.CurrenRoom.room_config.threeA + if threeA == 0 then + -- body + if #self.card_list < length then + return bomb_list, touch_key_list + end + else + if #self.card_list < 3 then + return bomb_list, touch_key_list + end + end + + for k, v in pairs(pokerMap) do + if #v == 4 and k > num then + bomb_list[#bomb_list + 1] = v + touch_key_list[#touch_key_list + 1] = k + end + if threeA == 1 and #v == 3 and k == 14 then + bomb_list[#bomb_list + 1] = v + touch_key_list[#touch_key_list + 1] = k + end + end + + return bomb_list, touch_key_list +end + +function M:CheckPlane(pokerMap, num, length, and_num) + local plane_list = {} + local touch_key_list = {} + local l = and_num + 3 + local pair_length = length / l + local number_start = num - pair_length + 2 + local number_end = 15 - pair_length + for i = number_start, number_end do + local item_all_list = {} + for j = i, i + pair_length - 1 do + local item_list = pokerMap[j] + if item_list == nil then + break + elseif #item_list < 3 then + break + else + item_all_list[#item_all_list + 1] = item_list[1] + item_all_list[#item_all_list + 1] = item_list[2] + item_all_list[#item_all_list + 1] = item_list[3] + end + if j == i + pair_length - 1 then + plane_list[#plane_list + 1] = item_all_list + touch_key_list = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } + end + end + end + return plane_list, touch_key_list +end + +function M:SetNotTouchCard(touch_key_list, card_map) + local all_key_list = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } + for i = 1, #all_key_list do + local key = all_key_list[i] + local isExsit = self:IsExistByList(touch_key_list, key) + if isExsit == false then + local key_card_item = card_map[key] + if key_card_item ~= nil then + for j = 1, #key_card_item do + local card = key_card_item[j] + card.btn_card.touchable = false + self:UpdateCardMove(card.btn_card, false, false) + end + end + end + end +end + +function M:IsExistByList(list, item) + for i = 1, #list do + if list[i] == item then + return true + end + end + return false +end + +function M:GetCardByNumber(list, number) + for i = 1, #list do + if list[i].card_code_number == number then + return list[i] + end + end + return nil +end + +function M:GetCardMapAndMaxKey(pokerList) + local map, max_key = {}, 0 + for i = 1, #pokerList do + local number = math.floor(pokerList[i].card_code_number / 10) + if number > max_key then + max_key = number + end + if map[number] == nil then + map[number] = { pokerList[i] } + else + map[number][#map[number] + 1] = pokerList[i] + end + end + return map, max_key +end + +-- function M:CheckOnes(pokerMap, num, length) +-- local one_card_list = {} +-- local touch_key_list = {} +-- local text = {} +-- local text2 = {} +-- local x = 0 +-- if #self.card_list < length then +-- return one_card_list, touch_key_list +-- end +-- for k, v in pairs(pokerMap) do +-- text = {} +-- text2 = {} +-- if k > num then +-- for l, p in pairs(pokerMap) do +-- for i = 0, length - 1 do +-- if l == k + i and l ~= 15 and l ~= 16 then +-- -- body +-- text[#text + 1] = { p[1] } +-- text2[#text2 + 1] = l +-- if #text >= length then +-- -- body +-- local x = #one_card_list +-- local y = #touch_key_list +-- for i = 1, #text - 1 do +-- one_card_list[x + 1] = text[1] +-- touch_key_list[y + 1] = text2[2] +-- -- for i, v in pairs(text2[i + 1]) do +-- -- if v ~= nil then +-- -- table.insert(touch_key_list[x + 1], v) +-- -- end +-- -- end +-- for i, v in pairs(text[i + 1]) do +-- if v ~= nil then +-- table.insert(one_card_list[x + 1], v) +-- end +-- end +-- end +-- end +-- end +-- end +-- end +-- end +-- end +-- return one_card_list, touch_key_list, length +-- end + +function M:CheckOnes(pokerMap) + local one_card_list = {} + local old_k = 0 + for k, v in pairs(pokerMap) do + if #one_card_list == 0 then + table.insert(one_card_list, v) + old_k = k + else + if k == 15 then + break + end + if k ~= old_k + 1 and #one_card_list >= 5 then + break + end + if k ~= old_k + 1 then + one_card_list = {} + end + table.insert(one_card_list, v) + old_k = k + end + end + if #one_card_list < 5 then + one_card_list = {} + end + return one_card_list +end + +function M:Clear() + self:PlayScore(nil) + self:SetOutCardInfo(nil, false) + self.card_list = {} + self.out_card_list = {} + self._view_handCard:RemoveChildren(0, -1, true) + -- self.mask_liangpai:RemoveChildren(0,-1,true) +end + +function M:ClearCheck() + self.card_list = {} + self.out_card_list = {} + self._view_handCard:RemoveChildren(0, -1, true) +end + +function M:Destroy() + Stage.inst.onTouchMove:Remove(self.touchMoveFun) + Stage.inst.onTouchEnd:Remove(self.touchMoveEndFun) +end + +return M diff --git a/lua_probject/extend_project/extend/poker/suoha/SuoHa_Protocol.lua b/lua_probject/extend_project/extend/poker/suoha/SuoHa_Protocol.lua new file mode 100644 index 00000000..2d68a8b4 --- /dev/null +++ b/lua_probject/extend_project/extend/poker/suoha/SuoHa_Protocol.lua @@ -0,0 +1,43 @@ +--- +--- Created by 谌建军. +--- DateTime: 2017/12/13 10:51 +--- +local SuoHa_Protocol = { + SuoHa_ConfirmToNextGame = "1003", + + SuoHa_Send_Card = "1013", + + SuoHa_Send_Guo = "1014", + + SuoHa_Send_Piao = "1015", + + SuoHa_Ming_Card = "2117", + + SuoHa_Init_Card = "2011", + + SuoHa_Options = "2004", + + SuoHa_Index_Move = "2016", + + SuoHa_Play_Succ = "2021", + + SuoHa_Pass_Succ = "2030", + + SuoHa_Put_Error = "2111", + + SuoHa_Bomb_Score = "2118", + + SuoHa_Result = "2007", + SuoHa_Piao_Tip = "2031", + SuoHa_Piao_Action = "2032", + + SuoHa_ConfirmToNextGameSucc = "2010", + PT_GAMETUOGUAN = "2029", --托管 + SEND_TUOGUAN = "1018", --托管 + GAME_XIPAI = "20836", + GAME_EVENT_XIPAI = "20837", + GAME_EVENT_NOTIFY_XIPAI = "20838", + GAME_EVT_CARDINHAND = "202022", +} + +return SuoHa_Protocol diff --git a/lua_probject/extend_project/extend/poker/suoha/SuoHa_ResultView.lua b/lua_probject/extend_project/extend/poker/suoha/SuoHa_ResultView.lua new file mode 100644 index 00000000..8a5c59bc --- /dev/null +++ b/lua_probject/extend_project/extend/poker/suoha/SuoHa_ResultView.lua @@ -0,0 +1,323 @@ +--- +--- Created by 谌建军. +--- DateTime: 2017/12/19 11:05 +--- +require("Game.View.ResultView") + +local SuoHa_ResultView = {} + +local M = SuoHa_ResultView + +function SuoHa_ResultView.new(blur_view, data, roomid, over, win_seat, dissolve, remaincards) + setmetatable(M, { __index = ResultView }) + local self = setmetatable({}, { __index = M }) + + self.class = "SuoHa_ResultView" + self._currenIndex = 0 + self._close_zone = false + --self._blur_view = blur_view + self._gamectr = ControllerManager.GetController(GameController) + self:init("ui://Extend_Poker_SuoHa/clearing", data, roomid, over, win_seat, dissolve, remaincards) + + return self +end + +function M:init(url, data, roomid, over, win_seat, dissolve, remaincards) + ResultView.init(self, url, true) + self.xiPaiCtr = self._view:GetController("xipai") + + + local round = DataManager.CurrenRoom.room_config.config.times or 1 + local xpconfig = DataManager.CurrenRoom.room_config.config.xi_pai + if xpconfig and round > 1 then + self.xiPaiCtr.selectedIndex = 1 + else + self.xiPaiCtr.selectedIndex = 0 + end + + + --self:InitData(data,roomid) + --self:InitData(data,roomid) + printlog("aaaaaaaaaaaaaaaa1111111111111111111111111222222222222222 ", dissolve) + pt(data) + if dissolve == 1 then + -- body + self.xiPaiCtr.selectedIndex = 0 + self:InitData(data, win_seat, roomid) + else + local xipai = self._view:GetChild("btn_xipai") + xipai.touchable = true + xipai.onClick:Add(function() + local xiPaiCallBack = function() + xipai.touchable = false + self.xiPaiCtr.selectedIndex = 0 + ViewUtil.ErrorTip(1000000, "申请洗牌成功") + end + local _gamectr = ControllerManager.GetController(GameController) + _gamectr:SendXiPaiAction(xiPaiCallBack) + end) + if DataManager.CurrenRoom.xipaiScore then + --xipai.text="洗牌 积分x"..DataManager.CurrenRoom.xipaiScore + else + --xipai.text="洗牌 积分x0" + end + + self:InitData_One(data, win_seat, over, roomid, remaincards) + end +end + +function M:ChangeCodeByTo(card) + local flower = card % 10 + local number = math.floor(card / 10) + if number == 15 then + number = 2 + end + return flower * 100 + number +end + +-- 小结算 +function M:InitData_One(data, winseat, over, roomid, remaincards) + local room = DataManager.CurrenRoom + self._view:GetController("sdk").selectedIndex = 1 + local _gamectr = ControllerManager.GetController(GameController) + local list_view = self._view:GetChild("player_list_1") + list_view:RemoveChildrenToPool() + + local leftCardAll = self._view:GetChild("leftCardHand") + leftCardAll:RemoveChildrenToPool() + + if remaincards and #remaincards > 0 then + table.sort(remaincards, function(a, b) + return a % 100 < b % 100 + end) + for i = 1, #remaincards do + local card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. remaincards[i]) + leftCardAll:AddChild(card_code_obj) + end + end + + + for i = 1, #data do + local player = data[i] + local item = list_view:AddItemFromPool("ui://Extend_Poker_SuoHa/clearing_item_1") + + + local leftCard = item:GetChild("leftCard") + leftCard:RemoveChildrenToPool() + -- table.sort(data[i].handCards,function (a,b) + + -- return a % 100 < b % 100 + -- end) + + for j = 1, #data[i].handCards do + local code = data[i].handCards[j] + local card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. code) + leftCard:AddChild(card_code_obj) + end + + -- table.sort(data[i].outCards,function (a,b) + -- return a % 100 < b % 100 + -- end) + + + + for k = 1, #data[i].outCards do + local code = data[i].outCards[k] + local card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/" .. code) + print("==================================================card_code_obj", card_code_obj, code) + leftCard:AddChild(card_code_obj) + card_code_obj:GetChildAt(0):GetChildAt(0).color = Color(0.7, 0.7, 0.7) + end + + + + local boom = item:GetChild("boom") + boom.text = player.thisboomnum + + local piao = item:GetChild("piao") + if player.piao <= 0 then + piao.text = "0" + else + piao.text = "" .. player.piao + end + + local nichen = item:GetChild("nichen") + + if player.nick ~= nil then + -- body + nichen.text = tostring(player.nick) + else + nichen.text = tostring(player.self_user.nick_name) + end + + + local shengpai = item:GetChild("shengpai") + if player.cards ~= nil then + -- body + shengpai.text = tostring(#player.cards) + else + shengpai.text = tostring(#player.hand_list) + end + + local rt = 1 + if room.hpOnOff == 1 then + rt = room.score_times + end + + local hp_nonnegative = room:checkHpNonnegative() + local roundScore = player.winscore + if hp_nonnegative then + local jifen = "" + if roundScore > 0 then + jifen = "+" .. roundScore + else + jifen = "" .. roundScore + end + + local tili = "" + local limit = "" + if player.hp_info.round_actual_hp > 0 then + tili = "(+" .. d2ad(player.hp_info.round_actual_hp) .. ")" + if player.hp_info.upper_limit then + limit = "达到上限" + end + else + tili = "(" .. d2ad(player.hp_info.round_actual_hp) .. ")" + if player.hp_info.upper_limit then + limit = "达到下限" + end + end + + item:GetChild("score").text = jifen .. tili .. limit + else + local jifen = "" + if roundScore >= 0 then + jifen = "+" .. roundScore + else + jifen = "" .. roundScore + end + jifen = jifen .. " " + + local tili = "" + if room.hpOnOff > 0 then + local need = roundScore * rt + tili = "(" + if roundScore > 0 then + tili = tili .. "+" .. tostring(need) + else + tili = tili .. tostring(need) + end + + tili = tili .. ")" + end + + + item:GetChild("score").text = jifen .. tili + end + + if roundScore >= 0 then + if room.self_player.seat == player.seat then + -- body + self._view:GetController("result").selectedIndex = 1 + end + else + if room.self_player.seat == player.seat then + self._view:GetController("result").selectedIndex = 0 + end + end + end + + + if over == 0 then + -- body + local btn_confirm = self._view:GetChild("btn_confirm") + btn_confirm.onClick:Set(function() + self:Destroy() + local _gamectr = ControllerManager.GetController(GameController) + _gamectr:ConformToNextGame() + end) + else + self.xiPaiCtr.selectedIndex = 0 + local btn_confirm = self._view:GetChild("btn_confirm") + btn_confirm.onClick:Set(function() + --self:Destroy() + self:InitData(data, winseat, roomid) + -- ViewManager.ChangeView(ViewManager.View_Lobby) + end) + end +end + +-- 大结算 +function M:InitData(data, winseat, roomid) + self.xiPaiCtr.selectedIndex = 0 + self._view:GetController("sdk").selectedIndex = 0 + + local room = DataManager.CurrenRoom + + local rt = 1 + if room.hpOnOff == 1 and room.score_times ~= 1 then + rt = room.score_times + end + + -- 赋值result_info,聊天室分享需要 + local player_list = {} + for i = 1, #data do + player_list[i] = {} + + local user = room:GetPlayerBySeat(data[i].seat).self_user + + player_list[i].id = user.account_id + + player_list[i].score = data[i].score + player_list[i].hp_info = data[i].hp_info + player_list[i].house = room.owner_id == player_list[i].id and 1 or 0 + player_list[i].nick = user.nick_name + player_list[i].seat = data[i].seat + player_list[i].head_url = data[i].self_user.head_url + + if data[i].entrust ~= nil then + player_list[i].entrust = data[i].entrust > 0 + else + player_list[i].entrust = false + end + + player_list[i].param = {} + + player_list[i].param[1] = {} + player_list[i].param[1].key = "赢局数:" + player_list[i].param[1].value = tostring(data[i].settle_log.winnum) + + player_list[i].param[2] = {} + player_list[i].param[2].key = "打出炸弹数:" + player_list[i].param[2].value = tostring(data[i].settle_log.boomnum) + + player_list[i].param[3] = {} + player_list[i].param[3].key = "春天次数:" + player_list[i].param[3].value = tostring(data[i].settle_log.springnum) + + player_list[i].param[4] = {} + player_list[i].param[4].key = "当局最高分:" + player_list[i].param[4].value = tostring(data[i].settle_log.maxscore * rt) + + if data[i].daniao > 0 then + player_list[i].flag = { "打鸟" } + end + end + + self:GenerateRoomResultInfo(room.room_config.Times, room.room_config:GetGameName(), room.room_id, room.create_time, + player_list) + self:InitBigResult(room) + local big_result = self._view:GetChild("big_result") + local lst_p = big_result:GetChild("player_list") + -- local list_param = com_p:GetChild("list_param") + for i = 1, lst_p.numChildren do + local com_p = lst_p:GetChildAt(i - 1) + local list_param = com_p:GetChild("list_param") + for j = 1, list_param.numChildren do + local tem = list_param:GetChildAt(j - 1) + tem:GetChild("txt_value").textFormat.size = 30 + end + end +end + +return M diff --git a/lua_probject/extend_project/extend/poker/suoha/SuoHa_RightPanelView.lua b/lua_probject/extend_project/extend/poker/suoha/SuoHa_RightPanelView.lua new file mode 100644 index 00000000..11e0e3c6 --- /dev/null +++ b/lua_probject/extend_project/extend/poker/suoha/SuoHa_RightPanelView.lua @@ -0,0 +1,94 @@ +local MainRightPanelView = require("Game.View.MainRightPanelView") +local SuoHa_RightPanelView = {} +local M = SuoHa_RightPanelView +local function __init(self, mainView, view) + local right_panel = view + + local btn_setting = mainView._view:GetChild("Btn_Setting") + btn_setting.onClick:Set(function() + print("lingmengmainview", mainView.dismiss_room_cd_time) + local _settingView = mainView:NewSettingView() + _settingView:Show() + end) + -- btn_setting.onClick:Set(function() + -- local _settingView = mainView:NewSettingView() + -- _settingView.stateIndex = (mainView._room.curren_round >= 1 and mainView._allow_dissmiss) and 2 or 1 + -- _settingView.cd_time = mainView.dismiss_room_cd_time + -- _settingView:Show() + + -- local room = DataManager.CurrenRoom + -- _settingView.onCallback:Add(function(context) + -- local _gamectr = ControllerManager.GetController(GameController) + -- if (room.CurnrenState == StateType.Ready) then + -- _gamectr:LevelRoom(function(response) + -- if (response.ReturnCode == 0) then + -- ViewManager.ChangeView(ViewManager.View_Lobby) + -- GameApplication.Instance:ShowTips("房间已解散!") + -- end + -- end) + -- else + -- -- print("mainView.dismiss_room_cd_time"..mainView.dismiss_room_cd_time) + -- if mainView.dismiss_room_cd_time > 0 then + -- GameApplication.Instance:ShowTips("您还处于解散冷却时间当中,请稍后重试!") + -- else + -- _gamectr:AskDismissRoom() + -- end + -- end + -- end) + -- end) + + -- self._tex_data = right_panel:GetChild("tex_data") + self._tex_time = mainView._view:GetChild("Text_Time") + self._pb_batteryLevel = mainView._view:GetChild("PB_Battery") + -- self._xinhao = right_panel:GetController("xinhao") + -- self.ctr_xh = right_panel:GetChild("gcm_xinhao"):GetController("c1") + -- self.ctr_wifi = right_panel:GetChild("gcm_wifi"):GetController("c1") + -- self._tex_ping = right_panel:GetChild("gcm_xinhao"):GetChild("n7") + + -- self.ctr_log = right_panel:GetController("log") + -- local btn_log = right_panel:GetChild("btn_log") + -- btn_log.onClick:Set(function() + -- if self.onLogCallback then + -- self.onLogCallback() + -- end + -- end) + + self._total_time = 0 + self:__UpdateTime() + + -- self._timer = Timer.New(handler(self,self.__UpdateTime),10,-1,true) + -- self._timer:Start() +end +function SuoHa_RightPanelView.new(mainView, view) + setmetatable(M, { __index = MainRightPanelView }) + local self = setmetatable({}, { __index = M }) + self.class = "SuoHa_RightPanelView" + __init(self, mainView, view) + return self +end + +function M:__UpdateTime() + -- self._tex_data.text = os.date("%Y-%m-%d") + self._tex_time.text = os.date("%H:%M") + if Application.platform == RuntimePlatform.IPhonePlayer or Application.platform == RuntimePlatform.Android then + self._pb_batteryLevel.value = GameApplication.Instance:GetBatteryLevel() + end + + -- local NetworkReachability = UnityEngine.NetworkReachability + -- local _client = ControllerManager.GameNetClinet + -- if not _client then return end + -- local ping = _client:getAveragePingTime() + -- if not ping then return end + -- ping = math.floor(ping / 2) + -- if ping > 300 then ping = 300 end + -- if ping <= 100 then + -- self.ctr_xh.selectedIndex = 0 + -- elseif ping <= 300 then + -- self.ctr_xh.selectedIndex = 1 + -- else + -- self.ctr_xh.selectedIndex = 2 + -- end + -- self._tex_ping.text = ping .. "ms" +end + +return M diff --git a/lua_probject/extend_project/extend/poker/suoha/SuoHa_Room.lua b/lua_probject/extend_project/extend/poker/suoha/SuoHa_Room.lua new file mode 100644 index 00000000..471085d9 --- /dev/null +++ b/lua_probject/extend_project/extend/poker/suoha/SuoHa_Room.lua @@ -0,0 +1,24 @@ +--- +--- Created by 谌建军. +--- DateTime: 2017/12/19 14:36 +--- +local SuoHa_Player = import(".SuoHa_Player") + +local SuoHa_Room = { +} + +local M = SuoHa_Room + +--- Create a new EXPlayer +function M.new() + setmetatable(M, { __index = Room }) + local self = setmetatable({}, { __index = M }) + self:init() + return self +end + +function M:NewPlayer() + return SuoHa_Player.new() +end + +return M diff --git a/lua_probject/extend_project/extend/poker/suoha/SuoHa_RoomConfig.lua b/lua_probject/extend_project/extend/poker/suoha/SuoHa_RoomConfig.lua new file mode 100644 index 00000000..e084215c --- /dev/null +++ b/lua_probject/extend_project/extend/poker/suoha/SuoHa_RoomConfig.lua @@ -0,0 +1,490 @@ +--- +--- Created by 谌建军. +--- DateTime: 2017/12/19 10:54 +--- +local M = {} + + +--- Create a new RoomConfig +function M.new(config) + setmetatable(M, { __index = RoomConfig }) + local self = setmetatable({}, { __index = M }) + RoomConfig.init(self, config) + self.class = "SuoHa_RoomConfig" + self.config = config + self.Leaf = config.leaf + self.Rule = config.rule + self.Times = config.times + self.WillBeOut = config.willBeOut + self.Heart10 = config.heartten + self.BombSpring = config.minboom + self.AA = config.aa + self.PlayerNum = config.maxPlayers + self.showlength = config.showlength + self.fourBeltThree = config.fourBeltThree + self.demolition = config.demolition + self.fangzuobi = config.fangzuobi + self.planelack = config.planelack + self.threelack = config.threelack + self.threeA = config.threeA + self.tuoguan_active_time = config.tuoguan_active_time + self.tuoguan = config.tuoguan + self.tuoguan_result_type = config.tuoguan_result_type + self.isNonnegative = config.isNonnegative + self.sandaidan = config.sandaidan + self.isHidden = config.isHidden + self.ba = config.ba + self.fs = config.fs + + if config.piao ~= nil then + self.piao = config.piao + else + self.piao = 0 + end + + if config.daniao ~= nil then + self.daniao = config.daniao + else + self.daniao = 0 + end + + if self.isNonnegative == nil then + self.isNonnegative = 0 + end + self.energyTab = config.energyTab + + if self.energyTab == nil then + self.energyTab = 0 + end + + return self +end + +--[[function M:GetDes(sp) + sp = sp or " " + local str = "" + -- str = str.. self.Times.."局"..sp + str = str .. RoomConfig.GetDes(self, sp).." " + local count=1 + if self.Leaf == 1 then + str = str.. "15张玩法" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=2 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + else + str = str.. "16张玩法" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=2 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + end + + if self.Rule == 1 then + str = str.. "第一局黑桃3先出,随后赢家先出".."\n" + else + str = str.. "第一局系统随机选一张先出,随后赢家先出".."\n" + end + count=0 + + if self.WillBeOut == 1 then + str = str.. "能出必出" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=2 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + else + str = str.. "可不必出" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=2 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + end + if self.showlength == 1 then + str = str.. "显示剩余牌" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=1 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + end + if self.fourBeltThree == 3 then + str = str.. "四带三" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=3 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + elseif self.fourBeltThree == 2 then + str = str.. "四带二" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=3 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + end + if self.Heart10 == 1 then + str = str.. "红桃10分数翻倍" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=0 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + end + + if self.BombSpring == 1 then + str = str.. "\n4个3 或者3个A 1个2 春天\n" + end + if self.demolition == 1 then + str = str.. "炸弹不能拆" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=1 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + end + if self.fangzuobi == 1 and self.PlayerNum==3 then + str = str.. "防作弊" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=3 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + end + + if self.sandaidan == 1 then + str = str.. "\n三张飞机带单或者对子\n" + end + + if self.ba == 1 then + str = str.. "炸弹分数算赢家" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=0 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + end + + if self.fs == 1 then + str = str.. "反春天" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=3 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + end + + + if self.planelack == 1 then + str = str.. "飞机少带可接完" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=0 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + end + if self.threelack == 1 then + str = str.. "三张少带可接完" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=0 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + end + if self.threeA ==1 then + str = str.. "三张A算炸弹" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=0 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + end + + if self.piao == 0 then + + elseif self.piao == 1 then + str = str.. "飘123" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=3 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + elseif self.piao == 2 then + str = str.. "飘235" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=3 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + elseif self.piao == 3 then + str = str.. "飘258" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=3 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + end + + if self.daniao == 1 then + str = str.. "打鸟+10" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=3 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + elseif self.daniao == 2 then + str = str.. "打鸟+20" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=3 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + elseif self.daniao == 3 then + str = str.. "打鸟+50" + count=count+1 + if count%2==0 then + str = str .."\n" + else + sp1="" + local strL=3 + for i=1,strL do + sp1=sp1.." " + end + str = str .. sp1..sp + end + end + + return str +end--]] + + +function M:GetDes(sp) + sp = sp or " " + local str = "" + -- str = str.. self.Times.."局"..sp + str = str .. RoomConfig.GetDes(self, sp) + if self.Leaf == 1 then + str = str .. "15张玩法" .. sp + else + str = str .. "16张玩法" .. sp + end + + if self.Rule == 1 then + str = str .. "第一局黑桃3先出,随后赢家先出" .. sp + else + str = str .. "第一局系统随机选一张先出,随后赢家先出" .. sp + end + + if self.WillBeOut == 1 then + str = str .. "能出必出" .. sp + else + str = str .. "可不必出" .. sp + end + if self.showlength == 1 then + str = str .. "显示剩余牌" .. sp + end + if self.fourBeltThree == 3 then + str = str .. "四带三" .. sp + elseif self.fourBeltThree == 2 then + str = str .. "四带二" .. sp + end + if self.Heart10 == 1 then + str = str .. "红桃10分数翻倍" .. sp + end + + if self.BombSpring == 1 then + str = str .. "4个3 或者3个A 1个2 春天" .. sp + end + if self.demolition == 1 then + str = str .. "炸弹不能拆" .. sp + end + if self.fangzuobi == 1 and self.PlayerNum == 3 then + str = str .. "防作弊" .. sp + end + + if self.sandaidan == 1 then + str = str .. "三张飞机带单或者对子" .. sp + end + + if self.ba == 1 then + str = str .. "炸弹分数算赢家" .. sp + end + + if self.fs == 1 then + str = str .. "反春天" .. sp + end + + + if self.planelack == 1 then + str = str .. "飞机少带可接完" .. sp + end + if self.threelack == 1 then + str = str .. "三张少带可接完" .. sp + end + if self.threeA == 1 then + str = str .. "三张A算炸弹" .. sp + end + + if self.piao == 0 then + + elseif self.piao == 1 then + str = str .. "飘123" .. sp + elseif self.piao == 2 then + str = str .. "飘235" .. sp + elseif self.piao == 3 then + str = str .. "飘258" .. sp + end + + if self.daniao == 1 then + str = str .. "打鸟+10" .. sp + elseif self.daniao == 2 then + str = str .. "打鸟+20" .. sp + elseif self.daniao == 3 then + str = str .. "打鸟+50" .. sp + end + + return str +end + +function M:GetGameJS() + local gamerulepanel = UIPackage.CreateObjectFromURL("ui://Extend_Poker_SuoHa/gamerule") + return gamerulepanel +end + +function M:GetGameSMSize() + return 467, 500 +end + +function M:GetGameName() + return "跑得快" +end + +--function M:GetIsShowCardNumber() +-- return self.ShowNumber == 1 +--end + +return M diff --git a/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_atlas0.png b/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_atlas0.png index 7542f7cd..5c5c1d28 100644 Binary files a/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_atlas0.png and b/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_atlas0.png differ diff --git a/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_atlas0_1.png b/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_atlas0_1.png new file mode 100644 index 00000000..b38f582d Binary files /dev/null and b/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_atlas0_1.png differ diff --git a/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_atlas0_1.png.meta b/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_atlas0_1.png.meta new file mode 100644 index 00000000..871ac089 --- /dev/null +++ b/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_atlas0_1.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 9a88ec6b6fe8e374bb8ae76b04a071a6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: extend/poker/runfast/4453ac44dfe0b10c314c4b7d0f517f22 + assetBundleVariant: diff --git a/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_atlas_ckvbck6.png b/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_atlas_ckvbck6.png new file mode 100644 index 00000000..b61ff337 Binary files /dev/null and b/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_atlas_ckvbck6.png differ diff --git a/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_atlas_ckvbck6.png.meta b/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_atlas_ckvbck6.png.meta new file mode 100644 index 00000000..a827bd79 --- /dev/null +++ b/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_atlas_ckvbck6.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 3784e749d620d7e4fb77574ed8afd1d9 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: extend/poker/runfast/4453ac44dfe0b10c314c4b7d0f517f22 + assetBundleVariant: diff --git a/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_fui.bytes b/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_fui.bytes index 46486e62..54e25d28 100644 Binary files a/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_fui.bytes and b/wb_unity_pro/Assets/ART/extend/poker/runfast/ui/Extend_Poker_RunFastNew_fui.bytes differ diff --git a/wb_unity_pro/Assets/ART/extend/poker/suoha.meta b/wb_unity_pro/Assets/ART/extend/poker/suoha.meta new file mode 100644 index 00000000..73fed4c1 --- /dev/null +++ b/wb_unity_pro/Assets/ART/extend/poker/suoha.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 089d03ceb6a17fb41aba1832a843d397 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/wb_unity_pro/Assets/ART/extend/poker/suoha/ui.meta b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui.meta new file mode 100644 index 00000000..15ea1389 --- /dev/null +++ b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 012ac2887cff67e47b842e1ecc1154f2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_atlas0.png b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_atlas0.png new file mode 100644 index 00000000..3a77f500 Binary files /dev/null and b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_atlas0.png differ diff --git a/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_atlas0.png.meta b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_atlas0.png.meta new file mode 100644 index 00000000..6ec6878f --- /dev/null +++ b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_atlas0.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 1f5461c788178fa4bb86301c7398a33b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: extend/poker/suoha/555092e5b3b7b08c957082b82f292a46 + assetBundleVariant: diff --git a/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_atlas0_1.png b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_atlas0_1.png new file mode 100644 index 00000000..b21e3da1 Binary files /dev/null and b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_atlas0_1.png differ diff --git a/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_atlas0_1.png.meta b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_atlas0_1.png.meta new file mode 100644 index 00000000..930ff55c --- /dev/null +++ b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_atlas0_1.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 2e00ef1a88eb7484db2fdd2420172026 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: extend/poker/suoha/555092e5b3b7b08c957082b82f292a46 + assetBundleVariant: diff --git a/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_ckvb2y.mp3 b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_ckvb2y.mp3 new file mode 100644 index 00000000..ecff85f1 Binary files /dev/null and b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_ckvb2y.mp3 differ diff --git a/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_ckvb2y.mp3.meta b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_ckvb2y.mp3.meta new file mode 100644 index 00000000..2d1fe708 --- /dev/null +++ b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_ckvb2y.mp3.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 0e67102bc078c724da601496eda14f8b +AudioImporter: + externalObjects: {} + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: extend/poker/suoha/555092e5b3b7b08c957082b82f292a46 + assetBundleVariant: diff --git a/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_ckvb31.mp3 b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_ckvb31.mp3 new file mode 100644 index 00000000..398af510 Binary files /dev/null and b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_ckvb31.mp3 differ diff --git a/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_ckvb31.mp3.meta b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_ckvb31.mp3.meta new file mode 100644 index 00000000..e53cd077 --- /dev/null +++ b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_ckvb31.mp3.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: be8e4e4bd1108184ab92feceaea0878f +AudioImporter: + externalObjects: {} + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: extend/poker/suoha/555092e5b3b7b08c957082b82f292a46 + assetBundleVariant: diff --git a/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_ckvb3n.mp3 b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_ckvb3n.mp3 new file mode 100644 index 00000000..3a0d1c4f Binary files /dev/null and b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_ckvb3n.mp3 differ diff --git a/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_ckvb3n.mp3.meta b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_ckvb3n.mp3.meta new file mode 100644 index 00000000..cd5dc562 --- /dev/null +++ b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_ckvb3n.mp3.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 057947a069939a244afd08a89826fe20 +AudioImporter: + externalObjects: {} + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: extend/poker/suoha/555092e5b3b7b08c957082b82f292a46 + assetBundleVariant: diff --git a/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_fui.bytes b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_fui.bytes new file mode 100644 index 00000000..fe1be661 Binary files /dev/null and b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_fui.bytes differ diff --git a/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_fui.bytes.meta b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_fui.bytes.meta new file mode 100644 index 00000000..8c3e9f87 --- /dev/null +++ b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Extend_Poker_SuoHa_fui.bytes.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 43a3d70231154554f85d70c46b11acd5 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: extend/poker/suoha/555092e5b3b7b08c957082b82f292a46 + assetBundleVariant: diff --git a/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Info_Poker_SuoHa_atlas0.png b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Info_Poker_SuoHa_atlas0.png new file mode 100644 index 00000000..5e2f4c74 Binary files /dev/null and b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Info_Poker_SuoHa_atlas0.png differ diff --git a/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Info_Poker_SuoHa_atlas0.png.meta b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Info_Poker_SuoHa_atlas0.png.meta new file mode 100644 index 00000000..59323c33 --- /dev/null +++ b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Info_Poker_SuoHa_atlas0.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 90b7612eae62bb949b77c5984e16ea76 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: extend/poker/suoha/1dd27af6cf16f29dd351e9912088b1d5 + assetBundleVariant: diff --git a/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Info_Poker_SuoHa_fui.bytes b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Info_Poker_SuoHa_fui.bytes new file mode 100644 index 00000000..615b20e9 Binary files /dev/null and b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Info_Poker_SuoHa_fui.bytes differ diff --git a/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Info_Poker_SuoHa_fui.bytes.meta b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Info_Poker_SuoHa_fui.bytes.meta new file mode 100644 index 00000000..e1938852 --- /dev/null +++ b/wb_unity_pro/Assets/ART/extend/poker/suoha/ui/Info_Poker_SuoHa_fui.bytes.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c9b0f551a6d291a4bacf4811efa738b9 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: extend/poker/suoha/1dd27af6cf16f29dd351e9912088b1d5 + assetBundleVariant: