mirror of
https://github.com/Ed94/Cog.git
synced 2026-07-28 18:30:04 +00:00
Make the damage window more generic
The goal was to handle gameplay event other than damage, such as heals. Renamed it to metric.
This commit is contained in:
@@ -348,13 +348,11 @@ void ACogSampleCharacter::Look(const FInputActionValue& Value)
|
||||
void ACogSampleCharacter::OnDamageReceived(float ReceivedDamage, float IncomingDamage, AActor* DamageDealer, const FGameplayEffectSpec& EffectSpec)
|
||||
{
|
||||
#if USE_COG
|
||||
FCogInterfaceDamageParams Params;
|
||||
Params.Type = ECogInterfaceDamageEventType::DamageReceived;
|
||||
Params.MitigatedDamage = ReceivedDamage;
|
||||
Params.IncomingDamage = IncomingDamage;
|
||||
Params.DamageDealer = DamageDealer;
|
||||
Params.DamageReceiver = this;
|
||||
OnDamageEventDelegate.Broadcast(Params);
|
||||
FCogInterfaceMetricEventParams Params;
|
||||
Params.Name = "Damage Received";
|
||||
Params.MitigatedValue = ReceivedDamage;
|
||||
Params.UnmitigatedValue = IncomingDamage;
|
||||
OnMetricEventDelegate.Broadcast(Params);
|
||||
#endif //USE_COG
|
||||
}
|
||||
|
||||
@@ -362,13 +360,11 @@ void ACogSampleCharacter::OnDamageReceived(float ReceivedDamage, float IncomingD
|
||||
void ACogSampleCharacter::OnDamageDealt(float ReceivedDamage, float IncomingDamage, AActor* DamageReceiver, const FGameplayEffectSpec& EffectSpec)
|
||||
{
|
||||
#if USE_COG
|
||||
FCogInterfaceDamageParams Params;
|
||||
Params.Type = ECogInterfaceDamageEventType::DamageDealt;
|
||||
Params.MitigatedDamage = ReceivedDamage;
|
||||
Params.IncomingDamage = IncomingDamage;
|
||||
Params.DamageDealer = this;
|
||||
Params.DamageReceiver = DamageReceiver;
|
||||
OnDamageEventDelegate.Broadcast(Params);
|
||||
FCogInterfaceMetricEventParams Params;
|
||||
Params.Name = "Damage Dealt";
|
||||
Params.MitigatedValue = ReceivedDamage;
|
||||
Params.UnmitigatedValue = IncomingDamage;
|
||||
OnMetricEventDelegate.Broadcast(Params);
|
||||
#endif //USE_COG
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "ActiveGameplayEffectHandle.h"
|
||||
#include "AttributeSet.h"
|
||||
#include "CogDefines.h"
|
||||
#include "CogInterfaceDamageActor.h"
|
||||
#include "CogInterfaceMetricActor.h"
|
||||
#include "CogInterfaceFilteredActor.h"
|
||||
#include "GameFramework/Character.h"
|
||||
#include "GameplayAbilitySpecHandle.h"
|
||||
@@ -59,7 +59,7 @@ UCLASS(config=Game)
|
||||
class ACogSampleCharacter : public ACharacter
|
||||
, public IAbilitySystemInterface
|
||||
, public ICogInterfacesFilteredActor
|
||||
, public ICogInterfaceDamageActor
|
||||
, public ICogInterfaceMetricActor
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
@@ -75,7 +75,7 @@ public:
|
||||
virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;
|
||||
virtual void PossessedBy(AController* NewController) override;
|
||||
|
||||
virtual FCogInterfaceOnDamageEvent& OnDamageEvent() override { return OnDamageEventDelegate; }
|
||||
virtual FCogInterfaceOnMetricEvent& OnMetricEvent() override { return OnMetricEventDelegate; }
|
||||
virtual bool IsActorFilteringDebug() const override { return true; }
|
||||
|
||||
void OnAcknowledgePossession(APlayerController* InController);
|
||||
@@ -146,7 +146,7 @@ public:
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Ability)
|
||||
TArray<TSubclassOf<UGameplayEffect>> Effects;
|
||||
|
||||
FCogInterfaceOnDamageEvent OnDamageEventDelegate;
|
||||
FCogInterfaceOnMetricEvent OnMetricEventDelegate;
|
||||
|
||||
private:
|
||||
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
#include "CogAbilityWindow_Abilities.h"
|
||||
#include "CogAbilityWindow_Attributes.h"
|
||||
#include "CogAbilityWindow_Cheats.h"
|
||||
#include "CogAbilityWindow_Damages.h"
|
||||
#include "CogAbilityWindow_Effects.h"
|
||||
#include "CogAbilityWindow_Metrics.h"
|
||||
#include "CogAbilityWindow_Pools.h"
|
||||
#include "CogAbilityWindow_Tags.h"
|
||||
#include "CogAbilityWindow_Tweaks.h"
|
||||
@@ -194,7 +194,7 @@ void ACogSampleGameState::InitializeCog()
|
||||
UCogAbilityWindow_Cheats* CheatsWindow = CogWindowManager->CreateWindow<UCogAbilityWindow_Cheats>("Gameplay.Cheats");
|
||||
CheatsWindow->CheatsAsset = GetFirstAssetByClass<UCogAbilityDataAsset_Cheats>();
|
||||
|
||||
CogWindowManager->CreateWindow<UCogAbilityWindow_Damages>("Gameplay.Damages");
|
||||
CogWindowManager->CreateWindow<UCogAbilityWindow_Metrics>("Gameplay.Metrics");
|
||||
|
||||
UCogAbilityWindow_Effects* EffectsWindow = CogWindowManager->CreateWindow<UCogAbilityWindow_Effects>("Gameplay.Effects");
|
||||
EffectsWindow->NegativeEffectTag = Tag_Effect_Alignment_Negative;
|
||||
|
||||
Reference in New Issue
Block a user