683 lines
18 KiB
C++
683 lines
18 KiB
C++
#pragma once
|
|
#include "Abilities/Modifier.h"
|
|
#include "ScalingGraph.h"
|
|
#include "NativeModifiers.generated.h"
|
|
|
|
// Increase/Decrease movement speed
|
|
UCLASS()
|
|
class UNREALPROJECT_API ASpeedModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
ASpeedModifier();
|
|
|
|
virtual void ModifyCharacter();
|
|
|
|
//adjusts the movementspeed of the character
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta=(ExposeOnSpawn), Category = "Modifier")
|
|
float speedMultiplier;
|
|
};
|
|
|
|
|
|
// Health Regen over time
|
|
UCLASS()
|
|
class UNREALPROJECT_API ARegenModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
ARegenModifier();
|
|
|
|
virtual void ModifierTick() override;
|
|
virtual bool ShouldBeRemoved() const override;
|
|
|
|
//the ammount of regen per tick (5 ticks per second)
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta=(ExposeOnSpawn), Category = "Modifier")
|
|
float regenPerTick = 5.0f;
|
|
//the total ammount of time the modifier should tick
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta=(ExposeOnSpawn), Category = "Modifier")
|
|
float regenTime;
|
|
|
|
private:
|
|
FVector m_pos;
|
|
float m_noDamageTime = 5.0f;
|
|
};
|
|
|
|
// Mana regen over time
|
|
UCLASS()
|
|
class UNREALPROJECT_API AManaRegenModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AManaRegenModifier();
|
|
|
|
virtual void ModifierTick() override;
|
|
virtual bool ShouldBeRemoved() const override;
|
|
|
|
//the ammount of mana per tick (20 ticks per second)
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta=(ExposeOnSpawn), Category = "Modifier")
|
|
float regenPerTick;
|
|
};
|
|
|
|
// Damage over time
|
|
UCLASS()
|
|
class UNREALPROJECT_API ADOTModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
ADOTModifier();
|
|
|
|
virtual void ModifierTick() override;
|
|
|
|
//damage per tick (3 ticks per second)
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta=(ExposeOnSpawn), Category = "Modifier")
|
|
float damagePerTick = 5.0f;
|
|
};
|
|
|
|
// Attack speed multiplier that scales with ability power
|
|
UCLASS()
|
|
class UNREALPROJECT_API AAttackSpeedModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AAttackSpeedModifier();
|
|
virtual void ModifyCharacter();
|
|
|
|
//adjusts the attack speed of the character
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta=(ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* scalingGraph;
|
|
};
|
|
|
|
// Attack speed multiplier
|
|
UCLASS()
|
|
class UNREALPROJECT_API AAttackSpeedModifierConstant : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AAttackSpeedModifierConstant();
|
|
virtual void ModifyCharacter();
|
|
bool ShouldBeRemoved() const override;
|
|
|
|
//adjusts the attack speed of the character
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
float attackSpeedMultiplier;
|
|
};
|
|
|
|
// Cooldown reduction
|
|
UCLASS()
|
|
class UNREALPROJECT_API ACooldownReductionModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
ACooldownReductionModifier();
|
|
virtual void ModifyCharacter();
|
|
|
|
//adjusts the cooldown of every ability of the character, except for that standard attack
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta=(ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* scalingGraph;
|
|
};
|
|
|
|
// Increase/Decrease Damage (multiplier)
|
|
UCLASS()
|
|
class UNREALPROJECT_API AADModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AADModifier();
|
|
|
|
virtual void ModifyCharacter() override;
|
|
|
|
//adjusts the damage of the standard attack
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* scalingGraph;
|
|
};
|
|
|
|
|
|
// Increase/Decrease magic Damage (multiplier)
|
|
UCLASS()
|
|
class UNREALPROJECT_API AAPModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AAPModifier();
|
|
|
|
virtual void ModifyCharacter() override;
|
|
|
|
//adjusts the damage of all abilities of the character except for the standard attack
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* scalingGraph;
|
|
};
|
|
|
|
// Increase/Decrease max health
|
|
UCLASS()
|
|
class UNREALPROJECT_API AMaxHealthModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AMaxHealthModifier();
|
|
virtual void ModifyCharacter();
|
|
|
|
//adjusts the max health of the character
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* scalingGraph;
|
|
};
|
|
|
|
// Increase/Decrease max health with a int32
|
|
UCLASS()
|
|
class UNREALPROJECT_API AConstMaxHealthModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AConstMaxHealthModifier();
|
|
virtual void ModifyCharacter();
|
|
|
|
//adjusts the max health of the character
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
int32 add;
|
|
};
|
|
|
|
// Increase/Decrease blocked mana
|
|
UCLASS()
|
|
class UNREALPROJECT_API ABlockManaModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
ABlockManaModifier();
|
|
|
|
virtual void ModifyCharacter() override;
|
|
// mana blocked
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta=(ExposeOnSpawn), Category = "Modifier")
|
|
int32 Mana;
|
|
};
|
|
|
|
// Mana over time cost with a curve
|
|
UCLASS()
|
|
class UNREALPROJECT_API AManaDrainCurveModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AManaDrainCurveModifier();
|
|
|
|
virtual void ModifierTick() override;
|
|
|
|
//mana drained per tick (20 ticks per second)
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta=(ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* ManaPerTick;
|
|
};
|
|
|
|
|
|
// Mana over time cost
|
|
UCLASS()
|
|
class UNREALPROJECT_API AManaDrainModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AManaDrainModifier();
|
|
|
|
virtual void ModifierTick() override;
|
|
|
|
//mana drained per tick (20 ticks per second)
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
float ManaPerTick;
|
|
};
|
|
|
|
// Heal health 1 time
|
|
UCLASS()
|
|
class UNREALPROJECT_API AHealModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AHealModifier();
|
|
|
|
virtual void ModifierTick() override;
|
|
virtual bool ShouldBeRemoved() const override;
|
|
//the ammount of health that is healed
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta=(ExposeOnSpawn), Category = "Modifier")
|
|
float health;
|
|
|
|
private:
|
|
bool m_shouldBeRemoved = false;
|
|
};
|
|
|
|
// Stun
|
|
UCLASS()
|
|
class UNREALPROJECT_API AStunModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AStunModifier();
|
|
virtual void ModifierStart() override;
|
|
virtual void ModifierEnd() override;
|
|
virtual void ModifierTick() override;
|
|
virtual void ModifyCharacter() override;
|
|
};
|
|
|
|
// Stun
|
|
UCLASS()
|
|
class UNREALPROJECT_API ASilenceModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
ASilenceModifier();
|
|
virtual void ModifierStart() override;
|
|
virtual void ModifierEnd() override;
|
|
};
|
|
|
|
// Damage taken multiplier (only meant for bosses, will not work with a timer)
|
|
UCLASS()
|
|
class UNREALPROJECT_API ADamageTakenModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
ADamageTakenModifier();
|
|
|
|
virtual void ModifyCharacter() override;
|
|
virtual bool ShouldBeRemoved() const override;
|
|
|
|
//adjusts the damage taken.
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta=(ExposeOnSpawn), Category = "Modifier")
|
|
float damageTakenMultiplier;
|
|
};
|
|
|
|
|
|
|
|
//gives invisibility on the minimap with set breaks DEPRECATED
|
|
UCLASS()
|
|
class UNREALPROJECT_API AVisibilityModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
public:
|
|
AVisibilityModifier();
|
|
|
|
virtual void ModifierTick() override;
|
|
virtual bool ShouldBeRemoved() const override;
|
|
//DEPRECATED
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
float visibleBreak = 5.0f;
|
|
//DEPRECATED
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
float visibleTime = 1.0f;
|
|
|
|
private:
|
|
float m_timer;
|
|
bool m_visible;
|
|
};
|
|
|
|
|
|
//gives a chance at healing instead of damage if the blow is the killing blow
|
|
UCLASS()
|
|
class UNREALPROJECT_API ADodgeDeathModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
float m_timer;
|
|
public:
|
|
ADodgeDeathModifier();
|
|
|
|
virtual bool ShouldBeRemoved() const override;
|
|
virtual void ModifierTick() override;
|
|
//the chance between 0 and 1 and the effect will be proced
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* dodgeChance;
|
|
//the ammount of health that is healed on the effect
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* heal;
|
|
|
|
//the cooldown for the dodgedeath in seconds
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* cooldown;
|
|
|
|
|
|
|
|
virtual bool OnDamage(int32& damage, ANetworkCharacter* damageDealer) override;
|
|
};
|
|
|
|
//ignores a part of the enemy armor on all abilities
|
|
UCLASS()
|
|
class UNREALPROJECT_API AArmorIgnoreModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AArmorIgnoreModifier();
|
|
virtual void ModifyCharacter();
|
|
//the ammount of armor that is ignored (between 0 and 1)
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* scalingGraph;
|
|
};
|
|
|
|
//gives a chance at healing instead of damage if the blow is the killing blow
|
|
UCLASS()
|
|
class UNREALPROJECT_API ABeserkModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
public:
|
|
ABeserkModifier();
|
|
|
|
|
|
virtual bool ShouldBeRemoved() const override;
|
|
|
|
//the threshhold (between 0 and 1) where the effect will be proced
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* healthThreshold;
|
|
//adjusts the attackspeed
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* attackSpeedMultiplier;
|
|
|
|
|
|
void m_Start();
|
|
virtual void ModifierTick() override;
|
|
private:
|
|
bool m_active;
|
|
bool m_hasToActivate;
|
|
class AAttackSpeedModifierConstant* m_ASModifier;
|
|
|
|
virtual void AfterDamage(int32 damage) override;
|
|
};
|
|
|
|
|
|
// Increase/Decrease Damage (multiplier)
|
|
UCLASS()
|
|
class UNREALPROJECT_API AArmorReductionModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AArmorReductionModifier();
|
|
|
|
virtual void ModifyCharacter() override;
|
|
//adjusts the armor
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
float armorReduction;
|
|
};
|
|
|
|
|
|
//regens health Per Tick
|
|
UCLASS()
|
|
class UNREALPROJECT_API AHealthRegenModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AHealthRegenModifier();
|
|
//the ammount of health that is regened per tick (20 ticks per second)
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* scalingGraph;
|
|
|
|
virtual void ModifierTick() override;
|
|
};
|
|
|
|
//deals DOT on a standard attack
|
|
UCLASS()
|
|
class UNREALPROJECT_API AOnStandardAttackDOTModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
private:
|
|
float m_cooldownTimer;
|
|
public:
|
|
AOnStandardAttackDOTModifier();
|
|
//damage per tick on standard attack hit(3 ticks per second)
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* damagePerTick;
|
|
//the cooldown of the effect
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* cooldown;
|
|
//the duration of the effect( of the DOT)
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* damageDuration;
|
|
|
|
virtual void ModifierTick() override;
|
|
virtual void OnStandardAttack(ANetworkCharacter* targetcharacter) override;
|
|
};
|
|
|
|
//returns a part of the damage
|
|
UCLASS()
|
|
class UNREALPROJECT_API AReturnDamageModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
public:
|
|
AReturnDamageModifier();
|
|
|
|
//chance between 0 and 1 of procing the effect
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* scalingGraph;
|
|
|
|
virtual bool OnDamage(int32& damage, ANetworkCharacter* damageDealer) override;
|
|
};
|
|
|
|
//redirects a part of the damage to the ally
|
|
UCLASS()
|
|
class UNREALPROJECT_API ARedirectDamageModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
public:
|
|
ARedirectDamageModifier();
|
|
|
|
//chance between 0 and 1, the ammount that is being redirected (how much goes from the ally to the player
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* redirectScalingGraph;
|
|
//chance between 0 and 1, the ammount of what is redirected that is being absorbed
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* absorbScalingGraph;
|
|
|
|
UFUNCTION(BlueprintImplementableEvent, Category = "Modifier")
|
|
void DamageEvent();
|
|
|
|
virtual bool OnDamage(int32& damage, ANetworkCharacter* damageDealer);
|
|
};
|
|
|
|
//increases attack damage of ally based on missing health
|
|
UCLASS()
|
|
class UNREALPROJECT_API ATrustModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
ATrustModifier();
|
|
virtual void ModifierTick() override;
|
|
virtual void ModifyCharacter() override;
|
|
//the ammount of damage the ally gets multiplied by the normalised value of the missing health
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* damageScalingGraph;
|
|
};
|
|
|
|
|
|
//increases armor
|
|
UCLASS()
|
|
class UNREALPROJECT_API AArmorIncreaseModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AArmorIncreaseModifier();
|
|
virtual void ModifyCharacter();
|
|
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* armorScalingGraph;
|
|
};
|
|
|
|
//increases attack damage of ally based on missing health
|
|
UCLASS()
|
|
class UNREALPROJECT_API AMoveToModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AMoveToModifier();
|
|
virtual void ModifierStart();
|
|
virtual void ModifierTick() override;
|
|
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
FVector targetPos;
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
float moveTime;
|
|
private:
|
|
FVector m_movePerTick;
|
|
};
|
|
|
|
//increases attack damage of ally based on missing health
|
|
UCLASS()
|
|
class UNREALPROJECT_API AHealthRegenPercentageModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AHealthRegenPercentageModifier();
|
|
|
|
//normalised percentage (0-1)
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* scalingGraph;
|
|
|
|
virtual void ModifierTick() override;
|
|
};
|
|
|
|
//increases mana regen multiplier
|
|
UCLASS()
|
|
class UNREALPROJECT_API AManaRegenMultiplierModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AManaRegenMultiplierModifier();
|
|
virtual void ModifyCharacter();
|
|
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* manaRegenMultiplierScalingGraph;
|
|
};
|
|
|
|
|
|
//increases mana regen multiplier
|
|
UCLASS()
|
|
class UNREALPROJECT_API AManaCostMultiplierModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AManaCostMultiplierModifier();
|
|
virtual void ModifyCharacter();
|
|
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* manaCostMultiplierScalingGraph;
|
|
};
|
|
|
|
//debuffs positive effects
|
|
UCLASS()
|
|
class UNREALPROJECT_API AEffectMultiplierModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AEffectMultiplierModifier();
|
|
virtual void ModifyCharacter();
|
|
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
bool positive;
|
|
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* effectMultiplierScalingGraph;
|
|
};
|
|
|
|
//debuffs positive effects
|
|
UCLASS()
|
|
class UNREALPROJECT_API ACastingMovementSpeedMultiplierModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
ACastingMovementSpeedMultiplierModifier();
|
|
virtual void ModifyCharacter();
|
|
|
|
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* movementSpeedMultiplierScalingGraph;
|
|
};
|
|
|
|
// deals more damage depending on the enemies hp (black/white threshhold)
|
|
UCLASS()
|
|
class UNREALPROJECT_API AReaperModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AReaperModifier();
|
|
virtual bool OnDealDamage(int32& damage, ANetworkCharacter* damageTaker) override;
|
|
|
|
//true == more damage when current health is less than threshhold false == more damage when current health is more than threshhold
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
bool smaller;
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* damagemultiplier;
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* threshhold;
|
|
};
|
|
|
|
//increases/decreases magic damage
|
|
UCLASS()
|
|
class UNREALPROJECT_API AMagicDamageMultiplierModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
AMagicDamageMultiplierModifier();
|
|
virtual void ModifyCharacter();
|
|
|
|
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* magicDamageMultiplierScalingGraph;
|
|
};
|
|
|
|
//increases/decreases magic damage
|
|
UCLASS()
|
|
class UNREALPROJECT_API AStandardMeleeModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
float m_timer;
|
|
public:
|
|
virtual void ModifierTick() override;
|
|
AStandardMeleeModifier();
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
float maxTime;
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
int32 maxCount;
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Modifier")
|
|
int32 count;
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
int32 team;
|
|
UFUNCTION(BlueprintCallable, Category = "Modifier")
|
|
bool AddCount();
|
|
};
|
|
|
|
//converts damage recieved to mana
|
|
UCLASS()
|
|
class UNREALPROJECT_API ADamageToManaModifier : public AModifier
|
|
{
|
|
GENERATED_BODY()
|
|
public:
|
|
ADamageToManaModifier();
|
|
|
|
//the threshhold (between 0 and 1) where the effect will be proced
|
|
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta = (ExposeOnSpawn), Category = "Modifier")
|
|
UCurveFloat* multiplier;
|
|
private:
|
|
|
|
virtual void AfterDamage(int32 damage) override;
|
|
}; |