跺跺牌基本测试通过
|
|
@ -18,6 +18,7 @@ local _LocalConfigAllGame = {
|
|||
-- 22,
|
||||
66,90
|
||||
,91
|
||||
,92
|
||||
}
|
||||
|
||||
local FilterGame = function(games)
|
||||
|
|
|
|||
|
|
@ -126,9 +126,20 @@ end
|
|||
|
||||
local join_room_frame = 0
|
||||
|
||||
function M:PublicJoinRoom(cmd, roomid, tem, callback, group_id, pid)
|
||||
printlog("公共进入房间接口=============PublicJoinRoom")
|
||||
print("test,亲友圈ID是:", group_id)
|
||||
-- function M:PublicJoinRoom(cmd, roomid, tem, callback, group_id, pid)
|
||||
|
||||
function M:PublicJoinRoom(data, callback)
|
||||
data = data or {}
|
||||
local cmd = data.cmd
|
||||
local roomid = data.roomid
|
||||
local is_null = data.is_null or false
|
||||
local group_id = data.group_id
|
||||
local pid = data.pid
|
||||
local selectSeat = data.selectSeat
|
||||
if not cmd or not group_id then
|
||||
ViewUtil:ErrorTip("加入房间方法调用失败")
|
||||
return
|
||||
end
|
||||
-- 同一帧不重复调用
|
||||
local last_frame = join_room_frame
|
||||
join_room_frame = Time.frameCount
|
||||
|
|
@ -140,7 +151,7 @@ function M:PublicJoinRoom(cmd, roomid, tem, callback, group_id, pid)
|
|||
|
||||
local _data = {}
|
||||
if cmd == Protocol.WEB_FG_MATCH_ROOM then
|
||||
_data["is_null"] = tem
|
||||
_data["is_null"] = is_null
|
||||
--获得玩法配置定位信息,如果开启了配置则必须强制有定位才能进入房间
|
||||
local play = DataManager.groups:get(group_id):getPlay(pid)
|
||||
local pos = ""
|
||||
|
|
@ -151,7 +162,14 @@ function M:PublicJoinRoom(cmd, roomid, tem, callback, group_id, pid)
|
|||
get_gps(nil, {
|
||||
_callback_lad = function(flag)
|
||||
if flag then
|
||||
self:PublicJoinRoom(cmd, roomid, tem, callback, group_id, pid)
|
||||
self:PublicJoinRoom({
|
||||
cmd = cmd,
|
||||
roomid = roomid,
|
||||
is_null = is_null,
|
||||
group_id = group_id,
|
||||
pid = pid,
|
||||
selectSeat = selectSeat
|
||||
}, callback)
|
||||
return
|
||||
end
|
||||
ViewUtil.ErrorMsg(nil, 55, "未开启gps定位,不能创建gps定位房")
|
||||
|
|
@ -189,7 +207,14 @@ function M:PublicJoinRoom(cmd, roomid, tem, callback, group_id, pid)
|
|||
-- res.ReturnCode = -2
|
||||
-- callback(res)
|
||||
|
||||
self:PublicJoinRoom(Protocol.WEB_FG_JOIN_ROOM, json["room_id"], tem, callback, group_id, pid)
|
||||
self:PublicJoinRoom({
|
||||
cmd = Protocol.WEB_FG_JOIN_ROOM,
|
||||
roomid = json["room_id"],
|
||||
is_null = is_null,
|
||||
group_id = group_id,
|
||||
pid = pid,
|
||||
selectSeat = selectSeat
|
||||
}, callback)
|
||||
end)
|
||||
return
|
||||
end
|
||||
|
|
@ -224,6 +249,7 @@ function M:PublicJoinRoom(cmd, roomid, tem, callback, group_id, pid)
|
|||
DataManager.SelfUser.location = Location.new()
|
||||
end
|
||||
j_data["pos"] = DataManager.SelfUser.location:Location2String()
|
||||
j_data.selectSeat = selectSeat
|
||||
printlog("++++++++++++++++++++++++++++++++++++++++++")
|
||||
__ConntectGameServer(Protocol.GAME_JOIN_ROOM, room, room.server_host, j_data, function(res1)
|
||||
printlog("===============================-------------")
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ BaseWindow = {
|
|||
--全屏偏移
|
||||
_full_offset = true,
|
||||
--新窗口隐藏队列
|
||||
_new_hide = true,
|
||||
_new_hide = false,
|
||||
--模糊组件对象
|
||||
_put_map = true
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ function M:init(url)
|
|||
--亲友圈列表
|
||||
self._viewList_familyList = view:GetChild('familyList')
|
||||
self._viewList_familyList.itemRenderer = handler(self, self.FamilyListRenderer)
|
||||
self._viewList_familyList.onClickItem:Set(handler(self,self.ClickFamilyList))
|
||||
|
||||
view:GetController('showList').onChanged:Set(function(context)
|
||||
if context.sender.selectedIndex == 0 then
|
||||
|
|
@ -71,12 +72,12 @@ function M:init(url)
|
|||
|
||||
--管理页面
|
||||
view:GetChild('btn_manager').onClick:Set(function()
|
||||
FamilyManagerView.new({pageType=1})
|
||||
FamilyManagerView.new({ pageType = 1 })
|
||||
end)
|
||||
|
||||
--成员页面
|
||||
view:GetChild('btn_menber').onClick:Set(function()
|
||||
FamilyManagerView.new({pageType=2})
|
||||
FamilyManagerView.new({ pageType = 2 })
|
||||
end)
|
||||
|
||||
--新玩法管理
|
||||
|
|
@ -111,7 +112,7 @@ function M:FamilyTableRenderer(index, obj)
|
|||
local head = obj:GetChild(string.format("head%s", i))
|
||||
head:GetChild('btn_head').icon = ""
|
||||
head.onClick:Set(function(context)
|
||||
self:ClickMachRoom(context, tmp)
|
||||
self:ClickMachRoom(context, tmp, i)
|
||||
end)
|
||||
end
|
||||
obj:GetChild('icon').onClick:Set(function(context)
|
||||
|
|
@ -120,6 +121,9 @@ function M:FamilyTableRenderer(index, obj)
|
|||
if self._view:GetController('showPlayDetail').selectedIndex == 1 then
|
||||
self:ClickTableShowDetail({ type = 1, info = tmp, index = index })
|
||||
end
|
||||
obj:GetChild('text_roundNum').text = string.format("(0/%s)",
|
||||
ExtendManager.GetExtendConfig(tmp.gameId):GetGameInfo():LoadConfigOneInfo(tmp.config, tmp.hpData, "maxRound") or
|
||||
0)
|
||||
elseif index - #playList < #roomList then --存在的桌子
|
||||
local roomInfo = roomList[index - #playList + 1]
|
||||
tmp = self._group:getPlay(roomInfo.pid)
|
||||
|
|
@ -135,7 +139,7 @@ function M:FamilyTableRenderer(index, obj)
|
|||
btn:GetController('zuo').selectedIndex = 0
|
||||
btn:GetChild("btn_head").icon = "ui://Family/icon_luozuo"
|
||||
btn.onClick:Set(function(context)
|
||||
self:ClickJoinRoom(context, roomInfo)
|
||||
self:ClickJoinRoom(context, roomInfo, i)
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
|
@ -145,15 +149,19 @@ function M:FamilyTableRenderer(index, obj)
|
|||
if self._view:GetController('showPlayDetail').selectedIndex == 1 then
|
||||
self:ClickTableShowDetail({ type = 2, info = roomInfo, index = index })
|
||||
end
|
||||
obj:GetChild('text_roundNum').text = string.format("(%s/%s)", roomInfo.round, roomInfo.times)
|
||||
end
|
||||
obj:GetController('playerNum').selectedIndex = tmp.maxPlayers - 2
|
||||
obj:GetChild('text_playName').text = tmp.name
|
||||
obj:GetChild('text_roundNum').text = string.format("(0/%s)",
|
||||
ExtendManager.GetExtendConfig(tmp.gameId):GetGameInfo():LoadConfigOneInfo(tmp.config, tmp.hpData, "maxRound") or
|
||||
0)
|
||||
obj.icon = string.format("ui://Family/icon_table%s", (self.localTextDesk[tmp.gameId] or 0) + 1)
|
||||
end
|
||||
|
||||
--点击切换亲友圈
|
||||
function M:ClickFamilyList(context)
|
||||
local index = context.sender.selectedIndex
|
||||
self:EnterFamily(index+1)
|
||||
end
|
||||
|
||||
--进入亲友圈
|
||||
function M:EnterFamily(index_family, only)
|
||||
local groups = DataManager.groups.groupList
|
||||
|
|
@ -192,13 +200,17 @@ function M:UpdateRoom()
|
|||
end
|
||||
|
||||
--点击玩法创建桌子
|
||||
function M:ClickMachRoom(context, playinfo)
|
||||
function M:ClickMachRoom(context, playinfo, selectSeat)
|
||||
local group = DataManager.CurrenGroup
|
||||
local roomCtr = ControllerManager.GetController(RoomController)
|
||||
roomCtr:PublicJoinRoom(
|
||||
Protocol.WEB_FG_MATCH_ROOM,
|
||||
"",
|
||||
true,
|
||||
roomCtr:PublicJoinRoom({
|
||||
cmd = Protocol.WEB_FG_MATCH_ROOM,
|
||||
roomid = "",
|
||||
is_null = true,
|
||||
group_id = group.id,
|
||||
pid = playinfo.id,
|
||||
selectSeat = selectSeat
|
||||
},
|
||||
function(response)
|
||||
if (response.ReturnCode == -1) then
|
||||
ViewUtil.CloseModalWait2()
|
||||
|
|
@ -221,9 +233,9 @@ function M:ClickMachRoom(context, playinfo)
|
|||
{ _flag_showTip = true })
|
||||
ViewUtil.CloseModalWait2()
|
||||
end
|
||||
end,
|
||||
group.id,
|
||||
playinfo.id
|
||||
end
|
||||
|
||||
|
||||
)
|
||||
end
|
||||
|
||||
|
|
@ -240,11 +252,11 @@ function M:ClickTableShowDetail(data)
|
|||
local playinfo = data.info
|
||||
|
||||
detailView:GetChild('btn_createRoom').onClick:Set(function(context)
|
||||
self:ClickMachRoom(context, data.info)
|
||||
self:ClickMachRoom(context, data.info, 0)
|
||||
end)
|
||||
|
||||
detailView:GetChild('btn_joinRoom').onClick:Set(function(context)
|
||||
self:ClickJoinRoom(context, data.info)
|
||||
self:ClickJoinRoom(context, data.info, 0)
|
||||
end)
|
||||
|
||||
detailView:GetChild('btn_inviteRoom').onClick:Set(function(context)
|
||||
|
|
@ -303,13 +315,19 @@ function M:JieSanRomm(groupId, roomId)
|
|||
end
|
||||
|
||||
--点击桌子进入游戏
|
||||
function M:ClickJoinRoom(context, room)
|
||||
function M:ClickJoinRoom(context, room, selectSeat)
|
||||
local group = DataManager.CurrenGroup
|
||||
local roomCtr = ControllerManager.GetController(RoomController)
|
||||
roomCtr:PublicJoinRoom(
|
||||
Protocol.WEB_FG_JOIN_ROOM,
|
||||
room.id,
|
||||
true,
|
||||
{
|
||||
cmd = Protocol.WEB_FG_JOIN_ROOM,
|
||||
roomid = room.id,
|
||||
is_null = true,
|
||||
group_id = group.id,
|
||||
pid = room.pid,
|
||||
selectSeat = selectSeat
|
||||
},
|
||||
|
||||
function(response)
|
||||
if (response.ReturnCode == -1) then
|
||||
ViewUtil.CloseModalWait2()
|
||||
|
|
@ -329,9 +347,7 @@ function M:ClickJoinRoom(context, room)
|
|||
{ _flag_showTip = true })
|
||||
ViewUtil.CloseModalWait2()
|
||||
end
|
||||
end,
|
||||
group.id,
|
||||
room.pid
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,121 @@
|
|||
local FamilyChooseTimeView = {}
|
||||
|
||||
local M = FamilyChooseTimeView
|
||||
|
||||
function FamilyChooseTimeView.new(data, callback)
|
||||
setmetatable(M, { __index = BaseWindow })
|
||||
local self = setmetatable({}, { __index = M })
|
||||
self.class = "FamilyChooseTimeView"
|
||||
self._data = data
|
||||
self._callback = callback
|
||||
self._close_destroy = true
|
||||
self:init("ui://Family/FamilyChooseTime")
|
||||
return self
|
||||
end
|
||||
|
||||
function M:init(url)
|
||||
getmetatable(M).__index.init(self, url)
|
||||
|
||||
local view = self._view
|
||||
self._viewList = view:GetChild('list')
|
||||
self._viewList:SetVirtual()
|
||||
self._viewList.itemRenderer = handler(self, self.ListRenderer)
|
||||
self._viewList.onClickItem:Set(handler(self, self.ClickListItem))
|
||||
|
||||
view:GetChild('btn_confirm').onClick:Set(function()
|
||||
self._callback(self._data_times[self._left_Index], self._data_times[self._right_Index])
|
||||
self:Destroy()
|
||||
end)
|
||||
|
||||
view:GetChild('btn_cancel').onClick:Set(function()
|
||||
self:Destroy()
|
||||
end)
|
||||
|
||||
self:FillData()
|
||||
end
|
||||
|
||||
function M:InitTime()
|
||||
local dataTable = os.date("*t")
|
||||
dataTable.hour = 0
|
||||
dataTable.min = 0
|
||||
dataTable.sec = 0
|
||||
local timeStasmp = os.time(dataTable)
|
||||
return timeStasmp
|
||||
end
|
||||
|
||||
function M:ClickListItem(context)
|
||||
local item = context.data
|
||||
local index = self._viewList:GetChildIndex(item) + 1
|
||||
if index > self._selectedIndex then
|
||||
self._left_Index = self._selectedIndex
|
||||
self._right_Index = index
|
||||
else
|
||||
self._right_Index = self._selectedIndex
|
||||
self._left_Index = index
|
||||
end
|
||||
self._selectedIndex = index
|
||||
self._viewList:RefreshVirtualList()
|
||||
end
|
||||
|
||||
function M:ListRenderer(index, obj)
|
||||
if index >= self._left_Index - 1 and index < self._right_Index then
|
||||
obj.selected = true
|
||||
else
|
||||
obj.selected = false
|
||||
end
|
||||
if index == 0 then
|
||||
obj.text = "今天"
|
||||
return
|
||||
end
|
||||
if index == 1 then
|
||||
obj.text = "昨天"
|
||||
return
|
||||
end
|
||||
obj.text = os.date("%d", self._data_times[index + 1])
|
||||
end
|
||||
|
||||
function M:FillData()
|
||||
local data = self._data
|
||||
local days = data.days or 7
|
||||
self._data_times = {}
|
||||
local dataTable = os.date("*t")
|
||||
dataTable.hour = 0
|
||||
dataTable.min = 0
|
||||
dataTable.sec = 0
|
||||
local timeStasmp = os.time(dataTable)
|
||||
local leftTime = data.left or timeStasmp
|
||||
local rightTime = data.right or timeStasmp
|
||||
for i = 1, days do
|
||||
local thisTimeStamp = timeStasmp - (i - 1) * 86400
|
||||
if leftTime == thisTimeStamp then
|
||||
self._left_Index = i
|
||||
end
|
||||
if rightTime == thisTimeStamp then
|
||||
self._right_Index = i
|
||||
end
|
||||
table.insert(self._data_times, thisTimeStamp)
|
||||
end
|
||||
self._selectedIndex = self._left_Index
|
||||
self._viewList.numItems = days
|
||||
|
||||
|
||||
self:Show()
|
||||
end
|
||||
|
||||
-- 打开窗口
|
||||
function M:Show()
|
||||
getmetatable(M).__index.Show(self)
|
||||
end
|
||||
|
||||
-- 关闭窗口
|
||||
function M:Close()
|
||||
getmetatable(M).__index.Close(self)
|
||||
end
|
||||
|
||||
-- 销毁窗口
|
||||
function M:Destroy()
|
||||
|
||||
getmetatable(M).__index.Destroy(self)
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -0,0 +1,113 @@
|
|||
local FamilyUtilInput = import(".FamilyUtilInput")
|
||||
|
||||
local FamilyDissolveByRoomView = {}
|
||||
|
||||
local M = FamilyDissolveByRoomView
|
||||
|
||||
function FamilyDissolveByRoomView.new(data, callback)
|
||||
setmetatable(M, { __index = BaseWindow })
|
||||
local self = setmetatable({}, { __index = M })
|
||||
self.class = "FamilyDissolveByRoomView"
|
||||
self._data = data
|
||||
self._callback = callback
|
||||
self._close_destroy = true
|
||||
self:init("ui://Family/FamilyDissolveByRoom")
|
||||
return self
|
||||
end
|
||||
|
||||
function M:init(url)
|
||||
getmetatable(M).__index.init(self, url)
|
||||
|
||||
local view = self._view
|
||||
|
||||
self._input = view:GetChild('input_text')
|
||||
FamilyUtilInput:init(self._input, view:GetChild('comp_input'))
|
||||
|
||||
self._ctr_page = view:GetController('page')
|
||||
view:GetChild('btn_search').onClick:Set(handler(self, self.ClickSearch))
|
||||
|
||||
view:GetChild('btn_returnPage0').onClick:Set(handler(self,self.ClickReturnPage0))
|
||||
|
||||
view:GetChild('btn_confirmDissolve').onClick:Set(handler(self, self.ClickDissolve))
|
||||
self:FillData()
|
||||
end
|
||||
|
||||
function M:ClickDissolve()
|
||||
local _curren_msg =
|
||||
MsgWindow.new(
|
||||
self._root_view,
|
||||
'确定要解散该房间吗?',
|
||||
MsgWindow.MsgMode.OkAndCancel
|
||||
)
|
||||
_curren_msg.onOk:Add(
|
||||
function()
|
||||
ViewUtil.ShowModalWait2(self._root_view)
|
||||
local fgCtr = ControllerManager.GetController(NewGroupController)
|
||||
|
||||
fgCtr:FG_RemoveRoom(
|
||||
DataManager.CurrenGroup.id,
|
||||
self._searchRoom.id,
|
||||
function(res)
|
||||
ViewUtil.CloseModalWait2()
|
||||
if res.ReturnCode ~= 0 then
|
||||
ViewUtil.ErrorTip(res.ReturnCode, '删除房间失败!')
|
||||
return
|
||||
else
|
||||
ViewUtil:ErrorTip('删除房间成功!')
|
||||
self:ClickReturnPage0()
|
||||
end
|
||||
end
|
||||
)
|
||||
end
|
||||
)
|
||||
_curren_msg:Show()
|
||||
end
|
||||
|
||||
function M:ClickSearch()
|
||||
local group = DataManager.CurrenGroup
|
||||
local view = self._view
|
||||
for i, v in ipairs(group.rooms) do
|
||||
if v.id == self._input.text then
|
||||
local playInfo = group:getPlay(v.pid)
|
||||
self._searchRoom = v
|
||||
self._ctr_page.selectedIndex = 1
|
||||
view:GetChild('text_roomType').text = string.format("%s/%s局", v.round, v.times)
|
||||
view:GetChild('text_roomName').text = playInfo.name
|
||||
view:GetChild('list_player'):RemoveChildrenToPool()
|
||||
for i, v1 in ipairs(v.plist) do
|
||||
local obj = view:GetChild('list_player'):AddItemFromPool()
|
||||
obj:GetChild('text_name').text = v1.nick
|
||||
ImageLoad.Load(v1.portrait, obj:GetChild('btn_head')._iconObject)
|
||||
end
|
||||
return
|
||||
end
|
||||
end
|
||||
ViewUtil:ErrorTip("没有该房间号。")
|
||||
end
|
||||
|
||||
function M:ClickReturnPage0()
|
||||
self._searchRoom = nil
|
||||
self._input.text = ""
|
||||
self._ctr_page.selectedIndex = 0
|
||||
end
|
||||
|
||||
function M:FillData()
|
||||
self:Show()
|
||||
end
|
||||
|
||||
-- 打开窗口
|
||||
function M:Show()
|
||||
getmetatable(M).__index.Show(self)
|
||||
end
|
||||
|
||||
-- 关闭窗口
|
||||
function M:Close()
|
||||
getmetatable(M).__index.Close(self)
|
||||
end
|
||||
|
||||
-- 销毁窗口
|
||||
function M:Destroy()
|
||||
getmetatable(M).__index.Destroy(self)
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -0,0 +1,448 @@
|
|||
local FamilyEventView = {}
|
||||
|
||||
local M = FamilyEventView
|
||||
|
||||
function FamilyEventView.new(root)
|
||||
setmetatable(M, { __index = root })
|
||||
local self = setmetatable({}, { __index = M })
|
||||
return self
|
||||
end
|
||||
|
||||
function M:AddListener()
|
||||
local mgr_ctr = self._mgr_ctr
|
||||
mgr_ctr._cacheEvent:Clear()
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.AddPlay, handler(self, self._evtAddPlay))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.DelPlay, handler(self, self._evtDelPlay))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.UpdatePlay, handler(self, self._evtUpdatePlay))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.AddRoom, handler(self, self._evtAddRoom))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.DelRoom, handler(self, self._evtDelRoom))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.UpdateRoom, handler(self, self._evtUpdateRoom))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.UpdatePlayerInfo, handler(self, self._evtUpdatePlayerInfo))
|
||||
--mgr_ctr:AddEventListener(GroupMgrEvent.BeInvited, handler(self, self._evtInvited))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.UpdateGroup, handler(self, self._evtUpdateGroup))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.NewMailTip, handler(self, self._evtNewMailTip))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.InviteResponse, handler(self, self._evtInviteResponse))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.IsOpenChatRoom, handler(self, self._evtIsOpenChatRoom))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.ChatRoomData, handler(self, self._evtChatRoomData))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.OnNewApply, handler(self, self._evtOnNewApply))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.OnNewRecord, handler(self, self._evtOnNewRecord))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.Onpush_assistant, handler(self, self._evtOnPush_assistant))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.OnMemberState, handler(self, self._evtOnMemberState))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.OnFamilyReflash, handler(self, self._evtOnFamilyReflash))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.OnFamilyRoomReflash, handler(self, self._evtOnFamilyRoomReflash))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.OnFamilyMemberOut, handler(self, self._evtOnFamilyMemberOut))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.OnRefShowStartRoom, handler(self, self._evtOnRefShowStartRoom))
|
||||
mgr_ctr:AddEventListener(GroupMgrEvent.OnRefNotice, handler(self, self._evtOnRefNotice))
|
||||
print("家族添加监听")
|
||||
end
|
||||
|
||||
function M:RemoveAll()
|
||||
local mgr_ctr = self._mgr_ctr
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.AddPlay, handler(self, self._evtAddPlay))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.DelPlay, handler(self, self._evtDelPlay))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.UpdatePlay, handler(self, self._evtUpdatePlay))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.AddRoom, handler(self, self._evtAddRoom))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.DelRoom, handler(self, self._evtDelRoom))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.UpdateRoom, handler(self, self._evtUpdateRoom))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.UpdatePlayerInfo, handler(self, self._evtUpdatePlayerInfo))
|
||||
--mgr_ctr:RemoveEventListener(GroupMgrEvent.BeInvited, handler(self, self._evtInvited))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.UpdateGroup, handler(self, self._evtUpdateGroup))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.NewMailTip, handler(self, self._evtNewMailTip))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.InviteResponse, handler(self, self._evtInviteResponse))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.IsOpenChatRoom, handler(self, self._evtIsOpenChatRoom))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.ChatRoomData, handler(self, self._evtChatRoomData))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.OnNewApply, handler(self, self._evtOnNewApply))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.OnNewRecord, handler(self, self._evtOnNewRecord))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.Onpush_assistant, handler(self, self._evtOnPush_assistant))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.OnMemberState, handler(self, self._evtOnMemberState))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.OnFamilyRoomReflash, handler(self, self._evtOnFamilyRoomReflash))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.OnFamilyMemberOut, handler(self, self._evtOnFamilyMemberOut))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.OnRefNotice, handler(self, self._evtOnRefShowStartRoom))
|
||||
mgr_ctr:RemoveEventListener(GroupMgrEvent.OnRefNotice, handler(self, self._evtOnRefNotice))
|
||||
|
||||
|
||||
print("家族去除监听")
|
||||
end
|
||||
|
||||
function M:_evtAddPlay(...)
|
||||
local arg = { ... }
|
||||
print("family event _evtAddPlay")
|
||||
|
||||
local view = ViewManager.GetCurrenView()
|
||||
if view.class ~= "FamilyMainView" then
|
||||
return
|
||||
end
|
||||
|
||||
view:UpdateFamilyRoom(nil, view._group.id)
|
||||
end
|
||||
|
||||
function M:_evtDelPlay(...)
|
||||
local arg = { ... }
|
||||
|
||||
local view = ViewManager.GetCurrenView()
|
||||
if view.class ~= "FamilyMainView" then
|
||||
return
|
||||
end
|
||||
|
||||
view:UpdateFamilyRoom(nil, view._group.id)
|
||||
end
|
||||
|
||||
function M:_evtUpdatePlay(...)
|
||||
local arg = { ... }
|
||||
print("family event _evtUpdatePlay")
|
||||
|
||||
local view = ViewManager.GetCurrenView()
|
||||
if view.class ~= "FamilyMainView" then
|
||||
return
|
||||
end
|
||||
|
||||
view:UpdateFamilyRoom(nil, view._group.id)
|
||||
end
|
||||
|
||||
function M:_evtAddRoom(...)
|
||||
local arg = { ... }
|
||||
print("family event _evtAddRoom")
|
||||
end
|
||||
|
||||
function M:_evtDelRoom(...)
|
||||
local arg = { ... }
|
||||
print("family event _evtDelRoom")
|
||||
end
|
||||
|
||||
function M:_evtUpdateRoom(...)
|
||||
local arg = { ... }
|
||||
print("family event _evtUpdateRoom")
|
||||
end
|
||||
|
||||
function M:_evtUpdatePlayerInfo(...)
|
||||
local arg = { ... }
|
||||
print("family event _evtUpdatePlayerInfo")
|
||||
end
|
||||
|
||||
function M:_evtInvited(...)
|
||||
local arg = { ... }
|
||||
print("family event _evtInvited")
|
||||
end
|
||||
|
||||
function M:_evtUpdateGroup(...)
|
||||
local arg = { ... }
|
||||
local view = ViewManager.GetCurrenView()
|
||||
if view.class ~= "FamilyMainView" then
|
||||
return
|
||||
end
|
||||
|
||||
-- 刷新名字
|
||||
view:ReflashFamilyList()
|
||||
|
||||
-- 刷新打烊
|
||||
view:ReflashBan()
|
||||
print("family event _evtUpdateGroup")
|
||||
end
|
||||
|
||||
function M:_evtNewMailTip(...)
|
||||
local arg = { ... }
|
||||
print("family event _evtNewMailTip")
|
||||
end
|
||||
|
||||
function M:_evtOnNewApply(...)
|
||||
print("_evtOnNewApply")
|
||||
local arg = { ... }
|
||||
pt(arg)
|
||||
|
||||
local view = ViewManager.GetCurrenView()
|
||||
if view.class ~= "FamilyMainView" then
|
||||
return
|
||||
end
|
||||
view:ChangeOther()
|
||||
|
||||
local AuditNumber = BaseView.FindView("FamilyAuditNumber")
|
||||
|
||||
if AuditNumber then
|
||||
AuditNumber:OnNewApply(arg)
|
||||
end
|
||||
end
|
||||
|
||||
function M:_evtInviteResponse(...)
|
||||
local arg = { ... }
|
||||
local evt_data = arg[1]
|
||||
local invite_id = evt_data.invite_id
|
||||
local nik = evt_data.nik
|
||||
local g_name = evt_data.g_name
|
||||
local roomid = evt_data.roomid
|
||||
local pid = evt_data.pid
|
||||
local groupid = evt_data.groupId
|
||||
local playInfo = evt_data.pinfo
|
||||
local roomCtr = ControllerManager.GetController(RoomController)
|
||||
UIPackage.AddPackage('base/newgroup/ui/FGAssist')
|
||||
local imv =
|
||||
FGInvitedMsgView.new(
|
||||
self._root_view,
|
||||
groupid,
|
||||
playInfo,
|
||||
nik,
|
||||
function()
|
||||
roomCtr:PublicJoinRoom(
|
||||
Protocol.WEB_FG_JOIN_ROOM,
|
||||
roomid,
|
||||
groupid,
|
||||
function(response)
|
||||
if (response.ReturnCode == -1) then
|
||||
ViewUtil.ErrorMsg(self._root_view, response.ReturnCode, 'response.ReturnCode == -1')
|
||||
-- RestartGame()
|
||||
return
|
||||
end
|
||||
|
||||
if response.ReturnCode ~= 0 then
|
||||
ViewUtil.ErrorMsg(self._root_view, response.ReturnCode, '进入房间失败')
|
||||
-- ViewManager.ChangeView(ViewManager.View_Lobby)
|
||||
return
|
||||
else
|
||||
UpdateBeat:Remove(self.OnUpdate, self)
|
||||
ViewManager.ChangeView(ViewManager.View_Main, DataManager.CurrenRoom.game_id,
|
||||
{ _flag_showTip = true })
|
||||
end
|
||||
end,
|
||||
groupid,
|
||||
pid
|
||||
)
|
||||
end
|
||||
)
|
||||
-- imv:FillData(data)
|
||||
imv:Show()
|
||||
end
|
||||
|
||||
function M:_evtIsOpenChatRoom(...)
|
||||
local arg = { ... }
|
||||
self:ReflashChatRoomBtn()
|
||||
print("_evtIsOpenChatRoom")
|
||||
pt(arg)
|
||||
end
|
||||
|
||||
function M:_evtChatRoomData(...)
|
||||
local view = ViewManager.GetCurrenView()
|
||||
if view.class ~= "FamilyMainView" then
|
||||
return
|
||||
end
|
||||
view.com_FamilyChatRoom:Refalsh()
|
||||
ViewUtil.CloseModalWait2()
|
||||
end
|
||||
|
||||
function M:_evtOnNewRecord(...)
|
||||
local view = ViewManager.GetCurrenView()
|
||||
if view.class ~= "FamilyMainView" then
|
||||
return
|
||||
end
|
||||
local arg = { ... }
|
||||
view.com_FamilyChatRoom:OnNewChatRefalsh(arg[1])
|
||||
view:ReflashChatRoomRedPoint()
|
||||
end
|
||||
|
||||
function M:_evtOnMemberState(...)
|
||||
local view = ViewManager.GetCurrenView()
|
||||
if view.class ~= "FamilyMainView" then
|
||||
return
|
||||
end
|
||||
view:ReflashMember(...)
|
||||
--[[
|
||||
local view = ViewManager.GetCurrenView()
|
||||
if view.class ~= "FamilyMainView" then
|
||||
return
|
||||
end
|
||||
local arg = { ... }
|
||||
local group = DataManager.groups:get(view._group.id)
|
||||
|
||||
for _, player in pairs(arg[1].offlineUserId) do
|
||||
group.memberMap[player].online = 0
|
||||
end
|
||||
|
||||
for _, player in pairs(arg[1].onlineUserId) do
|
||||
group.memberMap[player].online = 0
|
||||
end
|
||||
|
||||
for _, player in pairs(arg[1].playingUserId) do
|
||||
group.memberMap[player].playing = "startPlaying"
|
||||
end
|
||||
]]
|
||||
end
|
||||
|
||||
function M:_evtOnPush_assistant(...)
|
||||
local view = ViewManager.GetCurrenView()
|
||||
if view.class ~= "FamilyMainView" then
|
||||
return
|
||||
end
|
||||
|
||||
local arg = { ... }
|
||||
local groupId = arg[1].id
|
||||
local lev = arg[1].lev
|
||||
|
||||
if view._group == nil or groupId ~= view._group.id then
|
||||
return
|
||||
end
|
||||
|
||||
view:ChangeOther()
|
||||
end
|
||||
|
||||
-- reflashType == "joinFamily" 成功加入了亲友圈
|
||||
-- reflashType == "outFamily" 成员退出了亲友圈
|
||||
-- reflashType == "kickoutFamily" 成员被踢出了亲友圈
|
||||
-- reflashType == "changeJoins" 修改了申请信息
|
||||
function M:_evtOnFamilyReflash(...)
|
||||
local view = ViewManager.GetCurrenView()
|
||||
if view.class ~= "FamilyMainView" then
|
||||
return
|
||||
end
|
||||
|
||||
local gMgr = ControllerManager.GetController(GroupMgrController)
|
||||
local group = DataManager.groups:get(gMgr.groupId)
|
||||
|
||||
local arg = { ... }
|
||||
local reflashType = arg[1].reflashType
|
||||
|
||||
if reflashType == "joinFamily" then
|
||||
local uid = arg[1].uid
|
||||
|
||||
if DataManager.SelfUser.account_id == uid then
|
||||
group.lev = 3
|
||||
view:Reflash()
|
||||
local tips = "成功加入【%s(%s)】"
|
||||
tips = string.format(tips, arg[1].name, arg[1].groupId)
|
||||
local win = MsgWindow.new(view._view, tips, MsgWindow.MsgMode.OnlyOk)
|
||||
win:Show()
|
||||
return
|
||||
end
|
||||
|
||||
--新加入的成员没带权限
|
||||
arg[1].usersDetail.lev = 3
|
||||
group:addMember(arg[1].usersDetail)
|
||||
|
||||
Broadcast.Send(Broadcast.OnMemberChange)
|
||||
end
|
||||
|
||||
if reflashType == "outFamily" then
|
||||
--local player = DataManager.
|
||||
|
||||
--local tips = "成员 【%s(%s)】退出了【%s(%s)】亲友圈"
|
||||
--string.format(tips, )
|
||||
|
||||
--MsgWindow.new(self._root_view, "确定要点过吗?")
|
||||
end
|
||||
|
||||
if reflashType == "changeJoins" then
|
||||
local uid = arg[1].uid
|
||||
local joins = arg[1].joins
|
||||
|
||||
group.joins = joins
|
||||
|
||||
if not group.joinsData or #group.joinsData < 1 then
|
||||
return
|
||||
end
|
||||
|
||||
for _, data in pairs(group.joinsData) do
|
||||
if data.id == uid then
|
||||
table.remove(group.joinsData, _)
|
||||
end
|
||||
end
|
||||
|
||||
Broadcast.Send(BroadcastEvent.OnJoinsChange)
|
||||
--[[
|
||||
view:ChangeOther()
|
||||
local win = BaseWindow.FindWindow("FamilyAuditNumber")
|
||||
if win then
|
||||
win:Reflash()
|
||||
end
|
||||
]]
|
||||
end
|
||||
end
|
||||
|
||||
-- 刷新房间和成员
|
||||
function M:_evtOnFamilyRoomReflash(...)
|
||||
local arg = { ... }
|
||||
print("_evtOnFamilyRoomReflash")
|
||||
pt(arg)
|
||||
local groupId = arg[1]
|
||||
|
||||
local view = ViewManager.GetCurrenView()
|
||||
if view.class ~= "FamilyMainView" then
|
||||
return
|
||||
end
|
||||
|
||||
if view._group == nil or groupId ~= view._group.id then
|
||||
return
|
||||
end
|
||||
|
||||
view:UpdateFamilyRoom(nil, groupId)
|
||||
view:ReflashMember()
|
||||
end
|
||||
|
||||
function M:_evtOnFamilyMemberOut(...)
|
||||
local arg = { ... }
|
||||
local arg = arg[1]
|
||||
|
||||
local uid = arg.uid
|
||||
local groupId = arg.groupId
|
||||
local name = arg.name
|
||||
local reflashType = arg.reflashType
|
||||
|
||||
local group = DataManager.groups:get(groupId)
|
||||
|
||||
local view = ViewManager.GetCurrenView()
|
||||
if view.class ~= "FamilyMainView" or not group then
|
||||
return
|
||||
end
|
||||
local tips = ""
|
||||
|
||||
if name == group.name then
|
||||
tips = "【%s(%s)】亲友圈已解散"
|
||||
tips = string.format(tips, group.name, groupId)
|
||||
else
|
||||
tips = "成员 【%s(%s)】退出了【%s(%s)】亲友圈"
|
||||
tips = string.format(tips, DataManager.SelfUser.nick_name, DataManager.SelfUser.account_id, group.name, groupId)
|
||||
end
|
||||
if uid == DataManager.SelfUser.account_id then
|
||||
DataManager.groups:del(groupId)
|
||||
if #DataManager.groups.groupList == 0 then
|
||||
view._close_destroy = true
|
||||
ViewManager.ChangeView(ViewManager.View_Lobby)
|
||||
else
|
||||
if view._group.id == groupId then
|
||||
view:Reflash()
|
||||
end
|
||||
end
|
||||
end
|
||||
local win = MsgWindow.new(view._view, tips, MsgWindow.MsgMode.OnlyOk)
|
||||
win:Show()
|
||||
end
|
||||
|
||||
function M:_evtOnRefShowStartRoom(...)
|
||||
local arg = { ... }
|
||||
|
||||
local evt_data = arg[1]
|
||||
|
||||
-- local view = ViewManager.GetCurrenView()
|
||||
-- if view.class ~= "FamilyMainView" then
|
||||
-- return
|
||||
-- end
|
||||
printlog("lingmeng _evtOnRefShowStartRoom", self._group.id, evt_data.groupId)
|
||||
if self._group.id == nil or evt_data.groupId ~= self._group.id then
|
||||
return
|
||||
end
|
||||
self:UpdateFamilyRoom(nil, self._group.id)
|
||||
end
|
||||
|
||||
function M:_evtOnRefNotice(...)
|
||||
local arg = { ... }
|
||||
|
||||
local evt_data = arg[1]
|
||||
|
||||
local view = ViewManager.GetCurrenView()
|
||||
if view.class ~= "FamilyMainView" then
|
||||
return
|
||||
end
|
||||
printlog("lingmeng _evtOnRefShowStartRoom", self._group.id, evt_data.groupId)
|
||||
if self._group.id == nil or evt_data.groupId ~= self._group.id then
|
||||
return
|
||||
end
|
||||
self:RefNotice(self._group.id)
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -2,6 +2,9 @@
|
|||
local ManagerChild_GamePlayView = import(".ManagerChild_GamePlayView")
|
||||
local ManagerChild_PlayerView = import(".ManagerChild_PlayerView")
|
||||
local ManagerChild_SettingView = import(".ManagerChild_SettingView")
|
||||
local ManagerChild_BlackView = import(".ManagerChild_BlackView")
|
||||
local ManagerChild_ForbidSameTableView = import(".ManagerChild_ForbidSameTableView")
|
||||
local ManagerChild_RecordView = import(".ManagerChild_RecordView")
|
||||
--成员
|
||||
local ManagerMenberChild_PlayerView = import(".ManagerMenberChild_PlayerView")
|
||||
local ManagerMenberChild_JoinsView = import(".ManagerMenberChild_JoinsView")
|
||||
|
|
@ -17,6 +20,9 @@ M.ManagerTable = {
|
|||
{ id = 1, title = "基本设置", view = ManagerChild_SettingView },
|
||||
{ id = 2, title = "成员管理", view = ManagerChild_PlayerView },
|
||||
{ id = 3, title = "快速组局", view = ManagerChild_GamePlayView },
|
||||
{ id = 4, title = "小黑屋管理", view = ManagerChild_BlackView },
|
||||
{ id = 4, title = "禁止同桌", view = ManagerChild_ForbidSameTableView},
|
||||
{ id = 4, title = "战绩统计", view = ManagerChild_RecordView},
|
||||
--成员管理页面
|
||||
{ id = 4, title = "成员列表", view = ManagerMenberChild_PlayerView },
|
||||
{ id = 5, title = "进驻申请", view = ManagerMenberChild_JoinsView },
|
||||
|
|
@ -26,13 +32,13 @@ M.ManagerTable = {
|
|||
}
|
||||
|
||||
M.ManagerShow = {
|
||||
{ 1,2, 3 }, --群主
|
||||
{ 1,2, 3,4,5,6}, --群主
|
||||
{}, --代理
|
||||
{} --用户
|
||||
}
|
||||
|
||||
M.ManagerMenberShow = {
|
||||
{ 3,4,5,6,7 }, --群主
|
||||
{ 6,6,7,8,9 }, --群主
|
||||
{}, --代理
|
||||
{} --用户
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,15 +17,16 @@ end
|
|||
function M:init(url)
|
||||
getmetatable(M).__index.init(self, url)
|
||||
|
||||
self._data.type = self._data.type or 1
|
||||
self._data.type = self._data.type or 0
|
||||
local view = self._view
|
||||
|
||||
self._viewList_player = view:GetChild('list_player')
|
||||
self._viewList_player:SetVirtual()
|
||||
self._viewList_player.itemRenderer = handler(self, self.PlayerRenderer)
|
||||
|
||||
self._viewText_search = self._view:GetChild('input_search')
|
||||
view:GetChild('btn_search').onClick:Set(handler(self,self.ClickSearch))
|
||||
view:GetChild('btn_return').onClick:Set(handler(self,self.ShowAllMenber))
|
||||
view:GetChild('btn_search').onClick:Set(handler(self, self.ClickSearch))
|
||||
view:GetChild('btn_return').onClick:Set(handler(self, self.ShowAllMenber))
|
||||
self:FillData()
|
||||
end
|
||||
|
||||
|
|
@ -33,12 +34,12 @@ function M:ClickSearch()
|
|||
local text = self._viewText_search.text
|
||||
local tmpTable = self._fillData
|
||||
local searchData = {}
|
||||
for i,v in ipairs(tmpTable) do
|
||||
if v.uid == tonumber(text) or string.find(v.nick,text) then
|
||||
table.insert(searchData,v)
|
||||
for i, v in ipairs(tmpTable) do
|
||||
if v.uid == tonumber(text) or string.find(v.nick, text) then
|
||||
table.insert(searchData, v)
|
||||
end
|
||||
end
|
||||
self._fillData= searchData
|
||||
self._fillData = searchData
|
||||
self._viewList_player.numItems = #self._fillData
|
||||
self._view:GetController('search').selectedIndex = 1
|
||||
end
|
||||
|
|
@ -49,14 +50,24 @@ function M:PlayerRenderer(index, obj)
|
|||
ImageLoad.Load(info.portrait, obj:GetChild('btn_head')._iconObject)
|
||||
obj:GetChild('text_name').text = info.nick
|
||||
obj:GetChild('text_id').text = string.format("标识:%s", info.uid)
|
||||
obj:GetChild('btn_add').onClick:Set(function()
|
||||
ViewUtil:ErrorTip("暂时还未开放此功能。")
|
||||
end)
|
||||
--根据不同type决定控制器的显示和添加按钮的功能
|
||||
if self._data.type == 2 then
|
||||
local uidData = self._data.uidData or {}
|
||||
obj:GetController('added').selectedIndex = info._flag_add or 0
|
||||
obj:GetChild('btn_add').onClick:Set(function()
|
||||
table.insert(uidData, info.uid)
|
||||
self._callback(uidData)
|
||||
obj:GetController('added').selectedIndex = 1
|
||||
if #uidData == 1 then
|
||||
self:Destroy()
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
function M:ShowAllMenber()
|
||||
self._viewText_search.text = ""
|
||||
self._fillData = DataManager.CurrenGroup.members
|
||||
self._fillData = self._data.menberTable or DataManager.CurrenGroup.members
|
||||
self._viewList_player.numItems = #self._fillData
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,45 @@
|
|||
local ManagerChild_BlackView = {}
|
||||
|
||||
local M = ManagerChild_BlackView
|
||||
|
||||
function ManagerChild_BlackView.new(data, callback)
|
||||
local self = setmetatable({}, { __index = M })
|
||||
self.class = "ManagerChild_BlackView"
|
||||
self._data = data or {}
|
||||
self._callback = callback
|
||||
self:init("ui://Family/ManagerChild_Black")
|
||||
return self
|
||||
end
|
||||
|
||||
function M:init(url)
|
||||
local root = self._data.root
|
||||
if not root then
|
||||
ViewUtil:ErrorTip("点击太快,请重新打开页面")
|
||||
return
|
||||
end
|
||||
local page = root._view:GetChild('page')
|
||||
ViewUtil.LoadPage(page, url, function(view)
|
||||
self._view = view
|
||||
end)
|
||||
end
|
||||
|
||||
function M:FillData()
|
||||
|
||||
end
|
||||
|
||||
-- 打开窗口
|
||||
function M:Show()
|
||||
getmetatable(M).__index.Show(self)
|
||||
end
|
||||
|
||||
-- 关闭窗口
|
||||
function M:Close()
|
||||
getmetatable(M).__index.Close(self)
|
||||
end
|
||||
|
||||
-- 销毁窗口
|
||||
function M:Destroy()
|
||||
getmetatable(M).__index.Destroy(self)
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -0,0 +1,168 @@
|
|||
local FamilyMenberManagerDisDetailView = import(".FamilyMenberManagerDisDetailView")
|
||||
|
||||
local ManagerChild_ForbidSameTableView = {}
|
||||
|
||||
local M = ManagerChild_ForbidSameTableView
|
||||
|
||||
function ManagerChild_ForbidSameTableView.new(data, callback)
|
||||
local self = setmetatable({}, { __index = M })
|
||||
self.class = "ManagerChild_ForbidSameTableView"
|
||||
self._data = data or {}
|
||||
self._callback = callback
|
||||
self:init("ui://Family/ManagerChild_ForbidSameTable")
|
||||
return self
|
||||
end
|
||||
|
||||
function M:init(url)
|
||||
local root = self._data.root
|
||||
if not root then
|
||||
ViewUtil:ErrorTip("点击太快,请重新打开页面")
|
||||
return
|
||||
end
|
||||
local page = root._view:GetChild('page')
|
||||
ViewUtil.LoadPage(page, url, function(view)
|
||||
self._view = view
|
||||
|
||||
self._viewList_list = view:GetChild('list_menber')
|
||||
self._viewList_list:SetVirtual()
|
||||
self._viewList_list.itemRenderer = handler(self, self.ListRenderer)
|
||||
|
||||
self:FillData()
|
||||
end)
|
||||
end
|
||||
|
||||
function M:ListRenderer(index, obj)
|
||||
obj.text = string.format("限制组(%s)", index + 1)
|
||||
local list = obj:GetChild('list')
|
||||
list:RemoveChildrenToPool()
|
||||
local uidData = {}
|
||||
local uidMap = {}
|
||||
local deskId = -1
|
||||
if index < #self._resList then
|
||||
deskId = self._resList[index + 1].deskId
|
||||
for i, v in ipairs(self._resList[index + 1].deskList) do
|
||||
local obj1 = list:AddItemFromPool()
|
||||
obj1:GetController('head').selectedIndex = 1
|
||||
ImageLoad.Load(v.portrait, obj1._iconObject)
|
||||
obj1:GetChild('text_name').text = v.nick
|
||||
obj1:GetChild('text_id').text = v.uid
|
||||
table.insert(uidData, v.uid)
|
||||
uidMap[v.uid] = 1
|
||||
obj1:GetChild('btn_remove').onClick:Set(function()
|
||||
for i = 1, #uidData do
|
||||
table.remove(uidData, i)
|
||||
self:SetForbid(deskId, uidData, obj.text)
|
||||
return
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
local obj1 = list:AddItemFromPool()
|
||||
obj1:GetChild('btn_add').onClick:Set(function()
|
||||
if #uidData > 0 then
|
||||
self:GetAllMember(function()
|
||||
local tempMenbers = {}
|
||||
for i, v in ipairs(DataManager.CurrenGroup.members) do
|
||||
local tempMenber = {}
|
||||
for k, v in pairs(v) do
|
||||
tempMenber[k] = v
|
||||
end
|
||||
tempMenber._flag_add = uidMap[v.uid] or 0
|
||||
table.insert(tempMenbers, tempMenber)
|
||||
end
|
||||
FamilyMenberManagerDisDetailView.new({ menberTable = tempMenbers, type = 2, uidData = uidData },
|
||||
function(uidData)
|
||||
self:SetForbid(deskId, uidData, obj.text)
|
||||
end)
|
||||
end)
|
||||
else
|
||||
FamilyMenberManagerDisDetailView.new({ type = 2 }, function(uidData)
|
||||
self:SetForbid(deskId, uidData, obj.text)
|
||||
end)
|
||||
end
|
||||
end)
|
||||
obj1:GetController('head').selectedIndex = 0
|
||||
list:ResizeToFit(list.numItems)
|
||||
obj:GetChild('btn_delete').onClick:Set(function()
|
||||
if deskId == -1 then
|
||||
ViewUtil:ErrorTip("该限制组不能删除")
|
||||
else
|
||||
self:SetForbid(deskId, {}, obj.text)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function M:SetForbid(id, banList, name)
|
||||
ViewUtil.ShowModalWait2()
|
||||
local fgCtr = ControllerManager.GetController(NewGroupController)
|
||||
fgCtr:FG_SetBanTable1(DataManager.CurrenGroup.id, id, banList, name, function(res)
|
||||
ViewUtil.CloseModalWait2()
|
||||
if res.ReturnCode ~= 0 then
|
||||
ViewUtil:ErrorTip(res.ReturnCode, "禁止同桌设置失败")
|
||||
else
|
||||
self:GetForbidSameDesk()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function M:GetForbidSameDesk()
|
||||
local fgCtr = ControllerManager.GetController(NewGroupController)
|
||||
|
||||
ViewUtil.ShowModalWait2()
|
||||
|
||||
fgCtr:FG_GetBanTable1(DataManager.CurrenGroup.id, function(res)
|
||||
ViewUtil.CloseModalWait2()
|
||||
if res.ReturnCode ~= 0 then
|
||||
ViewUtil.ErrorTip(res.ReturnCode, "获取禁止同桌列表")
|
||||
return
|
||||
end
|
||||
self._resList = res.Data.ban_list or {}
|
||||
if self._viewList_list.numItems == #self._resList + 1 then
|
||||
self._viewList_list:RefreshVirtualList()
|
||||
else
|
||||
self._viewList_list.numItems = #self._resList + 1
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function M:GetAllMember(callback)
|
||||
local group = DataManager.CurrenGroup
|
||||
if #group.members == 0 then
|
||||
local fgCtr = ControllerManager.GetController(NewGroupController)
|
||||
fgCtr:FG_GroupMembers(group.id, 0, group.total_member_num, false, 1, function(res)
|
||||
if res.ReturnCode ~= 0 then
|
||||
ViewUtil.ErrorTip(res.ReturnCode, "获取成员列表失败")
|
||||
return
|
||||
end
|
||||
if callback then
|
||||
callback()
|
||||
end
|
||||
end)
|
||||
return
|
||||
end
|
||||
if callback then
|
||||
callback()
|
||||
end
|
||||
end
|
||||
|
||||
function M:FillData()
|
||||
self:GetForbidSameDesk()
|
||||
self:GetAllMember()
|
||||
end
|
||||
|
||||
-- 打开窗口
|
||||
function M:Show()
|
||||
getmetatable(M).__index.Show(self)
|
||||
end
|
||||
|
||||
-- 关闭窗口
|
||||
function M:Close()
|
||||
getmetatable(M).__index.Close(self)
|
||||
end
|
||||
|
||||
-- 销毁窗口
|
||||
function M:Destroy()
|
||||
getmetatable(M).__index.Destroy(self)
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
local ManagerChild_RecordOperationView = {}
|
||||
|
||||
local M = ManagerChild_RecordOperationView
|
||||
|
||||
function ManagerChild_RecordOperationView.new(data, callback)
|
||||
local self = setmetatable({}, { __index = M })
|
||||
self.class = "ManagerChild_RecordOperationView"
|
||||
self._data = data or {}
|
||||
self._callback = callback
|
||||
self:init("ui://Family/ManagerChild_RecordOperation")
|
||||
return self
|
||||
end
|
||||
|
||||
function M:init(url)
|
||||
local root = self._data.root
|
||||
if not root then
|
||||
ViewUtil:ErrorTip("点击太快,请重新打开页面")
|
||||
return
|
||||
end
|
||||
local page = root._view:GetChild('page')
|
||||
ViewUtil.LoadPage(page, url, function(view)
|
||||
self._view = view
|
||||
end)
|
||||
end
|
||||
|
||||
function M:FillData()
|
||||
|
||||
end
|
||||
|
||||
-- 打开窗口
|
||||
function M:Show()
|
||||
getmetatable(M).__index.Show(self)
|
||||
end
|
||||
|
||||
-- 关闭窗口
|
||||
function M:Close()
|
||||
getmetatable(M).__index.Close(self)
|
||||
end
|
||||
|
||||
-- 销毁窗口
|
||||
function M:Destroy()
|
||||
getmetatable(M).__index.Destroy(self)
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
local FamilyUtilInput = import(".FamilyUtilInput")
|
||||
local FamilyChooseTimeView = import(".FamilyChooseTimeView")
|
||||
|
||||
local ManagerChild_RecordView = {}
|
||||
|
||||
local M = ManagerChild_RecordView
|
||||
|
||||
function ManagerChild_RecordView.new(data, callback)
|
||||
local self = setmetatable({}, { __index = M })
|
||||
self.class = "ManagerChild_RecordView"
|
||||
self._data = data or {}
|
||||
self._callback = callback
|
||||
self:init("ui://Family/ManagerChild_Record")
|
||||
return self
|
||||
end
|
||||
|
||||
function M:init(url)
|
||||
local root = self._data.root
|
||||
if not root then
|
||||
ViewUtil:ErrorTip("点击太快,请重新打开页面")
|
||||
return
|
||||
end
|
||||
local page = root._view:GetChild('page')
|
||||
ViewUtil.LoadPage(page, url, function(view)
|
||||
self._view = view
|
||||
|
||||
self._ctr_serch = view:GetController('search')
|
||||
view:GetChild('btn_search').onClick:Set(function()
|
||||
self._ctr_serch.selectedIndex = 1
|
||||
end)
|
||||
|
||||
self._viewInput = view:GetChild('input_id')
|
||||
FamilyUtilInput:init(self._viewInput, view:GetChild('comp_input'))
|
||||
view:GetChild('btn_find').onClick:Set(handler(self, self.ClickFind))
|
||||
|
||||
view:GetChild('btn_time').onClick:Set(function()
|
||||
FamilyChooseTimeView.new({left=self._left_time,right=self._right_time}, function(lef, rig)
|
||||
self._left_time = lef
|
||||
self._right_time = rig
|
||||
self:RefenTime()
|
||||
end)
|
||||
end)
|
||||
|
||||
self:FillData()
|
||||
end)
|
||||
end
|
||||
|
||||
function M:ClickFind()
|
||||
if #self._viewInput.text == 0 then
|
||||
ViewUtil:ErrorTip("请输出标识id")
|
||||
return
|
||||
end
|
||||
ViewUtil:ErrorTip("此id暂无战绩")
|
||||
end
|
||||
|
||||
function M:RefenTime()
|
||||
self._view:GetChild('btn_time').text = string.format("%s-%s", os.date("%m月%d号", self._right_time),
|
||||
os.date("%m月%d号", self._left_time))
|
||||
end
|
||||
|
||||
function M:FillData()
|
||||
local view = self._view
|
||||
|
||||
local timeStamp = FamilyChooseTimeView:InitTime()
|
||||
self._left_time = timeStamp
|
||||
self._right_time = timeStamp
|
||||
self:RefenTime()
|
||||
end
|
||||
|
||||
-- 打开窗口
|
||||
function M:Show()
|
||||
getmetatable(M).__index.Show(self)
|
||||
end
|
||||
|
||||
-- 关闭窗口
|
||||
function M:Close()
|
||||
getmetatable(M).__index.Close(self)
|
||||
end
|
||||
|
||||
-- 销毁窗口
|
||||
function M:Destroy()
|
||||
getmetatable(M).__index.Destroy(self)
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -1,3 +1,5 @@
|
|||
local FamilyDissolveByRoomView = import(".FamilyDissolveByRoomView")
|
||||
|
||||
local FamilyRoomCardView = import(".FamilyRoomCardView")
|
||||
|
||||
local ManagerChild_SettingView = {}
|
||||
|
|
@ -24,7 +26,7 @@ function M:init(url)
|
|||
self._view = view
|
||||
|
||||
view:GetChild('btn_dissolveRoom').onClick:Set(function()
|
||||
|
||||
FamilyDissolveByRoomView.new()
|
||||
end)
|
||||
|
||||
view:GetChild('btn_add').onClick:Set(function()
|
||||
|
|
@ -32,9 +34,12 @@ function M:init(url)
|
|||
end)
|
||||
|
||||
view:GetChild('btn_record').onClick:Set(function()
|
||||
|
||||
ViewUtil:ErrorTip("页面缺失")
|
||||
end)
|
||||
view:GetChild('btn_copy').onClick:Set(function()
|
||||
ViewUtil:ErrorTip("复制成功")
|
||||
GameApplication.Instance:CopyToClipboard(view:GetChild('text_id').text)
|
||||
end)
|
||||
|
||||
view:GetChild('btn_dissolveRoomDetail').onClick:Set(handler(self, self.ClickDissolveDetail))
|
||||
view:GetChild('btn_witness').onClick:Set(handler(self, self.ClickWitnessDetail))
|
||||
|
||||
|
|
@ -56,13 +61,13 @@ function M:ClickWitnessDetail()
|
|||
|
||||
end
|
||||
|
||||
function M:ClickCheckHideDesk()
|
||||
function M:ClickCheckHideDesk(context)
|
||||
local mgr_ctr = ControllerManager.GetController(GroupMgrController)
|
||||
mgr_ctr:FG_SetShowStartRoom(DataManager.CurrenGroup.id, self._viewCheck_hideDesk.selected and 1 or 0, function(res)
|
||||
mgr_ctr:FG_SetShowStartRoom(DataManager.CurrenGroup.id, context.sender.selected and 1 or 0, function(res)
|
||||
--因为没有回调,这边先把值设置好
|
||||
if res.ReturnCode ~= 0 then
|
||||
ViewUtil.ErrorTip(res.ReturnCode,"设置失败")
|
||||
self._viewCheck_hideDesk.selected = not self._viewCheck_hideDesk.selected
|
||||
ViewUtil.ErrorTip(res.ReturnCode, "设置失败")
|
||||
context.sender.selected = not context.sender.selected
|
||||
return
|
||||
else
|
||||
ViewUtil:ErrorTip("设置成功")
|
||||
|
|
@ -70,12 +75,22 @@ function M:ClickCheckHideDesk()
|
|||
end)
|
||||
end
|
||||
|
||||
function M:ClickCheckDissolveRoom()
|
||||
|
||||
function M:ClickCheckDissolveRoom(context)
|
||||
ViewUtil:ErrorTip("协议缺失")
|
||||
context.sender.selected = not context.sender.selected
|
||||
end
|
||||
|
||||
function M:ClickCheckWitness()
|
||||
|
||||
function M:ClickCheckWitness(context)
|
||||
local fgCtr = ControllerManager.GetController(NewGroupController)
|
||||
fgCtr:SetCanWatch(DataManager.CurrenGroup.id, context.sender.selected and 1 or 0, function(res)
|
||||
if res.ReturnCode ~= 0 then
|
||||
ViewUtil.ErrorTip(res.ReturnCode)
|
||||
context.sender.selected = not context.sender.selected
|
||||
return
|
||||
else
|
||||
ViewUtil:ErrorTip("设置成功")
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function M:FillData()
|
||||
|
|
@ -87,8 +102,8 @@ function M:FillData()
|
|||
view:GetChild('text_id').text = group.id
|
||||
view:GetChild('text_fangka').text = group.groupDiamo
|
||||
|
||||
self._viewCheck_hideDesk.selected = group.isOpenStartRoom == 1
|
||||
self._viewCheck_witness.selected = group.isWatch == 1
|
||||
self._viewCheck_hideDesk.selected = group.isOpenStartRoom == 1
|
||||
self._viewCheck_witness.selected = group.isWatch == 1
|
||||
end
|
||||
|
||||
-- 打开窗口
|
||||
|
|
|
|||
|
|
@ -419,9 +419,14 @@ function M:ReconnectRoom(groupId)
|
|||
if roomId and #roomId > 0 then
|
||||
local roomCtr = ControllerManager.GetController(RoomController)
|
||||
roomCtr:PublicJoinRoom(
|
||||
Protocol.WEB_FG_JOIN_ROOM,
|
||||
roomId,
|
||||
false,
|
||||
{
|
||||
cmd = Protocol.WEB_FG_JOIN_ROOM,
|
||||
roomid = roomId,
|
||||
is_null = false,
|
||||
group_id = groupId,
|
||||
pid = 0,
|
||||
selectSeat = 0
|
||||
},
|
||||
function(response)
|
||||
if (response.ReturnCode == -1) then
|
||||
ViewUtil.ErrorMsg(self._root_view, response.ReturnCode, 'response.ReturnCode == -1')
|
||||
|
|
@ -439,8 +444,7 @@ function M:ReconnectRoom(groupId)
|
|||
DataManager.SelfUser.room_id = ""
|
||||
ViewManager.ChangeView(ViewManager.View_Main, DataManager.CurrenRoom.game_id)
|
||||
end
|
||||
end,
|
||||
groupId
|
||||
end
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -333,9 +333,13 @@ function M:ReconnectRoom(groupId, times)
|
|||
if roomId and #roomId > 0 then
|
||||
local roomCtr = ControllerManager.GetController(RoomController)
|
||||
roomCtr:PublicJoinRoom(
|
||||
Protocol.WEB_FG_JOIN_ROOM,
|
||||
roomId,
|
||||
false,
|
||||
{
|
||||
cmd = Protocol.WEB_FG_JOIN_ROOM,
|
||||
roomid = roomId,
|
||||
is_null = false,
|
||||
group_id = groupId,
|
||||
selectSeat = 0
|
||||
},
|
||||
function(response)
|
||||
if (response.ReturnCode == -1) then
|
||||
ViewUtil.CloseModalWait2()
|
||||
|
|
@ -370,8 +374,7 @@ function M:ReconnectRoom(groupId, times)
|
|||
end)
|
||||
ViewManager.ChangeView(ViewManager.View_Main, DataManager.CurrenRoom.game_id)
|
||||
end
|
||||
end,
|
||||
groupId
|
||||
end
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -18,13 +18,15 @@ end
|
|||
|
||||
local function RefalshBtnClose(self)
|
||||
local btn_close = self._view:GetChild("btn_closeRoom")
|
||||
local btn_close_cSytle = btn_close:GetController("cStyle")
|
||||
local roomOwner = self._room.player_list[1].self_user.account_id
|
||||
if btn_close then
|
||||
local btn_close_cSytle = btn_close:GetController("cStyle")
|
||||
local roomOwner = self._room.player_list[1].self_user.account_id
|
||||
|
||||
if roomOwner == DataManager.SelfUser.account_id then
|
||||
btn_close_cSytle.selectedIndex = 0
|
||||
else
|
||||
btn_close_cSytle.selectedIndex = 1
|
||||
if roomOwner == DataManager.SelfUser.account_id then
|
||||
btn_close_cSytle.selectedIndex = 0
|
||||
else
|
||||
btn_close_cSytle.selectedIndex = 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -544,7 +546,11 @@ function M:InitView(url, isHideIpAdds)
|
|||
end
|
||||
end--]]
|
||||
-------------------------lingmeng---------------------------
|
||||
_view:GetChild('text_roomId').text = string.format("房间:%s", self._room.room_id)
|
||||
local text_roomId = _view:GetChild('text_roomId')
|
||||
if text_roomId then
|
||||
text_roomId.text = string.format("房间:%s", self._room.room_id)
|
||||
end
|
||||
|
||||
|
||||
local btn_inviteFamily = self._view:GetChild('btn_inviteFamily')
|
||||
if btn_inviteFamily then
|
||||
|
|
|
|||
|
|
@ -445,3 +445,52 @@ function ViewUtil.LoadPage(loader, url, callback)
|
|||
end, 1):Start()
|
||||
end
|
||||
end
|
||||
|
||||
local function RecursionBinarySearch(table, num, type, left, right)
|
||||
if not table then
|
||||
return nil
|
||||
end
|
||||
if #table == 0 then
|
||||
return 1
|
||||
end
|
||||
left = left or 1
|
||||
right = right or #table
|
||||
if left == right then
|
||||
if type == 0 then
|
||||
return num >= table[left] and left + 1 or left
|
||||
else
|
||||
return num <= table[left] and left + 1 or left
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
if type == 0 then
|
||||
local index = math.ceil((left + right) / 2)
|
||||
|
||||
if num >= table[index] then
|
||||
left = index
|
||||
else
|
||||
right = index - 1
|
||||
end
|
||||
else
|
||||
local index = math.floor((left + right) / 2)
|
||||
|
||||
if num <= table[index] then
|
||||
left = index + 1
|
||||
else
|
||||
right = index
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
return RecursionBinarySearch(table, num, type or 0, left, right)
|
||||
end
|
||||
|
||||
---comment 二分法查找下标
|
||||
---@param table 查询表
|
||||
---@param num 当前值
|
||||
---@param type 类型 0为升序,1为降序
|
||||
---@return integer|nil
|
||||
function ViewUtil.BinarySearch(table, num, type)
|
||||
return RecursionBinarySearch(table, num, type)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -0,0 +1,47 @@
|
|||
local CS_Win_Type = {
|
||||
"点炮",
|
||||
"自摸",
|
||||
"十三烂",
|
||||
"七星十三烂",
|
||||
"碰碰胡",
|
||||
"碰碰胡清一色",
|
||||
"碰碰胡字一色",
|
||||
"七小对",
|
||||
"七小对清一色",
|
||||
"七小对字一色",
|
||||
"清一色真胡",
|
||||
"清一色假胡",
|
||||
"字一色真胡",
|
||||
"字一色假胡",
|
||||
"天胡",
|
||||
"地胡",
|
||||
"平胡",
|
||||
"抢杠胡",
|
||||
"杠上花",
|
||||
"烧庄",
|
||||
"四归一",
|
||||
"八归一",
|
||||
"十二归一",
|
||||
"清一色假胡四归一",
|
||||
"清一色真胡四归一",
|
||||
"清一色假胡八归一",
|
||||
"清一色真胡八归一",
|
||||
"清一色假胡十二归一",
|
||||
"清一色真胡十二归一",
|
||||
"字一色假胡四归一",
|
||||
"字一色真胡四归一",
|
||||
"字一色假胡八归一",
|
||||
"字一色真胡八归一",
|
||||
"字一色假胡十二归一",
|
||||
"字一色真胡十二归一",
|
||||
"清一色七对四归一",
|
||||
"清一色七对八归一",
|
||||
"清一色七对十二归一",
|
||||
"字一色七对四归一",
|
||||
"字一色七对八归一",
|
||||
"字一色七对十二归一",
|
||||
"七对四归一",
|
||||
"七对八归一",
|
||||
"七对十二归一"
|
||||
}
|
||||
return CS_Win_Type
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
-- 检测牌是否存在
|
||||
local function checkCard(eventCard,cardList,num)
|
||||
local function checkCard(eventCard, cardList, num)
|
||||
num = num == nil and 1 or num
|
||||
local result = 0
|
||||
for i = 1,#cardList do
|
||||
for i = 1, #cardList do
|
||||
if (cardList[i] == eventCard) then
|
||||
result = result + 1
|
||||
if(result ==num) then
|
||||
if (result == num) then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
|
@ -14,24 +14,24 @@ local function checkCard(eventCard,cardList,num)
|
|||
end
|
||||
|
||||
-- 移除指定数量的牌
|
||||
local function removeCard(cardList, card,count)
|
||||
for i=1,count do
|
||||
list_remove(cardList,card)
|
||||
local function removeCard(cardList, card, count)
|
||||
for i = 1, count do
|
||||
list_remove(cardList, card)
|
||||
end
|
||||
end
|
||||
|
||||
local function checkCardAndRomve(eventCard,cardList,num)
|
||||
if(checkCard(eventCard,cardList,num)) then
|
||||
removeCard(cardList,eventCard,num)
|
||||
local function checkCardAndRomve(eventCard, cardList, num)
|
||||
if (checkCard(eventCard, cardList, num)) then
|
||||
removeCard(cardList, eventCard, num)
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
-- 获取列表中牌数量
|
||||
local function cardNum(eventCard,cardList)
|
||||
local function cardNum(eventCard, cardList)
|
||||
local result = 0
|
||||
for i=1,#cardList do
|
||||
for i = 1, #cardList do
|
||||
local card = cardList[i]
|
||||
if (card == eventCard) then
|
||||
result = result + 1
|
||||
|
|
@ -40,7 +40,7 @@ local function cardNum(eventCard,cardList)
|
|||
return result
|
||||
end
|
||||
|
||||
local zhongid = 412
|
||||
local zhongid = 0
|
||||
|
||||
|
||||
local M = {
|
||||
|
|
@ -54,16 +54,16 @@ local M = {
|
|||
}
|
||||
|
||||
|
||||
function M:push(cardGroup)
|
||||
self.stack[#self.stack+1] = cardGroup
|
||||
function M:push(cardGroup)
|
||||
self.stack[#self.stack + 1] = cardGroup
|
||||
end
|
||||
|
||||
function M:rollBack()
|
||||
local cardGroup = self.stack[#self.stack]
|
||||
table.remove(self.stack,#self.stack)
|
||||
for _,card in ipairs(cardGroup) do
|
||||
table.remove(self.stack, #self.stack)
|
||||
for _, card in ipairs(cardGroup) do
|
||||
if (card == zhongid) then
|
||||
self.zhong_count = self.zhong_count +1
|
||||
self.zhong_count = self.zhong_count + 1
|
||||
else
|
||||
self.cardList[#self.cardList + 1] = card
|
||||
end
|
||||
|
|
@ -71,36 +71,75 @@ function M:rollBack()
|
|||
table.sort(self.cardList)
|
||||
end
|
||||
|
||||
function M:tryShunzi(card)
|
||||
if (card < 400 and card % 100 > 7) then
|
||||
function M:tryShunzi(card)
|
||||
if card > 400 or card % 100 > 7 then
|
||||
return false
|
||||
end
|
||||
if (checkCard(card + 1, self.cardList) and checkCard(card + 2, self.cardList)) then
|
||||
if (checkCard(card + 1, self.cardList) and checkCard(card + 2, self.cardList)) then
|
||||
removeCard(self.cardList, card, 1)
|
||||
removeCard(self.cardList, card + 1, 1)
|
||||
removeCard(self.cardList, card + 2, 1)
|
||||
local cardGroup = {card,card+1,card+2}
|
||||
local cardGroup = { card, card + 1, card + 2 }
|
||||
self:push(cardGroup)
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function M:tryKezi(card)
|
||||
--特殊牌,风牌也就是东南西北的成顺逻辑,中发白逻辑在普通顺子里
|
||||
function M:tryFengShunzi(card)
|
||||
--只有牌里有东南风的时候才能成顺,401东风,402南方
|
||||
if self._flag_zikechengshun ~= 0 then
|
||||
return false
|
||||
end
|
||||
local canShunziFeng = { 401, 402 }
|
||||
for i = 1, #canShunziFeng do
|
||||
if card == canShunziFeng[i] then
|
||||
local tempFengList = {}
|
||||
for j = 1, 4 - i do
|
||||
if checkCard(405 - j, self.cardList) then
|
||||
table.insert(tempFengList, 405 - j)
|
||||
end
|
||||
end
|
||||
if #tempFengList >= 2 then
|
||||
removeCard(self.cardList, card, 1)
|
||||
removeCard(self.cardList, tempFengList[1], 1)
|
||||
removeCard(self.cardList, tempFengList[2], 1)
|
||||
local cardGroup = { card, tempFengList[1], tempFengList[2] }
|
||||
self:push(cardGroup)
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
if card < 500 then
|
||||
return false
|
||||
end
|
||||
if (checkCard(card + 1, self.cardList) and checkCard(card + 2, self.cardList)) then
|
||||
removeCard(self.cardList, card, 1)
|
||||
removeCard(self.cardList, card + 1, 1)
|
||||
removeCard(self.cardList, card + 2, 1)
|
||||
local cardGroup = { card, card + 1, card + 2 }
|
||||
self:push(cardGroup)
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function M:tryKezi(card)
|
||||
if (checkCardAndRomve(card, self.cardList, 3)) then
|
||||
local cardGroup = {card,card,card}
|
||||
local cardGroup = { card, card, card }
|
||||
self:push(cardGroup)
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function M:tryPair(card)
|
||||
function M:tryPair(card)
|
||||
if (self.pair_count > 0) then
|
||||
return false
|
||||
end
|
||||
if (checkCardAndRomve(card, self.cardList, 2)) then
|
||||
local cardGroup = {card,card}
|
||||
local cardGroup = { card, card }
|
||||
self:push(cardGroup)
|
||||
self.pair_count = 1
|
||||
return true
|
||||
|
|
@ -108,28 +147,27 @@ function M:tryPair(card)
|
|||
return false
|
||||
end
|
||||
|
||||
|
||||
function M:tryKezi1Zhong(card)
|
||||
if (self.zhong_count >= 1 and checkCardAndRomve(card, self.cardList,2)) then
|
||||
local cardGroup = {card,card,zhongid}
|
||||
function M:tryKezi1Zhong(card)
|
||||
if (self.zhong_count >= 1 and checkCardAndRomve(card, self.cardList, 2)) then
|
||||
local cardGroup = { card, card, zhongid }
|
||||
self:push(cardGroup)
|
||||
self.zhong_count = self.zhong_count -1
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function M:tryKezi2Zhong(card)
|
||||
if (self.zhong_count >= 2 and checkCardAndRomve(card, self.cardList,1)) then
|
||||
local cardGroup = {card,zhongid,zhongid}
|
||||
self:push(cardGroup)
|
||||
self.zhong_count = self.zhong_count -2
|
||||
self.zhong_count = self.zhong_count - 1
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function M:tryShunzi1Zhong(card)
|
||||
function M:tryKezi2Zhong(card)
|
||||
if (self.zhong_count >= 2 and checkCardAndRomve(card, self.cardList, 1)) then
|
||||
local cardGroup = { card, zhongid, zhongid }
|
||||
self:push(cardGroup)
|
||||
self.zhong_count = self.zhong_count - 2
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function M:tryShunzi1Zhong(card)
|
||||
if (card % 100 > 8) then
|
||||
return false
|
||||
end
|
||||
|
|
@ -141,8 +179,8 @@ function M:tryShunzi1Zhong(card)
|
|||
if (checkCard(card + 1, self.cardList)) then
|
||||
removeCard(self.cardList, card, 1)
|
||||
removeCard(self.cardList, card + 1, 1)
|
||||
self.zhong_count = self.zhong_count -1
|
||||
local cardGroup = {card,card+1,zhongid}
|
||||
self.zhong_count = self.zhong_count - 1
|
||||
local cardGroup = { card, card + 1, zhongid }
|
||||
self:push(cardGroup)
|
||||
return true
|
||||
end
|
||||
|
|
@ -150,15 +188,15 @@ function M:tryShunzi1Zhong(card)
|
|||
if (checkCard(card + 2, self.cardList) and ((card + 1) % 100 ~= 0)) then
|
||||
removeCard(self.cardList, card, 1)
|
||||
removeCard(self.cardList, card + 2, 1)
|
||||
self.zhong_count = self.zhong_count -1
|
||||
local cardGroup = {card,zhongid,card+2}
|
||||
self.zhong_count = self.zhong_count - 1
|
||||
local cardGroup = { card, zhongid, card + 2 }
|
||||
self:push(cardGroup)
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function M:tryPair1Zhong(card)
|
||||
function M:tryPair1Zhong(card)
|
||||
if (self.pair_count > 0) then
|
||||
return false
|
||||
end
|
||||
|
|
@ -166,28 +204,28 @@ function M:tryPair1Zhong(card)
|
|||
return false
|
||||
end
|
||||
removeCard(self.cardList, card, 1)
|
||||
local cardGroup = {card,zhongid}
|
||||
local cardGroup = { card, zhongid }
|
||||
self:push(cardGroup)
|
||||
self.zhong_count = self.zhong_count -1
|
||||
self.zhong_count = self.zhong_count - 1
|
||||
self.pair_count = 1
|
||||
return true
|
||||
end
|
||||
|
||||
function M:tryPair2Zhong()
|
||||
function M:tryPair2Zhong()
|
||||
if (self.pair_count > 0) then
|
||||
return false
|
||||
end
|
||||
if (self.zhong_count < 2) then
|
||||
return false
|
||||
end
|
||||
local cardGroup = {zhongid,zhongid}
|
||||
local cardGroup = { zhongid, zhongid }
|
||||
self:push(cardGroup)
|
||||
self.zhong_count = self.zhong_count -2
|
||||
self.zhong_count = self.zhong_count - 2
|
||||
self.pair_count = 1
|
||||
return true
|
||||
end
|
||||
|
||||
function M:tryWin()
|
||||
function M:tryWin()
|
||||
if (self.zhong_count == 4 and not self.eight_laizi) or (self.zhong_count == 8 and self.eight_laizi) then
|
||||
return true
|
||||
end
|
||||
|
|
@ -225,6 +263,13 @@ function M:tryWin()
|
|||
self:rollBack()
|
||||
end
|
||||
|
||||
if (self:tryFengShunzi(activeCard)) then
|
||||
if (self:tryWin()) then
|
||||
return true
|
||||
end
|
||||
self:rollBack()
|
||||
end
|
||||
|
||||
if (self:tryKezi1Zhong(activeCard)) then
|
||||
if (self:tryWin()) then
|
||||
return true
|
||||
|
|
@ -233,7 +278,6 @@ function M:tryWin()
|
|||
end
|
||||
|
||||
if (self:tryKezi2Zhong(activeCard)) then
|
||||
|
||||
if (self:tryWin()) then
|
||||
return true
|
||||
end
|
||||
|
|
@ -257,7 +301,7 @@ function M:tryWin()
|
|||
return false
|
||||
end
|
||||
|
||||
function M:checkQidui()
|
||||
function M:checkQidui()
|
||||
if (not self.qidui) then
|
||||
return false
|
||||
end
|
||||
|
|
@ -270,17 +314,17 @@ function M:checkQidui()
|
|||
return self:isQdPari(cardList)
|
||||
end
|
||||
|
||||
function M:isQdPari(cardList)
|
||||
if(self.qidui_pari_count == 7) then
|
||||
function M:isQdPari(cardList)
|
||||
if (self.qidui_pari_count == 7) then
|
||||
return true
|
||||
end
|
||||
if (#cardList== 0) then
|
||||
if (#cardList == 0) then
|
||||
return true
|
||||
end
|
||||
local card = cardList[1]
|
||||
if (cardNum(card, cardList) >= 2) then
|
||||
removeCard(cardList, card, 2)
|
||||
self.qidui_pari_count = self.qidui_pari_count +1
|
||||
self.qidui_pari_count = self.qidui_pari_count + 1
|
||||
if (self:isQdPari(cardList)) then
|
||||
return true
|
||||
end
|
||||
|
|
@ -289,7 +333,7 @@ function M:isQdPari(cardList)
|
|||
if (self.hongzhong_count > 0) then
|
||||
removeCard(cardList, card, 1)
|
||||
self.hongzhong_count = self.hongzhong_count - 1
|
||||
self.qidui_pari_count = self.qidui_pari_count +1
|
||||
self.qidui_pari_count = self.qidui_pari_count + 1
|
||||
if (self:isQdPari(cardList)) then
|
||||
return true
|
||||
end
|
||||
|
|
@ -297,37 +341,110 @@ function M:isQdPari(cardList)
|
|||
return false
|
||||
end
|
||||
|
||||
local function init(self,cardInhand,addCard,isZhong,qidui,eightLaizi)
|
||||
function M:checkshisanlan()
|
||||
if (not self.shisanlan) then
|
||||
return false
|
||||
end
|
||||
if ((#self.cardList + self.zhong_count) ~= 14) then
|
||||
return false
|
||||
end
|
||||
local cardList = membe_clone(self.cardList)
|
||||
self.hongzhong_count = self.zhong_count
|
||||
return self:isShiSanLan(cardList, table.remove(cardList, 1))
|
||||
end
|
||||
|
||||
function M:isShiSanLan(cardList, card)
|
||||
if (#cardList == 0) then
|
||||
return true
|
||||
end
|
||||
if card < 400 then
|
||||
if not (checkCard(card, cardList) or checkCard(card + 1, cardList) or checkCard(card + 2, cardList)) then
|
||||
return self:isShiSanLan(cardList, table.remove(cardList, 1))
|
||||
end
|
||||
else
|
||||
if not checkCard(card, cardList) then
|
||||
return self:isShiSanLan(cardList, table.remove(cardList, 1))
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
--._flag_haveLaizi, data._hu_qidui, data._data_laizi
|
||||
local function init(self, cardInhand, addCard, data)
|
||||
self.stack = {}
|
||||
self.pair_count = 0
|
||||
self.cardList = membe_clone(cardInhand)
|
||||
self.qidui = qidui
|
||||
self.eight_laizi = eightLaizi
|
||||
self.cardList[#self.cardList+1] = addCard
|
||||
if (isZhong) then
|
||||
self.qidui = data._hu_qidui
|
||||
self.shisanlan = data._hu_shisanlan
|
||||
self.eight_laizi = nil
|
||||
self.cardList[#self.cardList + 1] = addCard
|
||||
if (data._flag_haveLaizi) then
|
||||
self.zhong_count = cardNum(zhongid, self.cardList)
|
||||
removeCard(self.cardList, zhongid, self.zhong_count)
|
||||
end
|
||||
table.sort(self.cardList)
|
||||
return self:checkQidui() or self:tryWin()
|
||||
--printlog("添加排序====>>>")
|
||||
--pt(self.cardList)
|
||||
return self:checkQidui() or self:checkshisanlan() or self:tryWin()
|
||||
end
|
||||
|
||||
function M.tingPai(cardInhand,isZhong,qidui,eightLaizi)
|
||||
local self = setmetatable({}, {__index = M})
|
||||
local specialCardList = { 401, 402, 403, 404, 501, 502, 503 }
|
||||
function M.tingPai(cardInhand, data)
|
||||
data = data or {}
|
||||
local self = setmetatable({}, { __index = M })
|
||||
local tingList = {}
|
||||
if not cardInhand or #cardInhand == 0 then
|
||||
return tingList
|
||||
end
|
||||
for k=100,300,100 do
|
||||
for i=1,9 do
|
||||
for k = 100, 300, 100 do
|
||||
for i = 1, 9 do
|
||||
local tem = k + i
|
||||
local result = init(self,cardInhand,tem,isZhong,qidui,eightLaizi)
|
||||
if(result) then
|
||||
tingList[#tingList + 1] = tem
|
||||
local result = init(self, cardInhand, tem, data)
|
||||
--printlog("返回结果为===>>>",result)
|
||||
if (result) then
|
||||
tingList[#tingList + 1] = tem
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for j = 1, #specialCardList do
|
||||
local tem = specialCardList[j]
|
||||
local result = init(self, cardInhand, tem, data)
|
||||
if (result) then
|
||||
tingList[#tingList + 1] = tem
|
||||
end
|
||||
end
|
||||
|
||||
return tingList
|
||||
end
|
||||
|
||||
return M
|
||||
function M.MuiltiplteCaculateTingPai(cardInhand, isZhong, qidui, eightLaizi)
|
||||
local room = DataManager.CurrenRoom
|
||||
|
||||
if room.laiziInfo and #room.laiziInfo > 0 then
|
||||
zhongid = room.laiziInfo[1]
|
||||
local tempTingList2 = {}
|
||||
local tempTingList1 = M.tingPai(cardInhand, isZhong, qidui, eightLaizi)
|
||||
if room.laiziInfo[2] then
|
||||
zhongid = room.laiziInfo[2]
|
||||
tempTingList2 = M.tingPai(cardInhand, isZhong, qidui, eightLaizi)
|
||||
zhongid = room.laiziInfo[1]
|
||||
end
|
||||
local currentTingList = {}
|
||||
if #tempTingList1 > 0 and #tempTingList2 > 0 then
|
||||
currentTingList = CombineDictionaryAndRemoveSomeItem(tempTingList1, tempTingList2)
|
||||
elseif #tempTingList1 > 0 then
|
||||
currentTingList = tempTingList1
|
||||
elseif #tempTingList2 > 0 then
|
||||
currentTingList = tempTingList2
|
||||
end
|
||||
|
||||
return currentTingList
|
||||
else
|
||||
M._flag_zikechengshun = room.room_config.config.zikechengshun or 0
|
||||
zhongid = 0
|
||||
return M.tingPai(cardInhand, isZhong, qidui, eightLaizi)
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
|
|||
|
|
@ -1,385 +1,496 @@
|
|||
require("Game.View.ResultView")
|
||||
local Hu_Type_Name = import(".CS_Win_Type")
|
||||
|
||||
local EXClearingView = {}
|
||||
|
||||
local M = EXClearingView
|
||||
|
||||
function EXClearingView.new(blur_view)
|
||||
setmetatable(M, {__index = ResultView})
|
||||
local self = setmetatable({}, {__index = M})
|
||||
self._full = true
|
||||
ResultView.init(self, "ui://Main_Majiang/clearing")
|
||||
function EXClearingView.new(root, data)
|
||||
setmetatable(M, { __index = ResultView })
|
||||
local self = setmetatable({}, { __index = M })
|
||||
self._full = true
|
||||
ResultView.init(self, "ui://Main_Majiang/clearing")
|
||||
|
||||
self._currenIndex = 0
|
||||
self._blur_view = blur_view
|
||||
self._close_zone = false
|
||||
self.xiPaiCtr=self._view:GetController("xipai")
|
||||
|
||||
self:InitMaPai()
|
||||
return self
|
||||
end
|
||||
self._root_view:GetChild("win_mode").visible = false
|
||||
|
||||
|
||||
function M:InitMaPai()
|
||||
self.maPaiCtr=self._view:GetController("mapai")
|
||||
self.maPaiCtr.selectedIndex=0
|
||||
|
||||
self.maPaiList={}
|
||||
|
||||
for i=1,10 do
|
||||
local tempMP=self._view:GetChild("niao"..i)
|
||||
table.insert(self.maPaiList,tempMP)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
function M:IsMapaiShow(niao,isShow)
|
||||
if niao then
|
||||
niao.visible=isShow
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function M:SetMaPaiValue(niao,value)
|
||||
if niao then
|
||||
niao.icon='ui://Main_Majiang/' ..get_majiang_prefix(DataManager.CurrenRoom.game_id).."201_"..value
|
||||
end
|
||||
end
|
||||
|
||||
function M:SetMaPaiColor(niao,num)
|
||||
niao:GetController("color").selectedIndex=num
|
||||
end
|
||||
|
||||
function M:HideAllMapai()
|
||||
for i=1,#self.maPaiList do
|
||||
self:IsMapaiShow(self.maPaiList[i],false)
|
||||
self:SetMaPaiColor(self.maPaiList[i],0)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
function M:ShowSelectMaPai(niaoList)
|
||||
printlog("ccccccccccccccccccaaaaaaaaaaaaaa00")
|
||||
pt(niaoList)
|
||||
if niaoList and #niaoList>0 then
|
||||
self.maPaiCtr.selectedIndex=1
|
||||
self:HideAllMapai()
|
||||
for i=1,#niaoList do
|
||||
self:IsMapaiShow(self.maPaiList[i],true)
|
||||
self:SetMaPaiValue(self.maPaiList[i],niaoList[i].card)
|
||||
if niaoList[i].score>0 then
|
||||
self:SetMaPaiColor(self.maPaiList[i],2)
|
||||
end
|
||||
end
|
||||
else
|
||||
self.maPaiCtr.selectedIndex=0
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function M:InitData(over, room, result, total_result, callback)
|
||||
self._callback = callback
|
||||
local _overCtr = self._view:GetController("over")
|
||||
local btn_confirm = self._view:GetChild("btn_confirm")
|
||||
local btn_result = self._view:GetChild("btn_showResult")
|
||||
local btn_close = self._view:GetChild("big_result"):GetChild("btn_close")
|
||||
local _btnCtr = self._view:GetController("button")
|
||||
local _sdkCtr = self._view:GetController("sdk")
|
||||
local ctr_type = self._view:GetController("type")
|
||||
self._view:GetChild("tex_roominfo").text = string.format("房号%s 局%s/%s %s", room.room_id, room.curren_round, room.room_config.round, os.date("%Y-%m-%d %H:%M:%S", os.time()))
|
||||
self._view:GetChild("tex_gameinfo").text = string.gsub(room.room_config:GetDes(), "\r", "")
|
||||
|
||||
local paixingxiangqing=self._view:GetChild("btn_detal")
|
||||
paixingxiangqing.visible=false
|
||||
|
||||
local fanhuipaixing=self._view:GetChild("btn_fanhuipaixing")
|
||||
fanhuipaixing.visible=false
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
if result then
|
||||
self:ShowSelectMaPai(result.niao)
|
||||
end
|
||||
|
||||
if over ~= 2 then
|
||||
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 result and result.xipai_score then
|
||||
--xipai.text="洗牌 积分x"..result.xipai_score
|
||||
end
|
||||
|
||||
if result.liuju then
|
||||
ctr_type.selectedIndex = 3
|
||||
else
|
||||
local info_list = result.info_list
|
||||
for i = 1, #info_list do
|
||||
local is_win = info_list[i].is_win
|
||||
if is_win then
|
||||
if info_list[i].seat == room.self_player.seat then
|
||||
ctr_type.selectedIndex = 1
|
||||
else
|
||||
ctr_type.selectedIndex = 2
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if over == 0 then
|
||||
_btnCtr.selectedIndex = 0
|
||||
_sdkCtr.selectedIndex = 1
|
||||
btn_confirm.onClick:Add(function()
|
||||
local _gamectr = ControllerManager.GetController(GameController)
|
||||
_gamectr:PlayerReady()
|
||||
self:DestroyWithCallback()
|
||||
end)
|
||||
self:AddClearItem(room, result.info_list, nil, over, result.niao, result.active_player)
|
||||
elseif over == 1 then
|
||||
self.xiPaiCtr.selectedIndex=0
|
||||
_btnCtr.selectedIndex = 1
|
||||
_sdkCtr.selectedIndex = 1
|
||||
btn_result.onClick:Add(function()
|
||||
_overCtr.selectedIndex = 1
|
||||
_btnCtr.selectedIndex = 0
|
||||
_sdkCtr.selectedIndex = 0
|
||||
self.maPaiCtr.selectedIndex=0
|
||||
if self._qsinfo_view then
|
||||
self._qsinfo_view:Dispose()
|
||||
end
|
||||
end)
|
||||
btn_close.onClick:Add(function()
|
||||
ViewManager.ChangeView(ViewManager.View_Lobby)
|
||||
end)
|
||||
self:AddClearItem(room, result.info_list, total_result.info_list, over, result.niao, result.active_player)
|
||||
end
|
||||
else
|
||||
_overCtr.selectedIndex = 1
|
||||
self.xiPaiCtr.selectedIndex=0
|
||||
self.maPaiCtr.selectedIndex=0
|
||||
btn_close.onClick:Add(function()
|
||||
ViewManager.ChangeView(ViewManager.View_Lobby)
|
||||
end)
|
||||
self:AddClearItem(room, nil, total_result.info_list, over)
|
||||
end
|
||||
end
|
||||
|
||||
function M:AddClearItem(room, data, total_data,over, niao, active_player)
|
||||
local n = over + 1
|
||||
local list_view1 = self._view:GetChild("player_list_1")
|
||||
local list_view2 = self._view:GetChild("player_list_2")
|
||||
if 0 == over or 1 == over then
|
||||
table.sort(data, function(a,b) return a.seat > b.seat end)
|
||||
list_view1:RemoveChildrenToPool()
|
||||
for i=1,#data do
|
||||
local item = list_view1:AddItemFromPool()
|
||||
self:FillItemData(room, data[i], item, active_player, niao)
|
||||
end
|
||||
if #data == 3 then
|
||||
list_view1.lineGap = 54
|
||||
elseif #data == 2 then
|
||||
list_view1.lineGap = 108
|
||||
end
|
||||
if 1 == over then
|
||||
self:FillItemData2(room, total_data, list_view2)
|
||||
end
|
||||
elseif 2 == over then
|
||||
self:FillItemData2(room, total_data, list_view2)
|
||||
end
|
||||
end
|
||||
|
||||
function M:FillItemData(room, data, item, active_player, niao)
|
||||
local _gamectr = ControllerManager.GetController(GameController)
|
||||
local p = room:GetPlayerBySeat(data["seat"])
|
||||
item:GetChild("playerName").text = p.self_user.nick_name
|
||||
|
||||
-- 手牌
|
||||
local hand_cards = data["hand_card"]
|
||||
table.sort( hand_cards, ViewUtil.HandCardSort)
|
||||
local hand_list_view = item:GetChild("hand_card_list")
|
||||
hand_list_view:RemoveChildrenToPool()
|
||||
for i=1,#hand_cards do
|
||||
local card = hand_list_view:AddItemFromPool()
|
||||
card.icon = "ui://Main_Majiang/b202_"..hand_cards[i]
|
||||
end
|
||||
hand_list_view.width = 52 * #hand_cards
|
||||
|
||||
local fz_card = p.fz_list
|
||||
local fz_card_list = item:GetChild("fz_card_list")
|
||||
fz_card_list.width = 157 * #fz_card * 0.8
|
||||
fz_card_list:RemoveChildrenToPool()
|
||||
for i=1,#fz_card do
|
||||
if fz_card[i].type == FZType.Peng then
|
||||
local item = fz_card_list:AddItemFromPool("ui://Main_Majiang/clearing_fz_3")
|
||||
for j=1,3 do
|
||||
local card = item:GetChild("card_" .. j)
|
||||
card.icon = "ui://Main_Majiang/b202_"..fz_card[i].card
|
||||
end
|
||||
elseif fz_card[i].type == FZType.Gang or fz_card[i].type == FZType.Gang_An or fz_card[i].type == FZType.Gang_Peng then
|
||||
local item = fz_card_list:AddItemFromPool("ui://Main_Majiang/clearing_fz_4")
|
||||
for j=1,4 do
|
||||
local card = item:GetChild("card_" .. j)
|
||||
if fz_card[i].type == FZType.Gang_An and j == 4 then
|
||||
card.icon = "ui://Main_Majiang/b202_00"
|
||||
else
|
||||
card.icon = "ui://Main_Majiang/b202_"..fz_card[i].card
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local huadd = data["hu_score"]
|
||||
local gangadd = data["gang_score"]
|
||||
local birdadd = data["niao_score"]
|
||||
local total = data["round_score"]
|
||||
local sp = " "
|
||||
local str = "胡:"..huadd.."分"
|
||||
str = str..sp.."杠:"..gangadd.."分"
|
||||
str = str..sp.."扎鸟:"..birdadd.."分"
|
||||
if data["piao_niao_score"] then
|
||||
str = str..sp.."飘鸟:"..data["piao_niao_score"].."分"
|
||||
end
|
||||
item:GetChild("score1").text = str
|
||||
-- local total_score = data["total_score"]
|
||||
if total >= 0 then
|
||||
item:GetChild("score2").text = "+"..total
|
||||
item:GetChild("score2").grayed = false
|
||||
else
|
||||
item:GetChild("score2").text = total
|
||||
item:GetChild("score2").grayed = true
|
||||
end
|
||||
|
||||
local hp_nonnegative = room:checkHpNonnegative()
|
||||
item:GetController("nonnegative").selectedIndex = hp_nonnegative and 1 or 0
|
||||
if hp_nonnegative then
|
||||
local hp_info = data.hp_info
|
||||
local ctr_hp_limit = item:GetController("hp_limit")
|
||||
local hp = d2ad(hp_info.round_actual_hp)
|
||||
if hp >= 0 then hp = "+" .. tostring(hp) end
|
||||
item:GetChild("tex_hp").text = hp
|
||||
ctr_hp_limit.selectedIndex = hp_info.upper_limit and 1 or 0
|
||||
end
|
||||
|
||||
local is_win = data["is_win"] or false
|
||||
item:GetController("win").selectedIndex = is_win and 0 or 1
|
||||
if p.self_user.account_id == active_player and is_win == false and total < 0 then
|
||||
item:GetController("win").selectedIndex = 2
|
||||
end
|
||||
local win_card = item:GetChild("win_card")
|
||||
if is_win then
|
||||
win_card.icon = "ui://Main_Majiang/b202_"..data["win_card"]
|
||||
local lst_niao = item:GetChild("list_niao")
|
||||
lst_niao:RemoveChildrenToPool()
|
||||
for i = 1, #niao do
|
||||
if niao[i].score > 0 then
|
||||
local card_niao = lst_niao:AddItemFromPool()
|
||||
card_niao.icon = "ui://Main_Majiang/b202_" .. niao[i].card
|
||||
end
|
||||
end
|
||||
end
|
||||
if p.seat == room.banker_seat then
|
||||
item:GetController("bank").selectedIndex = 1
|
||||
end
|
||||
end
|
||||
|
||||
function M:FillItemData2(room, data, list)
|
||||
-- 赋值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].hp_info = data[i].hp_info
|
||||
player_list[i].score = data[i].total_score
|
||||
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].head_url = user.head_url
|
||||
|
||||
local settle_log = data[i].settle_log
|
||||
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.zimo)
|
||||
player_list[i].param[2]={}
|
||||
player_list[i].param[2].key = "接炮次数:"
|
||||
player_list[i].param[2].value = tostring(data[i].settle_log.jie_pao)
|
||||
player_list[i].param[3]={}
|
||||
player_list[i].param[3].key = "点炮次数:"
|
||||
player_list[i].param[3].value = tostring(data[i].settle_log.dian_pao)
|
||||
player_list[i].param[4]={}
|
||||
player_list[i].param[4].key = "暗杠次数:"
|
||||
player_list[i].param[4].value = tostring(data[i].settle_log.an_kong)
|
||||
player_list[i].param[5]={}
|
||||
player_list[i].param[5].key = "明杠次数:"
|
||||
player_list[i].param[5].value = tostring(data[i].settle_log.ming_kong)
|
||||
self._currenIndex = 0
|
||||
self._root = root
|
||||
self._close_zone = false
|
||||
if data then
|
||||
self.flag_back = data.flag_back
|
||||
end
|
||||
local round = room.room_config.round
|
||||
self:GenerateRoomResultInfo(round, room.room_config:GetGameName(), room.room_id, room.create_time, player_list)
|
||||
local big_result = self._view:GetChild("big_result")
|
||||
big_result:GetChild("txt_room_info").text = string.format("%s 房号%s 局%s/%s", os.date("%Y/%m/%d", os.time()), room.room_id, room.curren_round, room.room_config.round)
|
||||
local lst_p = big_result:GetChild("player_list")
|
||||
if #player_list == 3 then
|
||||
lst_p.columnGap = 108
|
||||
elseif #player_list == 2 then
|
||||
lst_p.columnGap = 208
|
||||
end
|
||||
self:InitBigResult(room, 30)
|
||||
local show_detail = room.hpOnOff == 1
|
||||
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
|
||||
if show_detail then
|
||||
local score = 0
|
||||
if com_p:GetController("pn").selectedIndex == 0 then
|
||||
score = com_p:GetChild("txt_navigate").text
|
||||
else
|
||||
score = com_p:GetChild("txt_positive").text
|
||||
end
|
||||
score = score / room.score_times
|
||||
com_p:GetChild("tex_detail_score").text = string.format("%s × %s倍", score, room.score_times)
|
||||
end
|
||||
-- self:InitMaPai()
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
-- function M:InitMaPai()
|
||||
-- self.maPaiCtr = self._view:GetController("mapai")
|
||||
-- self.maPaiCtr.selectedIndex = 0
|
||||
|
||||
-- self.maPaiList = {}
|
||||
|
||||
-- for i = 1, 8 do
|
||||
-- local tempMP = self._view:GetChild("niao" .. i)
|
||||
-- table.insert(self.maPaiList, tempMP)
|
||||
-- end
|
||||
-- end
|
||||
|
||||
function M:InitData(over, room, result, total_result, callback, isWitness, witnessCallbak)
|
||||
-- print("===============================InitData===========================", over, room, result, total_result)
|
||||
-- pt(room)
|
||||
-- pt(result)
|
||||
-- Pt(total_result)
|
||||
self._callback = callback
|
||||
self._witnessCallbak = witnessCallbak
|
||||
local showClearMainBtn = self._view:GetChild("btn_showClearMain")
|
||||
local nextRoundBtn = self._view:GetChild("btn_nextRound")
|
||||
local nextRoundBtn2 = self._view:GetChild("Btn_NextRound2")
|
||||
local endRound = self._view:GetChild("Btn_EndRound")
|
||||
local _overCtr = self._view:GetController("over")
|
||||
local mainCtr = self._view:GetController("main")
|
||||
local playerNum = self._view:GetController("playerNum")
|
||||
local showBtnTypeCtr = self._view:GetController("showType")
|
||||
local Text_BoJing = self._view:GetChild('Text_BoJing')
|
||||
|
||||
Text_BoJing.visible = false
|
||||
|
||||
if self.flag_back then
|
||||
mainCtr.selectedIndex = 1
|
||||
nextRoundBtn2.touchable = false
|
||||
end
|
||||
|
||||
if result then
|
||||
if result.cardList then
|
||||
result.cardList = json.decode(result.cardList)
|
||||
else
|
||||
result.cardList = {}
|
||||
end
|
||||
end
|
||||
self.list_lastCard = self._view:GetChild('list_lastCard')
|
||||
|
||||
self.list_lastCard:SetVirtual()
|
||||
self.list_lastCard.itemRenderer = function(index, obj)
|
||||
self:RemindCardRender(result.cardList[index + 1], obj)
|
||||
end
|
||||
|
||||
local peopleNum = room.room_config.people_num
|
||||
|
||||
playerNum.selectedIndex = peopleNum - 2
|
||||
|
||||
showClearMainBtn.onClick:Set(function()
|
||||
mainCtr.selectedIndex = 1
|
||||
end)
|
||||
|
||||
nextRoundBtn.onClick:Set(function()
|
||||
if self._callback_jiangma then
|
||||
self._callback_jiangma()
|
||||
end
|
||||
if isWitness and isWitness == 1 then
|
||||
if self._witnessCallbak then
|
||||
self._witnessCallbak()
|
||||
end
|
||||
self:DestroyWithCallback()
|
||||
else
|
||||
if over == 0 then
|
||||
local _gamectr = ControllerManager.GetController(GameController)
|
||||
_gamectr:PlayerReady()
|
||||
self:DestroyWithCallback()
|
||||
else
|
||||
mainCtr.selectedIndex = 1
|
||||
_overCtr.selectedIndex = 1
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
endRound.onClick:Set(function()
|
||||
if room._flag_lobby then
|
||||
ViewManager.ChangeView(ViewManager.View_Lobby)
|
||||
else
|
||||
ViewManager.ChangeView(ViewManager.View_Family)
|
||||
end
|
||||
end)
|
||||
|
||||
local Btn_Share = self._view:GetChild('Btn_Share')
|
||||
if Btn_Share then
|
||||
Btn_Share.onClick:Set(function()
|
||||
self:SaveRenderTextureToPNG()
|
||||
end)
|
||||
end
|
||||
|
||||
local Btn_Copy = self._view:GetChild('Btn_Copy')
|
||||
if Btn_Copy then
|
||||
Btn_Copy.onClick:Set(function()
|
||||
local resultStr = ""
|
||||
if room.group_id ~= 0 then
|
||||
local group = DataManager.groups:get(room.group_id)
|
||||
resultStr = string.format("【%s】俱乐部,", group.name)
|
||||
end
|
||||
resultStr = string.format("%s%s\n", resultStr, room.game_info.name)
|
||||
for i = 1, peopleNum do
|
||||
local totalInfoList = total_result.info_list[i]
|
||||
local playInfo = room:GetPlayerBySeat(totalInfoList.seat)
|
||||
resultStr = string.format("%s%s\nID:%s【%s】\n", resultStr, playInfo.self_user.nick_name,
|
||||
playInfo.self_user.account_id,
|
||||
totalInfoList.total_score)
|
||||
end
|
||||
resultStr = string.format("%s房号:%s 局数:%s/%s局\n结束时间:%s", resultStr, room.room_id, room.curren_round,
|
||||
room.room_config.round, os.date("%Y-%m-%d %H:%M:%S", os.time()))
|
||||
ViewUtil.__openWx()
|
||||
GameApplication.Instance:CopyToClipboard(resultStr)
|
||||
end)
|
||||
end
|
||||
|
||||
if over == 0 then
|
||||
showBtnTypeCtr.selectedIndex = 0
|
||||
_overCtr.selectedIndex = 0
|
||||
self:fillResult0(room, peopleNum, result)
|
||||
nextRoundBtn2.onClick:Set(function()
|
||||
if self._callback_jiangma then
|
||||
self._callback_jiangma()
|
||||
end
|
||||
if isWitness and isWitness == 1 then
|
||||
if self._witnessCallbak then
|
||||
self._witnessCallbak()
|
||||
end
|
||||
self:DestroyWithCallback()
|
||||
else
|
||||
local _gamectr = ControllerManager.GetController(GameController)
|
||||
_gamectr:PlayerReady()
|
||||
self:DestroyWithCallback()
|
||||
end
|
||||
end)
|
||||
elseif over == 1 then
|
||||
self:fillResult1(room, peopleNum, total_result)
|
||||
if result then
|
||||
_overCtr.selectedIndex = 0
|
||||
self:fillResult0(room, peopleNum, result)
|
||||
nextRoundBtn2.onClick:Set(function()
|
||||
_overCtr.selectedIndex = 1
|
||||
end)
|
||||
else
|
||||
showBtnTypeCtr.selectedIndex = 1
|
||||
_overCtr.selectedIndex = 1
|
||||
end
|
||||
else --解散房间如果没有开局直接退出不显示结算界面,over=2
|
||||
if room.curren_round > 0 then
|
||||
mainCtr.selectedIndex = 1
|
||||
_overCtr.selectedIndex = 1
|
||||
showBtnTypeCtr.selectedIndex = 1
|
||||
self:fillResult1(room, peopleNum, total_result)
|
||||
else
|
||||
if room._flag_lobby then
|
||||
ViewManager.ChangeView(ViewManager.View_Lobby)
|
||||
else
|
||||
ViewManager.ChangeView(ViewManager.View_Family)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function M:fillResult0(room, peopleNum, result)
|
||||
local config = ExtendManager.GetExtendConfig(room.game_id)
|
||||
local mode = config:GetGameInfo()
|
||||
local gamePlay = mode:LoadConfigToDetail(json.encode(room.room_config.config), json.encode(room.room_config.hpData))
|
||||
self._view:GetChild("Label_GamePlay").title = string.format("第%s/%s局,%s", room.curren_round,
|
||||
room.room_config.round, gamePlay)
|
||||
self.list_lastCard.numItems = #result.cardList
|
||||
self._view:GetChild('n147').text = string.format("剩余%d张未显示", #result.cardList)
|
||||
for i = 1, peopleNum do
|
||||
local playerInfoComp = self._view:GetChild(string.format("Comp_Player%d", i))
|
||||
|
||||
local allCardsList = playerInfoComp:GetChild("list_allCards")
|
||||
local huCardBtn = playerInfoComp:GetChild("Btn_Card_Hu")
|
||||
local jiangMaList = playerInfoComp:GetChild("list_JiangMa")
|
||||
local ziMoCtr = playerInfoComp:GetController("isZiMo")
|
||||
local dianPaoCtr = playerInfoComp:GetController("isPao")
|
||||
local isMeCtr = playerInfoComp:GetController("IsMe")
|
||||
local isZhuang = playerInfoComp:GetController("zhuang")
|
||||
|
||||
local infoList = result.info_list[i]
|
||||
local infoJiangma = result.niao
|
||||
local playInfo = room:GetPlayerBySeat(infoList.seat)
|
||||
local fzCardInfo = playInfo.fz_list
|
||||
local fzInfoNum = #fzCardInfo
|
||||
local handInfoNum = #infoList.hand_card
|
||||
|
||||
self:fillHead(playInfo.self_user.head_url, playerInfoComp)
|
||||
|
||||
infoList.jing_score = infoList.jing_score or 0
|
||||
infoList.gang_score = infoList.gang_score or 0
|
||||
infoList.hu_score = infoList.hu_score or 0
|
||||
infoList.round_score = infoList.round_score or 0
|
||||
|
||||
playerInfoComp:GetChild("Text_BoJing").visible = false
|
||||
|
||||
playerInfoComp:GetChild("text_name").text = playInfo.self_user.nick_name
|
||||
playerInfoComp:GetChild("Text_BoJing").text = infoList.jing_score >= 0 and
|
||||
string.format("+%d", infoList.jing_score) or infoList.jing_score
|
||||
playerInfoComp:GetChild("Text_Gang").text = infoList.gang_score >= 0 and
|
||||
string.format("+%d", infoList.gang_score) or infoList.gang_score
|
||||
playerInfoComp:GetChild("Text_Hu").text = infoList.hu_score >= 0 and string.format("+%d", infoList.hu_score) or
|
||||
infoList.hu_score
|
||||
playerInfoComp:GetChild("Text_Tatal").text = infoList.round_score >= 0 and
|
||||
string.format("+%d", infoList.round_score) or infoList.round_score
|
||||
|
||||
for j = 1, fzInfoNum do
|
||||
if fzCardInfo[j].type == FZType.Peng then
|
||||
local item = allCardsList:AddItemFromPool("ui://Main_Majiang/Comp_Clearing_FZ_3")
|
||||
for l = 1, 3 do
|
||||
local card = item:GetChild(string.format("Btn_Card%d", l))
|
||||
card.icon = string.format("ui://Main_Majiang/%s202_%d", self:GetPrefix(), fzCardInfo[j].card)
|
||||
print("===============================FZType.Peng", room.jing, fzCardInfo[j].card)
|
||||
if room.jing == fzCardInfo[j].card then
|
||||
card:GetController('jing').selectedIndex = 1
|
||||
else
|
||||
card:GetController('jing').selectedIndex = 0
|
||||
end
|
||||
end
|
||||
elseif fzCardInfo[j].type == FZType.Chi then
|
||||
local item = allCardsList:AddItemFromPool("ui://Main_Majiang/Comp_Clearing_FZ_3")
|
||||
for l = 1, 3 do
|
||||
local card = item:GetChild(string.format("Btn_Card%d", l))
|
||||
card.icon = string.format("ui://Main_Majiang/%s202_%d", self:GetPrefix(), fzCardInfo[j].opcard
|
||||
[l])
|
||||
print("===============================FZType.Chi", room.jing, fzCardInfo[j].opcard[l])
|
||||
|
||||
if room.jing == fzCardInfo[j].opcard[l] then
|
||||
card:GetController('jing').selectedIndex = 1
|
||||
else
|
||||
card:GetController('jing').selectedIndex = 0
|
||||
end
|
||||
end
|
||||
elseif fzCardInfo[j].type == FZType.Gang or fzCardInfo[j].type == FZType.Gang_An or fzCardInfo[j].type == FZType.Gang_Peng then
|
||||
local item = allCardsList:AddItemFromPool("ui://Main_Majiang/Comp_Clearing_FZ_4")
|
||||
for l = 1, 4 do
|
||||
local card = item:GetChild(string.format("Btn_Card%d", l))
|
||||
if fzCardInfo[j].type == FZType.Gang_An and j == 4 then
|
||||
card.icon = "ui://Main_Majiang/b202_00"
|
||||
else
|
||||
card.icon = string.format("ui://Main_Majiang/%s202_%d", self:GetPrefix(), fzCardInfo[j].card)
|
||||
print("===============================FZType.Gang", room.jing, fzCardInfo[j].card)
|
||||
|
||||
if room.jing == fzCardInfo[j].card then
|
||||
card:GetController('jing').selectedIndex = 1
|
||||
else
|
||||
card:GetController('jing').selectedIndex = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local handCardItem = allCardsList:AddItemFromPool("ui://Main_Majiang/Comp_HandCard")
|
||||
local handCardList = handCardItem:GetChild("list")
|
||||
--手牌排序
|
||||
table.sort(infoList.hand_card, self.HandCardSortAndJing)
|
||||
handCardList:SetVirtual()
|
||||
handCardList.itemRenderer = function(index, obj)
|
||||
obj.icon = string.format("ui://Main_Majiang/%s202_%d", self:GetPrefix(), infoList.hand_card[index + 1])
|
||||
if room.jing == infoList.hand_card[index + 1] then
|
||||
obj:GetController('jing').selectedIndex = 1
|
||||
else
|
||||
obj:GetController('jing').selectedIndex = 0
|
||||
end
|
||||
end
|
||||
handCardList.numItems = handInfoNum
|
||||
--拿取实际的子项大小
|
||||
local handCard = 78
|
||||
local hangColumGrap = -4
|
||||
local fzCard = 234
|
||||
local fzColumGrap = 36
|
||||
handCard = handCardList:GetChildAt(handInfoNum - 1).width
|
||||
hangColumGrap = handCard + handCardList.columnGap
|
||||
if fzInfoNum > 0 then
|
||||
fzCard = allCardsList:GetChildAt(0).width
|
||||
fzColumGrap = allCardsList.columnGap
|
||||
end
|
||||
allCardsList.width = fzCard * fzInfoNum + handCard + (handInfoNum - 1) * hangColumGrap +
|
||||
fzColumGrap * (fzInfoNum)
|
||||
|
||||
if infoList.seat == room.self_player.seat then
|
||||
isMeCtr.selectedIndex = 1
|
||||
end
|
||||
|
||||
if infoList.seat == room.self_player.seat then
|
||||
isMeCtr.selectedIndex = 1
|
||||
end
|
||||
|
||||
if infoList.seat == room.banker_seat then
|
||||
isZhuang.selectedIndex = 1
|
||||
end
|
||||
|
||||
if infoList.is_win then
|
||||
local winInfo = ""
|
||||
for j = 1, #infoList.win_list do
|
||||
winInfo = string.format("%s,%s", winInfo, Hu_Type_Name[infoList.win_list[j].type])
|
||||
end
|
||||
winInfo = string.sub(winInfo, 2, -1)
|
||||
playerInfoComp:GetChild("text_huShow").text = winInfo
|
||||
|
||||
if room.isZiMoHu then
|
||||
ziMoCtr.selectedIndex = 1
|
||||
end
|
||||
|
||||
|
||||
huCardBtn.icon = string.format("ui://Main_Majiang/b202_%d", infoList.win_card)
|
||||
if room.jing == infoList.win_card then
|
||||
huCardBtn:GetController('jing').selectedIndex = 1
|
||||
else
|
||||
huCardBtn:GetController('jing').selectedIndex = 0
|
||||
end
|
||||
huCardBtn.visible = true
|
||||
|
||||
jiangMaList.visible = true
|
||||
jiangMaList:SetVirtual()
|
||||
jiangMaList.itemRenderer = function(index, obj)
|
||||
obj.icon = string.format("ui://Main_Majiang/b202_%d", infoJiangma[index + 1].card)
|
||||
obj:GetController('bg').selectedIndex = infoJiangma[index + 1].score
|
||||
obj:GetController('jing').selectedIndex = infoJiangma[index + 1].card == room.jing and 1 or 0
|
||||
end
|
||||
jiangMaList.numItems = #infoJiangma
|
||||
-- jiangMaList.columnCount = #infoJiangma / 2
|
||||
else
|
||||
playerInfoComp:GetChild("text_huShow").text = ""
|
||||
if not room.isZiMoHu and playInfo.self_user.account_id == result.active_player then
|
||||
dianPaoCtr.selectedIndex = 1
|
||||
end
|
||||
|
||||
huCardBtn.visible = false
|
||||
jiangMaList.visible = false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function M:fillResult1(room, peopleNum, total_result)
|
||||
local gameNameAndRoomIDText = self._view:GetChild("Text_GameNameAndRoomID")
|
||||
local familyIDText = self._view:GetChild("Text_FamilyID")
|
||||
print("lingmeng fillResult1")
|
||||
pt(room)
|
||||
--初始化大赢家和最佳炮手
|
||||
local bigWin = { seat = -1, score = 0 }
|
||||
local bestPao = { seat = -1, times = 0 }
|
||||
--循环数据得出分数最大的大赢家,以及点炮次数最多的最佳炮手
|
||||
for i = 1, #total_result.info_list do
|
||||
if total_result.info_list[i].total_score > bigWin.score then
|
||||
bigWin = { seat = total_result.info_list[i].seat, score = total_result.info_list[i].total_score }
|
||||
end
|
||||
if total_result.info_list[i].settle_log.fangpao and total_result.info_list[i].settle_log.fangpao > bestPao.times then
|
||||
bestPao = { seat = total_result.info_list[i].seat, times = total_result.info_list[i].settle_log.fangpao }
|
||||
end
|
||||
end
|
||||
for i, v in pairs(DataManager.SelfUser.games) do
|
||||
if v.game_id == room.game_id then
|
||||
gameNameAndRoomIDText.text = string.format("%s 房号:%s", v.name, room.room_id)
|
||||
end
|
||||
end
|
||||
if #gameNameAndRoomIDText.text <= 0 then
|
||||
gameNameAndRoomIDText.text = string.format("房号:%s", room.room_id)
|
||||
end
|
||||
if room.group_id ~= 0 then
|
||||
big_result:GetController("group").selectedIndex = 1
|
||||
familyIDText.text = string.format("俱乐部:%s", room.group_id)
|
||||
else
|
||||
familyIDText.visible = false
|
||||
self._view:GetChild('n148').visible = false
|
||||
end
|
||||
self._view:GetChild("Text_RoundNum").text = string.format("局数:%s/%s", room.curren_round, room.room_config.round)
|
||||
self._view:GetChild("Text_Time").text = os.date("%Y-%m-%d %H:%M:%S", os.time())
|
||||
|
||||
for i = 1, peopleNum do
|
||||
local resultInfoComp = self._view:GetChild(string.format("Comp_ResultInfo%d", i))
|
||||
local totalInfoList = total_result.info_list[i]
|
||||
local playInfo = room:GetPlayerBySeat(totalInfoList.seat)
|
||||
|
||||
self:fillHead(playInfo.self_user.head_url, resultInfoComp)
|
||||
|
||||
resultInfoComp:GetChild('Text_Name').text = playInfo.self_user.nick_name
|
||||
resultInfoComp:GetChild('Text_ID').text = string.format("ID:%s", playInfo.self_user.account_id)
|
||||
resultInfoComp:GetChild('Text_TotalScore').text = totalInfoList.total_score >= 0 and
|
||||
string.format("+%s", totalInfoList.total_score) or totalInfoList.total_score
|
||||
resultInfoComp:GetChild('Text_ZiMo').text = string.format("自摸 %d次", totalInfoList.settle_log.zimo or 0)
|
||||
resultInfoComp:GetChild('Text_JiePao').text = string.format("接炮 %d次", totalInfoList.settle_log.jiepao or 0)
|
||||
resultInfoComp:GetChild('Text_FangPao').text = string.format("放炮 %d次", totalInfoList.settle_log.fangpao or 0)
|
||||
resultInfoComp:GetChild('Text_AnGang').text = string.format("暗杠 %d次", totalInfoList.settle_log.an_kong or 0)
|
||||
resultInfoComp:GetChild('Text_MingGang').text = string.format("明杠 %d次",
|
||||
totalInfoList.settle_log.ming_kong or 0)
|
||||
resultInfoComp:GetChild('Text_FangGang').text = string.format("放杠 %d次",
|
||||
totalInfoList.settle_log.fanggang or 0)
|
||||
|
||||
resultInfoComp:GetController("win").selectedIndex = totalInfoList.total_score >= 0 and 1 or 0
|
||||
if totalInfoList.seat == bigWin.seat then
|
||||
resultInfoComp:GetController("bigWin").selectedIndex = 1
|
||||
-- else
|
||||
-- resultInfoComp:GetController("bigWin").selectedIndex = 0
|
||||
end
|
||||
if totalInfoList.seat == bestPao.seat then
|
||||
resultInfoComp:GetController("fangPao").selectedIndex = 1
|
||||
-- else
|
||||
-- resultInfoComp:GetController("fangPao").selectedIndex = 0
|
||||
end
|
||||
end
|
||||
DataManager.CurrenRoom = nil
|
||||
end
|
||||
|
||||
function M:LoadHead(p, room)
|
||||
local btn_head = self._view:GetChild("btn_head")
|
||||
for i = 1, #room.player_list do
|
||||
local player = room.player_list[i]
|
||||
if p.seat == player.seat and player.self_user.head_url ~= "" then
|
||||
ImageLoad.Load(player.self_user.head_url, btn_head.icon)
|
||||
end
|
||||
end
|
||||
function M:fillHead(url, view)
|
||||
ImageLoad.Load(url, view:GetChild("Btn_Head")._iconObject)
|
||||
end
|
||||
|
||||
function M:DestroyWithCallback()
|
||||
if self._callback then
|
||||
self._callback()
|
||||
end
|
||||
self:Destroy()
|
||||
function M:RemindCardRender(data, obj)
|
||||
local room = DataManager.CurrenRoom
|
||||
obj.icon = string.format("ui://Main_Majiang/%s202_%d", self:GetPrefix(), data)
|
||||
if room.jing == data then
|
||||
obj:GetController('jing').selectedIndex = 1
|
||||
else
|
||||
obj:GetController('jing').selectedIndex = 0
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
function M.HandCardSortAndJing(a, b)
|
||||
local jing = DataManager.CurrenRoom.jing
|
||||
if a == jing or b == jing then
|
||||
if a == b then
|
||||
return a < b
|
||||
end
|
||||
return a == jing
|
||||
else
|
||||
if a < 200 then
|
||||
a = a + 1000
|
||||
elseif a < 300 then
|
||||
a = a + 3000
|
||||
elseif a < 400 then
|
||||
a = a + 2000
|
||||
else
|
||||
a = a + 4000
|
||||
end
|
||||
if b < 200 then
|
||||
b = b + 1000
|
||||
elseif b < 300 then
|
||||
b = b + 3000
|
||||
elseif b < 400 then
|
||||
b = b + 2000
|
||||
else
|
||||
b = b + 4000
|
||||
end
|
||||
return a < b
|
||||
end
|
||||
end
|
||||
|
||||
local prefix
|
||||
function M:GetPrefix()
|
||||
-- if not prefix then
|
||||
prefix = get_majiang_prefix(10)
|
||||
-- end
|
||||
return prefix
|
||||
end
|
||||
|
||||
function M:SetJiangMaCallback(fct)
|
||||
self._callback_jiangma = fct
|
||||
end
|
||||
|
||||
function M:DestroyWithCallback()
|
||||
if self._callback then
|
||||
self._callback()
|
||||
end
|
||||
self:Destroy()
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
|
|||
|
|
@ -33,6 +33,12 @@ function M:init(name)
|
|||
self._eventmap[TX_Protocol.GAME_EVT_NIAO] = self.OnEventNiao
|
||||
self._eventmap[TX_Protocol.GAME_EVT_PIAOTIP] = self.OnEventPiaoTip
|
||||
self._eventmap[TX_Protocol.GAME_EVT_PIAO] = self.OnEventPiao
|
||||
|
||||
self._eventmap[TX_Protocol.GAME_EVT_GANGZI] = self.OnEventGangCards
|
||||
self._eventmap[TX_Protocol.GAME_EVT_BUGANG] = self.OnEventBuGang
|
||||
|
||||
self._eventmap[TX_Protocol.GAME_EVT_RESIDUE_CARD] = self.OnEventResidueCard
|
||||
|
||||
self._eventmap[TX_Protocol.GAME_EVENT_XIPAI] = self.OnEventXiPai
|
||||
self._eventmap[TX_Protocol.GAME_EVENT_NOTIFY_XIPAI] = self.OnEventXiPaiAnim
|
||||
|
||||
|
|
@ -82,33 +88,76 @@ end
|
|||
|
||||
local __pre_delete_card = false
|
||||
-- 发送出牌指令到服务器
|
||||
function M:SendOutCard(card, callback)
|
||||
local _room = self._room
|
||||
local p = _room.self_player
|
||||
|
||||
|
||||
|
||||
-------------------------展示牌---------------------------
|
||||
function M:SendNextCard(card)
|
||||
local _data = {}
|
||||
_data["card"] = card
|
||||
_data["card_list"] = p.card_list
|
||||
if p.outcard_list and #p.outcard_list>0 then
|
||||
_data["outcard_list"] = p.outcard_list
|
||||
end
|
||||
|
||||
local _client = ControllerManager.GameNetClinet
|
||||
_data["card"] = tonumber(card)
|
||||
local _client = ControllerManager.GameNetClinet
|
||||
_client:send(TX_Protocol.GAME_NEXT_CARD, _data)
|
||||
end
|
||||
|
||||
function M:ReqResidueCard()
|
||||
local _data = {}
|
||||
_data["card"] = 0
|
||||
local _client = ControllerManager.GameNetClinet
|
||||
_client:send(TX_Protocol.GAME_RESIDUE_CARD, _data)
|
||||
end
|
||||
|
||||
------------------------------------------------------------
|
||||
|
||||
function M:SendOutCard(data, callback)
|
||||
local _data = {}
|
||||
_data["card"] = data.card
|
||||
_data["isTip"] = data.isTip
|
||||
local _room = self._room
|
||||
local _client = ControllerManager.GameNetClinet
|
||||
_client:send(TX_Protocol.GAME_DIS_CARD, _data)
|
||||
|
||||
-- 进行预删牌处理
|
||||
local p = _room.self_player
|
||||
_room.curren_outcard_seat = -1
|
||||
list_remove(p.card_list,card)
|
||||
table.sort(p.card_list, ViewUtil.HandCardSort)
|
||||
list_remove(p.card_list, data.card)
|
||||
|
||||
table.sort(p.card_list, self.HandCardSortAndJing)
|
||||
|
||||
|
||||
p.hand_left_count = p.hand_left_count - 1
|
||||
if not p.outcard_list then p.outcard_list = {} end
|
||||
p.outcard_list[#p.outcard_list+1] = card
|
||||
p.outcard_list[#p.outcard_list + 1] = data.card
|
||||
__pre_delete_card = true
|
||||
callback()
|
||||
end
|
||||
|
||||
function M:SendGangCard(card)
|
||||
local _data = {}
|
||||
_data["card"] = card
|
||||
local _client = ControllerManager.GameNetClinet
|
||||
_client:send(TX_Protocol.GAME_EVT_DOGANG, _data)
|
||||
end
|
||||
|
||||
function M:OnEventGangCards(evt_data)
|
||||
printlog("OnEventGangCards")
|
||||
pt(evt_data)
|
||||
DispatchEvent(self._dispatcher, TX_GameEvent.SendGangZi, evt_data["gangzi1"], evt_data["gangzi2"],
|
||||
evt_data["gangnum"], true)
|
||||
end
|
||||
|
||||
function M:OnEventBuGang(evt_data)
|
||||
printlog("OnEventBuGang")
|
||||
pt(evt_data)
|
||||
DispatchEvent(self._dispatcher, TX_GameEvent.EventBuGang, evt_data["info"], true)
|
||||
end
|
||||
|
||||
function M:OnEventResidueCard(evt_data)
|
||||
printlog("OnEventResidueCard")
|
||||
pt(evt_data)
|
||||
if evt_data.seat ~= DataManager.CurrenRoom.self_player.seat then
|
||||
return
|
||||
end
|
||||
DispatchEvent(self._dispatcher, TX_GameEvent.EventResidueCard, evt_data["residueCard"])
|
||||
end
|
||||
|
||||
-- 发送放子选择到服务器
|
||||
function M:SendAction(id)
|
||||
|
|
@ -124,18 +173,32 @@ function M:OnEventSendCards(evt_data)
|
|||
return
|
||||
end
|
||||
|
||||
local _room = self._room
|
||||
--if not _room.room_config.piao_niao or _room.self_player.entrust then
|
||||
-- _room.curren_round = _room.curren_round + 1
|
||||
--end
|
||||
_room.curren_round = evt_data["round"]
|
||||
|
||||
local _room = self._room
|
||||
if not _room.room_config.piao_niao or _room.self_player.entrust then
|
||||
_room.curren_round = _room.curren_round + 1
|
||||
end
|
||||
if _room.curren_round > 0 then _room.playing = true end
|
||||
|
||||
printlog("开始发牌===========>>>")
|
||||
pt(evt_data)
|
||||
|
||||
local room = DataManager.CurrenRoom
|
||||
--printlog(evt_data.laiziCard)
|
||||
--printlog(evt_data.laiziCard2)
|
||||
--printlog(evt_data.laiziCardBefore)
|
||||
--printlog(evt_data.laiziCard2Before)
|
||||
|
||||
|
||||
DispatchEvent(self._dispatcher, TX_GameEvent.SendGangZi, 102, 103, 0, true)
|
||||
|
||||
|
||||
|
||||
-- _room.SelfPlayer.AutoOutCard = false
|
||||
local handcards = evt_data["card_list"]
|
||||
local p = _room.self_player
|
||||
local seat = evt_data["bank_seat"]
|
||||
local jing = evt_data["jing"]
|
||||
_room.jing = jing
|
||||
self._cacheEvent:Enqueue(function()
|
||||
_room.banker_seat = seat
|
||||
for i=1,#_room.player_list do
|
||||
|
|
@ -144,10 +207,11 @@ function M:OnEventSendCards(evt_data)
|
|||
_room.player_list[i].card_list = {}
|
||||
end
|
||||
p.card_list = handcards
|
||||
self._room.self_player.hand_left_count = #handcards
|
||||
table.sort( handcards, ViewUtil.HandCardSort )
|
||||
DispatchEvent(self._dispatcher,TX_GameEvent.SendCards, p)
|
||||
end)
|
||||
self._room.self_player.hand_left_count = #handcards
|
||||
|
||||
table.sort(handcards, self.HandCardSortAndJing)
|
||||
DispatchEvent(self._dispatcher, TX_GameEvent.SendCards, p)
|
||||
end)
|
||||
end
|
||||
|
||||
function M:OnEventOutCard(evt_data)
|
||||
|
|
@ -163,7 +227,8 @@ function M:OnEventOutCard(evt_data)
|
|||
else
|
||||
if seat == _room.self_player.seat then
|
||||
list_remove(p.card_list, card)
|
||||
table.sort(p.card_list, ViewUtil.HandCardSort)
|
||||
|
||||
table.sort(p.card_list, self.HandCardSortAndJing)
|
||||
end
|
||||
p.hand_left_count = p.hand_left_count - 1
|
||||
if not p.outcard_list then p.outcard_list = {} end
|
||||
|
|
@ -183,8 +248,9 @@ function M:OnEventTakeCard(evt_data)
|
|||
self._cacheEvent:Enqueue(function()
|
||||
p.hand_left_count = p.hand_left_count +1
|
||||
if (seat == _room.self_player.seat) then
|
||||
_room.self_player.card_list[#_room.self_player.card_list+1] = card
|
||||
-- table.sort( _room.self_player.card_list, ViewUtil.HandCardSort )
|
||||
_room.self_player.card_list[#_room.self_player.card_list + 1] = card
|
||||
|
||||
-- table.sort( _room.self_player.card_list, self.HandCardSortAndJing )
|
||||
end
|
||||
DispatchEvent(self._dispatcher,TX_GameEvent.GetCard, seat, card, left_count)
|
||||
end)
|
||||
|
|
@ -217,6 +283,8 @@ function M:OnEventFzTips(evt_data)
|
|||
tip.weight = dtip["weight"]
|
||||
tip.card = dtip["card"]
|
||||
tip.type = dtip["type"]
|
||||
tip.opcard = dtip["opcard"]
|
||||
|
||||
-- if (dtip["opcard"]) then
|
||||
-- local opcard = dtip["opcard"]
|
||||
-- tip.OpCard = opcard
|
||||
|
|
@ -225,7 +293,11 @@ function M:OnEventFzTips(evt_data)
|
|||
-- end
|
||||
tiplist:AddTip(tip)
|
||||
end
|
||||
DispatchEvent(self._dispatcher,TX_GameEvent.FZTips, tiplist, weight)
|
||||
--排序规则,胡杠碰
|
||||
tiplist:SortList(function(a, b)
|
||||
return a.type < b.type
|
||||
end)
|
||||
DispatchEvent(self._dispatcher, TX_GameEvent.FZTips, tiplist, weight)
|
||||
end)
|
||||
end
|
||||
|
||||
|
|
@ -256,12 +328,19 @@ function M:OnEventFzAction(evt_data)
|
|||
end
|
||||
end
|
||||
end
|
||||
fz = {}
|
||||
fz.card = card
|
||||
fz.type = type
|
||||
fz.active_card = actice_card
|
||||
if (index == -1) then
|
||||
fz = {}
|
||||
fz.card = card
|
||||
fz.type = type
|
||||
fz.active_card = actice_card
|
||||
p.fz_list[#p.fz_list+1] = fz
|
||||
if (ftype == FZType.Chi) then
|
||||
local data = {}
|
||||
data[1] = opcard[1]
|
||||
data[2] = card
|
||||
data[3] = opcard[2]
|
||||
fz.opcard = data
|
||||
end
|
||||
p.fz_list[#p.fz_list + 1] = fz
|
||||
end
|
||||
fz.from_seat = from_seat
|
||||
local remove_num = #opcard
|
||||
|
|
@ -273,7 +352,7 @@ function M:OnEventFzAction(evt_data)
|
|||
end
|
||||
|
||||
p.hand_left_count = p.hand_left_count - remove_num
|
||||
if from_seat ~= p.seat then
|
||||
if from_seat ~= p.seat and ftype ~= FZType.Gang_Peng then
|
||||
-- if (fz.Type == FZType.Chi) then card = actice_card end
|
||||
local fp = _room:GetPlayerBySeat(from_seat)
|
||||
table.remove(fp.outcard_list,#fp.outcard_list)
|
||||
|
|
@ -287,21 +366,28 @@ function M:OnEventHu(evt_data)
|
|||
local cards = evt_data["card"]
|
||||
local win_p = self._room:GetPlayerBySeat(evt_data["seat"])
|
||||
local lose_p = self._room:GetPlayerBySeat(evt_data["from_seat"])
|
||||
local hu_card = evt_data["win_card"]
|
||||
table.sort(cards, ViewUtil.HandCardSort)
|
||||
cards[#cards +1] = hu_card
|
||||
|
||||
local win_card = evt_data["win_card"]
|
||||
local win_list = evt_data["win_list"]
|
||||
local scoreData = evt_data["result"].info_list
|
||||
|
||||
self._cacheEvent:Enqueue(function()
|
||||
win_p.card_list = cards
|
||||
DispatchEvent(self._dispatcher,TX_GameEvent.ZPHuCard, evt_data["seat"], evt_data["from_seat"], cards, hu_card)
|
||||
table.sort(win_p.card_list, self.HandCardSortAndJing)
|
||||
DispatchEvent(self._dispatcher, TX_GameEvent.ZPHuCard, evt_data["seat"], evt_data["from_seat"], win_card, cards,
|
||||
win_list, scoreData)
|
||||
end)
|
||||
end
|
||||
|
||||
function M:OneventResult1(evt_data)
|
||||
local over = evt_data.type
|
||||
printlog("OneventResult1")
|
||||
pt(evt_data)
|
||||
--0:小结算 1:小大结算 2:大结算
|
||||
self._room._reload_flag = false
|
||||
self._room.playing = false
|
||||
if evt_data.result then
|
||||
evt_data.result.cardList = evt_data.cardList
|
||||
end
|
||||
if 0 == over then
|
||||
local result = evt_data.result
|
||||
self._cacheEvent:Enqueue(function()
|
||||
|
|
@ -392,4 +478,34 @@ function M:Discard(card)
|
|||
_client:send(Protocol.Game_Da, _data)
|
||||
end
|
||||
|
||||
function M.HandCardSortAndJing(a, b)
|
||||
local jing = DataManager.CurrenRoom.jing
|
||||
if a == jing or b == jing then
|
||||
if a == b then
|
||||
return a < b
|
||||
end
|
||||
return a == jing
|
||||
else
|
||||
if a < 200 then
|
||||
a = a + 1000
|
||||
elseif a < 300 then
|
||||
a = a + 3000
|
||||
elseif a < 400 then
|
||||
a = a + 2000
|
||||
else
|
||||
a = a + 4000
|
||||
end
|
||||
if b < 200 then
|
||||
b = b + 1000
|
||||
elseif b < 300 then
|
||||
b = b + 3000
|
||||
elseif b < 400 then
|
||||
b = b + 2000
|
||||
else
|
||||
b = b + 4000
|
||||
end
|
||||
return a < b
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -2,307 +2,285 @@ local EXGameInfo = {}
|
|||
|
||||
local M = EXGameInfo
|
||||
|
||||
|
||||
function EXGameInfo.new(blur_view)
|
||||
setmetatable(M, {__index = IGameInfo})
|
||||
local self = setmetatable({}, {__index = M})
|
||||
setmetatable(M, { __index = IGameInfo })
|
||||
local self = setmetatable({}, { __index = M })
|
||||
self.class = "EXGameInfo"
|
||||
UIPackage.AddPackage("extend/majiang/hongzhong/ui/Info_MJ_HongZhong")
|
||||
UIPackage.AddPackage("extend/majiang/fuzhou/ui/Info_MJ_FuZhou")
|
||||
return self
|
||||
end
|
||||
|
||||
function M:FillData()
|
||||
self._maxPlayer = 4 -- 默认玩家人数
|
||||
self._roundChoice = 4 -- 回合选项数
|
||||
|
||||
if oldGameVersion==1 then
|
||||
self._config = UIPackage.CreateObjectFromURL("ui://Info_MJ_HongZhong/Cgm_create_room")
|
||||
else
|
||||
self._config = UIPackage.CreateObjectFromURL("ui://Info_MJ_HongZhong/Cgm_create_room_yueyang")
|
||||
end
|
||||
|
||||
if oldGameVersion==2 then
|
||||
self._config:GetController("xipai").selectedIndex=0
|
||||
|
||||
self.xipaiValueText=self._config:GetChild('xipaifen')
|
||||
self.xipaiValue=1
|
||||
self._maxPlayer = 4 -- 默认玩家人数
|
||||
self._roundChoice = 3 -- 回合选项数
|
||||
self._config = UIPackage.CreateObjectFromURL("ui://Info_MJ_FuZhou/Label_Detail_83")
|
||||
|
||||
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 jiangmaSlider = self._config:GetChild("n92")
|
||||
jiangmaSlider.onChanged:Set(function()
|
||||
self._config:GetChild("n93").text = string.format("奖%s马", Mathf.Round(jiangmaSlider.value) * 2)
|
||||
end)
|
||||
|
||||
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, 3, nil)
|
||||
gniv:Show()
|
||||
|
||||
|
||||
end
|
||||
)
|
||||
local com_editSetting = self._config:GetChild("com_editSetting")
|
||||
|
||||
com_editSetting:GetController("cGps").selectedIndex = 2
|
||||
|
||||
local ctr_round = self._config:GetController("round")
|
||||
if ctr_round.selectedIndex == 0 then
|
||||
com_editSetting:GetController("oneRound").selectedIndex = 1
|
||||
else
|
||||
com_editSetting:GetController("oneRound").selectedIndex = 0
|
||||
end
|
||||
self._config:GetController("round").onChanged:Set(function()
|
||||
if ctr_round.selectedIndex == 0 then
|
||||
com_editSetting:GetController("oneRound").selectedIndex = 1
|
||||
else
|
||||
com_editSetting:GetController("oneRound").selectedIndex = 0
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
local btn_cr2 = self._config:GetChild('anchoubtn')
|
||||
btn_cr2.onClick:Set(
|
||||
function()
|
||||
|
||||
local gniv = GroupNumberInputView_Game.new(nil, function(num)
|
||||
function M:FillDataNew()
|
||||
self._maxPlayer = 4 -- 默认玩家人数
|
||||
self._roundChoice = 3 -- 回合选项数
|
||||
self._config = UIPackage.CreateObjectFromURL("ui://Info_MJ_FuZhou/Label_Detail_83")
|
||||
|
||||
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
|
||||
|
||||
end
|
||||
local jiangmaSlider = self._config:GetChild("n92")
|
||||
jiangmaSlider.onChanged:Set(function()
|
||||
self._config:GetChild("n93").text = string.format("奖%s马", Mathf.Round(jiangmaSlider.value) * 2)
|
||||
end)
|
||||
|
||||
local _help_url= "ui://Info_MJ_HongZhong/Com_help"
|
||||
local com_editSetting = self._config:GetChild("com_editSetting")
|
||||
|
||||
com_editSetting:GetController("cGps").selectedIndex = 2
|
||||
|
||||
local ctr_round = self._config:GetController("round")
|
||||
if ctr_round.selectedIndex == 0 then
|
||||
com_editSetting:GetController("oneRound").selectedIndex = 1
|
||||
else
|
||||
com_editSetting:GetController("oneRound").selectedIndex = 0
|
||||
end
|
||||
self._config:GetController("round").onChanged:Set(function()
|
||||
if ctr_round.selectedIndex == 0 then
|
||||
com_editSetting:GetController("oneRound").selectedIndex = 1
|
||||
else
|
||||
com_editSetting:GetController("oneRound").selectedIndex = 0
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
local _help_url = "ui://Info_MJ_FuZhou/Com_help"
|
||||
function M:GetHelpUrl()
|
||||
return _help_url
|
||||
end
|
||||
|
||||
local _icon_url = "ui://Info_MJ_HongZhong/icon"
|
||||
local _icon_url = "ui://Info_MJ_FuZhou/icon"
|
||||
function M:GetIconUrl()
|
||||
return _icon_url
|
||||
return "ui://Lobby/fuzhoumajiang2", "ui://Lobby/fuzhoumajiang1"
|
||||
end
|
||||
|
||||
local _icon_url1 = "ui://Info_MJ_HongZhong/icon1"
|
||||
local _icon_url1 = "ui://Info_MJ_FuZhou/icon1"
|
||||
function M:GetIconUrl1()
|
||||
return _icon_url1
|
||||
end
|
||||
|
||||
local _play_list = {}--{"红中麻将","三人红中","二人红中"}
|
||||
local _play_list = {}
|
||||
function M:GetPlayList()
|
||||
return _play_list
|
||||
end
|
||||
|
||||
function M:GetPageURL()
|
||||
return "ui://Info_MJ_FuZhou/Label_Detail_83"
|
||||
end
|
||||
|
||||
function M:SelectedConfigData()
|
||||
local _config = self._config
|
||||
local round = _config:GetController("round").selectedIndex + 1
|
||||
local people = _config:GetController("play_list").selectedIndex+2
|
||||
local qiangkong = _config:GetChild("btn_qgh").selected and true or false
|
||||
local qiangkong_niao = _config:GetChild("btn_qghjm").selected and true or false
|
||||
local seven_pair = _config:GetChild("btn_qidui").selected and true or false
|
||||
local niao_type = _config:GetController("NiaoType").selectedIndex + 1
|
||||
local zha_ma = _config:GetController("zha").selectedIndex + 1
|
||||
local wo_niao = _config:GetController("wowoniao").selectedIndex + 1
|
||||
local laizi = _config:GetChild("btn_laizi").selected and true or false
|
||||
local aa = _config:GetController("Cost").selectedIndex
|
||||
-- local zhuangxian = _config:GetChild("btn_zhuangxian").selected and true or false
|
||||
local piao_niao = _config:GetChild("btn_piao_niao").selected
|
||||
local jiangma = _config:GetController("jiangma").selectedIndex
|
||||
local wuguizhuopaojiabei = _config:GetChild("btn_wuhongzhongzuobaofanbei").selected
|
||||
|
||||
----------
|
||||
local piao_niao1=0
|
||||
if _config:GetController('piao') then
|
||||
piao_niao1=_config:GetController('piao').selectedIndex
|
||||
end
|
||||
local piao1=false
|
||||
local piao2=false
|
||||
local piao3=false
|
||||
local piao_niao_opt=0
|
||||
if piao_niao1==2 then
|
||||
piao_niao_opt=_config:GetController("piaofen").selectedIndex
|
||||
end
|
||||
|
||||
|
||||
local laizi4_hu = false
|
||||
if _config:GetChild("btn_sihongzhong") then
|
||||
laizi4_hu = _config:GetChild("btn_sihongzhong").selected
|
||||
end
|
||||
|
||||
local hz_hu =false
|
||||
if _config:GetChild("btn_wuhongzhong") then
|
||||
hz_hu = _config:GetChild("btn_wuhongzhong").selected
|
||||
end
|
||||
|
||||
local wuguijiabei =false
|
||||
if _config:GetChild("btn_wuhongzhongzimo") then
|
||||
wuguijiabei = _config:GetChild("btn_wuhongzhongzimo").selected
|
||||
end
|
||||
|
||||
local di_fen=false
|
||||
if _config:GetController('difen') then
|
||||
di_fen=_config:GetController('difen').selectedIndex
|
||||
end
|
||||
|
||||
local xi_pai=false
|
||||
if _config:GetChild("xipai") then
|
||||
xi_pai=_config:GetChild("xipai").selected
|
||||
end
|
||||
|
||||
local fengding_score=0
|
||||
if _config:GetController("fengding") then
|
||||
fengding_score=_config:GetController("fengding").selectedIndex
|
||||
end
|
||||
----------
|
||||
local people = _config:GetController("peopleNum").selectedIndex + 2
|
||||
|
||||
local zimo = _config:GetController("ZiMo").selectedIndex
|
||||
local shaozhuang = _config:GetController("ShaoZhuang").selectedIndex
|
||||
local fengding = _config:GetController("FengDing").selectedIndex
|
||||
local Tiandihu = _config:GetController("TianDiHu").selectedIndex
|
||||
local zikechengshun = _config:GetController("ZiKeChengShun").selectedIndex
|
||||
local zhuangfenfanbei = _config:GetController('ZhuangFenFanBei').selectedIndex
|
||||
|
||||
local jiangma = Mathf.Round(_config:GetChild("n92").value)
|
||||
|
||||
local xi_pai = false
|
||||
local xi_paifen = 0
|
||||
if _config:GetChild("xipai") then
|
||||
xi_pai = _config:GetChild("xipai").selected
|
||||
end
|
||||
|
||||
|
||||
|
||||
------
|
||||
local _data = {}
|
||||
_data["opt"] = round
|
||||
_data["maxPlayers"] = people
|
||||
-- _data["maxPlayers"] = 2
|
||||
-- _data["zhuangxian"] = zhuangxian
|
||||
_data["qidui"] = seven_pair
|
||||
_data["qiangkong"] = qiangkong
|
||||
_data["qiangkong_niao"] = not qiangkong and false or qiangkong_niao
|
||||
_data["niao"] = niao_type
|
||||
if oldGameVersion==1 then
|
||||
_data["niao_opt"] = niao_type == 2 and 1 or (niao_type == 3 and wo_niao or zha_ma)
|
||||
else
|
||||
_data["niao_opt"] = niao_type == 2 and 1 or (niao_type == 3 and wo_niao or zha_ma)
|
||||
end
|
||||
|
||||
_data["niao_opt_score"] = wo_niao
|
||||
|
||||
|
||||
_data["laizi8"] = laizi
|
||||
_data["AA"] = aa
|
||||
if oldGameVersion==1 then
|
||||
_data["piao_niao"] = piao_niao
|
||||
else
|
||||
_data["piao_niao"] = piao_niao1
|
||||
end
|
||||
|
||||
|
||||
_data["zimo"] = zimo
|
||||
_data["shaozhuang"] = shaozhuang
|
||||
_data["fengding"] = fengding
|
||||
_data["Tiandihu"] = Tiandihu
|
||||
_data["zikechengshun"] = zikechengshun
|
||||
_data["zhuangfenfanbei"] = zhuangfenfanbei
|
||||
|
||||
|
||||
_data["jiangma"] = jiangma
|
||||
|
||||
_data['piao1'] = piao1
|
||||
_data['piao2'] = piao2
|
||||
_data['piao3'] = piao3
|
||||
_data['laizi4_hu'] = laizi4_hu
|
||||
_data['hz_hu'] = hz_hu
|
||||
_data['wuguijiabei'] = wuguijiabei
|
||||
_data['di_fen'] = di_fen
|
||||
_data['xi_pai'] = xi_pai
|
||||
|
||||
auto_piao=false
|
||||
if piao_niao==2 then
|
||||
if piao1 or piao2 or piao3 then
|
||||
auto_piao=true
|
||||
end
|
||||
end
|
||||
_data['auto_piao'] = auto_piao
|
||||
_data['piao_niao_opt'] = piao_niao_opt
|
||||
|
||||
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
|
||||
|
||||
_data["fengding_score"] = fengding_score
|
||||
_data["wuguizhuopaojiabei"] = wuguizhuopaojiabei
|
||||
|
||||
_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
|
||||
end
|
||||
|
||||
function M:LoadConfigData(data)
|
||||
local _config = self._config
|
||||
_config:GetController("round").selectedIndex = data.opt-1
|
||||
_config:GetController("play_list").selectedIndex = data.maxPlayers-2
|
||||
_config:GetChild("btn_qgh").selected = data.qiangkong
|
||||
_config:GetChild("btn_qghjm").selected = data.qiangkong_niao
|
||||
_config:GetChild("btn_qidui").selected = data.qidui
|
||||
-- _config:GetChild("btn_zhuangxian").selected = data.zhuangxian
|
||||
_config:GetController("NiaoType").selectedIndex = data.niao - 1
|
||||
if data.niao == 1 then
|
||||
_config:GetController("zha").selectedIndex = data.niao_opt - 1
|
||||
elseif data.niao == 3 then
|
||||
_config:GetController("wowoniao").selectedIndex = data.niao_opt - 1
|
||||
end
|
||||
_config:GetController("wowoniao").selectedIndex = data.niao_opt_score - 1
|
||||
|
||||
_config:GetChild("btn_laizi").selected = data.laizi8
|
||||
_config:GetController("Cost").selectedIndex = data.AA or 0
|
||||
if oldGameVersion==1 then
|
||||
_config:GetChild("btn_piao_niao").selected = data.piao_niao
|
||||
end
|
||||
_config:GetController("jiangma").selectedIndex = data.jiangma
|
||||
|
||||
|
||||
if _config:GetController("piao") then
|
||||
_config:GetController("piao").selectedIndex=data.piao_niao
|
||||
_config:GetChild('pf1').selected=data.piao1
|
||||
_config:GetChild('pf2').selected=data.piao2
|
||||
_config:GetChild('pf3').selected=data.piao3
|
||||
end
|
||||
|
||||
if _config:GetChild("btn_sihongzhong") then
|
||||
_config:GetChild("btn_sihongzhong").selected=data.laizi4_hu
|
||||
_config:GetChild("btn_wuhongzhong").selected=data.hz_hu
|
||||
_config:GetChild("btn_wuhongzhongzimo").selected=data.wuguijiabei
|
||||
end
|
||||
|
||||
if _config:GetController("difen") then
|
||||
_config:GetController("difen").selectedIndex=data.di_fen
|
||||
end
|
||||
|
||||
if _config:GetChild("xipai") then
|
||||
_config:GetChild("xipai").selected=data.xi_pai
|
||||
end
|
||||
|
||||
if _config:GetController("piaofen") then
|
||||
_config:GetController("piaofen").selectedIndex=data.piao_niao_opt
|
||||
end
|
||||
|
||||
if oldGameVersion==2 then
|
||||
self.xipaiValueText.text=data.xi_pai_score/1000
|
||||
self.xipaiValue=data.xi_pai_score/1000
|
||||
--printlog("加载房间配置=========>>>")
|
||||
--pt(data)
|
||||
local _config = self._config
|
||||
_config:GetController("round").selectedIndex = data.opt - 1
|
||||
_config:GetController("peopleNum").selectedIndex = data.maxPlayers - 2
|
||||
|
||||
self.anchouValueText.text=data.an_chou_score/1000
|
||||
self.anchouValue=data.an_chou_score/1000
|
||||
end
|
||||
|
||||
if _config:GetController("fengding") then
|
||||
_config:GetController("fengding").selectedIndex=data.fengding_score
|
||||
end
|
||||
|
||||
_config:GetChild("btn_wuhongzhongzuobaofanbei").selected=data.wuguizhuopaojiabei
|
||||
|
||||
end
|
||||
|
||||
return M
|
||||
|
||||
_config:GetController("ZiMo").selectedIndex = data.zimo
|
||||
_config:GetController("ShaoZhuang").selectedIndex = data.shaozhuang
|
||||
_config:GetController("FengDing").selectedIndex = data.fengding
|
||||
_config:GetController("TianDiHu").selectedIndex = data.Tiandihu
|
||||
_config:GetController("ZiKeChengShun").selectedIndex = data.zikechengshun
|
||||
_config:GetController('ZhuangFenFanBei').selectedIndex = data.zhuangfenfanbei
|
||||
|
||||
_config:GetChild("n92").value = data.jiangma
|
||||
self._config:GetChild("n93").text = string.format("奖%s马", data.jiangma * 2)
|
||||
end
|
||||
|
||||
function M:LoadConfigToDetailOnlyPlay(data, hpdata)
|
||||
local configData = data
|
||||
if type(data) == 'string' then
|
||||
configData = json.decode(data)
|
||||
end
|
||||
|
||||
local hpData = configData.hpData or hpdata
|
||||
if type(hpData) == 'string' then
|
||||
if hpData == "null" then
|
||||
hpData = nil
|
||||
else
|
||||
hpData = json.decode(hpData)
|
||||
end
|
||||
end
|
||||
|
||||
local returnString = ""
|
||||
if hpData then
|
||||
returnString = string.format("%s倍", hpData.times / 1000)
|
||||
end
|
||||
|
||||
returnString = string.format("%s人数%s人", returnString, configData.maxPlayers)
|
||||
|
||||
if hpData then
|
||||
returnString = string.format("%s %s局", returnString, hpData.maxRound)
|
||||
end
|
||||
|
||||
if configData.zimo then
|
||||
returnString = string.format("%s,%s", returnString, configData.zimo == 0 and "可点炮,可自摸" or "必须自摸")
|
||||
end
|
||||
if configData.shaozhuang then
|
||||
returnString = string.format("%s%s", returnString, configData.shaozhuang == 0 and ",不烧庄" or ",烧庄")
|
||||
end
|
||||
if configData.fengding then
|
||||
local matString = "%s%s"
|
||||
if configData.fengding == 0 then
|
||||
returnString = string.format(matString, returnString, ",封顶20炮")
|
||||
else
|
||||
returnString = string.format(matString, returnString, ",不封顶")
|
||||
end
|
||||
end
|
||||
if configData.TianDiHu then
|
||||
returnString = string.format("%s%s", returnString, configData.TianDiHu == 0 and ",天地胡玩法" or ",没有天地胡")
|
||||
end
|
||||
if configData.jiangma then
|
||||
returnString = string.format("%s,%s马", returnString,
|
||||
configData.jiangma == 0 and "不奖" or string.format("奖%s", configData.jiangma * 2))
|
||||
end
|
||||
if configData.zikechengshun then
|
||||
returnString = string.format("%s%s", returnString, configData.zikechengshun == 0 and ",字可成顺" or ",字不可成顺")
|
||||
end
|
||||
if configData.zhuangfenfanbei then
|
||||
returnString = string.format("%s%s", returnString, configData.zhuangfenfanbei == 0 and ",庄家积分翻倍" or ",庄家积分不翻倍")
|
||||
end
|
||||
|
||||
if hpData then
|
||||
if hpData.BanChat then
|
||||
returnString = string.format("%s%s", returnString, hpData.BanChat == 1 and ",不允许快捷聊天" or "")
|
||||
end
|
||||
end
|
||||
return returnString
|
||||
end
|
||||
|
||||
function M:LoadConfigToDetail(data, hpdata)
|
||||
local configData = data
|
||||
if type(data) == 'string' then
|
||||
configData = json.decode(data)
|
||||
end
|
||||
|
||||
local hpData = configData.hpData or hpdata
|
||||
if type(hpData) == 'string' then
|
||||
if hpData == "null" then
|
||||
hpData = nil
|
||||
else
|
||||
hpData = json.decode(hpData)
|
||||
end
|
||||
end
|
||||
|
||||
local returnString = ""
|
||||
if hpData then
|
||||
returnString = string.format("%s倍,", hpData.times / 1000)
|
||||
end
|
||||
|
||||
returnString = string.format("%s人数%s人", returnString, configData.maxPlayers)
|
||||
|
||||
if hpData then
|
||||
returnString = string.format("%s %s局", returnString, hpData.maxRound)
|
||||
end
|
||||
if configData.zimo then
|
||||
returnString = string.format("%s,%s", returnString, configData.zimo == 0 and "可点炮,可自摸" or "必须自摸")
|
||||
end
|
||||
if configData.shaozhuang then
|
||||
returnString = string.format("%s%s", returnString, configData.shaozhuang == 0 and ",不烧庄" or ",烧庄")
|
||||
end
|
||||
if configData.fengding then
|
||||
local matString = "%s%s"
|
||||
if configData.fengding == 0 then
|
||||
returnString = string.format(matString, returnString, ",封顶20炮")
|
||||
else
|
||||
returnString = string.format(matString, returnString, ",不封顶")
|
||||
end
|
||||
end
|
||||
if configData.TianDiHu then
|
||||
returnString = string.format("%s%s", returnString, configData.TianDiHu == 0 and ",天地胡玩法" or ",没有天地胡")
|
||||
end
|
||||
if configData.jiangma then
|
||||
returnString = string.format("%s,%s马", returnString,
|
||||
configData.jiangma == 0 and "不奖" or string.format("奖%s", configData.jiangma * 2))
|
||||
end
|
||||
if configData.zikechengshun then
|
||||
returnString = string.format("%s%s", returnString, configData.zikechengshun == 0 and ",字可成顺" or ",字不可成顺")
|
||||
end
|
||||
if configData.zhuangfenfanbei then
|
||||
returnString = string.format("%s%s", returnString, configData.zhuangfenfanbei == 0 and ",庄家积分翻倍" or ",庄家积分不翻倍")
|
||||
end
|
||||
|
||||
returnString = returnString .. IGameInfo.LoadConfigToDetail(self, configData, hpData)
|
||||
|
||||
return returnString
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
|
|||
|
|
@ -1,33 +1,43 @@
|
|||
local MJPlayBackView = require("main.majiang.MJPlayBackView")
|
||||
local EXRoomConfig = import(".EXRoomConfig")
|
||||
local EXClearingView = import(".EXClearingView")
|
||||
local HuCardImg = import(".HuCardImg")
|
||||
local FZTipList = require("main.majiang.FZData")
|
||||
local MJPlayerCardInfoView = require("main.majiang.MJPlayerCardInfoView")
|
||||
|
||||
|
||||
local Record_Event = import(".RecordEvent")
|
||||
|
||||
|
||||
local M = {}
|
||||
|
||||
--- Create a new
|
||||
--- Create a new
|
||||
function M.new()
|
||||
setmetatable(M,{__index = MJPlayBackView})
|
||||
local self = setmetatable({}, {__index = M})
|
||||
setmetatable(M, { __index = MJPlayBackView })
|
||||
local self = setmetatable({}, { __index = M })
|
||||
self.class = "PlayBackView"
|
||||
self:init()
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
|
||||
function M:InitView(url)
|
||||
local room = self._room
|
||||
UIPackage.AddPackage("extend/majiang/hongzhong/ui/Extend_MJ_HongZhong")
|
||||
MJPlayBackView.InitView(self,"ui://Main_Majiang/Main_"..room.room_config.people_num)
|
||||
local _cardbox = self._view:GetChild("cardbox")
|
||||
--self._view:GetChild("panel_record"):GetChild("btn_LastStep").enabled = false
|
||||
local room = self._room
|
||||
UIPackage.AddPackage("extend/majiang/fuzhou/ui/Extend_MJ_FuZhou")
|
||||
MJPlayBackView.InitView(self, string.format("ui://Main_Majiang/Main_new_%d_jiangxi", room.room_config.people_num))
|
||||
local _cardbox = self._view:GetChild("cardbox")
|
||||
--self._view:GetChild("panel_record"):GetChild("btn_LastStep").enabled = false
|
||||
self._ctr_cardbox = _cardbox:GetController("c1")
|
||||
self._tex_round = self._view:GetChild("tex_round")
|
||||
self._tex_LeftCard = self._view:GetChild("remaining_card")
|
||||
self._anchor = self._view:GetChild("mask_tips")
|
||||
self.jing = self._view:GetChild('jing')
|
||||
|
||||
self.HuCardImg = setmetatable(HuCardImg, { __index = self.HuCardImg })
|
||||
self.asset_group = "FuZhou_MJ"
|
||||
self.HuCardImg_path = "ui://Extend_MJ_FuZhou/"
|
||||
self.Sound_path = "extend/majiang/fuzhou/sound/"
|
||||
|
||||
self._eventmap = {}
|
||||
|
||||
self._cmdmap = {}
|
||||
|
|
@ -38,36 +48,44 @@ function M:InitView(url)
|
|||
self._cmdmap[Record_Event.Evt_Niao] = self.CmdNiao
|
||||
self._cmdmap[Record_Event.Evt_Piao] = self.CmdPiao
|
||||
self._cmdmap[Record_Event.Evt_Result] = self.CmdResult
|
||||
self._cmdmap[Record_Event.Evt_FZTip] = self.CmdFZTip
|
||||
self._cmdmap[Record_Event.Evt_GangScore] = self.GangScore
|
||||
|
||||
self.com_logocType.selectedIndex = 0
|
||||
end
|
||||
|
||||
function M:FillRoomData(data)
|
||||
MJPlayBackView.FillRoomData(self)
|
||||
if self._win_pic then self._win_pic:Dispose() end
|
||||
if self._niao then self._niao:Dispose() end
|
||||
self._currentStep = 0
|
||||
local room = DataManager.CurrenRoom
|
||||
local _player_card_info = self._player_card_info
|
||||
local left_count = data.info.left_card
|
||||
self:UpdateLeftCard(left_count)
|
||||
local round = data.info.round
|
||||
self:UpdateRound(round)
|
||||
|
||||
local roominfo_panel = self._view:GetChild("roominfo_panel1")
|
||||
roominfo_panel:GetChild("tex_roomid").text = room.room_id
|
||||
roominfo_panel:GetChild("tex_gametype").text = room.room_config:GetGameName()
|
||||
MJPlayBackView.FillRoomData(self)
|
||||
if self._win_pic then self._win_pic:Dispose() end
|
||||
if self._niao then self._niao:Dispose() end
|
||||
self._currentStep = 0
|
||||
local room = DataManager.CurrenRoom
|
||||
local _player_card_info = self._player_card_info
|
||||
local left_count = data.info.left_card
|
||||
self:UpdateLeftCard(left_count)
|
||||
local round = data.info.round
|
||||
self:UpdateRound(round)
|
||||
self:ShowJing()
|
||||
|
||||
for i = 1, #room.player_list do
|
||||
local p = room.player_list[i]
|
||||
local card_info = _player_card_info[self:GetPos(p.seat)]
|
||||
card_info:Clear()
|
||||
table.sort(p.card_list, ViewUtil.HandCardSort)
|
||||
card_info:UpdateHandCard(false, true)
|
||||
self._player_info[i]._view:GetController("piao_niao").selectedIndex = 0
|
||||
end
|
||||
local roominfo_panel = self._view:GetChild("roominfo_panel1")
|
||||
roominfo_panel:GetChild("tex_roomid").text = room.room_id
|
||||
roominfo_panel:GetChild("tex_gametype").text = room.room_config:GetGameName()
|
||||
|
||||
self:GenerateAllStepData(data)
|
||||
self:UpdateStep(1)
|
||||
-- self:ShowStep(0)
|
||||
for i = 1, #room.player_list do
|
||||
local p = room.player_list[i]
|
||||
local card_info = _player_card_info[self:GetPos(p.seat)]
|
||||
card_info:Clear()
|
||||
table.sort(p.card_list, self.HandCardSortAndJing)
|
||||
card_info:UpdateHandCard(false, true)
|
||||
self._player_info[i]._view:GetController("piao_niao").selectedIndex = 0
|
||||
end
|
||||
|
||||
self:GenerateAllStepData(data)
|
||||
self:UpdateStep(1)
|
||||
self:Play()
|
||||
self._laiziMove:Play()
|
||||
self._touxiangMove:Play()
|
||||
-- self:ShowStep(0)
|
||||
end
|
||||
|
||||
function M:ShowStep(index)
|
||||
|
|
@ -86,76 +104,348 @@ function M:ShowStep(index)
|
|||
p.outcard_list = step.player_card_data[i].outcard_list
|
||||
p.fz_list = step.player_card_data[i].fz_list
|
||||
p.hand_left_count = #p.card_list
|
||||
info:Clear()
|
||||
info:ResetFzList()
|
||||
-- info:Clear()
|
||||
-- info:ResetFzList()
|
||||
p.piao_niao = step.player_card_data[i].piao_niao
|
||||
local head_info = self._player_info[self:GetPos(i)]
|
||||
if p.piao_niao and p.piao_niao > 0 then
|
||||
head_info._view:GetChild("mask_piao").title = "飘分 " .. p.piao_niao
|
||||
head_info._view:GetController("piao_niao").selectedIndex = 1
|
||||
else
|
||||
head_info._view:GetController("piao_niao").selectedIndex = 0
|
||||
head_info._view:GetController("piao_niao").selectedIndex = 0
|
||||
end
|
||||
if step.cmd == Record_Event.Evt_OutCard and i == step.last_out_seat then
|
||||
local card = p.outcard_list[#p.outcard_list]
|
||||
info:UpdateOutCardList(nil, nil, self._cursor)
|
||||
info:UpdateOutCardList(nil, card, self._cursor)
|
||||
self:PlayMJSound("chupai.mp3")
|
||||
self:PlaySound("FuZhou_MJ", p.self_user.sex, tostring(card))
|
||||
else
|
||||
info:UpdateOutCardList()
|
||||
end
|
||||
if step.cmd == Record_Event.Evt_GetCard and p.seat == step.current_out_seat then
|
||||
info:UpdateHandCard(true, true)
|
||||
---显示提示按钮
|
||||
local _ctr_tips = info._view:GetController('tip2')
|
||||
local _lit_fanzi = info._view:GetChild("Comp_Back_FZTips")
|
||||
local _flag_tipGetCard = false
|
||||
if step.cmd == Record_Event.Evt_FZTip then
|
||||
if p.seat == step.seat then
|
||||
local tip = step.tiplist
|
||||
local _tlist = tip.tip_sortList
|
||||
_lit_fanzi.itemRenderer = function(index, obj)
|
||||
local type = obj:GetController('type')
|
||||
if index == tip.tip_num then
|
||||
type.selectedIndex = 0
|
||||
else
|
||||
index = index + 1
|
||||
if _tlist[index].type == FZType.HU then
|
||||
type.selectedIndex = 4
|
||||
obj:GetChild('btn_Card1').icon = string.format('ui://Main_Majiang/b202_%d',
|
||||
_tlist[index].card)
|
||||
_flag_tipGetCard = self.last_get_seat ~= step.seat
|
||||
elseif _tlist[index].type == FZType.Chi then
|
||||
type.selectedIndex = FZType.Chi
|
||||
for i = 1, 3 do
|
||||
obj:GetChild(string.format('btn_Card%d', i)).icon = string.format(
|
||||
'ui://Main_Majiang/b202_%d',
|
||||
_tlist[index].opcard[i])
|
||||
end
|
||||
elseif _tlist[index].type == FZType.Peng then
|
||||
type.selectedIndex = FZType.Peng
|
||||
for i = 1, 3 do
|
||||
obj:GetChild(string.format('btn_Card%d', i)).icon = string.format(
|
||||
'ui://Main_Majiang/b202_%d',
|
||||
_tlist[index].card)
|
||||
end
|
||||
else
|
||||
for i = 1, 4 do
|
||||
obj:GetChild(string.format('btn_Card%d', i)).icon = string.format(
|
||||
'ui://Main_Majiang/b202_%d',
|
||||
_tlist[index].card)
|
||||
end
|
||||
type.selectedIndex = FZType.Gang
|
||||
if _tlist[index].type == FZType.Gang_An then
|
||||
obj:GetChild('btn_Card4').icon = 'ui://Main_Majiang/b202_00'
|
||||
end
|
||||
_flag_tipGetCard = true
|
||||
end
|
||||
end
|
||||
end
|
||||
_ctr_tips.selectedIndex = 1
|
||||
_lit_fanzi.numItems = tip.tip_num + 1
|
||||
end
|
||||
else
|
||||
info:UpdateHandCard(false, true)
|
||||
_ctr_tips.selectedIndex = 0
|
||||
_lit_fanzi.numItems = 0
|
||||
end
|
||||
----多人胡的时候,同时显示胡
|
||||
if step.cmd == Record_Event.Evt_Result then
|
||||
--所有都显示胡吧,暂时没做胡和自摸的判断
|
||||
if not self.result then
|
||||
if step.result_data.info_list[i].is_win then
|
||||
local info2 = self._player_card_info[self:GetPos(step.result_data.info_list[i].seat)]
|
||||
local loader_HuEffect = info2._viewLoader_selfHuCardEffect
|
||||
local isZiMo = false
|
||||
DataManager.CurrenRoom.isZiMoHu = isZiMo
|
||||
local hu_sound = isZiMo and ("zimo") or ("hu")
|
||||
printlog("声音====>>>", hu_sound)
|
||||
self:PlaySound(self.asset_group, p.self_user.sex, hu_sound)
|
||||
|
||||
local effects = isZiMo and ("tile_zimo") or ("tile_hu")
|
||||
loader_HuEffect.visible = true
|
||||
loader_HuEffect.url = "ui://Main_Majiang/" .. effects
|
||||
loader_HuEffect:SetScale(2, 2)
|
||||
local hu_tween = loader_HuEffect:TweenScale(Vector2(1, 1), 0.3)
|
||||
hu_tween:SetEase(EaseType.QuartOut)
|
||||
hu_tween:OnComplete(function()
|
||||
loader_HuEffect.visible = false
|
||||
end)
|
||||
end
|
||||
end
|
||||
end
|
||||
if step.cmd ~= Record_Event.Evt_OutCard and step.cmd ~= Record_Event.Evt_GangScore and step.cmd ~= Record_Event.Evt_Win and step.cmd ~= Record_Event.Evt_Niao and p.seat == step.current_out_seat or step.cmd == Record_Event.Evt_Result then
|
||||
if step.cmd == Record_Event.Evt_Action then
|
||||
pt("lingmeng step ", step)
|
||||
local fz = step.fz
|
||||
local info = self._player_card_info[self:GetPos(i)]
|
||||
local loader_HuEffect = info._viewClip_Peng_Gang
|
||||
local effects = ""
|
||||
if fz.type == FZType.Peng then
|
||||
self:PlaySound("Main_Majiang", p.self_user.sex, "peng")
|
||||
effects = "clip_peng"
|
||||
elseif fz.type == FZType.Chi then
|
||||
|
||||
else
|
||||
self:PlaySound("Main_Majiang", p.self_user.sex, "gang")
|
||||
effects = "clip_gang"
|
||||
end
|
||||
local clip = UIPackage.CreateObjectFromURL(string.format("ui://Main_Majiang/%s", effects))
|
||||
clip:SetSize(loader_HuEffect.width, loader_HuEffect.height)
|
||||
loader_HuEffect:AddChild(clip)
|
||||
clip:SetPlaySettings(0, -1, 1, -1)
|
||||
clip.onPlayEnd:Add(function()
|
||||
if clip.parent then
|
||||
clip.parent:RemoveChild(clip)
|
||||
end
|
||||
clip:Dispose()
|
||||
end)
|
||||
clip.playing = true
|
||||
info:UpdateFzList(fz, index, true, self:GetPos(fz.from_seat))
|
||||
end
|
||||
printlog("lingmeng UpdateHandCard", step.cmd, p.seat, step.fz and step.fz.type or -1, FZType.Peng,
|
||||
_flag_tipGetCard)
|
||||
if step.cmd == Record_Event.Evt_Action and step.fz.type ~= FZType.Peng then
|
||||
info:UpdateHandCard(false, true)
|
||||
elseif step.cmd == Record_Event.Evt_FZTip and not _flag_tipGetCard then
|
||||
info:UpdateHandCard(false, true)
|
||||
elseif step.cmd == Record_Event.Evt_Result then
|
||||
local _flag_result = false
|
||||
for i = 1, #step.result_data.info_list do
|
||||
printlog("lingmeng UpdateHandCard3", step.result_data.info_list[i].is_win,
|
||||
step.result_data.info_list[i].seat)
|
||||
|
||||
if step.result_data.info_list[i].is_win and p.seat == step.result_data.info_list[i].seat then
|
||||
_flag_result = true
|
||||
end
|
||||
end
|
||||
printlog("lingmeng UpdateHandCard3", _flag_result)
|
||||
info:UpdateHandCard(_flag_result, true)
|
||||
else
|
||||
info:UpdateHandCard(true, true)
|
||||
end
|
||||
else
|
||||
if step.cmd == Record_Event.Evt_Win or step.cmd == Record_Event.Evt_Niao then
|
||||
else
|
||||
info:UpdateHandCard(false, true)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--统一在大结算时显示
|
||||
if step.cmd == Record_Event.Evt_Win then
|
||||
self._win_pic = UIPackage.CreateObjectFromURL("ui://Main_Majiang/胡")
|
||||
local info = self._player_card_info[self:GetPos(step.win)]
|
||||
info._mask_liangpai:AddChild(self._win_pic)
|
||||
self._win_pic:Center()
|
||||
else
|
||||
if self._win_pic then
|
||||
self._win_pic:Dispose()
|
||||
end
|
||||
end
|
||||
--统一在大结算时显示
|
||||
if step.cmd == Record_Event.Evt_Niao then
|
||||
local niao_list = step.niao
|
||||
self._niao = UIPackage.CreateObjectFromURL("ui://Extend_MJ_HongZhong/Panel_Birds")
|
||||
local list = self._niao:GetChild("Lst_birds")
|
||||
list:RemoveChildrenToPool()
|
||||
for i = 1, #niao_list do
|
||||
local item = list:AddItemFromPool()
|
||||
item.icon = UIPackage.GetItemURL("Main_Majiang", "201_"..niao_list[i].card)
|
||||
if niao_list[i].score > 0 then
|
||||
item:GetController("bg").selectedIndex = 2
|
||||
end
|
||||
end
|
||||
self._view:AddChild(self._niao)
|
||||
self._view:AddChild(self._view:GetChild("panel_record"))
|
||||
self._niao:Center()
|
||||
else
|
||||
if self._niao then
|
||||
self._niao:Dispose()
|
||||
end
|
||||
end
|
||||
if step.cmd == Record_Event.Evt_Result then
|
||||
print("lingmeng playerback", self.result)
|
||||
if not self.result then
|
||||
self.result = EXClearingView.new(self._root_view, true)
|
||||
self.result:InitData(0, self._room, step.result_data)
|
||||
local result = step.result_data
|
||||
result.cardList = step.residual_card
|
||||
self.result = EXClearingView.new(self, { flag_back = true })
|
||||
self.result:InitData(0, self._room, result)
|
||||
self.result._view.x = (GRoot.inst.width - self.result._view.width) * -0.5
|
||||
self.result._view.width = GRoot.inst.width
|
||||
self.result._view.height = GRoot.inst.height
|
||||
self.result._view:GetChild("btn_confirm").visible = false
|
||||
self._anchor:AddChild(self.result._view)
|
||||
self.result._view.visible = false
|
||||
self.result._view.x = self._anchor.x * -1
|
||||
self.result._view.y = self._anchor.y * -1
|
||||
|
||||
local liuju = result and result.liuju or nil
|
||||
coroutine.start(function()
|
||||
coroutine.wait(0.3)
|
||||
|
||||
--逐个显示胡的特效
|
||||
for i = 1, #result.info_list do
|
||||
local hu_info = result.info_list[i]
|
||||
local player = self._room:GetPlayerBySeat(hu_info.seat)
|
||||
local info = self._player_card_info[self:GetPos(hu_info.seat)]
|
||||
|
||||
if hu_info.is_win then
|
||||
local win_list = hu_info.win_list
|
||||
|
||||
local list_HuCardEffect = info._viewList_HuEffect
|
||||
local Effects = {}
|
||||
--先循环一遍把杠上开花放在最前面
|
||||
for i = 1, #win_list do
|
||||
local HuMsg = win_list[i]
|
||||
if HuMsg.type > 2 and HuMsg.type < 60 then
|
||||
if self.HuCardImg[HuMsg.type][1] == "tile_cs_gangshanghua" then
|
||||
local imgPath = "ui://Main_Majiang/tile_cs_gangshanghua"
|
||||
local imgObj = list_HuCardEffect:AddItemFromPool()
|
||||
local imgLoader = imgObj:GetChild("loader_img")
|
||||
imgLoader.url = imgPath
|
||||
imgObj.visible = false
|
||||
Effects[#Effects + 1] = imgObj
|
||||
table.remove(win_list, i)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, #win_list do
|
||||
local HuMsg = win_list[i]
|
||||
|
||||
-- ↓↓↓先排列好特效图片
|
||||
if HuMsg.type > 2 and HuMsg.type < 60 then
|
||||
local sound_name = string.format(self.Sound_path .. "%s/%s.mp3",
|
||||
ViewUtil.Sex_Chat[player.self_user.sex],
|
||||
"he" .. HuMsg.type)
|
||||
ViewUtil.PlaySound(self.asset_group, sound_name)
|
||||
|
||||
local imgList = self.HuCardImg[HuMsg.type]
|
||||
for _, img in pairs(imgList) do
|
||||
local imgPath = "ui://Main_Majiang/" .. img
|
||||
local imgObj = list_HuCardEffect:AddItemFromPool()
|
||||
local imgLoader = imgObj:GetChild("loader_img")
|
||||
imgLoader.url = imgPath
|
||||
imgObj.visible = false
|
||||
Effects[#Effects + 1] = imgObj
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--小于四个字段时动态调整胡特效
|
||||
if info._viewText_cardInfo["huEffet_columnGap"] and #Effects < 4 then
|
||||
list_HuCardEffect.columnGap = tonumber(info._viewText_cardInfo["huEffet_columnGap"])
|
||||
else
|
||||
list_HuCardEffect.columnGap = 0
|
||||
end
|
||||
|
||||
-- ↓↓↓播放动画
|
||||
for _, imgObj in pairs(Effects) do
|
||||
imgObj.visible = true
|
||||
|
||||
local effect_xingxing = imgObj:GetChild("effect_xingxing")
|
||||
effect_xingxing:SetPlaySettings(0, -1, 1, -1);
|
||||
effect_xingxing.visible = true
|
||||
effect_xingxing.playing = true
|
||||
effect_xingxing.onPlayEnd:Set(function()
|
||||
effect_xingxing.visible = false
|
||||
end)
|
||||
|
||||
local imgLoader = imgObj:GetChild("loader_img")
|
||||
imgLoader:SetScale(2, 2)
|
||||
imgLoader:Center()
|
||||
imgLoader:TweenScale(Vector2(1, 1), 0.3)
|
||||
coroutine.wait(0.5)
|
||||
end
|
||||
|
||||
coroutine.wait(0.3)
|
||||
list_HuCardEffect:RemoveChildrenToPool()
|
||||
end
|
||||
end
|
||||
|
||||
--展示摸鸟
|
||||
local niao_list = result.niao
|
||||
self._niao = UIPackage.CreateObject("Extend_MJ_FuZhou", "Panel_Birds")
|
||||
self._view:GetChild('jiangma_show'):AddChild(self._niao)
|
||||
self._niao:Center()
|
||||
local list_niao_card = self._niao:GetChild("Lst_birds")
|
||||
list_niao_card:RemoveChildrenToPool()
|
||||
for i = 1, #niao_list do
|
||||
--顯示正面
|
||||
local item = list_niao_card:AddItemFromPool()
|
||||
local card = niao_list[i].card
|
||||
item.icon = UIPackage.GetItemURL("Main_Majiang", "b202_" .. card)
|
||||
if niao_list[i].score > 0 then
|
||||
item:GetController("select").selectedIndex = 1
|
||||
else
|
||||
item:GetController("select").selectedIndex = 0
|
||||
end
|
||||
coroutine.wait(2 / #niao_list)
|
||||
end
|
||||
coroutine.wait(0.3)
|
||||
self._niao:Dispose()
|
||||
|
||||
--统一显示弹出分数
|
||||
for i = 1, #result.info_list do
|
||||
local hu_info = result.info_list[i]
|
||||
local head_info = self._player_info[self:GetPos(hu_info.seat)]
|
||||
|
||||
-- 扣分动画
|
||||
head_info:UpdateScore(hu_info.total_score, true)
|
||||
end
|
||||
coroutine.wait(0.3)
|
||||
|
||||
if liuju then
|
||||
self:PlayMJSound("liuju.mp3")
|
||||
coroutine.wait(3)
|
||||
self:PlayMJSound("end_music.mp3")
|
||||
else
|
||||
self:PlayMJSound("end_music.mp3")
|
||||
end
|
||||
coroutine.wait(0.5)
|
||||
self.result._view.visible = true
|
||||
end)
|
||||
else
|
||||
self.result._view.visible = true
|
||||
-- self.result._view.visible = true
|
||||
end
|
||||
-- self.result._view:Center()
|
||||
else
|
||||
if self.result then
|
||||
self.result._view.visible = false
|
||||
end
|
||||
--显示杠分
|
||||
if step.cmd == Record_Event.Evt_GangScore then
|
||||
local totalScoreList = step.totalScoreList
|
||||
local playerList = step.playerList
|
||||
local addScoreList = step.addScoreList
|
||||
local scoreData = {}
|
||||
for i = 1, #totalScoreList do
|
||||
local p = {}
|
||||
|
||||
p.totalScore = totalScoreList[i]
|
||||
p.player = playerList[i]
|
||||
p.addScore = addScoreList[i]
|
||||
|
||||
scoreData[#scoreData + 1] = p
|
||||
end
|
||||
|
||||
for _, p in pairs(scoreData) do
|
||||
local player = self._room:GetPlayerById(p.player)
|
||||
local infoView = self._player_info[self:GetPos(player.seat)]
|
||||
player.cur_hp = p.totalScore
|
||||
|
||||
if p.addScore ~= 0 then
|
||||
infoView:ScoreAnimation(p.addScore)
|
||||
if player.cur_hp >= 0 then
|
||||
infoView._view:GetChild("text_jifen").text = "+" .. player.cur_hp
|
||||
else
|
||||
infoView._view:GetChild("text_jifen").text = player.cur_hp
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -167,10 +457,12 @@ function M:GenerateAllStepData(data)
|
|||
local info = data.info
|
||||
step.cmd = ""
|
||||
step.left_card = info.left_card
|
||||
step.last_get_seat = 0
|
||||
step.last_out_seat = 0
|
||||
step.current_out_seat = 1
|
||||
step.win = 0
|
||||
step.niao = 0
|
||||
step.residual_card = info.residual_card
|
||||
|
||||
step.player_card_data = {}
|
||||
for i = 1, #self._room.player_list do
|
||||
|
|
@ -192,10 +484,11 @@ function M:GenerateAllStepData(data)
|
|||
end
|
||||
end
|
||||
|
||||
function M:CmdGetCard(cmd, index)
|
||||
function M:CmdGetCard(cmd, index)
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.current_out_seat = cmd.seat
|
||||
data.last_get_seat = cmd.seat
|
||||
data.left_card = cmd.data.left_count
|
||||
local u = data.player_card_data[cmd.seat]
|
||||
u.card_list[#u.card_list + 1] = cmd.data.card
|
||||
|
|
@ -207,7 +500,7 @@ function M:CmdOutCard(cmd, index)
|
|||
data.last_out_seat = cmd.seat
|
||||
local u = data.player_card_data[cmd.seat]
|
||||
list_remove(u.card_list, cmd.data.card)
|
||||
table.sort(u.card_list, ViewUtil.HandCardSort)
|
||||
table.sort(u.card_list, self.HandCardSortAndJing)
|
||||
u.outcard_list[#u.outcard_list + 1] = cmd.data.card
|
||||
end
|
||||
|
||||
|
|
@ -217,26 +510,43 @@ function M:CmdAction(cmd, index)
|
|||
data.last_out_seat = 0
|
||||
data.current_out_seat = cmd.seat
|
||||
local u = data.player_card_data[cmd.seat]
|
||||
for i = 1, #cmd.data.opcard do
|
||||
list_remove(u.card_list, cmd.data.opcard[i])
|
||||
end
|
||||
local fz = {}
|
||||
fz.type = cmd.data.type
|
||||
fz.card = cmd.data.card
|
||||
fz.opcard = cmd.data.opcard
|
||||
local uf = data.player_card_data[cmd.data.from_seat]
|
||||
if fz.type ~= FZType.Gang_An and fz.type ~= FZType.Gang_Peng then
|
||||
table.remove(uf.outcard_list, #uf.outcard_list)
|
||||
end
|
||||
if fz.type ~= FZType.Gang_Peng then
|
||||
u.fz_list[#u.fz_list + 1] = fz
|
||||
else
|
||||
local fz = nil
|
||||
local index = -1
|
||||
local ftype = cmd.data.type
|
||||
if (ftype == FZType.Gang_Peng) then
|
||||
for i = 1, #u.fz_list do
|
||||
if u.fz_list[i].type == FZType.Peng and u.fz_list[i].card == fz.card then
|
||||
u.fz_list[i].type = FZType.Gang_Peng
|
||||
if (u.fz_list[i].card == cmd.data.card) then
|
||||
u.fz_list[i].card = cmd.data.card
|
||||
fz = u.fz_list[i]
|
||||
fz.type = cmd.data.type
|
||||
index = i - 1
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
fz = {}
|
||||
fz.card = cmd.data.card
|
||||
fz.type = cmd.data.type
|
||||
if (index == -1) then
|
||||
u.fz_list[#u.fz_list + 1] = fz
|
||||
end
|
||||
fz.from_seat = cmd.data.from_seat
|
||||
local remove_num = #cmd.data.opcard
|
||||
|
||||
for i = 1, remove_num do
|
||||
if ftype == FZType.Gang_Peng then
|
||||
list_remove(u.card_list, cmd.data.card)
|
||||
else
|
||||
list_remove(u.card_list, cmd.data.opcard[i])
|
||||
end
|
||||
end
|
||||
|
||||
u.hand_left_count = u.hand_left_count - remove_num
|
||||
if cmd.data.from_seat ~= u.seat and ftype ~= FZType.Gang_Peng then
|
||||
local u = data.player_card_data[cmd.data.from_seat]
|
||||
table.remove(u.outcard_list, #u.outcard_list)
|
||||
end
|
||||
data.fz = fz
|
||||
end
|
||||
|
||||
function M:CmdWin(cmd, index)
|
||||
|
|
@ -257,10 +567,56 @@ function M:CmdPiao(cmd, index)
|
|||
data.player_card_data[cmd.seat].piao_niao = cmd.data.num
|
||||
end
|
||||
|
||||
function M:CmdFZTip(cmd, index)
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.seat = cmd.seat
|
||||
local tiplist = FZTipList.new()
|
||||
local list = cmd.data.tip_list
|
||||
for i = 1, #list do
|
||||
local dtip = list[i]
|
||||
local tip = {}
|
||||
tip.id = dtip["id"]
|
||||
tip.weight = dtip["weight"]
|
||||
tip.card = dtip["card"]
|
||||
tip.type = dtip["type"]
|
||||
tip.opcard = dtip["opcard"]
|
||||
tiplist:AddTip(tip)
|
||||
end
|
||||
--排序规则,胡杠碰
|
||||
tiplist:SortList(function(a, b)
|
||||
return a.type < b.type
|
||||
end)
|
||||
data.tiplist = tiplist
|
||||
data.weight = cmd.data.weight
|
||||
end
|
||||
|
||||
function M:GangScore(cmd, index)
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.seat = cmd.seat
|
||||
data.totalScoreList = cmd.data.totalScoreList
|
||||
data.playerList = cmd.data.playerList
|
||||
data.addScoreList = cmd.data.addScoreList
|
||||
end
|
||||
|
||||
function M:CmdResult(cmd, index)
|
||||
local data = self:CopyLastStep(index)
|
||||
data.cmd = cmd.cmd
|
||||
data.seat = 0
|
||||
data.result_data = cmd.data
|
||||
if not data._flag_result then
|
||||
for i = 1, #cmd.data.info_list do
|
||||
local info = cmd.data.info_list[i]
|
||||
if info.is_win and info.seat ~= data.current_out_seat then
|
||||
local u = data.player_card_data[info.seat]
|
||||
u.card_list[#u.card_list + 1] = info.win_card
|
||||
local u = data.player_card_data[data.last_out_seat]
|
||||
table.remove(u.outcard_list, #u.outcard_list)
|
||||
end
|
||||
end
|
||||
end
|
||||
data._flag_result = true
|
||||
end
|
||||
|
||||
function M:CopyLastStep(index)
|
||||
|
|
@ -273,7 +629,7 @@ function M:CopyLastStep(index)
|
|||
end
|
||||
|
||||
function M:UpdateLeftCard(num)
|
||||
self._tex_LeftCard.text = "剩余 "..num.." 张牌"
|
||||
self._tex_LeftCard.text = "余" .. num .. "张"
|
||||
end
|
||||
|
||||
function M:UpdateCardBox(seat)
|
||||
|
|
@ -287,12 +643,53 @@ function M:UpdateCardBox(seat)
|
|||
self._ctr_cardbox.selectedIndex = index
|
||||
end
|
||||
|
||||
function M:UpdateRound(round)
|
||||
self._tex_round.text = "第 "..round.."/"..self._room.room_config.round.." 局"
|
||||
function M:UpdateRound()
|
||||
self._view:GetChild("text_round").text = string.format("局数:%d /%d", self._room.curren_round,
|
||||
self._room.room_config.round)
|
||||
end
|
||||
|
||||
function M:ShowJing()
|
||||
print("lingmeng jing ", self._room.jing)
|
||||
if self._room.jing then
|
||||
self.jing.visible = true
|
||||
MJPlayerCardInfoView.fillCard2(self, self.jing, "b202_", self._room.jing)
|
||||
else
|
||||
self.jing.visible = false
|
||||
end
|
||||
end
|
||||
|
||||
function M:UpdateStep(step)
|
||||
self._record:GetChild("tex_step").text = "第 " .. step .. " / " .. #self._step .. "步"
|
||||
end
|
||||
|
||||
return M
|
||||
function M.HandCardSortAndJing(a, b)
|
||||
local jing = DataManager.CurrenRoom.jing
|
||||
if a == jing or b == jing then
|
||||
if a == b then
|
||||
return a < b
|
||||
end
|
||||
return a == jing
|
||||
else
|
||||
if a < 200 then
|
||||
a = a + 1000
|
||||
elseif a < 300 then
|
||||
a = a + 3000
|
||||
elseif a < 400 then
|
||||
a = a + 2000
|
||||
else
|
||||
a = a + 4000
|
||||
end
|
||||
if b < 200 then
|
||||
b = b + 1000
|
||||
elseif b < 300 then
|
||||
b = b + 3000
|
||||
elseif b < 400 then
|
||||
b = b + 2000
|
||||
else
|
||||
b = b + 4000
|
||||
end
|
||||
return a < b
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
|
|||
|
|
@ -1,27 +1,25 @@
|
|||
local PlayerInfoView = require("Game.View.PlayerInfoView")
|
||||
local PlayerInfoView2 = require("Game.View.PlayerInfoView2")
|
||||
|
||||
local M = {}
|
||||
|
||||
function M.new(view, mainView)
|
||||
setmetatable(M, {__index = PlayerInfoView})
|
||||
local self = setmetatable({}, {__index = M})
|
||||
function M.new(view, mainView,flag_witness)
|
||||
setmetatable(M, { __index = PlayerInfoView2 })
|
||||
local self = setmetatable({}, { __index = M })
|
||||
self._view = view
|
||||
self._main_view = mainView
|
||||
self:init()
|
||||
self:init(flag_witness)
|
||||
return self
|
||||
end
|
||||
|
||||
function M:init()
|
||||
PlayerInfoView.init(self)
|
||||
self._tex_score = self._view:GetChild("info"):GetChild("tex_score1")
|
||||
self._tex_score2 = self._view:GetChild("info"):GetChild("tex_score2")
|
||||
self._ct_score = self._view:GetChild("info"):GetController("score")
|
||||
function M:init(flag_witness)
|
||||
PlayerInfoView2.init(self,flag_witness)
|
||||
end
|
||||
|
||||
function M:ShowInteraction(type,str)
|
||||
function M:ShowInteraction(type, str)
|
||||
if type == 3 then
|
||||
Voice.DownLoad(str, function(clip)
|
||||
if (clip ) then
|
||||
if (clip) then
|
||||
self:ShowMaskVoice(clip.length)
|
||||
GameApplication.Instance:PlayVoice(clip)
|
||||
end
|
||||
|
|
@ -30,47 +28,25 @@ function M:ShowInteraction(type,str)
|
|||
self:SetChat(str)
|
||||
elseif type == 2 then
|
||||
local chat_index = tonumber(str)
|
||||
self._main_view:PlayChatSound(self._player.self_user.sex,chat_index)
|
||||
self._main_view:PlayChatSound(self._player.self_user.sex, chat_index)
|
||||
local language, index = self._main_view:GetChatMsgLanguage(chat_index)
|
||||
self:SetChat(self._main_view.Fix_Msg_Chat[index])
|
||||
elseif type == 1 then
|
||||
self:SetBiaoqing("ui://Chat/"..str)
|
||||
self:SetBiaoqing("ui://Chat/" .. str)
|
||||
end
|
||||
end
|
||||
|
||||
function M:UpdateRemainCard(card_num, hide)
|
||||
if hide then
|
||||
self._view:GetController("show_remain").selectedIndex = 0
|
||||
self._view:GetController("show_remain").selectedIndex = 0
|
||||
else
|
||||
self._view:GetController("show_remain").selectedIndex = 1
|
||||
self._view:GetController("show_remain").selectedIndex = 1
|
||||
end
|
||||
self._view:GetChild("com_remain"):GetChild("tex_remain").text = card_num
|
||||
end
|
||||
|
||||
function M:FillData(player)
|
||||
PlayerInfoView.FillData(self, player)
|
||||
self:UpdateScore(player.total_score)
|
||||
end
|
||||
|
||||
function M:UpdateScore()
|
||||
local score = self._player.total_score
|
||||
local room = DataManager.CurrenRoom
|
||||
if room:checkHpNonnegative() then
|
||||
score = d2ad(self._player.cur_hp)
|
||||
end
|
||||
if not score then
|
||||
score = 0
|
||||
end
|
||||
if score < 0 then
|
||||
self._ct_score.selectedIndex = 1
|
||||
self._tex_score2.text = score
|
||||
else
|
||||
self._ct_score.selectedIndex = 0
|
||||
if not room:checkHpNonnegative() then
|
||||
score = "+" .. score
|
||||
end
|
||||
self._tex_score.text = score
|
||||
end
|
||||
PlayerInfoView2.FillData(self, player)
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
|
|||
|
|
@ -0,0 +1,113 @@
|
|||
--设置窗口对象
|
||||
local MJSettingViewNew = require("main.majiang.MJSettingViewNew")
|
||||
|
||||
local EXSettingView = {}
|
||||
|
||||
function EXSettingView.new(main_view, flag_witness)
|
||||
local self = setmetatable({}, { __index = MJSettingViewNew })
|
||||
self.class = 'EXSettingView'
|
||||
self._close_destroy = true
|
||||
self._mainView = main_view
|
||||
self._flag_witness = flag_witness
|
||||
MJSettingViewNew.new(main_view, flag_witness)
|
||||
--self:init('ui://Main_Majiang/Setting')
|
||||
return self
|
||||
end
|
||||
|
||||
--[[
|
||||
local EXSettingView = {}
|
||||
|
||||
local M = EXSettingView
|
||||
setmetatable(M, { __index = BaseWindow })
|
||||
|
||||
function EXSettingView:Show(room)
|
||||
self._room = room
|
||||
|
||||
-- 房主,第一个进房间的人
|
||||
local roomOwner = self._room.player_list[1].self_user.account_id
|
||||
|
||||
if roomOwner == DataManager.SelfUser.account_id then
|
||||
self.cBtn.selectedIndex = 1
|
||||
else
|
||||
self.cBtn.selectedIndex = 0
|
||||
end
|
||||
|
||||
BaseWindow.Show(self)
|
||||
end
|
||||
|
||||
function EXSettingView.new(main_view, flag_witness)
|
||||
local self = setmetatable({}, { __index = M })
|
||||
self.class = 'EXSettingView'
|
||||
self._close_destroy = true
|
||||
self._mainView = main_view
|
||||
self._flag_witness = flag_witness
|
||||
self:init('ui://Main_Majiang/Setting')
|
||||
return self
|
||||
end
|
||||
|
||||
function M:init(url)
|
||||
BaseWindow.init(self, url)
|
||||
|
||||
local view = self._view
|
||||
local slider_sound = view:GetChild('slider_vedio_sound')
|
||||
local slider_music = view:GetChild('slider_vedio_music')
|
||||
local btn_music = view:GetChild('btn_vedio_music')
|
||||
local btn_sound = view:GetChild('btn_vedio_sound')
|
||||
|
||||
self.cBtn = self._view:GetController('cBtn')
|
||||
|
||||
slider_sound.value = GameApplication.Instance.SoundValue
|
||||
slider_music.value = GameApplication.Instance.MusicValue
|
||||
|
||||
slider_music.onChanged:Add(function()
|
||||
GameApplication.Instance.MusicValue = slider_music.value
|
||||
btn_music.selected = false
|
||||
GameApplication.Instance.MusicMute = false;
|
||||
end)
|
||||
|
||||
slider_sound.onChanged:Add(function()
|
||||
GameApplication.Instance.SoundValue = slider_sound.value
|
||||
btn_sound.selected = false
|
||||
GameApplication.Instance.SoundMute = false;
|
||||
end)
|
||||
|
||||
btn_sound.onClick:Add(function()
|
||||
GameApplication.Instance.SoundMute = btn_sound.selected;
|
||||
end)
|
||||
|
||||
btn_music.onClick:Add(function()
|
||||
GameApplication.Instance.MusicMute = btn_music.selected;
|
||||
end)
|
||||
|
||||
local _btn_logout = self._view:GetChild('btn_cancelRoom')
|
||||
_btn_logout.onClick:Set(function()
|
||||
if self._flag_witness then
|
||||
local _room = DataManager.CurrenRoom
|
||||
pt(_room)
|
||||
self._mainView._gamectr:ExitWitnessGame(_room.play_id, _room.game_id,
|
||||
_room.room_id)
|
||||
ViewManager.ChangeView(ViewManager.View_Family)
|
||||
else
|
||||
if self._mainView.dismiss_room_cd_time > 0 then
|
||||
ViewUtil.ErrorTip(nil, "您还处于解散冷却时间当中,请稍后重试!")
|
||||
else
|
||||
local _gamectr = ControllerManager.GetController(GameController)
|
||||
_gamectr:AskDismissRoom()
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
self._view:GetChild("btn_closeRoom").onClick:Set(function()
|
||||
local _gamectr = ControllerManager.GetController(GameController)
|
||||
_gamectr:LevelRoom(function(res)
|
||||
print("退出房间")
|
||||
if res.ReturnCode ~= 0 then
|
||||
ViewUtil.ErrorTip(res.ReturnCode)
|
||||
return
|
||||
end
|
||||
ViewManager.ChangeView(ViewManager.View_Family)
|
||||
end)
|
||||
end)
|
||||
end
|
||||
]]
|
||||
return EXSettingView
|
||||
|
|
@ -0,0 +1,520 @@
|
|||
local EXRoomConfig = import(".EXRoomConfig")
|
||||
local EXClearingView = import(".EXClearingView")
|
||||
local TX_GameEvent = import(".GameEvent")
|
||||
local PlayerInfoView = import(".EXPlayerInfoView")
|
||||
local MJPlayerSelfCardInfoView = import(".MJPlayerSelfCardInfoView")
|
||||
local MJPlayerCardInfoView = require("main.majiang.MJPlayerCardInfoView")
|
||||
local SettingView = import(".EXSettingView")
|
||||
local TableBG = require("Game.Data.TableBG")
|
||||
local WitnessView = require("main.majiang.MJWitnessView")
|
||||
local MJMainView = require("main.majiang.MJMainView")
|
||||
local HuCardImg = import(".HuCardImg")
|
||||
|
||||
|
||||
local Record_Event = import(".RecordEvent")
|
||||
|
||||
local M = {}
|
||||
|
||||
--- Create a new
|
||||
function M.new()
|
||||
setmetatable(M, { __index = WitnessView })
|
||||
local self = setmetatable({}, { __index = M })
|
||||
self.class = "EXMJWitness"
|
||||
self:init()
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
function M:init()
|
||||
getmetatable(M).__index.init(self)
|
||||
end
|
||||
|
||||
function M:InitView()
|
||||
local room = self._room
|
||||
getmetatable(M).__index.InitView(self)
|
||||
UIPackage.AddPackage("extend/majiang/fuzhou/ui/Extend_MJ_FuZhou")
|
||||
self:EventInit()
|
||||
UpdateBeat:Add(self.OnUpdate, self)
|
||||
|
||||
self.HuCardImg = setmetatable(HuCardImg, { __index = self.HuCardImg })
|
||||
self.Sound_path = "extend/majiang/fuzhou/sound/"
|
||||
local centerBox = self._view:GetChild("Comp_ConterBox")
|
||||
self._ctr_cardbox = centerBox:GetController("seat")
|
||||
self._tex_leftTime = centerBox:GetChild("Text_Time")
|
||||
self._tex_round = self._view:GetChild("tex_round")
|
||||
self._tex_LeftCard = self._view:GetChild("remaining_card")
|
||||
self._anchor = self._view:GetChild("mask_tips")
|
||||
|
||||
------------------渲染桌面信息--------------------------
|
||||
|
||||
self._view:GetChild('text_time').text = os.date("%H:%M", os.time())
|
||||
self._view:GetChild('text_roomId').text = room.room_id
|
||||
self._state = self._view:GetController("state")
|
||||
|
||||
self._text_remined = self._view:GetChild('remaining_card')
|
||||
self._text_round = self._view:GetChild('text_round')
|
||||
self._cursor = UIPackage.CreateObjectFromURL("ui://Main_Majiang/Ani_play_bj")
|
||||
-- self._state.onChanged:Add(function()
|
||||
-- self:UpdatePlayerInfoView()
|
||||
-- end)
|
||||
|
||||
self:UpdateRound()
|
||||
self:InitPlayerInfoView()
|
||||
self._player_card_info = {}
|
||||
local _player_card_info = self._player_card_info
|
||||
if room.curren_round > 0 then
|
||||
for i = 1, #room.player_list do
|
||||
local p = room.player_list[i]
|
||||
local index = self:GetPos(p.seat)
|
||||
print("lingmeng index", index)
|
||||
local info = self._player_info[i]
|
||||
local tem = self._view:GetChild("player_card_info" .. i)
|
||||
_player_card_info[i] = self:NewMJPlayerCardInfoView(tem, i)
|
||||
local cardInfo = _player_card_info[i]
|
||||
cardInfo:SetPlayer(p)
|
||||
cardInfo:UpdateHandCardWitness(false)
|
||||
cardInfo:UpdateOutCardList(nil, nil, self._cursor)
|
||||
for i = 1, #p.fz_list do
|
||||
cardInfo:UpdateFzList(p.fz_list[i], -1)
|
||||
end
|
||||
info:FillData(p)
|
||||
info._view.visible = true
|
||||
end
|
||||
else
|
||||
for i = 1, room.room_config.people_num do
|
||||
local tem = self._view:GetChild("player_card_info" .. i)
|
||||
_player_card_info[i] = self:NewMJPlayerCardInfoView(tem, i)
|
||||
end
|
||||
for i = 1, #room.player_list do
|
||||
local p = room.player_list[i]
|
||||
local index = self:GetPos(p.seat)
|
||||
local info = self._player_info[i]
|
||||
local cardInfo = _player_card_info[index]
|
||||
cardInfo:SetPlayer(p)
|
||||
cardInfo:UpdateHandCardWitness(false)
|
||||
cardInfo:UpdateOutCardList(nil, nil, self._cursor)
|
||||
for i = 1, #p.fz_list do
|
||||
cardInfo:UpdateFzList(p.fz_list[i], -1)
|
||||
end
|
||||
info:FillData(p)
|
||||
info._view.visible = true
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
local btn_rule = self._view:GetChild('btn_rule')
|
||||
if btn_rule ~= nil then
|
||||
btn_rule.onClick:Set(function()
|
||||
if self.RuleView == nil or self.RuleView._is_destroy then
|
||||
self.RuleView = RoomInfoView.new(self._room)
|
||||
end
|
||||
self.RuleView:Show()
|
||||
end)
|
||||
end
|
||||
|
||||
local btn_exit = self._view:GetChild('btn_exitWitness')
|
||||
if btn_exit ~= nil then
|
||||
btn_exit.onClick:Set(function()
|
||||
self._gamectr:ExitWitnessGame()
|
||||
ViewManager.ChangeView(ViewManager.View_Family)
|
||||
end)
|
||||
end
|
||||
|
||||
local viewList_witness = self._view:GetChild('comp_witness'):GetChild('list_players')
|
||||
viewList_witness:SetVirtual()
|
||||
viewList_witness.itemRenderer = function(index, obj)
|
||||
obj:GetChild('title').text = room.witness_player_list[index + 1].nick
|
||||
ImageLoad.Load(room.witness_player_list[index + 1].portrait, obj:GetChild('btn_head')._iconObject)
|
||||
end
|
||||
|
||||
local btn_witness = self._view:GetChild('btn_pangGuang')
|
||||
if btn_witness then
|
||||
btn_witness.onClick:Set(function()
|
||||
self._view:GetController('witness').selectedIndex = 1
|
||||
end)
|
||||
end
|
||||
|
||||
--直接渲染观战人员
|
||||
if viewList_witness.numItems == #room.witness_player_list then
|
||||
viewList_witness:RefreshVirtualList()
|
||||
else
|
||||
viewList_witness.numItems = #room.witness_player_list
|
||||
end
|
||||
|
||||
--展示精牌
|
||||
self.jing = self._view:GetChild('jing')
|
||||
self:ShowJing()
|
||||
-------------------------------------------------------
|
||||
|
||||
self._state.selectedIndex = 4
|
||||
self.com_logocType.selectedIndex = 0
|
||||
end
|
||||
|
||||
function M:EventInit()
|
||||
-- UIPackage.AddPackage("extend/majiang/hongzhong/ui/Extend_MJ_HongZhong")
|
||||
getmetatable(M).__index.EventInit(self)
|
||||
local _room = self._room
|
||||
local _view = self._view
|
||||
local _gcm_outcard_url = UIPackage.GetItemURL("Main_Majiang", "Gcm_OutCard")
|
||||
local _player_info = self._player_info
|
||||
local _gamectr = self._gamectr
|
||||
|
||||
_gamectr:AddEventListener(TX_GameEvent.SendLaiZi, function(...)
|
||||
local arg = { ... }
|
||||
print("lingmeng witness SendLaiZi")
|
||||
end)
|
||||
|
||||
_gamectr:AddEventListener(TX_GameEvent.SendGangZi, function(...)
|
||||
local arg = { ... }
|
||||
print("lingmeng witness SendGangZi")
|
||||
end)
|
||||
|
||||
_gamectr:AddEventListener(TX_GameEvent.EventBuGang, function(...)
|
||||
local arg = { ... }
|
||||
print("lingmeng witness EventBuGang")
|
||||
end)
|
||||
|
||||
_gamectr:AddEventListener(TX_GameEvent.OutHint, function(...)
|
||||
print("lingmeng witness OutHint")
|
||||
end)
|
||||
|
||||
_gamectr:AddEventListener(TX_GameEvent.GetCard, function(...)
|
||||
print("lingmeng witness GetCard")
|
||||
end)
|
||||
|
||||
_gamectr:AddEventListener(TX_GameEvent.FZTips, function(...)
|
||||
print("lingmeng witness FZTips")
|
||||
end)
|
||||
|
||||
_gamectr:AddEventListener(TX_GameEvent.ZPHuCard, function(...)
|
||||
self._popEvent = false
|
||||
self._left_time = 0
|
||||
self:UpdateCardBox(0)
|
||||
local arg = { ... }
|
||||
local win_seat = arg[1]
|
||||
local lose_seat = arg[2]
|
||||
local win_card = arg[3]
|
||||
local cards = arg[4]
|
||||
local win_list = arg[5]
|
||||
local scoreData = arg[6]
|
||||
local index = self:GetPos(win_seat)
|
||||
local info = self._player_card_info[index]
|
||||
local player = self._room:GetPlayerBySeat(win_seat)
|
||||
MJMainView.ShowHand(self, scoreData)
|
||||
info:ShowHuCard(win_card, index == 1)
|
||||
|
||||
-- self.cHuCardEffect.selectedIndex = 1
|
||||
|
||||
local loader_HuEffect = info._viewLoader_selfHuCardEffect
|
||||
local list_HuCardEffect = info._viewList_HuEffect
|
||||
|
||||
---
|
||||
local isZiMo = win_seat == lose_seat
|
||||
DataManager.CurrenRoom.isZiMoHu = isZiMo
|
||||
local hu_sound = isZiMo and ("zimo") or ("hu")
|
||||
printlog("声音====>>>", hu_sound)
|
||||
self:PlaySound(self.asset_group, player.self_user.sex, hu_sound)
|
||||
|
||||
local effects = isZiMo and ("tile_zimo") or ("tile_hu")
|
||||
loader_HuEffect.visible = true
|
||||
loader_HuEffect.url = "ui://Main_Majiang/" .. effects
|
||||
loader_HuEffect:SetScale(2, 2)
|
||||
loader_HuEffect:TweenScale(Vector2(1, 1), 0.3):SetEase(EaseType.QuartOut)
|
||||
|
||||
--观战暂时把这个特效去了,现在这个特效位置也不对
|
||||
-- self.effect_ZiMo.xy = loader_HuEffect.xy
|
||||
-- self.effect_ZiMo:SetPlaySettings(0, -1, 1, -1);
|
||||
-- self.effect_ZiMo.visible = true
|
||||
-- self.effect_ZiMo.playing = true
|
||||
-- self.effect_ZiMo.onPlayEnd:Set(function()
|
||||
-- self.effect_ZiMo.visible = false
|
||||
-- end)
|
||||
|
||||
coroutine.start(function()
|
||||
coroutine.wait(0.5)
|
||||
|
||||
loader_HuEffect.visible = false
|
||||
local Effects = {}
|
||||
for i = 1, #win_list do
|
||||
local HuMsg = win_list[i]
|
||||
|
||||
-- ↓↓↓先排列好特效图片
|
||||
if HuMsg.type > 2 and HuMsg.type < 32 then
|
||||
local sound_name = string.format(self.Sound_path .. "%s/%s.mp3",
|
||||
ViewUtil.Sex_Chat[player.self_user.sex],
|
||||
"he" .. HuMsg.type)
|
||||
ViewUtil.PlaySound(self.asset_group, sound_name)
|
||||
-- self:PlaySound(self.asset_group, player.self_user.sex, "he" .. HuMsg.type)
|
||||
local imgList = self.HuCardImg[HuMsg.type]
|
||||
for _, img in pairs(imgList) do
|
||||
local imgPath = "ui://Main_Majiang/" .. img
|
||||
local imgObj = list_HuCardEffect:AddItemFromPool()
|
||||
local imgLoader = imgObj:GetChild("loader_img")
|
||||
imgLoader.url = imgPath
|
||||
imgObj.visible = false
|
||||
Effects[#Effects + 1] = imgObj
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- ↓↓↓播放动画
|
||||
for _, imgObj in pairs(Effects) do
|
||||
imgObj.visible = true
|
||||
|
||||
local effect_xingxing = imgObj:GetChild("effect_xingxing")
|
||||
effect_xingxing:SetPlaySettings(0, -1, 1, -1);
|
||||
effect_xingxing.visible = true
|
||||
effect_xingxing.playing = true
|
||||
effect_xingxing.onPlayEnd:Set(function()
|
||||
effect_xingxing.visible = false
|
||||
end)
|
||||
|
||||
local imgLoader = imgObj:GetChild("loader_img")
|
||||
imgLoader:SetScale(2, 2)
|
||||
imgLoader:Center()
|
||||
imgLoader:TweenScale(Vector2(1, 1), 0.3)
|
||||
coroutine.wait(0.5)
|
||||
end
|
||||
|
||||
-- 扣分动画
|
||||
for _, pScore in pairs(scoreData) do
|
||||
local infoView = self._player_info[self:GetPos(pScore.seat)]
|
||||
infoView:UpdateScore(pScore.total_score, true)
|
||||
end
|
||||
|
||||
coroutine.wait(0.5)
|
||||
self._popEvent = true
|
||||
list_HuCardEffect:RemoveChildrenToPool()
|
||||
|
||||
-- self.cHuCardEffect.selectedIndex = 0
|
||||
end)
|
||||
end)
|
||||
|
||||
_gamectr:AddEventListener(TX_GameEvent.EventNiao, function(...)
|
||||
print("lingmeng witness EventNiao")
|
||||
end)
|
||||
|
||||
_gamectr:AddEventListener(TX_GameEvent.ZPResult1, function(...)
|
||||
self:PlayMJSound("end_music.mp3")
|
||||
local _room = self._room
|
||||
self._left_time = 0
|
||||
self:UpdateCardBox(0)
|
||||
self._ctr_cardbox.selectedIndex = 0
|
||||
local arg = { ... }
|
||||
MJMainView.ShowHand(self, arg)
|
||||
local result = arg[1]
|
||||
local liuju = result.liuju
|
||||
local data = result.info_list
|
||||
local niao = result.niao
|
||||
-- if liuju then
|
||||
-- local le = UIPackage.CreateObjectFromURL("ui://Main_Majiang/LiuJu")
|
||||
-- self._view:AddChild(le)
|
||||
-- le:Center()
|
||||
-- le:GetTransition("t0"):Play()
|
||||
-- coroutine.start(function()
|
||||
-- coroutine.wait(1)
|
||||
-- le:Dispose()
|
||||
-- end)
|
||||
-- end
|
||||
-- self:RemoveCursor()
|
||||
if self._clearingView == nil then
|
||||
self._clearingView = EXClearingView.new(self)
|
||||
coroutine.start(function()
|
||||
coroutine.wait(0.5)
|
||||
self._clearingView:Show()
|
||||
self._popEvent = true
|
||||
end)
|
||||
end
|
||||
|
||||
if _room.curren_round ~= _room.room_config.round then
|
||||
-- if #niao == 0 then self._view:GetChild("n13").visible = false end
|
||||
self._clearingView:InitData(0, _room, result, nil, function(...)
|
||||
for i = 1, #data do
|
||||
local p = _room:GetPlayerBySeat(data[i].seat)
|
||||
p.total_score = data[i].total_score
|
||||
local card_info = self._player_card_info[self:GetPos(p.seat)]
|
||||
local info = self._player_info[self:GetPos(p.seat)]
|
||||
--card_info:Clear()
|
||||
card_info:ResetCardType()
|
||||
if _room:checkHpNonnegative() then
|
||||
p.cur_hp = data[i].total_score
|
||||
end
|
||||
info:UpdateScore()
|
||||
info._view:GetChild("zhanji").visible = true
|
||||
local num = data[i].total_score
|
||||
if num >= 0 then
|
||||
info._view:GetController("text_color").selectedIndex = 0
|
||||
info._view:GetChild("text_jifen").text = "+" .. num
|
||||
else
|
||||
info._view:GetController("text_color").selectedIndex = 1
|
||||
info._view:GetChild("text_jifen").text = num
|
||||
end
|
||||
|
||||
info._view:GetChild("mask_piao").title = ""
|
||||
info._view:GetController("piao_niao").selectedIndex = 0
|
||||
p.fz_list = {}
|
||||
end
|
||||
DataManager.CurrenRoom.self_player.card_list = {}
|
||||
self._clearingView = nil
|
||||
end)
|
||||
end
|
||||
end)
|
||||
|
||||
_gamectr:AddEventListener(TX_GameEvent.ZPResult2, function(...)
|
||||
print("lingmeng witness ZPResult2")
|
||||
self:UnmarkSelfTuoguan()
|
||||
self._left_time = 0
|
||||
self:UpdateCardBox(0)
|
||||
self._ctr_cardbox.selectedIndex = 0
|
||||
local arg = { ... }
|
||||
local total_result = arg[2]
|
||||
local result = arg[1]
|
||||
local over = arg[3]
|
||||
self._clearingView = EXClearingView.new()
|
||||
if over ~= 2 or _room.curren_round > 0 then
|
||||
coroutine.start(function()
|
||||
coroutine.wait(0.5)
|
||||
self._clearingView:Show()
|
||||
end)
|
||||
end
|
||||
self._clearingView:InitData(over, _room, result, total_result)
|
||||
ControllerManager.ChangeController(LoddyController)
|
||||
end)
|
||||
|
||||
_gamectr:AddEventListener(TX_GameEvent.EvnetPiaoTip, function()
|
||||
print("lingmeng witness EvnetPiaoTip")
|
||||
end)
|
||||
|
||||
_gamectr:AddEventListener(TX_GameEvent.EvnetPiao, function(...)
|
||||
print("lingmeng witness EvnetPiao")
|
||||
end)
|
||||
|
||||
_gamectr:AddEventListener(TX_GameEvent.EventResidueCard, function(...)
|
||||
print("lingmeng witness EventResidueCard")
|
||||
end)
|
||||
|
||||
--替换mianview的事件
|
||||
_gamectr:AddEventListener(
|
||||
GameEvent.PlayerState,
|
||||
function(...)
|
||||
printlog("lingmeng OnEventOnlineState")
|
||||
local arg = { ... }
|
||||
local p = arg[1]
|
||||
local info = self._player_info[self:GetPos(p.seat)]
|
||||
info._ctr_offline.selectedIndex = p.line_state == 0 and 1 or 0
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
function M:InitPlayerInfoView()
|
||||
self._player_info = {}
|
||||
local _player_info = self._player_info
|
||||
for i = 1, self._room.room_config.people_num do
|
||||
local tem = self._view:GetChild(string.format("player_info%d_2", i))
|
||||
_player_info[i] = PlayerInfoView.new(tem, self, true)
|
||||
tem.visible = false
|
||||
end
|
||||
end
|
||||
|
||||
function M:NewMJPlayerCardInfoView(view, index)
|
||||
return MJMainView.NewMJPlayerCardInfoView(self, view, index)
|
||||
--[[
|
||||
if index == 1 then
|
||||
return MJPlayerSelfCardInfoView.new(view, self)
|
||||
end
|
||||
return MJPlayerCardInfoView.new(view, self)
|
||||
]]
|
||||
end
|
||||
|
||||
function M:RemoveCursor()
|
||||
self._cursor:RemoveFromParent()
|
||||
end
|
||||
|
||||
function M:UpdateCardBox(seat)
|
||||
local index = seat - 1
|
||||
local people_num = self._room.room_config.people_num
|
||||
if people_num == 2 and seat == 2 then
|
||||
index = 2
|
||||
end
|
||||
self._ctr_cardbox.selectedIndex = index
|
||||
end
|
||||
|
||||
local majiang_asset_path = "base/main_majiang/sound/"
|
||||
function M:PlayMJSound(path)
|
||||
ViewUtil.PlaySound(self.asset_group, majiang_asset_path .. path)
|
||||
end
|
||||
|
||||
function M:PlaySound(group, sex, path)
|
||||
local sex_path = ViewUtil.Sex_Chat[sex]
|
||||
local path1 = majiang_asset_path .. string.format("%s/%s.mp3", sex_path, path)
|
||||
ViewUtil.PlaySound(group, path1)
|
||||
end
|
||||
|
||||
function M:UpdateRound()
|
||||
self._view:GetChild("text_round").text = string.format("局数:%d /%d", self._room.curren_round,
|
||||
self._room.room_config.round)
|
||||
end
|
||||
|
||||
function M:ShowJing()
|
||||
if self._room.jing then
|
||||
self.jing.visible = true
|
||||
MJPlayerCardInfoView.fillCard2(self, self.jing, "b202_", self._room.jing)
|
||||
else
|
||||
self.jing.visible = false
|
||||
end
|
||||
end
|
||||
|
||||
-- function M:UpdatePlayerInfoView()
|
||||
-- self._player_info = {}
|
||||
-- local _player_info = self._player_info
|
||||
-- local list = self._room.player_list
|
||||
|
||||
-- for i = 1, self._room.room_config.people_num do
|
||||
-- local seat = self:GetPos(list[i].seat)
|
||||
-- local tem = self._view:GetChild(string.format("player_info%d_%d", seat,
|
||||
-- (self._state.selectedIndex == 4 and 1 or 0) + 1))
|
||||
-- _player_info[seat] = PlayerInfoView.new(tem, self)
|
||||
-- _player_info[seat]:FillData(list[i])
|
||||
-- printlog("lingmeng _player_info", tem, seat, list[i].self_user.nick_name)
|
||||
-- end
|
||||
-- end
|
||||
|
||||
function M:ResetConnect()
|
||||
|
||||
end
|
||||
|
||||
function M:GetPos(seat)
|
||||
return ViewUtil.GetPos(self._room.self_player.seat, seat, self._room.room_config.people_num)
|
||||
end
|
||||
|
||||
function M.HandCardSortAndJing(a, b)
|
||||
local jing = DataManager.CurrenRoom.jing
|
||||
if a == jing or b == jing then
|
||||
if a == b then
|
||||
return a < b
|
||||
end
|
||||
return a == jing
|
||||
else
|
||||
if a < 200 then
|
||||
a = a + 1000
|
||||
elseif a < 300 then
|
||||
a = a + 3000
|
||||
elseif a < 400 then
|
||||
a = a + 2000
|
||||
else
|
||||
a = a + 4000
|
||||
end
|
||||
if b < 200 then
|
||||
b = b + 1000
|
||||
elseif b < 300 then
|
||||
b = b + 3000
|
||||
elseif b < 400 then
|
||||
b = b + 2000
|
||||
else
|
||||
b = b + 4000
|
||||
end
|
||||
return a < b
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
@ -5,6 +5,7 @@ local EXMainView = import(".EXMainView")
|
|||
local EXGameController = import(".EXGameController")
|
||||
local EXRoomConfig = import(".EXRoomConfig")
|
||||
local EXPlayBackView = import(".EXPlayBackView")
|
||||
local EXWitnessView = import(".EXWitnessView")
|
||||
local MJRoom = require("main.majiang.MJRoom")
|
||||
|
||||
local ExtendConfig = {}
|
||||
|
|
@ -20,6 +21,7 @@ function ExtendConfig.new()
|
|||
self._viewMap = {}
|
||||
self._viewMap[ViewManager.View_Main] = EXMainView
|
||||
self._viewMap[ViewManager.View_PlayBack] = EXPlayBackView
|
||||
self._viewMap[ViewManager.View_Witness] = EXWitnessView
|
||||
return self
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,14 @@ local TX_GameEvent = {
|
|||
EvnetPiaoTip = "EvnetPiaoTip",
|
||||
|
||||
EvnetPiao = "EvnetPiao",
|
||||
|
||||
EventXiPai="EventXiPai",
|
||||
|
||||
|
||||
---
|
||||
SendLaiZi = "SendLaiZi",
|
||||
SendGangZi = "SendGangZi",
|
||||
EventBuGang = "EventBuGang",
|
||||
|
||||
---
|
||||
EventResidueCard = "EventResidueCard"
|
||||
}
|
||||
return TX_GameEvent
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
local HuCardImg = {
|
||||
}
|
||||
|
||||
HuCardImg[1] = { "tile_hu" }
|
||||
HuCardImg[2] = { "tile_zimo" }
|
||||
HuCardImg[3] = { "tile_cs_shisanlan" }
|
||||
HuCardImg[4] = { "tile_cs_qxshisanlan" }
|
||||
HuCardImg[5] = { "tile_cs_pengpenghu" }
|
||||
HuCardImg[6] = { "tile_cs_pengpenghu", "tile_cs_qingyise" }
|
||||
HuCardImg[7] = { "tile_cs_pengpenghu", "tile_cs_ziyise" }
|
||||
HuCardImg[8] = { "tile_cs_qidui" }
|
||||
HuCardImg[9] = { "tile_cs_qidui", "tile_cs_qingyise" }
|
||||
HuCardImg[10] = { "tile_cs_qidui", "tile_cs_ziyise" }
|
||||
HuCardImg[11] = { "tile_cs_qingyisezhenhu" }
|
||||
HuCardImg[12] = { "tile_cs_qingyisejiahu" }
|
||||
HuCardImg[13] = { "tile_cs_ziyisezhenhu" }
|
||||
HuCardImg[14] = { "tile_cs_ziyisejiahu" }
|
||||
HuCardImg[15] = { "tile_cs_tianhu" }
|
||||
HuCardImg[16] = { "tile_cs_dihu" }
|
||||
HuCardImg[17] = { "tile_cs_pinghu" }
|
||||
HuCardImg[18] = { "tile_cs_qiangganghu" }
|
||||
HuCardImg[19] = { "tile_cs_gangshanghua" }
|
||||
HuCardImg[20] = { "缺失" }
|
||||
HuCardImg[21] = { "tile_cs_siguiyi" }
|
||||
HuCardImg[22] = { "tile_cs_baguiyi" }
|
||||
HuCardImg[23] = { "tile_cs_seguiyi" }
|
||||
HuCardImg[24] = { "tile_cs_qingyisejiahu","tile_cs_siguiyi" }
|
||||
HuCardImg[25] = { "tile_cs_qingyisezhenhu","tile_cs_siguiyi" }
|
||||
HuCardImg[26] = { "tile_cs_qingyisejiahu","tile_cs_baguiyi" }
|
||||
HuCardImg[27] = { "tile_cs_qingyisezhenhu","tile_cs_baguiyi" }
|
||||
HuCardImg[28] = { "tile_cs_qingyisejiahu","tile_cs_seguiyi" }
|
||||
HuCardImg[29] = { "tile_cs_qingyisezhenhu","tile_cs_seguiyi" }
|
||||
HuCardImg[30] = { "tile_cs_ziyisejiahu","tile_cs_siguiyi" }
|
||||
HuCardImg[31] = { "tile_cs_ziyisezhenhu","tile_cs_siguiyi" }
|
||||
HuCardImg[32] = { "tile_cs_ziyisejiahu","tile_cs_baguiyi" }
|
||||
HuCardImg[33] = { "tile_cs_ziyisezhenhu","tile_cs_baguiyi" }
|
||||
HuCardImg[34] = { "tile_cs_ziyisejiahu","tile_cs_seguiyi" }
|
||||
HuCardImg[35] = { "tile_cs_ziyisezhenhu","tile_cs_seguiyi" }
|
||||
HuCardImg[36] = { "tile_cs_qingyise","tile_cs_qidui","tile_cs_siguiyi" }
|
||||
HuCardImg[37] = { "tile_cs_qingyise","tile_cs_qidui","tile_cs_baguiyi" }
|
||||
HuCardImg[38] = { "tile_cs_qingyise","tile_cs_qidui","tile_cs_seguiyi" }
|
||||
HuCardImg[39] = { "tile_cs_ziyise","tile_cs_qidui","tile_cs_siguiyi" }
|
||||
HuCardImg[40] = { "tile_cs_ziyise","tile_cs_qidui","tile_cs_baguiyi" }
|
||||
HuCardImg[41] = { "tile_cs_ziyise","tile_cs_qidui","tile_cs_seguiyi" }
|
||||
HuCardImg[42] = { "tile_cs_qidui","tile_cs_siguiyi" }
|
||||
HuCardImg[43] = { "tile_cs_qidui","tile_cs_baguiyi" }
|
||||
HuCardImg[44] = { "tile_cs_qidui","tile_cs_seguiyi" }
|
||||
|
||||
|
||||
return HuCardImg
|
||||
|
|
@ -4,177 +4,209 @@ local CardCheck = import(".CardCheck")
|
|||
|
||||
local M = {}
|
||||
--
|
||||
function M.new(view, mainView)
|
||||
function M.new(view, mainView, record, direction)
|
||||
setmetatable(MJPlayerSelfCardInfoView, { __index = MJPlayerCardInfoView })
|
||||
setmetatable(M, { __index = MJPlayerSelfCardInfoView })
|
||||
local self = setmetatable({}, { __index = M })
|
||||
self.class = "PlayerSelfCardInfoView"
|
||||
self._view = view
|
||||
self._mainView = mainView
|
||||
self.direction = direction
|
||||
self._flag_canTing = true
|
||||
self:init()
|
||||
return self
|
||||
end
|
||||
|
||||
function M:ShowHuTip(card_list)
|
||||
local tingList = CardCheck.tingPai(card_list, true, DataManager.CurrenRoom.room_config.Qidui,
|
||||
DataManager.CurrenRoom.room_config.Laizi)
|
||||
if #tingList > 0 then
|
||||
table.insert(tingList, 412)
|
||||
function M:init()
|
||||
getmetatable(M).__index.init(self)
|
||||
end
|
||||
|
||||
function M:ShowHuTip(card_list, have_bg)
|
||||
self._mainView._hu_tip:FillData(self:GetTingList(card_list), have_bg)
|
||||
end
|
||||
|
||||
function M:GetTingList(card_list)
|
||||
if not self._flag_canTing then
|
||||
return {}
|
||||
end
|
||||
self._mainView._hu_tip:FillData(tingList)
|
||||
return CardCheck.MuiltiplteCaculateTingPai(card_list, { _hu_qidui = true, _hu_shisanlan = true })
|
||||
end
|
||||
|
||||
function M:UpdateHandCard(getcard, mp)
|
||||
MJPlayerSelfCardInfoView.UpdateHandCard(self, getcard, mp)
|
||||
local _carViewList = self._carViewList
|
||||
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.tingPai(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
|
||||
-- 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
|
||||
-- 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 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
|
||||
-- -- 标记出牌
|
||||
-- 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
|
||||
-- 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:__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
|
||||
-- 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
|
||||
-- --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 ~= 412) 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
|
||||
-- -- -- 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: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.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
|
||||
-- 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 = {}
|
||||
-- for i = 1, #self._carViewList do
|
||||
-- self._carViewList[i].card:Dispose()
|
||||
-- end
|
||||
-- self._carViewList = {}
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
|
|||
|
|
@ -43,7 +43,16 @@ local Protocol = {
|
|||
|
||||
-- 飘鸟事件
|
||||
GAME_EVT_PIAO = "834",
|
||||
|
||||
|
||||
GAME_EVT_GANGZI = "837",
|
||||
GAME_EVT_BUGANG = "838",
|
||||
GAME_EVT_DOGANG = "839",
|
||||
|
||||
--送牌
|
||||
GAME_NEXT_CARD = "888",
|
||||
GAME_RESIDUE_CARD = "613",
|
||||
GAME_EVT_RESIDUE_CARD = "889",
|
||||
|
||||
GAME_XIPAI = "20836",
|
||||
GAME_EVENT_XIPAI = "20837",
|
||||
GAME_EVENT_NOTIFY_XIPAI = "20838",
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ local Record_Event = {
|
|||
Evt_Niao = "Niao",
|
||||
Evt_Piao = "PiaoNiao",
|
||||
Evt_Result = "Result",
|
||||
Evt_FZTip = "FizTip",
|
||||
Evt_GangScore = "GangScore",
|
||||
}
|
||||
|
||||
return Record_Event
|
||||
|
|
@ -54,6 +54,8 @@ function M:RegisterEvt()
|
|||
self._eventmap[EXProtocol.GAME_EVT_CARDINHAND] = self.OnPlaySuccCheckHandCard
|
||||
self._eventmap[EXProtocol.EXBomb_Score_New] = self.OnBompScoreNew
|
||||
self._eventmap[EXProtocol.EXCheckCard_Succ] = self.OnCheckCard
|
||||
self._eventmap[EXProtocol.EXBaseScore] = self.OnGetBaseScore
|
||||
self._eventmap[EXProtocol.EXShowRank] = self.OnShowRank
|
||||
end
|
||||
|
||||
-- function M:Oener(evt_data)
|
||||
|
|
@ -209,19 +211,17 @@ function M:OnInitCard(evt_data)
|
|||
end
|
||||
|
||||
function M:OnBombScore(evt_data)
|
||||
printlog("lingmeng OnBombScore")
|
||||
-- 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, EXGameEvent.OnBombScore, scoreList)
|
||||
-- end
|
||||
-- )
|
||||
printlog("lingmeng OnBombScoreend")
|
||||
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, EXGameEvent.OnBombScore, scoreList)
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
function M:OnPlaySucc(evt_data)
|
||||
|
|
@ -239,12 +239,13 @@ function M:OnPlaySuccCheck(evt_data)
|
|||
local card_obj = evt_data["card_obj"]
|
||||
local cards = card_obj["card_list"]
|
||||
local remain = evt_data["remain"] -- 报单
|
||||
local baseScore = evt_data["score"] or 0
|
||||
self._cacheEvent:Enqueue(
|
||||
function()
|
||||
local player = self._room:GetPlayerBySeat(seat)
|
||||
player.hand_count = remain
|
||||
player.out_card_list = cards
|
||||
DispatchEvent(self._dispatcher, EXGameEvent.OnPlaySucc, player, remain)
|
||||
DispatchEvent(self._dispatcher, EXGameEvent.OnPlaySucc, player, remain, baseScore)
|
||||
end
|
||||
)
|
||||
end
|
||||
|
|
@ -263,11 +264,11 @@ function M:OnPassSucc(evt_data)
|
|||
local seat = evt_data["seat"]
|
||||
self._cacheEvent:Enqueue(
|
||||
function()
|
||||
print("lingmeng OnPassSucc",seat)
|
||||
print("lingmeng OnPassSucc", seat)
|
||||
local p = self._room:GetPlayerBySeat(seat)
|
||||
p.out_card_list = { 0 }
|
||||
DispatchEvent(self._dispatcher, EXGameEvent.OnPassSucc, p)
|
||||
print("lingmeng OnPassSuccend",seat)
|
||||
print("lingmeng OnPassSuccend", seat)
|
||||
end
|
||||
)
|
||||
end
|
||||
|
|
@ -301,11 +302,9 @@ function M:OnIndexMove(evt_data)
|
|||
local seat = evt_data["index"]
|
||||
self._cacheEvent:Enqueue(
|
||||
function()
|
||||
printlog("lingmeng OnIndexMove", seat)
|
||||
self._room.curren_turn_seat = seat
|
||||
self._room.is_new_bout = self:GetIsNewBout(seat)
|
||||
DispatchEvent(self._dispatcher, EXGameEvent.OnIndexMove, seat)
|
||||
printlog("lingmeng OnIndexMoveend", seat)
|
||||
end
|
||||
)
|
||||
end
|
||||
|
|
@ -358,6 +357,7 @@ function M:OnResult(evt_data)
|
|||
local info = evt_data["info"]
|
||||
local winseat = evt_data["winseat"]
|
||||
local remaincards = evt_data["remaincards"]
|
||||
local dipais = evt_data["dipais"]
|
||||
DataManager.CurrenRoom.xipaiScore = evt_data["xipai_score"]
|
||||
--printlog("wwwwwwwwwwwwwwwwwwwww1111111 ",result_type)
|
||||
--pt(evt_data)
|
||||
|
|
@ -368,13 +368,12 @@ function M:OnResult(evt_data)
|
|||
function()
|
||||
for i = 1, #info do
|
||||
local p = self._room:GetPlayerBySeat(info[i]["seat"])
|
||||
print("lingmeng log200", info[i]["score"], p.total_score)
|
||||
info[i].card_score = info[i]["score"] - p.total_score
|
||||
p.total_score = info[i]["score"]
|
||||
info[i]["self_user"] = p.self_user
|
||||
end
|
||||
|
||||
DispatchEvent(self._dispatcher, EXGameEvent.OnResult, over, info, winseat, remaincards)
|
||||
DispatchEvent(self._dispatcher, EXGameEvent.OnResult, over, info, winseat, remaincards, dipais)
|
||||
end
|
||||
)
|
||||
elseif result_type == 0 then
|
||||
|
|
@ -383,12 +382,11 @@ function M:OnResult(evt_data)
|
|||
function()
|
||||
for i = 1, #info do
|
||||
local p = self._room:GetPlayerBySeat(info[i]["seat"])
|
||||
print("lingmeng log200", info[i]["score"], p.total_score)
|
||||
info[i].card_score = info[i]["score"] - p.total_score
|
||||
p.total_score = info[i]["score"]
|
||||
info[i]["self_user"] = p.self_user
|
||||
end
|
||||
DispatchEvent(self._dispatcher, EXGameEvent.OnResult, over, info, winseat, remaincards)
|
||||
DispatchEvent(self._dispatcher, EXGameEvent.OnResult, over, info, winseat, remaincards, dipais)
|
||||
end
|
||||
)
|
||||
else
|
||||
|
|
@ -748,4 +746,20 @@ function M:OnCheckCard(evt_data)
|
|||
)
|
||||
end
|
||||
|
||||
function M:OnGetBaseScore(evt_data)
|
||||
self._cacheEvent:Enqueue(
|
||||
function()
|
||||
DispatchEvent(self._dispatcher, EXGameEvent.OnGetBaseScore, evt_data)
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
function M:OnShowRank(evt_data)
|
||||
self._cacheEvent:Enqueue(
|
||||
function()
|
||||
DispatchEvent(self._dispatcher, EXGameEvent.OnShowRank, evt_data)
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@ local EXGameEvent = {
|
|||
EventXiPai = "EventXiPai",
|
||||
OnPassSuccCheckCard = "OnPassSuccCheckCard",
|
||||
OnBompScoreNew = "OnBompScoreNew",
|
||||
OnCheckCard = "OnCheckCard"
|
||||
OnCheckCard = "OnCheckCard",
|
||||
OnGetBaseScore = "OnGetBaseScore",
|
||||
OnShowRank = "OnShowRank"
|
||||
}
|
||||
return EXGameEvent
|
||||
|
|
|
|||
|
|
@ -493,6 +493,7 @@ function M:EventInit()
|
|||
self.rank_view = nil
|
||||
end
|
||||
self._ctr_inClear.selectedIndex = 0
|
||||
self._view:GetChild('list_dipais'):RemoveChildrenToPool()
|
||||
self:UpdateRound(round)
|
||||
-- ViewUtil.PlaySound("DuoDuo_PK", "extend/poker/duoduo/sound/fapai.mp3")
|
||||
local list = _room.player_list
|
||||
|
|
@ -518,7 +519,7 @@ function M:EventInit()
|
|||
local card_info = self._player_card_info[self:GetPos(p.seat)]
|
||||
card_info:Clear()
|
||||
head_info:Ready(false)
|
||||
|
||||
head_info._ctr_rank.selectedIndex = 0
|
||||
|
||||
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
|
||||
|
|
@ -611,20 +612,18 @@ function M:EventInit()
|
|||
--出牌权和前端出牌提示挪到转向协议
|
||||
local lastCardList = self._gamectr:GetLastCardList(self._room.self_player.seat)
|
||||
if index == 1 then
|
||||
card_info:ShowOutCardOption2(lastCardList, 1)
|
||||
card_info:ShowOutCardOption2(lastCardList, self._room.is_new_bout and 2 or 1)
|
||||
end
|
||||
end)
|
||||
|
||||
_gamectr:AddEventListener(EXGameEvent.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
|
||||
for i = 1, #scoreList do
|
||||
local player = self._room:GetPlayerBySeat(i)
|
||||
local head_info = self._player_info[self:GetPos(i)]
|
||||
head_info:UpdateScore(player.total_score)
|
||||
end
|
||||
end)
|
||||
|
||||
_gamectr:AddEventListener(EXGameEvent.OnPlaySucc, function(...)
|
||||
|
|
@ -633,6 +632,7 @@ function M:EventInit()
|
|||
local arg = { ... }
|
||||
local p = arg[1]
|
||||
local card_number = arg[2]
|
||||
local baseScore = arg[3]
|
||||
self.ctr_time.selectedIndex = 0
|
||||
local index = self:GetPos(p.seat)
|
||||
if index == 1 then
|
||||
|
|
@ -656,6 +656,8 @@ function M:EventInit()
|
|||
if index == 1 then
|
||||
card_info:DeleteHandCards(p.out_card_list)
|
||||
end
|
||||
|
||||
self._view:GetChild('text_baseScore').text = baseScore
|
||||
end)
|
||||
_gamectr:AddEventListener(EXGameEvent.OnCheckCard, function(...)
|
||||
local arg = { ... }
|
||||
|
|
@ -877,6 +879,8 @@ function M:EventInit()
|
|||
local info = arg[2]
|
||||
local win_seat = arg[3]
|
||||
local remaincards = arg[4]
|
||||
local dipais = arg[5]
|
||||
|
||||
-- local energyTab = arg[5]
|
||||
local otherpoker_list = self._view:GetChild("otherpoker_list")
|
||||
local card_info = self._player_card_info[self:GetPos(self._room.self_player.seat)]
|
||||
|
|
@ -959,33 +963,45 @@ function M:EventInit()
|
|||
head_info._view:GetChild('text_jifen').text = player.score
|
||||
-- head_info:PlayScore(player.winscore, win_seat == player.seat)
|
||||
head_info:PlayScore(player.card_score, win_seat == player.seat)
|
||||
head_info:SetBaseScore()
|
||||
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.seat ~= win_seat then
|
||||
card_info.ctr_outpoker.selectedIndex = 0
|
||||
end
|
||||
if player.seat ~= self._room.self_player.seat then
|
||||
local oneTime = 7 / 60
|
||||
|
||||
-- card_info:UpdateHandPoker(player.cards, false, true)
|
||||
|
||||
card_info._view_resultOut:RemoveChildrenToPool()
|
||||
card_info._ctr_resultOut.selectedIndex = 1
|
||||
for i = 1, #player.handCards do
|
||||
local child_card = card_info._view_resultOut:AddItemFromPool()
|
||||
card_info:FillPoker(child_card, "", nil, player.handCards[i])
|
||||
ViewUtil.PlaySound("DuoDuo_PK", "extend/poker/duoduo/sound/fanCard.mp3")
|
||||
printlog("lingmeng oneTime", oneTime)
|
||||
coroutine.wait(oneTime)
|
||||
end
|
||||
--展示底牌
|
||||
if #dipais > 0 then
|
||||
for i, v in ipairs(dipais) do
|
||||
local card = self._view:GetChild('list_dipais'):AddItemFromPool()
|
||||
card:GetChild("icon").url = string.format("ui://Main_Poker/%s", v)
|
||||
coroutine.wait(0.1)
|
||||
end
|
||||
coroutine.wait(1)
|
||||
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.seat ~= win_seat then
|
||||
-- card_info.ctr_outpoker.selectedIndex = 0
|
||||
-- end
|
||||
-- if player.seat ~= self._room.self_player.seat then
|
||||
-- local oneTime = 7 / 60
|
||||
|
||||
-- -- card_info:UpdateHandPoker(player.cards, false, true)
|
||||
|
||||
-- card_info._view_resultOut:RemoveChildrenToPool()
|
||||
-- card_info._ctr_resultOut.selectedIndex = 1
|
||||
-- for i = 1, #player.handCards do
|
||||
-- local child_card = card_info._view_resultOut:AddItemFromPool()
|
||||
-- card_info:FillPoker(child_card, "", nil, player.handCards[i])
|
||||
-- ViewUtil.PlaySound("DuoDuo_PK", "extend/poker/duoduo/sound/fanCard.mp3")
|
||||
-- printlog("lingmeng oneTime", oneTime)
|
||||
-- coroutine.wait(oneTime)
|
||||
-- end
|
||||
-- end
|
||||
-- end
|
||||
self:ChangeBgmMusic(1)
|
||||
-- if over == 0 then
|
||||
-- if #self:GetSpringSeats(info) > 0 then
|
||||
|
|
@ -1111,6 +1127,29 @@ function M:EventInit()
|
|||
info._ctr_offline.selectedIndex = p.line_state == 0 and 1 or 0
|
||||
end
|
||||
)
|
||||
|
||||
_gamectr:AddEventListener(
|
||||
EXGameEvent.OnGetBaseScore,
|
||||
function(...)
|
||||
local arg = { ... }
|
||||
local data = arg[1]
|
||||
self._view:GetChild('text_baseScore').text = 0
|
||||
local index = self:GetPos(data.seat)
|
||||
local head_info = self._player_info[index]
|
||||
head_info:SetBaseScore(data.score)
|
||||
end
|
||||
)
|
||||
|
||||
_gamectr:AddEventListener(
|
||||
EXGameEvent.OnShowRank,
|
||||
function(...)
|
||||
local arg = { ... }
|
||||
local data = arg[1]
|
||||
local index = self:GetPos(data.player)
|
||||
local head_info = self._player_info[index]
|
||||
head_info._ctr_rank.selectedIndex = data.ranking
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
function M:ReConnectForStart()
|
||||
|
|
@ -1118,6 +1157,7 @@ function M:ReConnectForStart()
|
|||
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)
|
||||
self._view:GetChild('text_baseScore').text = self._room.poolScore
|
||||
|
||||
for _, player in ipairs(self._room.player_list) do
|
||||
local player_card_info = self._player_card_info[self:GetPos(player.seat)]
|
||||
|
|
@ -1125,10 +1165,12 @@ function M:ReConnectForStart()
|
|||
head_info:Ready(false)
|
||||
|
||||
head_info:UpdateScore(player.total_score)
|
||||
head_info:SetBaseScore(player.roundCardScore)
|
||||
head_info:UpdateLineState(player.line_state)
|
||||
head_info:UpdatePiao(player.piao)
|
||||
head_info:SetBaoDan(player.hand_count == 1)
|
||||
head_info:MarkBank(player.seat == self._room.banker_seat)
|
||||
head_info._ctr_rank.selectedIndex = player.ranking
|
||||
|
||||
if head_info._view:GetChild("shengyu") ~= nil and head_info._view:GetController("shengyu") ~= nil then
|
||||
-- body
|
||||
|
|
@ -1173,7 +1215,7 @@ function M:ReConnectForStart()
|
|||
player_card_info:SetOutCardInfo(nil, false)
|
||||
if player.seat == self._room.self_player.seat then
|
||||
local lastCardList = self._gamectr:GetLastCardList(self._room.self_player.seat)
|
||||
player_card_info:ShowOutCardOption2(lastCardList, 1)
|
||||
player_card_info:ShowOutCardOption2(lastCardList, self._room.is_new_bout and 2 or 1)
|
||||
end
|
||||
else
|
||||
-- head_info:MarkBank(true)
|
||||
|
|
@ -1192,7 +1234,7 @@ function M:ReconnectForClearing()
|
|||
--如果是体力值不可负分模式 则显示当前的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
|
||||
-- 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
|
||||
|
|
@ -1231,7 +1273,7 @@ function M:ReconnectForClearing()
|
|||
|
||||
|
||||
if player.seat == self._room.self_player.seat then
|
||||
player_card_info:InitPoker(player.hand_list, false)
|
||||
-- player_card_info:InitPoker(player.hand_list, false)
|
||||
else
|
||||
-- player_card_info:UpdateHandPoker(player.hand_list, false, true)
|
||||
end
|
||||
|
|
@ -1250,7 +1292,7 @@ function M:ReconnectForClearing()
|
|||
coroutine.start(function()
|
||||
coroutine.wait(0.3)
|
||||
|
||||
self.result_view = EXResultView.new(self, self._room.player_list, 0, win_seat)
|
||||
self.result_view = EXResultView.new(self, self._room.player_list, 0, win_seat)
|
||||
self.result_view:SetDestroryCallback(function()
|
||||
for i = 1, #self._player_card_info do
|
||||
local card_info = self._player_card_info[i]
|
||||
|
|
@ -1416,15 +1458,15 @@ function M:UpdateRound(round)
|
|||
self._text_maxRound.text = string.format("/%s局", total_round)
|
||||
end
|
||||
|
||||
-- function M:InitPlayerInfoView()
|
||||
-- self._player_info = {}
|
||||
-- local _player_info = self._player_info
|
||||
-- for i = 1, self._room.room_config.people_num do
|
||||
-- local tem = self._view:GetChild(string.format("player_info%d_%d", i, (self._state.selectedIndex % 2) + 1))
|
||||
-- _player_info[i] = PlayerInfoView.new(tem, self)
|
||||
-- tem.visible = false
|
||||
-- end
|
||||
-- end
|
||||
function M:InitPlayerInfoView()
|
||||
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
|
||||
end
|
||||
|
||||
-- function M:GetSoundFileName(type, num, isNewBout)
|
||||
-- local fileName
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ function M:init(flag_witness)
|
|||
--互动表情的父类
|
||||
self._hudon = self._view:GetChild('comp_hudon')
|
||||
PlayerInfoView.init(self, flag_witness)
|
||||
|
||||
self._ctr_rank = self._view:GetController('rank')
|
||||
end
|
||||
|
||||
function M:FillData(player)
|
||||
|
|
@ -67,4 +69,9 @@ function M:UpdatePiao(piao)
|
|||
end
|
||||
end
|
||||
|
||||
function M:SetBaseScore(score)
|
||||
local score = score or 0
|
||||
self._view:GetChild('text_paijufen').text = score
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
|
|||
|
|
@ -175,23 +175,28 @@ function M:SetOutCardInfo(cardlist, isPass, isAnim)
|
|||
-- ViewUtil.PlaySound("DuoDuo_PK", "extend/poker/duoduo/sound/chupai.mp3")
|
||||
-- end)
|
||||
-- else
|
||||
local showOneCard
|
||||
local zhaNum = 0
|
||||
local zhaMapFlower = { 0, 0, 0, 0 }
|
||||
local zhaMapCode = { 0, 0 }
|
||||
for i = 1, #cardlist do
|
||||
if cardlist[i] % 100 < 3 then
|
||||
local poker_item = self._view_Out:AddItemFromPool()
|
||||
self:FillPoker2(poker_item, cardlist[i])
|
||||
local poker_item = self._view_Out:AddItemFromPool()
|
||||
self:FillPokerOut(poker_item, cardlist[i])
|
||||
local flower = math.floor(cardlist[i] / 100)
|
||||
local code = cardlist[i] % 100
|
||||
if code >= 3 then
|
||||
if zhaMapFlower[flower] == 3 then
|
||||
zhaNum = zhaNum + 1
|
||||
end
|
||||
zhaMapFlower[flower] = zhaMapFlower[flower] + 1
|
||||
else
|
||||
showOneCard = cardlist[i]
|
||||
if zhaMapCode[code] == 3 then
|
||||
zhaNum = zhaNum + 1
|
||||
end
|
||||
zhaMapCode[code] = zhaMapCode[code] + 1
|
||||
end
|
||||
end
|
||||
if showOneCard then
|
||||
local poker_item = self._view_Out:AddItemFromPool()
|
||||
self._view:GetChild('text_paiNum').text = string.format("X%s", #cardlist + zhaNum * 3)
|
||||
|
||||
self:FillPoker2(poker_item, showOneCard)
|
||||
-- self._view:GetChild('text_paiNum').text = string.format("X%s", #cardlist)
|
||||
else
|
||||
printlog("error 190", "除了鬼牌没有其他牌")
|
||||
end
|
||||
self._view_Out:ResizeToFit(self._view_Out.numItems)
|
||||
-- end
|
||||
end
|
||||
|
|
@ -470,6 +475,16 @@ function M:FillPoker(poker, prefix, num, code)
|
|||
end
|
||||
|
||||
function M:FillPoker2(poker, code, suffix)
|
||||
suffix = suffix or ""
|
||||
code = code == 1 and "00" or code
|
||||
if not poker.icon then
|
||||
poker:GetChild('icon').url = string.format("ui://Extend_Poker_DuoDuo/%s%s", code, suffix)
|
||||
else
|
||||
poker.icon = string.format("ui://Extend_Poker_DuoDuo/%s%s", code, suffix)
|
||||
end
|
||||
end
|
||||
|
||||
function M:FillPokerOut(poker, code, suffix)
|
||||
suffix = suffix or ""
|
||||
code = code == 1 and "00" or code
|
||||
if not poker.icon then
|
||||
|
|
@ -480,21 +495,21 @@ function M:FillPoker2(poker, code, suffix)
|
|||
end
|
||||
|
||||
function M:CreatPoker1(poker, scale, bank)
|
||||
local poker_item = UIPackage.CreateObject("Main_Poker", "poker" .. scale * 10)
|
||||
local poker_item = UIPackage.CreateObject("Extend_Poker_DuoDuo", "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://Main_Poker/" .. code .. "_1")
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_DuoDuo/" .. code .. "_1")
|
||||
else
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code)
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_DuoDuo/" .. code)
|
||||
end
|
||||
else
|
||||
if code == 310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then
|
||||
-- body
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code .. "_2")
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_DuoDuo/" .. code .. "_2")
|
||||
else
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code .. "_2")
|
||||
end
|
||||
|
|
@ -510,20 +525,20 @@ function M:CreatPoker1(poker, scale, bank)
|
|||
end
|
||||
|
||||
function M:CreatPoker(poker, scale, bank)
|
||||
local poker_item = UIPackage.CreateObject("Main_Poker", "poker" .. 12.5)
|
||||
local poker_item = UIPackage.CreateObject("Extend_Poker_DuoDuo", "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://Main_Poker/" .. code .. "_1")
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_DuoDuo/" .. code .. "_1")
|
||||
else
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code)
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_DuoDuo/" .. code)
|
||||
end
|
||||
else
|
||||
if code == 310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then
|
||||
-- body
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code .. "_2")
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_DuoDuo/" .. code .. "_2")
|
||||
else
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code .. "_2")
|
||||
end
|
||||
|
|
|
|||
|
|
@ -175,25 +175,16 @@ function M:SetOutCardInfo(cardlist, isPass, isAnim)
|
|||
-- ViewUtil.PlaySound("DuoDuo_PK", "extend/poker/duoduo/sound/chupai.mp3")
|
||||
-- end)
|
||||
-- else
|
||||
local showOneCard
|
||||
for i = 1, #cardlist do
|
||||
if cardlist[i] % 100 < 3 then
|
||||
local poker_item = self._view_Out:AddItemFromPool()
|
||||
self:FillPoker2(poker_item, cardlist[i])
|
||||
else
|
||||
showOneCard = cardlist[i]
|
||||
end
|
||||
end
|
||||
if showOneCard then
|
||||
local poker_item = self._view_Out:AddItemFromPool()
|
||||
|
||||
self:FillPoker2(poker_item, showOneCard)
|
||||
self._view:GetChild('text_paiNum').text = string.format("X%s", #cardlist)
|
||||
else
|
||||
printlog("error 190", "除了鬼牌没有其他牌")
|
||||
self:FillPoker2(poker_item, cardlist[i])
|
||||
end
|
||||
self._view_Out:ResizeToFit(self._view_Out.numItems)
|
||||
-- end
|
||||
if #cardlist >= 8 then
|
||||
self._view_Out.width = 432
|
||||
else
|
||||
self._view_Out.width = 136 + 42*(#cardlist-1)
|
||||
end
|
||||
self._view:GetChild('text_paiNum').text = string.format("X%s", #cardlist)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -473,28 +464,28 @@ function M:FillPoker2(poker, code, suffix)
|
|||
suffix = suffix or ""
|
||||
code = code == 1 and "00" or code
|
||||
if not poker.icon then
|
||||
poker:GetChild('icon').url = string.format("ui://Extend_Poker_DuoDuo/%s%s", code, suffix)
|
||||
poker:GetChild('icon').url = string.format("ui://Main_Poker/%s%s", code, suffix)
|
||||
else
|
||||
poker.icon = string.format("ui://Extend_Poker_DuoDuo/%s%s", code, suffix)
|
||||
poker.icon = string.format("ui://Main_Poker/%s%s", code, suffix)
|
||||
end
|
||||
end
|
||||
|
||||
function M:CreatPoker1(poker, scale, bank)
|
||||
local poker_item = UIPackage.CreateObject("Extend_Poker_DuoDuo", "poker" .. scale * 10)
|
||||
local poker_item = UIPackage.CreateObject("Main_Poker", "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_DuoDuo/" .. code .. "_1")
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code .. "_1")
|
||||
else
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_DuoDuo/" .. code)
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code)
|
||||
end
|
||||
else
|
||||
if code == 310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then
|
||||
-- body
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_DuoDuo/" .. code .. "_2")
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code .. "_2")
|
||||
else
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code .. "_2")
|
||||
end
|
||||
|
|
@ -510,20 +501,20 @@ function M:CreatPoker1(poker, scale, bank)
|
|||
end
|
||||
|
||||
function M:CreatPoker(poker, scale, bank)
|
||||
local poker_item = UIPackage.CreateObject("Extend_Poker_DuoDuo", "poker" .. 12.5)
|
||||
local poker_item = UIPackage.CreateObject("Main_Poker", "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_DuoDuo/" .. code .. "_1")
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code .. "_1")
|
||||
else
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_DuoDuo/" .. code)
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code)
|
||||
end
|
||||
else
|
||||
if code == 310 and DataManager.CurrenRoom.room_config.Heart10 == 2 then
|
||||
-- body
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_DuoDuo/" .. code .. "_2")
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code .. "_2")
|
||||
else
|
||||
card_code_obj = UIPackage.CreateObjectFromURL("ui://Main_Poker/" .. code .. "_2")
|
||||
end
|
||||
|
|
@ -74,6 +74,7 @@ function M:init()
|
|||
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._viewList_move = self._view:GetChild('list_moveCards')
|
||||
|
||||
self.send_card = {}
|
||||
self.tips_click_count = 0
|
||||
|
|
@ -97,12 +98,15 @@ function M:InitPoker(pokerList, isPlayAni, open)
|
|||
end
|
||||
-- -- print(vardump(self.card_list))
|
||||
self.cor_init_poker = nil
|
||||
self.card_list = {}
|
||||
self._ctr_canSendCard.selectedIndex = 0
|
||||
self.card_list = {}
|
||||
self.newCard_list = {}
|
||||
self._SendCards = {}
|
||||
-- self._ctr_canSendCard.selectedIndex = 0
|
||||
self._flag_ruleCard = false
|
||||
self._view_handCard:RemoveChildren(0, -1, true)
|
||||
self.scaleW = (GRoot.inst.width * 0.86 - self._view_handCard.columnGap * 26) / 27
|
||||
self.scaleH = self.scaleW * 1.4
|
||||
self.scaleW = (GRoot.inst.width * 0.85 - self._view_handCard.columnGap * 14) / 15
|
||||
-- self._viewList_move.width = self.scaleW
|
||||
self.scaleH = self.scaleW * 1.3
|
||||
if isPlayAni == true then
|
||||
self.cor_init_poker =
|
||||
coroutine.start(
|
||||
|
|
@ -172,25 +176,13 @@ function M:InitPoker(pokerList, isPlayAni, open)
|
|||
)
|
||||
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)
|
||||
local card_view = NewCardView(btn_card, card_number_code, card_flower_code)
|
||||
self.card_list[#self.card_list + 1] = card_view
|
||||
btn_card.data = card_view
|
||||
btn_card.width = self.scaleW
|
||||
btn_card.height = self.scaleH
|
||||
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]
|
||||
if open ~= 1 then
|
||||
-- body
|
||||
self:AddCardTouchEvent(card)
|
||||
if not self.newCard_list[pokerList[i] % 100] then
|
||||
self.newCard_list[pokerList[i] % 100] = {}
|
||||
end
|
||||
self.newCard_list[pokerList[i] % 100][math.floor(pokerList[i] / 100)] = (self.newCard_list[pokerList[i] % 100][math.floor(pokerList[i] / 100)] or 0) +
|
||||
1
|
||||
end
|
||||
self:UpdateHandCardsPos()
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -205,23 +197,18 @@ 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)
|
||||
end
|
||||
)
|
||||
-- list.onTouchBegin:Set(
|
||||
-- function(context)
|
||||
-- self.send_card = {}
|
||||
-- if list.touchable == false then
|
||||
-- return
|
||||
-- end
|
||||
-- local xy = self._view_handCard:GlobalToLocal(Vector2.New(context.inputEvent.x, context.inputEvent.y))
|
||||
-- self.touchBegin = xy
|
||||
-- Stage.inst.onTouchMove:Add(self.touchMoveFun)
|
||||
-- Stage.inst.onTouchEnd:Add(self.touchMoveEndFun)
|
||||
-- end
|
||||
-- )
|
||||
end
|
||||
|
||||
function M:AddCardTouchEvent(card)
|
||||
|
|
@ -230,7 +217,45 @@ function M:AddCardTouchEvent(card)
|
|||
if card.btn_card.touchable == false then
|
||||
return
|
||||
end
|
||||
self:SetBtnCardColor(card, 1)
|
||||
if card.card_code_flower % 100 < 3 then
|
||||
local cindex = card.btn_card:GetController('choose').selectedIndex
|
||||
if cindex == 1 then
|
||||
self:SetBtnCardColor(card, 0)
|
||||
if self._SendCards and #self._SendCards > 0 then
|
||||
for k, v in pairs(self._SendCards) do
|
||||
if card.card_code_flower % 100 == v.card_code_flower%100 then
|
||||
table.remove(self._SendCards, k)
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
self:SetBtnCardColor(card, 1)
|
||||
table.insert(self._SendCards, card)
|
||||
end
|
||||
else
|
||||
if self._SendCards and #self._SendCards > 0 then
|
||||
local tmp = {}
|
||||
for k, v in pairs(self._SendCards) do
|
||||
if v.card_code_flower % 100 ~= card.card_code_flower % 100 and (card.card_code_flower % 100 < 3 or v.card_code_flower % 100 < 3) then
|
||||
table.insert(tmp, v)
|
||||
else
|
||||
self:SetBtnCardColor(v, 0)
|
||||
end
|
||||
end
|
||||
self._SendCards = tmp
|
||||
end
|
||||
local cardList = card.fatherList
|
||||
local touchIndex = cardList:GetChildIndex(card.btn_card)
|
||||
self.touchCard = card
|
||||
self.touchIndex = touchIndex
|
||||
for i = 0, touchIndex do
|
||||
local oncard = cardList:GetChildAt(i)
|
||||
self:SetBtnCardColor(oncard.data, 1)
|
||||
end
|
||||
Stage.inst.onTouchMove:Add(self.touchMoveFun)
|
||||
Stage.inst.onTouchEnd:Add(self.touchMoveEndFun)
|
||||
end
|
||||
end
|
||||
)
|
||||
end
|
||||
|
|
@ -270,120 +295,37 @@ 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
|
||||
local fatherList = self.touchCard.fatherList
|
||||
local xy = fatherList:GetChildAt(0):GlobalToLocal(Vector2.New(context.inputEvent.x,
|
||||
context.inputEvent.y))
|
||||
|
||||
for i = 1, self._view_handCard.numItems do
|
||||
local card = self._view_handCard:GetChildAt(i - 1).data
|
||||
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
|
||||
for i = 0, fatherList.numItems - 1 do
|
||||
local cardOne = fatherList:GetChildAt(i)
|
||||
self:SetBtnCardColor(cardOne.data, xy.y > cardOne.y and 1 or 0)
|
||||
end
|
||||
self.send_card = send_card1
|
||||
end
|
||||
|
||||
function M:TouchMoveEnd(context)
|
||||
local send_card = {}
|
||||
local currentCard = {}
|
||||
local xuan_card = {}
|
||||
local linexy = self._view_handCard:GlobalToLocal(Vector2.New(context.inputEvent.x,
|
||||
context.inputEvent.y))
|
||||
|
||||
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
|
||||
local fatherList = self.touchCard.fatherList
|
||||
local xy = fatherList:GetChildAt(0):GlobalToLocal(Vector2.New(context.inputEvent.x,
|
||||
context.inputEvent.y))
|
||||
|
||||
for i = 0, fatherList.numItems - 1 do
|
||||
local cardOne = fatherList:GetChildAt(i)
|
||||
if xy.y > cardOne.y then
|
||||
table.insert(self._SendCards, cardOne.data)
|
||||
end
|
||||
end
|
||||
-- for i = 0, self.touchIndex do
|
||||
-- local oncard = self.touchCard.fatherList:GetChildAt(i)
|
||||
-- self:SetBtnCardColor(oncard.data, 0)
|
||||
-- oncard.xy = Vector2.New(0, (self.scaleH + self.linegap) * i)
|
||||
-- end
|
||||
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._view_handCard.numItems do
|
||||
local card = self._view_handCard:GetChildAt(k - 1).data
|
||||
table.insert(currentCard, card.card_code_flower)
|
||||
if not card.btn_card.selected then
|
||||
downCards = downCards - 1
|
||||
end
|
||||
if card.btn_card.touchable == false or card.card_isTouchable == 1 then
|
||||
else
|
||||
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)
|
||||
if card.btn_card.selected then
|
||||
send_card[#send_card + 1] = card
|
||||
end
|
||||
--ViewUtil.PlaySound("RunFastNew_PK", "extend/poker/paodekuai/sound/click.mp3")
|
||||
else
|
||||
if card.btn_card.selected then
|
||||
send_card[#send_card + 1] = card
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- ViewUtil.PlaySound('RunFastNew_PK', 'extend/poker/runfast/sound/click.mp3')
|
||||
|
||||
Stage.inst:ResetInputState()
|
||||
|
||||
if downCards == 0 then
|
||||
xuan_card = self:zhizhanxuanpai()
|
||||
end
|
||||
|
||||
if #send_card > 0 then
|
||||
table.sort(send_card, tableSortNumber)
|
||||
send_card = #xuan_card > 0 and xuan_card or send_card
|
||||
self._cardCheck:initCards(send_card,
|
||||
{
|
||||
flag = #xuan_card > 0,
|
||||
flag_allCards = #send_card == self._view_handCard.numItems,
|
||||
flag_ruleCard = self
|
||||
._flag_ruleCard
|
||||
})
|
||||
|
||||
self._ctr_canSendCard.selectedIndex = self._cardCheck:CheckCards() and 1 or 0
|
||||
else
|
||||
self._ctr_canSendCard.selectedIndex = 0
|
||||
end
|
||||
end
|
||||
|
||||
-- function M:SetBtnCardColor(card, num)
|
||||
|
|
@ -450,7 +392,7 @@ function M:ShowOutCardOption(ctr_select, type, number, length, mustPutMaxCard, p
|
|||
self.tips_click_count = 0
|
||||
self.send_card = {}
|
||||
self.tips_card_list = self:GetCardTips(type, number, length, mustPutMaxCard)
|
||||
self._ctr_canSendCard.selectedIndex = 0
|
||||
-- self._ctr_canSendCard.selectedIndex = 0
|
||||
|
||||
if #self.tips_card_list >= 1 then
|
||||
-- body --在这个方法里添加判断抬起牌是否符合出牌类型(少跑一次手牌循环)
|
||||
|
|
@ -511,7 +453,7 @@ function M:SetOutCardInfo(cardlist, isPass, isAnim)
|
|||
for i = 1, #cardlist do
|
||||
local poker_item = self._view_Out:AddItemFromPool()
|
||||
|
||||
self:FillPoker2(poker_item, cardlist[i])
|
||||
self:FillPokerOut(poker_item, cardlist[i])
|
||||
end
|
||||
-- end
|
||||
end
|
||||
|
|
@ -651,27 +593,73 @@ 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
|
||||
local tmpNum = nil
|
||||
if self.newCard_list[cardlist[i] % 100] then
|
||||
tmpNum = self.newCard_list[cardlist[i] % 100][math.floor(cardlist[i] / 100)]
|
||||
end
|
||||
if tmpNum then
|
||||
if tmpNum == 1 then
|
||||
self.newCard_list[cardlist[i] % 100][math.floor(cardlist[i] / 100)] = nil
|
||||
else
|
||||
self.newCard_list[cardlist[i] % 100][math.floor(cardlist[i] / 100)] = tmpNum - 1
|
||||
end
|
||||
else
|
||||
ViewUtil:ErrorTip("牌型出错,重新加载页面")
|
||||
ViewManager.refreshGameView()
|
||||
end
|
||||
if i == #cardlist then
|
||||
if #self.newCard_list[cardlist[i] % 100] == 0 then
|
||||
self.newCard_list[cardlist[i] % 100] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
self._view_handCard:ResizeToFit(self._view_handCard.numItems)
|
||||
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)
|
||||
local maxHeight = 0
|
||||
self._view_handCard:RemoveChildrenToPool()
|
||||
local sortTable = {}
|
||||
for k, v in pairs(self.newCard_list) do
|
||||
local btn_cardListFather = self._view_handCard:GetFromPool('')
|
||||
btn_cardListFather.width = self.scaleW
|
||||
local btn_cardList = btn_cardListFather:GetChild('list')
|
||||
btn_cardList:RemoveChildrenToPool()
|
||||
self.linegap = btn_cardList.lineGap
|
||||
local tmpHeight = 0
|
||||
local noZhaIndex = 0
|
||||
local allCardNum = 0
|
||||
for k1, v1 in pairs(v) do
|
||||
local card_number_code = k * 10 + k1
|
||||
local card_flower_code = k1 * 100 + k
|
||||
for i = 1, v1 do
|
||||
local btn_card = btn_cardList:GetFromPool('')
|
||||
btn_cardList:AddChildAt(btn_card, noZhaIndex)
|
||||
noZhaIndex = noZhaIndex + 1
|
||||
allCardNum = allCardNum + 1
|
||||
btn_card.height = self.scaleH
|
||||
self:FillPoker2(btn_card, card_flower_code)
|
||||
local card_view = NewCardView(btn_card, card_number_code, card_flower_code)
|
||||
card_view.fatherList = btn_cardList
|
||||
self.card_list[#self.card_list + 1] = card_view
|
||||
btn_card.data = card_view
|
||||
tmpHeight = tmpHeight + 1
|
||||
self:AddCardTouchEvent(card_view)
|
||||
end
|
||||
end
|
||||
local index = ViewUtil.BinarySearch(sortTable, allCardNum, 1)
|
||||
self._view_handCard:AddChildAt(btn_cardListFather, index - 1)
|
||||
table.insert(sortTable, index, allCardNum)
|
||||
if tmpHeight > maxHeight then
|
||||
maxHeight = tmpHeight
|
||||
end
|
||||
end
|
||||
if #self.newCard_list > 0 then
|
||||
self._view:GetChild('btn_back').y = math.min(self._view_handCard.height -
|
||||
(self.scaleH + (self.scaleH + self.linegap) * (maxHeight - 1)) - 30, 100)
|
||||
self._view_Out.y = math.min(self._view_handCard.height -
|
||||
(self.scaleH + (self.scaleH + self.linegap) * (maxHeight - 1)) - self._view_Out.height + self.scaleH * 0.3,
|
||||
50)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -716,9 +704,9 @@ function M:UpdateHandCardsColor()
|
|||
if #send_card > 0 then
|
||||
table.sort(send_card, tableSortNumber)
|
||||
self._cardCheck:initCards(send_card, { flag = false, flag_allCards = #send_card == self._view_handCard.numItems })
|
||||
self._ctr_canSendCard.selectedIndex = self._cardCheck:CheckCards() and 1 or 0
|
||||
-- self._ctr_canSendCard.selectedIndex = self._cardCheck:CheckCards() and 1 or 0
|
||||
else
|
||||
self._ctr_canSendCard.selectedIndex = 0
|
||||
-- self._ctr_canSendCard.selectedIndex = 0
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -726,32 +714,37 @@ 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 = self.btn_sendCards:GetController('can')
|
||||
|
||||
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
|
||||
-- if self._ctr_canSendCard.selectedIndex == 0 then
|
||||
-- return
|
||||
-- end
|
||||
local allcards = {}
|
||||
for k, v in pairs(self.newCard_list) do
|
||||
for k1, v1 in pairs(v) do
|
||||
if v1 > 0 then
|
||||
for i = 1, v1 do
|
||||
local card_flower_code = k1 * 100 + k
|
||||
table.insert(allcards, card_flower_code)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if #send_card == 0 then
|
||||
local SendCard = {}
|
||||
for i, v in ipairs(self._SendCards) do
|
||||
table.insert(SendCard, v.card_code_flower)
|
||||
self:SetBtnCardColor(v, 0)
|
||||
end
|
||||
self._SendCards = {}
|
||||
if #SendCard == 0 then
|
||||
self:ErrorTip('请选择要出的牌')
|
||||
else
|
||||
self.gameCtr:SendCard(send_card, currentCard)
|
||||
self.gameCtr:SendCard(SendCard, allcards)
|
||||
end
|
||||
end
|
||||
)
|
||||
|
|
@ -816,7 +809,7 @@ function M:ShowTipsCard(index)
|
|||
end
|
||||
pt(item)
|
||||
self._cardCheck:initCards(item)
|
||||
self._ctr_canSendCard.selectedIndex = self._cardCheck:CheckCards() and 1 or 0
|
||||
-- self._ctr_canSendCard.selectedIndex = self._cardCheck:CheckCards() and 1 or 0
|
||||
end
|
||||
|
||||
function M:GetHandCardOffset(count)
|
||||
|
|
|
|||
|
|
@ -74,7 +74,6 @@ function M:init()
|
|||
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._viewList_move = self._view:GetChild('list_moveCards')
|
||||
|
||||
self.send_card = {}
|
||||
self.tips_click_count = 0
|
||||
|
|
@ -96,16 +95,31 @@ function M:InitPoker(pokerList, isPlayAni, open)
|
|||
if self.cor_init_poker ~= nil then
|
||||
coroutine.stop(self.cor_init_poker)
|
||||
end
|
||||
table.sort(pokerList, function(a, b)
|
||||
local num_a = a % 100
|
||||
local num_b = b % 100
|
||||
local code_a = math.floor(a / 100)
|
||||
local code_b = math.floor(b / 100)
|
||||
if num_a < 3 then
|
||||
num_a = num_a + 100
|
||||
end
|
||||
if num_b < 3 then
|
||||
num_b = num_b + 100
|
||||
end
|
||||
if num_a == num_b then
|
||||
return code_a < code_b
|
||||
else
|
||||
return num_a<num_b
|
||||
end
|
||||
end)
|
||||
-- -- print(vardump(self.card_list))
|
||||
self.cor_init_poker = nil
|
||||
self.card_list = {}
|
||||
self.newCard_list = {}
|
||||
self._ctr_canSendCard.selectedIndex = 0
|
||||
-- self._ctr_canSendCard.selectedIndex = 0
|
||||
self._flag_ruleCard = false
|
||||
self._view_handCard:RemoveChildren(0, -1, true)
|
||||
self.scaleW = (GRoot.inst.width * 0.85 - self._view_handCard.columnGap * 14) / 15
|
||||
self._viewList_move.width = self.scaleW
|
||||
self.scaleH = self.scaleW * 1.3
|
||||
self.scaleW = (GRoot.inst.width * 0.86 - self._view_handCard.columnGap * 26) / 27
|
||||
self.scaleH = self.scaleW * 1.4
|
||||
if isPlayAni == true then
|
||||
self.cor_init_poker =
|
||||
coroutine.start(
|
||||
|
|
@ -175,13 +189,25 @@ function M:InitPoker(pokerList, isPlayAni, open)
|
|||
)
|
||||
else
|
||||
for i = #pokerList, 1, -1 do
|
||||
if not self.newCard_list[pokerList[i] % 100] then
|
||||
self.newCard_list[pokerList[i] % 100] = {}
|
||||
end
|
||||
self.newCard_list[pokerList[i] % 100][math.floor(pokerList[i] / 100)] = (self.newCard_list[pokerList[i] % 100][math.floor(pokerList[i] / 100)] or 0) +
|
||||
1
|
||||
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)
|
||||
local card_view = NewCardView(btn_card, card_number_code, card_flower_code)
|
||||
self.card_list[#self.card_list + 1] = card_view
|
||||
btn_card.data = card_view
|
||||
btn_card.width = self.scaleW
|
||||
btn_card.height = self.scaleH
|
||||
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]
|
||||
if open ~= 1 then
|
||||
-- body
|
||||
self:AddCardTouchEvent(card)
|
||||
end
|
||||
end
|
||||
self:UpdateHandCardsPos()
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -196,18 +222,29 @@ end
|
|||
function M:AddTouchMoveEvent(list)
|
||||
local send_card = {}
|
||||
|
||||
-- list.onTouchBegin:Set(
|
||||
-- function(context)
|
||||
-- self.send_card = {}
|
||||
-- if list.touchable == false then
|
||||
-- return
|
||||
-- end
|
||||
-- local xy = self._view_handCard:GlobalToLocal(Vector2.New(context.inputEvent.x, context.inputEvent.y))
|
||||
-- self.touchBegin = xy
|
||||
-- Stage.inst.onTouchMove:Add(self.touchMoveFun)
|
||||
-- Stage.inst.onTouchEnd:Add(self.touchMoveEndFun)
|
||||
-- end
|
||||
-- )
|
||||
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))
|
||||
self.touchBegin = xy
|
||||
|
||||
--y轴选中
|
||||
local lastCard = self._view_handCard:GetChildAt(self._view_handCard.numItems - 1)
|
||||
self.chooseY = fristCard.y
|
||||
if xy.y >= self._view_handCard.height - lastCard.height then
|
||||
self.chooseY = lastCard.y
|
||||
end
|
||||
Stage.inst.onTouchMove:Add(self.touchMoveFun)
|
||||
Stage.inst.onTouchEnd:Add(self.touchMoveEndFun)
|
||||
end
|
||||
)
|
||||
end
|
||||
|
||||
function M:AddCardTouchEvent(card)
|
||||
|
|
@ -216,32 +253,7 @@ function M:AddCardTouchEvent(card)
|
|||
if card.btn_card.touchable == false then
|
||||
return
|
||||
end
|
||||
local cardList = card.fatherList
|
||||
local touchIndex = cardList:GetChildIndex(card.btn_card)
|
||||
self._SendCards = {}
|
||||
self.touchCard = card
|
||||
self.touchIndex = touchIndex
|
||||
local copy_list = self._viewList_move:GetChild('list')
|
||||
for i = 0, touchIndex do
|
||||
local oncard = cardList:GetChildAt(i)
|
||||
self:SetBtnCardColor(oncard.data, 1)
|
||||
--复制一份列表作为移动对象
|
||||
local copy_card = copy_list:AddItemFromPool()
|
||||
self:FillPoker2(copy_card, oncard.data.card_code_flower)
|
||||
copy_card.height = self.scaleH
|
||||
if oncard.data.zha then
|
||||
for j = 1, 4 do
|
||||
table.insert(self._SendCards, oncard.data.card_code_flower)
|
||||
end
|
||||
else
|
||||
table.insert(self._SendCards, oncard.data.card_code_flower)
|
||||
end
|
||||
end
|
||||
local xy = self.touchCard.fatherList:GlobalToLocal(Vector2.New(context.inputEvent.x, context.inputEvent.y))
|
||||
self._viewList_move.xy = self._view:GlobalToLocal(Vector2.New(context.inputEvent.x, context.inputEvent.y)) - Vector2.New(self.scaleW/2,self.scaleH + (self.scaleH + self.linegap)*(copy_list.numItems-1) + self.linegap)
|
||||
self.touchBegin = xy - self._viewList_move.xy
|
||||
Stage.inst.onTouchMove:Add(self.touchMoveFun)
|
||||
Stage.inst.onTouchEnd:Add(self.touchMoveEndFun)
|
||||
self:SetBtnCardColor(card, 1)
|
||||
end
|
||||
)
|
||||
end
|
||||
|
|
@ -282,61 +294,121 @@ function M:TouchMoving(context)
|
|||
return
|
||||
end
|
||||
local send_card1 = {}
|
||||
local xy = self.touchCard.fatherList:GlobalToLocal(Vector2.New(context.inputEvent.x,
|
||||
context.inputEvent.y))
|
||||
self._viewList_move.xy = xy - self.touchBegin
|
||||
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._view_handCard.numItems do
|
||||
local card = self._view_handCard:GetChildAt(i - 1).data
|
||||
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 and self.chooseY == card.btn_card.y
|
||||
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 linexy = self._view_handCard:GlobalToLocal(Vector2.New(context.inputEvent.x,
|
||||
context.inputEvent.y))
|
||||
local send_card = {}
|
||||
local currentCard = {}
|
||||
local xuan_card = {}
|
||||
|
||||
if self.ctr_put_card_option.selectedIndex > 0 then
|
||||
local allcards = {}
|
||||
for k, v in pairs(self.newCard_list) do
|
||||
for k1, v1 in pairs(v) do
|
||||
if v1 > 0 then
|
||||
for i = 1, v1 do
|
||||
local card_flower_code = k1 * 100 + k
|
||||
table.insert(allcards, card_flower_code)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if linexy.y < self._view:GetChild('n82').y then
|
||||
self.gameCtr:SendCard(self._SendCards, allcards)
|
||||
else
|
||||
if self.touchCard.card_code_flower % 100 < 3 then
|
||||
for i = self._view_handCard.numItems - 1, 0, -1 do
|
||||
local oneCardList = self._view_handCard:GetChildAt(i):GetChild('list')
|
||||
local listxy = oneCardList:GlobalToLocal(Vector2.New(context.inputEvent.x,
|
||||
context.inputEvent.y))
|
||||
if listxy.x > 0 and oneCardList:GetChildAt(0).data.card_code_flower % 100 > 2 then
|
||||
for i = 0, oneCardList.numItems - 1 do
|
||||
local oncard = oneCardList:GetChildAt(i)
|
||||
if oncard.data.zha then
|
||||
for j = 1, 4 do
|
||||
table.insert(self._SendCards, oncard.data.card_code_flower)
|
||||
end
|
||||
else
|
||||
table.insert(self._SendCards, oncard.data.card_code_flower)
|
||||
end
|
||||
end
|
||||
self.gameCtr:SendCard(self._SendCards, allcards)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
self._viewList_move:GetChild('list'):RemoveChildrenToPool()
|
||||
for i = 0, self.touchIndex do
|
||||
local oncard = self.touchCard.fatherList:GetChildAt(i)
|
||||
self:SetBtnCardColor(oncard.data, 0)
|
||||
oncard.xy = Vector2.New(0, (self.scaleH + self.linegap) * i)
|
||||
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))
|
||||
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._view_handCard.numItems do
|
||||
local card = self._view_handCard:GetChildAt(k - 1).data
|
||||
table.insert(currentCard, card.card_code_flower)
|
||||
if not card.btn_card.selected then
|
||||
downCards = downCards - 1
|
||||
end
|
||||
if card.btn_card.touchable == false or card.card_isTouchable == 1 then
|
||||
else
|
||||
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 self.chooseY == card.btn_card.y
|
||||
then
|
||||
self:UpdateCardMove(card.btn_card, not card.btn_card.selected, false)
|
||||
if card.btn_card.selected then
|
||||
send_card[#send_card + 1] = card
|
||||
end
|
||||
--ViewUtil.PlaySound("RunFastNew_PK", "extend/poker/paodekuai/sound/click.mp3")
|
||||
else
|
||||
if card.btn_card.selected then
|
||||
send_card[#send_card + 1] = card
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- ViewUtil.PlaySound('RunFastNew_PK', 'extend/poker/runfast/sound/click.mp3')
|
||||
|
||||
Stage.inst:ResetInputState()
|
||||
|
||||
-- if downCards == 0 then
|
||||
-- xuan_card = self:zhizhanxuanpai()
|
||||
-- end
|
||||
|
||||
-- if #send_card > 0 then
|
||||
-- table.sort(send_card, tableSortNumber)
|
||||
-- send_card = #xuan_card > 0 and xuan_card or send_card
|
||||
-- self._cardCheck:initCards(send_card,
|
||||
-- {
|
||||
-- flag = #xuan_card > 0,
|
||||
-- flag_allCards = #send_card == self._view_handCard.numItems,
|
||||
-- flag_ruleCard = self
|
||||
-- ._flag_ruleCard
|
||||
-- })
|
||||
|
||||
-- self._ctr_canSendCard.selectedIndex = self._cardCheck:CheckCards() and 1 or 0
|
||||
-- else
|
||||
-- self._ctr_canSendCard.selectedIndex = 0
|
||||
-- end
|
||||
end
|
||||
|
||||
-- function M:SetBtnCardColor(card, num)
|
||||
|
|
@ -403,7 +475,7 @@ function M:ShowOutCardOption(ctr_select, type, number, length, mustPutMaxCard, p
|
|||
self.tips_click_count = 0
|
||||
self.send_card = {}
|
||||
self.tips_card_list = self:GetCardTips(type, number, length, mustPutMaxCard)
|
||||
self._ctr_canSendCard.selectedIndex = 0
|
||||
-- self._ctr_canSendCard.selectedIndex = 0
|
||||
|
||||
if #self.tips_card_list >= 1 then
|
||||
-- body --在这个方法里添加判断抬起牌是否符合出牌类型(少跑一次手牌循环)
|
||||
|
|
@ -604,83 +676,28 @@ end
|
|||
function M:DeleteHandCards(cardlist)
|
||||
self.ctr_put_card_option.selectedIndex = 0
|
||||
for i = 1, #cardlist do
|
||||
local tmpNum = nil
|
||||
if self.newCard_list[cardlist[i] % 100] then
|
||||
tmpNum = self.newCard_list[cardlist[i] % 100][math.floor(cardlist[i] / 100)]
|
||||
end
|
||||
if tmpNum then
|
||||
if tmpNum == 1 then
|
||||
self.newCard_list[cardlist[i] % 100][math.floor(cardlist[i] / 100)] = nil
|
||||
else
|
||||
self.newCard_list[cardlist[i] % 100][math.floor(cardlist[i] / 100)] = tmpNum - 1
|
||||
end
|
||||
else
|
||||
ViewUtil:ErrorTip("牌型出错,重新加载页面")
|
||||
ViewManager.refreshGameView()
|
||||
end
|
||||
if i == #cardlist then
|
||||
if #self.newCard_list[cardlist[i] % 100] == 0 then
|
||||
self.newCard_list[cardlist[i] % 100] = nil
|
||||
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._view_handCard:ResizeToFit(self._view_handCard.numItems)
|
||||
self:UpdateHandCardsPos()
|
||||
end
|
||||
|
||||
function M:UpdateHandCardsPos()
|
||||
local maxHeight = 0
|
||||
self._view_handCard:RemoveChildrenToPool()
|
||||
self._newCardSize = {}
|
||||
self._viewList_move:GetChild('list'):RemoveChildrenToPool()
|
||||
for k, v in pairs(self.newCard_list) do
|
||||
local btn_cardListFather = self._view_handCard:AddItemFromPool()
|
||||
btn_cardListFather.width = self.scaleW
|
||||
-- btn_cardListFather.height = scaleH*12
|
||||
local btn_cardList = btn_cardListFather:GetChild('list')
|
||||
btn_cardList:RemoveChildrenToPool()
|
||||
self.linegap = btn_cardList.lineGap
|
||||
local tmpHeight = 0
|
||||
local noZhaIndex = 0
|
||||
for k1, v1 in pairs(v) do
|
||||
local card_number_code = k * 10 + k1
|
||||
local card_flower_code = k1 * 100 + k
|
||||
if v1 ~= 4 then
|
||||
for i = 1, v1 do
|
||||
local btn_card = btn_cardList:GetFromPool('')
|
||||
btn_cardList:AddChildAt(btn_card, noZhaIndex)
|
||||
noZhaIndex = noZhaIndex + 1
|
||||
btn_card.height = self.scaleH
|
||||
self:FillPoker2(btn_card, card_flower_code)
|
||||
-- self.cards_view:AddChild(btn_card)
|
||||
local card_view = NewCardView(btn_card, card_number_code, card_flower_code)
|
||||
card_view.fatherList = btn_cardList
|
||||
self.card_list[#self.card_list + 1] = card_view
|
||||
btn_card.data = card_view
|
||||
tmpHeight = tmpHeight + 1
|
||||
self:AddCardTouchEvent(card_view)
|
||||
end
|
||||
else
|
||||
local btn_card = btn_cardList:AddItemFromPool()
|
||||
btn_card.height = self.scaleH
|
||||
self:FillPoker2(btn_card, card_flower_code, "_z")
|
||||
-- self.cards_view:AddChild(btn_card)
|
||||
local card_view = NewCardView(btn_card, card_number_code, card_flower_code)
|
||||
card_view.fatherList = btn_cardList
|
||||
card_view.zha = true
|
||||
self.card_list[#self.card_list + 1] = card_view
|
||||
btn_card.data = card_view
|
||||
tmpHeight = tmpHeight + 1
|
||||
self:AddCardTouchEvent(card_view)
|
||||
end
|
||||
self._newCardSize[k1] = tmpHeight
|
||||
end
|
||||
|
||||
if tmpHeight > maxHeight then
|
||||
maxHeight = tmpHeight
|
||||
end
|
||||
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
|
||||
self._view:GetChild('n82').y = self._view_handCard.height -
|
||||
(self.scaleH + (self.scaleH + self.linegap) * (maxHeight - 1) + 50)
|
||||
end
|
||||
|
||||
function M:ResetPoker()
|
||||
|
|
@ -724,9 +741,9 @@ function M:UpdateHandCardsColor()
|
|||
if #send_card > 0 then
|
||||
table.sort(send_card, tableSortNumber)
|
||||
self._cardCheck:initCards(send_card, { flag = false, flag_allCards = #send_card == self._view_handCard.numItems })
|
||||
self._ctr_canSendCard.selectedIndex = self._cardCheck:CheckCards() and 1 or 0
|
||||
-- self._ctr_canSendCard.selectedIndex = self._cardCheck:CheckCards() and 1 or 0
|
||||
else
|
||||
self._ctr_canSendCard.selectedIndex = 0
|
||||
-- self._ctr_canSendCard.selectedIndex = 0
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -734,16 +751,16 @@ 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 = self.btn_sendCards:GetController('can')
|
||||
|
||||
self.btn_sendCards.onClick:Set(
|
||||
function()
|
||||
if self.Reset then
|
||||
return
|
||||
end
|
||||
if self._ctr_canSendCard.selectedIndex == 0 then
|
||||
return
|
||||
end
|
||||
-- if self._ctr_canSendCard.selectedIndex == 0 then
|
||||
-- return
|
||||
-- end
|
||||
local send_card = {}
|
||||
self.send_card = {}
|
||||
local currentCard = {}
|
||||
|
|
@ -824,7 +841,7 @@ function M:ShowTipsCard(index)
|
|||
end
|
||||
pt(item)
|
||||
self._cardCheck:initCards(item)
|
||||
self._ctr_canSendCard.selectedIndex = self._cardCheck:CheckCards() and 1 or 0
|
||||
-- self._ctr_canSendCard.selectedIndex = self._cardCheck:CheckCards() and 1 or 0
|
||||
end
|
||||
|
||||
function M:GetHandCardOffset(count)
|
||||
|
|
@ -33,16 +33,19 @@ local EXProtocol = {
|
|||
EXPiao_Action = "2032",
|
||||
|
||||
EXConfirmToNextGameSucc = "2010",
|
||||
PT_GAMETUOGUAN = "2029", --托管
|
||||
SEND_TUOGUAN = "1018", --托管
|
||||
GAME_XIPAI = "20836",
|
||||
GAME_EVENT_XIPAI = "20837",
|
||||
GAME_EVENT_NOTIFY_XIPAI = "20838",
|
||||
GAME_EVT_CARDINHAND = "202022",
|
||||
PT_GAMETUOGUAN = "2029", --托管
|
||||
SEND_TUOGUAN = "1018", --托管
|
||||
GAME_XIPAI = "20836",
|
||||
GAME_EVENT_XIPAI = "20837",
|
||||
GAME_EVENT_NOTIFY_XIPAI = "20838",
|
||||
GAME_EVT_CARDINHAND = "202022",
|
||||
|
||||
EXCheckCard = "8881",
|
||||
EXCheckCard_Succ = "8882",
|
||||
EXCheckCard_Send = "888"
|
||||
EXCheckCard_Send = "888",
|
||||
|
||||
EXBaseScore = "2034",
|
||||
EXShowRank = "2035"
|
||||
}
|
||||
|
||||
return EXProtocol
|
||||
|
|
|
|||
|
|
@ -74,7 +74,13 @@ function M:init(url, data, over, win_seat)
|
|||
|
||||
local over0List = self._view:GetChild('list_over0')
|
||||
table.sort(data, function(a, b)
|
||||
return a.ranking < b.ranking
|
||||
if not a.ranking or a.ranking == 0 then
|
||||
a.ranking = 4
|
||||
end
|
||||
if not b.ranking or b.ranking == 0 then
|
||||
b.ranking = 4
|
||||
end
|
||||
return (a.ranking or 4) > (b.ranking or 4)
|
||||
end)
|
||||
over0List.itemRenderer = function(index, obj)
|
||||
local info = data[index + 1]
|
||||
|
|
|
|||
|
|
@ -138,6 +138,8 @@ function M:FillRoomData(s2croom)
|
|||
local reloadInfo = s2croom["reloadInfo"]
|
||||
local bank_seat = reloadInfo["banker_seat"]
|
||||
room.banker_seat = bank_seat
|
||||
room.poolScore = reloadInfo["poolScore"]
|
||||
|
||||
local playing = reloadInfo["playing"]
|
||||
|
||||
room.curren_turn_seat = reloadInfo["active_seat"]
|
||||
|
|
@ -159,6 +161,9 @@ function M:FillRoomData(s2croom)
|
|||
p.piao = info_list[i]["piao"]
|
||||
p.handCards = info_list[i]["handCards"]
|
||||
p.outCards = info_list[i]["outCards"]
|
||||
p.roundCardScore = info_list[i]["roundCardScore"]
|
||||
p.ranking = info_list[i]["ranking"]
|
||||
|
||||
local last_outcard = info_list[i]["last_outcard"]
|
||||
if last_outcard ~= nil and last_outcard[1] ~= 0 then
|
||||
local out_card_list = last_outcard.card_list
|
||||
|
|
|
|||
|
|
@ -20,10 +20,6 @@ function M.new(view, mainView)
|
|||
self._tex_n4.visible=false
|
||||
end
|
||||
|
||||
if self._tex_player_name then
|
||||
self._tex_player_name.visible=false
|
||||
end
|
||||
|
||||
if self._tex_n5 then
|
||||
self._tex_n5.visible=false
|
||||
end
|
||||
|
|
|
|||
|
|
@ -5,15 +5,15 @@
|
|||
<image id="n4_l8fn" name="n4" src="l8fnb7jh5" fileName="images/btn_withText.png" xy="-5,0" size="272,145">
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</image>
|
||||
<text id="n5_l8fn" name="title" xy="130,67" size="0,0" font="ui://27vd145bej1ib7jgh" fontSize="47" color="#984732" text="">
|
||||
<relation target="" sidePair="center-center,middle-middle"/>
|
||||
</text>
|
||||
<loader id="n7_hmu5" name="n7" xy="1,61" size="262,84" url="ui://27vd145bhmu5b7jhc" vAlign="middle" fill="scale">
|
||||
<relation target="" sidePair="width-width%,height-height%,left-left,bottom-bottom%"/>
|
||||
</loader>
|
||||
<loader id="n8_hmu5" name="n8" xy="-1,61" size="262,84" url="ui://27vd145bhmu5b7jhf" align="right" vAlign="middle" fill="scale">
|
||||
<relation target="" sidePair="width-width%,height-height%,right-right,bottom-bottom%"/>
|
||||
</loader>
|
||||
<text id="n5_l8fn" name="title" xy="130,67" size="0,0" font="ui://27vd145bej1ib7jgh" fontSize="47" color="#984732" text="">
|
||||
<relation target="" sidePair="center-center,middle-middle"/>
|
||||
</text>
|
||||
</displayList>
|
||||
<Button downEffect="dark" downEffectValue=".8"/>
|
||||
</component>
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
<component size="262,134" extention="Button">
|
||||
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
|
||||
<displayList>
|
||||
<image id="n4_l8fn" name="n4" src="cl8pb7jhh" fileName="images/btn_bg1WithText.png" xy="-3,0" size="268,140">
|
||||
<image id="n4_l8fn" name="n4" src="cl8pb7jhh" fileName="images/btn_bg1WithText.png" xy="-5,0" size="272,144">
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</image>
|
||||
<text id="n5_l8fn" name="title" xy="130,67" size="0,0" font="ui://27vd145bej1ib7jgh" fontSize="47" color="#984732" text="">
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="55,53" extention="Button">
|
||||
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
|
||||
<controller name="button" pages="0,up,1,down" selected="1"/>
|
||||
<displayList>
|
||||
<image id="n5_9044" name="n5" src="ksftb7jho" fileName="images/choose_down.png" xy="0,0" size="55,53">
|
||||
<gearDisplay controller="button" pages="1"/>
|
||||
|
|
@ -14,5 +14,5 @@
|
|||
<relation target="" sidePair="middle-middle,left-right"/>
|
||||
</text>
|
||||
</displayList>
|
||||
<Button mode="Radio"/>
|
||||
<Button mode="Check"/>
|
||||
</component>
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="504,107" extention="Button" initName="btn_time">
|
||||
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
|
||||
<displayList>
|
||||
<image id="n3_ka5c" name="n3" src="ka5cbt7d9p" fileName="images/btn_time.png" xy="0,0"/>
|
||||
<text id="n5_ka5c" name="title" xy="122,33" size="294,41" font="ui://27vd145bka5cbt7da5" fontSize="37" letterSpacing="2" autoClearText="true" text="12月11日-12月12号"/>
|
||||
</displayList>
|
||||
<Button/>
|
||||
</component>
|
||||
|
Before Width: | Height: | Size: 996 B After Width: | Height: | Size: 706 B |
|
After Width: | Height: | Size: 600 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
|
@ -0,0 +1,15 @@
|
|||
info size=80 resizable=true colored=false
|
||||
char id=48 img=ka5cbt7d9r xoffset=0 yoffset=5 xadvance=0
|
||||
char id=49 img=ka5cbt7d9s xoffset=0 yoffset=6 xadvance=0
|
||||
char id=26376 img=ka5cbt7da1 xoffset=0 yoffset=0 xadvance=0
|
||||
char id=26085 img=ka5cbt7da2 xoffset=0 yoffset=1 xadvance=0
|
||||
char id=45 img=ka5cbt7da3 xoffset=0 yoffset=31 xadvance=0
|
||||
char id=21495 img=ka5cbt7da4 xoffset=0 yoffset=1 xadvance=0
|
||||
char id=50 img=ka5cbt7d9t xoffset=0 yoffset=6 xadvance=0
|
||||
char id=51 img=ka5cbt7d9u xoffset=0 yoffset=5 xadvance=0
|
||||
char id=52 img=ka5cbt7d9v xoffset=0 yoffset=6 xadvance=0
|
||||
char id=53 img=ka5cbt7d9w xoffset=0 yoffset=6 xadvance=0
|
||||
char id=54 img=ka5cbt7d9x xoffset=0 yoffset=6 xadvance=0
|
||||
char id=55 img=ka5cbt7d9y xoffset=0 yoffset=6 xadvance=0
|
||||
char id=56 img=ka5cbt7d9z xoffset=0 yoffset=5 xadvance=0
|
||||
char id=57 img=ka5cbt7da0 xoffset=0 yoffset=6 xadvance=0
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 978 B |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 509 B |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
|
@ -2219,7 +2219,7 @@
|
|||
<image id="jo5db7jgo" name="btn_confim.png" path="/images/" exported="true"/>
|
||||
<component id="jo5db7jgp" name="Btn_Head_Round.xml" path="/buttons/" exported="true"/>
|
||||
<component id="jo5db7jgq" name="Btn_Multiple.xml" path="/buttons/" exported="true" favorite="true"/>
|
||||
<image id="l8fnb7jgs" name="bg_tongyong.png" path="/images/" exported="true" scale="9grid" scale9grid="112,81,224,162"/>
|
||||
<image id="l8fnb7jgs" name="bg_tongyong.png" path="/images/" exported="true" favorite="true" scale="9grid" scale9grid="112,81,224,162"/>
|
||||
<image id="l8fnb7jgt" name="btn_0.png" path="/images/" exported="true"/>
|
||||
<image id="l8fnb7jgu" name="btn_1.png" path="/images/" exported="true"/>
|
||||
<image id="l8fnb7jgv" name="btn_2.png" path="/images/" exported="true"/>
|
||||
|
|
@ -2236,7 +2236,7 @@
|
|||
<image id="l8fnb7jh6" name="btn_xiangqing.png" path="/images/"/>
|
||||
<component id="l8fnb7jh7" name="Btn_Bg1WithText.xml" path="/buttons/" exported="true" favorite="true"/>
|
||||
<image id="l8fnb7jh8" name="icon_fangka.png" path="/images/" exported="true"/>
|
||||
<image id="l8fnb7jh9" name="bg_input.png" path="/images/" exported="true" scale="9grid" scale9grid="216,26,432,52"/>
|
||||
<image id="l8fnb7jh9" name="bg_input.png" path="/images/" exported="true" favorite="true" scale="9grid" scale9grid="22,26,201,52"/>
|
||||
<image id="hmu5b7jha" name="btn_withText1.png" path="/images/" scale="9grid" scale9grid="68,40,302,39"/>
|
||||
<component id="hmu5b7jhb" name="Btn_Bg2WithText1.xml" path="/buttons/" exported="true" favorite="true"/>
|
||||
<image id="hmu5b7jhc" name="bg_huabian.png" path="/images/"/>
|
||||
|
|
@ -2269,6 +2269,25 @@
|
|||
<image id="9044bt7d9k" name="btn_send_poker.png" path="/images/" exported="true"/>
|
||||
<image id="9044bt7d9l" name="btn_tip_poker.png" path="/images/" exported="true"/>
|
||||
<image id="9044bt7d9m" name="btn_jia.png" path="/images/" exported="true"/>
|
||||
<image id="ka5cbt7d9n" name="bg_input2.png" path="/images/" exported="true" favorite="true" scale="9grid" scale9grid="47,21,94,42"/>
|
||||
<image id="ka5cbt7d9o" name="bg_tongyong1.png" path="/images/" exported="true" favorite="true" scale="9grid" scale9grid="102,52,204,104"/>
|
||||
<image id="ka5cbt7d9p" name="btn_time.png" path="/images/" exported="true"/>
|
||||
<component id="ka5cbt7d9q" name="btn_time.xml" path="/buttons/" exported="true"/>
|
||||
<image id="ka5cbt7d9r" name="0 - 0.png" path="/images/font_time/image/"/>
|
||||
<image id="ka5cbt7d9s" name="1 - 1.png" path="/images/font_time/image/"/>
|
||||
<image id="ka5cbt7d9t" name="2 - 2.png" path="/images/font_time/image/"/>
|
||||
<image id="ka5cbt7d9u" name="3 - 3.png" path="/images/font_time/image/"/>
|
||||
<image id="ka5cbt7d9v" name="4 - 4.png" path="/images/font_time/image/"/>
|
||||
<image id="ka5cbt7d9w" name="5 - 5.png" path="/images/font_time/image/"/>
|
||||
<image id="ka5cbt7d9x" name="6 - 6.png" path="/images/font_time/image/"/>
|
||||
<image id="ka5cbt7d9y" name="7 - 7.png" path="/images/font_time/image/"/>
|
||||
<image id="ka5cbt7d9z" name="8 - 8.png" path="/images/font_time/image/"/>
|
||||
<image id="ka5cbt7da0" name="9 - 9.png" path="/images/font_time/image/"/>
|
||||
<image id="ka5cbt7da1" name="10 - 月.png" path="/images/font_time/image/"/>
|
||||
<image id="ka5cbt7da2" name="11 - 日.png" path="/images/font_time/image/"/>
|
||||
<image id="ka5cbt7da3" name="12 - -.png" path="/images/font_time/image/"/>
|
||||
<image id="ka5cbt7da4" name="13 - 号.png" path="/images/font_time/image/"/>
|
||||
<font id="ka5cbt7da5" name="FontTime.fnt" path="/images/font_time/" exported="true"/>
|
||||
</resources>
|
||||
<publish name="Common" path="..\wb_unity_pro\Assets\ART\base\common\ui" packageCount="2" maxAtlasSize="2048" rotation="true">
|
||||
<atlas name="默认" index="0"/>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="2532,1170" designImageAlpha="100" designImageLayer="1">
|
||||
<controller name="state" pages="0,准备状态,1,游戏状态,2,,3,回放,4,观战" selected="1"/>
|
||||
<controller name="state" pages="0,准备状态,1,游戏状态,2,,3,回放,4,观战" selected="0"/>
|
||||
<controller name="sdk" pages="0,,1," selected="0"/>
|
||||
<controller name="action" pages="2,空,0,准备,1,开始" selected="0"/>
|
||||
<controller name="time" pages="0,,1,,2,,3,,4," selected="0"/>
|
||||
|
|
@ -51,24 +51,24 @@
|
|||
<relation target="" sidePair="right-right,middle-middle"/>
|
||||
</component>
|
||||
<group id="n121_ckvb" name="playiinfo" xy="68,65" size="2295,878"/>
|
||||
<component id="n69_sdax" name="player_card_info_1" src="g6uw81" fileName="Main_New/Player_card_info_1.xml" xy="258,763" group="n122_ckvb">
|
||||
<component id="n69_sdax" name="player_card_info_1" src="g6uw81" fileName="Main_New/Player_card_info_1.xml" xy="258,637" size="2168,532" group="n122_ckvb">
|
||||
<gearDisplay controller="state" pages="1,3,4"/>
|
||||
<gearLook controller="state" pages="3" values="1,0,0,1" default="1,0,0,1"/>
|
||||
<relation target="" sidePair="width-width,center-center,bottom-bottom"/>
|
||||
</component>
|
||||
<component id="n71_sdax" name="player_card_info_2" src="g6uw8r" fileName="Main_New/Player_card_info_3.xml" xy="1686,263" size="434,157" group="n122_ckvb" scale="0.9,0.9" touchable="false">
|
||||
<component id="n71_sdax" name="player_card_info_2" src="g6uw8r" fileName="Main_New/Player_card_info_3.xml" xy="1756,263" size="434,157" group="n122_ckvb" scale="0.9,0.9" touchable="false">
|
||||
<gearDisplay controller="state" pages="1,3,4"/>
|
||||
<relation target="n18" sidePair="right-left,middle-middle"/>
|
||||
</component>
|
||||
<component id="n157_11k4t" name="player_card_info_3" src="g6uw8r" fileName="Main_New/Player_card_info_3.xml" xy="918,75" size="435,157" group="n122_ckvb" scale="0.9,0.9" touchable="false">
|
||||
<component id="n157_11k4t" name="player_card_info_3" src="g6uw8r" fileName="Main_New/Player_card_info_3.xml" xy="1054,81" size="435,157" group="n122_ckvb" scale="0.9,0.9" touchable="false">
|
||||
<gearDisplay controller="state" pages="1,3,4"/>
|
||||
<relation target="n18" sidePair="right-left,middle-middle"/>
|
||||
</component>
|
||||
<component id="n175_g6uw" name="player_card_info_4" src="g6uw8r" fileName="Main_New/Player_card_info_3.xml" xy="260,221" size="442,157" group="n122_ckvb" scale="0.9,0.9" touchable="false">
|
||||
<component id="n175_g6uw" name="player_card_info_4" src="g6uw8r" fileName="Main_New/Player_card_info_3.xml" xy="285,263" size="442,157" group="n122_ckvb" scale="0.9,0.9" touchable="false">
|
||||
<gearDisplay controller="state" pages="1,3,4"/>
|
||||
<relation target="n18" sidePair="right-left,middle-middle"/>
|
||||
</component>
|
||||
<group id="n122_ckvb" name="playCardInfo" xy="258,75" size="2168,1094"/>
|
||||
<group id="n122_ckvb" name="playCardInfo" xy="258,81" size="2168,1088"/>
|
||||
<component id="n152_n9qr" name="btn_inviteFamily" src="g6uw8y" fileName="Main_new/Main/Component/btn_normol.xml" xy="2404,264" size="129,243" visible="false">
|
||||
<gearDisplay controller="state" pages="0"/>
|
||||
<relation target="" sidePair="right-right"/>
|
||||
|
|
@ -122,10 +122,10 @@
|
|||
<image id="n134_ckvb" name="n134" src="g6uw3u" fileName="Main_New/Image/gamexzmj_68.png" xy="2052,27" size="203,62" group="n131_ckvb">
|
||||
<relation target="" sidePair="right-center%,top-top"/>
|
||||
</image>
|
||||
<text id="n137_ckvb" name="text_roomIdName" xy="1950,26" size="117,61" group="n131_ckvb" visible="false" font="FZCuYuan-M03" fontSize="46" color="#ffffff" letterSpacing="4" singleLine="true" text="房间:
">
|
||||
<text id="n137_ckvb" name="text_roomIdName" xy="1720,26" size="117,61" group="n131_ckvb" font="FZCuYuan-M03" fontSize="46" color="#ffffff" letterSpacing="4" singleLine="true" text="房间:
">
|
||||
<relation target="" sidePair="right-center%,top-top"/>
|
||||
</text>
|
||||
<text id="n151_n9qr" name="text_roomId" xy="2069,24" size="187,67" group="n131_ckvb" visible="false" font="FZCuYuan-M03" fontSize="50" color="#ece7b9" letterSpacing="3" singleLine="true" text="372507">
|
||||
<text id="n151_n9qr" name="text_roomId" xy="1839,24" size="187,67" group="n131_ckvb" font="FZCuYuan-M03" fontSize="50" color="#ece7b9" letterSpacing="3" singleLine="true" text="372507">
|
||||
<relation target="n137_ckvb" sidePair="left-right,top-top"/>
|
||||
</text>
|
||||
<component id="n138_ckvb" name="btn_rule" src="g6uw25" fileName="Main_New/Component/Btn_GamePlay.xml" xy="2276,27" size="138,67" group="n131_ckvb">
|
||||
|
|
@ -193,6 +193,20 @@
|
|||
</component>
|
||||
<group id="n172_o2zr" name="huifang" xy="0,35" size="2532,984" group="n173_o2zr" advanced="true"/>
|
||||
<group id="n173_o2zr" name="playback" xy="0,0" size="2532,1170"/>
|
||||
<image id="n177_h7iy" name="n177" src="h7iy18z" fileName="image/bg_duoduo_baseScore.png" xy="-10,10" size="480,110"/>
|
||||
<text id="n176_p7fz" name="textTitle_baseScore" xy="0,33" size="292,64" font="ui://27vd145bej1ib7jgh" fontSize="48" color="#ffec82" strokeColor="#994a11" strokeSize="3" text="当前牌局分:"/>
|
||||
<text id="n178_h7iy" name="text_baseScore" xy="269,33" size="80,64" font="ui://27vd145bej1ib7jgh" fontSize="48" color="#ffec82" strokeColor="#994a11" strokeSize="3" autoClearText="true" text="123"/>
|
||||
<list id="n179_h7iy" name="list_dipais" xy="668,472" pivot="0.5,0.5" size="1196,226" touchable="false" layout="row" colGap="-37" defaultItem="ui://kvku0fu4g6uw2f" align="center">
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
</list>
|
||||
</displayList>
|
||||
<transition name="t1">
|
||||
<item time="0" type="Alpha" target="n75_jmab" tween="true" startValue="1" endValue="1" duration="18"/>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<component size="154,654" extention="Button">
|
||||
<controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
|
||||
<displayList>
|
||||
<list id="n3_g6uw" name="list" xy="0,0" size="154,654" lineGap="-154" defaultItem="ui://kvku0fu4g6uw2g" vAlign="bottom" autoClearItems="true">
|
||||
<list id="n3_g6uw" name="list" xy="0,0" size="154,654" lineGap="-144" defaultItem="ui://kvku0fu4g6uw2g" vAlign="bottom" autoClearItems="true">
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
<item/>
|
||||
<item/>
|
||||
|
|
|
|||
|
|
@ -1,18 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="170,240" extention="Button">
|
||||
<controller name="button" pages="0,up,1,down" selected="1"/>
|
||||
<controller name="choose" pages="0,,1," selected="1"/>
|
||||
<component size="154,200" extention="Button">
|
||||
<controller name="button" pages="0,up,1,down" selected="0"/>
|
||||
<controller name="choose" pages="0,,1," selected="0"/>
|
||||
<displayList>
|
||||
<loader id="n4_ckvb" name="icon" xy="0,-74" size="170,240" group="n6_ckvb" url="ui://Main_Poker/203" align="center" vAlign="bottom" fill="scaleFree" clearOnPublish="true">
|
||||
<loader id="n4_ckvb" name="icon" xy="0,0" size="154,200" group="n6_ckvb" url="ui://Extend_Poker_DuoDuo/203" align="center" vAlign="bottom" fill="scaleFree" clearOnPublish="true">
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</loader>
|
||||
<image id="n7_diqo" name="n7" src="g6uw1g" fileName="Main_New/Component/Image/bg_mask.png" xy="-1,-80" size="175,244" group="n6_ckvb">
|
||||
<image id="n7_diqo" name="n7" src="g6uw1g" fileName="Main_New/Component/Image/bg_mask.png" xy="-1,-6" size="159,204" group="n6_ckvb">
|
||||
<gearDisplay controller="choose" pages="1"/>
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</image>
|
||||
<group id="n6_ckvb" name="body" xy="-1,-80" size="175,246" advanced="true">
|
||||
<gearXY controller="button" pages="0,1" values="-1,0|-1,-80"/>
|
||||
</group>
|
||||
<group id="n6_ckvb" name="body" xy="-1,-6" size="159,206" advanced="true"/>
|
||||
</displayList>
|
||||
<Button mode="Check"/>
|
||||
</component>
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="154,216">
|
||||
<component size="136,192">
|
||||
<displayList>
|
||||
<loader id="n0_ckvb" name="icon" xy="0,0" size="154,216" url="ui://Main_Poker/103" align="center" vAlign="middle" fill="scaleFree" clearOnPublish="true">
|
||||
<loader id="n0_ckvb" name="icon" xy="0,3" size="136,192" url="ui://Main_Poker/115" align="center" vAlign="middle" fill="scaleFree" clearOnPublish="true">
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
</loader>
|
||||
</displayList>
|
||||
|
|
|
|||
|
|
@ -12,24 +12,13 @@
|
|||
<controller name="cScore" pages="0,,1," selected="0"/>
|
||||
<controller name="baodan" pages="0,,1," selected="0"/>
|
||||
<controller name="piaoWin" pages="0,,1," selected="0"/>
|
||||
<controller name="rank" pages="0,,1,,2,,3,,4," selected="1"/>
|
||||
<displayList>
|
||||
<image id="n8" name="ready__" src="g6uw75" fileName="component/Result/yzb.png" xy="-1,-113" visible="false">
|
||||
<gearDisplay controller="read" pages="1"/>
|
||||
</image>
|
||||
<component id="n39_fove" name="n39" src="g6uw76" fileName="component/newcard/3/310.xml" xy="136,28" scale="0.4,0.4">
|
||||
<gearDisplay controller="Oener" pages="1"/>
|
||||
</component>
|
||||
<image id="n40_d2rw" name="n40" src="g6uw7b" fileName="component/head/tuoguan.png" xy="187,7">
|
||||
<gearDisplay controller="tuoguan" pages="1"/>
|
||||
</image>
|
||||
<text id="n48_nkur" name="tuoguanTips" xy="-46,-39" size="237,48" visible="false" fontSize="22" color="#ff0000" vAlign="middle" autoSize="none" text="开启托管剩余时间90S"/>
|
||||
<component id="n5" name="btn_head" src="g6uw1h" fileName="Main_New/Component/btn_head.xml" xy="0,0" size="144,144" group="n49_ckvb" aspect="true">
|
||||
<relation target="" sidePair="width-width,height-height,center-center,middle-middle"/>
|
||||
</component>
|
||||
<group id="n49_ckvb" name="head" xy="0,0" size="144,144"/>
|
||||
<text id="n45_kx91" name="text_jifen" xy="59,188" size="48,59" scale="1.3,1" font="FZCuYuan-M03" fontSize="44" color="#ffffff" align="center" vAlign="middle" letterSpacing="3" autoClearText="true" text="01">
|
||||
<relation target="n59_n9qr" sidePair="middle-middle,left-right"/>
|
||||
</text>
|
||||
<image id="n6" name="fangzhu" src="g6uwg" fileName="font/images/head/owner.png" xy="2,89" size="98,53">
|
||||
<gearDisplay controller="room_owner" pages="1"/>
|
||||
<relation target="" sidePair="width-width%,height-height%,left-left,bottom-bottom"/>
|
||||
|
|
@ -38,29 +27,9 @@
|
|||
<gearDisplay controller="bank" pages="1"/>
|
||||
<relation target="" sidePair="width-width%,height-height%,left-left,top-top"/>
|
||||
</image>
|
||||
<text id="n51_ckvb" name="name" xy="2,138" size="311,59" font="Arial" fontSize="44" color="#ffe26d" vAlign="middle" letterSpacing="6" autoSize="none" autoClearText="true" text="你好~凌">
|
||||
<text id="n51_ckvb" name="name" xy="2,138" size="295,44" font="ui://27vd145bej1ib7jgl" fontSize="32" color="#ffffdf" vAlign="middle" letterSpacing="6" autoSize="none" autoClearText="true" text="你好~凌梦常常常常">
|
||||
<relation target="" sidePair="left-left,top-bottom%"/>
|
||||
</text>
|
||||
<image id="n28_e54q" name="n28" src="g6uw7d" fileName="font/images/head/index_bg_01.png" xy="-343,-226" size="100,98" group="n33_e7qn" aspect="true" visible="false"/>
|
||||
<component id="n34_u4l2" name="zhuang" src="g6uw7e" fileName="component/head/touxiang.xml" xy="-371,-254" group="n33_e7qn" visible="false">
|
||||
<gearDisplay controller="bank" pages="1"/>
|
||||
</component>
|
||||
<graph id="n32_kba2" name="offLine__" xy="-340,-226" size="100,100" group="n33_e7qn" aspect="true" touchable="false" type="rect" lineSize="0" fillColor="#b3000000">
|
||||
<gearDisplay controller="offline" pages="1"/>
|
||||
</graph>
|
||||
<text id="n37_aawn" name="n37" xy="-323,-192" size="64,42" group="n33_e7qn" fontSize="30" color="#ffffff" text="离线">
|
||||
<gearDisplay controller="offline" pages="1"/>
|
||||
</text>
|
||||
<component id="n36_h4ge" name="n36" xy="-333,-216" size="100,100" group="n33_e7qn" touchable="false">
|
||||
<gearDisplay controller="dismiss_room" pages="1"/>
|
||||
</component>
|
||||
<group id="n33_e7qn" name="n33" xy="-371,-254" size="155,155" group="n52_ckvb"/>
|
||||
<text id="n41_i3h6" name="piao" xy="-338,-248" size="92,29" group="n52_ckvb" fontSize="20" color="#ffd100" align="center" vAlign="middle" autoSize="none" text=""/>
|
||||
<component id="n29_e54q" name="info" src="g6uw7i" fileName="component/head/HeadNameBG.xml" xy="-360,-121" group="n52_ckvb"/>
|
||||
<image id="n44_kx91" name="n44" src="g6uw7k" fileName="component/head/jfk.png" xy="-352,-71" size="132,35" group="n47_kx91"/>
|
||||
<text id="n46_kx91" name="n46" xy="-346,-69" size="48,32" group="n47_kx91" fontSize="22" color="#512e06" vAlign="middle" text="战绩"/>
|
||||
<group id="n47_kx91" name="zhanji" xy="-352,-71" size="132,35" group="n52_ckvb" advanced="true"/>
|
||||
<group id="n52_ckvb" name="old" xy="-371,-254" size="155,218" visible="false" advanced="true"/>
|
||||
<component id="n53_n9qr" name="chat" src="g6uw7l" fileName="component/head/MsgBubble2.xml" xy="55,12" size="232,80" alpha="0" touchable="false">
|
||||
<Label title="你太牛了"/>
|
||||
</component>
|
||||
|
|
@ -73,9 +42,6 @@
|
|||
<component id="n58_n9qr" name="mask_voice" src="g6uw7p" fileName="component/head/VoiceMask(1).xml" xy="136,23" size="140,74" touchable="false">
|
||||
<gearDisplay controller="mask_voice" pages="1"/>
|
||||
</component>
|
||||
<image id="n59_n9qr" name="n59" src="g6uw3t" fileName="Main_New/Image/coin.png" xy="7,198" size="48,37">
|
||||
<relation target="" sidePair="left-left,top-bottom%"/>
|
||||
</image>
|
||||
<image id="n60_n9qr" name="ready" src="g6uw7t" fileName="images/gamexzmj_9 1.png" xy="30,-80" size="63,65" scale="1.2,1.2">
|
||||
<gearDisplay controller="read" pages="1"/>
|
||||
<relation target="" sidePair="center-center,bottom-top"/>
|
||||
|
|
@ -87,15 +53,40 @@
|
|||
<image id="n63_n9qr" name="n63" src="g6uw3y" fileName="Main_New/Image/alarm1.png" xy="-45,230" pivot="0.47,0.25" size="260,243" rotation="-20">
|
||||
<gearDisplay controller="baodan" pages="1"/>
|
||||
</image>
|
||||
<text id="n64_diqo" name="text_piaoScoreAdd" xy="-37,167" pivot="0.5,0.5" size="219,67" visible="false" font="ui://27vd145bdiqo7jd9" fontSize="42" text="+1000">
|
||||
<text id="n64_diqo" name="text_piaoScoreAdd" xy="11,172" pivot="0.5,0.5" size="122,57" visible="false" font="ui://27vd145bdiqo7jd9" fontSize="42" text="+1000">
|
||||
<gearDisplay controller="piaoWin" pages="1"/>
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</text>
|
||||
<text id="n65_diqo" name="text_piaoScoreLess" xy="-37,167" pivot="0.5,0.5" size="219,67" visible="false" font="ui://27vd145bdiqocn2" fontSize="42" text="-1000">
|
||||
<text id="n65_diqo" name="text_piaoScoreLess" xy="17,172" pivot="0.5,0.5" size="111,57" visible="false" font="ui://27vd145bdiqocn2" fontSize="42" text="-1000">
|
||||
<gearDisplay controller="piaoWin" pages="0"/>
|
||||
<relation target="" sidePair="center-center"/>
|
||||
</text>
|
||||
<component id="n66_bm7d" name="comp_hudon" src="g6uw7v" fileName="Main_new/Main/Component/comp_hudon.xml" xy="-28,-15" touchable="false"/>
|
||||
<text id="n71_y444" name="piao" xy="27,114" size="92,29" fontSize="20" color="#ffd100" align="center" vAlign="middle" autoSize="none" text=""/>
|
||||
<graph id="n67_y444" name="n67" xy="-20,181" size="183,78" group="n72_y444" type="rect" lineSize="0" lineColor="#66000000" fillColor="#66000000" corner="20"/>
|
||||
<text id="n45_kx91" name="textTitle_jifen" xy="-10,192" size="57,29" group="n72_y444" font="ui://27vd145bej1ib7jgh" fontSize="20" color="#ffff6d" align="center" vAlign="middle" letterSpacing="3" text="积分:"/>
|
||||
<text id="n68_y444" name="text_jifen" xy="47,184" size="171,44" group="n72_y444" font="ui://27vd145bej1ib7jgh" fontSize="32" color="#ffff6d" vAlign="middle" letterSpacing="3" autoSize="none" autoClearText="true" text="12345678"/>
|
||||
<text id="n69_y444" name="textTitle_paijufen" xy="-10,225" size="80,29" group="n72_y444" font="ui://27vd145bej1ib7jgh" fontSize="20" color="#ffff6d" align="center" vAlign="middle" letterSpacing="3" text="牌局分:"/>
|
||||
<text id="n70_y444" name="text_paijufen" xy="69,217" size="92,44" group="n72_y444" font="ui://27vd145bej1ib7jgh" fontSize="32" color="#ffff6d" vAlign="middle" letterSpacing="3" autoSize="none" autoClearText="true" text="12345678"/>
|
||||
<group id="n72_y444" name="jifen" xy="-20,181" size="238,80" advanced="true">
|
||||
<relation target="" sidePair="top-bottom%"/>
|
||||
</group>
|
||||
<image id="n73_pd2q" name="n73" src="pd2q190" fileName="image/bg_rank1.png" xy="107,-15">
|
||||
<gearDisplay controller="rank" pages="1"/>
|
||||
<relation target="" sidePair="right-right,top-top"/>
|
||||
</image>
|
||||
<image id="n74_pd2q" name="n74" src="pd2q191" fileName="image/bg_rank2.png" xy="107,-15">
|
||||
<gearDisplay controller="rank" pages="2"/>
|
||||
<relation target="" sidePair="right-right,top-top"/>
|
||||
</image>
|
||||
<image id="n75_pd2q" name="n75" src="pd2q192" fileName="image/bg_rank3.png" xy="107,-15">
|
||||
<gearDisplay controller="rank" pages="3"/>
|
||||
<relation target="" sidePair="right-right,top-top"/>
|
||||
</image>
|
||||
<image id="n76_pd2q" name="n76" src="pd2q193" fileName="image/bg_rank4.png" xy="124,-1">
|
||||
<gearDisplay controller="rank" pages="4"/>
|
||||
<relation target="" sidePair="right-right,top-top"/>
|
||||
</image>
|
||||
</displayList>
|
||||
<transition name="t0" autoPlay="true" autoPlayRepeat="-1">
|
||||
<item time="0" type="Rotation" target="n63_n9qr" tween="true" startValue="0" endValue="-20" duration="6" ease="Linear"/>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="2168,406" opaque="false" initName="player_card_info">
|
||||
<controller name="output" pages="0,,1,,2," selected="1"/>
|
||||
<controller name="output" pages="0,,1,,2," selected="0"/>
|
||||
<controller name="out_card_option" homePageType="specific" homePage="1" pages="0,,1,,2," selected="1"/>
|
||||
<controller name="put_error" pages="0,,1," selected="0"/>
|
||||
<controller name="piao" pages="0,,1,,2,,3," selected="0"/>
|
||||
|
|
@ -48,7 +48,7 @@
|
|||
<Button icon="ui://kvku0fu4g6uw8e" selectedIcon="ui://kvku0fu4g6uw8e" controller="piao_value" page="5"/>
|
||||
</component>
|
||||
<group id="n63_i3h6" name="piao" xy="66,-185" size="1250,103"/>
|
||||
<list id="n69_ckvb" name="List_HandCard" xy="0,2" pivot="0.5,1" size="2168,406" layout="flow_hz" selectionMode="none" lineGap="-59" colGap="-95" defaultItem="ui://kvku0fu4g6uw2g" align="center" vAlign="bottom" autoClearItems="true">
|
||||
<list id="n69_ckvb" name="List_HandCard" xy="0,0" pivot="0.5,1" size="2168,406" layout="flow_hz" selectionMode="none" lineGap="-32" colGap="-20" defaultItem="ui://kvku0fu4g6uwp0" align="center" vAlign="bottom" autoClearItems="true">
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
<item/>
|
||||
<item/>
|
||||
|
|
@ -65,47 +65,8 @@
|
|||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
</list>
|
||||
<list id="n70_ckvb" name="List_Out" xy="797,-236" pivot="0.5,0.5" size="454,210" layout="row" selectionMode="none" colGap="-105" defaultItem="ui://kvku0fu4g6uw2f" align="center" vAlign="middle">
|
||||
<list id="n70_ckvb" name="List_Out" xy="797,-238" pivot="0.5,0.5" size="454,210" layout="row" selectionMode="none" colGap="-91" defaultItem="ui://kvku0fu4g6uw2f" align="center" vAlign="middle">
|
||||
<gearDisplay controller="output" pages="1"/>
|
||||
<relation target="n69_ckvb" sidePair="bottom-top"/>
|
||||
<item/>
|
||||
|
|
@ -116,33 +77,25 @@
|
|||
<item/>
|
||||
<item/>
|
||||
</list>
|
||||
<component id="n74_ckvb" name="Btn_SendCard" src="g6uw1k" fileName="Main_New/Component/Btn_SendCard.xml" xy="1196,-1058" size="384,125" group="n73_ckvb" visible="false">
|
||||
<Button sound=""/>
|
||||
</component>
|
||||
<component id="n75_ckvb" name="Btn_Tip" src="g6uw1n" fileName="Main_New/Component/Btn_Tip.xml" xy="766,-1062" size="384,125" group="n73_ckvb" visible="false">
|
||||
<Button sound=""/>
|
||||
</component>
|
||||
<group id="n73_ckvb" name="btn" xy="766,-1062" size="814,129" advanced="true">
|
||||
<gearDisplay controller="out_card_option" pages="1,2"/>
|
||||
</group>
|
||||
<text id="n56_dg1i" name="put_error" xy="717,-276" size="781,83" fontSize="50" color="#ffffff" align="center" vAlign="middle" autoSize="none" bold="true" strokeColor="#000000" shadowColor="#000000" shadowOffset="1,1" text="出牌不符合规定牌型">
|
||||
<gearDisplay controller="put_error" pages="1"/>
|
||||
</text>
|
||||
<component id="n77_n9qr" name="Comp_Clock" src="g6uw1i" fileName="Main_New/Component/Comp_Clock.xml" xy="536,-205" size="174,143">
|
||||
<component id="n77_n9qr" name="Comp_Clock" src="g6uw1i" fileName="Main_New/Component/Comp_Clock.xml" xy="300,-218" size="174,143">
|
||||
<gearDisplay controller="time_clock" pages="1"/>
|
||||
<relation target="n80_g6m8" sidePair="middle-middle,left-right"/>
|
||||
</component>
|
||||
<component id="n86_9044" name="Btn_SendCard_back" src="ej1ib7jgf" fileName="buttons/Btn_Normol.xml" pkg="27vd145b" xy="919,-245" size="330,135" group="n80_g6m8">
|
||||
<component id="n86_9044" name="Btn_SendCard" src="ej1ib7jgf" fileName="buttons/Btn_Normol.xml" pkg="27vd145b" xy="1311,-217" size="330,135" group="n80_g6m8">
|
||||
<Button icon="ui://27vd145b9044bt7d9k"/>
|
||||
</component>
|
||||
<component id="n87_9044" name="btn_not_put" src="ej1ib7jgf" fileName="buttons/Btn_Normol.xml" pkg="27vd145b" xy="1311,-245" size="330,135" group="n80_g6m8">
|
||||
<component id="n87_9044" name="btn_not_put" src="ej1ib7jgf" fileName="buttons/Btn_Normol.xml" pkg="27vd145b" xy="919,-217" size="330,135" group="n80_g6m8">
|
||||
<gearDisplay controller="out_card_option" pages="1"/>
|
||||
<Button icon="ui://27vd145b9044bt7d9j"/>
|
||||
</component>
|
||||
<component id="n88_9044" name="Btn_Tip_back" src="ej1ib7jgf" fileName="buttons/Btn_Normol.xml" pkg="27vd145b" xy="527,-245" size="330,135" group="n80_g6m8">
|
||||
<component id="n88_9044" name="Btn_Tip" src="ej1ib7jgf" fileName="buttons/Btn_Normol.xml" pkg="27vd145b" xy="527,-217" size="330,135" group="n80_g6m8">
|
||||
<Button icon="ui://27vd145b9044bt7d9l"/>
|
||||
</component>
|
||||
<group id="n80_g6m8" name="btn_back" xy="527,-245" size="1114,135" advanced="true">
|
||||
<gearDisplay controller="out_card_option" pages="1"/>
|
||||
<relation target="n69_ckvb" sidePair="bottom-top"/>
|
||||
<group id="n80_g6m8" name="btn_back" xy="527,-217" size="1114,135" advanced="true">
|
||||
<gearDisplay controller="out_card_option" pages="1,2"/>
|
||||
</group>
|
||||
</displayList>
|
||||
<transition name="score">
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="1760,157" opaque="false" initName="player_card_info">
|
||||
<controller name="output" homePageType="specific" homePage="1" pages="0,,1,,2," selected="1"/>
|
||||
<controller name="output" homePageType="specific" homePage="1" pages="0,,1,,2," selected="0"/>
|
||||
<controller name="one_card" pages="0,,1," selected="0"/>
|
||||
<controller name="resultOut" homePageType="specific" homePage="0" pages="0,,1," selected="0"/>
|
||||
<controller name="time_clock" pages="0,,1," selected="0"/>
|
||||
<controller name="time_clock" homePageType="specific" homePage="1" pages="0,,1," selected="1"/>
|
||||
<controller name="out_card_option2" pages="0,,1," selected="0"/>
|
||||
<displayList>
|
||||
<list id="n53_q9cc" name="hand_card_list" xy="-697,-634" size="445,78" visible="false" layout="row" selectionMode="none" overflow="scroll" lineGap="-15" colGap="-25" defaultItem="ui://kvku0fu4g6uw8l" align="right"/>
|
||||
<component id="n59_8yp0" name="out_card_com" src="g6uw82" fileName="component/poker/hand_poker_con.xml" xy="-640,-632" size="390,179" visible="false"/>
|
||||
<image id="n47_g618" name="n47" src="g6uw3s" fileName="Main_New/Image/要不起.png" xy="15,35" size="213,62">
|
||||
<image id="n47_g618" name="n47" src="g6uw3s" fileName="Main_New/Image/要不起.png" xy="215,35" size="213,62">
|
||||
<gearDisplay controller="output" pages="2"/>
|
||||
</image>
|
||||
<component id="n54_jlqq" name="one_card_eff" src="g6uw8m" fileName="component/effect/one_card_eff/one_card_eff.xml" xy="192,-106">
|
||||
|
|
@ -18,9 +18,14 @@
|
|||
<text id="n56_8yp0" name="CardNumber" xy="-249,-482" size="114,37" visible="false" fontSize="26" color="#ffffff" align="center" vAlign="middle" autoSize="none" shadowColor="#000000" shadowOffset="1,1" text=""/>
|
||||
<text id="n58_8yp0" name="area_mask" xy="-898,-1013" size="358,566" visible="false" fontSize="30" autoSize="none" text="{
"outcard_list":{
 "parent":"out_card_com",
 "obj":"poker7",
 "maxcount_x":8,
 "start_x":400,
 "start_y":0
 }
}"/>
|
||||
<component id="n60_agiz" name="mask_liangpai" src="g6uw88" fileName="component/Component1.xml" xy="-640,-632" size="5,5" visible="false"/>
|
||||
<list id="n61_ckvb" name="List_Out" xy="0,0" size="439,210" layout="row" selectionMode="none" scroll="horizontal" colGap="-106" defaultItem="ui://kvku0fu4g6uw2f" vAlign="middle">
|
||||
<list id="n61_ckvb" name="List_Out" xy="0,0" size="432,210" layout="flow_hz" selectionMode="none" scroll="horizontal" lineGap="-81" colGap="-94" defaultItem="ui://kvku0fu4g6uw2f" vAlign="middle">
|
||||
<gearDisplay controller="output" pages="1"/>
|
||||
<relation target="" sidePair="width-width,height-height"/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
<item/>
|
||||
|
|
@ -49,7 +54,7 @@
|
|||
<item/>
|
||||
<item/>
|
||||
</list>
|
||||
<component id="n64_n9qr" name="Comp_Clock" src="g6uw1i" fileName="Main_New/Component/Comp_Clock.xml" xy="-138,-6" size="174,143">
|
||||
<component id="n64_n9qr" name="Comp_Clock" src="g6uw1i" fileName="Main_New/Component/Comp_Clock.xml" xy="249,0" size="174,143">
|
||||
<gearDisplay controller="time_clock" pages="1"/>
|
||||
</component>
|
||||
<list id="n65_if10" name="list_backHand" xy="-80,-56" size="1080,195" scale="0.657,1" rotation="90" touchable="false" layout="row" overflow="scroll" colGap="-120" defaultItem="ui://kvku0fu4g6uw2f" align="center" autoClearItems="true">
|
||||
|
|
@ -78,9 +83,9 @@
|
|||
<group id="n68_g6m8" name="btn_back" xy="56,74" size="200,322" advanced="true">
|
||||
<gearDisplay controller="out_card_option2" pages="1"/>
|
||||
</group>
|
||||
<text id="n69_t63r" name="text_paiNum" xy="459,62" size="108,80" font="ui://27vd145bej1ib7jgl" fontSize="61" text="X77">
|
||||
<text id="n69_t63r" name="text_paiNum" xy="314,-100" size="114,84" font="ui://27vd145bej1ib7jgl" fontSize="64" color="#ffffff" strokeColor="#711d12" strokeSize="2" text="X77">
|
||||
<gearDisplay controller="output" pages="1"/>
|
||||
<relation target="n61_ckvb" sidePair="left-right"/>
|
||||
<relation target="n61_ckvb" sidePair="right-right"/>
|
||||
</text>
|
||||
</displayList>
|
||||
<transition name="score">
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="2532,1170">
|
||||
<controller name="over" pages="0,,1,,9," selected="1"/>
|
||||
<controller name="over" pages="0,,1,,9," selected="0"/>
|
||||
<controller name="win" pages="0,,1," selected="0"/>
|
||||
<controller name="isgroup" pages="0,,1," selected="0"/>
|
||||
<displayList>
|
||||
|
|
@ -11,6 +11,10 @@
|
|||
<image id="n58_b9zt" name="n58" src="b9zt17w" fileName="Clearing/Image/icon_poker_lab_win.png" xy="825,0" group="n4_ckvb">
|
||||
<gearDisplay controller="win" pages="1"/>
|
||||
</image>
|
||||
<image id="n72_pd2q" name="n72" src="pd2q190" fileName="image/bg_rank1.png" xy="652,484" group="n4_ckvb"/>
|
||||
<image id="n73_pd2q" name="n73" src="pd2q191" fileName="image/bg_rank2.png" xy="652,587" group="n4_ckvb"/>
|
||||
<image id="n74_pd2q" name="n74" src="pd2q192" fileName="image/bg_rank3.png" xy="652,694" group="n4_ckvb"/>
|
||||
<image id="n75_pd2q" name="n75" src="pd2q193" fileName="image/bg_rank4.png" xy="669,814" group="n4_ckvb"/>
|
||||
<image id="n59_b9zt" name="n59" src="b9zt17v" fileName="Clearing/Image/icon_poker_lab_lose.png" xy="825,0" group="n4_ckvb">
|
||||
<gearDisplay controller="win" pages="0"/>
|
||||
</image>
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 407 B |
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="154,200">
|
||||
<displayList>
|
||||
<loader id="n9_t63r" name="n9" xy="-7,0" size="161,207" url="ui://Extend_Poker_DuoDuo/card0_103" fill="scaleFree"/>
|
||||
<image id="n6_iqk2" name="n6" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="64,11" size="26,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n7_iqk2" name="n7" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="90,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n8_iqk2" name="n8" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="115,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="154,200">
|
||||
<displayList>
|
||||
<loader id="n9_t63r" name="n9" xy="-7,0" size="161,207" url="ui://Extend_Poker_DuoDuo/card0_104" fill="scaleFree"/>
|
||||
<image id="n6_iqk2" name="n6" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="64,11" size="26,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n7_iqk2" name="n7" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="90,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n8_iqk2" name="n8" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="115,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="154,200">
|
||||
<displayList>
|
||||
<loader id="n9_t63r" name="n9" xy="-7,0" size="161,207" url="ui://Extend_Poker_DuoDuo/card0_105" fill="scaleFree"/>
|
||||
<image id="n6_iqk2" name="n6" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="64,11" size="26,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n7_iqk2" name="n7" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="90,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n8_iqk2" name="n8" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="115,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="154,200">
|
||||
<displayList>
|
||||
<loader id="n9_t63r" name="n9" xy="-7,0" size="161,207" url="ui://Extend_Poker_DuoDuo/card0_106" fill="scaleFree"/>
|
||||
<image id="n6_iqk2" name="n6" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="64,11" size="26,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n7_iqk2" name="n7" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="90,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n8_iqk2" name="n8" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="115,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="154,200">
|
||||
<displayList>
|
||||
<loader id="n9_t63r" name="n9" xy="-7,0" size="161,207" url="ui://Extend_Poker_DuoDuo/card0_107" fill="scaleFree"/>
|
||||
<image id="n6_iqk2" name="n6" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="64,11" size="26,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n7_iqk2" name="n7" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="90,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n8_iqk2" name="n8" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="115,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="154,200">
|
||||
<displayList>
|
||||
<loader id="n9_t63r" name="n9" xy="-7,0" size="161,207" url="ui://Extend_Poker_DuoDuo/card0_108" fill="scaleFree"/>
|
||||
<image id="n6_iqk2" name="n6" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="64,11" size="26,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n7_iqk2" name="n7" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="90,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n8_iqk2" name="n8" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="115,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="154,200">
|
||||
<displayList>
|
||||
<loader id="n9_t63r" name="n9" xy="-7,0" size="161,207" url="ui://Extend_Poker_DuoDuo/card0_109" fill="scaleFree"/>
|
||||
<image id="n6_iqk2" name="n6" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="64,11" size="26,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n7_iqk2" name="n7" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="90,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n8_iqk2" name="n8" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="115,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="154,200">
|
||||
<displayList>
|
||||
<loader id="n9_t63r" name="n9" xy="-7,0" size="161,207" url="ui://Extend_Poker_DuoDuo/card0_110" fill="scaleFree"/>
|
||||
<image id="n6_iqk2" name="n6" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="64,11" size="26,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n7_iqk2" name="n7" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="90,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n8_iqk2" name="n8" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="115,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="154,200">
|
||||
<displayList>
|
||||
<loader id="n9_t63r" name="n9" xy="-7,0" size="161,207" url="ui://Extend_Poker_DuoDuo/card0_111" fill="scaleFree"/>
|
||||
<image id="n6_iqk2" name="n6" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="64,11" size="26,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n7_iqk2" name="n7" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="90,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n8_iqk2" name="n8" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="115,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="154,200">
|
||||
<displayList>
|
||||
<loader id="n9_t63r" name="n9" xy="-7,0" size="161,207" url="ui://Extend_Poker_DuoDuo/card0_112" fill="scaleFree"/>
|
||||
<image id="n6_iqk2" name="n6" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="64,11" size="26,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n7_iqk2" name="n7" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="90,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n8_iqk2" name="n8" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="115,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="154,200">
|
||||
<displayList>
|
||||
<loader id="n9_t63r" name="n9" xy="-7,0" size="161,207" url="ui://Extend_Poker_DuoDuo/card0_113" fill="scaleFree"/>
|
||||
<image id="n6_iqk2" name="n6" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="64,11" size="26,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n7_iqk2" name="n7" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="90,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n8_iqk2" name="n8" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="115,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="154,200">
|
||||
<displayList>
|
||||
<loader id="n9_t63r" name="n9" xy="-7,0" size="161,207" url="ui://Extend_Poker_DuoDuo/card0_114" fill="scaleFree"/>
|
||||
<image id="n6_iqk2" name="n6" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="64,11" size="26,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n7_iqk2" name="n7" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="90,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n8_iqk2" name="n8" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="115,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
</displayList>
|
||||
</component>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component size="154,200">
|
||||
<displayList>
|
||||
<loader id="n9_t63r" name="n9" xy="-7,0" size="161,207" url="ui://Extend_Poker_DuoDuo/card0_115" fill="scaleFree"/>
|
||||
<image id="n6_iqk2" name="n6" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="64,11" size="26,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n7_iqk2" name="n7" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="90,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
<image id="n8_iqk2" name="n8" src="g6uw2e" fileName="newcard/素材/fangpian.png" xy="115,11" size="25,24" aspect="true">
|
||||
<relation target="" sidePair="left-left%,top-top%"/>
|
||||
</image>
|
||||
</displayList>
|
||||
</component>
|
||||
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.7 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |