58 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
local _M = {}
 | 
						|
local GameplayEventData = import("GameplayEventData")
 | 
						|
local GetGameplayTag = require("GamePlay.Utils").GetGameplayTag
 | 
						|
local BusyGamePlayLibrary = import("BusyGamePlayLibrary")
 | 
						|
local BusyActorManagerSubSystem = import("BusyActorManagerSubSystem")
 | 
						|
local AbilitySystemBlueprintLibrary = import("AbilitySystemBlueprintLibrary")
 | 
						|
 | 
						|
 | 
						|
 | 
						|
function _M.ChangeHealth(role, value)
 | 
						|
    local asc = AbilitySystemBlueprintLibrary.GetAbilitySystemComponent(role)
 | 
						|
    local ge = asc.AbilityEffectConfigs:Get("ChangeHealth")
 | 
						|
    local cost_handle = asc:MakeOutgoingSpec(ge, 1, asc:MakeEffectContext())
 | 
						|
    AbilitySystemBlueprintLibrary.AssignTagSetByCallerMagnitude(
 | 
						|
        cost_handle, GetGameplayTag("Change.Role.Health"),
 | 
						|
        role:CalcRealChangeByHealth(value)
 | 
						|
    )
 | 
						|
    asc:BP_ApplyGameplayEffectSpecToSelf(cost_handle)
 | 
						|
end
 | 
						|
 | 
						|
function _M.ChangeHunger(role, value)
 | 
						|
    local asc = AbilitySystemBlueprintLibrary.GetAbilitySystemComponent(role)
 | 
						|
    local ge = asc.AbilityEffectConfigs:Get("ChangeHunger")
 | 
						|
 | 
						|
    local hunger_cost, health_cost = role:CalcRealChangeByHunger(value)
 | 
						|
    local cost_handle = asc:MakeOutgoingSpec(ge, 1, asc:MakeEffectContext())
 | 
						|
 | 
						|
    AbilitySystemBlueprintLibrary.AssignTagSetByCallerMagnitude(
 | 
						|
        cost_handle, GetGameplayTag("Change.Role.Health"), health_cost
 | 
						|
    )
 | 
						|
    AbilitySystemBlueprintLibrary.AssignTagSetByCallerMagnitude(
 | 
						|
        cost_handle, GetGameplayTag("Change.Role.Hunger"), hunger_cost
 | 
						|
    )
 | 
						|
    asc:BP_ApplyGameplayEffectSpecToSelf(cost_handle)
 | 
						|
end
 | 
						|
 | 
						|
function _M.GetRole(wco)
 | 
						|
    local mgr = BusyActorManagerSubSystem.Get(wco)
 | 
						|
    return mgr.current_role
 | 
						|
end
 | 
						|
 | 
						|
function _M.EatFood(wco, item_id)
 | 
						|
    local role = _M.GetRole(wco)
 | 
						|
    local EventData = GameplayEventData()
 | 
						|
    EventData.EventMagnitude = item_id
 | 
						|
    role:TryActiveAbility("Ability.Role.EatFood", EventData)
 | 
						|
end
 | 
						|
 | 
						|
function _M.GetRoleConfig(role_id)
 | 
						|
    local data_table = BusyGamePlayLibrary.GetGameDataTable("RoleConfig")
 | 
						|
 | 
						|
    local row_data = data_table:FindRow(role_id, "error in here")
 | 
						|
 | 
						|
    print(row_data)
 | 
						|
end
 | 
						|
 | 
						|
 | 
						|
return _M |