29 lines
959 B
Lua
29 lines
959 B
Lua
|
|
local EatFoodAbility = {}
|
||
|
|
local Utils = require("GamePlay.Utils")
|
||
|
|
local RoleUtils = require("GamePlay.Utils.RoleUtils")
|
||
|
|
|
||
|
|
local function HandleHealthChange(role, effects)
|
||
|
|
local tag = Utils.GetGameplayTag("Change.Role.Health")
|
||
|
|
local value = effects:Get(tag)
|
||
|
|
if value ~= nil then
|
||
|
|
RoleUtils.ChangeHealth(role, value)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
local function HandleHungerChange(role, effects)
|
||
|
|
local tag = Utils.GetGameplayTag("Change.Role.Hunger")
|
||
|
|
local value = effects:Get(tag)
|
||
|
|
if value ~= nil then
|
||
|
|
RoleUtils.ChangeHunger(role, value)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function EatFoodAbility:K2_ActivateAbilityFromEvent(EventData)
|
||
|
|
local item_config = Utils.GetItemConfigByID(math.floor(EventData.EventMagnitude))
|
||
|
|
local owner = self:GetOwningActorFromActorInfo()
|
||
|
|
HandleHealthChange(owner, item_config.GameplayEffects)
|
||
|
|
HandleHungerChange(owner, item_config.GameplayEffects)
|
||
|
|
self:K2_EndAbility()
|
||
|
|
end
|
||
|
|
|
||
|
|
return Class(nil, nil, EatFoodAbility)
|