#pragma once #include "AbilityFilter.h" #include "ScalingGraph.h" #include "DealDamageProxy.Generated.h" UCLASS() class ADealDamageProxy : public AActor { GENERATED_BODY() public: UFUNCTION(BlueprintCallable, Category = "Damage Scaling") float GetAbilityPowerScale() const; // Scales samples the input curve anywhere from 0-1 based on the currently cast ability's power(or level for basic attacks) UFUNCTION(BlueprintCallable, Category = "Scaling Graph") float ScaleGraphCurve(const UCurveFloat* val); // Same as ScaleGraphCurve but this one scales with the player level UFUNCTION(BlueprintCallable, Category = "Scaling Graph") float ScaleGraphCurveByLevel(const UCurveFloat* val); // The character that started this sequence of proxies and the dealer of the damage UPROPERTY(BlueprintReadOnly, Category="Damage Proxy") class ANetworkCharacter* character; // The ability that was cast to spawn this object UPROPERTY(BlueprintReadOnly, Category="Damage Proxy") class UAbilityInfo* abilityInfo; };