hengyang_client/lua_probject/base_project/Game/View/Family/FamilyChatRoom.lua

194 lines
5.3 KiB
Lua

--region LOCAL
local function SetBigWiller(totalScore)
local s = -999
local winer = 0
for _, player in pairs(totalScore) do
if player.score > s then
s = player.score
winer = _
end
end
totalScore[winer].winer = true
end
local function list_players_Renderer(index, obj, totalScore, self)
local tex_name = obj:GetChild("tex_name")
local loader_icon = obj:GetChild("loader_icon")
local tex_id = obj:GetChild("tex_id")
local tex_score = obj:GetChild("tex_score")
local player = totalScore[index + 1]
tex_name.text = player.nick
tex_id.text = player.accId
tex_score.text = player.score
ImageLoad.Load(player.portrait, loader_icon)
if player.winer then
obj:GetController("cWiner").selectedIndex = 1
else
obj:GetController("cWiner").selectedIndex = 0
end
end
local function ChatItemRenderer(index, obj, self)
--local data = self.ChatRoomData.records[index + 1]
local data = self.group.records[index + 1]
local totalScore = json.decode(data.totalScore)
local hpData = json.decode(data.hpData)
SetBigWiller(totalScore)
local list_players = obj:GetChild("list_players")
local tex_time = obj:GetChild("tex_time")
local tex_name = obj:GetChild("tex_name")
local tex_roomIdRound = obj:GetChild("tex_roomIdRound")
tex_time.text = os.date("游戏结算:%m月%d号 %X", data.create_time) --data.create_time
tex_name.text = data.game_info.name
local roundTex = data.round .. "/" .. hpData.maxRound
tex_roomIdRound.text = data.room_id .. "\n" .. roundTex
list_players.itemRenderer = function(i, o)
list_players_Renderer(i, o, totalScore, self)
end
list_players.numItems = #totalScore
end
--[[
local function GetIsOpenChatRoom(groupId, self)
local fgCtr = ControllerManager.GetController(NewGroupController)
fgCtr:GetIsOpenChatRoom(groupId, function(res)
print("收到是否打开聊天室协议")
pt(res)
end)
end
]]
--endregion
local FamilyChatRoom = {}
--[[
function FamilyChatRoom.New()
--转移进family界面
--setmetatable(FamilyChatRoom, { __index = BaseWindow })
--local inst = setmetatable({}, { __index = FamilyChatRoom})
inst:Init(com)
return inst
end
]]
function FamilyChatRoom:Init(com, root)
--转移进family界面
--self._full = true
--self._full_offset = false
--self._animation = false
--BaseWindow.init(self, "ui://Family/com_chatRoom")
self.rendererData = {}
self.root = root
self._view = com
self.list_chat = self._view:GetChild("list_chat")
self.btn_quit = self._view:GetChild("btn_quit")
self.list_chat:SetVirtual()
self.list_chat.itemRenderer = function(index, obj)
ChatItemRenderer(index, obj, self)
end
self.btn_quit.onClick:Set(function()
self:Close()
end)
return self
end
function FamilyChatRoom:Close()
local cChatRoom = self.root._view:GetController("cIsChatRoom")
cChatRoom.selectedIndex = 0
self.group.messageCount = 0
self.root:ReflashChatRoomRedPoint()
end
function FamilyChatRoom:Refalsh()
--self.list_chat.numItems = #self.ChatRoomData.records or 0
self.list_chat.numItems = #self.group.records or 0
end
-- 新战绩推到时刷新一条
function FamilyChatRoom:OnNewChatRefalsh(arg)
self.list_chat.numItems = #self.group.records or 0
--[[
local groupId = arg.gid
local maxRound = arg.datas.maxRound
local round = arg.datas.round
local playerlist = arg.datas.datas
local time = arg.datas.time
local roomId = arg.datas.roomid
local pid = arg.datas.pid
local group = DataManager.groups.groupMap[groupId]
local play = group:getPlay(pid)
local gameName = play.game_name
local obj = self.list_chat:AddItemFromPool()
local list_players = obj:GetChild("list_players")
local tex_time = obj:GetChild("tex_time")
local tex_name = obj:GetChild("tex_name")
local tex_roomIdRound = obj:GetChild("tex_roomIdRound")
tex_time.text = os.date("游戏结算:%m月%d号 %X", time) --data.create_time
tex_name.text = gameName
local roundTex = round .. "/" .. maxRound
tex_roomIdRound.text = roomId .. "\n" .. roundTex
SetBigWiller(playerlist)
for _, player in pairs(playerlist) do
local pObj = list_players:AddItemFromPool()
local tex_name = pObj:GetChild("tex_name")
local loader_icon = pObj:GetChild("loader_icon")
local tex_id = pObj:GetChild("tex_id")
local tex_score = pObj:GetChild("tex_score")
tex_name.text = player.nick
tex_id.text = player.accId
tex_score.text = player.score
ImageLoad.Load(player.portrait, loader_icon)
if player.winer then
pObj:GetController("cWiner").selectedIndex = 1
else
pObj:GetController("cWiner").selectedIndex = 0
end
end
]]
end
function FamilyChatRoom:Show()
local mgr_ctr = ControllerManager.GetController(GroupMgrController)
local groupId = self.root._group.id
self.group = DataManager.groups:get(groupId)
local getData = self.group.records == nil
mgr_ctr:FG_ENTER_CHATROOM(self.root._group.id, getData, function(res)
end)
local cChatRoom = self.root._view:GetController("cIsChatRoom")
cChatRoom.selectedIndex = 1
end
return FamilyChatRoom