狐狸大招碰撞解决
This commit is contained in:
@ -12,6 +12,7 @@ function FoxUltimate:ctor()
|
||||
self.active_recast_handle = nil
|
||||
self.active_accelerate_handle = nil
|
||||
|
||||
self.overlap_delegate_handle = nil
|
||||
self.tag_add_or_remove_delegate = nil
|
||||
end
|
||||
|
||||
@ -28,6 +29,8 @@ function FoxUltimate:K2_ActivateAbilityFromEvent(EventData)
|
||||
self.animation = owner.SpineAnimationComponent
|
||||
self.asc = AbilitySystemBlueprintLibrary.GetAbilitySystemComponent(owner)
|
||||
self.recast_tag = BusyGameplayLibrary.RequestGameplayTag("Ability.Flags.Recast")
|
||||
self.owner = owner
|
||||
|
||||
|
||||
local asc = self.asc
|
||||
|
||||
@ -58,8 +61,6 @@ function FoxUltimate:TriggerUltimate(asc)
|
||||
elseif self.ultimate_phase == 2 then
|
||||
-- 第二次激活,移除可重复释放的tag
|
||||
self.asc:RemoveActiveGameplayEffect(self.active_recast_handle, -1)
|
||||
local _, recast_effect = self:GetAbilityEffectSpecHandle("Recast", asc, 1, nil)
|
||||
self.active_recast_handle = asc:BP_ApplyGameplayEffectSpecToSelf(recast_effect)
|
||||
elseif self.ultimate_phase == 3 then
|
||||
self.asc:RemoveActiveGameplayEffect(self.active_recast_handle, -1)
|
||||
end
|
||||
@ -172,6 +173,21 @@ function FoxUltimate:OnAnimationEvent(entry, event)
|
||||
self.active_accelerate_handle = self:MakeAccelerate(8.0, 0.5)
|
||||
elseif event.Name == "OnSpeedReset" then
|
||||
self.asc:RemoveActiveGameplayEffect(self.active_accelerate_handle, -1)
|
||||
elseif event.Name == "OnDamageBegin" then
|
||||
local collision = self.owner["TailCollision"]
|
||||
collision:SetCollisionEnabled(1)
|
||||
self.overlap_delegate_handle = collision.OnComponentBeginOverlap:Add(function()
|
||||
if not self.asc:HasMatchingGameplayTag(self.recast_tag) then
|
||||
local _, recast_effect = self:GetAbilityEffectSpecHandle("Recast", self.asc, 1, nil)
|
||||
self.active_recast_handle = self.asc:BP_ApplyGameplayEffectSpecToSelf(recast_effect)
|
||||
end
|
||||
end)
|
||||
elseif event.Name == "OnDamageEnd" then
|
||||
self.owner["TailCollision"]:SetCollisionEnabled(0)
|
||||
if self.overlap_delegate_handle ~= nil then
|
||||
self.owner["TailCollision"].OnComponentBeginOverlap:Remove(self.overlap_delegate_handle)
|
||||
self.overlap_delegate_handle = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user