Implemented OLSCollisionChannels. Implemented OLSGameplayEffectContext. Implemented OLSPhysicalMaterialWithTags.
38 lines
1.4 KiB
C++
38 lines
1.4 KiB
C++
// © 2024 Long Ly. All rights reserved. Any unauthorized use, reproduction, or distribution of this trademark is strictly prohibited and may result in legal action.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "GameplayTagContainer.h"
|
|
#include "OLSAbilitySourceInterface.generated.h"
|
|
|
|
// This class does not need to be modified.
|
|
UINTERFACE()
|
|
class UOLSAbilitySourceInterface : public UInterface
|
|
{
|
|
GENERATED_BODY()
|
|
};
|
|
|
|
/**
|
|
*
|
|
*/
|
|
class OLS_API IOLSAbilitySourceInterface
|
|
{
|
|
GENERATED_IINTERFACE_BODY()
|
|
/**
|
|
* Compute the multiplier for effect falloff with distance
|
|
* ABILITY_LOG
|
|
* @param distance Distance from source to target for ability calculations (distance bullet traveled for a gun, etc...)
|
|
* @param sourceTags Aggregated Tags from the source
|
|
* @param targetTags Aggregated Tags currently on the target
|
|
*
|
|
* @return Multiplier to apply to the base attribute value due to distance
|
|
*/
|
|
virtual float GetDistanceAttenuation(float distance, const FGameplayTagContainer* sourceTags = nullptr,
|
|
const FGameplayTagContainer* targetTags = nullptr) const = 0;
|
|
|
|
virtual float GetPhysicalMaterialAttenuation(const UPhysicalMaterial* physicalMaterial,
|
|
const FGameplayTagContainer* sourceTags = nullptr,
|
|
const FGameplayTagContainer* targetTags = nullptr) const = 0;
|
|
};
|