SbhConVars.cs

Static class defining console variables (ConVars) for SBH nextbots. Declares replicated/saved booleans and a float controlling AI enable, player ignoring, ragdoll cleanup, global omniscience, debug event logging, and a global jump multiplier.

Networking
namespace SBH;

using Sandbox;

/// <summary>
/// [SBHBase] Interruptores globales de los nextbots, controlables desde la
/// página SBHBase del menú de utilidades o por consola.
/// </summary>
public static class SbhConVars
{
	/// <summary>
	/// Apagada, todos los nextbots SBH se congelan en idle: no piensan,
	/// no perciben, no saltan, no atacan.
	/// </summary>
	[ConVar( "sbh.ia", ConVarFlags.Replicated | ConVarFlags.Saved, Help = "IA de los nextbots SBH: 0 = congelados en idle." )]
	public static bool IaActivada { get; set; } = true;

	/// <summary>
	/// Activada, los nextbots no ven, no oyen ni atacan a los jugadores
	/// (entre ellos siguen peleando). El notarget de GMod.
	/// </summary>
	[ConVar( "sbh.ia.ignorar", ConVarFlags.Replicated | ConVarFlags.Saved, Help = "1 = los nextbots SBH ignoran a los jugadores." )]
	public static bool IgnorarJugadores { get; set; } = false;

	[ConVar( "sbh.ragdolls", ConVarFlags.Replicated | ConVarFlags.Saved, Help = "1 = los cadáveres se desvanecen pasado su TiempoDespawn; 0 = los ragdolls quedan para siempre." )]
	public static bool LimpiarRagdolls { get; set; } = true;

	/// <summary>
	/// Omnisciencia GLOBAL (2026-08-09): TODOS los nextbots SBH perciben a
	/// todos sus enemigos sin cono, sin paredes y sin distancia — el
	/// SetOmniscient de DRGBase pero para el mapa entero. Es un OR con la
	/// omnisciencia por skill (GritoManada): no se pisan. A propósito NO se
	/// guarda entre sesiones: es un modo agresivo que arranca apagado.
	/// </summary>
	[ConVar( "sbh.ia.omnisciente", ConVarFlags.Replicated, Help = "1 = todos los nextbots SBH perciben a todos sus enemigos (sin cono, sin paredes, sin distancia)." )]
	public static bool Omnisciencia { get; set; } = false;

	[ConVar( "sbh.eventos.debug", Help = "1 = loguea cada animevent despachado y cada pulso Melee sin víctima (diagnóstico)." )]
	public static bool EventosDebug { get; set; } = false;

	/// <summary>
	/// Multiplicador GLOBAL del salto (2026-08-10: "todos nuestros NPC saltan
	/// muy bajo para ser este tipo de mods"). Escala el salto de la posesión
	/// y el arco/alcance de la IA — para tunear EN VIVO sin re-editar los
	/// prefabs; una vez encontrado el punto, se hornea en cada personaje.
	/// </summary>
	[ConVar( "sbh.salto.mult", ConVarFlags.Replicated | ConVarFlags.Saved, Help = "Multiplicador global del salto de los nextbots SBH (1 = el de fábrica; 2 = el doble de alto y lejos)." )]
	public static float SaltoMultiplicador { get; set; } = 1f;
}