146 lines
5.2 KiB
Plaintext
146 lines
5.2 KiB
Plaintext
autoImport("TeamPwsReportPanel")
|
|
TeamPwsFightResultPopUp = class("TeamPwsFightResultPopUp", BaseView)
|
|
|
|
TeamPwsFightResultPopUp.ViewType = UIViewType.NormalLayer
|
|
|
|
TeamPwsFightResultPopUp.TexMvpName = "pvp_bg_mvp"
|
|
|
|
function TeamPwsFightResultPopUp:Init()
|
|
self:FindObjs()
|
|
self:InitReportPanel()
|
|
self:AddButtonEvts()
|
|
self:AddViewEvts()
|
|
end
|
|
|
|
function TeamPwsFightResultPopUp:FindObjs()
|
|
self.objRoot = self:FindGO("Root")
|
|
self.objModelInfos = self:FindGO("ModelInfos")
|
|
self.labMvpName = self:FindComponent("labMvpName", UILabel)
|
|
self.objModelParent = self:FindGO("ModelRoot")
|
|
end
|
|
|
|
function TeamPwsFightResultPopUp:InitReportPanel()
|
|
self.reportPanel = TeamPwsReportPanel.new(self:FindGO("ReportRoot"))
|
|
end
|
|
|
|
function TeamPwsFightResultPopUp:AddButtonEvts()
|
|
self:AddClickEvent(self:FindGO("BtnClose"), function() self:ClickButtonLeave() end)
|
|
self:AddClickEvent(self:FindGO("BtnLeave"), function() self:ClickButtonLeave() end)
|
|
end
|
|
|
|
function TeamPwsFightResultPopUp:AddViewEvts()
|
|
self:AddListenEvt(LoadSceneEvent.FinishLoad, self.CloseSelf)
|
|
end
|
|
|
|
function TeamPwsFightResultPopUp:SetTexturesAndEffects()
|
|
self.effectWin = self:PlayUIEffect(self.isRedTeamWin and EffectMap.UI.TeamPws_RedWin or EffectMap.UI.TeamPws_BlueWin, self:FindGO("WinEffect"))
|
|
self.effectRole = self:PlayUIEffect(EffectMap.UI.TeamPws_MvpPlayer, self:FindGO("RoleEffect"))
|
|
|
|
PictureManager.Instance:SetPVP(TeamPwsFightResultPopUp.TexMvpName, self:FindComponent("texMvp", UITexture))
|
|
end
|
|
|
|
function TeamPwsFightResultPopUp:CreateMvpPlayerRole()
|
|
self:DestroyRoleModel()
|
|
local userdata = self.mvpUserData
|
|
if (not userdata) then return end
|
|
|
|
local parts = Asset_Role.CreatePartArray()
|
|
local partIndex = Asset_Role.PartIndex
|
|
local partIndexEx = Asset_Role.PartIndexEx
|
|
parts[partIndex.Body] = userdata:Get(UDEnum.BODY) or 0
|
|
parts[partIndex.Hair] = userdata:Get(UDEnum.HAIR) or 0
|
|
parts[partIndex.LeftWeapon] = userdata:Get(UDEnum.LEFTHAND) or 0
|
|
parts[partIndex.RightWeapon] = userdata:Get(UDEnum.RIGHTHAND) or 0
|
|
parts[partIndex.Head] = userdata:Get(UDEnum.HEAD) or 0
|
|
parts[partIndex.Wing] = userdata:Get(UDEnum.BACK) or 0
|
|
parts[partIndex.Face] = userdata:Get(UDEnum.FACE) or 0
|
|
parts[partIndex.Tail] = userdata:Get(UDEnum.TAIL) or 0
|
|
parts[partIndex.Eye] = userdata:Get(UDEnum.EYE) or 0
|
|
parts[partIndex.Mount] = 0
|
|
parts[partIndex.Mouth] = userdata:Get(UDEnum.MOUTH) or 0
|
|
|
|
parts[partIndexEx.Gender] = userdata:Get(UDEnum.SEX) or 0
|
|
parts[partIndexEx.HairColorIndex] = userdata:Get(UDEnum.HAIRCOLOR) or 0
|
|
parts[partIndexEx.EyeColorIndex] = userdata:Get(UDEnum.EYECOLOR) or 0
|
|
parts[partIndexEx.BodyColorIndex] = userdata:Get(UDEnum.CLOTHCOLOR) or 0
|
|
|
|
self.role = Asset_Role.Create(parts)
|
|
self.role:SetParent(self.objModelParent.transform, false)
|
|
self.role:SetLayer(self.objModelParent.layer)
|
|
self.role:SetName(userdata:Get(UDEnum.NAME) or self.labMvpName.text)
|
|
|
|
self.role:SetPosition(LuaGeometry.Const_V3_zero)
|
|
self.role:SetEulerAngleY(180)
|
|
self.role:SetScale(320)
|
|
local animParams = Asset_Role.GetPlayActionParams(GameConfig.teamPVP.Victoryanimation, Asset_Role.ActionName.Idle, 1)
|
|
animParams[7] = function() self.role:PlayAction_Simple(Asset_Role.ActionName.Idle) end
|
|
self.role:PlayAction(animParams)
|
|
|
|
TimeTickManager.Me():CreateTick(0, 33, self.ProcessLayoutWhenModelCreated, self, 1)
|
|
end
|
|
|
|
function TeamPwsFightResultPopUp:ProcessLayoutWhenModelCreated()
|
|
if (not self.role.complete.body) then return end
|
|
TimeTickManager.Me():ClearTick(self, 1)
|
|
|
|
if (not self.role.complete.body.mainSMR) then return end
|
|
local width = self.role.complete.body.mainSMR.localBounds.size.x
|
|
if (width < 1.65) then return end
|
|
local pos = self.objRoot.transform.localPosition
|
|
pos.x = pos.x - 80
|
|
self.objRoot.transform.localPosition = pos
|
|
pos = self.objModelInfos.transform.localPosition
|
|
pos.x = pos.x + 150
|
|
self.objModelInfos.transform.localPosition = pos
|
|
local mvpName = self:FindGO("MvpName").transform
|
|
pos = mvpName.localPosition
|
|
pos.x = pos.x - 50
|
|
mvpName.localPosition = pos
|
|
end
|
|
|
|
function TeamPwsFightResultPopUp:ClickButtonLeave()
|
|
ServiceNUserProxy.Instance:ReturnToHomeCity()
|
|
self:CloseSelf()
|
|
end
|
|
|
|
function TeamPwsFightResultPopUp:DestroyRoleModel()
|
|
if(self.role)then
|
|
self.role:Destroy()
|
|
self.role = nil
|
|
end
|
|
end
|
|
|
|
function TeamPwsFightResultPopUp:OnEnter()
|
|
self.super.OnEnter(self)
|
|
local viewdata = self.viewdata and self.viewdata.viewdata
|
|
if (viewdata) then
|
|
if (viewdata.mvpUserInfo) then
|
|
self.mvpUserData = UserData.CreateAsTable()
|
|
local serverdata = viewdata.mvpUserInfo.datas
|
|
local sdata
|
|
for i = 1, #serverdata do
|
|
sdata = serverdata[i]
|
|
if sdata then
|
|
self.mvpUserData:SetByID(sdata.type, sdata.value, sdata.data)
|
|
end
|
|
end
|
|
self.labMvpName.text = viewdata.mvpUserInfo.name or "";
|
|
end
|
|
self.isRedTeamWin = viewdata.winTeamColor == PvpProxy.TeamPws.TeamColor.Red
|
|
end
|
|
|
|
self:CreateMvpPlayerRole()
|
|
self.reportPanel:InitData()
|
|
self:SetTexturesAndEffects()
|
|
end
|
|
|
|
function TeamPwsFightResultPopUp:OnExit()
|
|
PictureManager.Instance:UnLoadPVP()
|
|
self:DestroyRoleModel()
|
|
PvpProxy.Instance:ClearTeamPwsReportData()
|
|
if (self.mvpUserData) then self.mvpUserData:Destroy() end
|
|
if (self.effectWin and self.effectWin:Alive()) then self.effectWin:Destroy() end
|
|
if (self.effectRole and self.effectRole:Alive()) then self.effectRole:Destroy() end
|
|
self.super.OnExit(self)
|
|
end
|