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 |