// © 2024 Long Ly. All rights reserved. Any unauthorized use, reproduction, or distribution of this trademark is strictly prohibited and may result in legal action. #include "Messages/OLSVerbMessageHelpers.h" #include "GameplayEffectTypes.h" #include "GameFramework/PlayerState.h" #include "Messages/OLSVerbMessage.h" APlayerState* UOLSVerbMessageHelpers::GetPlayerStateFromObject(UObject* object) { if (APlayerController* playerController = Cast(object)) { return playerController->PlayerState; } if (APlayerState* targetPlayerState = Cast(object)) { return targetPlayerState; } if (APawn* targetPawn = Cast(object)) { if (APlayerState* targetPlayerState = targetPawn->GetPlayerState()) { return targetPlayerState; } } return nullptr; } APlayerController* UOLSVerbMessageHelpers::GetPlayerControllerFromObject(UObject* object) { if (APlayerController* playerController = Cast(object)) { return playerController; } if (APlayerState* targetPlayerState = Cast(object)) { return targetPlayerState->GetPlayerController(); } if (APawn* targetPawn = Cast(object)) { return Cast(targetPawn->GetController()); } return nullptr; } FGameplayCueParameters UOLSVerbMessageHelpers::VerbMessageToCueParameters(const FOLSVerbMessage& message) { FGameplayCueParameters Result; Result.OriginalTag = message.Verb; Result.Instigator = Cast(message.Instigator); Result.EffectCauser = Cast(message.Target); Result.AggregatedSourceTags = message.InstigatorTags; Result.AggregatedTargetTags = message.TargetTags; //@TODO: = Message.ContextTags; Result.RawMagnitude = message.Magnitude; return Result; } FOLSVerbMessage UOLSVerbMessageHelpers::CueParametersToVerbMessage(const FGameplayCueParameters& params) { FOLSVerbMessage result; result.Verb = params.OriginalTag; result.Instigator = params.Instigator.Get(); result.Target = params.EffectCauser.Get(); result.InstigatorTags = params.AggregatedSourceTags; result.TargetTags = params.AggregatedTargetTags; //@TODO: Result.ContextTags = ???; result.Magnitude = params.RawMagnitude; return result; }