57 lines
2.4 KiB
Lua
57 lines
2.4 KiB
Lua
|
local SimpleSkillTask = require("Script.SimpleSkill.Task.SimpleSkillTask")
|
||
|
local SimpleSkillTask_FireDomain = LuaClass("SimpleSkillTask_FireDomain", SimpleSkillTask)
|
||
|
|
||
|
SimpleSkillTask_FireDomain.AdditionDamageRateTable = {1.5, 2.2, 3.2, 4.5}
|
||
|
SimpleSkillTask_FireDomain.CurDamageRate = 0.0
|
||
|
|
||
|
function SimpleSkillTask_FireDomain:ctor(OwnerSkill)
|
||
|
SimpleSkillTask_FireDomain.super.ctor(self, OwnerSkill)
|
||
|
end
|
||
|
|
||
|
function SimpleSkillTask_FireDomain:InitTaskFromData(TaskData, CasterPawn)
|
||
|
SimpleSkillTask.InitTaskFromData(self, TaskData, CasterPawn)
|
||
|
|
||
|
self.TaskName = "FireDomain"
|
||
|
end
|
||
|
|
||
|
function SimpleSkillTask_FireDomain:UpdateSkillLevel(NewSkillLevel)
|
||
|
SimpleSkillTask.UpdateSkillLevel(self, NewSkillLevel)
|
||
|
|
||
|
if self.SpawnedActor ~= nil and UE.IsValid(self.SpawnedActor) then
|
||
|
self.SpawnedActor:SetLevel(NewSkillLevel)
|
||
|
end
|
||
|
|
||
|
self.CurDamageRate = self.AdditionDamageRateTable[NewSkillLevel]
|
||
|
end
|
||
|
|
||
|
function SimpleSkillTask_FireDomain:ActivateTask()
|
||
|
SimpleSkillTask.ActivateTask(self)
|
||
|
end
|
||
|
|
||
|
function SimpleSkillTask_FireDomain:ActivateTaskInTimer()
|
||
|
local DamageAmount = 140 + self.CurDamageRate * UGCGameSystem.GetPlayerStateByPlayerKey(self.CasterPawn.PlayerKey).Attributes[AttributeType.Base].Base_Attack
|
||
|
local EventInstigator = UGCGameSystem.GetPlayerControllerByPlayerKey(self.CasterPawn.PlayerKey)
|
||
|
|
||
|
for _, Monster in pairs(self:GetTargetPawns()) do
|
||
|
if Monster ~= nil and UE.IsValid(Monster) and Monster.bIsDead == false then
|
||
|
UGCGameSystem.ApplyDamage(Monster, DamageAmount, EventInstigator, self.CasterPawn, EDamageType.ShootDamage)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
local Rotation = self.CasterPawn:K2_GetActorRotation()
|
||
|
local Forward = KismetMathLibrary.Conv_RotatorToVector(Rotation)
|
||
|
local Location = VectorHelper.Add(self.CasterPawn:K2_GetActorLocation(), VectorHelper.MulNumber(KismetMathLibrary.Normal(Forward), 400))
|
||
|
|
||
|
Location.Z = Location.Z - self.CasterPawn.CapsuleComponent.CapsuleHalfHeight
|
||
|
|
||
|
self.SpawnedActor = self:SpawnSkillActor(UGCGameSystem.GetUGCResourcesFullPath('Asset/Blueprint/SceneObject/SkillActor/BP_Skill_FireDomain.BP_Skill_FireDomain_C'), self.CasterPawn, Location, Rotation)
|
||
|
end
|
||
|
|
||
|
function SimpleSkillTask_FireDomain:DeactivateTask()
|
||
|
if self.SpawnedActor ~= nil and UE.IsValid(self.SpawnedActor) then
|
||
|
self.SpawnedActor:K2_DestroyActor()
|
||
|
self.SpawnedActor = nil
|
||
|
end
|
||
|
end
|
||
|
|
||
|
return SimpleSkillTask_FireDomain;
|