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;