48 lines
1.1 KiB
C++

// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "ProjectFish/Definations.h"
#include "UObject/Object.h"
#include "SkillManager.generated.h"
/**
*
*/
UCLASS(BlueprintType)
class PROJECTFISH_API USkillManager : public UObject, public FTickableGameObject
{
GENERATED_BODY()
public:
virtual void Tick(float DeltaTime) override;
virtual bool IsTickable() const override;
virtual TStatId GetStatId() const override;
UFUNCTION(BlueprintCallable)
void InitPawns(TArray<APawnWithSkill*> Pawns);
UFUNCTION(BlueprintCallable)
USkill* CreateSkill(FSkillData data, APawnWithSkill* Pawn);
UFUNCTION(BlueprintCallable)
void RemoveSkill(class USkill *Skill);
UFUNCTION(BlueprintCallable)
TArray<APawnWithSkill*> GetAllPawns();
UFUNCTION(BlueprintPure)
TArray<class USkill*> GetSkillsByOwner(APawnWithSkill* Pawn);
UFUNCTION(BlueprintPure)
TArray<class USkill*> GetAllSkills();
protected:
UPROPERTY(BlueprintReadWrite)
TArray<class USkill *> Skills;
UPROPERTY(BlueprintReadWrite)
TArray<class APawnWithSkill *> SkillPawns;
UPROPERTY(BlueprintReadWrite)
bool bGameEnd = false;
};