package BaseStatusEffect
using RTDB

Health_Regen : StatusEffect
{
	bool replicated = true;
	fk< StatModifierGroup > duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 10;
			} : ConstantStatModifier
		];
	};
	fk< StatusEffectFX >[] VFX = 
	[
		{
			name = "splinter_buff";
		}
	];
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.AlwaysTruePrereq";
					effectorClassName = "ModifyStatPoolModifierEffector";
					fk< PoolValueModifier > poolModifier = 
					{
						bool enabled = true;
						float rangeBegin = 0;
						float rangeEnd = 100;
						float startDelay = 0;
						float valuePerSec = 5;
						bool delayOnChange = false;
					} : PoolValueModifier;
					string statPoolType = "Health";
					string modificationType = "Regeneration";
				} : ModifyStatPoolModifierEffector
			];
		} : GameplayLogicPackage
	];
}

SecondHeart : BuffStatusEffect
{
	bool replicated = true;
	gameplayTags += 
	[
		"PlayerResurrection"
	];
	fk< StatusEffectFX >[] VFX = 
	[
		{
			name = "splinter_buff";
		}
	];
	fk< StatusEffectFX >[] SFX = 
	[
		{
			name = "vfx_fullscreen_second_heart";
		}
	];
	fk< StatModifierGroup > duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 2.f;
			} : ConstantStatModifier
		];
	};
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.IsInvulnerable";
					modifierType = "Additive";
					value = 1.f;
				} : ConstantStatModifier
			];
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.AlwaysTruePrereq";
					effectorClassName = "ModifyStatPoolModifierEffector";
					fk< PoolValueModifier > poolModifier = 
					{
						bool enabled = true;
						float rangeBegin = 0;
						float rangeEnd = 100;
						float startDelay = 0;
						float valuePerSec = 50;
						bool delayOnChange = false;
					} : PoolValueModifier;
					string statPoolType = "Health";
					string modificationType = "Regeneration";
				} : ModifyStatPoolModifierEffector, 
				{
					statusEffect = "BaseStatusEffect.SecondHeartCooldown";
					inverted = true;
				} : ApplyStatusEffectEffector
			];
		} : GameplayLogicPackage
	];
	uiData = 
	{
		string displayName = "LocKey#40987";
		string iconPath = "stun_icon";
		priority = -9.0f;
	};
}

