From 3b1d4c86e5df9305de64412ee67acbd8f326aca8 Mon Sep 17 00:00:00 2001 From: Emilie Schott Date: Fri, 24 Jan 2025 11:19:39 +0100 Subject: [PATCH] Added : Attack function for enemies, callable in blueprint and overridable --- Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset | 4 ++-- .../Private/Enemy/DistantEnemy/LMDistantEnemy.cpp | 5 +++++ Source/LegumeMix/Private/Enemy/LMEnemy.cpp | 7 +++++++ .../Private/Enemy/MeleeEnemy/LMMeleeEnemy.cpp | 5 +++++ .../Public/Enemy/DistantEnemy/LMDistantEnemy.h | 1 + Source/LegumeMix/Public/Enemy/LMEnemy.h | 10 +++++++++- .../LegumeMix/Public/Enemy/MeleeEnemy/LMMeleeEnemy.h | 1 + 7 files changed, 30 insertions(+), 3 deletions(-) diff --git a/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset b/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset index 68243db..cca5ed0 100644 --- a/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset +++ b/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7af074235a0a90c5a20349e573f003c32c85ff1fd586d2698b2c7ca71afe7f12 -size 79519 +oid sha256:97473c9b4d5cfd6fbede4719c82c42913ccf5a984c03b733e1c248fb1c2ab66d +size 76813 diff --git a/Source/LegumeMix/Private/Enemy/DistantEnemy/LMDistantEnemy.cpp b/Source/LegumeMix/Private/Enemy/DistantEnemy/LMDistantEnemy.cpp index 76cc0eb..a6870d1 100644 --- a/Source/LegumeMix/Private/Enemy/DistantEnemy/LMDistantEnemy.cpp +++ b/Source/LegumeMix/Private/Enemy/DistantEnemy/LMDistantEnemy.cpp @@ -13,6 +13,11 @@ void ALMDistantEnemy::BeginPlay() } +void ALMDistantEnemy::Attack(const APawn* TargetedPawn) +{ + Super::Attack(TargetedPawn); +} + void ALMDistantEnemy::Tick(float DeltaTime) { Super::Tick(DeltaTime); diff --git a/Source/LegumeMix/Private/Enemy/LMEnemy.cpp b/Source/LegumeMix/Private/Enemy/LMEnemy.cpp index 47b24ef..3ff5bf9 100644 --- a/Source/LegumeMix/Private/Enemy/LMEnemy.cpp +++ b/Source/LegumeMix/Private/Enemy/LMEnemy.cpp @@ -13,6 +13,13 @@ void ALMEnemy::BeginPlay() Super::BeginPlay(); } +void ALMEnemy::Attack(const APawn* TargetedPawn) +{ + // TO DO + FString Debug = FString::Printf(TEXT("Enemy %s attack %s !"), *GetName(), *TargetedPawn->GetName()); + GEngine->AddOnScreenDebugMessage(1, 2.f, FColor::Cyan, Debug); +} + double ALMEnemy::GetDistanceToTarget(const AActor* TargetedActor) { return (TargetedActor->GetActorLocation() - GetActorLocation()).Length(); diff --git a/Source/LegumeMix/Private/Enemy/MeleeEnemy/LMMeleeEnemy.cpp b/Source/LegumeMix/Private/Enemy/MeleeEnemy/LMMeleeEnemy.cpp index a047dd4..84e860d 100644 --- a/Source/LegumeMix/Private/Enemy/MeleeEnemy/LMMeleeEnemy.cpp +++ b/Source/LegumeMix/Private/Enemy/MeleeEnemy/LMMeleeEnemy.cpp @@ -14,6 +14,11 @@ void ALMMeleeEnemy::BeginPlay() } +void ALMMeleeEnemy::Attack(const APawn* TargetedPawn) +{ + Super::Attack(TargetedPawn); +} + void ALMMeleeEnemy::Tick(float DeltaTime) { Super::Tick(DeltaTime); diff --git a/Source/LegumeMix/Public/Enemy/DistantEnemy/LMDistantEnemy.h b/Source/LegumeMix/Public/Enemy/DistantEnemy/LMDistantEnemy.h index ea1a314..cc64f0a 100644 --- a/Source/LegumeMix/Public/Enemy/DistantEnemy/LMDistantEnemy.h +++ b/Source/LegumeMix/Public/Enemy/DistantEnemy/LMDistantEnemy.h @@ -18,5 +18,6 @@ public: protected: virtual void BeginPlay() override; + virtual void Attack(const APawn* TargetedPawn) override; }; diff --git a/Source/LegumeMix/Public/Enemy/LMEnemy.h b/Source/LegumeMix/Public/Enemy/LMEnemy.h index 3a22c3b..6b9da99 100644 --- a/Source/LegumeMix/Public/Enemy/LMEnemy.h +++ b/Source/LegumeMix/Public/Enemy/LMEnemy.h @@ -25,7 +25,7 @@ public: protected: virtual void BeginPlay() override; - + UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (AllowPrivateAccess = "true"), Category = "Legumix") EEnemyState EnemyState; @@ -39,4 +39,12 @@ protected: */ UFUNCTION(BlueprintCallable, Category="Legumix", meta=(ReturnDisplayName="Distance", DefaultToSelf="TargetedActor")) double GetDistanceToTarget(const AActor* TargetedActor); + + /** + * Returns the distance between the enemy and a target. + * @param TargetedPawn + * @returns + */ + UFUNCTION(BlueprintCallable, Category="Legumix", meta=(DefaultToSelf="TargetedPawn")) + virtual void Attack(const APawn* TargetedPawn); }; diff --git a/Source/LegumeMix/Public/Enemy/MeleeEnemy/LMMeleeEnemy.h b/Source/LegumeMix/Public/Enemy/MeleeEnemy/LMMeleeEnemy.h index 58a36c5..4ebae5c 100644 --- a/Source/LegumeMix/Public/Enemy/MeleeEnemy/LMMeleeEnemy.h +++ b/Source/LegumeMix/Public/Enemy/MeleeEnemy/LMMeleeEnemy.h @@ -18,5 +18,6 @@ public: protected: virtual void BeginPlay() override; + virtual void Attack(const APawn* TargetedPawn) override; };