forked from endernon/PGRData
185 lines
No EOL
8.8 KiB
Lua
185 lines
No EOL
8.8 KiB
Lua
local XUiGridResonanceSkill = require("XUi/XUiEquipResonanceSkill/XUiGridResonanceSkill")
|
|
local XUiEquipResonanceSelectAfter = XLuaUiManager.Register(XLuaUi, "UiEquipResonanceSelectAfter")
|
|
|
|
function XUiEquipResonanceSelectAfter:OnAwake()
|
|
self:InitAutoScript()
|
|
local sceneRootTrans = self.UiModelGo
|
|
self.PanelWeapon = sceneRootTrans:FindTransform("PanelWeapon")
|
|
self.EffectAwakeGo = sceneRootTrans:FindTransform("EffectAwakeGo").gameObject
|
|
end
|
|
|
|
function XUiEquipResonanceSelectAfter:OnStart(equipId, pos, characterId, isAwakeDes, forceShowBindCharacter)
|
|
self.CharacterId = characterId
|
|
self.EquipId = equipId
|
|
self.Pos = pos
|
|
self.IsAwakeDes = isAwakeDes
|
|
self.ForceShowBindCharacter = forceShowBindCharacter
|
|
|
|
self:InitClassifyPanel()
|
|
end
|
|
|
|
function XUiEquipResonanceSelectAfter:OnEnable()
|
|
CS.XAudioManager.PlaySound(XSoundManager.UiBasicsMusic.UiEquip_ResonanceSelectAfter)
|
|
self:UpdateResonanceSkillGrids()
|
|
end
|
|
|
|
function XUiEquipResonanceSelectAfter:OnDisable()
|
|
self:RemoveWeaponTimer()
|
|
end
|
|
|
|
function XUiEquipResonanceSelectAfter:OnDestroy()
|
|
if self.Resource then
|
|
CS.XResourceManager.Unload(self.Resource)
|
|
self.Resource = nil
|
|
end
|
|
self:RemoveWeaponTimer()
|
|
end
|
|
|
|
function XUiEquipResonanceSelectAfter:OnGetEvents()
|
|
return { XEventId.EVENT_EQUIP_RESONANCE_ACK_NOTYFY }
|
|
end
|
|
|
|
function XUiEquipResonanceSelectAfter:OnNotify(evt, ...)
|
|
local args = { ... }
|
|
local equipId = args[1]
|
|
if equipId ~= self.EquipId then return end
|
|
|
|
if evt == XEventId.EVENT_EQUIP_RESONANCE_ACK_NOTYFY then
|
|
self:Close()
|
|
end
|
|
end
|
|
|
|
function XUiEquipResonanceSelectAfter:InitClassifyPanel()
|
|
self.FxUiLihuiChuxian01.gameObject:SetActiveEx(false)
|
|
if XDataCenter.EquipManager.IsClassifyEqual(self.EquipId, XEquipConfig.Classify.Weapon) then
|
|
local modelConfig = XDataCenter.EquipManager.GetWeaponModelCfgByEquipId(self.EquipId, self.Name)
|
|
self.EffectAwakeGo.gameObject:SetActiveEx(false)
|
|
self:RemoveWeaponTimer()
|
|
if modelConfig then
|
|
XModelManager.LoadWeaponModel(modelConfig.ModelId, self.PanelWeapon, modelConfig.TransformConfig, self.Name, function(model)
|
|
-- 延时显示模型
|
|
local delay = XEquipConfig.WeaponResonanceShowDelay
|
|
if delay ~= 0 then
|
|
model:SetActiveEx(false)
|
|
self.scheduleIdModel = XScheduleManager.ScheduleOnce(function()
|
|
model:SetActiveEx(true)
|
|
XModelManager.PlayWeaponShowing(model, modelConfig.ModelId, self.Name, self.GameObject, { usage = XEquipConfig.WeaponUsage.Show })
|
|
XModelManager.AutoRotateWeapon(self.PanelWeapon, model, modelConfig.ModelId, self.GameObject)
|
|
end, delay)
|
|
else
|
|
XModelManager.PlayWeaponShowing(model, modelConfig.ModelId, self.Name, self.GameObject, { usage = XEquipConfig.WeaponUsage.Show })
|
|
XModelManager.AutoRotateWeapon(self.PanelWeapon, model, modelConfig.ModelId, self.GameObject)
|
|
end
|
|
|
|
-- 延时ui特效
|
|
local resonanceCount = XDataCenter.EquipManager.GetResonanceCount(self.EquipId)
|
|
local effectDelay = XDataCenter.EquipManager.GetWeaponResonanceEffectDelay(self.EquipId, resonanceCount)
|
|
if effectDelay then
|
|
self.scheduleIdEffect = XScheduleManager.ScheduleOnce(function()
|
|
self.EffectAwakeGo:SetActiveEx(true)
|
|
end, effectDelay)
|
|
end
|
|
end, { noShowing = true, gameObject = self.GameObject, noRotation = true })
|
|
end
|
|
self.PanelWeapon.gameObject:SetActiveEx(true)
|
|
self.PanelAwareness.gameObject:SetActiveEx(false)
|
|
elseif XDataCenter.EquipManager.IsClassifyEqual(self.EquipId, XEquipConfig.Classify.Awareness) then
|
|
local equip = XDataCenter.EquipManager.GetEquip(self.EquipId)
|
|
local resource = CS.XResourceManager.Load(XDataCenter.EquipManager.GetEquipLiHuiPath(equip.TemplateId, equip.Breakthrough))
|
|
local texture = resource.Asset
|
|
self.MeshLihui.sharedMaterial:SetTexture("_MainTex", texture)
|
|
if self.Resource then
|
|
CS.XResourceManager.Unload(self.Resource)
|
|
end
|
|
self.Resource = resource
|
|
XScheduleManager.ScheduleOnce(function()
|
|
if XTool.UObjIsNil(self.FxUiLihuiChuxian01) then return end
|
|
self.FxUiLihuiChuxian01.gameObject:SetActiveEx(true)
|
|
end, 500)
|
|
|
|
self.PanelAwareness.gameObject:SetActiveEx(true)
|
|
self.PanelWeapon.gameObject:SetActiveEx(false)
|
|
end
|
|
end
|
|
|
|
function XUiEquipResonanceSelectAfter:RemoveWeaponTimer()
|
|
if self.scheduleIdModel then
|
|
XScheduleManager.UnSchedule(self.scheduleIdModel)
|
|
self.scheduleIdModel = nil
|
|
end
|
|
if self.scheduleIdEffect then
|
|
XScheduleManager.UnSchedule(self.scheduleIdEffect)
|
|
self.scheduleIdEffect = nil
|
|
end
|
|
end
|
|
|
|
function XUiEquipResonanceSelectAfter:UpdateResonanceSkillGrids()
|
|
local isAwakeDes = self.IsAwakeDes
|
|
local characterId = self.CharacterId
|
|
local forceShowBindCharacter = self.ForceShowBindCharacter
|
|
|
|
self.ImgNewTag.gameObject:SetActiveEx(not isAwakeDes)
|
|
self.TxtSlot.text = CS.XTextManager.GetText("EquipResonancePosText", self.Pos)
|
|
|
|
self.ResonanceSkillGridOld = self.ResonanceSkillGridOld or XUiGridResonanceSkill.New(self.GridResonanceSkill, self.EquipId, self.Pos, characterId, nil, isAwakeDes, forceShowBindCharacter)
|
|
self.ResonanceSkillGridNew = self.ResonanceSkillGridNew or XUiGridResonanceSkill.New(self.GridResonanceSkillA, self.EquipId, self.Pos, characterId, nil, isAwakeDes, forceShowBindCharacter)
|
|
|
|
local unconfirmedSkillInfo = XDataCenter.EquipManager.GetUnconfirmedResonanceSkillInfo(self.EquipId, self.Pos)
|
|
local bindCharacterId = XDataCenter.EquipManager.GetUnconfirmedResonanceBindCharacterId(self.EquipId, self.Pos)
|
|
|
|
if not XDataCenter.EquipManager.CheckEquipPosUnconfirmedResonanced(self.EquipId, self.Pos) then
|
|
self.ResonanceSkillGridNew:Refresh()
|
|
self.BtnConfirm.gameObject:SetActiveEx(true)
|
|
self.BtnChange.gameObject:SetActiveEx(false)
|
|
self.PanelSlotOld.gameObject:SetActiveEx(false)
|
|
self:PlayAnimation("RImgLihui")
|
|
else
|
|
self.ResonanceSkillGridOld:Refresh()
|
|
self.ResonanceSkillGridNew:Refresh(unconfirmedSkillInfo, bindCharacterId)
|
|
|
|
self.BtnConfirm.gameObject:SetActiveEx(false)
|
|
self.BtnChange.gameObject:SetActiveEx(true)
|
|
self.PanelSlotOld.gameObject:SetActiveEx(true)
|
|
self:PlayAnimation("ContianerEnable")
|
|
end
|
|
end
|
|
|
|
-- auto
|
|
-- Automatic generation of code, forbid to edit
|
|
function XUiEquipResonanceSelectAfter:InitAutoScript()
|
|
self:AutoInitUi()
|
|
self:AutoAddListener()
|
|
end
|
|
|
|
function XUiEquipResonanceSelectAfter:AutoInitUi()
|
|
self.PanelSlotNew = self.Transform:Find("SafeAreaContentPane/Contianer/Layout/PanelSlotNew")
|
|
self.GridResonanceSkillA = self.Transform:Find("SafeAreaContentPane/Contianer/Layout/PanelSlotNew/GridResonanceSkill")
|
|
self.RImgResonanceSkillA = self.Transform:Find("SafeAreaContentPane/Contianer/Layout/PanelSlotNew/GridResonanceSkill/RImgResonanceSkill"):GetComponent("RawImage")
|
|
self.BtnChange = self.Transform:Find("SafeAreaContentPane/Contianer/Layout/PanelSlotNew/BtnChange"):GetComponent("Button")
|
|
self.BtnConfirm = self.Transform:Find("SafeAreaContentPane/Contianer/Layout/PanelSlotNew/BtnConfirm"):GetComponent("Button")
|
|
self.PanelSlotOld = self.Transform:Find("SafeAreaContentPane/Contianer/Layout/PanelSlotOld")
|
|
self.GridResonanceSkill = self.Transform:Find("SafeAreaContentPane/Contianer/Layout/PanelSlotOld/GridResonanceSkill")
|
|
self.RImgResonanceSkill = self.Transform:Find("SafeAreaContentPane/Contianer/Layout/PanelSlotOld/GridResonanceSkill/RImgResonanceSkill"):GetComponent("RawImage")
|
|
self.TxtSlot = self.Transform:Find("SafeAreaContentPane/Contianer/Layout/PanelSlotOld/TxtSlot"):GetComponent("Text")
|
|
self.BtnRemain = self.Transform:Find("SafeAreaContentPane/Contianer/Layout/PanelSlotOld/BtnRemain"):GetComponent("Button")
|
|
self.PanelAwareness = self.Transform:Find("SafeAreaContentPane/Left/PanelAwareness")
|
|
self.PanelCharacter = self.Transform:Find("SafeAreaContentPane/Left/PanelCharacter")
|
|
end
|
|
|
|
function XUiEquipResonanceSelectAfter:AutoAddListener()
|
|
self:RegisterClickEvent(self.BtnChange, self.OnBtnChangeClick)
|
|
self:RegisterClickEvent(self.BtnConfirm, self.OnBtnConfirmClick)
|
|
self:RegisterClickEvent(self.BtnRemain, self.OnBtnRemainClick)
|
|
end
|
|
-- auto
|
|
function XUiEquipResonanceSelectAfter:OnBtnConfirmClick()
|
|
self:Close()
|
|
end
|
|
|
|
function XUiEquipResonanceSelectAfter:OnBtnChangeClick()
|
|
XDataCenter.EquipManager.ResonanceConfirm(self.EquipId, self.Pos, true)
|
|
end
|
|
|
|
function XUiEquipResonanceSelectAfter:OnBtnRemainClick()
|
|
XDataCenter.EquipManager.ResonanceConfirm(self.EquipId, self.Pos, false)
|
|
end |