Establish UE 5.8 known-good baseline with Batch 1 archaeology docs.

Initialize Git with LFS for binary assets and add standard Unreal Engine .gitignore/.gitattributes.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-16 19:40:19 -07:00
co-authored by Cursor
commit ff5640a020
17216 changed files with 62362 additions and 0 deletions
@@ -0,0 +1,16 @@
// REALMS IN RUIN. Copyright (c) 2025 Trevor Edwards. All rights reserved.
#pragma once
#include "CoreMinimal.h"
#include "AbilitySystemComponent.h"
#include "RIRAbilitySystemComponent.generated.h"
UCLASS()
class REALMSINRUIN_API URIRAbilitySystemComponent : public UAbilitySystemComponent
{
GENERATED_BODY()
public:
URIRAbilitySystemComponent();
};
@@ -0,0 +1,25 @@
// REALMS IN RUIN. Copyright (c) 2025 Trevor Edwards. All rights reserved.
#pragma once
#include "CoreMinimal.h"
#include "Abilities/GameplayAbility.h"
#include "RIRGameplayAbility.generated.h"
/**
* Base class for all Gameplay Abilities in RIR Project
*/
UCLASS()
class REALMSINRUIN_API URIRGameplayAbility : public UGameplayAbility
{
GENERATED_BODY()
public:
URIRGameplayAbility();
protected:
// Protected interface for derived classes
};
@@ -0,0 +1,33 @@
// REALMS IN RUIN. Copyright (c) 2025 Trevor Edwards. All rights reserved.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "RIREffectActor.generated.h"
class UGameplayEffect;
UCLASS()
class REALMSINRUIN_API ARIREffectActor : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
ARIREffectActor();
protected:
// Called when the game starts or the actor is spawned into the world
virtual void BeginPlay() override;
UFUNCTION(BlueprintCallable)
void ApplyEffectToTarget(AActor* TargetActor, TSubclassOf<UGameplayEffect> GamePlayEffectClass);
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Applied Effects")
TSubclassOf<UGameplayEffect> InstantGameplayEffectClass;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Applied Effects")
TSubclassOf<UGameplayEffect> DurationGameplayEffectClass;
};
@@ -0,0 +1,81 @@
// REALMS IN RUIN. Copyright (c) 2025 Trevor Edwards. All rights reserved.
#pragma once
#include "CoreMinimal.h"
#include "AttributeSet.h"
#include "AbilitySystemComponent.h"
#include "RIRAttributeSet.generated.h"
// Macro to simplify creating Attribute Accessors
#define ATTRIBUTE_ACCESSORS(ClassName, PropertyName) \
GAMEPLAYATTRIBUTE_PROPERTY_GETTER(ClassName, PropertyName) \
GAMEPLAYATTRIBUTE_VALUE_GETTER(PropertyName) \
GAMEPLAYATTRIBUTE_VALUE_SETTER(PropertyName) \
GAMEPLAYATTRIBUTE_VALUE_INITTER(PropertyName)
/**
* Custom Attribute Set for RIR Project
*/
UCLASS()
class REALMSINRUIN_API URIRAttributeSet : public UAttributeSet
{
GENERATED_BODY()
public:
URIRAttributeSet();
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
// Health
UPROPERTY(BlueprintReadOnly, Category="GAS|Attributes|Primary", ReplicatedUsing = OnRep_Health)
FGameplayAttributeData Health;
ATTRIBUTE_ACCESSORS(URIRAttributeSet, Health);
UFUNCTION()
void OnRep_Health(const FGameplayAttributeData& OldHealth) const;
// MaxHealth
UPROPERTY(BlueprintReadOnly, Category="GAS|Attributes|Primary", ReplicatedUsing = OnRep_MaxHealth)
FGameplayAttributeData MaxHealth;
ATTRIBUTE_ACCESSORS(URIRAttributeSet, MaxHealth);
UFUNCTION()
void OnRep_MaxHealth(const FGameplayAttributeData& OldMaxHealth) const;
// Mana
UPROPERTY(BlueprintReadOnly, Category="GAS|Attributes|Primary", ReplicatedUsing = OnRep_Mana)
FGameplayAttributeData Mana;
ATTRIBUTE_ACCESSORS(URIRAttributeSet, Mana);
UFUNCTION()
void OnRep_Mana(const FGameplayAttributeData& OldMana) const;
// MaxMana
UPROPERTY(BlueprintReadOnly, Category="GAS|Attributes|Primary", ReplicatedUsing = OnRep_MaxMana)
FGameplayAttributeData MaxMana;
ATTRIBUTE_ACCESSORS(URIRAttributeSet, MaxMana);
UFUNCTION()
void OnRep_MaxMana(const FGameplayAttributeData& OldMaxMana) const;
// Stamina
UPROPERTY(BlueprintReadOnly, Category="GAS|Attributes|Primary", ReplicatedUsing = OnRep_Stamina)
FGameplayAttributeData Stamina;
ATTRIBUTE_ACCESSORS(URIRAttributeSet, Stamina);
UFUNCTION()
void OnRep_Stamina(const FGameplayAttributeData& OldStamina) const;
// MaxStamina
UPROPERTY(BlueprintReadOnly, Category="GAS|Attributes|Primary", ReplicatedUsing = OnRep_MaxStamina)
FGameplayAttributeData MaxStamina;
ATTRIBUTE_ACCESSORS(URIRAttributeSet, MaxStamina);
UFUNCTION()
void OnRep_MaxStamina(const FGameplayAttributeData& OldMaxStamina) const;
protected:
};
@@ -0,0 +1,48 @@
// REALMS IN RUIN. Copyright (c) 2025 Trevor Edwards. All rights reserved.
#pragma once
#include "CoreMinimal.h"
#include "AbilitySystemInterface.h"
#include "GameFramework/Character.h"
#include "RIRBaseCharacter.generated.h"
// Forward declarations
class URIRAbilitySystemComponent; // Custom AbilitySystemComponent
class URIRAttributeSet; // Custom AttributeSet
class UAbilitySystemComponent;
class UAttributeSet;
class UGameplayEffect;
class UGameplayAbility;
// Base Character class using GAS for RIR Project
UCLASS(ABSTRACT)
class REALMSINRUIN_API ARIRBaseCharacter : public ACharacter, public IAbilitySystemInterface
{
GENERATED_BODY()
public:
// Sets default values for this character's properties
ARIRBaseCharacter();
// Implementation of IAbilitySystemInterface
virtual UAbilitySystemComponent* GetAbilitySystemComponent() const override;
// Custom getter for the attribute set
UAttributeSet* GetAttributeSet() const { return AttributeSet; }
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Abilities")
TObjectPtr<UAbilitySystemComponent> AbilitySystemComponent;
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Abilities")
TObjectPtr<UAttributeSet> AttributeSet;
};
@@ -0,0 +1,26 @@
// REALMS IN RUIN. Copyright (c) 2025 Trevor Edwards. All rights reserved.
#pragma once
#include "CoreMinimal.h"
#include "Characters/RIRBaseCharacter.h"
#include "Interfaces/TargetInterface.h"
#include "RIRBaseEnemyCharacter.generated.h"
/**
*
*/
UCLASS()
class REALMSINRUIN_API ARIRBaseEnemyCharacter : public ARIRBaseCharacter, public ITargetInterface
{
GENERATED_BODY()
public:
ARIRBaseEnemyCharacter();
virtual void HighlightActor() override;
virtual void UnHighlightActor() override;
protected:
virtual void BeginPlay() override;
};
@@ -0,0 +1,27 @@
// REALMS IN RUIN. Copyright (c) 2025 Trevor Edwards. All rights reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "TargetInterface.generated.h"
// This class does not need to be modified.
UINTERFACE(MinimalAPI)
class UTargetInterface : public UInterface
{
GENERATED_BODY()
};
/**
*
*/
class REALMSINRUIN_API ITargetInterface
{
GENERATED_BODY()
// Add interface functions to this class. This is the class that will be inherited to implement this interface.
public:
virtual void HighlightActor() = 0;
virtual void UnHighlightActor() = 0;
};
@@ -0,0 +1,29 @@
// REALMS IN RUIN. Copyright (c) 2025 Trevor Edwards. All rights reserved.
#pragma once
#include "CoreMinimal.h"
#include "Characters/RIRBaseCharacter.h"
#include "RIRPlayerCharacter.generated.h"
/**
*
*/
UCLASS()
class REALMSINRUIN_API ARIRPlayerCharacter : public ARIRBaseCharacter
{
GENERATED_BODY()
public:
// Sets default values for this character's properties
ARIRPlayerCharacter();
// Called when the character is possessed by a controller (server-side only)
virtual void PossessedBy(AController* NewController) override;
// Called on the client when PlayerState is replicated
virtual void OnRep_PlayerState() override;
private:
void InitAbilityActorInfo();
};
@@ -0,0 +1,46 @@
// REALMS IN RUIN. Copyright (c) 2025 Trevor Edwards. All rights reserved.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/PlayerController.h"
#include "RIRPlayerController.generated.h"
class UInputAction;
class UInputMappingContext;
class ITargetInterface;
struct FInputActionValue;
UCLASS()
class REALMSINRUIN_API ARIRPlayerController : public APlayerController
{
GENERATED_BODY()
public:
ARIRPlayerController();
virtual void PlayerTick(float DeltaTime) override;
virtual void BindCallbacksToDependencies();
protected:
virtual void BeginPlay() override;
// Input bindings
virtual void SetupInputComponent() override;
// Handles movement input
void HandleMovementInput(const FInputActionValue& InputActionValue);
private:
// Input Mapping Context (to be assigned via editor)
UPROPERTY(EditAnywhere, Category = "Input")
TObjectPtr<UInputMappingContext> PlayerMappingContext;
// Input Action asset for movement (to be assigned via editor)
UPROPERTY(EditAnywhere, Category = "Input")
TObjectPtr<UInputAction> MovementInput;
// Called every frame or on-demand to perform a trace under the mouse cursor
void CursorTrace();
TScriptInterface<ITargetInterface> LastActor;
TScriptInterface<ITargetInterface> ThisActor;
};
@@ -0,0 +1,39 @@
// REALMS IN RUIN. Copyright (c) 2025 Trevor Edwards. All rights reserved.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/PlayerState.h"
#include "AbilitySystemInterface.h"
#include "RIRPlayerState.generated.h"
class UAbilitySystemComponent;
class UAttributeSet;
class UGameplayEffect;
class UGameplayAbility;
UCLASS()
class REALMSINRUIN_API ARIRPlayerState : public APlayerState, public IAbilitySystemInterface
{
GENERATED_BODY()
public:
ARIRPlayerState();
// Implementation of IAbilitySystemInterface
virtual UAbilitySystemComponent* GetAbilitySystemComponent() const override;
// Custom getter for the attribute set
UAttributeSet* GetAttributeSet() const { return AttributeSet; }
// Default attribute effect to apply on spawn
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Attributes")
TSubclassOf<UGameplayEffect> DefaultAttributesGameplayEffect;
protected:
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Abilities")
TObjectPtr<UAbilitySystemComponent> AbilitySystemComponent;
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Attributes")
TObjectPtr<UAttributeSet> AttributeSet;
};
@@ -0,0 +1,51 @@
// REALMS IN RUIN. Copyright (c) 2025 Trevor Edwards. All rights reserved.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/HUD.h"
#include "AbilitySystemComponent.h"
#include "AttributeSet.h"
#include "RIRHUD.generated.h"
class UOverlayWidgetController;
class URIRUserWidget;
struct FWidgetControllerParams;
/**
*
*/
UCLASS()
class REALMSINRUIN_API ARIRHUD : public AHUD
{
GENERATED_BODY()
public:
// Reference to the instantiated overlay widget displayed on the player's screen
UPROPERTY()
TObjectPtr<URIRUserWidget> OverlayWidget;
// Returns (or creates) the Overlay Widget Controller with the specified parameters
UOverlayWidgetController* GetOverlayWidgetController(const FWidgetControllerParams& WCParams);
// Initializes the overlay HUD with controller and gameplay-related data
void InitOverlay(APlayerController* PC, APlayerState* PS, UAbilitySystemComponent* ASC, UAttributeSet* AS);
protected:
private:
// The widget class used to instantiate the overlay (should be assigned in the editor or constructor)
UPROPERTY(EditAnywhere)
TSubclassOf<URIRUserWidget> OverlayWidgetClass;
// The instantiated controller responsible for providing data and logic to the overlay widget
UPROPERTY()
TObjectPtr<UOverlayWidgetController> OverlayWidgetController;
// The controller class to instantiate (should also be set in the editor or constructor)
UPROPERTY(EditAnywhere)
TSubclassOf<UOverlayWidgetController> OverlayWidgetControllerClass;
};
@@ -0,0 +1,56 @@
// REALMS IN RUIN. Copyright (c) 2025 Trevor Edwards. All rights reserved.
#pragma once
#include "CoreMinimal.h"
#include "UI/WidgetController/RIRWidgetController.h"
#include "OverlayWidgetController.generated.h"
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnHealthChangedSignature, float, NewHealth);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnMaxHealthChangedSignature, float, NewMaxHealth);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnManaChangedSignature, float, NewMana);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnMaxManaChangedSignature, float, NewMaxMana);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnStaminaChangedSignature, float, NewStamina);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnMaxStaminaChangedSignature, float, NewMaxStamina);
// Forward declaration of FOnAttributeChangeData
struct FOnAttributeChangeData;
/**
*
*/
UCLASS(BlueprintType, Blueprintable)
class REALMSINRUIN_API UOverlayWidgetController : public URIRWidgetController
{
GENERATED_BODY()
public:
virtual void BroadcastInitialInitialValues() override;
virtual void BindCallbacksToDependencies() override;
UPROPERTY(BlueprintAssignable, Category="GAS|Attributes")
FOnHealthChangedSignature OnHealthChanged;
UPROPERTY(BlueprintAssignable, Category="GAS|Attributes")
FOnMaxHealthChangedSignature OnMaxHealthChanged;
UPROPERTY(BlueprintAssignable, Category="GAS|Attributes")
FOnManaChangedSignature OnManaChanged;
UPROPERTY(BlueprintAssignable, Category="GAS|Attributes")
FOnMaxManaChangedSignature OnMaxManaChanged;
UPROPERTY(BlueprintAssignable, Category="GAS|Attributes")
FOnManaChangedSignature OnStaminaChanged;
UPROPERTY(BlueprintAssignable, Category="GAS|Attributes")
FOnMaxManaChangedSignature OnMaxStaminaChanged;
protected:
void HealthChanged(const FOnAttributeChangeData& Data) const;
void MaxHealthChanged(const FOnAttributeChangeData& Data) const;
void ManaChanged(const FOnAttributeChangeData& Data) const;
void MaxManaChanged(const FOnAttributeChangeData& Data) const;
void StaminaChanged(const FOnAttributeChangeData& Data) const;
void MaxStaminaChanged(const FOnAttributeChangeData& Data) const;
};
@@ -0,0 +1,62 @@
// REALMS IN RUIN. Copyright (c) 2025 Trevor Edwards. All rights reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "RIRWidgetController.generated.h"
class UAttributeSet;
class UAbilitySystemComponent;
USTRUCT(BlueprintType)
struct FWidgetControllerParams
{
GENERATED_BODY()
FWidgetControllerParams() {}
FWidgetControllerParams(APlayerController* PC, APlayerState* PS, UAbilitySystemComponent* ASC, UAttributeSet* AS) : PlayerController(PC), PlayerState(PS), AbilitySystemComponent(ASC), AttributeSet(AS) {}
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TObjectPtr<APlayerController> PlayerController = nullptr;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TObjectPtr<APlayerState> PlayerState = nullptr;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TObjectPtr<UAbilitySystemComponent> AbilitySystemComponent = nullptr;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TObjectPtr<UAttributeSet> AttributeSet = nullptr;
};
/**
*
*/
UCLASS()
class REALMSINRUIN_API URIRWidgetController : public UObject
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable, Category="WidgetController")
void SetWidgetControllerParams(const FWidgetControllerParams& WCParams);
virtual void BroadcastInitialInitialValues();
virtual void BindCallbacksToDependencies();
protected:
UPROPERTY(BlueprintReadOnly, Category="WidgetController")
TObjectPtr<APlayerController> PlayerController;
UPROPERTY(BlueprintReadOnly, Category="WidgetController")
TObjectPtr<APlayerState> PlayerState;
UPROPERTY(BlueprintReadOnly, Category="WidgetController")
TObjectPtr<UAbilitySystemComponent> AbilitySystemComponent;
UPROPERTY(BlueprintReadOnly, Category="WidgetController")
TObjectPtr<UAttributeSet> AttributeSet;
};
@@ -0,0 +1,27 @@
// Copyright (c) 2025 Trevor Edwards. All rights reserved.
#pragma once
#include "CoreMinimal.h"
#include "Blueprint/UserWidget.h"
#include "RIRUserWidget.generated.h"
/**
*
*/
UCLASS()
class REALMSINRUIN_API URIRUserWidget : public UUserWidget
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable)
void SetWidgetController(UObject* InWidgetController);
UPROPERTY(BlueprintReadOnly)
TObjectPtr<UObject> WidgetController;
protected:
UFUNCTION(BlueprintImplementableEvent)
void WidgetControllerSet();
};