@ -11,6 +11,12 @@ NetIndexFirstBitSegment=16
|
|||||||
+GameplayTagList=(Tag="Ability.Block.UltimatePlaying",DevComment="大招正在释放中")
|
+GameplayTagList=(Tag="Ability.Block.UltimatePlaying",DevComment="大招正在释放中")
|
||||||
+GameplayTagList=(Tag="Ability.Flags.Cooldown",DevComment="技能冷却")
|
+GameplayTagList=(Tag="Ability.Flags.Cooldown",DevComment="技能冷却")
|
||||||
+GameplayTagList=(Tag="Ability.Flags.Recast",DevComment="可以再次释放技能的标记")
|
+GameplayTagList=(Tag="Ability.Flags.Recast",DevComment="可以再次释放技能的标记")
|
||||||
|
+GameplayTagList=(Tag="Ability.Fox",DevComment="狐狸技能标签")
|
||||||
|
+GameplayTagList=(Tag="Ability.Fox.UltimateStage1",DevComment="一阶大招")
|
||||||
|
+GameplayTagList=(Tag="Ability.Fox.UltimateStage2",DevComment="二阶大招就绪标签")
|
||||||
|
+GameplayTagList=(Tag="Ability.Fox.UltimateStage3",DevComment="三阶大招就绪")
|
||||||
|
+GameplayTagList=(Tag="Ability.Recast",DevComment="技能可重新释放标签")
|
||||||
|
+GameplayTagList=(Tag="Ability.Recast.Ultimate",DevComment="大招可重新释放")
|
||||||
+GameplayTagList=(Tag="Ability.Role.AttributeConsume",DevComment="角色属性损耗debuff")
|
+GameplayTagList=(Tag="Ability.Role.AttributeConsume",DevComment="角色属性损耗debuff")
|
||||||
+GameplayTagList=(Tag="Ability.Role.EatFood",DevComment="干饭")
|
+GameplayTagList=(Tag="Ability.Role.EatFood",DevComment="干饭")
|
||||||
+GameplayTagList=(Tag="Ability.Role.Pick",DevComment="角色采集物品")
|
+GameplayTagList=(Tag="Ability.Role.Pick",DevComment="角色采集物品")
|
||||||
|
|||||||
Binary file not shown.
BIN
Content/Data/Ability/FoxUltimateDataAsset.uasset
Normal file
BIN
Content/Data/Ability/FoxUltimateDataAsset.uasset
Normal file
Binary file not shown.
Binary file not shown.
BIN
Content/Gas/Effects/Calc/MMC_FoxUltimateCostCalc.uasset
Normal file
BIN
Content/Gas/Effects/Calc/MMC_FoxUltimateCostCalc.uasset
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,20 @@
|
|||||||
|
#include "BlueprintLibrary/BusyAscLibrary.h"
|
||||||
|
|
||||||
|
#include "GameplayEffectTypes.h"
|
||||||
|
#include "Gas/BusyGameAbility.h"
|
||||||
|
|
||||||
|
UBusyAbilityDataAssetBase* UBusyAscLibrary::GetAbilityDataAssetByEffect(const FGameplayEffectSpec& Spec)
|
||||||
|
{
|
||||||
|
const FGameplayEffectContextHandle& Context = Spec.GetEffectContext();
|
||||||
|
if (const UBusyGameAbility* Ability = Cast<const UBusyGameAbility>(Context.GetAbility()))
|
||||||
|
{
|
||||||
|
return Ability->GetData();
|
||||||
|
}
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
AActor* UBusyAscLibrary::GetEffectInstigator(const FGameplayEffectSpec& Spec)
|
||||||
|
{
|
||||||
|
return Spec.GetEffectContext().GetInstigator();
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
#include "BlueprintLibrary/BusyCombatLibrary.h"
|
||||||
@ -21,7 +21,7 @@ bool UBusyGameAbility::GetAbilityEffectSpecHandle(const FName& EffectName, const
|
|||||||
|
|
||||||
// 2. 创建并设置GameplayEffect上下文
|
// 2. 创建并设置GameplayEffect上下文
|
||||||
FGameplayEffectContextHandle EffectContextHandle = Asc->MakeEffectContext();
|
FGameplayEffectContextHandle EffectContextHandle = Asc->MakeEffectContext();
|
||||||
|
|
||||||
// 3. 将当前对象设置为效果来源
|
// 3. 将当前对象设置为效果来源
|
||||||
EffectContextHandle.AddSourceObject(this);
|
EffectContextHandle.AddSourceObject(this);
|
||||||
|
|
||||||
@ -31,3 +31,13 @@ bool UBusyGameAbility::GetAbilityEffectSpecHandle(const FName& EffectName, const
|
|||||||
return Handle.IsValid();
|
return Handle.IsValid();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UBusyGameAbility::PostInitProperties()
|
||||||
|
{
|
||||||
|
Super::PostInitProperties();
|
||||||
|
if (SoftDataAsset)
|
||||||
|
{
|
||||||
|
Data = SoftDataAsset.LoadSynchronous();
|
||||||
|
Data->TargetAbility = this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
#include "SpineSkeletonAnimationComponent.h"
|
#include "SpineSkeletonAnimationComponent.h"
|
||||||
#include "Gas/BusyGameAbility.h"
|
#include "Gas/BusyGameAbility.h"
|
||||||
#include "Level/Actor/Components/BusyPawnMovement.h"
|
#include "Level/Actor/Components/BusyPawnMovement.h"
|
||||||
#include "Tables/BusyPawnConfig.h"
|
#include "Data/BusyPawnConfig.h"
|
||||||
|
|
||||||
DEFINE_LOG_CATEGORY(LogBusyPawn)
|
DEFINE_LOG_CATEGORY(LogBusyPawn)
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,6 @@
|
|||||||
#include "Level/Actor/BusyPlayerRole.h"
|
#include "Level/Actor/BusyPlayerRole.h"
|
||||||
#include "Camera/CameraComponent.h"
|
#include "Camera/CameraComponent.h"
|
||||||
#include "BusyGameplayLibrary.h"
|
#include "Data/BusyPawnConfig.h"
|
||||||
#include "Animation/AnimAttributes.h"
|
|
||||||
#include "Tables/BusyPawnConfig.h"
|
|
||||||
#include "GameFramework/SpringArmComponent.h"
|
#include "GameFramework/SpringArmComponent.h"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
18
Source/BusyRabbit/Public/BlueprintLibrary/BusyAscLibrary.h
Normal file
18
Source/BusyRabbit/Public/BlueprintLibrary/BusyAscLibrary.h
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Kismet/BlueprintFunctionLibrary.h"
|
||||||
|
#include "BusyAscLibrary.generated.h"
|
||||||
|
|
||||||
|
struct FGameplayEffectSpec;
|
||||||
|
class UBusyAbilityDataAssetBase;
|
||||||
|
|
||||||
|
UCLASS()
|
||||||
|
class UBusyAscLibrary : public UBlueprintFunctionLibrary
|
||||||
|
{
|
||||||
|
GENERATED_BODY()
|
||||||
|
public:
|
||||||
|
UFUNCTION(BlueprintCallable)
|
||||||
|
static UBusyAbilityDataAssetBase* GetAbilityDataAssetByEffect(const FGameplayEffectSpec& Spec);
|
||||||
|
|
||||||
|
UFUNCTION(BlueprintCallable)
|
||||||
|
static AActor* GetEffectInstigator(const FGameplayEffectSpec& Spec);
|
||||||
|
};
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
class BusyCombatLibrary
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
};
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "BusyAbilityDataAssetBase.generated.h"
|
||||||
|
|
||||||
|
|
||||||
|
class UBusyGameAbility;
|
||||||
|
|
||||||
|
UCLASS(BlueprintType)
|
||||||
|
class UBusyAbilityDataAssetBase : public UDataAsset
|
||||||
|
{
|
||||||
|
GENERATED_BODY()
|
||||||
|
public:
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="技能ID")
|
||||||
|
FName AbilityID;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="技能名称")
|
||||||
|
FText AbilityName;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="备注")
|
||||||
|
FString AbilityDesc;
|
||||||
|
|
||||||
|
TWeakObjectPtr<UBusyGameAbility> TargetAbility;
|
||||||
|
};
|
||||||
@ -0,0 +1,72 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "GameplayTagContainer.h"
|
||||||
|
#include "Data/Ability/BusyAbilityDataAssetBase.h"
|
||||||
|
#include "FoxAbilityDataAsset.generated.h"
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 狐狸大招技能配置
|
||||||
|
*/
|
||||||
|
UCLASS(BlueprintType)
|
||||||
|
class UFoxUltimateDataAsset : public UBusyAbilityDataAssetBase
|
||||||
|
{
|
||||||
|
GENERATED_BODY()
|
||||||
|
public:
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="一阶消耗", Category="技能消耗")
|
||||||
|
float FirstStageCost = 5.f;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="二阶消耗", Category="技能消耗")
|
||||||
|
float SecondStageCost = 8.f;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="三阶消耗", Category="技能消耗")
|
||||||
|
float LastStageCost = 12.f;
|
||||||
|
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="一阶伤害系数", Category="伤害系数")
|
||||||
|
float FirstStageDamageFactor = 5.f;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="二阶伤害系数", Category="伤害系数")
|
||||||
|
float SecondStageDamageFactor = 8.f;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="三阶伤害系数", Category="伤害系数")
|
||||||
|
float LastStageDamageFactor = 12.f;
|
||||||
|
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="一阶速度系数", Category="速度系数")
|
||||||
|
float FirstStageSpeedFactor = 5.f;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="二阶速度系数", Category="速度系数")
|
||||||
|
float SecondStageSpeedFactor = 8.f;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="三阶一段速度系数", Category="速度系数")
|
||||||
|
float LastStageNormalSpeedFactor = 12.f;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="三阶二段速度系数", Category="速度系数")
|
||||||
|
float LastStageSprintSpeedFactor = 12.f;
|
||||||
|
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="可释放二阶标签", Category="技能标签")
|
||||||
|
FGameplayTag SecondStageRecastTag;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="可释放三阶标签", Category="技能标签")
|
||||||
|
FGameplayTag LastStageRecastTag;
|
||||||
|
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="一阶标签", Category="技能标签")
|
||||||
|
FGameplayTag FirstStageTag;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="二阶标签", Category="技能标签")
|
||||||
|
FGameplayTag SecondStageTag;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="三阶标签", Category="技能标签")
|
||||||
|
FGameplayTag LastStageTag;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="可重新释放时长")
|
||||||
|
float RecastWindow = 6.f;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadOnly, DisplayName="冷却时间")
|
||||||
|
float CooldownTime = 15.f;
|
||||||
|
|
||||||
|
};
|
||||||
@ -1,5 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "slua.h"
|
#include "slua.h"
|
||||||
|
#include "Data/Ability/BusyAbilityDataAssetBase.h"
|
||||||
#include "Abilities/GameplayAbility.h"
|
#include "Abilities/GameplayAbility.h"
|
||||||
#include "BusyGameAbility.generated.h"
|
#include "BusyGameAbility.generated.h"
|
||||||
|
|
||||||
@ -19,12 +20,25 @@ public:
|
|||||||
public:
|
public:
|
||||||
UFUNCTION(BlueprintCallable)
|
UFUNCTION(BlueprintCallable)
|
||||||
bool GetAbilityEffectSpecHandle(const FName& EffectName, const UAbilitySystemComponent* Asc, const int32 Level, FGameplayEffectSpecHandle& Handle)const;
|
bool GetAbilityEffectSpecHandle(const FName& EffectName, const UAbilitySystemComponent* Asc, const int32 Level, FGameplayEffectSpecHandle& Handle)const;
|
||||||
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual void PostInitProperties()override;
|
||||||
|
UBusyAbilityDataAssetBase* GetData()const { return Data; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
||||||
FString LuaFilePath;
|
FString LuaFilePath;
|
||||||
|
|
||||||
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)
|
||||||
|
TSoftObjectPtr<UBusyAbilityDataAssetBase> SoftDataAsset;
|
||||||
|
|
||||||
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, DisplayName="技能效果")
|
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, DisplayName="技能效果")
|
||||||
TMap<FName, TSubclassOf<UGameplayEffect>> AbilityEffects;
|
TMap<FName, TSubclassOf<UGameplayEffect>> AbilityEffects;
|
||||||
|
|
||||||
|
|
||||||
|
protected:
|
||||||
|
UPROPERTY()
|
||||||
|
UBusyAbilityDataAssetBase* Data;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
21
Source/BusyRabbit/Public/Gas/BusyMagnitudeCalculation.h
Normal file
21
Source/BusyRabbit/Public/Gas/BusyMagnitudeCalculation.h
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "LuaOverriderInterface.h"
|
||||||
|
#include "GameplayModMagnitudeCalculation.h"
|
||||||
|
#include "BusyMagnitudeCalculation.generated.h"
|
||||||
|
|
||||||
|
UCLASS()
|
||||||
|
class UBusyMagnitudeCalculation : public UGameplayModMagnitudeCalculation, public ILuaOverriderInterface
|
||||||
|
{
|
||||||
|
GENERATED_BODY()
|
||||||
|
public:
|
||||||
|
virtual FString GetLuaFilePath_Implementation();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
UPROPERTY(EditDefaultsOnly)
|
||||||
|
FString LuaFilePath;
|
||||||
|
};
|
||||||
|
|
||||||
|
inline FString UBusyMagnitudeCalculation::GetLuaFilePath_Implementation()
|
||||||
|
{
|
||||||
|
return LuaFilePath;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user