<?xml version="1.0"?>
<doc>
    <assembly>
        <name>package.thieves.terrortown</name>
    </assembly>
    <members>
        <member name="T:TerrorTown.HackyPostProcessingFix">
            <summary>
            THis fucking sucks??????? https://github.com/Facepunch/sbox-issues/issues/4827
            </summary>
        </member>
        <member name="M:TerrorTown.Developer.FindPlayer">
            <summary>
            Quick and dirty way to find the player we're controlling right now
            </summary>
            <returns></returns>
        </member>
        <member name="M:TerrorTown.ColorExtensions.Mix(Color,Color,System.Single)">
            <summary>
            Linearly blends two colors.
            </summary>
        </member>
        <member name="M:TerrorTown.ColorExtensions.AsRgbaBGStyle(Color)">
            <summary>
            "background-color:" styling with alpha support using rgba().
            </summary>
        </member>
        <member name="M:TerrorTown.ColorExtensions.AsUIBackgroundColorStyle(Color)">
            <summary>
            "background-color:" scss styling, returns a hex color after desaturating and darkening
            </summary>
        </member>
        <member name="M:TerrorTown.ColorExtensions.AsUITextStyle(Color)">
            <summary>
            "color:" scss styling, returns a hex color after desaturating and darkening
            </summary>
        </member>
        <member name="M:TerrorTown.ColorExtensions.AsUIBackgroundTint(Color)">
            <summary>
            "background-tint:" scss styling, returns a hex color after darkening
            </summary>
        </member>
        <member name="M:TerrorTown.ColorExtensions.AsHexBGStyle(Color)">
            <summary>
            "background-color:" scss styling, returns a hex color
            </summary>
        </member>
        <member name="M:TerrorTown.ColorExtensions.AsHexTextStyle(Color)">
            <summary>
            "color:" scss styling, returns a hex color
            </summary>
        </member>
        <member name="M:TerrorTown.SurfaceExtensions.ReplaceSurface(Sandbox.Surface)">
            <summary>
            Replace any base surface with our new equivelents.
            </summary> 
            <returns></returns>
        </member>
        <member name="P:TerrorTown.AttachmentProxyComponent.ModelRenderer">
            <summary>
            The ModelRenderer that our attachment is from.
            </summary>
        </member>
        <member name="T:TerrorTown.TagBinder">
            <summary>
            A utility component that lets you have tags update based on conditions,
            similarly to how we have Panel.BindClass
            </summary>
        </member>
        <member name="F:TerrorTown.TagBinder.binds">
            <summary>
            A cache of binds.
            </summary>
        </member>
        <member name="M:TerrorTown.TagBinder.HasExistingBind(System.String)">
            <summary>
            Do we have a bind already?
            </summary>
            <param name="tag"></param>
            <returns></returns>
        </member>
        <member name="M:TerrorTown.TagBinder.BindTag(System.String,System.Func{System.Boolean})">
            <summary>
            Bind a tag to a specific condition. Must not exist.
            </summary>
            <param name="tag"></param>
            <param name="predicate"></param>
            <returns></returns>
        </member>
        <member name="T:TerrorTown.GameUtils">
            <summary>
            A list of game utilities that'll help us achieve common goals with less code... I guess?
            </summary>
        </member>
        <member name="M:TerrorTown.GameUtils.GetPlayerFromComponent(Sandbox.Component)">
            <summary>
            Resolve the owning player for a damage-related component without searching arbitrary descendants from a broad scene root.
            </summary>
        </member>
        <member name="M:TerrorTown.GameUtils.GetConnectedPlayersSnapshot">
            <summary>
            Host-only!!! Snapshot the current list of connected players, make sure that they're correctly owned, then return it.
            Should help avoid potential churn during heavy things like respawning everyone after a round ends or whatever.
            </summary>
            <returns></returns>
        </member>
        <member name="M:TerrorTown.GameUtils.GetRoundManagedPlayersSnapshot">
            <summary>
            Host-only snapshot of round-managed player pawns.
            Includes connected human players plus ownerless replicated bots.
            </summary>
        </member>
        <member name="M:TerrorTown.GameUtils.GetRecoveryManagedPlayersSnapshot">
            <summary>
            Host-only snapshot used during host migration recovery.
            Unlike the normal strict connected-player snapshot, this tolerates transient
            pawn-binding churn so promoted hosts can still normalize surviving players.
            </summary>
        </member>
        <member name="P:TerrorTown.GameUtils.AllPlayers">
            <summary>
            All players, both assigned to a team and spectating.
            </summary>
        </member>
        <member name="M:TerrorTown.GameUtils.GetSpawnPoints(System.String[])">
            <summary>
            Get all spawn point transforms for the given team.
            </summary>
        </member>
        <member name="M:TerrorTown.GameUtils.GetRandomSpawnPoint(System.String[])">
            <summary>
            Pick a random spawn point for the given team.
            </summary>
        </member>
        <member name="M:TerrorTown.GameUtils.ReturnToMainMenu">
            <summary>
            Returns the invoking client to the main menu
            </summary>
        </member>
        <member name="M:TerrorTown.GameUtils.ChangeLevel(System.String,System.String)">
            <summary>
            Change level
            </summary>
            <param name="map"></param>
        </member>
        <member name="M:TerrorTown.GameUtils.TryChangeLevel(System.String,System.String)">
            <summary>
            Try to request a level change. Returns false when request is rejected.
            </summary>
        </member>
        <member name="T:TerrorTown.AdminSystem">
            <summary>
            Session-backed admin and permission helpers.
            The bootstrap file only seeds initial admin assignments; the live authority model now lives in MatchSessionState.
            </summary>
        </member>
        <member name="P:TerrorTown.AdminSystem.AdminSteamIdsJson">
            <summary>
            JSON-serialized list of admin Steam IDs, synced to all clients for lightweight UI visibility checks.
            This is a projection of the permission document, not the source of truth.
            </summary>
        </member>
        <member name="M:TerrorTown.AdminSystem.IsAdminOrHost(Sandbox.Connection)">
            <summary>
            Compatibility wrapper for older UI/command callsites.
            This no longer grants moderation access just because a player is the technical host.
            </summary>
        </member>
        <member name="M:TerrorTown.AdminSystem.IsAdminOrHostLocal">
            <summary>
            Compatibility wrapper for older UI/command callsites.
            This now means "the local player has moderation authority".
            </summary>
        </member>
        <member name="P:TerrorTown.GameNetworkManager.PendingDisconnectMessage">
            <summary>
            Set for the kicked/banned player before scene change so the menu can show the reason when they arrive.
            </summary>
        </member>
        <member name="P:TerrorTown.GameNetworkManager.ClientPrefab">
            <summary>
            The ConnectedClient prefab we'll spawn whenever a player joins.
            </summary>
        </member>
        <member name="P:TerrorTown.GameNetworkManager.PlayerPrefab">
            <summary>
            Which player prefab should we spawn?
            </summary>
        </member>
        <member name="P:TerrorTown.GameNetworkManager.IsMultiplayer">
            <summary>
            Is this game multiplayer? If not, we won't create a lobby.
            </summary>
        </member>
        <member name="P:TerrorTown.GameNetworkManager.IsEditor">
            <summary>
            Is this game an editor mode lobby?
            </summary>
        </member>
        <member name="P:TerrorTown.GameNetworkManager.IsSecret">
            <summary>
            Is this game secret?
            </summary>
        </member>
        <member name="P:TerrorTown.GameNetworkManager.DebugNetworkMembership">
            <summary>
            Network membership transition diagnostics.
            </summary>
        </member>
        <member name="P:TerrorTown.GameNetworkManager.DebugJoinDiagnostics">
            <summary>
            Detailed host-side player join state snapshots.
            </summary>
        </member>
        <member name="P:TerrorTown.GameNetworkManager.DebugJoinAutoDump">
            <summary>
            Auto dump lobby state on join/leave for debugging.
            </summary>
        </member>
        <member name="P:TerrorTown.GameNetworkManager.DebugJoinAutoDumpDelaySeconds">
            <summary>
            Delay (seconds) before auto dump to allow host state to settle.
            </summary>
        </member>
        <member name="M:TerrorTown.GameNetworkManager.AcceptConnection(Sandbox.Connection,System.String@)">
            <summary>
            Called on the host to decide whether to accept a Sandbox.Connection.
            </summary>
            <param name="channel"></param>
            <param name="reason"></param>
        </member>
        <member name="M:TerrorTown.GameNetworkManager.OnActive(Sandbox.Connection)">
            <summary>
            Called when a network connection becomes active
            </summary>
            <param name="channel"></param>
        </member>
        <member name="M:TerrorTown.GameNetworkManager.BanPlayer(System.UInt64,System.String,System.Nullable{System.Single},TerrorTown.MatchSessionActorRef,System.String,System.String)">
            <summary>
            Ban a player by Steam ID with optional duration. Duration in hours; null = forever.
            </summary>
        </member>
        <member name="T:TerrorTown.LobbyStartSettings">
            <summary>
            Host-authored settings captured in the main menu before a lobby starts.
            </summary>
        </member>
        <member name="T:TerrorTown.LobbyStartSettingsStore">
            <summary>
            Persisted local defaults for the create-lobby page.
            </summary>
        </member>
        <member name="T:TerrorTown.LobbyStartSettingsMetadata">
            <summary>
            Thin serializer for lobby-start settings over Networking.SetData/GetData.
            </summary>
        </member>
        <member name="T:TerrorTown.LobbyStartSettingsRuntime">
            <summary>
            Host-only bootstrap that applies lobby metadata to in-scene systems and republishes normalized values.
            </summary>
        </member>
        <member name="T:TerrorTown.MatchSessionDefaults">
            <summary>
            Default document builders for match-session state.
            These helpers are intentionally small and opinionated so runtime wiring can create
            a valid session root without re-encoding group ids, permissions, and policy in multiple places.
            </summary>
        </member>
        <member name="T:TerrorTown.MatchSessionGroupIds">
            <summary>
            Canonical built-in group ids and permission keys for match-session authority.
            Keeping these centralized avoids string drift as runtime systems move onto the session root.
            </summary>
        </member>
        <member name="T:TerrorTown.MatchSessionState">
            <summary>
            Our cross-round match state API for host migration and session state in general
            </summary>
        </member>
        <member name="P:TerrorTown.MatchSessionRulesState.AutoSwitchToBestHost">
            <summary>
            Mirrored from lobby settings so the session can validate the invariant.
            For v1 host migration this must remain false.
            </summary>
        </member>
        <member name="T:TerrorTown.ParticipationDisposition">
            <summary>
            Host-side decision outcome for round admission.
            </summary>
        </member>
        <member name="T:TerrorTown.ParticipationService">
            <summary>
            Host-side authority for round participation decisions (AFK and skip-round exclusions).
            </summary>
        </member>
        <member name="T:TerrorTown.PlayerLifecycleState">
            <summary>
            Player lifecycle during a round. This replaces RoundParticipation and is the single
            authoritative signal for play vs spectate.
            </summary>
        </member>
        <member name="T:TerrorTown.PlayerState">
            <summary>
            Centralized, host-only authority for player life/lifecycle transitions. Everything is host authoritative here.
            KEEP CORE STATE TRANSITIONS ROUTED THROUGH HERE so ordering and logging stay consistent.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerState.GuardHost(TerrorTown.PlayerComponent,System.String)">
            <summary>
            Guard for clients attempting to call this method.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerState.SetLifecycleState(TerrorTown.PlayerComponent,TerrorTown.PlayerLifecycleState,System.Nullable{System.Single},System.Nullable{TerrorTown.RespawnState},System.Boolean,System.String,System.String)">
            <summary>
            Host-only: set the player's lifecycle state. This is the single source of truth for play vs spectate.
            Also ensures LifeState is consistent with the lifecycle.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerState.EnterObserver(TerrorTown.PlayerComponent,System.String,System.String)">
            <summary>
            Put a player into observer posture and NotInRound lifecycle.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerState.PrepareForRound(TerrorTown.PlayerComponent,System.String,System.String)">
            <summary>
            Exit observer posture and mark as PreRound.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerState.ReconcileForRoundStart(TerrorTown.PlayerComponent,System.String,System.String)">
            <summary>
            Host-only: reconcile expected alive players at round start.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerState.SanityPassForResyncWindow(TerrorTown.PlayerComponent,System.Boolean,System.Boolean,System.String,System.String)">
            <summary>
            Host-only sanity pass during resync windows: reconcile life vs lifecycle and ensure default equipment.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerState.DumpLobbyState(System.String,System.String)">
            <summary>
            Host-only diagnostic dump for all players in the lobby.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerStateComponent.SendSpawnConfirmation(System.Boolean)">
            <summary>
            RPC called from the client when local respawn finalize completes.
            Host treats this as an acknowledgement only (no host spawn re-entry).
            </summary>
        </member>
        <member name="T:TerrorTown.ResyncConVars">
            <summary>
            Legacy resync console variables (used only when GameMode.ResyncUseProperties is false).
            Kept outside PlayerComponent to avoid mixing core gameplay logic with console settings.
            </summary>
        </member>
        <member name="P:TerrorTown.ResyncConVars.ResyncEnabled">
            <summary>
            ConVar: t.resync.enable
            Master toggle for client-side resync requests. Default: true
            </summary>
        </member>
        <member name="P:TerrorTown.ResyncConVars.ResyncInterval">
            <summary>
            ConVar: t.resync.interval
            Minimum seconds between resync requests from the same client. Default: 1
            </summary>
        </member>
        <member name="P:TerrorTown.ResyncConVars.ResyncAllowRevive">
            <summary>
            ConVar: t.resync.allow.revive
            If false, resync will never change Dead -> Alive on the client. Default: true
            </summary>
        </member>
        <member name="P:TerrorTown.ResyncConVars.ResyncBroadcastInterval">
            <summary>
            ConVar: t.resync.broadcast.interval
            Host-only: if > 0, broadcast authoritative state every N seconds (0 disables). Default: 0
            </summary>
        </member>
        <member name="P:TerrorTown.ResyncConVars.ResyncAllowReviveLive">
            <summary>
            ConVar: t.resync.allow.revive.live
            Legacy: live-round revive policy now comes from GameMode.AllowResyncRevive. Default: false
            </summary>
        </member>
        <member name="P:TerrorTown.ResyncConVars.ResyncReviveStartedGrace">
            <summary>
            ConVar: t.resync.revive.started.grace
            Legacy: see GameMode.ResyncStartedGraceSeconds instead. Default: 1
            </summary>
        </member>
        <member name="P:TerrorTown.ResyncConVars.ResyncBroadcastOnRequest">
            <summary>
            ConVar: t.resync.broadcast.onrequest
            If true, a client resync request also triggers a broadcast to all clients. Default: true
            </summary>
        </member>
        <member name="T:TerrorTown.RoundEventPolicy">
            <summary>
            Shared round-phase policy for kill/stat side effects.
            </summary>
        </member>
        <member name="M:TerrorTown.RoundEventPolicy.ShouldCountKillSideEffects">
            <summary>
            Only the live round should count kill/death side effects (score, rewards, stats, haste timers).
            </summary>
        </member>
        <member name="T:TerrorTown.DefaultVoiceFilter">
            <summary>
            The default voice filter which prevents alive players from hearing dead players.
            </summary>
        </member>
        <member name="T:TerrorTown.RoundRulesSystem">
            <summary>
            Consolidated round lifecycle rules: waiting, prepare time, counting, time limits, and round delay.
            </summary>
        </member>
        <member name="T:TerrorTown.SpawnReason">
            <summary>
            Why a spawn was requested. Used for diagnostics and policy branching.
            </summary>
        </member>
        <member name="T:TerrorTown.PlayerPlacementUtility">
            <summary>
            Shared player-placement helper used by spawning and map-authored teleports.
            </summary>
        </member>
        <member name="T:TerrorTown.SpawnExecutionService">
            <summary>
            Host-side physical spawn authority (point selection, teleport, and movement safety).
            </summary>
        </member>
        <member name="M:TerrorTown.SpawnExecutionService.ResetAndRespawnBatchHost(System.Collections.Generic.IEnumerable{TerrorTown.PlayerComponent},TerrorTown.SpawnReason)">
            <summary>
            Host-side combined inventory reset + respawn pass with unique spawn reservations.
            </summary>
        </member>
        <member name="M:TerrorTown.SpawnExecutionService.TickHost">
            <summary>
            Host-side stabilization tick to catch spawn-time launches.
            </summary>
        </member>
        <member name="T:TerrorTown.SpawnPointSelector">
            <summary>
            Host-side spawn point chooser with safety checks and reservation support.
            </summary>
        </member>
        <member name="M:TerrorTown.SpawnPointSelector.SelectBest(TerrorTown.PlayerComponent,System.Collections.Generic.HashSet{System.Guid},System.Collections.Generic.IReadOnlyList{Vector3},System.Guid,System.Guid@)">
            <summary>
            Select the best available spawn transform for this player.
            </summary>
        </member>
        <member name="T:TerrorTown.SpawnSystem">
            <summary>
            Centralized spawn orchestration for participation, round start spawns, and warmup auto-respawns.
            </summary>
        </member>
        <member name="T:TerrorTown.CovertInspectionTracker">
            <summary>
            Client-side tracker for bodies the local player has covertly inspected.
            Used by the scoreboard to show "Dead" for privately inspected bodies.
            </summary>
        </member>
        <member name="T:TerrorTown.RoundCleanupSystem">
            <summary>
            Consolidated cleanup for round transitions. This cleans up GameObjects while TerrorTownLegacyMapLoader.
            It also cleans up corpses, regardless of map loader.
            </summary>
        </member>
        <member name="T:TerrorTown.RoundEquipmentResetReason">
            <summary>
            Little helper for removing equipment between rounds that isn't "in the inventory" (Body armor, radar etc)
            </summary>
        </member>
        <member name="T:TerrorTown.KillListenerAdapter">
            <summary>
            Temporary bridge that replays death events into legacy IKillListener callbacks.
            </summary>
        </member>
        <member name="T:TerrorTown.IEventProjection">
            <summary>
            Projection lifecycle hooks for consuming host-auth round events.
            </summary>
        </member>
        <member name="M:TerrorTown.IEventProjection.ResetForRound(System.Int32,System.String)">
            <summary>
            Called when a new round ledger starts.
            </summary>
        </member>
        <member name="M:TerrorTown.IEventProjection.OnEventAppended(TerrorTown.RoundEventRecord)">
            <summary>
            Called each time the host appends an event.
            </summary>
        </member>
        <member name="M:TerrorTown.IEventProjection.SealRound(System.Int32,System.String)">
            <summary>
            Called when the current round ledger is sealed.
            </summary>
        </member>
        <member name="T:TerrorTown.BodyInspectionReport">
            <summary>
            Normalized report model consumed by body UI and logs.
            </summary>
        </member>
        <member name="T:TerrorTown.DamageAttribution">
            <summary>
            Host-authoritative attribution result for one resolved damage action.
            </summary>
        </member>
        <member name="T:TerrorTown.KillFeedNotification">
            <summary>
            Read-model notification used by kill feed projection/UI.
            </summary>
        </member>
        <member name="T:TerrorTown.RoundEventActorRef">
            <summary>
            Shared actor reference used by round-event payloads.
            </summary>
        </member>
        <member name="T:TerrorTown.RoundEventInflictorRef">
            <summary>
            Shared inflictor reference used by round-event payloads.
            </summary>
        </member>
        <member name="T:TerrorTown.RoundEventDamageContext">
            <summary>
            Shared damage context used by round-event payloads.
            </summary>
        </member>
        <member name="T:TerrorTown.RoundEventAttribution">
            <summary>
            Shared attribution details used by round-event payloads.
            </summary>
        </member>
        <member name="T:TerrorTown.ScoreboardStats">
            <summary>
            Snapshot row used by scoreboard projection/UI.
            </summary>
        </member>
        <member name="T:TerrorTown.BodyInspectionProjection">
            <summary>
            Replicated read model for latest body inspection reports.
            </summary>
        </member>
        <member name="T:TerrorTown.KillFeedProjection">
            <summary>
            Collects death notifications for round-end kill feed rendering.
            </summary>
        </member>
        <member name="T:TerrorTown.ScoreboardProjection">
            <summary>
            Replicated scoreboard read model composed from host-auth state + score events.
            </summary>
        </member>
        <member name="M:TerrorTown.ScoreboardProjection.NotifyPlayerDeparted(System.Guid)">
            <summary>
            Broadcast from host when a player disconnects so every peer immediately hides their row,
            even before the synced SnapshotJson catches up.
            </summary>
        </member>
        <member name="T:TerrorTown.RoundEventEnvelope">
            <summary>
            Core metadata for one round event.
            </summary>
        </member>
        <member name="T:TerrorTown.RoundEventId">
            <summary>
            Deterministic event-id helper.
            </summary>
        </member>
        <member name="T:TerrorTown.RoundEventRecord">
            <summary>
            One typed event entry in the host-auth round ledger.
            </summary>
        </member>
        <member name="T:TerrorTown.RoundEventResolver">
            <summary>
            Helper methods for resolving actor/inflictor components from round event payload references.
            </summary>
        </member>
        <member name="T:TerrorTown.RoundEventStoreSystem">
            <summary>
            Host-auth append-only event ledger for the active round.
            </summary>
        </member>
        <member name="T:TerrorTown.RoundEventType">
            <summary>
            The canonical event families used by the round event store.
            </summary>
        </member>
        <member name="T:TerrorTown.RoundEventVisibility">
            <summary>
            Who is allowed to see an event payload.
            </summary>
        </member>
        <member name="T:TerrorTown.AttributionConfidence">
            <summary>
            Confidence level for attribution decisions.
            </summary>
        </member>
        <member name="T:TerrorTown.AttributionMode">
            <summary>
            Attribution path selected by host authority.
            </summary>
        </member>
        <member name="T:TerrorTown.IRoundEventPayload">
            <summary>
            Marker interface for round-event payloads.
            </summary>
        </member>
        <member name="T:TerrorTown.RoundProjectionRegistry">
            <summary>
            Registry/broadcast helper for event projections.
            </summary>
        </member>
        <member name="T:TerrorTown.AssistTrackerService">
            <summary>
            Tracks recent damage contributors for assist resolution.
            </summary>
        </member>
        <member name="T:TerrorTown.BodyInspectionService">
            <summary>
            Host-only corpse inspection service with reveal policy + event emission.
            </summary>
        </member>
        <member name="T:TerrorTown.DamageAttributionService">
            <summary>
            Resolves canonical attacker/inflictor attribution for round events.
            </summary>
        </member>
        <member name="T:TerrorTown.DamageResponsibilityService">
            <summary>
            Tracks short-lived causal ownership links used to attribute indirect damage and deaths.
            Host-only and reset each round.
            </summary>
        </member>
        <member name="T:TerrorTown.DeathPipelineService">
            <summary>
            Host-auth death pipeline that emits exactly one death-class round event per lethal hit.
            </summary>
        </member>
        <member name="T:TerrorTown.NotificationService">
            <summary>
            Typed host-side notification router for round events.
            </summary>
        </member>
        <member name="T:TerrorTown.RevealPolicyService">
            <summary>
            Centralized visibility/reveal rules for body + scoreboard role state.
            </summary>
        </member>
        <member name="T:TerrorTown.RoundScoringService">
            <summary>
            Host-auth scoring pipeline that derives score deltas from death events.
            </summary>
        </member>
        <member name="T:TerrorTown.RoundGatePhase">
            <summary>
            Host-authored transition gate for round flow.
            This tracks transition phases in one place so subsystems can opt into consistent policies.
            </summary>
        </member>
        <member name="P:TerrorTown.RoundGateSystem.RoundEpoch">
            <summary>
            Increments once per round-start transition. Tracked now for observability; not yet used as a hard gate.
            </summary>
        </member>
        <member name="M:TerrorTown.RoundGateSystem.BeginPreRoundTransition(System.String)">
            <summary>
            Begins host-side pre-round processing and bumps round epoch.
            </summary>
        </member>
        <member name="M:TerrorTown.RoundGateSystem.SetPhaseHost(TerrorTown.RoundGatePhase,System.String,System.Boolean)">
            <summary>
            Host-only phase transition entrypoint.
            </summary>
        </member>
        <member name="T:TerrorTown.TransitionOrchestrator">
            <summary>
            Host-first transition coordinator for round transitions and map-switch recovery.
            </summary>
        </member>
        <member name="T:TerrorTown.DeveloperRoleOverrideSystem">
            <summary>
            Developer-only role locks for testing. These apply the next time round role assignment runs.
            </summary>
        </member>
        <member name="T:TerrorTown.RewardSystem">
            <summary>
            Consolidated reward logic for score and traitor credits.
            </summary>
        </member>
        <member name="T:TerrorTown.RoleVisibilityResult">
            <summary>
            Canonical policy for any role-sensitive display logic.
            UI and presentation code should evaluate through this API instead of reading TeamComponent.Team directly!
            </summary>
        </member>
        <member name="T:TerrorTown.TeamComponent">
            <summary>
            Designates the team for a player.
            </summary>
        </member>
        <member name="P:TerrorTown.TeamComponent.OnTeamChanged">
            <summary>
            An action (for ActionGraph, or other components) to listen for team changes
            </summary>
        </member>
        <member name="P:TerrorTown.TeamComponent.Team">
            <summary>
            The team this player is on.
            </summary>
        </member>
        <member name="M:TerrorTown.TeamComponent.OnTeamPropertyChanged(TerrorTown.Team,TerrorTown.Team)">
            <summary>
            Called when <see cref="P:TerrorTown.TeamComponent.Team"/> changes across the network.
            </summary>
            <param name="before"></param>
            <param name="after"></param>
        </member>
        <member name="M:TerrorTown.TeamExtensions.GetTeam(TerrorTown.TeamEnum)">
            <summary>
            Accessor to get the team of someone/something.
            </summary>
        </member>
        <member name="M:TerrorTown.TeamExtensions.TeamsAreFriendly(TerrorTown.Team,TerrorTown.Team)">
            <summary>
            Are we friendly with this other team?
            </summary>
            <param name="teamOne"></param>
            <param name="teamTwo"></param>
            <returns></returns>
        </member>
        <member name="M:TerrorTown.TeamExtensions.IsFriendlyWithPlayer(TerrorTown.PlayerComponent,TerrorTown.PlayerComponent)">
            <summary>
            Are these two <see cref="T:TerrorTown.PlayerComponent"/>s friends with each other?
            </summary>
        </member>
        <member name="M:TerrorTown.TeamExtensions.IsFriendlyWithTeam(TerrorTown.PlayerComponent,TerrorTown.Team)">
            <summary>
            Are these two <see cref="T:TerrorTown.PlayerComponent"/>s friends with each other?
            </summary>
        </member>
        <member name="M:TerrorTown.TeamExtensions.PlayerIsTeam(TerrorTown.PlayerComponent,TerrorTown.Team)">
            <summary>
            Is this <see cref="T:TerrorTown.PlayerComponent"/> a certain team?  
            </summary>
        </member>
        <member name="T:TerrorTown.MapRegistry">
            <summary>
            Single source of truth for whitelisted and blacklisted maps.
            To add or remove a map, edit the arrays here.
            </summary>
        </member>
        <member name="T:TerrorTown.MapVoteConfig">
            <summary>
            Host-authored map vote configuration edited from the terrortown systems prefab.
            MapVoteSystem remains runtime-spawned and reads from this singleton when present.
            </summary>
        </member>
        <member name="M:TerrorTown.MapVoteSystem.GetWhitelistPackagesAsync">
            <summary>Returns whitelist packages from cache or fetches. Call PreloadWhitelistPackages() early to avoid first-time delay.</summary>
        </member>
        <member name="M:TerrorTown.MapVoteSystem.PreloadWhitelistPackages">
            <summary>Preload whitelist packages in the background so map vote and menu show instantly when opened.</summary>
        </member>
        <member name="P:TerrorTown.MapVoteSystem.Options">
            <summary>
            Our networked list of voting options.
            </summary>
        </member>
        <member name="P:TerrorTown.MapVoteSystem.Votes">
            <summary>
            Our networked list of votes.
            </summary>
        </member>
        <member name="P:TerrorTown.MapVoteSystem.TimeUntilDecidedWinner">
            <summary>
            How long until we decide who won?
            </summary>
        </member>
        <member name="P:TerrorTown.MapVoteSystem.TimeUntilTransfer">
            <summary>
            How long until we move server?
            </summary>
        </member>
        <member name="P:TerrorTown.MapVoteSystem.WinningOption">
            <summary>
            Which option is the winner?
            </summary>
        </member>
        <member name="P:TerrorTown.MapVoteSystem.MapVoteOverlay">
            <summary>
            An instance of the map vote overlay UI
            </summary>
        </member>
        <member name="P:TerrorTown.MapVoteSystem.ScreenPanel">
            <summary>
            The screen panel which draws our UI
            </summary>
        </member>
        <member name="F:TerrorTown.MapVoteSystem._isMinimized">
            <summary>
            Whether the vote UI is minimized (local client-side state)
            </summary>
        </member>
        <member name="P:TerrorTown.MapVoteSystem.IsMinimized">
            <summary>
            Public property to check if minimized
            </summary>
        </member>
        <member name="M:TerrorTown.MapVoteSystem.SetMinimized(System.Boolean)">
            <summary>
            Set whether the vote panel is minimized
            </summary>
        </member>
        <member name="M:TerrorTown.MapVoteSystem.GetWinningOption">
            <summary>
            What's our current winning option?
            </summary>
            <returns></returns>
        </member>
        <member name="M:TerrorTown.MapVoteSystem.GetSortedOptions">
            <summary>
            Returns the full list of options with their vote counts, sorted descending.
            Useful for external systems to decide winners or resolve draws.
            </summary>
        </member>
        <member name="M:TerrorTown.MapVoteSystem.Create(System.Boolean)">
            <summary>
            Start a vote. This'll make a component on the server and 
            </summary>
            <returns></returns>
        </member>
        <member name="M:TerrorTown.MapVoteSystem.Dev_CreateMapVote">
            <summary>
            This will immedately stop the game and force everyone to vote!!!	
            </summary>
        </member>
        <member name="M:TerrorTown.MapVoteSystem.RpcVote(System.Int32)">
            <summary>
            RPCs a vote, targeted to the host, so it's not exposed to any public API.
            </summary>
            <param name = "index"></param>
        </member>
        <member name="M:TerrorTown.MapVoteSystem.Vote(System.Int32)">
            <summary>
            Sends a vote to the host.
            </summary>
            <param name="index"></param>
        </member>
        <member name="T:TerrorTown.MapVoteSystem.NetworkedVote">
            <summary>
            A networked vote.
            </summary>
        </member>
        <member name="P:TerrorTown.MapVoteSystem.NetworkedVote.VoterId">
            <summary>
            The player's SteamId
            </summary>
        </member>
        <member name="P:TerrorTown.MapVoteSystem.NetworkedVote.Option">
            <summary>
            Which option are we voting for? (Mapped to the list)
            </summary>
        </member>
        <member name="T:TerrorTown.MapVoteSystem.Option">
            <summary>
            A voting option that has real data.
            </summary>
        </member>
        <member name="T:TerrorTown.WhitelistPackageCache">
            <summary>Cache for whitelist map packages. Lives in a plain static class to avoid Component.Task / whitelist issues.</summary>
        </member>
        <member name="M:TerrorTown.RTVSystem.ForceMapChangeWin">
            <summary>
            Admin/host force-passes a map change. Skips the normal vote — flags the system as
            HasPassed/PendingMapVoteAfterRound so the existing round-end → MapVoteSystem flow takes over.
            </summary>
        </member>
        <member name="T:TerrorTown.StartMapVoteOnEnd">
            <summary>
            Start a map vote at the end of the round limit or cycle automatically to another map.
            </summary>
        </member>
        <member name="P:TerrorTown.C4WeaponComponent.ThrowDelay">
            <summary>
            Seconds to wait after pressing Attack1 before the C4 actually spawns.
            Gives the toss animation time to play (e.g. 11 frames at 30fps ≈ 0.367s).
            </summary>
        </member>
        <member name="P:TerrorTown.C4WeaponComponent.SpawnDistance">
            <summary>
            How far in front of the player's eyes the C4 spawns when thrown.
            </summary>
        </member>
        <member name="P:TerrorTown.C4WeaponComponent.TossEndDuration">
            <summary>
            Seconds to keep the viewmodel visible after the C4 spawns, so the toss animation can finish.
            </summary>
        </member>
        <member name="T:TerrorTown.DNATraceComponent">
            <summary>
            Add this to objects you want to be scannable with the DNA Scanner
            </summary>
        </member>
        <member name="P:TerrorTown.FireComponent.AttackerId">
            The player who started this fire (for karma tracking)
        </member>
        <member name="M:TerrorTown.IgniterWeaponComponent.GetTrace">
            <summary>
            Runs a trace with all the data we have supplied it, and returns the result
            </summary>
            <returns></returns>
        </member>
        <member name="M:TerrorTown.HealthStationComponent.TryApplyHeal(TerrorTown.PlayerComponent)">
            <summary>
            Applies one tick of heal if conditions are met. Host-only; call from Pressing (host path) or RequestHeal (RPC from client).
            </summary>
        </member>
        <member name="M:TerrorTown.ObjectGrabberComponent.GetTrace">
            <summary>
            Runs a trace with all the data we have supplied it, and returns the result
            </summary>
            <returns></returns>
        </member>
        <member name="T:TerrorTown.RopeConstraint">
            <summary>
            Manually constrains a rigidbody to stay within rope length of an anchor point
            </summary>
        </member>
        <member name="T:TerrorTown.SimpleRopeVisual">
            <summary>
            Visual rope renderer
            </summary>
        </member>
        <member name="T:TerrorTown.BodyHangCleaner">
            <summary>
            Cleans up the hanging anchor when the corpse is destroyed
            </summary>
        </member>
        <member name="M:TerrorTown.ObjectPusherComponent.GetTrace">
            <summary>
            Runs a trace with all the data we have supplied it, and returns the result
            </summary>
            <returns></returns>
        </member>
        <member name="T:TerrorTown.PlacedPrefabComponent">
            <summary>
            Presumably for weapons prefabs placed in the world and to track the player who placed it
            </summary>
        </member>
        <member name="T:TerrorTown.AmmoComponent">
            <summary>
            An ammo container. It holds ammo for a weapon.
            </summary>
        </member>
        <member name="P:TerrorTown.AmmoComponent.Ammo">
            <summary>
            How much ammo are we holding?
            </summary>
        </member>
        <member name="P:TerrorTown.AmmoComponent.HasAmmo">
            <summary>
            Do we have any ammo?
            </summary>
        </member>
        <member name="P:TerrorTown.AmmoComponent.IsFull">
            <summary>
            Is this container full?
            </summary>
        </member>
        <member name="M:TerrorTown.AmmoComponent.SetAmmo(System.Int32)">
            <summary>
            Sets the ammo count. Use this from the host to ensure proper sync to clients.
            </summary>
        </member>
        <member name="M:TerrorTown.AmmoComponent.RemoveAmmo(System.Int32)">
            <summary>
            Removes ammo from the magazine. Use this from the host to ensure proper sync to clients.
            </summary>
        </member>
        <member name="F:TerrorTown.BulletSystem.BloodImpactSound">
            <summary>
            Store a reference to the blood impact sound so we don't have to grab it every time.
            </summary>
        </member>
        <member name="M:TerrorTown.BulletSystem.DoTracer(Vector3,Vector3,System.Int32,TerrorTown.BulletInfo)">
            <summary>
            Makes some tracers using particle effects.
            </summary>
        </member>
        <member name="M:TerrorTown.BulletSystem.GetBulletTrace(Vector3,Vector3,System.Single,System.Single,Sandbox.GameObject,System.Int32,System.Single)">
            <summary>
            Runs a trace with all the data we have supplied it, and returns the result
            </summary>
            <returns></returns>
        </member>
        <member name="P:TerrorTown.DroppedWeapon.ExcessAmmo">
            <summary>
            TTT Drops ammo with the weapon if no other weapons you have need it.
            </summary>
        </member>
        <member name="P:TerrorTown.HEGrenade.TerrorTown#IMarkerObject#MarkerFrame">
            <summary>
            Temporary marker just to make it obvious there's a grenade
            </summary>
        </member>
        <member name="P:TerrorTown.IncendiaryBurner.AttackerId">
            <summary>
            The player who threw the incendiary grenade (for karma tracking)
            </summary>
        </member>
        <member name="T:TerrorTown.InputWeaponComponent">
            <summary>
            A weapon component that reacts to input actions.
            </summary>
        </member>
        <member name="F:TerrorTown.InputWeaponComponent.CanShoot">
            <summary>When false, shooting is blocked (e.g. weapon wheel hover) but reload and other input still work.</summary>
        </member>
        <member name="F:TerrorTown.InputWeaponComponent.ShootHardBlock">
            <summary>Authoritative shoot block owned by higher-priority systems (e.g. round-end grace).
            Unlike <see cref="F:TerrorTown.InputWeaponComponent.CanShoot"/>, this isn't reset by weapon-wheel / slot-swap input handling,
            so holding Attack1 across weapon swaps won't phantom-fire when the block is lifted elsewhere.</summary>
        </member>
        <member name="P:TerrorTown.InputWeaponComponent.InputActions">
            <summary>
            What input action are we going to listen for?
            </summary>
        </member>
        <member name="P:TerrorTown.InputWeaponComponent.RequiresAllInputActions">
            <summary>
            Should we perform the action when ALL input actions match, or any?
            </summary>
        </member>
        <member name="P:TerrorTown.InputWeaponComponent.InputType">
            <summary>
            What kind of input are we listening for?
            </summary>
        </member>
        <member name="P:TerrorTown.InputWeaponComponent.OnInputAction">
            <summary>
            ActionGraphs action so you can do stuff with visual scripting.
            </summary>
        </member>
        <member name="M:TerrorTown.InputWeaponComponent.GetInputMethod(System.String)">
            <summary>
            Gets the input method
            </summary>
            <param name="action"></param>
            <returns></returns>
        </member>
        <member name="M:TerrorTown.InputWeaponComponent.OnInput">
            <summary>
            Called when the input method succeeds.
            </summary>
        </member>
        <member name="M:TerrorTown.InputWeaponComponent.OnInputUp">
            <summary>
            When the button is up
            </summary>
        </member>
        <member name="M:TerrorTown.InputWeaponComponent.OnInputDown">
            <summary>
            When the button is down
            </summary>
        </member>
        <member name="T:TerrorTown.IDroppedWeaponState">
            <summary>
            Interface for components on weapons that persist when dropped.
            </summary>
        </member>
        <member name="T:TerrorTown.IDroppedWeaponState`1">
            <summary>
            Interface for components on weapons that persist when dropped.
            Default implementation will create a copy of this component on the dropped weapon, then copy it back on pickup.
            </summary>
        </member>
        <member name="P:TerrorTown.MeleeWeaponComponent.EffectsRenderer">
            <summary>
            Fetches the desired model renderer that we'll focus effects on like trail effects, muzzle flashes, etc.
            </summary>
        </member>
        <member name="M:TerrorTown.MeleeWeaponComponent.DoEffects(System.Boolean)">
            <summary>
            Do shoot effects
            </summary>
        </member>
        <member name="M:TerrorTown.MeleeWeaponComponent.GetTrace(Ray)">
            <summary>
            Runs a trace with all the data we have supplied it, and returns the result
            </summary>
            <returns></returns>
        </member>
        <member name="M:TerrorTown.MeleeWeaponComponent.CanSwing">
            <summary>
            Can we shoot this gun right now?
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerPusherComponent.GetTrace">
            <summary>
            Runs a trace with all the data we have supplied it, and returns the result
            </summary>
            <returns></returns>
        </member>
        <member name="M:TerrorTown.PlayerPusherComponent.CanPush">
            <summary>
            Can we push right now?
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerPusherComponent.DoEffects">
            <summary>
            Do push effects
            </summary>
        </member>
        <member name="T:TerrorTown.PrefabAttacherWeaponComponent">
            <summary>
            This seems like it would be used for things like throwing a knife at a player, or sticking a poltergeist explosive to them, or maybe a flare gun.. etc
            </summary>
        </member>
        <member name="P:TerrorTown.PrefabAttacherWeaponComponent.AmmoComponent">
            <summary>
            The current weapon's ammo container.
            </summary>
        </member>
        <member name="P:TerrorTown.PrefabAttacherWeaponComponent.RemoveOnUse">
            <summary>
            Remove current weapon on use.
            </summary>
        </member>
        <member name="P:TerrorTown.PrefabAttacherWeaponComponent.PrefabOffset">
            <summary>
            Prefab Offset.
            </summary>
        </member>
        <member name="P:TerrorTown.PrefabAttacherWeaponComponent.TimeSinceShoot">
            <summary>
            how long since we shot?
            </summary>
        </member>
        <member name="M:TerrorTown.PrefabAttacherWeaponComponent.CanAttach">
            <summary>
            Can we shoot this gun right now?
            </summary>
            <returns></returns>
        </member>
        <member name="P:TerrorTown.ReloadWeaponComponent.ReloadTime">
            <summary>
            How long does it take to reload?
            </summary>
        </member>
        <member name="P:TerrorTown.ReloadWeaponComponent.EmptyReloadTime">
            <summary>
            How long does it take to reload while empty?
            </summary>
        </member>
        <member name="P:TerrorTown.ReloadWeaponComponent.AmmoComponent">
            <summary>
            This is really just the magazine for the weapon. 
            </summary>
        </member>
        <member name="P:TerrorTown.ShootWeaponComponent.ShootSound">
            <summary>
            What sound should we play when we fire?
            </summary>
        </member>
        <member name="P:TerrorTown.ShootWeaponComponent.DryFireSound">
            <summary>
            What sound should we play when we dry fire?
            </summary>
        </member>
        <member name="P:TerrorTown.ShootWeaponComponent.AmmoComponent">
            <summary>
            The current weapon's ammo container.
            </summary>
        </member>
        <member name="P:TerrorTown.ShootWeaponComponent.RequiresAmmoComponent">
            <summary>
            Does this weapon require an ammo container to fire its bullets?
            </summary>
        </member>
        <member name="P:TerrorTown.ShootWeaponComponent.RicochetMaxHits">
            <summary>
            How many ricochet hits until we stop traversing
            </summary>
        </member>
        <member name="P:TerrorTown.ShootWeaponComponent.MaxRicochetAngle">
            <summary>
            Maximum angle in degrees for ricochet to be possible
            </summary>
        </member>
        <member name="P:TerrorTown.ShootWeaponComponent.MaxEffectsPlayDistance">
            <summary>
            Anything past 2048 units won't produce effects,
            This is squared.
            </summary>
        </member>
        <member name="P:TerrorTown.ShootWeaponComponent.BloodEjectDistance">
            <summary>
            How far will we trace away from a gunshot wound, to make blood splatters?
            </summary>
        </member>
        <member name="P:TerrorTown.ShootWeaponComponent.WeaponRay">
            <summary>
            Accessor for the aim ray.
            </summary>
        </member>
        <member name="P:TerrorTown.ShootWeaponComponent.TimeSinceShoot">
            <summary>
            how long since we shot?
            </summary>
        </member>
        <member name="P:TerrorTown.ShootWeaponComponent.isShooting">
            <summary>
            Have we been continuously shooting?	
            </summary>
        </member>
        <member name="P:TerrorTown.ShootWeaponComponent.Effector">
            <summary>
            Fetches the desired model renderer that we'll focus effects on like trail effects, muzzle flashes, etc.
            </summary>
        </member>
        <member name="F:TerrorTown.ShootWeaponComponent.BloodImpactSound">
            <summary>
            Store a reference to the blood impact sound so we don't have to grab it every time.
            </summary>
        </member>
        <member name="M:TerrorTown.ShootWeaponComponent.DoShootEffects">
            <summary>
            Play any particle effects such as muzzle flashes.
            </summary>
        </member>
        <member name="M:TerrorTown.ShootWeaponComponent.Shoot">
            <summary>
            Shoot the gun!
            </summary>
        </member>
        <member name="M:TerrorTown.ShootWeaponComponent.GetBulletSpread">
            <summary>
            Gets the current bullet spread which is accumulated by the player's movement speed, or if they're in the air.
            </summary>
            <returns></returns>
        </member>
        <member name="M:TerrorTown.ShootWeaponComponent.CanShoot">
            <summary>
            Can we shoot this gun right now?
            </summary>
            <returns></returns>
        </member>
        <member name="T:TerrorTown.Weapon">
            <summary>
            A weapon component.
            </summary>
        </member>
        <member name="P:TerrorTown.Weapon.DamageDescriptor">
            <summary>
            Optional editor-authored damage descriptor overrides for this equippable item.
            </summary>
        </member>
        <member name="T:TerrorTown.Weapon.IDeploymentListener">
            <summary>
            Subscribe to changes in the weapon's deployed state.
            </summary>
        </member>
        <member name="P:TerrorTown.Weapon.Resource">
            <summary>
            A reference to the weapon's <see cref="T:WeaponData"/>.
            </summary>
        </member>
        <member name="P:TerrorTown.Weapon.TagBinder">
            <summary>
            A tag binder for this weapon.
            </summary>
        </member>
        <member name="M:TerrorTown.Weapon.BindTag(System.String,System.Func{System.Boolean})">
            <summary>
            Shorthand to bind a tag.
            </summary>
            <param name="tag"></param>
            <param name="predicate"></param>
        </member>
        <member name="P:TerrorTown.Weapon.ModelRenderer">
            <summary>
            A reference to the weapon's model renderer.
            </summary>
        </member>
        <member name="P:TerrorTown.Weapon.WorldModelScale">
            <summary>
            Scale multiplier for the world model when spawned, dropped, thrown
            </summary>
        </member>
        <member name="P:TerrorTown.Weapon.HeldModelScale">
            <summary>
            Scale multiplier for the world model when held by a player
            </summary>
        </member>
        <member name="P:TerrorTown.Weapon.HoldType">
            <summary>
            The default holdtype for this weapon.
            </summary>
        </member>
        <member name="P:TerrorTown.Weapon.DeploySound">
            <summary>
            What sound should we play when taking this gun out?
            </summary>
        </member>
        <member name="P:TerrorTown.Weapon.DeployTime">
            <summary>
            What sound should we play when taking this gun out?
            </summary>
        </member>
        <member name="P:TerrorTown.Weapon.SpeedPenalty">
            <summary>
            How slower do we walk with this weapon out?
            </summary>
        </member>
        <member name="P:TerrorTown.Weapon.IsDeployed">
            <summary>
            Is this weapon currently deployed by the player?
            </summary>
        </member>
        <member name="M:TerrorTown.Weapon.UpdateRenderMode">
            <summary>
            Updates the render mode, if we're locally controlling a player, we want to hide the world model.
            </summary>
        </member>
        <member name="P:TerrorTown.Weapon.ViewModel">
            <summary>
            A reference to the weapon's <see cref="T:TerrorTown.ViewModel"/> if it has one.
            </summary>
        </member>
        <member name="P:TerrorTown.Weapon.Owner">
            <summary>
            Get the weapon's owner - namely the player controller
            </summary>
        </member>
        <member name="P:TerrorTown.Weapon.TimeSincePrimaryAttack">
            <summary>
            How long it's been since we used this attack.
            </summary>
        </member>
        <member name="P:TerrorTown.Weapon.TimeSinceSecondaryAttack">
            <summary>
            How long it's been since we used this attack.
            </summary>
        </member>
        <member name="M:TerrorTown.Weapon.Deploy">
            <summary>
            Deploy this weapon.
            </summary>
        </member>
        <member name="M:TerrorTown.Weapon.Holster">
            <summary>
            Holster this weapon.
            </summary>
        </member>
        <member name="M:TerrorTown.Weapon.GetHoldType">
            <summary>
            Allow weapons to override holdtypes at any notice.
            </summary>
            <returns></returns>
        </member>
        <member name="M:TerrorTown.Weapon.PrimaryAttack">
            <summary>
            Called when trying to shoot the weapon with the "Attack1" input action.
            </summary>
            <returns></returns>
        </member>
        <member name="M:TerrorTown.Weapon.CanPrimaryAttack">
            <summary>
            Can we even use this attack?
            </summary>
            <returns></returns>
        </member>
        <member name="M:TerrorTown.Weapon.SecondaryAttack">
            <summary>
            Called when trying to shoot the weapon with the "Attack2" input action.
            </summary>
            <returns></returns>
        </member>
        <member name="M:TerrorTown.Weapon.CanSecondaryAttack">
            <summary>
            Can we even use this attack?
            </summary>
            <returns></returns>
        </member>
        <member name="M:TerrorTown.Weapon.CreateViewModel(System.Boolean)">
            <summary>
            Creates a viewmodel for the player to use.
            </summary>
        </member>
        <member name="T:TerrorTown.WeaponComponent">
            <summary>
            A weapon component. This can be anything that controls a weapon. Aiming, recoil, sway, shooting..
            </summary>
        </member>
        <member name="P:TerrorTown.WeaponComponent.Weapon">
            <summary>
            The weapon. It's going to be a component on the same <see cref = "T:Sandbox.GameObject"/>.
            </summary>
        </member>
        <member name="T:TerrorTown.ConnectedClient">
            <summary>
            Where we hold all of the player's stats, both persistent ones and per-lobby/map ones.
            </summary>
            <summary>
            This class represents a connected client and their core data. Replaces the old PawnSystem.
            The PREFAB this class is on owns round-mode routing (Playing, Spectating, joining late, etc),
            and everything else (SpectateSystem, PlayerComponent.State, UI) will react accordingly.
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.PlayerId">
            <summary>
            Unique ID given to players, equal to the owning Player connection ID if it's a real player (and not a bot).
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.IsAFK">
            <summary>
            Host-authored AFK state. AFK clients are excluded from round admission until cleared.
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.SkipRoundsRemaining">
            <summary>
            Host-authored count of upcoming rounds to skip (used for slay-style exclusions).
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.IsRoundExcluded">
            <summary>
            Whether this client is currently excluded from the round cycle.
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.PawnObject">
            <summary>
            This is "What we are right now", the GameObject. Networked reference that lets every client resolve the pawn when/if they need to.
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.PawnBindEpoch">
            <summary>
            Host-authored: epoch for pawn binding updates. Used to detect missed bindings.
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.PawnComponentId">
            <summary>
            Host-authored: component Id of the pawn (PlayerComponent).
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.BindState">
            <summary>
            Host-authored: explicit pawn bind state. Avoids empty IDs during transitions.
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.Viewer">
            <summary>
            Non-networked, clientside-only: "This local client is currently controlling/viewimg through this pawn".
            The rule: This is the ONLY control/view truth in the game.
            This is used around the codebase for control routing and spectating is entirely about which Viewer we're on.
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.IsMe">
            <summary>
            Is this client me?
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.All">
            <summary>
            Data for all players. Only the host should ever be making use of this!
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.Local">
            <summary>
            The local client's ClientData (null if not spawned yet).
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.LocalPlayer">
            <summary>
            Our persistent player pawn that we always own, whether we're dead or alive. 
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.ViewedPlayer">
            <summary>
            The player we're viewing from the perspective of; ourselves or someone we're spectating.
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.LifecycleState">
            <summary>
            Derived lifecycle state from the owned pawn. This replaces ParticipationState.
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.SpectateTarget">
            <summary>
            Clientside-only: currently spectated player (if any).
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.SpectateCameraMode">
            <summary>
            Clientside-only: current spectate camera mode.
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.CanControlPawn">
            <summary>
            Should we be controlling our pawn in the world?
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.IsSpectating">
            <summary>
            Are we currently in a spectating state?
            </summary>
        </member>
        <member name="P:TerrorTown.ConnectedClient.IsFreecam">
            <summary>
            Are we spectating without a target?
            </summary>
        </member>
        <member name="M:TerrorTown.ConnectedClient.PushAfkPreference(System.Boolean)">
            <summary>
            Local helper: push AFK preference to host and suppress one-time baseline announce races.
            </summary>
        </member>
        <member name="M:TerrorTown.ConnectedClient.ReassertPawnBindingHost(System.String,System.Boolean)">
            <summary>
            Host only: Assign the "owned pawn" for this client- whatever they are controlling and playing as right now.
            This is NOT the same as Viewer (spectating changes Viewer).
            </summary>
        </member>
        <member name="M:TerrorTown.ConnectedClient.Possess(TerrorTown.IPawn)">
            <summary>
            Clientside: switch the local view/control target to a pawn. 
            Stops running if we're not the local client or if we are already controlling/viewing this pawn,
            which lets us use this as a guard rail around the codebase 
            </summary>
        </member>
        <member name="M:TerrorTown.ConnectedClient.DePossess(TerrorTown.IPawn)">
            <summary>
            Clientside: Depossesses a pawn. If it's not currently Viewer, it's a no-op.
            </summary>
        </member>
        <member name="T:TerrorTown.IPawn">
            <summary>
            Pawn interface. Anything that can be used as a viewing target or possessed/controlled implements this.
            Importantly, calls to Possess and Depossess are done by internally calling ConnectedClient to keep the truth
            in only one place for the player.
            </summary>
        </member>
        <member name="M:TerrorTown.IPawn.OnPossess">
            <summary>
            Called during possession, from the pawn. ConnectedClient initiates the call, the pawn object does any specific work.
            </summary>
        </member>
        <member name="M:TerrorTown.IPawn.OnDePossess">
            <summary>
            Called when leaving possession, from the pawn. ConnectedClient initiates the call, the pawn object does any specific work.
            </summary>
        </member>
        <member name="P:TerrorTown.IPawn.SteamId">
            <summary>
            Shorthand accessor for the value coming from ConnectedClient.
            </summary>
        </member>
        <member name="P:TerrorTown.IPawn.PlayerName">
            <summary>
            Shorthand accessor for the value coming from ConnectedClient.
            </summary>
        </member>
        <member name="P:TerrorTown.IPawn.Owner">
            <summary>
            Who is the client that owns this pawn? 
            Pawns 
            </summary>
        </member>
        <member name="P:TerrorTown.IPawn.IsProxy">
            <summary>
            Do we have network rights over this pawn? 
            </summary>
        </member>
        <member name="P:TerrorTown.IPawn.Possessing">
            <summary>
            Are we possessing this pawn right now? (Clientside)
            True when this pawn is the local viewer target, not necessarily controlling
            This is reference equality. It's fine but we need to be aware as time goes on
            Viewer should always be the actual IPawn instance not a proxy wrapper or anything
            </summary>
        </member>
        <member name="M:TerrorTown.IPawn.Possess">
            <summary>
            Make this pawn the local viewer target.
            </summary>
        </member>
        <member name="M:TerrorTown.IPawn.DePossess">
            <summary>
            Clear local viewer target (if it is this pawn).
            </summary>
        </member>
        <member name="T:TerrorTown.CorpseForensicsComponent">
            <summary>
            Host-authored forensic snapshot attached to each corpse object.
            </summary>
        </member>
        <member name="T:TerrorTown.DamageCatalog">
            <summary>
            Centralized entrypoint for damage classification + descriptor lookup.
            </summary>
        </member>
        <member name="T:TerrorTown.TttDamageCause">
            <summary>
            Stable cause ids for logs, descriptors, and gameplay branching.
            </summary>
        </member>
        <member name="T:TerrorTown.TttDamageClassification">
            <summary>
            Canonical classification output for one damage event.
            </summary>
        </member>
        <member name="T:TerrorTown.TttDamageClassifier">
            <summary>
            Priority-ordered rule classifier for TerrorTown damage events.
            </summary>
        </member>
        <member name="T:TerrorTown.TttDamageKind">
            <summary>
            Canonical high-level damage kind used by gameplay systems and UI.
            </summary>
        </member>
        <member name="T:TerrorTown.TttDamageRule">
            <summary>
            One data-driven classification rule with priority.
            </summary>
        </member>
        <member name="T:TerrorTown.DamageInfo">
            <summary>
                Describes the damage that should be done to something. This is purposefully a
                class so it can be derived from, allowing games to create their own special types
                of damage, while not having to create a whole new system.
            </summary>
        </member>
        <member name="P:TerrorTown.DamageInfo.Attacker">
            <summary>
                Usually a player or Npc
            </summary>
        </member>
        <member name="P:TerrorTown.DamageInfo.Inflictor">
            <summary>
                The weapon/object that did the damage, or a vehicle etc
            </summary>
        </member>
        <member name="P:TerrorTown.DamageInfo.Hitbox">
            <summary>
                The hitbox that we hit (if any)
            </summary>
        </member>
        <member name="P:TerrorTown.DamageInfo.HitboxName">
            <summary>
                Stable hitbox/bone name string for networked and descriptor contexts.
            </summary>
        </member>
        <member name="P:TerrorTown.DamageInfo.Tags">
            <summary>
                Tags that define the type of damage this is
            </summary>
        </member>
        <member name="P:TerrorTown.DamageInfo.Damage">
            <summary>
                Amount of damage this should do
            </summary>
        </member>
        <member name="P:TerrorTown.DamageInfo.Position">
            <summary>
                The location of the damage
            </summary>
        </member>
        <member name="P:TerrorTown.DamageInfo.Origin">
            <summary>
                The source/origin position of this damage, if known.
            </summary>
        </member>
        <member name="P:TerrorTown.DamageInfo.Force">
            <summary>
                The force of the damage
            </summary>
        </member>
        <member name="P:TerrorTown.DamageInfo.Shape">
            <summary>
                The physics shape that we hit (if any)
            </summary>
        </member>
        <member name="P:TerrorTown.DamageInfo.Classification">
            <summary>
                Canonical classification computed by <see cref="T:TerrorTown.DamageCatalog"/>.
            </summary>
        </member>
        <member name="T:TerrorTown.DamageInfoBridge">
            <summary>
            Bridge from engine-native damage events to TerrorTown damage info.
            </summary>
        </member>
        <member name="T:TerrorTown.DamageDescriptorSourceComponent">
            <summary>
            Editor-authored descriptor overrides for specific damage-producing objects.
            </summary>
        </member>
        <member name="P:TerrorTown.DamageDescriptorSourceComponent.EnabledForDamageDescriptors">
            <summary>
            Master switch for this source. When false, this component is ignored and fallback descriptor data is used.
            </summary>
        </member>
        <member name="P:TerrorTown.DamageDescriptorSourceComponent.CauseIdOverride">
            <summary>
            Optional cause ID override for the built descriptor.
            This currently feeds <see cref="P:TerrorTown.TerrorTownState.LastDamageCause"/> snapshots; round-event attribution/scoring still use classified cause.
            </summary>
        </member>
        <member name="P:TerrorTown.DamageDescriptorSourceComponent.ScoringCategoryOverride">
            <summary>
            Optional scoring category override on the descriptor model.
            Reserved for scoring/rules consumers; not currently read by <see cref="T:TerrorTown.RoundScoringService"/>.
            </summary>
        </member>
        <member name="P:TerrorTown.DamageDescriptorSourceComponent.OverridePreferWeaponName">
            <summary>
            If true, apply <see cref="P:TerrorTown.DamageDescriptorSourceComponent.PreferWeaponName"/> instead of inheriting fallback descriptor behavior.
            </summary>
        </member>
        <member name="P:TerrorTown.DamageDescriptorSourceComponent.PreferWeaponName">
            <summary>
            Body-info formatting preference used only when <see cref="P:TerrorTown.DamageDescriptorSourceComponent.OverridePreferWeaponName"/> is true.
            When active, BodyInfo context appends weapon naming to the resolved phrase (example: "{bodyInfoText} with {weapon}").
            </summary>
        </member>
        <member name="P:TerrorTown.DamageDescriptorSourceComponent.OverrideLeavesDna">
            <summary>
            If true, apply <see cref="P:TerrorTown.DamageDescriptorSourceComponent.LeavesDnaByDefault"/> instead of inheriting fallback descriptor behavior.
            </summary>
        </member>
        <member name="P:TerrorTown.DamageDescriptorSourceComponent.LeavesDnaByDefault">
            <summary>
            Default DNA policy for this descriptor when <see cref="P:TerrorTown.DamageDescriptorSourceComponent.OverrideLeavesDna"/> is enabled.
            This flows to corpse forensics via <see cref="P:TerrorTown.TerrorTownState.LastDamageLeavesDna"/>.
            </summary>
        </member>
        <member name="P:TerrorTown.DamageDescriptorSourceComponent.BodyInfoText">
            <summary>
            Base body-inspection phrase for BodyInfo context.
            Grammar slot: treated as the leading clause, then UI appends " {seconds} second(s) ago".
            Example: "Shot in the chest" -> "Shot in the chest 12 seconds ago".
            </summary>
        </member>
        <member name="P:TerrorTown.DamageDescriptorSourceComponent.KillFeedText">
            <summary>
            Base kill-feed verb/phrase for KillFeed context.
            Grammar slot: intended to sit between killer and victim (e.g. "stabbed", "burned").
            This is consumed by the live kill-feed projection.
            </summary>
        </member>
        <member name="P:TerrorTown.DamageDescriptorSourceComponent.ConsoleLogText">
            <summary>
            Context override text for ConsoleLog context.
            Intended as a short death descriptor phrase; currently no active console formatter resolves this context.
            </summary>
        </member>
        <member name="P:TerrorTown.DamageDescriptorSourceComponent.RoundSummaryText">
            <summary>
            Context override text for RoundSummary context.
            Intended as a summary-friendly phrase/sentence fragment; currently reserved until summary rendering resolves descriptor context.
            </summary>
        </member>
        <member name="P:TerrorTown.DamageDescriptorSourceComponent.StatsText">
            <summary>
            Context override text for Stats context.
            Intended as compact stats/log wording; currently reserved until stats renderers resolve descriptor context.
            </summary>
        </member>
        <member name="P:TerrorTown.DamageDescriptorSourceComponent.DetectiveInfoText">
            <summary>
            Context override text for DetectiveInfo context.
            Intended for forensic/detective-only readouts; currently reserved until detective views resolve descriptor context.
            </summary>
        </member>
        <member name="P:TerrorTown.DamageDescriptorSourceComponent.HeadshotBodyInfoText">
            <summary>
            Headshot-only replacement for BodyInfo context.
            Grammar slot is identical to <see cref="P:TerrorTown.DamageDescriptorSourceComponent.BodyInfoText"/> and still receives the " {seconds} second(s) ago" suffix.
            </summary>
        </member>
        <member name="P:TerrorTown.DamageDescriptorSourceComponent.HeadshotKillFeedText">
            <summary>
            Headshot-only replacement for KillFeed context.
            Grammar slot is identical to <see cref="P:TerrorTown.DamageDescriptorSourceComponent.KillFeedText"/> (verb/phrase between killer and victim).
            </summary>
        </member>
        <member name="T:TerrorTown.EquippableDamageDescriptorComponent">
            <summary>
            Descriptor overrides for player equipment and weapons.
            </summary>
        </member>
        <member name="T:TerrorTown.GenericWorldDamageDescriptorComponent">
            <summary>
            Descriptor overrides for non-equippable world objects (props, scripted world explosions, etc).
            </summary>
        </member>
        <member name="T:TerrorTown.MapHazardDamageDescriptorComponent">
            <summary>
            Descriptor overrides for authored map hazards (traps, trigger hazards, environmental killers).
            </summary>
        </member>
        <member name="T:TerrorTown.TttDamageDescriptor">
            <summary>
            Text/profile metadata for one canonical damage cause.
            </summary>
        </member>
        <member name="P:TerrorTown.TttDamageDescriptor.CorpseText">
            <summary>
            Base phrase for BodyInfo-like contexts (corpse/inspection wording).
            </summary>
        </member>
        <member name="P:TerrorTown.TttDamageDescriptor.KillFeedText">
            <summary>
            Base phrase for KillFeed-like contexts (typically a kill method verb/phrase).
            </summary>
        </member>
        <member name="T:TerrorTown.TttDamageDescriptorContext">
            <summary>
            Where a damage description is being rendered.
            </summary>
        </member>
        <member name="F:TerrorTown.TttDamageDescriptorContext.BodyInfo">
            <summary>
            Corpse/body inspection text.
            Current runtime grammar: value is used as a leading clause, then body UI appends elapsed-time text.
            </summary>
        </member>
        <member name="F:TerrorTown.TttDamageDescriptorContext.KillFeed">
            <summary>
            Kill feed method verb/phrase (typically between killer and victim names).
            Currently reserved in descriptor pipeline; live kill feed still emits fixed verbs.
            </summary>
        </member>
        <member name="F:TerrorTown.TttDamageDescriptorContext.ConsoleLog">
            <summary>
            Console logging representation of the death method.
            </summary>
        </member>
        <member name="F:TerrorTown.TttDamageDescriptorContext.RoundSummary">
            <summary>
            Round summary representation of the death method.
            </summary>
        </member>
        <member name="F:TerrorTown.TttDamageDescriptorContext.Stats">
            <summary>
            Stats/telemetry representation of the death method.
            </summary>
        </member>
        <member name="F:TerrorTown.TttDamageDescriptorContext.DetectiveInfo">
            <summary>
            Detective/forensics representation of the death method.
            </summary>
        </member>
        <member name="T:TerrorTown.TttDamageDescriptorRegistry">
            <summary>
            Registry for cause descriptors used by corpse text, kill feed, and logs.
            </summary>
        </member>
        <member name="T:TerrorTown.TttDamageDescriptorSourceResolver">
            <summary>
            Resolves the best descriptor source component for a damage payload or snapshot.
            </summary>
        </member>
        <member name="T:TerrorTown.TttDamageEvent">
            <summary>
            Canonical runtime snapshot of one resolved damage application.
            </summary>
        </member>
        <member name="T:TerrorTown.TttDamageTextVariant">
            <summary>
            One optional weighted descriptor text variant with context/predicate filtering.
            </summary>
        </member>
        <member name="T:TerrorTown.HealthComponent">
            <summary>
            A health component for any kind of GameObject.
            </summary>
        </member>
        <member name="P:TerrorTown.HealthComponent.IsGodMode">
            <summary>
            Are we in god mode?
            </summary>
        </member>
        <member name="P:TerrorTown.HealthComponent.OnHealthChanged">
            <summary>
            An action (mainly for ActionGraphs) to respond to when a GameObject's health changes.
            </summary>
        </member>
        <member name="P:TerrorTown.HealthComponent.TimeSinceLifeStateChanged">
            <summary>
            How long has it been since life state changed?
            </summary>
        </member>
        <member name="F:TerrorTown.HealthComponent.LifeMismatchGraceSeconds">
            <summary>
            Grace window before reporting life/health mismatch as desync.
            </summary>
        </member>
        <member name="P:TerrorTown.HealthComponent.RespawnState">
            <summary>
            Are we ready to respawn?
            </summary>
        </member>
        <member name="P:TerrorTown.HealthComponent.ArmorReduction">
            <summary>
            How much to reduce damage by when we have armor.
            </summary>
        </member>
        <member name="P:TerrorTown.HealthComponent.Health">
            <summary>
            What's our health?
            </summary>
        </member>
        <member name="P:TerrorTown.HealthComponent.State">
            <summary>
            What's our life state?
            </summary>
        </member>
        <member name="M:TerrorTown.HealthComponent.OnHealthPropertyChanged(System.Single,System.Single)">
            <summary>
            Called when <see cref="P:TerrorTown.HealthComponent.Health"/> is changed across the network.
            </summary>
            <param name="oldValue"></param>
            <param name="newValue"></param>
        </member>
        <member name="T:TerrorTown.LifeState">
            <summary>
            The component's life state.
            </summary>
        </member>
        <member name="T:TerrorTown.IDamageListener">
            <summary>
            A listener put on a component that listens to damage.
            </summary>
        </member>
        <member name="M:TerrorTown.IDamageListener.OnDamageGiven(System.Single,Vector3,Vector3,Sandbox.Component,Sandbox.Component,System.String,System.String[])">
            <summary>
            Called when YOU inflict damage on something
            </summary>
            <param name="damage"></param>
            <param name="position"></param>
            <param name="force"></param>
            <param name="target"></param>
            <param name="hitbox"></param>
        </member>
        <member name="M:TerrorTown.IDamageListener.OnDamageTaken(System.Single,Vector3,Vector3,Sandbox.Component,Sandbox.Component,System.String,System.String[])">
            <summary>
            Called when YOU take damage from something
            </summary>
            <param name="damage"></param>
            <param name="position"></param>
            <param name="force"></param>
            <param name="attacker"></param>
            <param name="hitbox"></param>
        </member>
        <member name="M:TerrorTown.IDamageListener.PreDamageTaken(System.Single@,Vector3,Vector3,Sandbox.Component,Sandbox.Component,System.String,System.String[])">
            <summary>
            Called when YOU take damage from something
            </summary>
            <param name="damage"></param>
            <param name="position"></param>
            <param name="force"></param>
            <param name="attacker"></param>
            <param name="hitbox"></param>
        </member>
        <member name="T:TerrorTown.IKillListener">
            <summary>
            A listener put on a component that listens to damage.
            </summary>
        </member>
        <member name="M:TerrorTown.IKillListener.OnPlayerKilled(Sandbox.Component,Sandbox.Component,System.Single,Vector3,Vector3,Sandbox.Component,System.String)">
            <summary>
            Called when something dies
            </summary>
            <param name="damage"></param>
            <param name="position"></param>
            <param name="force"></param>
            <param name="inflictor"></param>
            <param name="hitbox"></param>
            <param name="killer"></param>
            <param name="victim"></param>
        </member>
        <member name="T:TerrorTown.IPreKillListener">
            <summary>
            A listener that is called BEFORE a player dies, allowing you to handle equipment drops, etc.
            </summary>
        </member>
        <member name="M:TerrorTown.IPreKillListener.OnPlayerAboutToDie(Sandbox.Component,Sandbox.Component,System.Single,Vector3,Vector3,Sandbox.Component,System.String)">
            <summary>
            Called when something is about to die, before the kill sequence begins
            </summary>
        </member>
        <member name="T:TerrorTown.DamageSnapshotService">
            <summary>
            Hosts the canonical last-damage snapshot authoring path, keeping state storage lean.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerAmmo.AuthoritySetAmmo(TerrorTown.AmmoType,System.Int32)">
            <summary>
            Set a player's ammo, this is different to SetAmmo as it works for non local players
            </summary>
            <param name = "type"></param>
            <param name = "amount"></param>
        </member>
        <member name="M:TerrorTown.PlayerAmmo.AuthorityGiveAmmo(TerrorTown.AmmoType,System.Int32)">
            <summary>
            Give ammo to a player, this is different to GiveAmmo as it works for non local players
            </summary>
            <param name = "type"></param>
            <param name = "amount"></param>
        </member>
        <member name="M:TerrorTown.PlayerAmmo.HostEstimatedAmmo(TerrorTown.AmmoType)">
            <summary>
            Host-only view of reserves that accounts for grants the host has fired via RPC
            but whose sync hasn't round-tripped back yet. Decays to the real synced value after
            HostEstimateTrustSeconds so genuine consumption (firing) takes over correctly.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerAmmo.HostTryGrantFromPickup(TerrorTown.AmmoType,System.Int32)">
            <summary>
            Host-authoritative pickup gate. Returns the amount actually granted (0 if reserves are
            already full according to the host's estimate, i.e. there's an in-flight grant that
            already used the remaining space).
            </summary>
        </member>
        <member name="T:TerrorTown.PlayerInventory">
            <summary>
            The player's inventory.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerInventory.Weapons">
            <summary>
            What weapons do we have right now?
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerInventory.WeaponGameObject">
            <summary>
            A <see cref="T:Sandbox.GameObject"/> that will hold all of our weapons.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerInventory.CanUnequipCurrentWeapon">
            <summary>
            Can we unequip the current weapon so we have no weapons out?
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerInventory.Credits">
            <summary>
            Players current Credits
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerInventory.CurrentWeapon">
            <summary>
            Gets the player's current weapon.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerInventory.DropWeaponInternal(System.Guid,System.Boolean,System.Boolean,System.Int32)">
            <summary>
            Internal method that actually performs the weapon drop logic.
            Can be called directly from host without going through RPC.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerInventory.SwitchWeapon(TerrorTown.Weapon)">
            <summary>
            Tries to set the player's current weapon to a specific one, which has to be in the player's inventory.
            </summary>
            <param name="weapon"></param>
        </member>
        <member name="M:TerrorTown.PlayerInventory.RemoveWeapon(TerrorTown.Weapon)">
            <summary>
            Removes the given weapon and destroys it.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerInventory.RemoveWeapon(WeaponData)">
            <summary>
            Removes the given weapon (by its resource data) and destroys it.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerInventory.TransferCreditsTo(System.Guid,System.Int32)">
            <summary>
            Transfers credits from this player to a teammate (Traitor only). Runs on host via RPC.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerMovement.Bounciness">
            <summary>
            When jumping into walls, should we bounce off or just stop dead?
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerMovement.UseCollisionRules">
            <summary>
            If enabled, determine what to collide with using current project's collision rules for the <see cref="P:Sandbox.GameObject.Tags"/>
            of the containing <see cref="T:Sandbox.GameObject"/>.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerMovement.PlayerTraceCollider">
            <summary>
            Optional collider used as the shape of the player's movement trace, uses helper physics body or bbox if unset.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerMovement.LaunchUpwards(System.Single)">
            <summary>
            Move up and leave the ground, great for jumping.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerMovement.Accelerate(Vector3)">
            <summary>
            Add acceleration to the current velocity. 
            No need to scale by time delta - it will be done inside.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerMovement.Accelerate(Vector3,System.Single)">
            <summary>
            Add our wish direction and speed onto our velocity
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerMovement.ApplyFriction(Vector3,System.Single,System.Single)">
            <summary>
            Apply an amount of friction to the current velocity.
            No need to scale by time delta - it will be done inside.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerMovement.TraceDirection(Vector3)">
            <summary>
            Trace the controller's current position to the specified delta
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerMovement.Punch(Vector3@)">
            <summary>
            Disconnect from ground and punch our velocity. This is useful if you want the player to jump or something.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerMovement.ClearGround">
            <summary>
            We're no longer on the ground, remove it
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerMovement.ChangeGround(Sandbox.SceneTraceResult)">
            <summary>
            We have a new ground
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerMovement.MoveTo(Vector3,System.Boolean)">
            <summary>
            Move from our current position to this target position, but using tracing an sliding.
            This is good for different control modes like ladders and stuff.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerMovement.Gravity">
            <summary>
            The current gravity.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerMovement.BaseFriction">
            <summary>
            How much friction does the player have?
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerMovement.StopSpeed">
            <summary>
            The speed at which we fully come to a stop.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerMovement.AirControl">
            <summary>
            Can we control our movement in the air?
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerMovement.Move(System.Boolean,System.Boolean,System.Single)">
            <summary>
            Move a character, with this velocity
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerMovement.GetFriction">
            <summary>
            Get the current friction.
            </summary>
            <returns></returns>
        </member>
        <member name="P:TerrorTown.PlayerWalkControllerComplex.AimRay">
            <summary>
            Constructs a ray using the camera's GameObject
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerWalkControllerComplex.NoclipAction">
            <summary>
            The Input Action that noclipping is triggered by.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerWalkControllerComplex.CheckNoclip">
            <summary>
            TODO
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerWalkControllerComplex.DoNoclipMove">
            <summary>
            TODO
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerWalkControllerComplex.DefaultSpeed">
            <summary>
            How quickly does the player move by default?
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerWalkControllerComplex.RunAction">
            <summary>
            The Input Action that the alternate speed mode is triggered by.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerWalkControllerComplex.RunByDefault">
            <summary>
            If the player should run by default, pressing the run action will swap to default speed
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerWalkControllerComplex.RunSpeed">
            <summary>
            The speed the player moves at while in the alternate speed mode.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerWalkControllerComplex.WalkAction">
            <summary>
            The Input Action that the alternate speed mode is triggered by.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerWalkControllerComplex.WalkSpeed">
            <summary>
            The speed the player moves at while in the alternate speed mode.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerWalkControllerComplex.CrouchAction">
            <summary>
            The Input Action that crouching is triggered by.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerWalkControllerComplex.CrouchSpeed">
            <summary>
            The speed the player moves at while crouching.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerWalkControllerComplex.JumpAction">
            <summary>
            The Input Action that jumping is triggered by.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerWalkControllerComplex.AllowPogosticking">
            <summary>
            Can the player hold down jump to repeatedly jump?
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerWalkControllerComplex.JumpPower">
            <summary>
            How powerful is the player's jump?
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerWalkControllerComplex.WantsJump">
            <summary>
            Do we want to jump next movement update?
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerWalkControllerComplex.BroadcastPlayerJumped">
            <summary>
            A network message that lets other users that we've triggered a jump.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerWalkControllerComplex.MovementPreset">
            <summary>
            Values from popular games.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerWalkControllerComplex.UseAction">
            <summary>
            The Input Action that noclipping is triggered by.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerBody.SetVisibility(System.Boolean)">
            <summary>
            Set the visibility of the player's body.
            </summary>
            <param name = "visible"></param>
        </member>
        <member name="M:TerrorTown.PlayerBody.ApplyVisibilityLocal(System.Boolean)">
            <summary>
            Local-only visibility toggle (used for late-join/missed RPC recovery).
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerComponent.ResyncUpdate">
            <summary>
            Client-side loop: detect mismatch and request host resync.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerComponent.ResyncFixedUpdate">
            <summary>
            Host-side loop: broadcast authoritative state on an interval.
            See GameMode.cs Resync properties
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerComponent.ShouldRequestResync(System.Boolean)">
            <summary>
            Decide if we should request a resync from the host.
            ... I am a little worried about this, but we have to make the determination somewhere.
            Todo: It may be worth checking the game's state as part of this, as opposed to LifecycleState, but
            we manually set the LifecycleState on transitions- it's probably more reliable than GameState info for the client rn
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerComponent.RequestStateResync">
            <summary>
            Host-only: owner requests a resync for their pawn.
            I hate the sbox documentation on these net flags
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerComponent.CanApplyReviveForResync(TerrorTown.PlayerLifecycleState)">
            <summary>
            Policy: decide if resync is allowed to revive during the current game state.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.HealthComponent">
            <summary>
            The player's health component
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.Inventory">
            <summary>
            The player's inventory, items, etc.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.Ammo">
            <summary>
            The player's ammo.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.TeamComponent">
            <summary>
            Component describing which team the player is on.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.TimeSinceLastRespawn">
            <summary>
            How long since the player last respawned?
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.LifeSnapshot">
            <summary>
            Host-authored life snapshot (life, health, respawn, lifecycle) sent as a single synchronized value.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.LifecycleState">
            <summary>
            Host-authored lifecycle state for play/spectate. Derived from LifeSnapshot.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.SpawnPosition">
            <summary>
            Host-authored spawn transform (sequence + position/rotation) for reliable owner teleports.
            Since this is a synced property from the host, if we miss the teleport RPC, once the property updates we'll snap to the right position
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.IsDeathCameraActive">
            <summary>
            Whether the death camera is currently active
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerComponent.EnterObserverMode">
            <summary>
            Host only: Called when a player joins mid-round. Create the player they'll need for next round, but
            posture only. No death pipeline stuff or in-game state changes.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerComponent.ExitObserverMode">
            <summary>
            Host-only: Prepare the player's pawn for live play and control. Posture only!
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerComponent.Initialize">
            <summary>
            Initialize the player pawn.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerComponent.Kill(System.Boolean)">
            <summary>
            Host-only kill.
            </summary>
            <param name="silent"></param>
        </member>
        <member name="M:TerrorTown.PlayerComponent.OnKilledByHealth(System.Boolean)">
            <summary>
            Host-only: apply death effects without re-authoring life state.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerComponent.DoDeathCameraThenSpectate(System.Int32)">
            <summary>
            Activates the dead camera (camera follows head bone), then switches to spectate mode after 5 seconds or on click/space down.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerComponent.StartSpectating">
            <summary>
            If we're controlling this, ask the host to start spectating
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerComponent.RequestStartSpectating">
            <summary>
            Call the host and have them put us in spectator, because we died
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerComponent.RespawnClient">
            <summary>
            Visual/posture reset that must run everywhere
            Host-only call, but executes on all receipients
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerComponent.TeleportHost(Vector3,Rotation)">
            <summary>
            Host-only: Teleport without any RPC. Useful before a NetworkSpawn.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerComponent.Teleport(Vector3,Rotation)">
            <summary>
            Host-only: Teleport the player to this position with this rotation.
            </summary>
            <param name = "position"></param>
            <param name = "rotation"></param>
        </member>
        <member name="P:TerrorTown.PlayerComponent.CurrentWeapon">
            <summary>
            What weapon are we using?
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.OwnerClient">
            <summary>
            This is the networked truth of who owns this pawn. 
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.TerrorTown#IPawn#Owner">
            <summary>
            This is OwnerClient, satisfying IPawn.Owner. Same value.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.IsLocallyControlled">
            <summary>
            A shorthand accessor to say if we're controlling this player.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.IsViewer">
            <summary>
            Is this player the currently possessed controller? TODO change for spectating
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.Body">
            <summary>
            The player's body
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.Head">
            <summary>
            A reference to the player's head (the GameObject)
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.AnimationHelper">
            <summary>
            A reference to the animation helper (normally on the Body GameObject)
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.WalkController">
            <summary>
            The current character controller for this player.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.Controller">
            <summary>
            The current player mover for this player.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerComponent.ApplyPush(Vector3)">
            <summary>
            Apply a push force to this player (called via RPC to the owner)
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.TerrorTown">
            <summary>
            The current camera controller for this player. ???? - 55
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.Voice">
            <summary>
            The player's voice
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.Camera">
            <summary>
            The current camera for this player.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.Outline">
            <summary>
            The outline effect for this player.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.ViewModelCamera">
            <summary>
            A reference to the View Model's camera. This will be disabled by the View Model.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.Outfitter">
            <summary>
            Handles the player's outfit
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.Radar">
            <summary>
            Handles radar pings for a player
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.ViewModelGameObject">
            <summary>
            A <see cref="T:Sandbox.GameObject"/> that will hold our ViewModel.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.BodyRenderer">
            <summary>
            Finds the first <see cref="T:Sandbox.SkinnedModelRenderer"/> on <see cref="P:TerrorTown.PlayerComponent.Body"/>
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.AimRay">
            <summary>
            An accessor to get the camera controller's aim ray.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.OnJump">
            <summary>
            Called when the player jumps.
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.UseDistance">
            <summary>
            How far can we use stuff?
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.BotId">
            <summary>
            Unique ID of this Bot
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.IsBot">
            <summary>
            Is this a player or a bot
            </summary>
        </member>
        <member name="P:TerrorTown.PlayerComponent.TimeSinceLastInput">
            <summary>
            Last time this player moved or attacked.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerComponent.AssignTeam(TerrorTown.Team)">
            <summary>
            Called when YOU inflict damage on something
            </summary>
            <param name="damage"></param>
            <param name="position"></param>
            <param name="force"></param>
            <param name="target"></param>
            <param name="hitbox"></param>
        </member>
        <member name="P:TerrorTown.PlayerMarker.Player">
            <summary>
            The player.
            </summary>
        </member>
        <member name="T:TerrorTown.PlayerOutfitter">
            <summary>
            Assigns the player's clothing. Anything commented out is available but not being used, unless it's in the "not working" up here.
            </summary>
        </member>
        <member name="T:TerrorTown.TerrorTownState">
            <summary>
             All this component does is lie 
            </summary>
        </member>
        <member name="P:TerrorTown.TerrorTownState.CanIdentifyBody">
            <summary>
            Are we allowed to identify this body?
            (WaitingForPlayers only for testing)
            </summary>
        </member>
        <member name="T:TerrorTown.PlayerTagManager">
            <summary>
            Local-only client state for per-player scoreboard tags (Gmod-TTT style).
            Cleared at the start of each round via <see cref="M:TerrorTown.PlayerTagManager.Poll(System.Nullable{GameState})"/>.
            </summary>
        </member>
        <member name="M:TerrorTown.PlayerTagManager.Poll(System.Nullable{GameState})">
            <summary>
            Call each frame from any client-side ticker. Detects round transitions and clears tags
            at the start of a new round (entry into <see cref="F:GameState.Starting"/>).
            </summary>
        </member>
        <member name="M:TerrorTown.SpectateController.GetSpectateTargetUnderAim">
            <summary>
            Traces forward from the freecam and returns the alive player under the aim,
            or null. Shared by the Use-to-spectate action and the on-screen hint.
            </summary>
        </member>
        <member name="P:TerrorTown.SpectateSystem.SpectatorPrefab">
            <summary>
            Which spectator prefab should we spawn?
            </summary>
        </member>
        <member name="M:TerrorTown.SpectateSystem.UpdateSpectatorCamera">
            <summary>
            Called each frame and determines the camera's position based on the mode
            </summary>
        </member>
        <member name="T:TerrorTown.UI.KeybindDisplay">
            <summary>
            Formats keybind origin strings for display (e.g. "return" → "ENTER").
            </summary>
        </member>
        <member name="M:TerrorTown.UI.OptionSelect.Open">
            <summary>
            Open the dropdown.
            </summary>
        </member>
        <member name="T:TerrorTown.UI.StylePathHelper">
            <summary>
            Normalizes paths for use in CSS url() so the Sandbox style parser (Zio) accepts them on Windows.
            Windows paths must be in the form /mnt/&lt;drive&gt;/... for the virtual filesystem.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.StylePathHelper.NormalizeForStyleUrl(System.String)">
            <summary>
            Converts a path to the form expected by the style parser on Windows.
            If the path is already game-relative (e.g. "ui/icon.png") or null/empty, returns it unchanged.
            If it is a Windows absolute path (e.g. "C:\..."), converts to /mnt/c/...
            </summary>
        </member>
        <member name="T:TerrorTown.UI.UIContext">
            <summary>
            Single source of truth for HUD/UI as far as "who am I showing" and "what do I know (based on what team I am)"
            Target = whoever the camera is anchored to (spectated player or me)
            Local = our owned session player (our own team alignment/perms/etc)
            Shitload of computed values we can use throughout the UI
            </summary>
        </member>
        <member name="P:TerrorTown.UI.UIContext.OwnedPlayer">
            <summary>
            Local client's owned player pawn, this needs to be and should be stable through the session
            </summary>
        </member>
        <member name="P:TerrorTown.UI.UIContext.TargetPlayer">
            <summary>
            Player we're currently viewing (Spectate target or our own pawn when playing). This is allowed to be null for freecam
            </summary>
        </member>
        <member name="P:TerrorTown.UI.UIContext.PerceivedTargetTeamEnum">
            <summary>
            What team the local user should perceive the target as.
            For example, traitors only appear as traitors to their teammates
            </summary>
        </member>
        <member name="P:TerrorTown.UI.UIContext.RoleVisibilityRevision">
            <summary>
            Changes whenever requester/target identity or role-visibility phase context changes.
            Use in BuildHash for role-sensitive panels to avoid stale display during handoff churn.
            </summary>
        </member>
        <member name="T:TerrorTown.UI.RoundHighlight">
            <summary>
            Client-side award computation for the end-of-round Highlights panel.
            Pure — operates on already-synced round data (kill feed + scoreboard snapshot).
            Kill counters are derived from the per-round kill feed so they reflect only this round,
            while team membership / alive state come from the (cumulative, real-time) scoreboard snapshot.
            </summary>
        </member>
        <member name="P:TerrorTown.UI.RoundHighlight.PlayerId">
            <summary>The player the award is attached to. <see cref="F:System.Guid.Empty"/> for round-level awards.</summary>
        </member>
        <member name="P:TerrorTown.UI.Ammo.Inventory">
            <summary>
            The player's inventory
            </summary>
        </member>
        <member name="M:TerrorTown.UI.C4Panel.ResetTimer">
            <summary>
            Reset the timer to default when opening the panel
            </summary>
        </member>
        <member name="M:TerrorTown.UI.C4Panel.FormatTimeDigits(System.Single)">
            <summary>
            Returns just the 4 digits (no colon) for grid display
            </summary>
        </member>
        <member name="M:TerrorTown.UI.Crosshair.UpdateDistance(TerrorTown.Weapon)">
            <summary>
            Adjust the appearance of the crosshair
            </summary>
            <param name="weapon">The weapon we're currently holding, if there is one</param>
        </member>
        <member name="P:TerrorTown.UI.DnaBar.Percent">
            <summary>
            Fill percent in range [0..1]. 1 = full, 0 = empty.
            </summary>
        </member>
        <member name="P:TerrorTown.UI.DnaBar.Text">
            <summary>
            Optional overlay text shown centered over the bar.
            </summary>
        </member>
        <member name="P:TerrorTown.UI.DnaBar.TexturePath">
            <summary>
            Game-relative texture path, for example: /ui/dnafinal.png
            </summary>
        </member>
        <member name="P:TerrorTown.UI.DnaBar.TextureVerticalScale">
            <summary>
            Vertical texture scale. 1 = fit bar bounds.
            </summary>
        </member>
        <member name="P:TerrorTown.UI.DnaBar.TextureVerticalOffsetPercent">
            <summary>
            Vertical texture position offset in percentage points from center.
            </summary>
        </member>
        <member name="P:TerrorTown.UI.DnaBar.SoftEdgeWidthPercent">
            <summary>
            Width (in percent of bar width) of the soft edge blend.
            </summary>
        </member>
        <member name="P:TerrorTown.UI.DnaBar.SoftEdgeStrength">
            <summary>
            Opacity multiplier for the soft edge.
            0 = hard edge, 1 = strongest falloff.
            </summary>
        </member>
        <member name="P:TerrorTown.UI.Donut.Value">
            <summary>
            0 to 100
            </summary>
        </member>
        <member name="M:TerrorTown.UI.InputHint.UpdateTexture">
            <summary>
            Checks the current button and updates the glyph.
            </summary>
        </member>
        <member name="P:TerrorTown.UI.ProgressBar.Value">
            <summary>
            0 to 100
            </summary>
        </member>
        <member name="P:TerrorTown.UI.RadioCommand.Slot">
            <summary>
            The player's weapon.
            </summary>
        </member>
        <member name="P:TerrorTown.UI.RadioCommand.Command">
            <summary>
            The player's weapon.
            </summary>
        </member>
        <member name="P:TerrorTown.UI.RadioCommand.IsSelected">
            <summary>
            Is this selected or being hovered over?
            </summary> 
        </member>
        <member name="P:TerrorTown.UI.SettingEntry.Target">
            <summary>
            Target object that owns the setting property.
            </summary>
        </member>
        <member name="P:TerrorTown.UI.SettingEntry.Value">
            <summary>
            Current setting value for <see cref="P:TerrorTown.UI.SettingEntry.Description"/>, read/write via reflection.
            </summary>
        </member>
        <member name="P:TerrorTown.UI.SettingEntry.Description">
            <summary>
            Metadata for the setting property being rendered.
            </summary>
        </member>
        <member name="P:TerrorTown.UI.SettingEntry.Range">
            <summary>
            Range and UI metadata used by the slider/option row.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingEntry.ResolveSliderStep">
            <summary>
            Supports both modern [Range(min,max)] + [Step(x)] and legacy Range step overloads.
            </summary>
        </member>
        <member name="P:TerrorTown.UI.SettingEntry.ShowValue">
            <summary>
            Whether the value label should render for this entry.
            </summary>
        </member>
        <member name="P:TerrorTown.UI.SettingEntry.ShowTextEntry">
            <summary>
            Whether a text entry field should render for this entry.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingEntry.ResolveDisplayState(TerrorTown.SettingDisplayState,System.Boolean)">
            <summary>
            Resolves an override state to a concrete bool.
            </summary>
        </member>
        <member name="F:TerrorTown.UI.SettingsPage._selectedGroup">
            <summary>
            Current settings group selected by the top bar.
            </summary>
        </member>
        <member name="T:TerrorTown.UI.SettingsPage.SettingsSubGroup">
            <summary>
            Grouped settings metadata used for layout and rendering.
            </summary>
        </member>
        <member name="T:TerrorTown.UI.SettingsPage.SettingsWidget">
            <summary>
            Widget metadata resolved from <see cref="T:TerrorTown.SettingWidgetAnchorAttribute"/>.
            </summary>
        </member>
        <member name="T:TerrorTown.UI.SettingsPage.SettingsColumnSlot">
            <summary>
            Main settings column slot containing one or more subgroups.
            </summary>
        </member>
        <member name="P:TerrorTown.UI.SettingsPage.CrosshairColorProperty">
            <summary>
            Serialized property wrapper used by <see cref="T:Sandbox.UI.ColorControl"/>.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.GetSettingsSubGroups">
            <summary>
            Builds subgroup definitions from the current group's settings metadata.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.GetGroupPreset(System.String)">
            <summary>
            Resolves layout preset metadata for a settings group.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.GetColumnLayouts">
            <summary>
            Resolves column layout metadata for the current group.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.GetColumnStyle(System.Collections.Generic.IReadOnlyList{TerrorTown.SettingColumnLayoutAttribute},TerrorTown.SettingGroupPresetAttribute,TerrorTown.SettingSubGroupDock,System.Int32,TerrorTown.SettingColumnAreaMode)">
            <summary>
            Generates inline style for a column based on layout attributes.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.GetConfiguredPresetColumnWidth(TerrorTown.SettingGroupPresetAttribute,TerrorTown.SettingSubGroupDock)">
            <summary>
            Resolves explicitly configured column widths from the selected group preset.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.GetCompactFallbackColumnWidth(TerrorTown.SettingGroupPresetAttribute,TerrorTown.SettingSubGroupDock)">
            <summary>
            Resolves compact-mode fallback column widths when no explicit width is configured.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.GetMainColumnSlots(TerrorTown.SettingGroupPresetAttribute,System.Collections.Generic.IReadOnlyList{TerrorTown.UI.SettingsPage.SettingsSubGroup},System.Collections.Generic.IReadOnlyList{TerrorTown.UI.SettingsPage.SettingsWidget})">
            <summary>
            Resolves how many main column slots should render for the selected group.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.GetMainColumnAreaMode(TerrorTown.SettingGroupPresetAttribute)">
            <summary>
            Resolves width behavior for the area that contains main columns.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.BuildMainColumns(System.Collections.Generic.IReadOnlyList{TerrorTown.UI.SettingsPage.SettingsSubGroup},System.Int32)">
            <summary>
            Builds ordered main column slots and injects empty slots when requested.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.ResolveColumnHeader(System.Collections.Generic.IReadOnlyList{TerrorTown.UI.SettingsPage.SettingsSubGroup})">
            <summary>
            Resolves a display label for a column.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.GetColumnAreaModeClass(TerrorTown.SettingColumnAreaMode)">
            <summary>
            Maps area mode enum to CSS suffix.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.BuildFixedColumnStyle(System.Int32)">
            <summary>
            Builds fixed-width column style.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.BuildFillColumnStyle">
            <summary>
            Builds evenly spaced fill-width column style.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.GetSettingsWidgets(System.Collections.Generic.IReadOnlyList{TerrorTown.UI.SettingsPage.SettingsSubGroup})">
            <summary>
            Resolves widget anchors into renderable widget metadata.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.NormalizeKey(System.String)">
            <summary>
            Normalizes a subgroup name for lookup keys.
            </summary>
        </member>
        <member name="P:TerrorTown.UI.SettingsPage.SettingsShellStyle">
            <summary>
            Inline shell style resolved from the group preset.
            </summary>
        </member>
        <member name="P:TerrorTown.UI.SettingsPage.SettingsShellClass">
            <summary>
            CSS class for shell and group/preset targeting.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.GetPresetClass(TerrorTown.SettingGroupPreset)">
            <summary>
            Maps preset enum to CSS suffix.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.GetWidgetStyle(TerrorTown.UI.SettingsPage.SettingsWidget,TerrorTown.SettingColumnAreaMode)">
            <summary>
            Generates inline width/height for a widget container.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.RenderWidget(TerrorTown.UI.SettingsPage.SettingsWidget,TerrorTown.SettingColumnAreaMode)">
            <summary>
            Maps a widget key to a concrete render fragment.
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.RenderCrosshairWidget(TerrorTown.UI.SettingsPage.SettingsWidget,TerrorTown.SettingColumnAreaMode)">
            <summary>
            Crosshair preview widget (preview + color control).
            </summary>
        </member>
        <!-- Badly formed XML comment ignored for member "M:TerrorTown.UI.SettingsPage.RenderNativeSettingsWidget(TerrorTown.UI.SettingsPage.SettingsWidget,TerrorTown.SettingColumnAreaMode)" -->
        <member name="M:TerrorTown.UI.SettingsPage.GetVisibleSettingsProperties">
            <summary>
            Returns properties visible for the current settings surface (main menu vs in-game).
            </summary>
        </member>
        <member name="M:TerrorTown.UI.SettingsPage.IsPropertyVisibleForSurface(Sandbox.PropertyDescription,System.Boolean)">
            <summary>
            Applies optional <see cref="T:TerrorTown.SettingSurfaceAttribute"/> filtering for a property.
            </summary>
        </member>
        <member name="T:TerrorTown.UI.TipPopup.TipAnchor">
            <summary>Where the popup renders on screen.</summary>
        </member>
        <member name="F:TerrorTown.UI.TipPopup.TipAnchor.Top">
            <summary>Top of the screen, horizontally centered.</summary>
        </member>
        <member name="F:TerrorTown.UI.TipPopup.TipAnchor.Center">
            <summary>Dead center of the screen.</summary>
        </member>
        <member name="F:TerrorTown.UI.TipPopup.TipAnchor.AboveCrosshair">
            <summary>Just above the crosshair.</summary>
        </member>
        <member name="F:TerrorTown.UI.TipPopup.TipAnchor.BelowCrosshair">
            <summary>Just below the crosshair.</summary>
        </member>
        <member name="F:TerrorTown.UI.TipPopup.TipAnchor.BottomRight">
            <summary>Bottom-right corner of the HUD.</summary>
        </member>
        <member name="F:TerrorTown.UI.TipPopup.TipAnchor.Mouse">
            <summary>Follows the mouse cursor (updated each Tick).</summary>
        </member>
        <member name="P:TerrorTown.UI.TipPopup.Title">
            <summary>Optional heading line, rendered above the body.</summary>
        </member>
        <member name="P:TerrorTown.UI.TipPopup.Body">
            <summary>Main text. Supports <c>[ActionName]</c> tokens (e.g. <c>[BuyMenu]</c>) that are
            replaced with the live keybind via <see cref="!:Sandbox.Input.GetButtonOrigin(string)"/>.</summary>
        </member>
        <member name="P:TerrorTown.UI.TipPopup.DurationSeconds">
            <summary>Auto-fade duration in seconds. <c>0</c> = sticky mode: stays visible while
            <see cref="P:TerrorTown.UI.TipPopup.Visible"/> is true. Set by <see cref="M:TerrorTown.UI.TipPopup.Show(System.String,System.String,System.Single,System.String,System.Nullable{TerrorTown.UI.TipPopup.TipAnchor},System.Nullable{System.Boolean})"/> / <see cref="M:TerrorTown.UI.TipPopup.ShowSticky(System.String,System.String,System.String,System.Nullable{TerrorTown.UI.TipPopup.TipAnchor},System.Nullable{System.Boolean})"/>.</summary>
        </member>
        <member name="P:TerrorTown.UI.TipPopup.Visible">
            <summary>Only used in sticky mode (DurationSeconds == 0). Caller toggles to show/hide.</summary>
        </member>
        <member name="P:TerrorTown.UI.TipPopup.ThemeClass">
            <summary>Theme suffix — "neutral" (default), "traitor", "detective". Maps to a CSS class.</summary>
        </member>
        <member name="P:TerrorTown.UI.TipPopup.Anchor">
            <summary>Where the popup anchors on the screen.</summary>
        </member>
        <member name="P:TerrorTown.UI.TipPopup.Compact">
            <summary>Smaller padding / font for tight hint-style popups.</summary>
        </member>
        <member name="M:TerrorTown.UI.TipPopup.Show(System.String,System.String,System.Single,System.String,System.Nullable{TerrorTown.UI.TipPopup.TipAnchor},System.Nullable{System.Boolean})">
            <summary>Show the popup for <paramref name="durationSeconds"/> seconds then auto-fade.</summary>
        </member>
        <member name="M:TerrorTown.UI.TipPopup.ShowSticky(System.String,System.String,System.String,System.Nullable{TerrorTown.UI.TipPopup.TipAnchor},System.Nullable{System.Boolean})">
            <summary>Show the popup until <see cref="M:TerrorTown.UI.TipPopup.Hide"/> is called or <see cref="P:TerrorTown.UI.TipPopup.Visible"/> is set false.</summary>
        </member>
        <member name="M:TerrorTown.UI.TipPopup.SetText(System.String,System.String)">
            <summary>Update the popup's text without altering visibility. Useful for sticky popups whose text depends on state.</summary>
        </member>
        <member name="M:TerrorTown.UI.TipPopup.Hide">
            <summary>Hide immediately, canceling any auto-fade timer.</summary>
        </member>
        <member name="P:TerrorTown.UI.WeaponRow.Slot">
            <summary>
            The weapon's slot
            </summary>
        </member>
        <member name="P:TerrorTown.UI.WeaponRow.Weapon">
            <summary>
            The weapon instance we're listing
            </summary>
        </member>
        <member name="P:TerrorTown.UI.WeaponRow.IsSelected">
            <summary>
            Is this selected or being hovered over?
            </summary>
        </member>
        <member name="T:TerrorTown.LocalCameraRig">
            <summary>
            Local-only camera rig. Owns the single main camera and routes pose based on local state.
            </summary>
        </member>
        <member name="P:TerrorTown.LocalCameraRig.UseViewModelCommandList">
            <summary>
            When enabled, the main camera excludes the <c>viewmodel</c> tag and we explicitly draw
            viewmodels via <see cref = "T:TerrorTown.ViewModelPass"/> (CommandList). This avoids relying on multi-camera
            rendering, and is useful for diagnosing cases where viewmodels exist but aren't visible.
            </summary>
        </member>
        <member name="T:TerrorTown.PawnCamera">
            <summary>
            Pawn's camera.
            Reacts to "Am I the Viewer pawn?" and "What spectate mode?"
            Decisions are driven by PlayerLifecycleState
            </summary>
        </member>
        <member name="P:TerrorTown.PawnCamera.MainCamera">
            <summary>
            Now on LocalCameraRig, created and assigned locally.
            /// </summary>
        </member>
        <member name="P:TerrorTown.PawnCamera.ViewmodelCameraGameObject">
            <summary>
            GameObject the Viewmodel Camera is attached to, child of Camera GameObject. Weapon viewmodels are children of this object.
            </summary>
        </member>
        <member name="P:TerrorTown.PawnCamera.ViewmodelCameraComponent">
            <summary>
            Viewmodel CameraComponent. Currently not in use
            </summary>
        </member>
        <member name="P:TerrorTown.PawnCamera.PlayerComponent">
            <summary>
            Reference to the player component on the player GameObject.
            </summary>
        </member>
        <member name="P:TerrorTown.PawnCamera.Head">
            <summary>
            Reference the head on the player for reparenting the camera during death cutscenes, etc.
            </summary>
        </member>
        <member name="P:TerrorTown.PawnCamera.Body">
            <summary>
            Reference to the player's body for setting visibility, etc.
            </summary>
        </member>
        <member name="P:TerrorTown.PawnCamera.BodyModelRenderer">
            <summary>
            The main model renderer for the player.
            </summary>
        </member>
        <member name="P:TerrorTown.PawnCamera.Mode">
            <summary>
            Our pawn's current CameraMode
            </summary>
        </member>
        <member name="M:TerrorTown.PawnCamera.ResolveMode">
            <summary>
            Apply the correct CameraMode based on what pawn we are
            Indirectly set via ConnectedClient.Viewer
            </summary>
            <returns></returns>
        </member>
        <member name="P:TerrorTown.PawnCamera.ThisPawn">
            <summary>
            What kind of pawn are we? Used to determine CameraMode
            </summary>
        </member>
        <member name="M:TerrorTown.PawnCamera.ShouldRunCamera">
            <summary>
            Don't run the camera unless we are possessing this pawn
            </summary>
            <returns></returns>
        </member>
        <member name="P:TerrorTown.PawnCamera.FieldOfViewOverride">
            <summary>
            External FOV override (e.g., from scope or other visual FX). If not null, this value is used instead of the calculated FOV.
            </summary>
        </member>
        <member name="P:TerrorTown.PawnCamera.FirstPersonOffset">
            <summary>
            LocalPosition offset for the camera in first person
            </summary>
        </member>
        <member name="P:TerrorTown.PawnCamera.ThirdPersonOffset">
            <summary>
            LocalPosition offset for the camera in third person
            </summary>
        </member>
        <member name="M:TerrorTown.PawnCamera.OnCameraModeChanged(TerrorTown.PawnCamera.CameraMode)">
            <summary>
            Wrapper(?) for UpdateCameraMode that authorities send modes to
            </summary>
            <param name="mode"></param>
        </member>
        <member name="M:TerrorTown.PawnCamera.SetupCamera">
            <summary>
            Initial setup for a given pawn
            </summary>
        </member>
        <member name="M:TerrorTown.PawnCamera.UpdateCameraMode(TerrorTown.PawnCamera.CameraMode)">
            <summary>
            
            </summary>
            <param name="mode"></param>
        </member>
        <member name="M:TerrorTown.PawnCamera.UpdateBodyVisibility">
            <summary>
            Change the body visibility for the local player, depending on the camera mode.
            Only world models are children of the body, all viewmodels will be children of the ViewmodelCameraGameObject
            We call SetBodyRenderType which iterates through the body to show everything, shadows only, or nothing, depending on the need.
            </summary>
        </member>
        <member name="T:TerrorTown.LocalSpawnTransitionService">
            <summary>
            Local-only visual transition state for spawn/respawn events.
            </summary>
        </member>
        <member name="T:TerrorTown.ViewModel">
            <summary>
            A weapon's viewmodel. It's responsibility is to listen to events from a weapon.
            It should only exist on the client for the currently possessed pawn.
            </summary>
        </member>
        <member name="P:TerrorTown.ViewModel.Weapon">
            <summary>
            A reference to the <see cref="P:TerrorTown.ViewModel.Weapon"/> we want to listen to.
            </summary>
        </member>
        <member name="P:TerrorTown.ViewModel.Arms">
            <summary>
            A reference to the viewmodel's arms.
            </summary>
        </member>
        <member name="P:TerrorTown.ViewModel.IsThrowable">
            <summary>
            Is this a throwable?
            </summary>
        </member>
        <member name="P:TerrorTown.ViewModel.PlayerComponent">
            <summary>
            Looks up the tree to find the player controller.
            </summary>
        </member>
        <member name="P:TerrorTown.ViewModel.ViewModelCamera">
            <summary>
            The View Model camera 
            </summary>
        </member>
        <member name="T:TerrorTown.ViewModelWallTuck">
            <summary>
            Cosmetic-only first-person wall tuck. Lowers/tilts the viewmodel near world geometry.
            This does not affect damage, traces, or weapon gameplay.
            </summary>
        </member>
        <member name="P:TerrorTown.IMarkerObject.GameObject">
            <summary>
            Raw access
            </summary>
        </member>
        <member name="P:TerrorTown.IMarkerObject.MarkerFrame">
            <summary>
            Data in the frame
            </summary>
        </member>
        <member name="P:TerrorTown.IMarkerObject.MarkerPanelTypeOverride">
            <summary>
            Are we overriding the type here?
            </summary>
        </member>
        <member name="T:TerrorTown.Lobby">
            <summary>
            This purely exists as a wrapper for a real lobby, so we can display fake lobbies in the UI.
            </summary>
        </member>
        <member name="F:TerrorTown.Lobby._lobby">
            <summary>
            A reference to our internal lobby type.
            </summary>
        </member>
        <member name="P:TerrorTown.Lobby.IsEditorLobby">
            <summary>
            Is this lobby a dev env?
            </summary>
        </member>
        <member name="P:TerrorTown.Lobby.IsDedicatedServer">
            <summary>
            Is this lobby a dedicated server?
            </summary>
        </member>
        <member name="M:TerrorTown.ChatManager.OnJoinedServer">
            <summary>
            Clears chat on first join only, not on map changes.
            </summary>
        </member>
        <member name="M:TerrorTown.ChatManager.OnDisconnect">
            <summary>
            Clears chat and resets session flag when disconnecting.
            </summary>
        </member>
        <member name="M:TerrorTown.ChatManager.CanUseTeamChat">
            <summary>
            Returns true if the local player can use team chat (is Traitor-aligned or Detective).
            </summary>
        </member>
        <member name="M:TerrorTown.ChatManager.SetChatInputState(System.Boolean)">
            <summary>
            Tracks whether chat input is currently open/focused to arbitrate shared key input (for example Esc).
            </summary>
        </member>
        <member name="M:TerrorTown.ChatManager.RequestEscapeCloseChat">
            <summary>
            Requests that the chat UI closes from an external input owner (for example Pause menu Esc arbitration).
            </summary>
        </member>
        <member name="M:TerrorTown.ChatManager.ConsumeEscapeCloseRequest">
            <summary>
            Returns true once when an external close request is pending, then clears it.
            </summary>
        </member>
        <member name="M:TerrorTown.ChatManager.GetRegisteredCommands">
            <summary>
            Returns the registered chat command names sorted alphabetically.
            </summary>
        </member>
        <member name="M:TerrorTown.ChatManager.QueryCommandSuggestions(System.String,System.Int32)">
            <summary>
            Returns up to <paramref name="max"/> command names that match the typed prefix.
            </summary>
        </member>
        <member name="M:TerrorTown.ChatManager.RegisterCommands">
            <summary>
            Populates the <see cref="F:TerrorTown.ChatManager.Commands"/> with methods that have the <see cref="T:TerrorTown.Commands.ChatCommand"/> attribute
            </summary>
        </member>
        <member name="M:TerrorTown.ChatManager.ExecuteChatCommand(System.String)">
            <summary>
            Attempts to parse the message of its command and parameters.
            </summary>
            <param name="message">The users message to process as a command</param>	
        </member>
        <member name="M:TerrorTown.ChatManager.AddLocalServerMessage(System.String)">
            <summary>
            Adds a message that only the local player can see with the server as the author.
            </summary>
            <param name="message">The content of the message</param>
        </member>
        <member name="M:TerrorTown.ChatManager.AddLocalUserMessage(System.String)">
            <summary>
            Adds a message that only the local player can see with them as the author.
            </summary>
            <param name="message"></param>
        </member>
        <member name="T:TerrorTown.GimpManager">
            <summary>
            Compatibility wrapper over the session-backed gimp sanction helpers.
            </summary>
        </member>
        <member name="T:TerrorTown.SettingDisplayState">
            <summary>
            Display override state used by settings UI attributes.
            </summary>
        </member>
        <member name="F:TerrorTown.SettingDisplayState.Default">
            <summary>
            Use the default behavior for the control.
            </summary>
        </member>
        <member name="F:TerrorTown.SettingDisplayState.Enabled">
            <summary>
            Force-enable the display option.
            </summary>
        </member>
        <member name="F:TerrorTown.SettingDisplayState.Disabled">
            <summary>
            Force-disable the display option.
            </summary>
        </member>
        <member name="T:TerrorTown.SettingDisplayAttribute">
            <summary>
            Attribute for tuning how a setting entry renders in the UI.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingDisplayAttribute.Compact">
            <summary>
            Use a compact row layout for this entry.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingDisplayAttribute.ShowValue">
            <summary>
            Show a value label for this entry.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingDisplayAttribute.ShowTextEntry">
            <summary>
            Show a text entry field for this entry.
            </summary>
        </member>
        <member name="T:TerrorTown.SettingGroupAlign">
            <summary>
            Horizontal alignment for a settings group shell within the viewport.
            </summary>
        </member>
        <member name="T:TerrorTown.SettingGroupPreset">
            <summary>
            Preset sizing behavior for a settings category.
            </summary>
        </member>
        <member name="F:TerrorTown.SettingGroupPreset.Fluid">
            <summary>
            Fully fluid layout that uses available container width.
            </summary>
        </member>
        <member name="F:TerrorTown.SettingGroupPreset.Compact">
            <summary>
            Narrower layout useful for short categories.
            </summary>
        </member>
        <member name="T:TerrorTown.SettingColumnAreaMode">
            <summary>
            Width behavior for the area that contains settings columns.
            </summary>
        </member>
        <member name="F:TerrorTown.SettingColumnAreaMode.Auto">
            <summary>
            Uses preset defaults (Compact = fit content, Fluid = fill available width).
            </summary>
        </member>
        <member name="F:TerrorTown.SettingColumnAreaMode.Fill">
            <summary>
            Expands to available width.
            </summary>
        </member>
        <member name="F:TerrorTown.SettingColumnAreaMode.FitContent">
            <summary>
            Sizes to the content width of rendered columns.
            </summary>
        </member>
        <member name="T:TerrorTown.SettingGroupPresetAttribute">
            <summary>
            Declarative per-group layout preset with optional shell and column width overrides.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingGroupPresetAttribute.Group">
            <summary>
            Settings group name this preset applies to.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingGroupPresetAttribute.Preset">
            <summary>
            Preset key used for style hooks and default behavior.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingGroupPresetAttribute.DisplayOrder">
            <summary>
            Left-to-right display order for top-level category tabs. Lower values appear first.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingGroupPresetAttribute.MaxWidth">
            <summary>
            Optional max width for the group shell in pixels. Zero keeps it fluid.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingGroupPresetAttribute.MainColumnWidth">
            <summary>
            Optional fallback width for main dock columns in pixels.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingGroupPresetAttribute.SidebarColumnWidth">
            <summary>
            Optional fallback width for sidebar dock columns in pixels.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingGroupPresetAttribute.MainColumnSlots">
            <summary>
            Number of evenly spaced main column slots to reserve when using fill mode.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingGroupPresetAttribute.MainColumnAreaMode">
            <summary>
            Width behavior for the area that contains main columns.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingGroupPresetAttribute.ShowMainColumnLabels">
            <summary>
            When true, renders the subgroup name as a top label for each main column slot.
            </summary>
        </member>
        <member name="T:TerrorTown.SettingGroupLayoutAttribute">
            <summary>
            Declares layout hints for a settings group in the settings UI.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingGroupLayoutAttribute.Group">
            <summary>
            Settings group name this layout applies to.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingGroupLayoutAttribute.MaxWidth">
            <summary>
            Max width in pixels for the settings shell when this group is selected.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingGroupLayoutAttribute.Align">
            <summary>
            Alignment for the settings shell when this group is selected.
            </summary>
        </member>
        <member name="T:TerrorTown.SettingColumnLayoutAttribute">
            <summary>
            Declares fixed width for a column in a settings group.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingColumnLayoutAttribute.Group">
            <summary>
            Settings group name this column layout applies to.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingColumnLayoutAttribute.Column">
            <summary>
            Column index within the dock.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingColumnLayoutAttribute.Width">
            <summary>
            Fixed column width in pixels.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingColumnLayoutAttribute.Dock">
            <summary>
            Dock target for the column definition.
            </summary>
        </member>
        <member name="T:TerrorTown.SettingWidgetPlacement">
            <summary>
            Placement for a widget relative to its anchor subgroup.
            </summary>
        </member>
        <member name="F:TerrorTown.SettingWidgetPlacement.Right">
            <summary>
            Renders the widget in the next column to the right of the anchor subgroup.
            </summary>
        </member>
        <member name="F:TerrorTown.SettingWidgetPlacement.Bottom">
            <summary>
            Renders the widget below subgroup sections in the anchor subgroup's column.
            </summary>
        </member>
        <member name="T:TerrorTown.SettingWidgetAnchorAttribute">
            <summary>
            Anchors a widget panel to a subgroup, allowing preview/extra UI placement.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingWidgetAnchorAttribute.Group">
            <summary>
            Settings group name this widget applies to.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingWidgetAnchorAttribute.Anchor">
            <summary>
            Subgroup name this widget anchors to.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingWidgetAnchorAttribute.Widget">
            <summary>
            Widget key used by SettingsPage to render a widget fragment.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingWidgetAnchorAttribute.Placement">
            <summary>
            Placement relative to the anchor subgroup.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingWidgetAnchorAttribute.Order">
            <summary>
            Sort order within the widget area.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingWidgetAnchorAttribute.Width">
            <summary>
            Preferred widget width in pixels.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingWidgetAnchorAttribute.Height">
            <summary>
            Preferred widget height in pixels.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingWidgetAnchorAttribute.Dock">
            <summary>
            Dock target used for resolving the anchor column.
            </summary>
        </member>
        <member name="T:TerrorTown.SettingOptionsAttribute">
            <summary>
            Provides discrete option values (and optional labels) for a numeric setting.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingOptionsAttribute.Values">
            <summary>
            Values displayed in the option selector.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingOptionsAttribute.Labels">
            <summary>
            Optional labels aligned with <see cref="P:TerrorTown.SettingOptionsAttribute.Values"/>.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingOptionsAttribute.Icons">
            <summary>
            Optional Material icon names aligned with <see cref="P:TerrorTown.SettingOptionsAttribute.Values"/>.
            </summary>
        </member>
        <member name="T:TerrorTown.SettingSubGroupDock">
            <summary>
            Placement for a settings sub-group within the settings UI.
            </summary>
        </member>
        <member name="T:TerrorTown.SettingSubGroupAttribute">
            <summary>
            Attribute for grouping settings into sub-sections within a category.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingSubGroupAttribute.Name">
            <summary>
            Subgroup title shown in the settings UI.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingSubGroupAttribute.Order">
            <summary>
            Sort order within the group.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingSubGroupAttribute.Column">
            <summary>
            Column index this subgroup should render into.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingSubGroupAttribute.Dock">
            <summary>
            Dock target used to split main/sidebar columns.
            </summary>
        </member>
        <member name="T:TerrorTown.SettingSurface">
            <summary>
            Visibility surface for settings entries.
            </summary>
        </member>
        <member name="T:TerrorTown.SettingSurfaceAttribute">
            <summary>
            Restricts where a setting is visible in the in-game settings page.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingSurfaceAttribute.Surface">
            <summary>
            The surface where this setting should be visible.
            </summary>
        </member>
        <member name="T:TerrorTown.SettingTextEntryAttribute">
            <summary>
            Enables a text entry field for a setting value.
            </summary>
        </member>
        <member name="P:TerrorTown.SettingTextEntryAttribute.Enabled">
            <summary>
            Whether the text entry field should be shown.
            </summary>
        </member>
        <member name="T:TerrorTown.CookieJar">
            <summary>
            Lightweight local cookie jar for UI/tutorial state that doesn't belong in gameplay settings.
            </summary>
        </member>
        <member name="T:TerrorTown.CookieSystem">
            <summary>
            Barebones persisted key/value storage for client-side UI state.
            </summary>
        </member>
        <member name="M:TerrorTown.GameSettings.OnAfkChanged(System.Boolean,System.Boolean)">
            <summary>
            Persist AFK preference and notify host of the local player's desired AFK baseline.
            </summary>
        </member>
        <member name="T:TerrorTown.GameSettingsSystem">
            <summary>
            Handles loading, saving, and applying <see cref="T:TerrorTown.GameSettings"/>.
            </summary>
        </member>
        <member name="P:TerrorTown.GameSettingsSystem.Current">
            <summary>
            Current settings instance (lazy-loaded from disk).
            </summary>
        </member>
        <member name="P:TerrorTown.GameSettingsSystem.FilePath">
            <summary>
            Data file path for serialized settings.
            </summary>
        </member>
        <member name="M:TerrorTown.GameSettingsSystem.Save">
            <summary>
            Writes settings to disk and applies runtime values.
            </summary>
        </member>
        <member name="M:TerrorTown.GameSettingsSystem.Apply">
            <summary>
            Applies runtime values that need to take effect immediately.
            Returns true only when every expected mixer was ready and all volumes were applied.
            </summary>
        </member>
        <member name="M:TerrorTown.GameSettingsSystem.Load">
            <summary>
            Loads settings from disk (or defaults) and applies them.
            </summary>
        </member>
        <member name="M:TerrorTown.GameSettingsSystem.RestoreDefaults">
            <summary>
            Resets settings to defaults and applies them.
            </summary>
        </member>
        <member name="M:TerrorTown.GameSettingsSystem.HasUnsavedChanges">
            <summary>
            Returns true when current settings differ from the last loaded/saved state.
            </summary>
        </member>
        <member name="M:TerrorTown.GameSettingsSystem.GetDefaultValue(Sandbox.PropertyDescription)">
            <summary>
            Resolves a property's default value from a fresh <see cref="T:TerrorTown.GameSettings"/> instance.
            </summary>
        </member>
        <member name="M:TerrorTown.GameSettingsSystem.IsDefaultValue(Sandbox.PropertyDescription,System.Object,System.Single)">
            <summary>
            Compares a value against the default value for the same property.
            </summary>
        </member>
        <member name="M:TerrorTown.GameSettingsSystem.IsCurrentValueDefault(Sandbox.PropertyDescription,System.Single)">
            <summary>
            Returns whether the current settings value for a property equals the default.
            </summary>
        </member>
        <member name="M:TerrorTown.GameSettingsSystem.ResetPropertyToDefault(System.Object,Sandbox.PropertyDescription,System.Single)">
            <summary>
            Resets one setting to its default value and persists settings.
            </summary>
        </member>
        <member name="M:TerrorTown.GameSettingsSystem.SaveAndSyncAfk(System.Boolean)">
            <summary>
            Persist AFK preference to disk and push it to the host so it survives map changes.
            </summary>
        </member>
        <member name="T:TerrorTown.ExplosionAudioEffectComponent">
            <summary>
            For the tinnitus SFX after an explosion happens nearby
            </summary>
        </member>
        <member name="T:TerrorTown.MainMenuStemMixer">
            <summary>
            Keeps main menu stems in sync by only changing volume while all emitters keep playing.
            </summary>
        </member>
        <member name="T:TerrorTown.PlayerFootsteps">
            <summary>
            Produces footstep sounds for the player.
            </summary>
        </member>
        <member name="T:TerrorTown.RoundStartEndSounds">
            <summary>
            Handles certain events and plays radio sounds.
            </summary>
        </member>
        <member name="T:TerrorTown.SoundEmitter">
            <summary>
            A simple component that plays a sound.
            </summary>
        </member>
        <member name="P:TerrorTown.SoundEmitter.SoundEvent">
            <summary>
            How long until we destroy the GameObject.
            </summary>
        </member>
        <member name="P:TerrorTown.SoundEmitter.Volume">
            <summary>
            Playback volume for this emitter.
            </summary>
        </member>
        <member name="P:TerrorTown.SoundEmitter.Follow">
            <summary>
            Shoulud we follow the current GameObject?
            </summary>
        </member>
        <member name="M:TerrorTown.GameObjectExtensions.PlaySound(Sandbox.GameObject,Sandbox.SoundEvent,System.Boolean)">
            <summary>
            Creates a GameObject that plays a sound.
            </summary>
            <param name="self"></param>
            <param name="sndEvent"></param>
            <param name="follow"></param>
        </member>
        <member name="M:TerrorTown.GameObjectExtensions.PlaySound(Sandbox.GameObject,System.String,System.Boolean)">
            <inheritdoc cref="M:TerrorTown.GameObjectExtensions.PlaySound(Sandbox.GameObject,Sandbox.SoundEvent,System.Boolean)"/>
        </member>
        <member name="M:TerrorTown.GameObjectExtensions.TakeDamage(Sandbox.GameObject,TerrorTown.DamageInfo)">
            <summary>
            Take damage.
            </summary> 
        </member>
        <member name="M:TerrorTown.GameObjectExtensions.DestroyAsync(Sandbox.GameObject,System.Single)">
            <summary>
            Creates a <see cref="T:TerrorTown.TimedDestroyComponent"/> which will deferred delete the <see cref="T:Sandbox.GameObject"/>.
            </summary>
            <param name="self"></param>
            <param name="seconds"></param>
        </member>
        <member name="M:TerrorTown.GameObjectExtensions.EnableAsync(Sandbox.GameObject,Sandbox.Component,System.Single)">
            <summary>
            Creates a <see cref="T:TerrorTown.TimedDestroyComponent"/> which will deferred delete the <see cref="T:Sandbox.GameObject"/>.
            </summary>
            <param name="self"></param>
            <param name="seconds"></param>
        </member>
        <member name="T:TerrorTown.IVoiceFilter">
            <summary>
            One in a scene, used by <see cref="T:TerrorTown.PlayerVoiceComponent"/> to dictate rules around who can broadcast their voices to who.
            </summary>
        </member>
        <member name="M:TerrorTown.IVoiceFilter.GetExcludeFilter">
            <summary>
            Should we exclude this potential listener from hearing our voice?
            </summary>
            <returns></returns>
        </member>
        <member name="P:TerrorTown.Door.AnimationCurve">
            <summary>
            Animation curve to use, X is the time between 0-1 and Y is how much the door is open to its target angle from 0-1.
            </summary>
        </member>
        <member name="P:TerrorTown.Door.OpenSound">
            <summary>
            Sound to play when a door is opened.
            </summary>
        </member>
        <member name="P:TerrorTown.Door.OpenFinishedSound">
            <summary>
            Sound to play when a door is fully opened.
            </summary>
        </member>
        <member name="P:TerrorTown.Door.CloseSound">
            <summary>
            Sound to play when a door is closed.
            </summary>
        </member>
        <member name="P:TerrorTown.Door.CloseFinishedSound">
            <summary>
            Sound to play when a door has finished closing.
            </summary>
        </member>
        <member name="P:TerrorTown.Door.Pivot">
            <summary>
            Optional pivot point, origin will be used if not specified.
            </summary>
        </member>
        <member name="P:TerrorTown.Door.Axis">
            <summary>
            The axis the door rotates/moves on.
            </summary>
        </member>
        <member name="P:TerrorTown.Door.Distance">
            <summary>
            How far should the door rotate.
            </summary>
        </member>
        <member name="P:TerrorTown.Door.OpenTime">
            <summary>
            How long in seconds should it take to open this door.
            </summary>
        </member>
        <member name="P:TerrorTown.Door.OpenAwayFromPlayer">
            <summary>
            Open away from the person who uses this door.
            </summary>
        </member>
        <member name="P:TerrorTown.Door.Locked">
            <summary>
            Can we open the door at all?
            </summary>
        </member>
        <member name="T:TerrorTown.IResettable">
            <summary>
            Interface for components that can reset their state without being destroyed/recreated
            </summary>
        </member>
        <member name="M:TerrorTown.IResettable.Reset">
            <summary>
            Reset this component to its initial state
            </summary>
        </member>
        <member name="T:TerrorTown.MapAuthoredNetworkingBootstrap">
            <summary>
            Promotes authored map primitives that rely on Sync/host-owned transforms into real network objects.
            These objects already exist in the authored scene; we bootstrap networking in-place after map load.
            </summary>
        </member>
        <member name="T:TerrorTown.MapAuthoredToolRecovery">
            <summary>
            Restores map-authored tool components to the immutable baseline captured
            from the loaded map so host migration does not preserve transient motion
            state from the old host.
            </summary>
        </member>
        <member name="T:TerrorTown.RegisteredResetModule">
            <summary>
            Host-side registry for map-authored IResettable components.
            Captures once and reuses stable references during round cleanup to reduce scene-wide churn.
            </summary>
        </member>
        <member name="T:TerrorTown.ResettableMapInstance">
            <summary>
            A map instance that can be reset to its initial state, inspired by Source 1's map reset methodology.
            </summary>
        </member>
        <member name="F:TerrorTown.ResettableMapInstance._preservedTags">
            <summary>
            A list of tags for GameObjects that should be preserved during a map reset.
            This is analogous to Source 1's s_PreserveEnts list.
            </summary>
        </member>
        <member name="F:TerrorTown.ResettableMapInstance._initialMapObjects">
            <summary>
            Stores the serialized data of all non-preserved objects from the initial map load.
            </summary>
        </member>
        <member name="F:TerrorTown.ResettableMapInstance._capturedChildIds">
            <summary>
            Stores the Ids of all objects we have captured for reset.
            </summary>
        </member>
        <member name="M:TerrorTown.ResettableMapInstance.CaptureInitialState">
            <summary>
            Captures the initial state of all resettable GameObjects in the scene.
            Objects without IResettable are serialized for recreation.
            </summary>
        </member>
        <member name="M:TerrorTown.ResettableMapInstance.ResetMap">
            <summary>
            Resets the map to its captured initial state.
            </summary>
        </member>
        <member name="M:TerrorTown.ResettableMapInstance.CleanupTemporaryEffects">
            <summary>
            Destroys all GameObjects that have a TemporaryEffect component.
            </summary>
        </member>
        <member name="T:TerrorTown.TemporaryEffect">
            <summary>
            Marks a GameObject as a temporary effect and destroys it after a short delay.
            Used by prefabs for transient particles/tracers.
            </summary>
        </member>
        <member name="P:TerrorTown.TemporaryEffect.DestroyAfterSeconds">
            <summary>
            How long until we destroy the GameObject.
            </summary>
        </member>
        <member name="P:TerrorTown.TemporaryEffect.WaitForChildEffects">
            <summary>
            If true, stop child particle emitters first, then destroy after a short delay.
            </summary>
        </member>
        <member name="T:TerrorTown.IMapSignalReceiver">
            <summary>
            Generic map-facing signal receiver contract used by mapper-authored primitives.
            </summary>
        </member>
        <member name="T:TerrorTown.MapSignalArgs">
            <summary>
            Generic signal payload passed between mapper-authored tools.
            </summary>
        </member>
        <member name="M:TerrorTown.MapSignalArgs.IsStartLike(System.String)">
            <summary>
            Shared positive-state alias check. Start is the preferred map-tool verb;
            Open remains a compatibility alias for door- or mover-shaped senders.
            </summary>
        </member>
        <member name="M:TerrorTown.MapSignalArgs.IsStopLike(System.String)">
            <summary>
            Shared negative-state alias check. Stop is the preferred map-tool verb;
            Close remains a compatibility alias for door- or mover-shaped senders.
            </summary>
        </member>
        <member name="T:TerrorTown.MapLink">
            <summary>
            Wiring entry for mapper-authored outputs.
            </summary>
        </member>
        <member name="T:TerrorTown.MapDispatch">
            <summary>
            Shared map-IO vocabulary and dispatch helpers. Keeping these in a dedicated core
            file makes the other mapping-tool folders read more like authored behaviors than
            infrastructure.
            </summary>
        </member>
        <member name="T:TerrorTown.MapToolActivator">
            <summary>
            Shared activator resolution helpers so map tools can translate direct use, RPC
            callers, and signal activators into the same player-aware runtime objects.
            </summary>
        </member>
        <member name="T:TerrorTown.MapToolAuthoring">
            <summary>
            Authoring-time and editor-friendly helpers shared by mapper-facing tools.
            </summary>
        </member>
        <member name="T:TerrorTown.MapToolUseMode">
            <summary>
            Common direct-use behaviors for mapper-authored buttons and binary movers.
            </summary>
        </member>
        <member name="T:TerrorTown.AmmoSpawner">
            <summary>
            Spawns a specific ammo box on round start.
            </summary>
        </member>
        <member name="T:TerrorTown.GrenadeSpawner">
            <summary>
            Spawns a specific grenade on round start.
            </summary>
        </member>
        <member name="T:TerrorTown.RandomAmmoSpawner">
            <summary>
            Spawns a random box of ammo with full ammo.
            </summary>
        </member>
        <member name="T:TerrorTown.RandomGrenadeSpawner">
            <summary>
            Spawns a random grenade on round start.
            </summary>
        </member>
        <member name="T:TerrorTown.RandomWeaponSpawner">
            <summary>
            Spawns a random weapon on round start. Can specify how much of its ammo spawns with it.
            </summary>
        </member>
        <member name="T:TerrorTown.WeaponSpawner">
            <summary>
            Spawns a specific weapon on round start. Can specify how much of its ammo spawns with it.
            </summary>
        </member>
        <member name="F:TerrorTown.ExplosiveBarrelComponent.LastAttackerId">
            Track who damaged this barrel (for karma tracking when it explodes)
        </member>
        <member name="T:TerrorTown.ExplosiveBarrelSpawnRegistry">
            <summary>
            Host-only registry for authoritative explosive barrel spawn points.
            Keeps barrel respawn deterministic even if a barrel GameObject is destroyed mid-round.
            </summary>
        </member>
        <member name="T:TerrorTown.NewCollisionSoundSystem">
            <summary>
            This system exists to collect pending collision sounds and filter them into a unique set, to avoid
            unnesssary sounds playing, when they're going to be making the same sound anyway.
            </summary>
        </member>
        <member name="M:TerrorTown.NewCollisionSoundSystem.RegisterCollision(Sandbox.Collision@)">
            <summary>
            Register this physics collision with the sound system
            </summary>
        </member>
        <member name="M:TerrorTown.NewCollisionSoundSystem.AddShapeCollision(Sandbox.PhysicsShape,Sandbox.Surface,Vector3@,System.Single)">
            <summary>
            Add a collision sound for this shape
            </summary>
        </member>
        <member name="M:TerrorTown.NewCollisionSoundSystem.AddShapeCollision(Sandbox.PhysicsShape,Sandbox.Surface,Sandbox.PhysicsContact@)">
            <summary>
            Add a collision sound for this shape
            </summary>
        </member>
        <member name="M:TerrorTown.NewCollisionSoundSystem.ProcessQueue">
            <summary>
            Create the pending sounds
            </summary>
        </member>
        <member name="T:TerrorTown.PlayerPropInteractionSystem">
            <summary>
            Host-authored policy for ordinary player-vs-loose-prop contact.
            Keeps per-prop state on TerrorTownProp while centralizing contact push rules.
            </summary>
        </member>
        <member name="M:TerrorTown.TerrorTownProp.IsBeingHeldByGrabber">
            Check if this prop is currently being held by a magneto stick (ObjectGrabberComponent)
        </member>
        <member name="M:TerrorTown.TerrorTownProp.OverrideResetTransform(Vector3,Rotation,Vector3)">
            <summary>
            Reset this prop to its initial state for map reset
            </summary>
        </member>
        <member name="T:TerrorTown.MapRuntimeIdentity">
            <summary>
            Marks a runtime-authored world object so local rehydration manifests can tell
            whether the current host already has a live instance.
            </summary>
        </member>
        <member name="T:TerrorTown.MapRuntimeManifest">
            <summary>
            Local-only manifest of runtime replacement objects that can be recreated
            from legacy map source data after host migration.
            </summary>
        </member>
        <member name="T:TerrorTown.SurfaceReplacement">
            <summary>
            A physics surface replacement that controls the physical properties and sounds applied to physics shapes.
            </summary>
        </member>
        <member name="T:TerrorTown.TimedDestroyComponent">
            <summary>
            A simple component that destroys its GameObject.
            </summary>
        </member>
        <member name="P:TerrorTown.TimedDestroyComponent.Time">
            <summary>
            How long until we destroy the GameObject.
            </summary>
        </member>
        <member name="P:TerrorTown.TimedDestroyComponent.TimeUntilDestroy">
            <summary>
            The real time until we destroy the GameObject.
            </summary>
        </member>
        <member name="T:TerrorTown.TimedParticleDestroyComponent">
            <summary>
            Destroys the GameObject after a delay, optionally tied to a legacy particle system.
            </summary>
        </member>
        <member name="P:TerrorTown.TimedParticleDestroyComponent.ParticleToDestroy">
            <summary>
            Optional particle system to stop before destruction.
            </summary>
        </member>
        <member name="P:TerrorTown.TimedParticleDestroyComponent.Time">
            <summary>
            How long until we destroy the GameObject.
            </summary>
        </member>
        <member name="P:TerrorTown.TimedParticleDestroyComponent.TimeUntilDestroy">
            <summary>
            The real time until we destroy the GameObject.
            </summary>
        </member>
        <member name="M:Vector2Extensions.Angle(Vector2,Vector2)">
            <summary>
            Gets the angle (in degrees) between two Vector2s
            </summary>
            <param name="a"></param>
            <param name="b"></param>
            <returns></returns>
        </member>
        <member name="T:GameMode">
            <summary>
            Handles the main game loop, using components that listen to state change
            events to handle game logic.
            </summary>
            
        </member>
        <member name="M:GameMode.GetAll(Sandbox.SceneFile)">
            <summary>
            Gets all game modes referenced by a scene.
            </summary>
        </member>
        <member name="P:GameMode.State">
            <summary>
            Current game state (controlled by the host.)
            </summary>
        </member>
        <member name="P:GameMode.TimeSinceStateChanged">
            <summary>
            Current game time (controlled by the host.)
            </summary>
        </member>
        <member name="P:GameMode.Round">
            <summary>
            Current round number, starting at 1.
            </summary>
        </member>
        <member name="P:GameMode.AllowResyncRevive">
            <summary>
            Host-authored: whether resync is allowed to revive (Dead -> Alive) right now.
            Clients now use this instead of local timing to avoid desyncing.
            </summary>
        </member>
        <member name="P:GameMode.ResyncUseProperties">
            <summary>
            When true, Resync* properties below are authoritative (convars act as overrides, see below).
            </summary>
        </member>
        <member name="P:GameMode.ResyncEnabledSetting">
            <summary>
            Legacy field retained for backward compatibility; resync requests are always enabled.
            </summary>
        </member>
        <member name="P:GameMode.ResyncIntervalSeconds">
            <summary>
            Minimum seconds between resync requests from the same client.
            Default: 1
            </summary>
        </member>
        <member name="P:GameMode.ResyncBroadcastIntervalSeconds">
            <summary>
            Host-only: if > 0, broadcast authoritative state every N seconds.
            </summary>
        </member>
        <member name="P:GameMode.ResyncBroadcastOnRequestSetting">
            <summary>
            If true, a client resync request also triggers a broadcast to all clients.
            (So everyone receives the state update that client just got from the host.)
            </summary>
        </member>
        <member name="P:GameMode.ResyncSanityEnableSetting">
            <summary>
            If true, host runs a sanity pass during resync windows (life/participation/equipment).
            Run periodically only DURING the resync revive window. If false, we don't do any extra correction
            attempts outside of normal resync replies.
            </summary>
        </member>
        <member name="P:GameMode.ResyncSanityIntervalSeconds">
            <summary>
            Minimum seconds between host sanity passes (Again, only during the resync window).
            
            </summary>
        </member>
        <member name="P:GameMode.ResyncPrepareDelaySeconds">
            <summary>
            Seconds after GameState.Starting begins before resync revive is allowed. 
            Default is 0- this is just in case we want to test stability, since a fair bit of change happens
            during the flip to round start. 2-9-26 We probably don't need this anymore
            </summary>
        </member>
        <member name="P:GameMode.ResyncPrepareWindowSeconds">
            <summary>
            Duration of the resync revive window while GameState.Starting.
            "For how long during round start can we can be forcibly re-synced?"
            </summary>
        </member>
        <member name="P:GameMode.ResyncStartedGraceSeconds">
            <summary>
            Grace period (seconds) after GameState.Started where resync revive is still allowed.
            This is after the round has started and roles have been assigned. Default is 1.
            </summary>
        </member>
        <member name="P:GameMode.DebugStateAuthorSetting">
            <summary>
            Enable verbose PlayerState transition logs.
            </summary>
        </member>
        <member name="P:GameMode.DebugResyncSetting">
            <summary>
            Enable verbose resync request/apply logs.
            </summary>
        </member>
        <member name="P:GameMode.DumpStateNow">
            <summary>
            Host-only: toggling true will dump lobby state once and then reset.
            </summary>
        </member>
        <member name="T:PostponeGameForever">
            <summary>
            Never start the game, useful for testing weapons.
            </summary>
        </member>
        <member name="P:DefaultEquipment.Weapons">
            <summary>
            A weapon set that we'll give the player when they spawn.
            </summary>
        </member>
        <member name="M:IGameEndCondition.ShouldGameEnd">
            <summary>
            Called on the host at the end of a round to determine if the game should end.
            </summary>
        </member>
        <member name="M:IRoundEndCondition.CheckRoundEnd">
            <summary>
            Called on the host every update during a round to determine if it should end. TODO: perhaps CheckRoundEnd should return a team?
            </summary>
        </member>
        <member name="T:IGameStartListener">
            <summary>
            Game start is when "Preparing..." pops up on the screen, after at least 2 players have joined. 
            </summary>
        </member>
        <member name="M:IGameStartListener.PreGameStart">
            <summary>
            Called on the host before <see cref="M:IGameStartListener.OnGameStart"/>.
            </summary>
        </member>
        <member name="M:IGameStartListener.OnGameStart">
            <summary>
            Called on the host when a game is starting.
            </summary>
        </member>
        <member name="M:IGameStartListener.PostGameStart">
            <summary>
            Called on the host after <see cref="M:IGameStartListener.OnGameStart"/> completes.
            </summary>
        </member>
        <member name="T:IGameEndListener">
            <summary>
            Game end is when the ROUND is over, AFTER the 5 seconds or so post-team winning
            </summary>
        </member>
        <member name="M:IGameEndListener.PreGameEnd">
            <summary>
            Called on the host before <see cref="M:IGameEndListener.OnGameEnd"/>.
            </summary>
        </member>
        <member name="M:IGameEndListener.OnGameEnd">
            <summary>
            Called on the host when a game is ending.
            </summary>
        </member>
        <member name="M:IGameEndListener.PostGameEnd">
            <summary>
            Called on the host after <see cref="M:IGameEndListener.OnGameEnd"/> completes.
            </summary>
        </member>
        <member name="T:IRoundStartListener">
            <summary>
            Round start is when the round formally begins and the roles are assigned to players that are participating
            </summary>
        </member>
        <member name="M:IRoundStartListener.PreRoundStart">
            <summary>
            Called on the host before <see cref="M:IRoundStartListener.OnRoundStart(System.Boolean)"/>.
            </summary>
        </member>
        <member name="M:IRoundStartListener.OnRoundStart(System.Boolean)">
            <summary>
            Called on the host when a round is starting.
            </summary>
        </member>
        <member name="M:IRoundStartListener.PostRoundStart">
            <summary>
            Called on the host after <see cref="M:IRoundStartListener.OnRoundStart(System.Boolean)"/> completes.
            </summary>
        </member>
        <member name="T:IRoundEndListener">
            <summary>
            Round end is when a team is determined to have won, the toast pops up and the 5ish seconds of "Game Over" begin 
            </summary>
        </member>
        <member name="M:IRoundEndListener.PreRoundEnd">
            <summary>
            Called on the host before <see cref="M:IRoundEndListener.OnRoundEnd"/>.
            </summary>
        </member>
        <member name="M:IRoundEndListener.OnRoundEnd">
            <summary>
            Called on the host when a round is ending.
            </summary>
        </member>
        <member name="M:IRoundEndListener.PostRoundEnd">
            <summary>
            Called on the host after <see cref="M:IRoundEndListener.OnRoundEnd"/> completes.
            </summary>
        </member>
        <member name="M:IPlayerSpawnListener.PrePlayerSpawn(TerrorTown.PlayerComponent)">
            <summary>
            Called on the host before <see cref="M:IPlayerSpawnListener.OnPlayerSpawn(TerrorTown.PlayerComponent)"/>.
            </summary>
        </member>
        <member name="M:IPlayerSpawnListener.OnPlayerSpawn(TerrorTown.PlayerComponent)">
            <summary>
            Called on the host when <paramref name="player"/> respawns.
            </summary>
        </member>
        <member name="M:IPlayerSpawnListener.PostPlayerSpawn(TerrorTown.PlayerComponent)">
            <summary>
            Called on the host after <see cref="M:IPlayerSpawnListener.OnPlayerSpawn(TerrorTown.PlayerComponent)"/>.
            </summary>
        </member>
        <member name="M:IPlayerJoinedListener.OnConnect(TerrorTown.PlayerComponent)">
            <summary>
            Called on the host when a new player joins, before NetworkSpawn is called.
            </summary>
        </member>
        <member name="M:IPlayerJoinedListener.OnJoined(TerrorTown.PlayerComponent)">
            <summary>
            Called on the host when a new player joins, after NetworkSpawn is called.
            </summary>
        </member>
        <member name="M:ITeamAssignedListener.OnTeamAssigned(TerrorTown.PlayerComponent,TerrorTown.Team)">
            <summary>
            Called on the host when a player is assigned to a team.
            </summary>
        </member>
        <member name="T:TeamAssigner">
            <summary>
            Split players into two balanced teams.
            </summary>
        </member>
        <member name="T:TeamWinConditions">
            <summary>
            Check team win conditions.
            </summary>
        </member>
        <member name="T:AmmoData">
            <summary>
            Ammo resource metadata used to describe an ammo type as an asset.
            </summary>
        </member>
        <member name="P:AmmoData.MainPrefab">
            <summary>
            The prefab to create and attach to the player when spawning it in.
            </summary>
        </member>
        <member name="P:AmmoData.WorldModel">
            <summary>
            The Ammo's model
            </summary>
        </member>
        <member name="P:AmmoData.LegacyEntityName">
            <summary>
            The optional legacy Entity name for this weapon, for map compatibility reasons.
            </summary>
        </member>
        <member name="F:WeaponSlot.Melee">
            <summary>
            Knives etc.
            </summary>
        </member>
        <member name="F:WeaponSlot.Secondary">
            <summary>
            Pistols.
            </summary>
        </member>
        <member name="F:WeaponSlot.Primary">
            <summary>
            Non-pistol guns.
            </summary>
        </member>
        <member name="F:WeaponSlot.Throwable">
            <summary>
            Grenades etc.
            </summary>
        </member>
        <member name="F:WeaponSlot.Special">
            <summary>
            Magneto Stick etc.
            </summary>
        </member>
        <member name="F:WeaponSlot.Equipment">
            <summary>
            Traitor items etc.
            </summary>
        </member>
        <member name="F:WeaponSlot.Holstered">
            <summary>
            Do not use.
            </summary>
        </member>
        <member name="T:WeaponData">
            <summary>
            A resource containing basic information about a weapon.
            </summary>
        </member>
        <member name="P:WeaponData.RandomlySpawns">
            <summary>
            If true, randomly spawns throughout the map
            </summary>
        </member>
        <member name="P:WeaponData.DropOnDisconnect">
            <summary>
            If true, owner will drop this weapon if they disconnect.
            </summary>
        </member>
        <member name="P:WeaponData.Icon">
            <summary>
            The weapon's icon
            </summary>
        </member>
        <member name="P:WeaponData.IsPurchasable">
            <summary>
            Is this weapon shown in the buy menu
            </summary>
        </member>
        <member name="P:WeaponData.BuyMenuCategory">
            <summary>
            The tab this weapon is shown in the buy menu
            </summary>
        </member>
        <member name="P:WeaponData.BuyMenuType">
            <summary>
            The tab this weapon is shown in the buy menu
            </summary>
        </member>
        <member name="P:WeaponData.Price">
            <summary>
            How much is this weapon to buy in the buy menu?
            </summary>
        </member>
        <member name="P:WeaponData.LimitOnePurchasePerRound">
            <summary>
            If true, once purchased, this item can't be bought again until the next round.
            </summary>
        </member>
        <member name="P:WeaponData.MainPrefab">
            <summary>
            The prefab to create and attach to the player when spawning it in.
            </summary>
        </member>
        <member name="P:WeaponData.ViewModelPrefab">
            <summary>
            The prefab to create when making a viewmodel for this weapon.
            </summary>
        </member>
        <member name="P:WeaponData.RagdollImpulseScale">
            <summary>
            Ragdoll impulse scale for this weapon. Higher values throw bodies more.
            </summary>
        </member>
        <member name="P:WeaponData.RagdollImpulseUpBias">
            <summary>
            Extra upward bias for ragdoll impulse (0-1 recommended).
            </summary>
        </member>
        <member name="P:WeaponData.IgnoreBodyArmorOnHeadshot">
            <summary>
            If true, body armor does not reduce this weapon's headshots.
            Intended for classic one-shot headshot weapons like the Deagle and M24.
            </summary>
        </member>
        <member name="P:WeaponData.SuppressesDeathSound">
            <summary>
            If true, this weapon suppresses the victim's death scream/audio cue.
            This is separate from corpse/death-camera flow and is intended for silent-kill behavior.
            </summary>
        </member>
        <member name="P:WeaponData.ArticleIsAn">
            <summary>
            If true, text generators will use 'an' instead of 'a' before this weapon's name.
            Examples: an Uzi, an M24, a Glock.
            </summary>
        </member>
        <member name="P:WeaponData.ModelPreviewRotation">
            <summary>
            Rotation override for this weapon's model preview.
            Useful when a world model faces an awkward direction by default.
            </summary>
        </member>
        <member name="P:WeaponData.ModelPreviewLookAtOffset">
            <summary>
            Additional offset applied to the model preview camera look-at target.
            Use this to nudge tall or asymmetrical models back into frame.
            </summary>
        </member>
        <member name="P:WeaponData.ModelPreviewDistanceScale">
            <summary>
            Multiplies the auto-fit camera distance for the model preview.
            Values above 1 pull the camera back; below 1 push it closer.
            </summary>
        </member>
        <member name="P:WeaponData.ModelPreviewFov">
            <summary>
            Field of view override for this weapon's model preview camera.
            </summary>
        </member>
        <member name="P:WeaponData.LegacyEntityName">
            <summary>
            The optional legacy Entity name for this weapon, for map compatibility reasons.
            </summary>
        </member>
        <member name="T:ParticleLineEmitter">
            <summary>
            Emits particles evenly along a defined line.
            </summary>
        </member>
        <member name="P:ParticleLineEmitter.StartPoint">
            <summary>
            The starting point of the line in local space.
            </summary>
        </member>
        <member name="P:ParticleLineEmitter.EndPoint">
            <summary>
            The ending point of the line in local space.
            </summary>
        </member>
        <member name="P:ParticleLineEmitter.UseGameObjects">
            <summary>
            If true, the Start/End Point properties will be ignored, and GameObjects will be used instead.
            </summary>
        </member>
        <member name="P:ParticleLineEmitter.StartObject">
            <summary>
            The GameObject to use as the starting point of the line.
            </summary>
        </member>
        <member name="P:ParticleLineEmitter.EndObject">
            <summary>
            The GameObject to use as the ending point of the line.
            </summary>
        </member>
        <member name="T:Sandbox.ParticleModelEmitter">
            <summary>
            REMOVE ME WHEN THIS IS ADDED TO SBOX MAIN BRANCH!!!!!! Emits particles in a line. The line can be flat or have a tube-like quality.
            </summary>
        </member>
        <member name="T:ParticleRopeRenderer">
            <summary>
            Renders a single continuous rope between all particles in the system using a LineRenderer.
            </summary>
        </member>
        <member name="P:ParticleRopeRenderer.Colour">
            <summary>
            The colour of the rope over its length.
            </summary>
        </member>
        <member name="P:ParticleRopeRenderer.Width">
            <summary>
            The width of the rope over its length.
            </summary>
        </member>
        <member name="P:ParticleRopeRenderer.Texturing">
            <summary>
            How the texture is applied to the rope.
            </summary>
        </member>
        <member name="T:ParticleMathOperator">
            <summary>
            A generic, configurable operator that performs a mathematical operation on a
            particle property every frame.
            </summary>
        </member>
        <member name="P:BaseToggle.OnStateChanged">
            <summary>
            The toggle state has changed
            </summary>
        </member>
        <member name="M:BaseToggle.StateHasChanged(System.Boolean)">
            <summary>
            The toggle state has changed
            </summary>
        </member>
        <member name="T:DestroyBetweenRounds">
            <summary>
            Destroy this object before a round starts if the current game mode has a <see cref="T:TerrorTown.RoundCleanupSystem"/> component.
            </summary>
        </member>
        <member name="T:DestroyOnMapCleanup">
            <summary>
            Destroy this object before a round starts if the current game mode has a <see cref="T:TerrorTown.RoundCleanupSystem"/> component.
            </summary>
        </member>
        <member name="T:IResettableSpawner">
            <summary>
            Implement this interface on components that need to reset their state before map state capture.
            </summary>
        </member>
    </members>
</doc>
