changhong/lua_probject/extend_project/extend/zipai/fulushou/main/ZPChiView.lua

131 lines
4.9 KiB
Lua
Raw Normal View History

2025-05-24 14:29:14 +08:00
local M = {}
function M.InitChiView(gamectr, view, cardInfo)
2026-03-11 17:45:49 +08:00
local self = setmetatable({}, { __index = M })
2025-05-24 14:29:14 +08:00
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_RunBeardMaJiang", "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)
2026-03-11 17:45:49 +08:00
-- --list 去重复的
2025-05-24 14:29:14 +08:00
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
2026-03-11 17:45:49 +08:00
2025-05-24 14:29:14 +08:00
list_choose:RemoveChildrenToPool()
for i = 1, #tip_list do
2026-03-11 17:45:49 +08:00
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
2025-05-24 14:29:14 +08:00
end
list_choose:ResizeToFit(#tip_list)
2026-03-11 17:45:49 +08:00
_pop_tip_choice:GetChild("di1").width = list_choose.width + 110
_pop_tip_choice.xy = Vector2((self._mainView.width - _pop_tip_choice.width) / 2, -100)
2025-05-24 14:29:14 +08:00
self._mainView:AddChild(_pop_tip_choice)
self._pop_tip_choice = _pop_tip_choice
2026-03-11 17:45:49 +08:00
end
2025-05-24 14:29:14 +08:00
2026-03-11 17:45:49 +08:00
--比牌显示
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_RunBeardMaJiang/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
2025-05-24 14:29:14 +08:00
function M:SetIcon(item, index, card)
2026-03-11 17:45:49 +08:00
item:GetChild("card" .. index).icon = UIPackage.GetItemURL("Main_RunBeardMaJiang",
CommonFun:GetCardItem("201_", card))
2025-05-24 14:29:14 +08:00
end
function M:CloseTip()
if (self._pop_tip_choice) then
self._pop_tip_choice:Dispose()
self._pop_tip_choice = nil
end
end
return M