Am sad and feel bad.

This commit is contained in:
2025-10-17 16:43:49 -04:00
parent 951b45b07c
commit fc85fa2a5a
103 changed files with 14133 additions and 14468 deletions

View File

@@ -10,7 +10,7 @@ public class Aura : ModuleRules
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput", "GameplayAbilities" });
PrivateDependencyModuleNames.AddRange(new string[] { "GameplayTags", "GameplayTasks", "NavigationSystem" });
PrivateDependencyModuleNames.AddRange(new string[] { "GameplayTags", "GameplayTasks", "NavigationSystem", "Niagara" });
// Uncomment if you are using Slate UI
// PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });

View File

@@ -4,4 +4,5 @@
#include "CoreMinimal.h"
#define CUSTOM_DEPTH_RED 250;
#define CUSTOM_DEPTH_RED 250
#define ECC_PROJECTILE ECollisionChannel::ECC_EngineTraceChannel1

View File

@@ -56,10 +56,10 @@ void UAuraAbilitySystemComponent::AbilityInputTagReleased(const FGameplayTag& In
}
}
void UAuraAbilitySystemComponent::ClientEffectApplied_Implementation(UAbilitySystemComponent* AbilitySystemComponent,
const FGameplayEffectSpec& EffectSpec, FActiveGameplayEffectHandle ActiveEffectHandle)
const FGameplayEffectSpec& EffectSpec, FActiveGameplayEffectHandle ActiveEffectHandle)
{
//GEngine->AddOnScreenDebugMessage(1,8.f, FColor::Blue,FString("Effect Applied!"));
FGameplayTagContainer TagContainer;
EffectSpec.GetAllAssetTags(TagContainer);

View File

@@ -84,41 +84,42 @@ void UAuraAttributeSet::PreAttributeChange(const FGameplayAttribute& Attribute,
void UAuraAttributeSet::SetEffectProperties(const FGameplayEffectModCallbackData& Data, FEffectProperties& Props) const
{
if (Data.EvaluatedData.Attribute == GetHealthAttribute())
// Source = causer of the effect, Target = target of the effect (owner of this AS)
Props.EffectContextHandle = Data.EffectSpec.GetContext();
Props.SourceASC = Props.EffectContextHandle.GetOriginalInstigatorAbilitySystemComponent();
if (IsValid(Props.SourceASC) && Props.SourceASC->AbilityActorInfo.IsValid() &&
Props.SourceASC->AbilityActorInfo->AvatarActor.IsValid())
{
// Source = Causer of the effect, Target = target of the effect (Owner of this Attribute Set)
Props.EffectContextHandle = Data.EffectSpec.GetContext();
Props.SourceASC = Props.EffectContextHandle.GetOriginalInstigatorAbilitySystemComponent();
if (IsValid(Props.SourceASC) && Props.SourceASC->AbilityActorInfo.IsValid() && Props.SourceASC->AbilityActorInfo.IsValid())
Props.SourceAvatarActor = Props.SourceASC->AbilityActorInfo->AvatarActor.Get();
Props.SourceController = CastChecked<APawn>(Props.SourceAvatarActor)->GetController();
if (Props.SourceController == nullptr && Props.SourceAvatarActor != nullptr)
{
Props.SourceAvatarActor = Props.SourceASC->AbilityActorInfo->AvatarActor.Get();
Props.SourceController = Props.SourceASC->AbilityActorInfo->PlayerController.Get();
if (Props.SourceController == nullptr && Props.SourceAvatarActor != nullptr)
if (const APawn* Pawn = Cast<APawn>(Props.SourceAvatarActor))
{
if (APawn* Pawn = Cast<APawn>(Props.SourceAvatarActor))
{
Props.SourceController = Pawn->GetController();
}
}
if (Props.SourceController)
{
Props.SourceCharacter = Cast<ACharacter>(Props.SourceController->GetPawn());
Props.SourceController = Pawn->GetController();
}
}
if (Props.SourceController)
{
ACharacter* SourceCharacter = Cast<ACharacter>(Props.SourceController->GetPawn());
}
}
//Get all the target actor
if (Data.Target.AbilityActorInfo.IsValid() && Data.Target.AbilityActorInfo->AvatarActor.IsValid())
{
Props.TargetAvatarActor = Data.Target.AbilityActorInfo->AvatarActor.Get();
Props.TargetController = Data.Target.AbilityActorInfo->PlayerController.Get();
Props.TargetController = CastChecked<APawn>(Props.TargetAvatarActor)->GetController();
Props.TargetCharacter = Cast<ACharacter>(Props.TargetAvatarActor);
Props.TargetASC = UAbilitySystemBlueprintLibrary::GetAbilitySystemComponent(Props.TargetAvatarActor);
//UE_LOG(LogTemp, Warning, TEXT("Target Info - Actor: %s - Controller %s - Character %s - ASC %s"),
// *Props.TargetAvatarActor->GetName(), *Props.TargetController->GetName(), *Props.TargetCharacter->GetName(), *Props.TargetASC->GetName());
}
}
void UAuraAttributeSet::PostGameplayEffectExecute(const struct FGameplayEffectModCallbackData& Data)
void UAuraAttributeSet::PostGameplayEffectExecute(const FGameplayEffectModCallbackData& Data)
{
Super::PostGameplayEffectExecute(Data);
@@ -127,13 +128,11 @@ void UAuraAttributeSet::PostGameplayEffectExecute(const struct FGameplayEffectMo
if (Data.EvaluatedData.Attribute == GetHealthAttribute())
{
//if the value being modified is Health
SetHealth(FMath::Clamp(GetHealth(), 0.f, GetMaxHealth()));
UE_LOG(LogTemp, Warning, TEXT("Changed Health on %s, Health: %f"), *Props.TargetAvatarActor->GetName(), GetHealth());
}
if (Data.EvaluatedData.Attribute == GetManaAttribute())
{
//If the value being modified is Mana
SetMana(FMath::Clamp(GetMana(), 0.f, GetMaxMana()));
}
}

View File

@@ -2,6 +2,8 @@
#include "AuraAssetManager.h"
#include "AbilitySystemGlobals.h"
#include "AuraGameplayTags.h"
UAuraAssetManager& UAuraAssetManager::Get()
@@ -16,5 +18,5 @@ void UAuraAssetManager::StartInitialLoading()
Super::StartInitialLoading();
FAuraGameplayTags::InitializeNativeGameplayTags();
UAbilitySystemGlobals::Get().InitGlobalData();
}

View File

@@ -33,18 +33,21 @@ void FAuraGameplayTags::InitializeNativeGameplayTags()
*Input Tags
*
*/
GameplayTags.Input_InputTag_LMB = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.LMB"), FString("Input Tag - Left Mouse Button"));
GameplayTags.Input_InputTag_RMB = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.RMB"), FString("Input Tag - Right Mouse Button"));
GameplayTags.Input_InputTag_1 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.1"), FString("Input Tag - Input 1"));
GameplayTags.Input_InputTag_2 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.2"), FString("Input Tag - Input 2"));
GameplayTags.Input_InputTag_3 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.3"), FString("Input Tag - Input 3"));
GameplayTags.Input_InputTag_4 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.4"), FString("Input Tag - Input 4"));
GameplayTags.Input_InputTag_5 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.5"), FString("Input Tag - Input 5"));
GameplayTags.Input_InputTag_6 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.6"), FString("Input Tag - Input 6"));
GameplayTags.Input_InputTag_7 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.7"), FString("Input Tag - Input 7"));
GameplayTags.Input_InputTag_8 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.8"), FString("Input Tag - Input 8"));
GameplayTags.Input_InputTag_9 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.9"), FString("Input Tag - Input 9"));
GameplayTags.Input_InputTag_10 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.10"), FString("Input Tag - Input 10"));
GameplayTags.Input_InputTag_LMB = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.LMB"), FString("Input Tag - Left Mouse Button"));
GameplayTags.Input_InputTag_RMB = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.RMB"), FString("Input Tag - Right Mouse Button"));
GameplayTags.Input_InputTag_1 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.1"), FString("Input Tag - Input 1"));
GameplayTags.Input_InputTag_2 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.2"), FString("Input Tag - Input 2"));
GameplayTags.Input_InputTag_3 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.3"), FString("Input Tag - Input 3"));
GameplayTags.Input_InputTag_4 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.4"), FString("Input Tag - Input 4"));
GameplayTags.Input_InputTag_5 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.5"), FString("Input Tag - Input 5"));
GameplayTags.Input_InputTag_6 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.6"), FString("Input Tag - Input 6"));
GameplayTags.Input_InputTag_7 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.7"), FString("Input Tag - Input 7"));
GameplayTags.Input_InputTag_8 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.8"), FString("Input Tag - Input 8"));
GameplayTags.Input_InputTag_9 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.9"), FString("Input Tag - Input 9"));
GameplayTags.Input_InputTag_10 = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.10"), FString("Input Tag - Input 10"));
GameplayTags.Input_InputTag_Q = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.Q"), FString("Input Tag - Input Q"));
GameplayTags.Input_InputTag_E = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.E"), FString("Input Tag - Input E"));
GameplayTags.Input_InputTag_Shift = UGameplayTagsManager::Get().AddNativeGameplayTag(FName("Input.InputTag.Shift"), FString("Input Tag - Input Shift"));
}

View File

@@ -4,11 +4,17 @@
#include "Character/AuraCharacterBase.h"
#include "AbilitySystemComponent.h"
#include "AbilitySystem/AuraAbilitySystemComponent.h"
#include "Aura/Aura.h"
#include "Components/CapsuleComponent.h"
AAuraCharacterBase::AAuraCharacterBase()
{
PrimaryActorTick.bCanEverTick = false;
GetCapsuleComponent()->SetCollisionResponseToChannel(ECC_Camera, ECR_Ignore); //Make it so that the Capsule for Character doesn't block the camera.
GetCapsuleComponent()->SetGenerateOverlapEvents(false);
GetMesh()->SetCollisionResponseToChannel(ECC_Camera, ECR_Ignore); //Make it so that the Character Mesh doesn't block the Camera
GetMesh()->SetCollisionResponseToChannel(ECC_PROJECTILE, ECR_Overlap); //
GetMesh()->SetGenerateOverlapEvents(true);
Weapon = CreateDefaultSubobject<USkeletalMeshComponent>("Weapon");
Weapon->SetupAttachment(GetMesh(), FName("WeaponHandSocket"));
Weapon->SetCollisionEnabled(ECollisionEnabled::NoCollision);

View File

@@ -1,6 +1,5 @@
// Copyright Echo Devgroup
#include "Character/AuraEnemy.h"
#include "AbilitySystem/AuraAbilitySystemComponent.h"
@@ -10,20 +9,18 @@
AAuraEnemy::AAuraEnemy()
{
GetMesh()->SetCollisionResponseToChannel(ECC_Visibility, ECR_Block);
AbilitySystemComponent = CreateDefaultSubobject<UAuraAbilitySystemComponent>("AbilitySystemComponent");
AbilitySystemComponent->SetIsReplicated(true);
AbilitySystemComponent->SetReplicationMode(EGameplayEffectReplicationMode::Minimal);
AttributeSet = CreateDefaultSubobject<UAuraAttributeSet>("AttributeSet");
}
void AAuraEnemy::HighlightActor()
{
GetMesh()->SetRenderCustomDepth(true);
GetMesh()->SetCustomDepthStencilValue(250.f);
GetMesh()->SetCustomDepthStencilValue(CUSTOM_DEPTH_RED);
Weapon->SetRenderCustomDepth(true);
Weapon->SetCustomDepthStencilValue(250.f);
Weapon->SetCustomDepthStencilValue(CUSTOM_DEPTH_RED);
}
void AAuraEnemy::UnHighlightActor()
@@ -49,4 +46,4 @@ void AAuraEnemy::InitAbilityActorInfo()
Cast<UAuraAbilitySystemComponent>(AbilitySystemComponent)->AbilityActorInfoSet();
InitializeDefaultAttributes();
}
}

View File

@@ -64,7 +64,7 @@ void AAuraPlayerController::CursorTrace()
void AAuraPlayerController::AbilityInputTagPressed(FGameplayTag InputTag)
{
//For Debug of key pressed
GEngine->AddOnScreenDebugMessage(1, 3.f, FColor::Red, *InputTag.ToString());
//GEngine->AddOnScreenDebugMessage(1, 3.f, FColor::Red, *InputTag.ToString());
//Are we targetting something?
if (InputTag.MatchesTagExact(FAuraGameplayTags::Get().Input_InputTag_LMB))
@@ -79,18 +79,15 @@ void AAuraPlayerController::AbilityInputTagReleased(FGameplayTag InputTag)
{
//For Debug of Key Held
GEngine->AddOnScreenDebugMessage(2, 3.f, FColor::Blue, *InputTag.ToString());
//GEngine->AddOnScreenDebugMessage(2, 3.f, FColor::Blue, *InputTag.ToString());
if (!InputTag.MatchesTagExact(FAuraGameplayTags::Get().Input_InputTag_LMB))
{
if (GetASC()) GetASC()->AbilityInputTagReleased(InputTag);
return;
}
if (bTargeting)
{
if (GetASC()) GetASC()->AbilityInputTagReleased(InputTag);
}
else
if (GetASC()) GetASC()->AbilityInputTagReleased(InputTag);
if (!bTargeting && !bShiftKeyDown)
{
APawn* ControlledPawn = GetPawn();
//Why no Splines?
@@ -129,7 +126,7 @@ void AAuraPlayerController::AbilityInputTagHeld(FGameplayTag InputTag)
if (GetASC()) GetASC()->AbilityInputTagHeld(InputTag);
return;
}
if (bTargeting)
if (bTargeting || bShiftKeyDown)
{
if (GetASC()) GetASC()->AbilityInputTagHeld(InputTag);
}
@@ -185,10 +182,13 @@ void AAuraPlayerController::SetupInputComponent()
UAuraInputComponent* AuraInputComponent = CastChecked<UAuraInputComponent>(InputComponent);
AuraInputComponent->BindAction(MoveAction, ETriggerEvent::Triggered, this, &AAuraPlayerController::Move);
AuraInputComponent->BindAction(ShiftAction, ETriggerEvent::Started, this, &AAuraPlayerController::ShiftPressed);
AuraInputComponent->BindAction(ShiftAction, ETriggerEvent::Completed, this, &AAuraPlayerController::ShiftReleased);
AuraInputComponent->BindAbilityActions(InputConfig, this, &ThisClass::AbilityInputTagPressed, &ThisClass::AbilityInputTagReleased, &ThisClass::AbilityInputTagHeld);
}
void AAuraPlayerController::Move(const FInputActionValue& InputActionValue)
{
const FVector2D InputAxisVector = InputActionValue.Get<FVector2D>();

View File

@@ -52,6 +52,9 @@ public:
FGameplayTag Input_InputTag_8;
FGameplayTag Input_InputTag_9;
FGameplayTag Input_InputTag_10;
FGameplayTag Input_InputTag_Q;
FGameplayTag Input_InputTag_E;
FGameplayTag Input_InputTag_Shift;
private:
static FAuraGameplayTags GameplayTags;

View File

@@ -31,9 +31,9 @@ protected:
FName WeaponTipSocketName;
virtual FVector GetCombatSocketLocation() override;
UPROPERTY()
TObjectPtr<UAbilitySystemComponent> AbilitySystemComponent;
UPROPERTY()
TObjectPtr<UAttributeSet> AttributeSet;

View File

@@ -4,7 +4,6 @@
#include "CoreMinimal.h"
#include "Character/AuraCharacterBase.h"
#include "Interact/CombatInterface.h"
#include "Interact/EnemyInterface.h"
#include "AuraEnemy.generated.h"
@@ -33,6 +32,7 @@ protected:
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Character Class Defaults")
int32 Level = 1;
private:
};

View File

@@ -7,7 +7,7 @@
#include "CombatInterface.generated.h"
// This class does not need to be modified.
UINTERFACE(MinimalAPI)
UINTERFACE(MinimalAPI, BlueprintType)
class UCombatInterface : public UInterface
{
GENERATED_BODY()
@@ -25,4 +25,7 @@ public:
virtual int32 GetPlayerLevel();
virtual FVector GetCombatSocketLocation();
UFUNCTION(BlueprintImplementableEvent, BlueprintCallable)
void UpdateFacingTarget(const FVector& TargetLocation);
};

View File

@@ -37,6 +37,13 @@ private:
UPROPERTY(EditAnywhere, Category = "Input")
TObjectPtr<UInputAction> MoveAction;
UPROPERTY(EditAnywhere, Category = "Input")
TObjectPtr<UInputAction> ShiftAction;
void ShiftPressed() {bShiftKeyDown = true; }
void ShiftReleased(){bShiftKeyDown = false; }
bool bShiftKeyDown = false;
void Move(const FInputActionValue& InputActionValue);