package MonoWiresAttacks
using RTDB, Attacks, AttackDirections

MonoWiresComboAttackAbstract : Lash
{
	attackSubtype = "AttackType.ComboAttack";
	float attackWindowOpen = 0.33f;
	float attackWindowClosed = 0.50f;
	float idleTransitionTime = 1.0f;
	float cameraSpaceImpulse = 0.f;
	float impulseDelay = 0.f;
	float attackEffectDelay = 0.23f;
	float attackEffectDuration = 0.06f;
	float startupDuration = 0.133f;
	float activeDuration = 0.367f;
	float recoverDuration = 0.467f;
	float trailStartDelay = 0.1f;
	float trailStopDelay = 0.4f;
	string trailAttackSide = "left";
	staminaCost = 
	[
		{
			statType = "BaseStats.Stamina";
			modifierType = "Additive";
			refObject = "Player";
			refStat = "BaseStats.BaseMeleeAttackStaminaCost";
			opSymbol = "*";
			value = 1f;
		} : CombinedStatModifier, 
		{
			statType = "BaseStats.Stamina";
			modifierType = "AdditiveMultiplier";
			refObject = "Player";
			refStat = "BaseStats.MonoWiresStaminaCostReduction";
			opSymbol = "*";
			value = -1f;
		} : CombinedStatModifier
	];
	weaponChargeCost = 8.f;
	bool hasDeflectAnim = false;
	bool hasHitAnim = false;
	audioTag = "light";
	bool incrementsCombo = true;
	hitReactionSeverityMin = 0;
	hitReactionSeverityMax = 1;
	CName impactFxSlot = "ImpactRight";
}

MonoWiresComboAttack1 : MonoWiresComboAttackAbstract
{
	attackName = "MeleeComboAttack0";
	fk< AttackDirection > attackDirection = "AttackDirections.RightToLeftWide";
	string trailAttackSide = "left";
	audioTag = "light";
	audioAttackIndex = 0.0f;
}

MonoWiresComboAttack2 : MonoWiresComboAttackAbstract
{
	attackName = "MeleeComboAttack1";
	fk< AttackDirection > attackDirection = "AttackDirections.RightToLeftWide";
	string trailAttackSide = "right";
	audioTag = "light";
	audioAttackIndex = 1.0f;
	staminaCost = 
	[
		{
			statType = "BaseStats.Stamina";
			modifierType = "Additive";
			refObject = "Player";
			refStat = "BaseStats.BaseMeleeAttackStaminaCost";
			opSymbol = "*";
			value = 1.17f;
		} : CombinedStatModifier, 
		{
			statType = "BaseStats.Stamina";
			modifierType = "AdditiveMultiplier";
			refObject = "Player";
			refStat = "BaseStats.MonoWiresStaminaCostReduction";
			opSymbol = "*";
			value = -1f;
		} : CombinedStatModifier
	];
	fk< StatModifier >[] statModifiers += 
	[
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Multiplier";
			value = 1.1f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ThermalDamage";
			modifierType = "Multiplier";
			value = 1.1f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ChemicalDamage";
			modifierType = "Multiplier";
			value = 1.1f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Multiplier";
			value = 1.1f;
		} : ConstantStatModifier
	];
}

MonoWiresComboAttack3 : MonoWiresComboAttackAbstract
{
	attackName = "MeleeComboAttack2";
	fk< AttackDirection > attackDirection = "AttackDirections.LeftToRightWide";
	string trailAttackSide = "right";
	audioTag = "normal";
	audioAttackIndex = 2.0f;
	staminaCost = 
	[
		{
			statType = "BaseStats.Stamina";
			modifierType = "Additive";
			refObject = "Player";
			refStat = "BaseStats.BaseMeleeAttackStaminaCost";
			opSymbol = "*";
			value = 1.33f;
		} : CombinedStatModifier, 
		{
			statType = "BaseStats.Stamina";
			modifierType = "AdditiveMultiplier";
			refObject = "Player";
			refStat = "BaseStats.MonoWiresStaminaCostReduction";
			opSymbol = "*";
			value = -1f;
		} : CombinedStatModifier
	];
	fk< StatModifier >[] statModifiers += 
	[
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Multiplier";
			value = 1.15f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ThermalDamage";
			modifierType = "Multiplier";
			value = 1.15f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ChemicalDamage";
			modifierType = "Multiplier";
			value = 1.15f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Multiplier";
			value = 1.15f;
		} : ConstantStatModifier
	];
	CName impactFxSlot = "ImpactLeft";
}

MonoWiresComboAttack4 : MonoWiresComboAttackAbstract
{
	attackName = "MeleeComboAttack3";
	fk< AttackDirection > attackDirection = "AttackDirections.LeftToRightWide";
	string trailAttackSide = "left";
	audioTag = "normal";
	audioAttackIndex = 3.0f;
	staminaCost = 
	[
		{
			statType = "BaseStats.Stamina";
			modifierType = "Additive";
			refObject = "Player";
			refStat = "BaseStats.BaseMeleeAttackStaminaCost";
			opSymbol = "*";
			value = 1.5f;
		} : CombinedStatModifier, 
		{
			statType = "BaseStats.Stamina";
			modifierType = "AdditiveMultiplier";
			refObject = "Player";
			refStat = "BaseStats.MonoWiresStaminaCostReduction";
			opSymbol = "*";
			value = -1f;
		} : CombinedStatModifier
	];
	fk< StatModifier >[] statModifiers += 
	[
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Multiplier";
			value = 1.20f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ThermalDamage";
			modifierType = "Multiplier";
			value = 1.20f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ChemicalDamage";
			modifierType = "Multiplier";
			value = 1.20f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Multiplier";
			value = 1.20f;
		} : ConstantStatModifier
	];
	CName impactFxSlot = "ImpactLeft";
}

MonoWiresFinalAttackAbstract : Lash
{
	attackSubtype = "AttackType.FinalAttack";
	float attackWindowOpen = 0.2f;
	float attackWindowClosed = 0.6f;
	float idleTransitionTime = 1.0f;
	float cameraSpaceImpulse = 0.f;
	float impulseDelay = 0.f;
	float attackEffectDelay = 0.3f;
	float attackEffectDuration = 0.15f;
	float startupDuration = 0.167f;
	float activeDuration = 0.533f;
	float recoverDuration = 0.433f;
	float trailStartDelay = 0.1f;
	float trailStopDelay = 0.4f;
	staminaCost = 
	[
		{
			statType = "BaseStats.Stamina";
			modifierType = "Additive";
			refObject = "Player";
			refStat = "BaseStats.BaseMeleeAttackStaminaCost";
			opSymbol = "*";
			value = 1.67f;
		} : CombinedStatModifier, 
		{
			statType = "BaseStats.Stamina";
			modifierType = "AdditiveMultiplier";
			refObject = "Player";
			refStat = "BaseStats.MonoWiresStaminaCostReduction";
			opSymbol = "*";
			value = -1f;
		} : CombinedStatModifier
	];
	fk< StatModifier >[] statModifiers += 
	[
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Multiplier";
			value = 1.25f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ThermalDamage";
			modifierType = "Multiplier";
			value = 1.25f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ChemicalDamage";
			modifierType = "Multiplier";
			value = 1.25f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Multiplier";
			value = 1.25f;
		} : ConstantStatModifier
	];
	weaponChargeCost = 8.f;
	bool hasDeflectAnim = false;
	bool hasHitAnim = false;
	audioTag = "heavy";
	bool incrementsCombo = true;
	hitReactionSeverityMin = 0;
	hitReactionSeverityMax = 2;
	CName impactFxSlot = "ImpactRight";
}

MonoWiresFinalAttack1 : MonoWiresFinalAttackAbstract
{
	attackName = "MeleeFinalAttack0";
	fk< AttackDirection > attackDirection = "AttackDirections.RightDownToLeftUp";
	audioTag = "heavy";
	audioAttackIndex = 0.0f;
}

MonoWiresFinalAttack2 : MonoWiresFinalAttackAbstract
{
	attackName = "MeleeFinalAttack1";
	fk< AttackDirection > attackDirection = "AttackDirections.RightDownToLeftUp";
	audioTag = "heavy";
	audioAttackIndex = 1.0f;
}

MonoWiresFinalAttack3 : MonoWiresFinalAttackAbstract
{
	attackName = "MeleeFinalAttack2";
	fk< AttackDirection > attackDirection = "AttackDirections.RightUpToLeftDown";
	audioTag = "heavy";
	audioAttackIndex = 2.0f;
}

MonoWiresFinalAttack4 : MonoWiresFinalAttackAbstract
{
	attackName = "MeleeFinalAttack3";
	fk< AttackDirection > attackDirection = "AttackDirections.RightUpToLeftDown";
	audioTag = "heavy";
	audioAttackIndex = 3.0f;
}

MonoWiresFinalAttack5 : MonoWiresFinalAttackAbstract
{
	attackName = "MeleeFinalAttack4";
	fk< AttackDirection > attackDirection = "AttackDirections.UpToDown";
	audioTag = "finisher";
	audioAttackIndex = 4.0f;
}

MonoWiresStrongAttackAbstract : StrongLash
{
	float attackWindowOpen = 0.37f;
	float attackWindowClosed = 0.55f;
	float idleTransitionTime = 0.9f;
	float cameraSpaceImpulse = 4.f;
	float impulseDelay = 0.f;
	float attackEffectDelay = 0.25f;
	float attackEffectDuration = 0.15f;
	float startupDuration = 0.100f;
	float activeDuration = 0.533f;
	float recoverDuration = 0.667f;
	float trailStartDelay = 0.1f;
	float trailStopDelay = 0.4f;
	staminaCost = 
	[
		{
			statType = "BaseStats.Stamina";
			modifierType = "Additive";
			refObject = "Player";
			refStat = "BaseStats.BaseMeleeAttackStaminaCost";
			opSymbol = "*";
			value = 2.25f;
		} : CombinedStatModifier, 
		{
			statType = "BaseStats.Stamina";
			modifierType = "AdditiveMultiplier";
			refObject = "Player";
			refStat = "BaseStats.MonoWiresStaminaCostReduction";
			opSymbol = "*";
			value = -1f;
		} : CombinedStatModifier
	];
	weaponChargeCost = 100.f;
	bool hasDeflectAnim = false;
	bool hasHitAnim = false;
	bool incrementsCombo = true;
	hitReactionSeverityMin = 0;
	hitReactionSeverityMax = 2;
	CName impactFxSlot = "ImpactRight";
}

MonoWiresStrongAttack1 : MonoWiresStrongAttackAbstract
{
	attackName = "MeleeStrongAttack0";
	fk< AttackDirection > attackDirection = "AttackDirections.UpToDown";
	audioTag = "normal";
	audioAttackIndex = 0.0f;
	attackEffectDuration = 0.06f;
}

MonoWiresStrongAttack2 : MonoWiresStrongAttackAbstract
{
	attackName = "MeleeStrongAttack1";
	fk< AttackDirection > attackDirection = "AttackDirections.RightToLeftWide";
	audioTag = "normal";
	audioAttackIndex = 1.0f;
}

MonoWiresStrongAttack3 : MonoWiresStrongAttack1
{
	attackName = "MeleeStrongAttack2";
	audioAttackIndex = 2.0f;
}

MonoWiresStrongAttack4 : MonoWiresStrongAttack2
{
	attackName = "MeleeStrongAttack3";
	audioAttackIndex = 3.0f;
}

MonoWiresStrongAttack5 : MonoWiresStrongAttack1
{
	attackName = "MeleeStrongAttack4";
	audioAttackIndex = 4.0f;
}

MonoWiresApplyQuickhackAttack : MonoWiresStrongAttackAbstract
{
	attackName = "MeleeStrongAttack6";
	startupDuration = 0.333f;
	activeDuration = 1.367f;
	recoverDuration = 0.667f;
	attackEffectDelay = 0.55f;
	attackSubtype = "AttackType.SpyTreeMeleewareAttack";
	fk< AttackDirection > attackDirection = "AttackDirections.Center";
	weaponChargeCost = 100.f;
}

MonoWiresBlockAttack : MonoWiresComboAttackAbstract
{
	attackSubtype = "AttackType.BlockAttack";
	attackName = "MeleeBlockAttack0";
	fk< AttackDirection > attackDirection = "AttackDirections.RightToLeft";
	float startupDuration = 0.100f;
	float activeDuration = 0.533f;
	float recoverDuration = 0.500f;
	bool hasDeflectAnim = false;
	bool hasHitAnim = false;
	float attackWindowOpen = 0.2f;
	float attackWindowClosed = 0.9f;
	float idleTransitionTime = 1.0f;
	float blockTransitionTime = 0.66f;
	float attackEffectDelay = 0.15f;
	float attackEffectDuration = 0.06f;
	float trailStartDelay = 0.1f;
	float trailStopDelay = 0.4f;
	staminaCost = 
	[
		{
			statType = "BaseStats.Stamina";
			modifierType = "Additive";
			refObject = "Player";
			refStat = "BaseStats.BaseMeleeAttackStaminaCost";
			opSymbol = "*";
			value = 2f;
		} : CombinedStatModifier, 
		{
			statType = "BaseStats.Stamina";
			modifierType = "AdditiveMultiplier";
			refObject = "Player";
			refStat = "BaseStats.MonoWiresStaminaCostReduction";
			opSymbol = "*";
			value = -1f;
		} : CombinedStatModifier
	];
	fk< StatModifier >[] statModifiers += 
	[
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Multiplier";
			value = 0.75f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ThermalDamage";
			modifierType = "Multiplier";
			value = 0.75f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ChemicalDamage";
			modifierType = "Multiplier";
			value = 0.75f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ElectricDamage";
			modifierType = "Multiplier";
			value = 0.75f;
		} : ConstantStatModifier
	];
	hitReactionSeverityMin = 0;
	hitReactionSeverityMax = 1;
	CName impactFxSlot = "ImpactRight";
}

MonoWiresSafeAttack : MonoWiresComboAttackAbstract
{
	attackSubtype = "AttackType.SafeAttack";
	attackName = "MeleeSafeAttack0";
	fk< AttackDirection > attackDirection = "AttackDirections.LeftToRight";
	float startupDuration = 0.100f;
	float activeDuration = 0.533f;
	float recoverDuration = 0.667f;
	float trailStartDelay = 0.1f;
	float trailStopDelay = 0.4f;
	bool hasDeflectAnim = false;
	bool hasHitAnim = false;
	audioTag = "light";
	audioAttackIndex = 0.0f;
	weaponChargeCost = 8.f;
	bool incrementsCombo = true;
	CName impactFxSlot = "ImpactLeft";
}

MonoWiresSprintAttack : Lash
{
	attackSubtype = "AttackType.SprintAttack";
	attackName = "MeleeSprintAttack0";
	float attackWindowOpen = 0.37f;
	float attackWindowClosed = 0.8f;
	float idleTransitionTime = 0.9f;
	float cameraSpaceImpulse = 4.f;
	float impulseDelay = 0.f;
	fk< AttackDirection > attackDirection = "AttackDirections.LeftToRight";
	float attackEffectDelay = 0.2f;
	float attackEffectDuration = 0.3f;
	float startupDuration = 0.100f;
	float activeDuration = 0.533f;
	float recoverDuration = 0.533f;
	float trailStartDelay = 0.1f;
	float trailStopDelay = 0.4f;
	staminaCost = 
	[
		{
			statType = "BaseStats.Stamina";
			modifierType = "Additive";
			refObject = "Player";
			refStat = "BaseStats.BaseMeleeAttackStaminaCost";
			opSymbol = "*";
			value = 1.25f;
		} : CombinedStatModifier, 
		{
			statType = "BaseStats.Stamina";
			modifierType = "AdditiveMultiplier";
			refObject = "Player";
			refStat = "BaseStats.MonoWiresStaminaCostReduction";
			opSymbol = "*";
			value = -1f;
		} : CombinedStatModifier
	];
	weaponChargeCost = 8.f;
	bool hasDeflectAnim = false;
	bool hasHitAnim = false;
	audioTag = "normal";
	audioAttackIndex = 0.0f;
	bool incrementsCombo = true;
	hitReactionSeverityMin = 0;
	hitReactionSeverityMax = 1;
	CName impactFxSlot = "ImpactLeft";
}

MonoWiresJumpAttack : Lash
{
	attackSubtype = "AttackType.JumpAttack";
	attackName = "MeleeJumpAttack0";
	float attackWindowOpen = 0.37f;
	float attackWindowClosed = 0.8f;
	float idleTransitionTime = 0.9f;
	float cameraSpaceImpulse = 4.f;
	float impulseDelay = 0.f;
	fk< AttackDirection > attackDirection = "AttackDirections.LeftToRight";
	float startupDuration = 0.133f;
	float activeDuration = 0.367f;
	float recoverDuration = 0.567f;
	float attackEffectDelay = 0.2f;
	float attackEffectDuration = 0.3f;
	float trailStartDelay = 0.1f;
	float trailStopDelay = 0.4f;
	staminaCost = 
	[
		{
			statType = "BaseStats.Stamina";
			modifierType = "Additive";
			refObject = "Player";
			refStat = "BaseStats.BaseMeleeAttackStaminaCost";
			opSymbol = "*";
			value = 1.25f;
		} : CombinedStatModifier, 
		{
			statType = "BaseStats.Stamina";
			modifierType = "AdditiveMultiplier";
			refObject = "Player";
			refStat = "BaseStats.MonoWiresStaminaCostReduction";
			opSymbol = "*";
			value = -1f;
		} : CombinedStatModifier
	];
	weaponChargeCost = 8.f;
	bool hasDeflectAnim = false;
	bool hasHitAnim = false;
	audioTag = "heavy";
	audioAttackIndex = 0.0f;
	hitReactionSeverityMin = 0;
	hitReactionSeverityMax = 2;
	CName impactFxSlot = "ImpactLeft";
}

MonoWiresCrouchAttack : Lash
{
	attackSubtype = "AttackType.CrouchAttack";
	attackName = "MeleeCrouchAttack0";
	float attackWindowOpen = 0.37f;
	float attackWindowClosed = 0.8f;
	float idleTransitionTime = 0.9f;
	float cameraSpaceImpulse = 4.f;
	float impulseDelay = 0.f;
	fk< AttackDirection > attackDirection = "AttackDirections.DownToUp";
	float attackEffectDelay = 0.3f;
	float attackEffectDuration = 0.2f;
	float startupDuration = 0.100f;
	float activeDuration = 0.533f;
	float recoverDuration = 0.667f;
	float trailStartDelay = 0.1f;
	float trailStopDelay = 0.4f;
	staminaCost = 
	[
		{
			statType = "BaseStats.Stamina";
			modifierType = "Additive";
			refObject = "Player";
			refStat = "BaseStats.BaseMeleeAttackStaminaCost";
			opSymbol = "*";
			value = 1.25f;
		} : CombinedStatModifier, 
		{
			statType = "BaseStats.Stamina";
			modifierType = "AdditiveMultiplier";
			refObject = "Player";
			refStat = "BaseStats.MonoWiresStaminaCostReduction";
			opSymbol = "*";
			value = -1f;
		} : CombinedStatModifier
	];
	weaponChargeCost = 8.f;
	bool hasDeflectAnim = false;
	bool hasHitAnim = false;
	audioTag = "light";
	audioAttackIndex = 0.0f;
	bool incrementsCombo = true;
	hitReactionSeverityMin = 0;
	hitReactionSeverityMax = 1;
	CName impactFxSlot = "ImpactRight";
}

MonoWiresThrowAttack : Grapple
{
	attackName = "MeleeThrowAttack0";
	float attackWindowOpen = 0.37f;
	float attackWindowClosed = 2.1f;
	float idleTransitionTime = 2.1f;
	float cameraSpaceImpulse = 0.f;
	float impulseDelay = 0.f;
	fk< AttackDirection > attackDirection = "AttackDirections.Center";
	float attackEffectDelay = 0.7f;
	float attackEffectDuration = 0.2f;
	staminaCost = 
	[
		{
			statType = "BaseStats.Stamina";
			modifierType = "Additive";
			refObject = "Player";
			refStat = "BaseStats.BaseMeleeAttackStaminaCost";
			opSymbol = "*";
			value = 2.5f;
		} : CombinedStatModifier
	];
	weaponChargeCost = 20.f;
	bool hasDeflectAnim = false;
	bool hasHitAnim = false;
	audioTag = "hard";
	audioAttackIndex = 0.0f;
}

MonoWiresThrowAttackHelper : Attack_Projectile
{
	projectileTemplateName = "nanowire_end_weight";
}

