diff --git a/Content/Enemy/DA_Enemy.uasset b/Content/Enemy/DA_Enemy.uasset index e4e9fe0..6249717 100644 --- a/Content/Enemy/DA_Enemy.uasset +++ b/Content/Enemy/DA_Enemy.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:690b2cb021e73a85c973489dd7b4c0baaad38fadc788d88e870b04716d73c6fd -size 2409 +oid sha256:e4b7ebb97dcd575efe7aaa188da0100b038d199222d90a177a74372870ea66c7 +size 2659 diff --git a/Content/Enemy/NS_EnemyDamaged.uasset b/Content/Enemy/NS_EnemyDamaged.uasset new file mode 100644 index 0000000..d142c44 --- /dev/null +++ b/Content/Enemy/NS_EnemyDamaged.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a317a6af97ccd6cb7c599aa3bc4fef64eb2968cee450d77df0b27b21a5c296e2 +size 748975 diff --git a/Source/vampires/EnemyCharacter.cpp b/Source/vampires/EnemyCharacter.cpp index 8ab0993..385767f 100644 --- a/Source/vampires/EnemyCharacter.cpp +++ b/Source/vampires/EnemyCharacter.cpp @@ -6,15 +6,14 @@ #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) { @@ -54,6 +53,11 @@ void AEnemyCharacter::OnDamaged(FDamageInfo damageInfo) { UGameplayStatics::PlaySoundAtLocation(GetWorld(), OnDamagedSound, GetActorLocation()); } + + if (OnDamagedNiagaraSystem) + { + UNiagaraFunctionLibrary::SpawnSystemAtLocation(this, OnDamagedNiagaraSystem, GetActorLocation()); + } } void AEnemyCharacter::OnDeath(FDamageInfo damageInfo) @@ -80,6 +84,11 @@ void AEnemyCharacter::OnDeath(FDamageInfo damageInfo) { UGameplayStatics::PlaySoundAtLocation(GetWorld(), OnDeathSound, GetActorLocation()); } + + if (OnDeathNiagaraSystem) + { + UNiagaraFunctionLibrary::SpawnSystemAtLocation(this, OnDeathNiagaraSystem, GetActorLocation()); + } } void AEnemyCharacter::LoadDataFromDataAsset_Implementation(UEnemyDataAsset* enemyDataAsset) @@ -91,6 +100,8 @@ void AEnemyCharacter::LoadDataFromDataAsset_Implementation(UEnemyDataAsset* enem PickupTemplate = enemyDataAsset->PickupDataAsset; OnDamagedSound = enemyDataAsset->OnDamagedSoundBase; OnDeathSound = enemyDataAsset->OnDeathSoundBase; + OnDamagedNiagaraSystem = enemyDataAsset->OnDamagedNiagaraSystem; + OnDeathNiagaraSystem = enemyDataAsset->OnDeathNiagaraSystem; } } @@ -101,6 +112,8 @@ void AEnemyCharacter::ResetData_Implementation() PickupTemplate = nullptr; OnDamagedSound = nullptr; OnDeathSound = nullptr; + OnDamagedNiagaraSystem = nullptr; + OnDeathNiagaraSystem = nullptr; } float AEnemyCharacter::GetCapsuleRadius_Implementation() diff --git a/Source/vampires/EnemyDataAsset.h b/Source/vampires/EnemyDataAsset.h index f4005c6..54c7931 100644 --- a/Source/vampires/EnemyDataAsset.h +++ b/Source/vampires/EnemyDataAsset.h @@ -7,8 +7,8 @@ #include "Engine/DataAsset.h" #include "EnemyDataAsset.generated.h" -class UPaperFlipbook; class UBehaviorTree; +class UNiagaraSystem; /** * @@ -33,4 +33,10 @@ public: UPROPERTY(EditDefaultsOnly, Meta = (AllowPrivateAccess = "true")) TObjectPtr OnDeathSoundBase = nullptr; + + UPROPERTY(EditDefaultsOnly, Meta = (AllowPrivateAccess = "true")) + UNiagaraSystem* OnDamagedNiagaraSystem; + + UPROPERTY(EditDefaultsOnly, Meta = (AllowPrivateAccess = "true")) + UNiagaraSystem* OnDeathNiagaraSystem; }; diff --git a/Source/vampires/VampireCharacter.h b/Source/vampires/VampireCharacter.h index d6445a6..d4f2e44 100644 --- a/Source/vampires/VampireCharacter.h +++ b/Source/vampires/VampireCharacter.h @@ -7,6 +7,7 @@ #include "GameFramework/Character.h" #include "VampireCharacter.generated.h" +class UNiagaraSystem; class AWeapon; class UWeaponInventoryComponent; class UInputAction; @@ -43,6 +44,12 @@ protected: UPROPERTY(EditAnywhere, BlueprintReadWrite) USoundBase* OnDeathSound; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + UNiagaraSystem* OnDamagedNiagaraSystem; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + UNiagaraSystem* OnDeathNiagaraSystem; + public: // Sets default values for this character's properties AVampireCharacter(); diff --git a/Source/vampires/vampires.Build.cs b/Source/vampires/vampires.Build.cs index 324e563..fd3ce34 100644 --- a/Source/vampires/vampires.Build.cs +++ b/Source/vampires/vampires.Build.cs @@ -8,7 +8,7 @@ public class vampires : ModuleRules { PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; - PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput", "Paper2D" }); + PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput", "Paper2D", "Niagara" }); PrivateDependencyModuleNames.AddRange(new string[] { });