diff --git a/Content/Legumix/BP_GameMode.uasset b/Content/Legumix/BP_GameMode.uasset index c44688e..eb7174e 100644 --- a/Content/Legumix/BP_GameMode.uasset +++ b/Content/Legumix/BP_GameMode.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e675e0cde9b82aaa2171be4f5bdaafc7ec19a9b3ca674a5d06f6756741c0ed01 +oid sha256:320296b9119206f37731b93db97e04944aa782f712ea84fda01cbd1bd0e44223 size 20983 diff --git a/Content/Legumix/Ennemy/DistantEnemy/AIC_DistantEnnemy.uasset b/Content/Legumix/Ennemy/DistantEnemy/AIC_DistantEnnemy.uasset new file mode 100644 index 0000000..59e4b75 --- /dev/null +++ b/Content/Legumix/Ennemy/DistantEnemy/AIC_DistantEnnemy.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d97eacadb31bb9062ca3918e5b2fde965a8a75a4002d97f6c113960d725acab8 +size 25060 diff --git a/Content/Legumix/Ennemy/DistantEnemy/BP_DistantEnemy.uasset b/Content/Legumix/Ennemy/DistantEnemy/BP_DistantEnemy.uasset new file mode 100644 index 0000000..1e4391d --- /dev/null +++ b/Content/Legumix/Ennemy/DistantEnemy/BP_DistantEnemy.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d45646d12e90f3e3ec101dea73b1876c75bb827eeebb5d705ecae081b6c6ae5 +size 65141 diff --git a/Content/Legumix/Ennemy/DistantEnemy/M_DistantEnemyTemp.uasset b/Content/Legumix/Ennemy/DistantEnemy/M_DistantEnemyTemp.uasset new file mode 100644 index 0000000..d694115 --- /dev/null +++ b/Content/Legumix/Ennemy/DistantEnemy/M_DistantEnemyTemp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9b33f71da3d945f8c826d25ec7b72f4e75e908649abeb7073f85a46a9aa9204 +size 15318 diff --git a/Content/Legumix/Ennemy/MeleeEnemy/AI/BB_MeleeEnemy.uasset b/Content/Legumix/Ennemy/MeleeEnemy/AI/BB_MeleeEnemy.uasset new file mode 100644 index 0000000..0289644 --- /dev/null +++ b/Content/Legumix/Ennemy/MeleeEnemy/AI/BB_MeleeEnemy.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e15796b9c82aa0affe44bab93af507a34ec12da0f405631f8b0945b21917356 +size 3050 diff --git a/Content/Legumix/Ennemy/MeleeEnemy/AI/BT_MeleeEnemy.uasset b/Content/Legumix/Ennemy/MeleeEnemy/AI/BT_MeleeEnemy.uasset new file mode 100644 index 0000000..baf6b0e --- /dev/null +++ b/Content/Legumix/Ennemy/MeleeEnemy/AI/BT_MeleeEnemy.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5eae06a7a036d39145e16e4ab215d2dcd8a79b18411bcb4e0b4058ea9f47257 +size 13816 diff --git a/Content/Legumix/Ennemy/MeleeEnemy/AI/Task/BTTask_Attack.uasset b/Content/Legumix/Ennemy/MeleeEnemy/AI/Task/BTTask_Attack.uasset new file mode 100644 index 0000000..29f5e00 --- /dev/null +++ b/Content/Legumix/Ennemy/MeleeEnemy/AI/Task/BTTask_Attack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:098a7cadf8e6cb3a31a632b8c60545502cec800cf74e85f875260bd9b6ce772a +size 38420 diff --git a/Content/Legumix/Ennemy/MeleeEnemy/AI/Task/BTTask_FindPlayer.uasset b/Content/Legumix/Ennemy/MeleeEnemy/AI/Task/BTTask_FindPlayer.uasset new file mode 100644 index 0000000..0084009 --- /dev/null +++ b/Content/Legumix/Ennemy/MeleeEnemy/AI/Task/BTTask_FindPlayer.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a0412b2e95fd7bdbd533064767291320dbe94fac3eb8bea850b0174a35f890f +size 45160 diff --git a/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset b/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset new file mode 100644 index 0000000..da93177 --- /dev/null +++ b/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemy.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb126c4a0ff1e81e1b5d5af696f2d73ce008cc5c9101f862b42e073276caddd5 +size 90684 diff --git a/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemyController.uasset b/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemyController.uasset new file mode 100644 index 0000000..5c8c676 --- /dev/null +++ b/Content/Legumix/Ennemy/MeleeEnemy/BP_MeleeEnemyController.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d49259cf69991521d5a6a80a22dbcf368c73a02e583263cf6123d264a71f6493 +size 25155 diff --git a/Content/Legumix/Ennemy/MeleeEnemy/M_MeleeEnemyTemp.uasset b/Content/Legumix/Ennemy/MeleeEnemy/M_MeleeEnemyTemp.uasset new file mode 100644 index 0000000..3e74616 --- /dev/null +++ b/Content/Legumix/Ennemy/MeleeEnemy/M_MeleeEnemyTemp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:906f7ca92661d1b85467febfb40cb00fb6061279c76330c51a36f85ddb17f674 +size 15283 diff --git a/Content/Legumix/Ennemy/MeleeEnemy/SKM_MeleeEnemy.uasset b/Content/Legumix/Ennemy/MeleeEnemy/SKM_MeleeEnemy.uasset new file mode 100644 index 0000000..6cffc7f --- /dev/null +++ b/Content/Legumix/Ennemy/MeleeEnemy/SKM_MeleeEnemy.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6628e20f0100e9a74e08ea8422573c41c893d1d0526db80580ed8df846f3c3e5 +size 970282 diff --git a/Content/Legumix/Ennemy/Range/BB_RangeEnnemy.uasset b/Content/Legumix/Ennemy/Range/BB_RangeEnnemy.uasset new file mode 100644 index 0000000..ef8393d --- /dev/null +++ b/Content/Legumix/Ennemy/Range/BB_RangeEnnemy.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e4188cdb69409e36a77ee52c3fca8257478572e909b8737d04e1a14354769d8 +size 3033 diff --git a/Content/Legumix/Ennemy/Range/BTDecorator_ConditionToRepositionate.uasset b/Content/Legumix/Ennemy/Range/BTDecorator_ConditionToRepositionate.uasset new file mode 100644 index 0000000..a0c4c88 --- /dev/null +++ b/Content/Legumix/Ennemy/Range/BTDecorator_ConditionToRepositionate.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24634565912bce075d6a03776b110df7d3f8ca33bd01917271e99d9760f41414 +size 37233 diff --git a/Content/Legumix/Ennemy/Range/BT_RangeEnnemy.uasset b/Content/Legumix/Ennemy/Range/BT_RangeEnnemy.uasset new file mode 100644 index 0000000..3c7a361 --- /dev/null +++ b/Content/Legumix/Ennemy/Range/BT_RangeEnnemy.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81a6a23af6f9a2302235810bf15ab92bd7bb03226fd840c8d90b0c90b0018646 +size 17102 diff --git a/Content/Legumix/Ennemy/Range/EQC_Player.uasset b/Content/Legumix/Ennemy/Range/EQC_Player.uasset new file mode 100644 index 0000000..145878d --- /dev/null +++ b/Content/Legumix/Ennemy/Range/EQC_Player.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35ea376c5fa60940698a5363234de3999869fe61bd56e0a155d9fc7780bf0b50 +size 21320 diff --git a/Content/Legumix/Ennemy/Range/EQSTester.uasset b/Content/Legumix/Ennemy/Range/EQSTester.uasset new file mode 100644 index 0000000..ca024c6 --- /dev/null +++ b/Content/Legumix/Ennemy/Range/EQSTester.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0649f82aceb6cca4ae4f46fdfc9ddb37af49d7b8bbe5af2fb371a32fdc11913a +size 24306 diff --git a/Content/Legumix/Ennemy/Range/EQS_RangeEnnemy.uasset b/Content/Legumix/Ennemy/Range/EQS_RangeEnnemy.uasset new file mode 100644 index 0000000..f0a3614 --- /dev/null +++ b/Content/Legumix/Ennemy/Range/EQS_RangeEnnemy.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd7dafe77e932ec7a53b6a78551f99db23aee9c3db08344f532111ff3af0b9db +size 20789 diff --git a/Content/Legumix/Levels/LVL_GYM_00.umap b/Content/Legumix/Levels/LVL_GYM_00.umap index e104dc7..cd95459 100644 --- a/Content/Legumix/Levels/LVL_GYM_00.umap +++ b/Content/Legumix/Levels/LVL_GYM_00.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:58e1830d8daaecddb4f46fee63b40c87f48829325b93cad9cf28d1439c9905be -size 409777 +oid sha256:5b94fa8aed5de1edb9f1855437f449f9e2e05154fa93e4b14e30c15a5ba9e557 +size 766024 diff --git a/Source/LegumeMix/Private/Enemy/DistantEnemy/LMDistantEnemy.cpp b/Source/LegumeMix/Private/Enemy/DistantEnemy/LMDistantEnemy.cpp new file mode 100644 index 0000000..a6870d1 --- /dev/null +++ b/Source/LegumeMix/Private/Enemy/DistantEnemy/LMDistantEnemy.cpp @@ -0,0 +1,30 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "Enemy/DistantEnemy/LMDistantEnemy.h" + +ALMDistantEnemy::ALMDistantEnemy() +{ + PrimaryActorTick.bCanEverTick = true; +} + +void ALMDistantEnemy::BeginPlay() +{ + Super::BeginPlay(); + +} + +void ALMDistantEnemy::Attack(const APawn* TargetedPawn) +{ + Super::Attack(TargetedPawn); +} + +void ALMDistantEnemy::Tick(float DeltaTime) +{ + Super::Tick(DeltaTime); +} + +void ALMDistantEnemy::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) +{ + Super::SetupPlayerInputComponent(PlayerInputComponent); +} + diff --git a/Source/LegumeMix/Private/Enemy/LMEnemy.cpp b/Source/LegumeMix/Private/Enemy/LMEnemy.cpp new file mode 100644 index 0000000..3ff5bf9 --- /dev/null +++ b/Source/LegumeMix/Private/Enemy/LMEnemy.cpp @@ -0,0 +1,37 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "Enemy/LMEnemy.h" + +ALMEnemy::ALMEnemy() +{ + PrimaryActorTick.bCanEverTick = true; + EnemyState = EEnemyState::EES_Chasing; +} + +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(); +} + +void ALMEnemy::Tick(float DeltaTime) +{ + Super::Tick(DeltaTime); +} + +void ALMEnemy::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) +{ + Super::SetupPlayerInputComponent(PlayerInputComponent); +} + diff --git a/Source/LegumeMix/Private/Enemy/MeleeEnemy/LMMeleeEnemy.cpp b/Source/LegumeMix/Private/Enemy/MeleeEnemy/LMMeleeEnemy.cpp new file mode 100644 index 0000000..84e860d --- /dev/null +++ b/Source/LegumeMix/Private/Enemy/MeleeEnemy/LMMeleeEnemy.cpp @@ -0,0 +1,30 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "Enemy/MeleeEnemy/LMMeleeEnemy.h" + +ALMMeleeEnemy::ALMMeleeEnemy() +{ + PrimaryActorTick.bCanEverTick = true; + AttackingRadius = 100.f; +} + +void ALMMeleeEnemy::BeginPlay() +{ + Super::BeginPlay(); + +} + +void ALMMeleeEnemy::Attack(const APawn* TargetedPawn) +{ + Super::Attack(TargetedPawn); +} + +void ALMMeleeEnemy::Tick(float DeltaTime) +{ + Super::Tick(DeltaTime); +} + +void ALMMeleeEnemy::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) +{ + Super::SetupPlayerInputComponent(PlayerInputComponent); +} diff --git a/Source/LegumeMix/Public/Enemy/DistantEnemy/LMDistantEnemy.h b/Source/LegumeMix/Public/Enemy/DistantEnemy/LMDistantEnemy.h new file mode 100644 index 0000000..cc64f0a --- /dev/null +++ b/Source/LegumeMix/Public/Enemy/DistantEnemy/LMDistantEnemy.h @@ -0,0 +1,23 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Enemy/LMEnemy.h" +#include "LMDistantEnemy.generated.h" + +UCLASS() +class LEGUMEMIX_API ALMDistantEnemy : public ALMEnemy +{ + GENERATED_BODY() + +public: + ALMDistantEnemy(); + virtual void Tick(float DeltaTime) override; + virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override; + +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 new file mode 100644 index 0000000..6b9da99 --- /dev/null +++ b/Source/LegumeMix/Public/Enemy/LMEnemy.h @@ -0,0 +1,50 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/Character.h" +#include "LMEnemy.generated.h" + +UENUM(BlueprintType) +enum class EEnemyState : uint8 +{ + EES_Chasing UMETA(DisplayName = "Chasing"), + EES_Attacking UMETA(DisplayName = "Attacking") +}; + +UCLASS() +class LEGUMEMIX_API ALMEnemy : public ACharacter +{ + GENERATED_BODY() + +public: + ALMEnemy(); + virtual void Tick(float DeltaTime) override; + virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override; + +protected: + virtual void BeginPlay() override; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (AllowPrivateAccess = "true"), Category = "Legumix") + EEnemyState EnemyState; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (AllowPrivateAccess = "true"), Category = "Legumix") + double AttackingRadius; + + /** + * Returns the distance between the enemy and a target. + * @param TargetedActor + * @returns the distance + */ + 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 new file mode 100644 index 0000000..4ebae5c --- /dev/null +++ b/Source/LegumeMix/Public/Enemy/MeleeEnemy/LMMeleeEnemy.h @@ -0,0 +1,23 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Enemy/LMEnemy.h" +#include "LMMeleeEnemy.generated.h" + +UCLASS() +class LEGUMEMIX_API ALMMeleeEnemy : public ALMEnemy +{ + GENERATED_BODY() + +public: + ALMMeleeEnemy(); + virtual void Tick(float DeltaTime) override; + virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override; + +protected: + virtual void BeginPlay() override; + virtual void Attack(const APawn* TargetedPawn) override; + +};