孟宇 3 månader sedan
förälder
incheckning
18221a84f8

+ 2 - 5
Ability/Plugins/EzAbility/Source/EzAbility/Private/EzAbility.cpp

@@ -2,6 +2,8 @@
 
 #include "EzAbility.h"
 
+#include "EzAbilityContext.h"
+
 UEzAbility::UEzAbility(const FObjectInitializer& ObjectInitializer)
 	: Super(ObjectInitializer)
 {
@@ -12,11 +14,6 @@ bool UEzAbility::CanActivateAbility(FEzAbilityContext& Context, FText& OutText)
 	return K2_CanActivateAbility(Context, OutText);
 }
 
-bool UEzAbility::ActivateAbility(FEzAbilityContext& Context, const FEzAbilityParameter& Parameter, FText& OutText) const
-{
-	return false;
-}
-
 bool UEzAbility::K2_ActivateAbility_Implementation(FEzAbilityContext& Context) const
 {
 	return true;

+ 6 - 3
Ability/Plugins/EzAbility/Source/EzAbility/Private/EzAbilityComponent_Ability.cpp

@@ -11,15 +11,18 @@ bool UEzAbilityComponent::InternalActivateAbility(const UEzAbility* Ability, con
 	FText OutText;
 	if(!Ability->CanActivateAbility(AbilityContext, OutText))
 	{
+		NotifyAbilityFailed(Ability, OutText);
 		return false;
 	}
 
-	if(Ability->ActivateAbility(AbilityContext, Parameter, OutText))
+
+	if(EAbilityRunStatus::Succeeded != AbilityContext.Start(Ability, Parameter, OutText))
 	{
-		return true;
+		NotifyAbilityFailed(Ability, OutText);
+		return false;
 	}
 	
-	return false;
+	return true;
 }
 
 void UEzAbilityComponent::NotifyAbilityFailed(const UEzAbility* Ability, const FText& Text)

+ 15 - 9
Ability/Plugins/EzAbility/Source/EzAbility/Private/EzAbilityContext.cpp

@@ -62,11 +62,17 @@ bool FEzAbilityContext::IsNetAuthority() const
 	return false;
 }
 
+EAbilityRunStatus FEzAbilityContext::Start(const UEzAbility* InAbility, const FEzAbilityParameter& Parameter, FText& OutText)
+{
+	if(Ability != nullptr)
+	{
+		//TODO 打断技能
+	}
 
-// EAbilityRunStatus FEzAbilityContext::Start()
-// {
-// 	return EAbilityRunStatus::Failed;
-// }
+	//TODO 初始化技能信息
+	
+	return EAbilityRunStatus::Failed;
+}
 
 // EAbilityRunStatus FEzAbilityContext::Tick(float DeltaTime)
 // {
@@ -77,8 +83,8 @@ bool FEzAbilityContext::IsNetAuthority() const
 // {
 // 	return EAbilityRunStatus::Failed;
 // }
-//
-// EAbilityRunStatus FEzAbilityContext::GetAbilityRunStatus() const
-// {
-// 	return EAbilityRunStatus::Failed;
-// }
+
+EAbilityRunStatus FEzAbilityContext::GetAbilityRunStatus() const
+{
+	return EAbilityRunStatus::Failed;
+}

+ 0 - 1
Ability/Plugins/EzAbility/Source/EzAbility/Public/EzAbility.h

@@ -19,7 +19,6 @@ public:
 	UEzAbility(const FObjectInitializer& ObjectInitializer);
 	
 	virtual bool CanActivateAbility(FEzAbilityContext& Context, FText& OutText) const;
-	virtual bool ActivateAbility(FEzAbilityContext& Context, const FEzAbilityParameter& Parameter, FText& OutText) const;
 	virtual bool ShouldReplicate(const FEzAbilityInstance& Instance) const;
 
 protected:

+ 8 - 3
Ability/Plugins/EzAbility/Source/EzAbility/Public/EzAbilityContext.h

@@ -4,9 +4,12 @@
 
 #include "CoreMinimal.h"
 #include "UObject/Object.h"
+#include "EzAbilityTypes.h"
 #include "EzAbilityContext.generated.h"
 
 class UEzAbilityComponent;
+class UEzAbility;
+struct FEzAbilityParameter;
 
 /**
  * 
@@ -20,13 +23,15 @@ public:
 	bool IsLocallyControlled() const;
 	bool IsNetAuthority() const;
 	
-	
-	// EAbilityRunStatus Start();
+	EAbilityRunStatus Start(const UEzAbility* InAbility, const FEzAbilityParameter& Parameter, FText& OutText);
 	// EAbilityRunStatus Tick(float DeltaTime);
 	// EAbilityRunStatus Stop();
 	//
-	// EAbilityRunStatus GetAbilityRunStatus() const;
+	EAbilityRunStatus GetAbilityRunStatus() const;
 protected:
+	UPROPERTY(Transient)
+	TObjectPtr<UEzAbility>				Ability;
+	
 	UPROPERTY(Transient)
 	TWeakObjectPtr<UEzAbilityComponent>	AbilityComponent;