class UseBerserkAction extends UseAction
{

	public override function StartAction( gameInstance : GameInstance )
	{
		var psmEvent : PSMPostponedParameterBool;
		var player : PlayerPuppet;
		player = ( ( PlayerPuppet )( GetExecutor() ) );
		super.StartAction( gameInstance );
		if( player )
		{
			psmEvent = new PSMPostponedParameterBool;
			psmEvent.id = 'OnBerserkActivated';
			psmEvent.value = true;
			player.QueueEvent( psmEvent );
			GameObject.PlaySound( player, 'slow' );
			GameInstance.GetTelemetrySystem( gameInstance ).LogActiveCyberwareUsed( player, GetItemData().GetID() );
			GameInstance.GetRazerChromaEffectsSystem( gameInstance ).PlayAnimation( 'Berserk', true );
		}
	}

}

class DisableBerserkAction extends UseAction
{

	public override function StartAction( gameInstance : GameInstance )
	{
		var player : PlayerPuppet;
		player = ( ( PlayerPuppet )( GetExecutor() ) );
		super.StartAction( gameInstance );
		if( player )
		{
			StatusEffectHelper.RemoveAllStatusEffectsByType( gameInstance, player.GetEntityID(), gamedataStatusEffectType.Berserk );
			GameInstance.GetStatPoolsSystem( player.GetGame() ).RequestSettingStatPoolMinValue( player.GetEntityID(), gamedataStatPoolType.BerserkCharge, player );
			GameInstance.GetRazerChromaEffectsSystem( gameInstance ).StopAnimation( 'Berserk' );
		}
	}

}

