336 lines
10 KiB
Lua
336 lines
10 KiB
Lua
|
|
---
|
|||
|
|
--- Created by 谌建军.
|
|||
|
|
--- DateTime: 2017/12/19 11:05
|
|||
|
|
---
|
|||
|
|
require("Game.View.ResultView")
|
|||
|
|
|
|||
|
|
local RunFast_ResultView = {}
|
|||
|
|
|
|||
|
|
local M = RunFast_ResultView
|
|||
|
|
|
|||
|
|
function RunFast_ResultView.new(blur_view, data, roomid, over, win_seat, dissolve, remaincards)
|
|||
|
|
setmetatable(M, {__index = ResultView})
|
|||
|
|
local self = setmetatable({}, {__index = M})
|
|||
|
|
|
|||
|
|
self.class = "RunFast_ResultView"
|
|||
|
|
self._currenIndex = 0
|
|||
|
|
self._close_zone = false
|
|||
|
|
--self._blur_view = blur_view
|
|||
|
|
self._gamectr = ControllerManager.GetController(GameController)
|
|||
|
|
self:init("ui://Extend_Poker_RunFastNew/clearing", data, roomid, over, win_seat, dissolve, remaincards)
|
|||
|
|
|
|||
|
|
return self
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
function M:init(url, data, roomid, over, win_seat, dissolve, remaincards)
|
|||
|
|
|
|||
|
|
ResultView.init(self, url,true)
|
|||
|
|
self.xiPaiCtr=self._view:GetController("xipai")
|
|||
|
|
|
|||
|
|
|
|||
|
|
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
|
|||
|
|
|
|||
|
|
|
|||
|
|
--self:InitData(data,roomid)
|
|||
|
|
--self:InitData(data,roomid)
|
|||
|
|
printlog("aaaaaaaaaaaaaaaa1111111111111111111111111222222222222222 ",dissolve)
|
|||
|
|
pt(data)
|
|||
|
|
if dissolve == 1 then
|
|||
|
|
-- body
|
|||
|
|
self.xiPaiCtr.selectedIndex=0
|
|||
|
|
self:InitData(data, win_seat, roomid)
|
|||
|
|
else
|
|||
|
|
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 DataManager.CurrenRoom.xipaiScore then
|
|||
|
|
--xipai.text="洗牌 积分x"..DataManager.CurrenRoom.xipaiScore
|
|||
|
|
else
|
|||
|
|
--xipai.text="洗牌 积分x0"
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
self:InitData_One(data, win_seat, over, roomid, remaincards)
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
function M:ChangeCodeByTo( card )
|
|||
|
|
local flower = card % 10
|
|||
|
|
local number = math.floor(card / 10)
|
|||
|
|
if number == 15 then
|
|||
|
|
number = 2
|
|||
|
|
end
|
|||
|
|
return flower * 100 + number
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
-- 小结算
|
|||
|
|
function M:InitData_One(data, winseat, over, roomid, remaincards)
|
|||
|
|
|
|||
|
|
local room = DataManager.CurrenRoom
|
|||
|
|
self._view:GetController("sdk").selectedIndex = 1
|
|||
|
|
local _gamectr = ControllerManager.GetController(GameController)
|
|||
|
|
local list_view = self._view:GetChild("player_list_1")
|
|||
|
|
list_view:RemoveChildrenToPool()
|
|||
|
|
|
|||
|
|
local leftCardAll = self._view:GetChild("leftCardHand")
|
|||
|
|
leftCardAll:RemoveChildrenToPool()
|
|||
|
|
|
|||
|
|
if remaincards and #remaincards>0 then
|
|||
|
|
table.sort(remaincards,function (a,b)
|
|||
|
|
return a % 100 < b % 100
|
|||
|
|
|
|||
|
|
end)
|
|||
|
|
for i=1,#remaincards do
|
|||
|
|
local card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_RunFastNew/"..remaincards[i])
|
|||
|
|
leftCardAll:AddChild(card_code_obj)
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
|
|||
|
|
for i = 1, #data do
|
|||
|
|
local player = data[i]
|
|||
|
|
local item = list_view:AddItemFromPool("ui://Extend_Poker_RunFastNew/clearing_item_1")
|
|||
|
|
|
|||
|
|
|
|||
|
|
local leftCard = item:GetChild("leftCard")
|
|||
|
|
leftCard:RemoveChildrenToPool()
|
|||
|
|
-- table.sort(data[i].handCards,function (a,b)
|
|||
|
|
|
|||
|
|
-- return a % 100 < b % 100
|
|||
|
|
-- end)
|
|||
|
|
|
|||
|
|
for j=1,#data[i].handCards do
|
|||
|
|
local code = data[i].handCards[j]
|
|||
|
|
local card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_RunFastNew/"..code)
|
|||
|
|
leftCard:AddChild(card_code_obj)
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
-- table.sort(data[i].outCards,function (a,b)
|
|||
|
|
-- return a % 100 < b % 100
|
|||
|
|
-- end)
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
for k=1,#data[i].outCards do
|
|||
|
|
local code = data[i].outCards[k]
|
|||
|
|
local card_code_obj = UIPackage.CreateObjectFromURL("ui://Extend_Poker_RunFastNew/"..code)
|
|||
|
|
leftCard:AddChild(card_code_obj)
|
|||
|
|
card_code_obj:GetChildAt(0):GetChildAt(0).color = Color(0.7,0.7,0.7)
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
local boom = item:GetChild("boom")
|
|||
|
|
boom.text = player.thisboomnum
|
|||
|
|
|
|||
|
|
local piao = item:GetChild("piao")
|
|||
|
|
if player.piao <= 0 then
|
|||
|
|
piao.text = "0"
|
|||
|
|
else
|
|||
|
|
piao.text = "" .. player.piao
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
local nichen = item:GetChild("nichen")
|
|||
|
|
|
|||
|
|
if player.nick ~= nil then
|
|||
|
|
-- body
|
|||
|
|
nichen.text = tostring(player.nick)
|
|||
|
|
else
|
|||
|
|
|
|||
|
|
nichen.text = tostring(player.self_user.nick_name)
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
|
|||
|
|
local shengpai = item:GetChild("shengpai")
|
|||
|
|
if player.cards ~= nil then
|
|||
|
|
-- body
|
|||
|
|
shengpai.text = tostring(#player.cards)
|
|||
|
|
else
|
|||
|
|
shengpai.text = tostring(#player.hand_list)
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
local rt = 1
|
|||
|
|
if room.hpOnOff == 1 then
|
|||
|
|
rt = room.score_times
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
local hp_nonnegative = room:checkHpNonnegative()
|
|||
|
|
local roundScore = player.winscore
|
|||
|
|
if hp_nonnegative then
|
|||
|
|
|
|||
|
|
local jifen = ""
|
|||
|
|
if roundScore > 0 then
|
|||
|
|
jifen = "+" .. roundScore
|
|||
|
|
else
|
|||
|
|
jifen = "" .. roundScore
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
local tili = ""
|
|||
|
|
local limit = ""
|
|||
|
|
if player.hp_info.round_actual_hp > 0 then
|
|||
|
|
tili = "(+" .. d2ad(player.hp_info.round_actual_hp) .. ")"
|
|||
|
|
if player.hp_info.upper_limit then
|
|||
|
|
limit = "达到上限"
|
|||
|
|
end
|
|||
|
|
else
|
|||
|
|
tili = "(" .. d2ad(player.hp_info.round_actual_hp) .. ")"
|
|||
|
|
if player.hp_info.upper_limit then
|
|||
|
|
limit = "达到下限"
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
item:GetChild("score").text = jifen .. tili .. limit
|
|||
|
|
else
|
|||
|
|
|
|||
|
|
local jifen = ""
|
|||
|
|
if roundScore >= 0 then
|
|||
|
|
jifen = "+" .. roundScore
|
|||
|
|
else
|
|||
|
|
jifen = "" .. roundScore
|
|||
|
|
end
|
|||
|
|
jifen = jifen .. " "
|
|||
|
|
|
|||
|
|
local tili = ""
|
|||
|
|
if room.hpOnOff > 0 then
|
|||
|
|
|
|||
|
|
local need = roundScore * rt
|
|||
|
|
tili = "("
|
|||
|
|
if roundScore > 0 then
|
|||
|
|
tili = tili .. "+" .. tostring(need)
|
|||
|
|
else
|
|||
|
|
tili = tili .. tostring(need)
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
tili = tili .. ")"
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
|
|||
|
|
item:GetChild("score").text = jifen .. tili
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
if roundScore >= 0 then
|
|||
|
|
|
|||
|
|
if room.self_player.seat == player.seat then
|
|||
|
|
-- body
|
|||
|
|
self._view:GetController("result").selectedIndex = 1
|
|||
|
|
end
|
|||
|
|
else
|
|||
|
|
|
|||
|
|
if room.self_player.seat == player.seat then
|
|||
|
|
self._view:GetController("result").selectedIndex = 0
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
|
|||
|
|
if over == 0 then
|
|||
|
|
-- body
|
|||
|
|
local btn_confirm = self._view:GetChild("btn_confirm")
|
|||
|
|
btn_confirm.onClick:Set(function()
|
|||
|
|
self:Destroy()
|
|||
|
|
local _gamectr = ControllerManager.GetController(GameController)
|
|||
|
|
_gamectr:ConformToNextGame()
|
|||
|
|
|
|||
|
|
end)
|
|||
|
|
else
|
|||
|
|
self.xiPaiCtr.selectedIndex=0
|
|||
|
|
local btn_confirm = self._view:GetChild("btn_confirm")
|
|||
|
|
btn_confirm.onClick:Set(function()
|
|||
|
|
--self:Destroy()
|
|||
|
|
self:InitData(data, winseat, roomid)
|
|||
|
|
-- ViewManager.ChangeView(ViewManager.View_Lobby)
|
|||
|
|
end)
|
|||
|
|
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
-- 大结算
|
|||
|
|
function M:InitData(data, winseat, roomid)
|
|||
|
|
self.xiPaiCtr.selectedIndex=0
|
|||
|
|
self._view:GetController("sdk").selectedIndex = 0
|
|||
|
|
|
|||
|
|
local room = DataManager.CurrenRoom
|
|||
|
|
|
|||
|
|
local rt = 1
|
|||
|
|
if room.hpOnOff == 1 and room.score_times ~= 1 then
|
|||
|
|
rt = room.score_times
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
-- 赋值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].score = data[i].score
|
|||
|
|
player_list[i].hp_info = data[i].hp_info
|
|||
|
|
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].seat = data[i].seat
|
|||
|
|
player_list[i].head_url = data[i].self_user.head_url
|
|||
|
|
|
|||
|
|
if data[i].entrust ~= nil then
|
|||
|
|
player_list[i].entrust = data[i].entrust > 0
|
|||
|
|
else
|
|||
|
|
player_list[i].entrust = false
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
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.winnum)
|
|||
|
|
|
|||
|
|
player_list[i].param[2] = {}
|
|||
|
|
player_list[i].param[2].key = "打出炸弹数:"
|
|||
|
|
player_list[i].param[2].value = tostring(data[i].settle_log.boomnum)
|
|||
|
|
|
|||
|
|
player_list[i].param[3] = {}
|
|||
|
|
player_list[i].param[3].key = "春天次数:"
|
|||
|
|
player_list[i].param[3].value = tostring(data[i].settle_log.springnum)
|
|||
|
|
|
|||
|
|
player_list[i].param[4] = {}
|
|||
|
|
player_list[i].param[4].key = "当局最高分:"
|
|||
|
|
player_list[i].param[4].value = tostring(data[i].settle_log.maxscore * rt)
|
|||
|
|
|
|||
|
|
if data[i].daniao > 0 then
|
|||
|
|
player_list[i].flag = {"打鸟"}
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
self:GenerateRoomResultInfo(room.room_config.Times, room.room_config:GetGameName(), room.room_id, room.create_time, player_list)
|
|||
|
|
self:InitBigResult(room)
|
|||
|
|
local big_result = self._view:GetChild("big_result")
|
|||
|
|
local lst_p = big_result:GetChild("player_list")
|
|||
|
|
-- local list_param = com_p:GetChild("list_param")
|
|||
|
|
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
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
return M
|