local MJPlayerSelfCardInfoView = require("main.majiang.MJPlayerSelfCardInfoView_jiangxi") local MJPlayerCardInfoView = require("main.majiang.MJPlayerCardInfoView_jiangxi") local CardCheck = import(".CardCheck") local M = {} -- function M.new(view, mainView) setmetatable(MJPlayerSelfCardInfoView, { __index = MJPlayerCardInfoView }) setmetatable(M, { __index = MJPlayerSelfCardInfoView }) local self = setmetatable({}, { __index = M }) self.class = "PlayerSelfCardInfoView" self._view = view self._mainView = mainView self:init() return self end -- function M:ShowHuTip(card_list) -- printlog("ShowHuTip") -- local tingList = CardCheck.MuiltiplteCaculateTingPai(card_list, true, DataManager.CurrenRoom.room_config.Qidui, -- DataManager.CurrenRoom.room_config.Laizi) -- if #tingList > 0 then -- if DataManager.CurrenRoom.laiziInfo and #DataManager.CurrenRoom.laiziInfo > 0 then -- for i = 1, #DataManager.CurrenRoom.laiziInfo do -- if IsHasDictionary(DataManager.CurrenRoom.laiziInfo[i], tingList) == false then -- table.insert(tingList, DataManager.CurrenRoom.laiziInfo[i]) -- end -- end -- end -- end -- self._mainView._hu_tip:FillData(tingList) -- end function M:UpdateHandCard(getcard, mp) MJPlayerSelfCardInfoView.UpdateHandCard(self, getcard, mp) -- local _carViewList = self._carViewList -- if DataManager.CurrenRoom.laiziInfo and #self._carViewList > 0 then -- for i = 1, #self._carViewList do -- local obj = self._carViewList[i] -- if obj and obj.card then -- if IsHasDictionary(obj.card_item, DataManager.CurrenRoom.laiziInfo) then -- if obj.card.GetController then -- if obj.card:GetController("laizi") then -- obj.card:GetController("laizi").selectedIndex = 1 -- end -- end -- else -- if obj.card.GetController then -- if obj.card:GetController("laizi") then -- obj.card:GetController("laizi").selectedIndex = 0 -- end -- end -- end -- end -- end -- end -- local card_list = DataManager.CurrenRoom.self_player.card_list -- -- self:ShowHuTip(card_list) -- if getcard then -- self._out_card = true -- local card_list = membe_clone(DataManager.CurrenRoom.self_player.card_list) -- -- 记录需要标记听牌提示的牌 -- local lst_mark = {} -- local total_num = 0 -- for i = 1, #_carViewList do -- local btn = _carViewList[i].card -- local card = self:GetCard(btn) -- list_remove(card_list, card) -- local tingList = CardCheck.MuiltiplteCaculateTingPai(card_list, true, -- DataManager.CurrenRoom.room_config.Qidui, DataManager.CurrenRoom.room_config.Laizi) -- if #tingList > 0 then -- local count = 0 -- for j = 1, #tingList do -- count = count + self._mainView:CountCardLeftNum(tingList[j]) -- end -- local tem = {} -- tem.item = btn -- tem.count = count -- total_num = total_num + count -- table.insert(lst_mark, tem) -- end -- table.insert(card_list, card) -- end -- table.sort(lst_mark, function(a, b) -- return a.count > b.count -- end) -- -- 如果几张牌的可胡牌数一致,也只显示'三角',可胡牌数不一致才显示'多' -- local all_same = #lst_mark ~= 0 and lst_mark[1].count == total_num / #lst_mark or false -- for i = 1, #lst_mark do -- local tem = lst_mark[i] -- if all_same or tem.count < lst_mark[1].count then -- tem.item:GetController("mark_ting").selectedIndex = 1 -- else -- tem.item:GetController("mark_ting").selectedIndex = 2 -- end -- end -- else -- for i = 1, #_carViewList do -- local btn = _carViewList[i].card -- if btn:GetController("mark_ting").selectedIndex ~= 0 then -- btn:GetController("mark_ting").selectedIndex = 0 -- end -- end -- self._out_card = false -- end end -- function M:__OnClickHandCard(context) -- local button = context.sender -- local _carViewList = self._carViewList -- local refresh = true -- local card_list = {} -- for i = 1, #_carViewList do -- local btn = _carViewList[i].card -- local card = self:GetCard(btn) -- if btn ~= button and btn.selected == true then -- if button.data.card_item == card then -- refresh = false -- else -- self._mainView:markOutCards(false, card) -- end -- btn.selected = false -- end -- if not btn.selected then -- table.insert(card_list, card) -- end -- end -- if self._out_card then -- -- self:ShowHuTip(card_list) -- end -- -- 标记出牌 -- if refresh then -- if button.selected then -- self._mainView:markOutCards(true, button.data.card_item) -- else -- self._mainView:markOutCards(false, button.data.card_item) -- end -- end -- local _room = DataManager.CurrenRoom -- if not button.selected and _room.curren_outcard_seat == _room.self_player.seat then -- local card = button.data -- self._mainView:OutCard(card.card_item) -- end -- end -- function M:__OnDragStart(card) -- local card_list = membe_clone(DataManager.CurrenRoom.self_player.card_list) -- list_remove(card_list, card) -- -- self:ShowHuTip(card_list) -- end -- function M:__OnDragEnd(context) -- if self.outcard_button then -- self.outcard_button:Dispose() -- self.outcard_button = nil -- end -- local button = context.sender -- --button:RemoveFromParent() -- local card = button.data -- local _room = DataManager.CurrenRoom -- -- -- print("button.y"..button.y .. "_room.curren_outcard_seat".._room.curren_outcard_seat) -- if (button.y - card.old_postion.y < -50 and _room.curren_outcard_seat == _room.self_player.seat and card.card_item ~= 0) then -- self._mainView:OutCard(card.card_item) -- button.touchable = false -- self.outcard_button = button -- else -- self._area_handcard_list:AddChildAt(button, card.index) -- button:TweenMove(card.old_postion, 0.2) -- end -- end -- function M:CheckPlayerOnlineState() -- local room = DataManager.CurrenRoom -- for i = 1, #room.player_list do -- if room.player_list[i].line_state == 0 then -- return false -- end -- end -- return true -- end function M:Clear(bskip) MJPlayerSelfCardInfoView.Clear(self) --self._ctr_state.selectedIndex = 0 -- self._area_fz_list.x = self._src_fz_list.x -- self._area_fz_list.y = self._src_fz_list.y -- self._area_fz_list.width = self._src_fz_list.z -- self._area_fz_list.height = self._src_fz_list.w -- self._area_fz_list:RemoveChildren(0, -1, true) -- self._area_handcard_list:RemoveChildren(0, -1, true) -- self._area_outcard_list:RemoveChildren(0, -1, true) -- if bskip == nil or bskip == false then -- self._mask_liangpai:RemoveChildren(0, -1, true) -- end -- for i = 1, #self._carViewList do -- self._carViewList[i].card:Dispose() -- end -- self._carViewList = {} end return M