haxis/Source/UnrealProject/Creatures/IllusionCharacter.h

47 lines
1.5 KiB
C++

// Project Lab - NHTV Igad
#pragma once
#include "Creatures/NetworkCharacter.h"
#include "IllusionCharacter.generated.h"
/**
*
*/
UCLASS()
class UNREALPROJECT_API AIllusionCharacter : public ANetworkCharacter
{
GENERATED_BODY()
public:
AIllusionCharacter();
virtual void BeginPlay() override;
virtual void Tick(float deltaTime)override;
virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
void MoveTo(FVector Location);
void Attack();
UFUNCTION(BluePrintCallable, Category = "Illusion Properties")
void Kill();
class ANetworkCharacter* target;
class ANetworkCharacter* GetClosestTarget();
// float percentage is a range between 0 and 100 where 100 is always attacking and 0 never attacking
bool IsAttacking(float changePercentage);
UPROPERTY(EditAnywhere, BlueprintReadWrite,Category = "Illusion Properties", meta = (ExposeOnSpawn))
class ANetworkPlayer* illOwner;
UPROPERTY(editAnywhere, Category = "Illusion Properties")
float aggroRange;
UPROPERTY(editAnywhere, BlueprintReadWrite,Category = "Illusion Properties", meta = (ExposeOnSpawn))
float lifeTime;
UPROPERTY(editAnywhere, BlueprintReadWrite, Category = "Illusion Properties", meta = (ExposeOnSpawn))
class UAbilityInfo* abilityInfo;
UPROPERTY(editAnywhere, Category = "Illusion Properties")
float acceptenceDistance;
UPROPERTY(editAnywhere, BlueprintReadWrite, Category = "Illusion Properties", meta = (ExposeOnSpawn))
TArray<class ANetworkCharacter*> targetList;
bool attacking;
private:
bool m_isdying;
};