// 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); UFUNCTION(BlueprintPure) bool SkillTickAble(); 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 SkillEffects; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (ToolTip = "技能所有者")) class APawnWithSkill* Owner; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (ToolTip = "剩余冷却时间")) float RemainingTime; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta = (ToolTip = "剩余耐久度")) int32 RemainingEndurance; };