local M = {} function M.InitChiView(gamectr, view, cardInfo) local self = setmetatable({}, {__index = M}) self._room = DataManager.CurrenRoom self.class = "ChiView" self._gamectr = gamectr self._mainView = view self._cardInfo = cardInfo return self end function M:UpdateChiView(list, tip_hu, callback, cardInfo) self:ShowView(list, tip_hu, callback, cardInfo) end function M:ShowView(tiplist, tip_hu, callback, cardInfo) local _pop_tip_choice = UIPackage.CreateObject("Main_RunBeard", "Pop_tip_choice") local list_choose = _pop_tip_choice:GetChild("Lst_choose") _pop_tip_choice:GetChild("dibtn").onClick:Add(function() _pop_tip_choice:Dispose() end) -- --list 去重复的 if #tiplist == 1 then _pop_tip_choice:GetController("bipai").selectedIndex = 3 end local tip_list = membe_deep_clone(tiplist) for i = 1, #tiplist do for k = 1, #tip_list do if tip_list[k].weight ~= 4 and tiplist[i].id ~= tip_list[k].id then if tiplist[i].OpCard[1] == tip_list[k].OpCard[1] and tiplist[i].OpCard[2] == tip_list[k].OpCard[2] then tip_list[i].weight = 4 end end end end list_choose:RemoveChildrenToPool() for i = 1, #tip_list do if tip_list[i].weight ~=4 then local item_choose = list_choose:AddItemFromPool() self:SetIcon(item_choose, 2, tip_list[i].OpCard[1]) self:SetIcon(item_choose, 3, tip_list[i].OpCard[2]) self:SetIcon(item_choose, 1, tip_list[i].card) item_choose.onClick:Add(function() for k=1,list_choose.numChildren do list_choose:GetChildAt(k-1):GetController("zhong") .selectedIndex = 0 end item_choose:GetController("zhong").selectedIndex = 1 if tip_list[i].bi_list ==nil then callback(tip_list[i].id) self:CloseTip() else self.bilist={} self._chiid = tip_list[i].id self:CheckRatioCard(tip_list[i].bi_list,1,tip_list[i].card) end end) end end list_choose:ResizeToFit(#tip_list) _pop_tip_choice:GetChild("di1").width = list_choose.width+110 _pop_tip_choice.xy = Vector2((self._mainView.width - _pop_tip_choice.width)/2, -100) self._mainView:AddChild(_pop_tip_choice) self._pop_tip_choice = _pop_tip_choice end --比牌显示 function M:CheckRatioCard(_tiplist,index,chicard,_biid) if _biid ~=nil then self.bilist={} self.bilist[#self.bilist+1] = _biid end self._pop_tip_choice:GetController("bipai").selectedIndex = index local Bilist_choose = self._pop_tip_choice:GetChild("Bi_Lst_choose"..index) Bilist_choose:RemoveChildrenToPool() for i = 1, #_tiplist do local item = UIPackage.CreateObjectFromURL("ui://Main_RunBeard/Comp_choose") local item_choose = Bilist_choose:AddChild(item) self:SetIcon(item_choose, 2, _tiplist[i].opcard[1]) self:SetIcon(item_choose, 3, _tiplist[i].opcard[2]) self:SetIcon(item_choose, 1, chicard) item_choose:GetController("zhong") .selectedIndex = 0 item_choose.onClick:Add(function() for k=1,Bilist_choose.numChildren do Bilist_choose:GetChildAt(k-1):GetController("zhong") .selectedIndex = 0 end item_choose:GetController("zhong") .selectedIndex = 1 if _tiplist[i].bi_list ==nil then if tip_hu then local guo_msg = MsgWindow.new(self._root_view, "确定取消胡吗?", MsgWindow.MsgMode.OkAndCancel) guo_msg.onOk:Add(function() self.bilist[#self.bilist+1] = i-1 self._gamectr:SendAction(self._chiid,self.bilist) guo_msg:Close() self:CloseTip() self._cardInfo:UpdateIsOnClick(false) end) guo_msg:Show() else self.bilist[#self.bilist+1] = i-1 self._gamectr:SendAction(self._chiid,self.bilist) self:CloseTip() self._cardInfo:UpdateIsOnClick(false) end else self:CheckRatioCard(_tiplist[i].bi_list,2,chicard,i-1) end end) end Bilist_choose:ResizeToFit(#_tiplist) self._pop_tip_choice:GetChild("di"..index+1).width = Bilist_choose.width+110 end function M:SetIcon(item, index, card) item:GetChild("card" .. index).icon = UIPackage.GetItemURL("Main_RunBeard", CommonFun:GetCardItem("201_", card)) end function M:CloseTip() if (self._pop_tip_choice) then self._pop_tip_choice:Dispose() self._pop_tip_choice = nil end end return M