Compare commits

..

No commits in common. "2307baf0caa2cd9dbff2a782c9cdeabfb66bcf09" and "0cb40e792b36c62e7eac3f2de7e0c6fd225aa7cd" have entirely different histories.

20 changed files with 17 additions and 43 deletions

View File

@ -47,7 +47,7 @@ public:
UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (ToolTip = "技能触发类型")) UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (ToolTip = "技能触发类型"))
ESkillTriggerType triggerType = ESkillTriggerType::ActiveSkill; ESkillTriggerType triggerType = ESkillTriggerType::ActiveSkill;
UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (ToolTip = "技能耐久度", EditConditionHides,EditCondition = "triggerType == ESkillTriggerType::ActiveSkill")) UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (ToolTip = "技能耐久度", EditConditionHides, EditCondition = "bActiveSkill"))
int32 Endurance; int32 Endurance;
//主动技能属性 //主动技能属性

View File

@ -57,7 +57,7 @@ enum class ESkillTriggerType: uint8
UENUM(BlueprintType) UENUM(BlueprintType)
enum class EPassiveTriggerCondition: uint8 enum class EPassiveTriggerCondition: uint8
{ {
ItemTriggered UMETA(DisplayName = "自身或者敌人的物品触发时,激活"), ItemTriggered UMETA(DisplayName = "物品触发"),
DealDamage UMETA(DisplayName = "造成伤害"), DealDamage UMETA(DisplayName = "造成伤害"),
SkillDurabilityDecrease UMETA(DisplayName = "物品耐久度减少"), SkillDurabilityDecrease UMETA(DisplayName = "物品耐久度减少"),
SkillDurabilityRestore UMETA(DisplayName = "物品耐久度回复"), SkillDurabilityRestore UMETA(DisplayName = "物品耐久度回复"),

View File

@ -40,7 +40,7 @@ void APawnWithSkill::BeginPlay()
{ {
Super::BeginPlay(); Super::BeginPlay();
CurrentEndurance = MaxEndurance; CurrentEndurance = MaxEndurance;
CurrentTenacity = MaxTenacity; CurrentTenacity += MaxTenacity;
} }
// Called every frame // Called every frame

View File

@ -4,7 +4,6 @@
#include "SkillManager.h" #include "SkillManager.h"
#include "Skill.h" #include "Skill.h"
#include "ProjectFish/DataAsset/BagConfigAsset.h" #include "ProjectFish/DataAsset/BagConfigAsset.h"
#include "ProjectFish/DataAsset/BagShapeAsset.h"
void USkillManager::Tick(float DeltaTime) void USkillManager::Tick(float DeltaTime)
{ {
@ -43,7 +42,6 @@ void USkillManager::AddBagWithSkills(UBagConfigAsset* Bag, APawnWithSkill* Pawn,
TArray<FIntPoint>& BagPositions) TArray<FIntPoint>& BagPositions)
{ {
FIntPoint BagSize = *PawnInfo.Find(Pawn); FIntPoint BagSize = *PawnInfo.Find(Pawn);
TMap<FIntPoint, int32>* states = PawnBagState.Find(Pawn);
for (auto PlacedSkill: Bag->PlacedSkills) for (auto PlacedSkill: Bag->PlacedSkills)
{ {
USkill* skill = NewObject<USkill>(this); USkill* skill = NewObject<USkill>(this);
@ -51,14 +49,6 @@ void USkillManager::AddBagWithSkills(UBagConfigAsset* Bag, APawnWithSkill* Pawn,
SkillObjects.Add(skill); SkillObjects.Add(skill);
BagPositions.Add(FIntPoint(PlacedSkill.PositionX, PlacedSkill.PositionY)); BagPositions.Add(FIntPoint(PlacedSkill.PositionX, PlacedSkill.PositionY));
Skills.Add(skill); Skills.Add(skill);
//设置占用状态
for (int x = 0; x < Bag->BagShapeAsset->BagWidth; x++)
{
for (int y = 0; y < Bag->BagShapeAsset->BagHeight; y++)
{
states->Add(FIntPoint(x, y) + FIntPoint(x, y), GetSkillIndex(skill));
}
}
} }
@ -177,5 +167,3 @@ TArray<USkill*> USkillManager::GetSkillsByType(ESkillType SkillType) const
} }
return Result; return Result;
} }

View File

@ -62,7 +62,6 @@ public:
UFUNCTION(BlueprintPure) UFUNCTION(BlueprintPure)
TArray<class USkill*> GetSkillsByType(ESkillType SkillType) const; TArray<class USkill*> GetSkillsByType(ESkillType SkillType) const;
protected: protected:
UPROPERTY(BlueprintReadWrite) UPROPERTY(BlueprintReadWrite)
TArray<class USkill *> Skills; TArray<class USkill *> Skills;

View File

@ -44,35 +44,22 @@ void USkillTrigger::InitPassiveConditionTriggers()
case EPassiveTriggerCondition::ItemTriggered: case EPassiveTriggerCondition::ItemTriggered:
{ {
//物品执行时触发 //物品执行时触发
//FGuid TriggerSkillID = PassiveTriggerConfig.SpecificSkillID; FGuid TriggerSkillID = PassiveTriggerConfig.SpecificSkillID;
// if (PassiveTriggerConfig.Target == EPassiveTriggerTarget::SelfSpecificItem) if (PassiveTriggerConfig.Target == EPassiveTriggerTarget::SelfSpecificItem)
// {
// //自身
// TArray<USkill*> SpecificSkills = SkillContext.SkillManager->GetSkillsByOwnerAndID(SkillContext.OwnerSkill->GetOwner(), TriggerSkillID);
// for (USkill* Skill : SpecificSkills)
// {
// Skill->OnSkillExecute.AddDynamic(this, &USkillTrigger::OnSkillExecute);
//
// }
// }
// else if (PassiveTriggerConfig.Target == EPassiveTriggerTarget::EnemySpecificItem)
// {
// //敌人
// TArray<USkill*> SpecificSkills = SkillContext.SkillManager->GetSkillsByOwnerAndID(SkillContext.SkillManager->GetEnemyPawn(SkillContext.OwnerSkill->GetOwner()), TriggerSkillID);
// for (USkill* Skill : SpecificSkills)
// {
// Skill->OnSkillExecute.AddDynamic(this, &USkillTrigger::OnSkillExecute);
// }
// }
if (PassiveTriggerConfig.Target ==EPassiveTriggerTarget::Self || PassiveTriggerConfig.Target ==EPassiveTriggerTarget::Enemy)
{ {
APawnWithSkill* TargetPawn = PassiveTriggerConfig.Target ==EPassiveTriggerTarget::Self ? SkillContext.OwnerSkill->GetOwner(): TArray<USkill*> SpecificSkills = SkillContext.SkillManager->GetSkillsByOwnerAndID(SkillContext.OwnerSkill->GetOwner(), TriggerSkillID);
SkillContext.SkillManager->GetEnemyPawn(SkillContext.OwnerSkill->GetOwner()); for (USkill* Skill : SpecificSkills)
TArray<USkill*> PawnSkills = SkillContext.SkillManager->GetSkillsByOwner(TargetPawn);
for (USkill* Skill : PawnSkills)
{ {
if (Skill != SkillContext.OwnerSkill) Skill->OnSkillExecute.AddDynamic(this, &USkillTrigger::OnSkillExecute);
Skill->OnSkillExecute.AddDynamic(this, &USkillTrigger::OnSkillExecute);
}
}
else if (PassiveTriggerConfig.Target == EPassiveTriggerTarget::EnemySpecificItem)
{
TArray<USkill*> SpecificSkills = SkillContext.SkillManager->GetSkillsByOwnerAndID(SkillContext.SkillManager->GetEnemyPawn(SkillContext.OwnerSkill->GetOwner()), TriggerSkillID);
for (USkill* Skill : SpecificSkills)
{
Skill->OnSkillExecute.AddDynamic(this, &USkillTrigger::OnSkillExecute);
} }
} }
else else