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

42 lines
1.6 KiB
Lua

local SimpleSkillTask = require("Script.SimpleSkill.Task.SimpleSkillTask")
local SimpleSkillTask_StickStrike = LuaClass("SimpleSkillTask_StickStrike", SimpleSkillTask)
SimpleSkillTask_StickStrike.AdditionDamageRateTable = {5.0, 7.0, 9.0, 12.0}
SimpleSkillTask_StickStrike.CurDamageRate = 0.0
function SimpleSkillTask_StickStrike:ctor(OwnerSkill)
SimpleSkillTask_StickStrike.super.ctor(self, OwnerSkill)
end
function SimpleSkillTask_StickStrike:InitTaskFromData(TaskData, CasterPawn)
SimpleSkillTask.InitTaskFromData(self, TaskData, CasterPawn)
self.TaskName = "StickStrike"
end
function SimpleSkillTask_StickStrike:UpdateSkillLevel(NewSkillLevel)
SimpleSkillTask.UpdateSkillLevel(self, NewSkillLevel)
self.CurDamageRate = self.AdditionDamageRateTable[NewSkillLevel]
end
function SimpleSkillTask_StickStrike:ActivateTask()
SimpleSkillTask.ActivateTask(self)
local DamageAmount = 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
Monster:SetIsStun(true, 1.0)
UGCGameSystem.ApplyDamage(Monster, DamageAmount, EventInstigator, self.CasterPawn, EDamageType.ShootDamage)
end
end
self:EnableSkillEffect(self.CasterPawn, nil, EEffectSpawnLocationType.Bottom)
end
function SimpleSkillTask_StickStrike:DeactivateTask()
end
return SimpleSkillTask_StickStrike;