37 lines
1.4 KiB
Lua
37 lines
1.4 KiB
Lua
|
local SimpleSkillTask = require("Script.SimpleSkill.Task.SimpleSkillTask")
|
||
|
local SimpleSkillTask_Roar = LuaClass("SimpleSkillTask_Roar", SimpleSkillTask)
|
||
|
|
||
|
SimpleSkillTask_Roar.AdditionDamageRateTable = {2.5, 3.2, 4.2, 5.5} --伤害加成百分比
|
||
|
SimpleSkillTask_Roar.CurDamageRate = 0.0
|
||
|
|
||
|
function SimpleSkillTask_Roar:ctor(OwnerSkill)
|
||
|
SimpleSkillTask_Roar.super.ctor(self, OwnerSkill)
|
||
|
end
|
||
|
|
||
|
function SimpleSkillTask_Roar:InitTaskFromData(TaskData, CasterPawn)
|
||
|
SimpleSkillTask.InitTaskFromData(self, TaskData, CasterPawn)
|
||
|
end
|
||
|
|
||
|
function SimpleSkillTask_Roar:UpdateSkillLevel(NewSkillLevel)
|
||
|
SimpleSkillTask.UpdateSkillLevel(self, NewSkillLevel)
|
||
|
|
||
|
self.CurDamageRate = self.AdditionDamageRateTable[self.SkillLevel]
|
||
|
end
|
||
|
|
||
|
function SimpleSkillTask_Roar: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, nil)
|
||
|
|
||
|
end
|
||
|
|
||
|
return SimpleSkillTask_Roar;
|