44 lines
1.6 KiB
Lua
44 lines
1.6 KiB
Lua
|
local SimpleSkillTask = require("Script.SimpleSkill.Task.SimpleSkillTask")
|
||
|
local SimpleSkillTask_Bombing = LuaClass("SimpleSkillTask_Bombing", SimpleSkillTask)
|
||
|
|
||
|
SimpleSkillTask_Bombing.AdditionDamageRateTable = {0.8, 1.1, 1.5, 2.0}
|
||
|
SimpleSkillTask_Bombing.CurDamageRate = 0.0
|
||
|
|
||
|
function SimpleSkillTask_Bombing:ctor(OwnerSkill)
|
||
|
SimpleSkillTask_Bombing.super.ctor(self, OwnerSkill)
|
||
|
end
|
||
|
|
||
|
function SimpleSkillTask_Bombing:InitTaskFromData(TaskData, CasterPawn)
|
||
|
SimpleSkillTask.InitTaskFromData(self, TaskData, CasterPawn)
|
||
|
|
||
|
self.TaskName = "Bombing"
|
||
|
end
|
||
|
|
||
|
function SimpleSkillTask_Bombing:UpdateSkillLevel(NewSkillLevel)
|
||
|
SimpleSkillTask.UpdateSkillLevel(self, NewSkillLevel)
|
||
|
|
||
|
self.CurDamageRate = self.AdditionDamageRateTable[NewSkillLevel]
|
||
|
end
|
||
|
|
||
|
function SimpleSkillTask_Bombing:ActivateTask()
|
||
|
SimpleSkillTask.ActivateTask(self)
|
||
|
|
||
|
self:EnableSkillEffect(self.CasterPawn, nil)
|
||
|
end
|
||
|
|
||
|
function SimpleSkillTask_Bombing:ActivateTaskInTimer()
|
||
|
local DamageAmount = 120 + 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 UGCSimpleCharacterSystem.GetHealth(Monster) > 0 then
|
||
|
UGCGameSystem.ApplyDamage(Monster, DamageAmount, EventInstigator, self.CasterPawn, EDamageType.ShootDamage)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function SimpleSkillTask_Bombing:DeactivateTask()
|
||
|
|
||
|
end
|
||
|
|
||
|
return SimpleSkillTask_Bombing;
|