Initial version - 1.2.0.60
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
local BattleDamageCtrl = class("BattleDamageCtrl", BaseCtrl)
|
||||
BattleDamageCtrl._mapNodeConfig = {
|
||||
imgBlurredBg = {},
|
||||
animWindow = {sNodeName = "t_window", sComponentName = "Animator"},
|
||||
txtWindowTitle = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Battle_Damage_Window_Title"
|
||||
},
|
||||
btnClose = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Close"
|
||||
},
|
||||
btnCloseScreen = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Close"
|
||||
},
|
||||
txtAllDamage = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Battle_Damage_All_Damage"
|
||||
},
|
||||
txtAllDamageValue = {sComponentName = "TMP_Text"},
|
||||
txtChar = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Battle_Damage_Char"
|
||||
},
|
||||
txtDamage = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Battle_Damage_Damage"
|
||||
},
|
||||
txtPercent = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Battle_Damage_Percent"
|
||||
},
|
||||
goCharDamage = {nCount = 3},
|
||||
txtLeaderCn = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Build_Leader"
|
||||
},
|
||||
txtSubCn = {
|
||||
nCount = 2,
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Build_Sub"
|
||||
}
|
||||
}
|
||||
BattleDamageCtrl._mapEventConfig = {}
|
||||
BattleDamageCtrl._mapRedDotConfig = {}
|
||||
function BattleDamageCtrl:RefreshDamageList()
|
||||
for k, v in ipairs(self._mapNode.goCharDamage) do
|
||||
v.gameObject:SetActive(self.tbCharDamage[k] ~= nil)
|
||||
if self.tbCharDamage[k] ~= nil then
|
||||
local imgItemIcon = v.transform:Find("goCharItem/imgIconBg/imgItemIcon"):GetComponent("Image")
|
||||
local imgItemRare = v.transform:Find("goCharItem/imgItemRare"):GetComponent("Image")
|
||||
local txtCharName = v.transform:Find("txtCharName"):GetComponent("TMP_Text")
|
||||
local txtDamageValue = v.transform:Find("imgBg/txtDamageValue"):GetComponent("TMP_Text")
|
||||
local rtBarBg = v.transform:Find("imgDamageBarBg"):GetComponent("RectTransform")
|
||||
local rtBar = v.transform:Find("imgDamageBarBg/imgDamageBar"):GetComponent("RectTransform")
|
||||
local txtDamagePercent = v.transform:Find("imgDamageBarBg/txtDamagePercent"):GetComponent("TMP_Text")
|
||||
local mapDamage = self.tbCharDamage[k]
|
||||
local nCharSkinId = mapDamage.nSkinId or PlayerData.Char:GetCharSkinId(mapDamage.nCharId)
|
||||
local mapCharSkin = ConfigTable.GetData_CharacterSkin(nCharSkinId)
|
||||
local mapCharCfg = ConfigTable.GetData_Character(mapDamage.nCharId)
|
||||
if mapCharSkin ~= nil and mapCharSkin ~= nil then
|
||||
local sFrame = AllEnum.FrameType_New.BoardFrame .. AllEnum.BoardFrameColor[mapCharCfg.Grade]
|
||||
self:SetPngSprite(imgItemIcon, mapCharSkin.Icon .. AllEnum.CharHeadIconSurfix.XXL)
|
||||
self:SetAtlasSprite(imgItemRare, "12_rare", sFrame)
|
||||
NovaAPI.SetTMPText(txtCharName, mapCharCfg.Name)
|
||||
end
|
||||
NovaAPI.SetTMPText(txtDamageValue, mapDamage.nDamage)
|
||||
local nPercent = self.nTotalDamage > 0 and mapDamage.nDamage / self.nTotalDamage or 0
|
||||
nPercent = math.floor(nPercent * 10000 + 0.5) / 10000
|
||||
local nWidth = rtBarBg.sizeDelta.x
|
||||
local nHeight = rtBarBg.sizeDelta.y
|
||||
local v2Target = Vector2(nWidth * nPercent, nHeight)
|
||||
local tweener = rtBar:DOSizeDelta(v2Target, 0.5):SetUpdate(true)
|
||||
local twTxt = DOTween.To(function()
|
||||
return 0
|
||||
end, function(value)
|
||||
NovaAPI.SetTMPText(txtDamagePercent, string.format("%.1f%%", value))
|
||||
end, nPercent * 100, 0.5):SetUpdate(true)
|
||||
end
|
||||
end
|
||||
end
|
||||
function BattleDamageCtrl:PlayCloseAnim()
|
||||
self._mapNode.imgBlurredBg:SetActive(false)
|
||||
self._mapNode.animWindow:Play("t_window_04_t_out")
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, 0.2)
|
||||
self:AddTimer(1, 0.2, "Close", true, true, true)
|
||||
end
|
||||
function BattleDamageCtrl:Close()
|
||||
EventManager.Hit(EventId.ClosePanel, PanelId.BattleDamage)
|
||||
end
|
||||
function BattleDamageCtrl:Awake()
|
||||
end
|
||||
function BattleDamageCtrl:OnEnable()
|
||||
local tbParam = self:GetPanelParam()
|
||||
self.nTotalDamage = 0
|
||||
self.tbCharDamage = {}
|
||||
if tbParam ~= nil and tbParam[1] ~= nil then
|
||||
self.tbCharDamage = tbParam[1]
|
||||
for _, v in pairs(self.tbCharDamage) do
|
||||
self.nTotalDamage = self.nTotalDamage + v.nDamage
|
||||
end
|
||||
end
|
||||
self._mapNode.animWindow.gameObject:SetActive(false)
|
||||
self._mapNode.imgBlurredBg.gameObject:SetActive(true)
|
||||
local wait = function()
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
self._mapNode.animWindow.gameObject:SetActive(true)
|
||||
self._mapNode.animWindow:Play("t_window_04_t_in")
|
||||
NovaAPI.SetTMPText(self._mapNode.txtAllDamageValue, self.nTotalDamage)
|
||||
self:RefreshDamageList()
|
||||
end
|
||||
cs_coroutine.start(wait)
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, 0.3)
|
||||
end
|
||||
function BattleDamageCtrl:OnDisable()
|
||||
end
|
||||
function BattleDamageCtrl:OnDestroy()
|
||||
end
|
||||
function BattleDamageCtrl:OnBtnClick_Close()
|
||||
self:PlayCloseAnim()
|
||||
end
|
||||
function BattleDamageCtrl:OnEvent_AAA()
|
||||
end
|
||||
return BattleDamageCtrl
|
||||
Reference in New Issue
Block a user