local SimpleSkillTask = require("Script.SimpleSkill.Task.SimpleSkillTask") local SimpleSkillTask_Heal = LuaClass("SimpleSkillTask_Heal", SimpleSkillTask) function SimpleSkillTask_Heal:ctor(OwnerSkill) SimpleSkillTask_Heal.super.ctor(self, OwnerSkill) end function SimpleSkillTask_Heal:InitTaskFromData(TaskData, CasterPawn) SimpleSkillTask.InitTaskFromData(self, TaskData, CasterPawn) self.TaskName = "Heal" end function SimpleSkillTask_Heal:ActivateTask() SimpleSkillTask.ActivateTask(self) local Pawns = self:GetTargetPawns() for k, Pawn in pairs(Pawns) do local MaxHP = UGCPawnAttrSystem.GetHealthMax(Pawn) if Pawn:IsFullHealth() == false and MaxHP > 0 then local CurHP = UGCPawnAttrSystem.GetHealth(Pawn) local LosedHP = MaxHP - CurHP local HealHPDelta = LosedHP * 0.4 local ResultCurHP = CurHP + HealHPDelta + MaxHP * 0.2 UGCPawnAttrSystem.SetHealth(Pawn, ResultCurHP) UE.Log("[SimpleSkillTask_Heal] Player:%s, Healed HP = %.2f", KismetSystemLibrary.GetObjectName(Pawn), ResultCurHP) end local MaxEnergy = Pawn.EnergyData.Max if Pawn:IsFullEnergy() == false and MaxEnergy > 0 then local CurEnergy = Pawn.EnergyData.Cur local LosedEnergy = MaxEnergy - CurEnergy local HealEnergyDelta = LosedEnergy * 0.4 local ResultCurEnergy = CurEnergy + HealEnergyDelta Pawn.EnergyData.Cur = math.clamp(ResultCurEnergy, CurEnergy, MaxEnergy) UE.Log("[SimpleSkillTask_Heal] Player:%s, Healed Energy = %.2f", KismetSystemLibrary.GetObjectName(Pawn), ResultCurEnergy) end self:EnableSkillEffect(Pawn, nil) end end return SimpleSkillTask_Heal;