jxlast/lua_probject/main_project/main/zipai/ZPChiView.lua

132 lines
5.0 KiB
Lua
Raw Normal View History

2025-11-14 23:38:35 +08:00
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