Files
MaybeThisTime/Source/MaybeThisTime/Public/Units/BaseUnit.h
T
2026-08-15 14:53:19 +02:00

49 lines
1.9 KiB
C++

// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Character.h"
#include "BaseAttributeSet.h"
#include "AbilitySystemInterface.h"
#include "Items/InventoryComponent.h"
#include "Commands/BaseCommand.h"
#include "Items/InventoryInterface.h"
#include "UI/OutlinerTypes.h"
#include "Interaction/InteractionInterface.h"
#include "BaseUnit.generated.h"
class UCommandComponent;
UCLASS()
class MAYBETHISTIME_API ABaseUnit : public ACharacter, public IAbilitySystemInterface, public IInteractionInterface, public IInventoryInterface
{
GENERATED_BODY()
public:
// Sets default values for this character's properties
ABaseUnit();
virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
virtual UAbilitySystemComponent* GetAbilitySystemComponent() const override;
void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Abilities") UCommandComponent* CommandComponent;
UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Abilities") UAbilitySystemComponent* AbilitySystemComponent;
UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Abilities") UBaseAttributeSet* AttributeSet;
UPROPERTY(EditDefaultsOnly) TArray<TSubclassOf<UGameplayEffect>> PassiveUpkeepEffects;
UPROPERTY(Replicated, EditAnywhere, BlueprintReadWrite) FName PrimaryFaction;
UPROPERTY(Replicated, EditAnywhere, BlueprintReadWrite) FText DisplayName;
// Inventory
UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = "Abilities") UInventoryComponent* InventoryComponent;
virtual UInventoryComponent* GetInventoryComponent_Implementation() const override;
// HUD
UFUNCTION(BlueprintCallable, BlueprintPure) virtual EOutlinerStatus GetOutlinerStatus() const;
protected:
virtual void BeginPlay() override;
};