class UseCorruptedSandevistanAction extends UseAction
{

	public override function StartAction( gameInstance : GameInstance )
	{
		var player : PlayerPuppet;
		player = ( ( PlayerPuppet )( GetExecutor() ) );
		super.StartAction( gameInstance );
		if( player )
		{
			SetWarningMessage( "LocKey#94232" );
			if( GameInstance.GetStatPoolsSystem( player.GetGame() ).HasStatPoolValueReachedMin( player.GetEntityID(), gamedataStatPoolType.SandevistanCharge ) )
			{
				StatusEffectHelper.RemoveStatusEffect( player, T"BaseStatusEffect.NoSandevistanGlitch" );
				StatusEffectHelper.RemoveStatusEffect( player, T"BaseStatusEffect.NoCooldownedSandevistanGlitch" );
			}
		}
	}

	private function SetWarningMessage( const lockey : ref< String > )
	{
		var simpleScreenMessage : SimpleScreenMessage;
		var player : PlayerPuppet;
		player = ( ( PlayerPuppet )( GetExecutor() ) );
		simpleScreenMessage.isShown = true;
		simpleScreenMessage.duration = 5.0;
		simpleScreenMessage.message = lockey;
		simpleScreenMessage.isInstant = true;
		GameInstance.GetBlackboardSystem( player.GetGame() ).Get( GetAllBlackboardDefs().UI_Notifications ).SetVariant( GetAllBlackboardDefs().UI_Notifications.WarningMessage, simpleScreenMessage, true );
	}

}

class DisableCorruptedSandevistanAction extends UseAction
{

	public override function StartAction( gameInstance : GameInstance )
	{
		var player : PlayerPuppet;
		player = ( ( PlayerPuppet )( GetExecutor() ) );
		super.StartAction( gameInstance );
		if( player )
		{
			StatusEffectHelper.RemoveStatusEffect( player, T"BaseStatusEffect.NoSandevistanGlitch" );
			StatusEffectHelper.RemoveStatusEffect( player, T"BaseStatusEffect.NoCooldownedSandevistanGlitch" );
		}
	}

}

