package Attacks
using RTDB

MuteArm : Attack_GameEffect
{
	attackType = "AttackType.Effect";
	effectName = "muteArm";
	effectTag = "mute";
	range = 4.f;
	fk< StatusEffectAttackData >[] statusEffects = 
	[
		{
			statusEffect = "BaseStatusEffect.MuteAudioStims";
			applyImmediately = true;
		}, 
		{
			statusEffect = "BaseStatusEffect.JamCommuniations";
			applyImmediately = true;
		}
	];
}

MicroGeneratorExplosionCommon : Attack_GameEffect
{
	attackType = "AttackType.Explosion";
	effectName = "micro_generator_explosion";
	effectTag = "common";
	range = 3f;
	damageType = "DamageTypes.Electric";
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Additive";
			refStat = "BaseStats.Health";
			refObject = "Target";
			opSymbol = "*";
			value = 0.2f;
		} : CombinedStatModifier
	];
}

MicroGeneratorExplosionUncommon : MicroGeneratorExplosionCommon
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Additive";
			refStat = "BaseStats.Health";
			refObject = "Target";
			opSymbol = "*";
			value = 0.3f;
		} : CombinedStatModifier
	];
}

MicroGeneratorExplosionRare : MicroGeneratorExplosionCommon
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Additive";
			refStat = "BaseStats.Health";
			refObject = "Target";
			opSymbol = "*";
			value = 0.4f;
		} : CombinedStatModifier
	];
}

MicroGeneratorExplosionEpic : MicroGeneratorExplosionCommon
{
	fk< StatusEffectAttackData >[] statusEffects = 
	[
		{
			statusEffect = "BaseStatusEffect.Electrocuted";
			applyImmediately = true;
		}
	];
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Additive";
			refStat = "BaseStats.Health";
			refObject = "Target";
			opSymbol = "*";
			value = 0.4f;
		} : CombinedStatModifier
	];
}

MicroGeneratorExplosionLegendary : MicroGeneratorExplosionEpic
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Additive";
			refStat = "BaseStats.Health";
			refObject = "Target";
			opSymbol = "*";
			value = 0.5f;
		} : CombinedStatModifier
	];
}

ElectroshockMechanismExplosionCommon : Attack_GameEffect
{
	attackType = "AttackType.Explosion";
	effectName = "micro_generator_explosion";
	effectTag = "common";
	hitFlags += 
	[
		"ForceNoCrit"
	];
	range = 3f;
	damageType = "DamageTypes.Electric";
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Additive";
			value = 140f;
		} : ConstantStatModifier
	];
}

ElectroshockMechanismExplosionUncommon : ElectroshockMechanismExplosionCommon
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Additive";
			value = 180f;
		} : ConstantStatModifier
	];
}

ElectroshockMechanismExplosionRare : ElectroshockMechanismExplosionCommon
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Additive";
			value = 270f;
		} : ConstantStatModifier
	];
}

ElectroshockMechanismExplosionEpic : ElectroshockMechanismExplosionCommon
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Additive";
			value = 370f;
		} : ConstantStatModifier
	];
}

ElectroshockMechanismExplosionLegendary : ElectroshockMechanismExplosionCommon
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Additive";
			value = 500f;
		} : ConstantStatModifier
	];
}

TechAbility_60_EMP_Boom : ElectroshockMechanismExplosionLegendary
{
	fk< StatusEffectAttackData >[] statusEffects = 
	[
		{
			statusEffect = "BaseStatusEffect.Electrocuted";
			applyImmediately = true;
		}
	];
}

MicroGeneratorExplosion2 : Attack_GameEffect
{
	attackType = "AttackType.Explosion";
	effectName = "explosions";
	effectTag = "microgenerator_emp_explosion";
	hitFlags += 
	[
		"ForceNoCrit"
	];
	range = 3f;
	damageType = "DamageTypes.Electric";
	statModifiers = 
	[
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Additive";
			refObject = "Root";
			refStat = "BaseStats.MicroGeneratorExplosionDamage";
			opSymbol = "*";
			value = 1.0f;
		} : CombinedStatModifier
	];
}

