Compare commits

..

No commits in common. "f72780bb003eeec4b0929894110caa06032186a1" and "9ddc4c9ace48ed7716ad867a67d22bb72d9f767f" have entirely different histories.

30 changed files with 66 additions and 117 deletions

BIN
Content/Enemy/DA_Enemy.uasset (Stored with Git LFS)

Binary file not shown.

BIN
Content/Enemy/NS_EnemyDamaged.uasset (Stored with Git LFS)

Binary file not shown.

BIN
Content/Materials/M_Projectile.uasset (Stored with Git LFS)

Binary file not shown.

BIN
Content/Meshes/SM_Projectile.uasset (Stored with Git LFS)

Binary file not shown.

BIN
Content/Weapons/DA_Projectile.uasset (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Content/Weapons/TestProjectileDataAsset.uasset (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -6,14 +6,15 @@
#include "EnemyDataAsset.h"
#include "EXPPickup.h"
#include "HealthComponent.h"
#include "MovieSceneTracksComponentTypes.h"
#include "ObjectPoolComponent.h"
#include "ObjectPoolManager.h"
#include "PaperFlipbookComponent.h"
#include "VampireAIController.h"
#include "VampireGameMode.h"
#include "Components/CapsuleComponent.h"
#include "Components/SphereComponent.h"
#include "Kismet/GameplayStatics.h"
#include "NiagaraFunctionLibrary.h"
AEnemyCharacter::AEnemyCharacter(const FObjectInitializer& ObjectInitializer)
{
@ -53,11 +54,6 @@ void AEnemyCharacter::OnDamaged(FDamageInfo damageInfo)
{
UGameplayStatics::PlaySoundAtLocation(GetWorld(), OnDamagedSound, GetActorLocation());
}
if (OnDamagedNiagaraSystem)
{
UNiagaraFunctionLibrary::SpawnSystemAtLocation(this, OnDamagedNiagaraSystem, GetActorLocation());
}
}
void AEnemyCharacter::OnDeath(FDamageInfo damageInfo)
@ -84,11 +80,6 @@ void AEnemyCharacter::OnDeath(FDamageInfo damageInfo)
{
UGameplayStatics::PlaySoundAtLocation(GetWorld(), OnDeathSound, GetActorLocation());
}
if (OnDeathNiagaraSystem)
{
UNiagaraFunctionLibrary::SpawnSystemAtLocation(this, OnDeathNiagaraSystem, GetActorLocation());
}
}
void AEnemyCharacter::LoadDataFromDataAsset_Implementation(UEnemyDataAsset* enemyDataAsset)
@ -100,8 +91,6 @@ void AEnemyCharacter::LoadDataFromDataAsset_Implementation(UEnemyDataAsset* enem
PickupTemplate = enemyDataAsset->PickupDataAsset;
OnDamagedSound = enemyDataAsset->OnDamagedSoundBase;
OnDeathSound = enemyDataAsset->OnDeathSoundBase;
OnDamagedNiagaraSystem = enemyDataAsset->OnDamagedNiagaraSystem;
OnDeathNiagaraSystem = enemyDataAsset->OnDeathNiagaraSystem;
}
}
@ -112,8 +101,6 @@ void AEnemyCharacter::ResetData_Implementation()
PickupTemplate = nullptr;
OnDamagedSound = nullptr;
OnDeathSound = nullptr;
OnDamagedNiagaraSystem = nullptr;
OnDeathNiagaraSystem = nullptr;
}
float AEnemyCharacter::GetCapsuleRadius_Implementation()

View File

@ -35,15 +35,13 @@ public:
private:
UPROPERTY(EditDefaultsOnly, Meta = (AllowPrivateAccess = "true"))
TObjectPtr<UBehaviorTree> BehaviorTree = nullptr;
UBehaviorTree* BehaviorTree = nullptr;
UPROPERTY()
TObjectPtr<UObjectPoolComponent> ObjectPoolComponent = nullptr;
UObjectPoolComponent* ObjectPoolComponent = nullptr;
UPROPERTY()
TObjectPtr<UPickupDataAsset> PickupTemplate = nullptr;
UPickupDataAsset* PickupTemplate = nullptr;
TArray<TObjectPtr<AActor>> Player;
TArray<AActor*> Player;
FTimerHandle DamageTimerHandle;

View File

@ -7,8 +7,8 @@
#include "Engine/DataAsset.h"
#include "EnemyDataAsset.generated.h"
class UPaperFlipbook;
class UBehaviorTree;
class UNiagaraSystem;
/**
*
@ -20,23 +20,17 @@ class VAMPIRES_API UEnemyDataAsset : public UDataAsset
public:
UPROPERTY(BlueprintReadWrite, EditAnywhere)
TObjectPtr<UStaticMesh> StaticMesh;
UStaticMesh* StaticMesh;
UPROPERTY(EditDefaultsOnly, Meta = (AllowPrivateAccess = "true"))
TObjectPtr<UBehaviorTree> BehaviorTree = nullptr;
UBehaviorTree* BehaviorTree = nullptr;
UPROPERTY(EditDefaultsOnly, Meta = (AllowPrivateAccess = "true"))
TObjectPtr<UPickupDataAsset> PickupDataAsset = nullptr;
UPickupDataAsset* PickupDataAsset = nullptr;
UPROPERTY(EditDefaultsOnly, Meta = (AllowPrivateAccess = "true"))
TObjectPtr<USoundBase> OnDamagedSoundBase = nullptr;
UPROPERTY(EditDefaultsOnly, Meta = (AllowPrivateAccess = "true"))
TObjectPtr<USoundBase> OnDeathSoundBase = nullptr;
UPROPERTY(EditDefaultsOnly, Meta = (AllowPrivateAccess = "true"))
TObjectPtr<UNiagaraSystem> OnDamagedNiagaraSystem;
UPROPERTY(EditDefaultsOnly, Meta = (AllowPrivateAccess = "true"))
TObjectPtr<UNiagaraSystem> OnDeathNiagaraSystem;
};

View File

@ -11,7 +11,7 @@ class VAMPIRES_API AObjectPoolManager : public AActor
{
GENERATED_BODY()
TArray<TObjectPtr<AActor>> ObjectPool = TArray<TObjectPtr<AActor>>();
TArray<AActor*> ObjectPool = TArray<AActor*>();
public:
void InitializeObjectPool(TSubclassOf<AActor> Object, int InitialObjectPoolSize = 400);

View File

@ -22,22 +22,22 @@ public:
int PickupValue = 1;
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
TObjectPtr<USphereComponent> InnerSphereComponent = nullptr;
USphereComponent* InnerSphereComponent = nullptr;
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
TObjectPtr<USphereComponent> OuterSphereComponent = nullptr;
USphereComponent* OuterSphereComponent = nullptr;
UPROPERTY(EditAnywhere)
TObjectPtr<UStaticMeshComponent> StaticMeshComponent = nullptr;
UStaticMeshComponent* StaticMeshComponent = nullptr;
UPROPERTY(EditDefaultsOnly)
TObjectPtr<USoundBase> PickupSoundBase = nullptr;
USoundBase* PickupSoundBase = nullptr;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Timeline")
TObjectPtr<UTimelineComponent> TimelineComponent = nullptr;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Timeline")
TObjectPtr<UCurveFloat> CurveFloat;
UCurveFloat* CurveFloat;
private:
FOnTimelineFloat onTimelineCallback;

View File

@ -26,13 +26,13 @@ class VAMPIRES_API APlayerCharacter : public AVampireCharacter
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TObjectPtr<UEXPComponent> EXPComponent;
UEXPComponent* EXPComponent;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TObjectPtr<UGoldComponent> GoldComponent;
UGoldComponent* GoldComponent;
UPROPERTY(EditAnywhere)
TObjectPtr<UWidgetComponent> HealthBarWidgetComponent;
UWidgetComponent* HealthBarWidgetComponent;
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
TObjectPtr<UTimelineComponent> CameraShakeTimelineComponent = nullptr;

View File

@ -18,10 +18,10 @@ class VAMPIRES_API AProjectile : public AActor, public IProjectilable
public:
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
TObjectPtr<USphereComponent> SphereComponent = nullptr;
USphereComponent* SphereComponent = nullptr;
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
TObjectPtr<UProjectileMovementComponent> ProjectileMovement = nullptr;
UProjectileMovementComponent* ProjectileMovement = nullptr;
FVector TargetDirection = FVector::ZeroVector;
@ -29,7 +29,7 @@ public:
float ProjectileSpeed = 500.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TObjectPtr<UStaticMeshComponent> StaticMeshComponent = nullptr;
UStaticMeshComponent* StaticMeshComponent = nullptr;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int RemainingDamagableEnemies = 1;

View File

@ -15,7 +15,7 @@
AVampireAIController::AVampireAIController(const FObjectInitializer& object_initializer) : Super(
object_initializer.SetDefaultSubobjectClass<UCrowdFollowingComponent>(TEXT("Path Following Component")))
{
DefaultBlackboard = CreateDefaultSubobject<UBlackboardComponent>(TEXT("Blackboard"));
Blackboard = CreateDefaultSubobject<UBlackboardComponent>(TEXT("Blackboard"));
BehaviorTree = CreateDefaultSubobject<UBehaviorTreeComponent>(TEXT("Behavior Tree"));
}
@ -38,7 +38,7 @@ void AVampireAIController::Tick(float DeltaTime)
if (PlayerCharacter)
{
DefaultBlackboard->SetValueAsVector("PlayerLocation", PlayerCharacter->GetActorLocation());
Blackboard->SetValueAsVector("PlayerLocation", PlayerCharacter->GetActorLocation());
}
}
@ -56,13 +56,13 @@ void AVampireAIController::OnPossess(APawn* InPawn)
if (UBehaviorTree* bt = EnemyCharacter->GetBehaviorTree())
{
DefaultBlackboard->InitializeBlackboard(*bt->BlackboardAsset);
Blackboard->InitializeBlackboard(*bt->BlackboardAsset);
BehaviorTree->StartTree(*bt);
DefaultBlackboard->SetValueAsObject("SelfActor", EnemyCharacter);
Blackboard->SetValueAsObject("SelfActor", EnemyCharacter);
if (PlayerCharacter)
{
DefaultBlackboard->SetValueAsObject("Player", PlayerCharacter);
Blackboard->SetValueAsObject("Player", PlayerCharacter);
}
}
}

View File

@ -18,17 +18,13 @@ class VAMPIRES_API AVampireAIController : public AAIController
{
GENERATED_BODY()
UPROPERTY()
TObjectPtr<UBlackboardComponent> DefaultBlackboard;
UBlackboardComponent* Blackboard;
UPROPERTY()
TObjectPtr<UBehaviorTreeComponent> BehaviorTree;
UBehaviorTreeComponent* BehaviorTree;
UPROPERTY()
TObjectPtr<ACharacter> PlayerCharacter;
ACharacter* PlayerCharacter;
UPROPERTY()
TObjectPtr<AEnemyCharacter> EnemyCharacter;
AEnemyCharacter* EnemyCharacter;
FTimerHandle PawnMoveToTimerHandle;

View File

@ -7,7 +7,6 @@
#include "GameFramework/Character.h"
#include "VampireCharacter.generated.h"
class UNiagaraSystem;
class AWeapon;
class UWeaponInventoryComponent;
class UInputAction;
@ -21,7 +20,7 @@ class VAMPIRES_API AVampireCharacter : public ACharacter, public IInputable
public:
UPROPERTY(BlueprintReadWrite, EditAnywhere)
TObjectPtr<UStaticMeshComponent> StaticMeshComponent;
UStaticMeshComponent* StaticMeshComponent;
FVector2D PreviousMovementDirection = FVector2d(1.0f, 0.0f);
@ -30,25 +29,19 @@ public:
protected:
UPROPERTY(VisibleAnywhere)
TObjectPtr<UHealthComponent> HealthComponent;
UHealthComponent* HealthComponent;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TObjectPtr<UInputMappingContext> InputMappingContext;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TObjectPtr<UWeaponInventoryComponent> WeaponInventoryComponent;
UWeaponInventoryComponent* WeaponInventoryComponent;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TObjectPtr<USoundBase> OnDamagedSound;
USoundBase* OnDamagedSound;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TObjectPtr<USoundBase> OnDeathSound;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TObjectPtr<UNiagaraSystem> OnDamagedNiagaraSystem;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TObjectPtr<UNiagaraSystem> OnDeathNiagaraSystem;
USoundBase* OnDeathSound;
public:
// Sets default values for this character's properties

View File

@ -39,26 +39,20 @@ public:
TArray<TObjectPtr<UEnemyDataAsset>> EnemyDataAssets;
private:
UPROPERTY()
TObjectPtr<APlayerCharacter> PlayerCharacter;
UPROPERTY()
TObjectPtr<AVampirePlayerController> PlayerController;
FTimerHandle SpawnEnemyTimerDelegate;
int EnemyDeathCount = 0;
UPROPERTY()
TObjectPtr<AObjectPoolManager> EnemyObjectPoolManager = nullptr;
UPROPERTY()
TObjectPtr<AObjectPoolManager> ProjectileObjectPoolManager = nullptr;
UPROPERTY()
TObjectPtr<AObjectPoolManager> PickupObjectPoolManager = nullptr;
UPROPERTY()
TArray<TObjectPtr<UEnemyDataAsset>> SpawnableEnemyDataAssets;
protected:

View File

@ -33,20 +33,17 @@ public:
// Inputs
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
TObjectPtr<UInputAction> MovementAction;
UInputAction* MovementAction;
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
TObjectPtr<UInputAction> PauseAction;
UInputAction* PauseAction;
private:
UPROPERTY()
TObjectPtr<UHUDWidget> currentPlayerHUD = nullptr;
UPROPERTY()
TObjectPtr<UPauseWidget> currentPauseUI = nullptr;
UPROPERTY()
TObjectPtr<ULevelUpWidget> currentLevelUpUI = nullptr;
FTimerHandle pawnLifeTimeHandle;

View File

@ -27,7 +27,7 @@ public:
TObjectPtr<UTexture2D> Icon;
UPROPERTY(EditDefaultsOnly, Category = "Weapon Properties")
TObjectPtr<USoundBase> WeaponActivatedSoundBase = nullptr;
USoundBase* WeaponActivatedSoundBase = nullptr;
UPROPERTY(EditDefaultsOnly, Category = "Weapon Properties")
TObjectPtr<UPaperSprite> WeaponSprite = nullptr;
@ -51,9 +51,9 @@ public:
protected:
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
TObjectPtr<UBoxComponent> BoxComponent = nullptr;
UBoxComponent* BoxComponent = nullptr;
TArray<TObjectPtr<AActor>> OverlappedEnemies = TArray<TObjectPtr<AActor>>();
TArray<AActor*> OverlappedEnemies = TArray<AActor*>();
private:
FTimerHandle WeaponTimerHandle;

View File

@ -24,7 +24,7 @@ public:
private:
UPROPERTY()
TArray<TObjectPtr<AWeapon>> inventory;
TArray<AWeapon*> inventory;
public:
// Sets default values for this component's properties

View File

@ -14,8 +14,7 @@ struct FOverlappedEnemy
{
GENERATED_BODY()
UPROPERTY()
TObjectPtr<AEnemyCharacter> OverlappedEnemyCharacter;
AEnemyCharacter* OverlappedEnemyCharacter;
FTimerHandle OverlappedTimerHandle;
};
@ -29,7 +28,7 @@ class VAMPIRES_API AGarlicWeapon : public AWeapon
GENERATED_BODY()
public:
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (AllowPrivateAccess = "true"))
TObjectPtr<USphereComponent> SphereComponent;
USphereComponent* SphereComponent;
TArray<FOverlappedEnemy> GarlicOverlappedEnemies;

View File

@ -18,7 +18,7 @@ class VAMPIRES_API APentagramWeapon : public AWeapon
GENERATED_BODY()
private:
TArray<TObjectPtr<APickup>> OverlappedPickups = TArray<TObjectPtr<APickup>>();
TArray<APickup*> OverlappedPickups = TArray<APickup*>();
public:
APentagramWeapon();

View File

@ -15,10 +15,10 @@ class VAMPIRES_API ASwarmAgent : public AActor
public:
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
TObjectPtr<USphereComponent> SphereComponent = nullptr;
USphereComponent* SphereComponent = nullptr;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
TObjectPtr<UStaticMeshComponent> StaticMeshComponent = nullptr;
UStaticMeshComponent* StaticMeshComponent = nullptr;
// Sets default values for this actor's properties
ASwarmAgent();

View File

@ -33,7 +33,7 @@ public:
private:
FOnTimelineFloat onTimelineCallback;
TArray<TObjectPtr<ASwarmAgent>> SwarmActors;
TArray<ASwarmAgent*> SwarmActors;
public:
// Sets default values for this actor's properties

View File

@ -8,7 +8,7 @@ public class vampires : ModuleRules
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput", "Paper2D", "Niagara" });
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput", "Paper2D" });
PrivateDependencyModuleNames.AddRange(new string[] { });