UGCProjects/GZJ/Script/SimpleSkill/Task/SimpleSkillTask_DeathStrike.lua
2025-01-08 22:46:12 +08:00

38 lines
1.5 KiB
Lua

local SimpleSkillTask = require("Script.SimpleSkill.Task.SimpleSkillTask")
local SimpleSkillTask_DeathStrike = LuaClass("SimpleSkillTask_DeathStrike", SimpleSkillTask)
SimpleSkillTask_DeathStrike.AdditionDamageRateTable = {6.0, 8.0, 10.0, 15.0} --伤害加成百分比
SimpleSkillTask_DeathStrike.CurDamageRate = 0.0
function SimpleSkillTask_DeathStrike:ctor(OwnerSkill)
SimpleSkillTask_DeathStrike.super.ctor(self, OwnerSkill)
end
function SimpleSkillTask_DeathStrike:InitTaskFromData(TaskData, CasterPawn)
SimpleSkillTask.InitTaskFromData(self, TaskData, CasterPawn)
self.TaskName = "DeathStrike"
end
function SimpleSkillTask_DeathStrike:UpdateSkillLevel(NewSkillLevel)
SimpleSkillTask.UpdateSkillLevel(self, NewSkillLevel)
self.CurDamageRate = self.AdditionDamageRateTable[self.SkillLevel]
end
function SimpleSkillTask_DeathStrike:ActivateTask()
SimpleSkillTask.ActivateTask(self)
local Base_Attack = UGCGameSystem.GetPlayerStateByPlayerKey(self.CasterPawn.PlayerKey).Attributes[AttributeType.Base].Base_Attack
local DamageAmount = 200 + Base_Attack * self.CurDamageRate
local EventInstigator = UGCGameSystem.GetPlayerControllerByPlayerKey(self.CasterPawn.PlayerKey)
local TargetPawns = self:GetTargetPawns()
for _, TargetPawn in pairs(TargetPawns) do
UGCGameSystem.ApplyDamage(TargetPawn, DamageAmount, EventInstigator, self.CasterPawn, EDamageType.ShootDamage)
end
self:EnableSkillEffect(self.CasterPawn, TargetPawns, EEffectSpawnLocationType.Middle)
end
return SimpleSkillTask_DeathStrike;