53 lines
1.5 KiB
C
Raw Normal View History

2025-06-18 10:07:14 +08:00
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "SkillEffect.h"
#include "ProjectFish/Definations.h"
#include "UObject/Object.h"
#include "Skill.generated.h"
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FSkillUpdate);
/**
*
*/
UCLASS(BlueprintType)
class PROJECTFISH_API USkill : public UObject
{
GENERATED_BODY()
public:
void InitSkill(class APawnWithSkill* owner, USkillManager* skillManager, FSkillData SkillData);
void TickSkill(float deltaTime);
FString GetSkillName() const;
class APawnWithSkill* GetOwner();
FSkillData& GetSkillData();
void SetSkillData( FSkillData SkillData);
void ApplyRemainingTimeOffset(int timeOffset);
void ApplyRemainingRemainingEnduranceOffset(int Offset);
2025-06-23 10:29:35 +08:00
UFUNCTION(BlueprintPure)
bool SkillTickAble();
2025-06-18 10:07:14 +08:00
protected:
UPROPERTY(BlueprintAssignable)
FSkillUpdate OnSkillUpdate;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (ToolTip = "技能效果"))
FSkillData SkillData;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (ToolTip = "技能效果"))
USkillManager* SkillManager;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (ToolTip = "技能效果"))
TArray<USkillEffect*> SkillEffects;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (ToolTip = "技能所有者"))
class APawnWithSkill* Owner;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (ToolTip = "剩余冷却时间"))
float RemainingTime;
UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (ToolTip = "剩余耐久度"))
int32 RemainingEndurance;
};
2025-06-23 10:29:35 +08:00