<?xml version="1.0" encoding="utf-8"?>
<doc>
  <assembly>
    <name>DedicatedServer</name>
  </assembly>
  <members>
    <member name="M:Barotrauma.Character.WriteStatus(Barotrauma.Networking.IWriteMessage,System.Boolean)">
      <param name="forceAfflictionData">Normally full affliction data is not written for dead characters, this can be used to force them to be written</param>
    </member>
    <member name="P:Barotrauma.Character.DisabledByEvent">
      <summary>
            MonsterEvents disable monsters (which includes removing them from the character list, so they essentially "don't exist") until they're ready to spawn
            </summary>
    </member>
    <member name="P:Barotrauma.Character.IsRemotelyControlled">
      <summary>
            Is the character controlled remotely (either by another player, or a server-side AIController)
            </summary>
    </member>
    <member name="P:Barotrauma.Character.IsRemotePlayer">
      <summary>
            Is the character controlled by another human player (should always be false in single player)
            </summary>
    </member>
    <member name="P:Barotrauma.Character.IsCommanding">
      <summary>
            Is the character player or does it have an active ship command manager (an AI controlled sub)? Bots in the player team are not treated as commanders.
            </summary>
    </member>
    <member name="P:Barotrauma.Character.DisableInteract">
      <summary>
            Prevents the character from interacting with items or characters
            </summary>
    </member>
    <member name="P:Barotrauma.Character.DisableFocusingOnEntities">
      <summary>
            Prevents the character from highlighting items or characters with the cursor, 
            meaning it can't interact with anything but the things it has currently selected/equipped
            </summary>
    </member>
    <member name="P:Barotrauma.Character.HeldItems">
      <summary>
            Items the character has in their hand slots. Doesn't return nulls and only returns items held in both hands once.
            </summary>
    </member>
    <member name="P:Barotrauma.Character.InPressure">
      <summary>
            Can be used by status effects to check whether the characters is in a high-pressure environment
            </summary>
    </member>
    <member name="P:Barotrauma.Character.Anim">
      <summary>
            Can be used by status effects
            </summary>
    </member>
    <member name="P:Barotrauma.Character.WasFullHealth">
      <summary>
            Was the character in full health at the beginning of the frame?
            </summary>
    </member>
    <member name="P:Barotrauma.Character.CurrentSpeed">
      <summary>
            Current speed of the character's collider. Can be used by status effects to check if the character is moving.
            </summary>
    </member>
    <member name="P:Barotrauma.Character.SelectedItem">
      <summary>
            The primary selected item. It can be any device that character interacts with. This excludes items like ladders and chairs which are assigned to <see cref="P:Barotrauma.Character.SelectedSecondaryItem" />.
            </summary>
    </member>
    <member name="P:Barotrauma.Character.SelectedSecondaryItem">
      <summary>
            The secondary selected item. It's an item other than a device (see <see cref="P:Barotrauma.Character.SelectedItem" />), e.g. a ladder or a chair.
            </summary>
    </member>
    <member name="P:Barotrauma.Character.HasSelectedAnyItem">
      <summary>
            Has the characters selected a primary or a secondary item?
            </summary>
    </member>
    <member name="M:Barotrauma.Character.IsAnySelectedItem(Barotrauma.Item)">
      <summary>
            Is the item either the primary or the secondary selected item?
            </summary>
      <param name="item"></param>
      <returns></returns>
    </member>
    <member name="M:Barotrauma.Character.Create(Barotrauma.CharacterInfo,Microsoft.Xna.Framework.Vector2,System.String,System.UInt16,System.Boolean,System.Boolean,Barotrauma.RagdollParams,System.Boolean)">
      <summary>
            Create a new character
            </summary>
      <param name="characterInfo">The name, gender, config file, etc of the character.</param>
      <param name="position">Position in display units.</param>
      <param name="seed">RNG seed to use if the character config has randomizable parameters.</param>
      <param name="isRemotePlayer">Is the character controlled by a remote player.</param>
      <param name="hasAi">Is the character controlled by AI.</param>
      <param name="ragdoll">Ragdoll configuration file. If null, will select the default.</param>
    </member>
    <member name="M:Barotrauma.Character.Create(System.String,Microsoft.Xna.Framework.Vector2,System.String,Barotrauma.CharacterInfo,System.UInt16,System.Boolean,System.Boolean,System.Boolean,Barotrauma.RagdollParams,System.Boolean,System.Boolean)">
      <summary>
            Create a new character
            </summary>
      <param name="speciesName">Name of the species (or the path to the config file)</param>
      <param name="position">Position in display units.</param>
      <param name="seed">RNG seed to use if the character config has randomizable parameters.</param>
      <param name="characterInfo">The name, gender, etc of the character. Only used for humans, and if the parameter is not given, a random CharacterInfo is generated.</param>
      <param name="id">ID to assign to the character. If set to 0, automatically find an available ID.</param>
      <param name="isRemotePlayer">Is the character controlled by a remote player.</param>
      <param name="hasAi">Is the character controlled by AI.</param>
      <param name="createNetworkEvent">Should clients receive a network event about the creation of this character?</param>
      <param name="ragdoll">Ragdoll configuration file. If null, will select the default.</param>
    </member>
    <member name="P:Barotrauma.Character.SpeedMultiplier">
      <summary>
            Can be used to modify the character's speed via StatusEffects
            </summary>
    </member>
    <member name="P:Barotrauma.Character.PropulsionSpeedMultiplier">
      <summary>
            Can be used to modify the speed at which Propulsion ItemComponents move the character via StatusEffects (e.g. heavy suit can slow down underwater scooters)
            </summary>
    </member>
    <member name="P:Barotrauma.Character.HealthMultiplier">
      <summary>
            Can be used to modify the character's health via StatusEffects
            </summary>
    </member>
    <member name="P:Barotrauma.Character.HumanPrefabHealthMultiplier">
      <summary>
            Health multiplier of the human prefab this character is an instance of (if any)
            </summary>
    </member>
    <member name="M:Barotrauma.Character.GetTemporarySpeedReduction">
      <summary>
            Speed reduction from the current limb specific damage. Min 0, max 1.
            </summary>
    </member>
    <member name="F:Barotrauma.Character.cursorFollowMargin">
      <summary>
            Values lower than this seem to cause constantious flipping when the mouse is near the player and the player is running, because the root collider moves after flipping.
            </summary>
    </member>
    <member name="M:Barotrauma.Character.IsFacing(Microsoft.Xna.Framework.Vector2)">
      <summary>
            A simple check if the character Dir is towards the target or not. Uses the world coordinates.
            </summary>
    </member>
    <member name="M:Barotrauma.Character.FindItem(System.Int32@,Barotrauma.Item@,System.Collections.Generic.IEnumerable{Barotrauma.Identifier},System.Boolean,System.Collections.Generic.IEnumerable{Barotrauma.Item},System.Collections.Generic.IEnumerable{Barotrauma.Identifier},System.Func{Barotrauma.Item,System.Boolean},System.Func{Barotrauma.Item,System.Single},System.Single,Barotrauma.ISpatialEntity)">
      <summary>
            Finds the closest item seeking by identifiers or tags from the world.
            Ignores items that are outside or in another team's submarine or in a submarine that is not connected to this submarine.
            Also ignores non-interactable items and items that are taken by someone else.
            The method is run in steps for performance reasons. So you'll have to provide the reference to the itemIndex.
            Returns false while running and true when done.
            </summary>
    </member>
    <member name="M:Barotrauma.Character.SetCustomInteract(System.Action{Barotrauma.Character,Barotrauma.Character},Barotrauma.LocalizedString)">
      <summary>
            Set an action that's invoked when another character interacts with this one.
            </summary>
      <param name="onCustomInteract">Action invoked when another character interacts with this one. T1 = this character, T2 = the interacting character</param>
      <param name="hudText">Displayed on the character when highlighted.</param>
    </member>
    <member name="M:Barotrauma.Character.GetDistanceToClosestPlayer">
      <summary>
            How far the character is from the closest human player (including spectators)
            </summary>
    </member>
    <member name="M:Barotrauma.Character.GetDistanceSqrToClosestPlayer">
      <summary>
            How far the character is from the closest human player (including spectators)
            </summary>
    </member>
    <member name="M:Barotrauma.Character.SetOrder(Barotrauma.Order,System.Boolean,System.Boolean,System.Boolean)">
      <param name="force">Force an order to be set for the character, bypassing hearing checks</param>
    </member>
    <member name="M:Barotrauma.Character.ApplyAttack(Barotrauma.Character,Microsoft.Xna.Framework.Vector2,Barotrauma.Attack,System.Single,System.Boolean,Barotrauma.Limb,System.Single)">
      <summary>
            Apply the specified attack to this character. If the targetLimb is not specified, the limb closest to worldPosition will receive the damage.
            </summary>
    </member>
    <member name="P:Barotrauma.Character.IsKnockedDown">
      <summary>
            Is the character knocked down regardless whether the technical state is dead, unconcious, paralyzed, or stunned. 
            With stunning, the parameter uses an one second delay before the character is treated as knocked down. The purpose of this is to ignore minor stunning. If you don't want to to ignore any stun, use the Stun property.
            </summary>
    </member>
    <member name="M:Barotrauma.Character.SaveInventory">
      <summary>
            Calls <see cref="M:Barotrauma.Character.SaveInventory(Barotrauma.Inventory,System.Xml.Linq.XElement)" /> using 'Inventory' and 'Info.InventoryData'
            </summary>
    </member>
    <member name="M:Barotrauma.Character.GetVisibleHulls">
      <summary>
            Returns hulls that are visible to the player, including the current hull.
            Can be heavy if used every frame.
            </summary>
    </member>
    <member name="P:Barotrauma.Character.IsProtectedFromPressure">
      <summary>
            Is the character currently protected from the pressure by immunity/ability or a status effect (e.g. from a diving suit).
            </summary>
    </member>
    <member name="M:Barotrauma.Character.IsInSameRoomAs(Barotrauma.Character)">
      <summary>
            Check if the character is in the same room
            Room and hull differ in that a room can consist of multiple linked hulls
            </summary>
    </member>
    <member name="M:Barotrauma.Character.GiveMoney(System.Int32)">
      <summary>
            Shows visual notification of money gained by the specific player. Useful for mid-mission monetary gains.
            </summary>
    </member>
    <member name="F:Barotrauma.Character.statValues">
      <summary>
            This dictionary is used for stats that are required very frequently. Not very performant, but easier to develop with for now.
            If necessary, the approach of using a dictionary could be replaced by an encapsulated class that contains the stats as attributes.
            </summary>
    </member>
    <member name="F:Barotrauma.Character.wearableStatValues">
      <summary>
            A dictionary with temporary values, updated when the character equips/unequips wearables. Used to reduce unnecessary inventory checking.
            </summary>
    </member>
    <member name="F:Barotrauma.Character.LastProcessedID">
      <summary>
            ID of the last inputs the server has processed
            </summary>
    </member>
    <member name="F:Barotrauma.CharacterInfo.Discarded">
      <summary>
            The client opted to create a new character and discard this one
            </summary>
    </member>
    <member name="F:Barotrauma.CharacterInfo.Character">
      <summary>
            Note: Can be null.
            </summary>
    </member>
    <member name="M:Barotrauma.CharacterInfo.GetUnlockedTalentsInTree">
      <summary>
            Endocrine boosters can unlock talents outside the user's talent tree. This method is used to cull them from the selection
            </summary>
    </member>
    <member name="M:Barotrauma.CharacterInfo.GetUnlockedTalentsOutsideTree">
      <summary>
            Returns unlocked talents that aren't part of the character's talent tree (which can be unlocked e.g. with an endocrine booster)
            </summary>
    </member>
    <member name="F:Barotrauma.CharacterInfo.OmitJobInMenus">
      <summary>
            Can be used to disable displaying the job in any info panels
            </summary>
    </member>
    <member name="F:Barotrauma.CharacterInfo.ID">
      <summary>
            Unique ID given to character infos in MP. Non-persistent.
            Used by clients to identify which infos are the same to prevent duplicate characters in round summary.
            </summary>
    </member>
    <member name="M:Barotrauma.CharacterInfo.GetIdentifier">
      <summary>
            Returns a presumably (not guaranteed) unique hash using the (current) Name, appearence, and job.
            So unless there's another character with the exactly same name, job, and appearance, the hash should be unique.
            </summary>
    </member>
    <member name="M:Barotrauma.CharacterInfo.GetIdentifierUsingOriginalName">
      <summary>
            Returns a presumably (not guaranteed) unique hash using the OriginalName, appearence, and job.
            So unless there's another character with the exactly same name, job, and appearance, the hash should be unique.
            </summary>
    </member>
    <member name="M:Barotrauma.CharacterInfo.RefreshHead">
      <summary>
            Reloads the head sprite and the attachment sprites.
            </summary>
    </member>
    <member name="M:Barotrauma.CharacterInfo.SaveOrderData(Barotrauma.CharacterInfo,System.Xml.Linq.XElement)">
      <summary>
            Save current orders to the parameter element
            </summary>
    </member>
    <member name="M:Barotrauma.CharacterInfo.SaveOrderData">
      <summary>
            Save current orders to <see cref="F:Barotrauma.CharacterInfo.OrderData" /></summary>
    </member>
    <member name="M:Barotrauma.CharacterInfo.ReloadHeadAttachments">
      <summary>
            Reloads the attachment xml elements according to the indices. Doesn't reload the sprites.
            </summary>
    </member>
    <member name="F:Barotrauma.DebugConsole.Command.OnClientRequestExecute">
      <summary>
            Executed server-side when a client attempts to use the command.
            </summary>
    </member>
    <member name="F:Barotrauma.DebugConsole.Command.IsCheat">
      <summary>
            Using a command that's considered a cheat disables achievements
            </summary>
    </member>
    <member name="M:Barotrauma.DebugConsole.Command.#ctor(System.String,System.String,System.Action{System.String[]},System.Func{System.String[][]},System.Boolean)">
      <summary>
            Use this constructor to create a command that executes the same action regardless of whether it's executed by a client or the server.
            </summary>
    </member>
    <member name="F:Barotrauma.ConversationAction.BlockOtherConversationsDuration">
      <summary>
            Other events can't trigger conversations if some other event has triggered one within this time.
            Intended to prevent multiple events from triggering conversations at the same time.
            </summary>
    </member>
    <member name="M:Barotrauma.EventManager.RegisterEventHistory(System.Boolean)">
      <summary>
            Registers the exhaustible events in the level as exhausted, and adds the current events to the event history
            </summary>
    </member>
    <member name="M:Barotrauma.EventManager.FindActions(Barotrauma.ScriptedEvent)">
      <summary>
            Finds all actions in a ScriptedEvent
            </summary>
    </member>
    <member name="M:Barotrauma.EventManager.GetRefEntity">
      <summary>
            Get the entity that should be used in determining how far the player has progressed in the level.
            = The submarine or player character that has progressed the furthest. 
            </summary>
    </member>
    <member name="F:Barotrauma.MineralMission.ValidPositionTypes">
      <remarks>
            The list order is important.
            It defines the order in which we "override" <see cref="F:Barotrauma.MineralMission.positionType" /> in case no valid position types are found
            in the level when generating them in <see cref="!:Level.GenerateMissionResources(ItemPrefab, int, PositionType, out float)" />.
            </remarks>
    </member>
    <member name="F:Barotrauma.MineralMission.resourceHandoverAmount">
      <summary>
            Percentage. Value between 0 and 1.
            </summary>
    </member>
    <member name="F:Barotrauma.Mission.finalReward">
      <summary>
            The reward that was actually given from completing the mission, taking any talent bonuses into account 
            (some of which may not be possible to determine in advance)
            </summary>
    </member>
    <member name="F:Barotrauma.Mission.OriginLocation">
      <summary>
            Where was this mission received from? Affects which faction we give reputation for if the mission is configured to give reputation for the faction that gave the mission.
            Defaults to Locations[0]
            </summary>
    </member>
    <member name="M:Barotrauma.Mission.TryTriggerEvent(Barotrauma.MissionPrefab.TriggerEvent)">
      <summary>
            Triggers the event or adds it to the delayedTriggerEvents it if it has a delay
            </summary>
    </member>
    <member name="M:Barotrauma.Mission.TriggerEvent(Barotrauma.MissionPrefab.TriggerEvent)">
      <summary>
            Triggers the event immediately, ignoring any delays
            </summary>
    </member>
    <member name="M:Barotrauma.Mission.End">
      <summary>
            End the mission and give a reward if it was completed successfully
            </summary>
    </member>
    <member name="M:Barotrauma.Mission.GetFinalReward(Barotrauma.Submarine)">
      <summary>
            Get the final reward, taking talent bonuses into account if the mission has concluded and the talents modified the reward accordingly.
            </summary>
    </member>
    <member name="M:Barotrauma.Mission.CalculateFinalReward(Barotrauma.Submarine)">
      <summary>
            Calculates the final reward after talent bonuses have been applied. Note that this triggers talent effects of the type OnGainMissionMoney, 
            and should only be called once when the mission is completed!
            </summary>
    </member>
    <member name="T:Barotrauma.SalvageMission.Target.RetrievalState">
      <summary>
            Note that the integer values matter here:
            a larger or equal value than the <see href="RequiredRetrievalState">RequiredRetrievalState</see> means the item counts as retrieved
            (if the item needs to be picked up to be considered retrieved, it's also considered retrieved if it's in the sub)
            </summary>
    </member>
    <member name="F:Barotrauma.SalvageMission.Target.RequiredRetrievalState">
      <summary>
            Does the target need to be picked up or brought to the sub for mission to be considered successful. 
            If None, the target has no effect on the completion of the mission.
            </summary>
    </member>
    <member name="F:Barotrauma.SalvageMission.Target.StatusEffects">
      <summary>
            Status effects executed on the target item when the mission starts. A random effect is chosen from each child list.
            </summary>
    </member>
    <member name="F:Barotrauma.CargoManager.SoldEntity.SellStatus.Confirmed">
      <summary>
            Entity sold in SP. Or, entity sold by client and confirmed by server in MP.
            </summary>
    </member>
    <member name="F:Barotrauma.CargoManager.SoldEntity.SellStatus.Unconfirmed">
      <summary>
            Entity sold by client in MP. Client has received at least one update from server after selling, but this entity wasn't yet confirmed.
            </summary>
    </member>
    <member name="F:Barotrauma.CargoManager.SoldEntity.SellStatus.Local">
      <summary>
            Entity sold by client in MP. Client hasn't yet received an update from server after selling.
            </summary>
    </member>
    <member name="M:Barotrauma.CrewManager.SaveMultiplayer(System.Xml.Linq.XElement)">
      <summary>
            Saves bots in multiplayer
            </summary>
    </member>
    <member name="M:Barotrauma.CrewManager.RemoveCharacterInfo(Barotrauma.CharacterInfo)">
      <summary>
            Remove info of a selected character. The character will not be visible in any menus or the round summary.
            </summary>
      <param name="characterInfo"></param>
    </member>
    <member name="M:Barotrauma.CrewManager.RemoveCharacter(Barotrauma.Character,System.Boolean,System.Boolean)">
      <summary>
            Remove the character from the crew (and crew menus).
            </summary>
      <param name="character">The character to remove</param>
      <param name="removeInfo">If the character info is also removed, the character will not be visible in the round summary.</param>
    </member>
    <member name="M:Barotrauma.Wallet.ForceUpdate">
      <summary>
            Forces the server to sync the state of the wallet regardless if the balance/reward has changed
            </summary>
    </member>
    <member name="M:Barotrauma.CampaignMode.AllowedToManageCampaign(Barotrauma.Networking.Client,Barotrauma.Networking.ClientPermissions)">
      <summary>
            There is a client-side implementation of the method in <see cref="T:Barotrauma.CampaignMode" /></summary>
    </member>
    <member name="M:Barotrauma.CampaignMode.GetCurrentDisplayLocation">
      <summary>
            The location that's displayed as the "current one" in the map screen. Normally the current outpost or the location at the start of the level,
            but when selecting the next destination at the end of the level at an uninhabited location we use the location at the end
            </summary>
    </member>
    <member name="E:Barotrauma.CampaignMode.BeforeLevelLoading">
      <summary>
            Automatically cleared after triggering -&gt; no need to unregister
            </summary>
    </member>
    <member name="M:Barotrauma.CampaignMode.LoadInitialLevel">
      <summary>
            Load the first level and start the round after loading a save file
            </summary>
    </member>
    <member name="M:Barotrauma.CampaignMode.GetAvailableTransition(Barotrauma.LevelData@,Barotrauma.Submarine@)">
      <summary>
            Which type of transition between levels is currently possible (if any)
            </summary>
    </member>
    <member name="M:Barotrauma.CampaignMode.GetLeavingSub">
      <summary>
            Which submarine is at a position where it can leave the level and enter another one (if any).
            </summary>
    </member>
    <member name="M:Barotrauma.CampaignMode.UpdateStoreStock">
      <summary>
            Updates store stock before saving the game
            </summary>
    </member>
    <member name="M:Barotrauma.CampaignMode.GetRandomFaction(Barotrauma.Rand.RandSync,System.Boolean)">
      <summary>
            Returns a random faction based on their ControlledOutpostPercentage 
            </summary>
      <param name="allowEmpty">If true, the method can return null if the sum of the factions ControlledOutpostPercentage is less than 100%</param>
    </member>
    <member name="M:Barotrauma.CampaignMode.GetRandomSecondaryFaction(Barotrauma.Rand.RandSync,System.Boolean)">
      <summary>
            Returns a random faction based on their SecondaryControlledOutpostPercentage 
            </summary>
      <param name="allowEmpty">If true, the method can return null if the sum of the factions SecondaryControlledOutpostPercentage is less than 100%</param>
    </member>
    <member name="M:Barotrauma.CampaignMode.TransferItemsBetweenSubs">
      <summary>
            Also serializes the current sub.
            </summary>
    </member>
    <member name="M:Barotrauma.MultiPlayerCampaign.SendCrewState(System.Collections.Generic.List{Barotrauma.CharacterInfo},System.ValueTuple{System.Int32,System.String},Barotrauma.CharacterInfo)">
      <summary>
            Notifies the clients of the current bot situation like syncing pending and available hires
            </summary>
      <param name="hiredCharacters">Inform the clients that these characters have been hired.</param>
      <param name="firedCharacter">Inform the clients that this character has been fired.</param>
      <remarks>
            It might be obsolete to sync available hires. I found that the available hires are always the same between
            the client and the server when there's only one person on the server but when a second person joins both of
            their available hires are different from the server.
            </remarks>
    </member>
    <member name="M:Barotrauma.MultiPlayerCampaign.Load(System.Xml.Linq.XElement)">
      <summary>
            Loads the campaign from an XML element. Creates the map if it hasn't been created yet, otherwise updates the state of the map.
            </summary>
    </member>
    <member name="T:Barotrauma.UpgradeManager">
      <summary>
            This class handles all upgrade logic.
            Storing, applying, checking and validation of upgrades.
            </summary>
      <remarks>
            Upgrades are applied per item basis meaning each item has their own set of slots for upgrades.
            The store applies upgrades globally to categories of items so the purpose of this class is to keep those individual "upgrade slots" in sync.
            The target level of an upgrade is stored in the metadata and is what the store displays and modifies while this class will make sure that
            the upgrades on the items match the values stored in the metadata.
            </remarks>
    </member>
    <member name="F:Barotrauma.UpgradeManager.UpgradeAlsoConnectedSubs">
      <summary>
            This one toggles whether or not connected submarines get upgraded too.
            Could probably be removed, I just didn't like magic numbers.
            </summary>
    </member>
    <member name="F:Barotrauma.UpgradeManager.loadedUpgrades">
      <summary>
            This is used by the client in multiplayer, acts like a secondary PendingUpgrades list
            but is not affected by server messages.
            </summary>
      <remarks>
            Not used in singleplayer.
            </remarks>
    </member>
    <member name="F:Barotrauma.UpgradeManager.PurchasedUpgrades">
      <summary>
            This is used by the client to notify the server which upgrades are yet to be paid for.
            </summary>
      <remarks>
            In singleplayer this does nothing.
            </remarks>
    </member>
    <member name="M:Barotrauma.UpgradeManager.PurchaseUpgrade(Barotrauma.UpgradePrefab,Barotrauma.UpgradeCategory,System.Boolean,Barotrauma.Networking.Client)">
      <summary>
            Purchases an upgrade and handles logic for deducting the credit.
            </summary>
      <remarks>
            Purchased upgrades are temporarily stored in <see cref="F:Barotrauma.UpgradeManager.PendingUpgrades" /> and they are applied
            after the next round starts similarly how items are spawned in the stowage room after the round starts.
            </remarks>
    </member>
    <member name="M:Barotrauma.UpgradeManager.PurchaseItemSwap(Barotrauma.Item,Barotrauma.ItemPrefab,System.Boolean,Barotrauma.Networking.Client)">
      <summary>
            Purchases an item swap and handles logic for deducting the credit.
            </summary>
    </member>
    <member name="M:Barotrauma.UpgradeManager.CancelItemSwap(Barotrauma.Item,System.Boolean)">
      <summary>
            Cancels the currently pending item swap, or uninstalls the item if there's no swap pending
            </summary>
    </member>
    <member name="M:Barotrauma.UpgradeManager.ApplyUpgrades">
      <summary>
             Applies all our pending upgrades to the submarine.
             </summary>
      <remarks>
             Upgrades are applied similarly to how items on the submarine are spawned at the start of the round.
             Upgrades should be applied at the start of the round and after the round ends they are written into
             the submarine save and saved there.
             Because of the difficulty of accessing the actual Submarine object from and outpost or when the campaign UI is created
             we modify levels that are shown on the store interface using campaign metadata.
            
             This method should be called by both the client and the server during level generation.
             <see cref="M:Barotrauma.UpgradeManager.SetUpgradeLevel(Barotrauma.UpgradePrefab,Barotrauma.UpgradeCategory,System.Int32)" /><seealso cref="M:Barotrauma.UpgradeManager.GetUpgradeLevel(Barotrauma.UpgradePrefab,Barotrauma.UpgradeCategory,Barotrauma.SubmarineInfo)" /></remarks>
    </member>
    <member name="M:Barotrauma.UpgradeManager.UpgradeNPCSpeak(System.String,System.Boolean,Barotrauma.Character)">
      <summary>
            Makes the NPC talk or if no NPC has been specified find the upgrade NPC and make it talk.
            </summary>
      <param name="text"></param>
      <param name="isSinglePlayer"></param>
      <param name="character">Optional NPC to make talk, if null tries to find one at the outpost.</param>
      <remarks>
            This might seem a bit spaghetti but it's the only way I could figure out how to do this and make it work
            in both multiplayer and singleplayer because in multiplayer the client doesn't have access to SubmarineInfo.OutpostNPCs list
            so we cannot find the upgrade NPC using that and the client cannot use Character.Speak anyways in multiplayer so the alternative
            is to send network packages when interacting with the NPC.
            </remarks>
    </member>
    <member name="M:Barotrauma.UpgradeManager.SanityCheckUpgrades">
      <summary>
            Validates that upgrade values stored in CampaignMetadata matches the values on the submarine and fixes any inconsistencies.
            Should be called after every round start right after <see cref="M:Barotrauma.UpgradeManager.ApplyUpgrades" /></summary>
      <param name="submarine"></param>
    </member>
    <member name="M:Barotrauma.UpgradeManager.BuyUpgrade(Barotrauma.UpgradePrefab,Barotrauma.UpgradeCategory,Barotrauma.Submarine,System.Int32,Barotrauma.Submarine)">
      <summary>
            Applies an upgrade on the submarine, should be called by <see cref="M:Barotrauma.UpgradeManager.ApplyUpgrades" /> when the round starts.
            </summary>
      <param name="prefab"></param>
      <param name="category"></param>
      <param name="submarine"></param>
      <param name="level"></param>
      <returns>New level that was applied, -1 if no upgrades were applied.</returns>
    </member>
    <member name="M:Barotrauma.UpgradeManager.GetUpgradeLevel(Barotrauma.UpgradePrefab,Barotrauma.UpgradeCategory,Barotrauma.SubmarineInfo)">
      <summary>
            Gets the progress that is shown on the store interface.
            Includes values stored in the metadata and <see cref="F:Barotrauma.UpgradeManager.PendingUpgrades" />, and takes submarine tier and class restrictions into account
            </summary>
      <param name="info">Submarine used to determine the upgrade limit. If not defined, will default to the current sub.</param>
    </member>
    <member name="M:Barotrauma.UpgradeManager.GetRealUpgradeLevel(Barotrauma.UpgradePrefab,Barotrauma.UpgradeCategory)">
      <summary>
            Gets the level of the upgrade that is stored in the metadata. May be higher than the apparent level on the current sub if the player has switched to a lower-tier sub
            </summary>
    </member>
    <member name="M:Barotrauma.UpgradeManager.GetRealUpgradeLevelForSub(Barotrauma.UpgradePrefab,Barotrauma.UpgradeCategory,Barotrauma.SubmarineInfo)">
      <summary>
            Gets the level of the upgrade that is stored in the metadata. Takes into account the limits of the provided submarine.
            </summary>
    </member>
    <member name="M:Barotrauma.UpgradeManager.SetUpgradeLevel(Barotrauma.UpgradePrefab,Barotrauma.UpgradeCategory,System.Int32)">
      <summary>
            Stores the target upgrade level in the campaign metadata.
            </summary>
    </member>
    <member name="M:Barotrauma.UpgradeManager.SetPendingUpgrades(System.Collections.Generic.List{Barotrauma.PurchasedUpgrade})">
      <summary>
            Used to sync the pending upgrades list in multiplayer.
            </summary>
      <param name="upgrades"></param>
    </member>
    <member name="P:Barotrauma.Items.Components.DockingPort.AtStartExit">
      <summary>
            Can be used by status effects
            </summary>
    </member>
    <member name="E:Barotrauma.Items.Components.DockingPort.OnDocked">
      <summary>
            Automatically cleared after docking -&gt; no need to unregister
            </summary>
    </member>
    <member name="E:Barotrauma.Items.Components.DockingPort.OnUnDocked">
      <summary>
            Automatically cleared after undocking -&gt; no need to unregister
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Growable.CheckPlantState">
      <summary>
            Updates plant's state to fully grown or dead depending on its conditions.
            </summary>
      <returns>True if the plant has finished growing.</returns>
    </member>
    <member name="T:Barotrauma.Items.Components.ItemComponent">
      <summary>
            The base class for components holding the different functionalities of the item
            </summary>
    </member>
    <member name="P:Barotrauma.Items.Components.ItemComponent.ManuallySelectedSound">
      <summary>
            Which sound should be played when manual sound selection type is selected? Not [Editable] because we don't want this visible in the editor for every component.
            </summary>
    </member>
    <member name="P:Barotrauma.Items.Components.ItemComponent.Speed">
      <summary>
            Can be used by status effects or conditionals to the speed of the item
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.ItemComponent.Pick(Barotrauma.Character)">
      <summary>a Character has picked the item</summary>
    </member>
    <member name="M:Barotrauma.Items.Components.ItemComponent.Drop(Barotrauma.Character)">
      <summary>a Character has dropped the item</summary>
    </member>
    <member name="M:Barotrauma.Items.Components.ItemComponent.CrewAIOperate(System.Single,Barotrauma.Character,Barotrauma.AIObjectiveOperateItem)">
      <returns>true if the operation was completed</returns>
    </member>
    <member name="M:Barotrauma.Items.Components.ItemComponent.ShallowRemove">
      <summary>
            Remove the component so that it doesn't appear to exist in the game world (stop sounds, remove bodies etc)
            but don't reset anything that's required for cloning the item
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.ItemComponent.DegreeOfSuccess(Barotrauma.Character)">
      <summary>
            Returns 0.0f-1.0f based on how well the Character can use the itemcomponent
            </summary>
      <returns>0.5f if all the skills meet the skill requirements exactly, 1.0f if they're way above and 0.0f if way less</returns>
    </member>
    <member name="M:Barotrauma.Items.Components.ItemComponent.DegreeOfSuccess(Barotrauma.Character,System.Collections.Generic.List{Barotrauma.Skill})">
      <summary>
            Returns 0.0f-1.0f based on how well the Character can use the itemcomponent
            </summary>
      <returns>0.5f if all the skills meet the skill requirements exactly, 1.0f if they're way above and 0.0f if way less</returns>
    </member>
    <member name="M:Barotrauma.Items.Components.ItemComponent.IsEmpty(Barotrauma.Character)">
      <summary>
            Shorthand for !HasRequiredContainedItems()
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.ItemComponent.HasAccess(Barotrauma.Character)">
      <summary>
            Only checks if any of the Picked requirements are matched (used for checking id card(s)). Much simpler and a bit different than HasRequiredItems.
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.ItemComponent.OnMapLoaded">
      <summary>
            Called when all items have been loaded. Use to initialize connections between items.
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.ItemComponent.OnItemLoaded">
      <summary>
            Called when all the components of the item have been loaded. Use to initialize connections between components and such.
            </summary>
    </member>
    <member name="F:Barotrauma.Items.Components.LightComponent.lightBrightness">
      <summary>
            The current brightness of the light source, affected by powerconsumption/voltage
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Deconstructor.MoveInputQueue">
      <summary>
            Move items towards the last slot in the inventory if there's free slots
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Engine.GetCurrentPowerConsumption(Barotrauma.Items.Components.Connection)">
      <summary>
            Power consumption of the engine. Only consume power when active and adjust consumption based on condition and target force.
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Engine.GridResolved(Barotrauma.Items.Components.Connection)">
      <summary>
            When grid is resolved update the previous voltage
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Fabricator.GetCurrentPowerConsumption(Barotrauma.Items.Components.Connection)">
      <summary>
            Power consumption of the fabricator. Only consume power when active and adjust consumption based on condition.
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Fabricator.MoveIngredientsToInputContainer(Barotrauma.FabricationRecipe)">
      <summary>
            Move the items required for fabrication into the input container.
            The method assumes that all the required ingredients are available either in the input container or linked containers.
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Pump.GetCurrentPowerConsumption(Barotrauma.Items.Components.Connection)">
      <summary>
            Power consumption of the Pump. Only consume power when active and adjust consumption based on condition.
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Reactor.GetCurrentPowerConsumption(Barotrauma.Items.Components.Connection)">
      <summary>
            Returns a negative value (indicating the reactor generates power) when querying the power output connection.
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Reactor.MinMaxPowerOut(Barotrauma.Items.Components.Connection,System.Single)">
      <summary>
            Min and Max power output of the reactor based on tolerance
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Reactor.GetConnectionPowerOut(Barotrauma.Items.Components.Connection,System.Single,Barotrauma.Items.Components.PowerRange,System.Single)">
      <summary>
            Determine how much power to output based on the load. The load is divided between reactors according to their maximum output in multi-reactor setups.
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Reactor.NeedMoreFuel(System.Single,System.Single)">
      <summary>
            Do we need more fuel to generate enough power to match the current load.
            </summary>
      <param name="minimumOutputRatio">How low we allow the output/load ratio to go before loading more fuel. 
            1.0 = always load more fuel when maximum output is too low, 0.5 = load more if max output is 50% of the load</param>
    </member>
    <member name="F:Barotrauma.Items.Components.Steering.DefaultSteeringAdjustSpeed">
      <summary>
            How fast the steering vector adjusts when the nav terminal is operated by something else than a character (= signals)
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Steering.GetSteeringVelocity(Microsoft.Xna.Framework.Vector2,System.Single)">
      <summary>
            Get optimal velocity for moving towards a position
            </summary>
      <param name="worldPosition">Position to steer towards to</param>
      <param name="slowdownAmount">How heavily the sub slows down when approaching the target</param>
      <returns></returns>
    </member>
    <member name="M:Barotrauma.Items.Components.PowerContainer.GetCurrentPowerConsumption(Barotrauma.Items.Components.Connection)">
      <summary>
            Returns the power consumption if checking the powerIn connection, or a negative value if the output can provide power when checking powerOut.
            Power consumption is proportional to set recharge speed and if there is less than max charge.
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.PowerContainer.MinMaxPowerOut(Barotrauma.Items.Components.Connection,System.Single)">
      <summary>
            Minimum and maximum output for the queried connection.
            Powerin min max equals CurrPowerConsumption as its abnormal for there to be power out.
            PowerOut min power out is zero and max is the maxout unless below 10% charge where
            the output is scaled relative to the 10% charge.
            </summary>
      <param name="connection">Connection being queried</param>
      <param name="load">Current grid load</param>
      <returns>Minimum and maximum power output for the connection</returns>
    </member>
    <member name="M:Barotrauma.Items.Components.PowerContainer.GetConnectionPowerOut(Barotrauma.Items.Components.Connection,System.Single,Barotrauma.Items.Components.PowerRange,System.Single)">
      <summary>
            Finalized power out from the container for the connection, provided the given grid information
            Output power based on the maxpower all batteries can output. So all batteries can
            equally share powerout based on their output capabilities.
            </summary>
      <param name="connection"></param>
      <param name="power"></param>
      <param name="minMaxPower"></param>
      <param name="load"></param>
      <returns></returns>
    </member>
    <member name="M:Barotrauma.Items.Components.PowerContainer.GridResolved(Barotrauma.Items.Components.Connection)">
      <summary>
            When the corresponding grid connection is resolved, adjust the container's charge.
            </summary>
    </member>
    <member name="F:Barotrauma.Items.Components.Projectile.Launcher">
      <summary>
            The item that launched this projectile (if any)
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Projectile.ShouldIgnoreSubmarineCollision(FarseerPhysics.Dynamics.Fixture,FarseerPhysics.Dynamics.Contacts.Contact)">
      <summary>
            Should the collision with the target submarine be ignored (e.g. did the projectile collide with the wall behind the turret when being launched)
            </summary>
      <param name="target">Fixture the projectile hit</param>
      <param name="contact">Contact between the projectile and the target</param>
      <returns>True if the target isn't a submarine or if the collision happened behind the launch position of the projectile</returns>
    </member>
    <member name="M:Barotrauma.Items.Components.Repairable.CheckCharacterSuccess(Barotrauma.Character,Barotrauma.Item)">
      <summary>
            Check if the character manages to succesfully repair the item
            </summary>
    </member>
    <member name="P:Barotrauma.Items.Components.Scanner.DisplayProgressBar">
      <summary>
            Should the progress bar be displayed. Use when AlwaysDisplayProgressBar is set to false.
            </summary>
    </member>
    <member name="F:Barotrauma.Items.Components.ConnectionPanel.DisconnectedWires">
      <summary>
            Wires that have been disconnected from the panel, but not removed completely (visible at the bottom of the connection panel).
            </summary>
    </member>
    <member name="P:Barotrauma.Items.Components.ConnectionPanel.AlwaysAllowRewiring">
      <summary>
            Allows rewiring the connection panel despite rewiring being disabled on a server
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.ConnectionPanel.CheckCharacterSuccess(Barotrauma.Character)">
      <summary>
            Check if the character manages to succesfully rewire the panel, and if not, apply OnFailure effects
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement.#ctor(Barotrauma.Item,Barotrauma.ContentXElement,Barotrauma.Items.Components.CustomInterface)">
      <summary>
            Pass the parent component to the constructor to access the serializable properties
            for elements which change property values.
            </summary>
    </member>
    <member name="P:Barotrauma.Items.Components.Terminal.ShowMessage">
      <summary>
            Can be used to display messages on the terminal via status effects
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.WifiComponent.GetReceiversInRange">
      <summary>
            Returns the wifi components that can receive signals from this one
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.WifiComponent.GetTransmittersInRange">
      <summary>
            Returns the wifi components that can transmit signals to this one
            </summary>
    </member>
    <member name="F:Barotrauma.Items.Components.TriggerComponent.statusEffects">
      <summary>
            Effects applied to entities inside the trigger
            </summary>
    </member>
    <member name="F:Barotrauma.Items.Components.TriggerComponent.attacks">
      <summary>
            Attacks applied to entities inside the trigger
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Quality.GetSpawnedItemQuality(Barotrauma.Submarine,Barotrauma.Level,Barotrauma.Rand.RandSync)">
      <summary>
            Get a random quality for an item spawning in some sub, taking into account the type of the submarine and the difficulty of the current level 
            (high-quality items become more common as difficulty increases)
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.ElectricalDischarger.GetCurrentPowerConsumption(Barotrauma.Items.Components.Connection)">
      <summary>
            Discharge coil only draws power when charging
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.VineTile.GetRandomFreeSide(System.Random)">
      <summary>
            Returns a random side that is not occupied.
            </summary>
      <remarks>
            There is probably a much better way of doing this than allocating memory with an array
            but this felt like the most reliable approach I could come up with.
            </remarks>
      <returns></returns>
    </member>
    <member name="F:Barotrauma.Items.Components.MeleeWeapon.PreferredContainedItems">
      <summary>
            Defines items that boost the weapon functionality, like battery cell for stun batons.
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.MeleeWeapon.ActivateNearbySleepingCharacters">
      <summary>
            Activate sleeping ragdolls that are close enough to hit with the weapon (otherwise the collision will not be registered)
            </summary>
    </member>
    <member name="P:Barotrauma.Items.Components.ItemContainer.MainContainerCapacity">
      <summary>
            The capacity of the main container without taking the sub containers into account. Only differs when there's a sub container defined for the component.
            </summary>
    </member>
    <member name="P:Barotrauma.Items.Components.ItemContainer.Locked">
      <summary>
            Can be used by status effects to lock the inventory
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.ItemContainer.FindSuitableSubContainerIndex(Barotrauma.Identifier)">
      <summary>
            Returns the index of the first slot whose restrictions match the specified tag or identifier
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.MiniMap.GetCurrentPowerConsumption(Barotrauma.Items.Components.Connection)">
      <summary>
            Power consumption of the MiniMap. Only consume power when active and adjust consumption based on condition.
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.OxygenGenerator.GetCurrentPowerConsumption(Barotrauma.Items.Components.Connection)">
      <summary>
            Power consumption of the Oxygen Generator. Only consume power when active and adjust consumption based on condition.
            </summary>
    </member>
    <member name="P:Barotrauma.Items.Components.Sonar.UseDirectionalPing">
      <remarks>Accessed through event actions. Do not remove even if there are no references in code.</remarks>
    </member>
    <member name="M:Barotrauma.Items.Components.Sonar.GetCurrentPowerConsumption(Barotrauma.Items.Components.Connection)">
      <summary>
            Power consumption of the sonar. Only consume power when active and adjust the consumption based on the sonar mode.
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Planter.TryHarvest(Barotrauma.Character)">
      <summary>
            Attempts to harvest a fully grown plant or removes a decayed plant if any
            </summary>
      <param name="character">The character who gets the produce or null if they should drop on the floor.</param>
      <returns></returns>
    </member>
    <member name="T:Barotrauma.Items.Components.PowerPriority">
      <summary>
            Order in which power sources will provide to a grid, lower number is higher priority
            </summary>
    </member>
    <member name="F:Barotrauma.Items.Components.PowerRange.ReactorMaxOutput">
      <summary>
            Used by reactors to communicate their maximum output to each other so they can divide the grid load between each other in a sensible way
            </summary>
    </member>
    <member name="F:Barotrauma.Items.Components.Powered.poweredList">
      <summary>
            List of all powered ItemComponents
            </summary>
    </member>
    <member name="F:Barotrauma.Items.Components.Powered.currPowerConsumption">
      <summary>
            The amount of power currently consumed by the item. Negative values mean that the item is providing power to connected items
            </summary>
    </member>
    <member name="F:Barotrauma.Items.Components.Powered.voltage">
      <summary>
            Current voltage of the item (load / power)
            </summary>
    </member>
    <member name="F:Barotrauma.Items.Components.Powered.minVoltage">
      <summary>
            The minimum voltage required for the item to work
            </summary>
    </member>
    <member name="F:Barotrauma.Items.Components.Powered.powerConsumption">
      <summary>
            The maximum amount of power the item can draw from connected items
            </summary>
    </member>
    <member name="F:Barotrauma.Items.Components.Powered.MaxOverVoltageFactor">
      <summary>
            Maximum voltage factor when the device is being overvolted. I.e. how many times more effectively the device can function when it's being overvolted
            </summary>
    </member>
    <member name="P:Barotrauma.Items.Components.Powered.RelativeVoltage">
      <summary>
            Essentially Voltage / MinVoltage (= how much of the minimum required voltage has been satisfied), clamped between 0 and 1. 
            Can be used by status effects or sounds to check if the item has enough power to run
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Powered.UpdateGrids(System.Boolean)">
      <summary>
            Allocate electrical devices into their grids based on connections
            </summary>
      <param name="useCache">Use previous grids and change in connections</param>
    </member>
    <member name="M:Barotrauma.Items.Components.Powered.UpdatePower(System.Single)">
      <summary>
            Update the power calculations of all devices and grids
            Updates grids in the order of
            ConnCurrConsumption - Get load of device/ flag it as an outputting connection
            -- If outputting power --
            MinMaxPower - Minimum and Maximum power output of the connection for devices to coordinate
            ConnPowerOut - Final power output based on the sum of the MinMaxPower
            -- Finally --
            GridResolved - Indicate that a connection's grid has been finished being calculated
            
            Power outputting devices are calculated in stages based on their priority
            Reactors will output first, followed by relays then batteries.
            
            </summary>
      <param name="deltaTime"></param>
    </member>
    <member name="M:Barotrauma.Items.Components.Powered.GetCurrentPowerConsumption(Barotrauma.Items.Components.Connection)">
      <summary>
            Current power consumption of the device (or amount of generated power if negative)
            </summary>
      <param name="connection">Connection to calculate power consumption for.</param>
    </member>
    <member name="M:Barotrauma.Items.Components.Powered.MinMaxPowerOut(Barotrauma.Items.Components.Connection,System.Single)">
      <summary>
            Minimum and maximum power the connection can provide
            </summary>
      <param name="conn">Connection being queried about its power capabilities</param>
      <param name="load">Load of the connected grid</param>
    </member>
    <member name="M:Barotrauma.Items.Components.Powered.GetConnectionPowerOut(Barotrauma.Items.Components.Connection,System.Single,Barotrauma.Items.Components.PowerRange,System.Single)">
      <summary>
            Finalize how much power the device will be outputting to the connection
            </summary>
      <param name="conn">Connection being queried</param>
      <param name="power">Current grid power</param>
      <param name="load">Current load on the grid</param>
      <returns>Power pushed to the grid</returns>
    </member>
    <member name="M:Barotrauma.Items.Components.Powered.GridResolved(Barotrauma.Items.Components.Connection)">
      <summary>
            Can be overridden to perform updates for the device after the connected grid has resolved its power calculations, i.e. storing voltage for later updates
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Powered.GetAvailableInstantaneousBatteryPower">
      <summary>
            Returns the amount of power that can be supplied by batteries directly connected to the item
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Powered.GetDirectlyConnectedBatteries">
      <summary>
            Returns a list of batteries directly connected to the item
            </summary>
    </member>
    <member name="P:Barotrauma.Items.Components.PowerTransfer.ExtraLoad">
      <summary>
            Additional load coming from somewhere else than the devices connected to the junction box (e.g. ballast flora or piezo crystals).
            Goes back to zero automatically if you stop setting the value.
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.RelayComponent.GetCurrentPowerConsumption(Barotrauma.Items.Components.Connection)">
      <summary>
            Relay power consumption. Load consumption is based on the internal buffer.
            This allows for the relay to react to demand and find equilibrium in loop configurations.
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.RelayComponent.MinMaxPowerOut(Barotrauma.Items.Components.Connection,System.Single)">
      <summary>
            Minimum and maximum power out for the relay.
            Max out is adjusted to allow for other relays to compensate if this relay is undervolted.
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.RelayComponent.GetConnectionPowerOut(Barotrauma.Items.Components.Connection,System.Single,Barotrauma.Items.Components.PowerRange,System.Single)">
      <summary>
            Power out for the relay connection.
            Relay will output the necessary power to the grid based on maximum power output of other
            relays and will undervolt and overvolt the grid following its supply grid.
            </summary>
      <returns>Power outputted to the grid</returns>
    </member>
    <member name="M:Barotrauma.Items.Components.RelayComponent.GridResolved(Barotrauma.Items.Components.Connection)">
      <summary>
            Connection's grid resolved, determine the difference to be added to the buffer.
            Ensure the prevVoltage voltage is updated once both grids are resolved.
            </summary>
    </member>
    <member name="M:Barotrauma.Items.Components.Turret.GetCurrentPowerConsumption(Barotrauma.Items.Components.Connection)">
      <summary>
            Turret doesn't consume grid power, directly takes from the batteries on its grid instead.
            </summary>
    </member>
    <member name="M:Barotrauma.Inventory.ItemSlot.HowManyCanBePut(Barotrauma.ItemPrefab,System.Nullable{System.Int32},System.Nullable{System.Single})">
      <param name="maxStackSize">Defaults to <see cref="P:Barotrauma.ItemPrefab.MaxStackSize" /> if null</param>
    </member>
    <member name="M:Barotrauma.Inventory.ItemSlot.RemoveItem">
      <summary>
            Removes one item from the slot
            </summary>
    </member>
    <member name="M:Barotrauma.Inventory.ItemSlot.RemoveAllItems">
      <summary>
            Removes all items from the slot
            </summary>
    </member>
    <member name="P:Barotrauma.Inventory.AllItems">
      <summary>
            All items contained in the inventory. Stacked items are returned as individual instances. DO NOT modify the contents of the inventory while enumerating this list.
            </summary>
    </member>
    <member name="P:Barotrauma.Inventory.AllItemsMod">
      <summary>
            All items contained in the inventory. Allows modifying the contents of the inventory while being enumerated.
            </summary>
    </member>
    <member name="M:Barotrauma.Inventory.Contains(Barotrauma.Item)">
      <summary>
            Is the item contained in this inventory. Does not recursively check items inside items.
            </summary>
    </member>
    <member name="M:Barotrauma.Inventory.FirstOrDefault">
      <summary>
            Return the first item in the inventory, or null if the inventory is empty.
            </summary>
    </member>
    <member name="M:Barotrauma.Inventory.LastOrDefault">
      <summary>
            Return the last item in the inventory, or null if the inventory is empty.
            </summary>
    </member>
    <member name="M:Barotrauma.Inventory.GetItemAt(System.Int32)">
      <summary>
            Get the item stored in the specified inventory slot. If the slot contains a stack of items, returns the first item in the stack.
            </summary>
    </member>
    <member name="M:Barotrauma.Inventory.GetItemsAt(System.Int32)">
      <summary>
            Get all the item stored in the specified inventory slot. Can return more than one item if the slot contains a stack of items.
            </summary>
    </member>
    <member name="M:Barotrauma.Inventory.FindIndex(Barotrauma.Item)">
      <summary>
            Find the index of the first slot the item is contained in.
            </summary>
    </member>
    <member name="M:Barotrauma.Inventory.FindIndices(Barotrauma.Item)">
      <summary>
            Find the indices of all the slots the item is contained in (two-hand items for example can be in multiple slots). Note that this method instantiates a new list.
            </summary>
    </member>
    <member name="M:Barotrauma.Inventory.ItemOwnsSelf(Barotrauma.Item)">
      <summary>
            Returns true if the item owns any of the parent inventories.
            </summary>
    </member>
    <member name="M:Barotrauma.Inventory.CanBePut(Barotrauma.Item)">
      <summary>
            Can the item be put in the inventory (i.e. is there a suitable free slot or a stack the item can be put in).
            </summary>
    </member>
    <member name="M:Barotrauma.Inventory.CanBePutInSlot(Barotrauma.Item,System.Int32,System.Boolean)">
      <summary>
            Can the item be put in the specified slot.
            </summary>
    </member>
    <member name="M:Barotrauma.Inventory.TryPutItem(Barotrauma.Item,Barotrauma.Character,System.Collections.Generic.IEnumerable{Barotrauma.InvSlotType},System.Boolean,System.Boolean)">
      <summary>
            If there is room, puts the item in the inventory and returns true, otherwise returns false
            </summary>
    </member>
    <member name="M:Barotrauma.Inventory.IsFull(System.Boolean)">
      <summary>
            Is there room to put more items in the inventory. Doesn't take stacking into account by default.
            </summary>
      <param name="takeStacksIntoAccount">If true, the inventory is not considered full if all the stacks are not full.</param>
    </member>
    <member name="M:Barotrauma.Inventory.ForceToSlot(Barotrauma.Item,System.Int32)">
      <summary>
            Forces an item to a specific slot. Doesn't remove the item from existing slots/inventories or do any other sanity checks, use with caution! 
            </summary>
    </member>
    <member name="M:Barotrauma.Inventory.ForceRemoveFromSlot(Barotrauma.Item,System.Int32)">
      <summary>
            Removes an item from a specific slot. Doesn't do any sanity checks, use with caution! 
            </summary>
    </member>
    <member name="M:Barotrauma.Inventory.DeleteAllItems">
      <summary>
            Deletes all items inside the inventory (and also recursively all items inside the items)
            </summary>
    </member>
    <member name="P:Barotrauma.Item.RepairableItems">
      <summary>
            Items that have one more more Repairable component
            </summary>
    </member>
    <member name="P:Barotrauma.Item.CleanableItems">
      <summary>
            Items that may potentially need to be cleaned up (pickable, not attached to a wall, and not inside a valid container)
            </summary>
    </member>
    <member name="F:Barotrauma.Item.updateableComponents">
      <summary>
            Components that are Active or need to be updated for some other reason (status effects, sounds)
            </summary>
    </member>
    <member name="M:Barotrauma.Item.ResetWaterDragCoefficient">
      <summary>
            Removes the override value -&gt; falls back to using the original value defined in the xml.
            </summary>
    </member>
    <member name="P:Barotrauma.Item.DefaultRect">
      <summary>
            Unscaled rect
            </summary>
    </member>
    <member name="P:Barotrauma.Item.NonPlayerTeamInteractable">
      <summary>
            Use <see cref="!:IsPlayerInteractable" /> to also check <see cref="P:Barotrauma.Item.NonInteractable" /></summary>
    </member>
    <member name="P:Barotrauma.Item.IsPlayerTeamInteractable">
      <summary>
            Checks both <see cref="P:Barotrauma.Item.NonInteractable" /> and <see cref="P:Barotrauma.Item.NonPlayerTeamInteractable" /></summary>
    </member>
    <member name="M:Barotrauma.Item.IsInteractable(Barotrauma.Character)">
      <summary>
            Returns interactibility based on whether the character is on a player team
            </summary>
    </member>
    <member name="P:Barotrauma.Item.ContainerIdentifier">
      <summary>
            Can be used by status effects or conditionals to check what item this item is contained inside
            </summary>
    </member>
    <member name="P:Barotrauma.Item.IsContained">
      <summary>
            Can be used by status effects or conditionals to check whether the item is contained inside something
            </summary>
    </member>
    <member name="P:Barotrauma.Item.Speed">
      <summary>
            Can be used by status effects or conditionals to the speed of the item
            </summary>
    </member>
    <member name="P:Barotrauma.Item.PhysicsBodyActive">
      <summary>
            Can be used by status effects or conditionals to check if the physics body of the item is active
            </summary>
    </member>
    <member name="P:Barotrauma.Item.IsShootable">
      <summary>
            Should the item's Use method be called with the "Use" or with the "Shoot" key?
            </summary>
    </member>
    <member name="P:Barotrauma.Item.RequireAimToUse">
      <summary>
            If true, the user has to hold the "aim" key before use is registered. False by default.
            </summary>
    </member>
    <member name="P:Barotrauma.Item.RequireAimToSecondaryUse">
      <summary>
            If true, the user has to hold the "aim" key before secondary use is registered. True by default.
            </summary>
    </member>
    <member name="P:Barotrauma.Item.ConditionIncreasedRecently">
      <summary>
            Return true if the condition of this item increased within the last second.
            </summary>
    </member>
    <member name="P:Barotrauma.Item.Indestructible">
      <summary>
            Per-instance value - if not set, the value of the prefab is used.
            </summary>
    </member>
    <member name="P:Barotrauma.Item.LastSentSignalRecipients">
      <summary>
            A list of connections the last signal sent by this item went through
            </summary>
    </member>
    <member name="P:Barotrauma.Item.PositionX">
      <summary>
            Can be used to move the item from XML (e.g. to correct the positions of items whose sprite origin has been changed)
            </summary>
    </member>
    <member name="P:Barotrauma.Item.PositionY">
      <summary>
            Can be used to move the item from XML (e.g. to correct the positions of items whose sprite origin has been changed)
            </summary>
    </member>
    <member name="M:Barotrauma.Item.#ctor(Microsoft.Xna.Framework.Rectangle,Barotrauma.ItemPrefab,Barotrauma.Submarine,System.Boolean,System.UInt16)">
      <summary>
            Creates a new item
            </summary>
      <param name="callOnItemLoaded">Should the OnItemLoaded methods of the ItemComponents be called. Use false if the item needs additional initialization before it can be considered fully loaded (e.g. when loading an item from a sub file or cloning an item).</param>
    </member>
    <member name="M:Barotrauma.Item.AllowDroppingOnSwapWith(Barotrauma.Item)">
      <summary>
            Is dropping the item allowed when trying to swap it with the other item
            </summary>
    </member>
    <member name="M:Barotrauma.Item.CheckCleanable">
      <summary>
            Recheck if the item needs to be included in the list of cleanable items
            </summary>
    </member>
    <member name="M:Barotrauma.Item.UpdateHulls">
      <summary>
            goes through every item and re-checks which hull they are in
            </summary>
    </member>
    <member name="M:Barotrauma.Item.RecalculateConditionValues">
      <summary>
            Recalculates the item's maximum condition, condition percentage and whether it's in full condition. 
            You generally never need to call this manually - done automatically when any of the factors that affect the values change.
            </summary>
    </member>
    <member name="M:Barotrauma.Item.ApplyWaterForces">
      <summary>
            Applies buoyancy, drag and angular drag caused by water
            </summary>
    </member>
    <member name="M:Barotrauma.Item.GetConnectedComponents``1(System.Boolean,System.Boolean,System.Func{Barotrauma.Items.Components.Connection,System.Boolean})">
      <summary>
            Note: This function generates garbage and might be a bit too heavy to be used once per frame.
            </summary>
    </member>
    <member name="M:Barotrauma.Item.GetConnectedComponentsRecursive``1(Barotrauma.Items.Components.Connection,System.Boolean,System.Boolean)">
      <summary>
            Note: This function generates garbage and might be a bit too heavy to be used once per frame.
            </summary>
    </member>
    <member name="M:Barotrauma.Item.Drop(Barotrauma.Character,System.Boolean,System.Boolean)">
      <summary></summary>
      <param name="dropper">Character who dropped the item</param>
      <param name="createNetworkEvent">Should clients be notified of the item being dropped</param>
      <param name="setTransform">Should the transform of the physics body be updated. Only disable this if you're moving the item somewhere else / calling SetTransform manually immediately after dropping!</param>
    </member>
    <member name="M:Barotrauma.Item.Load(Barotrauma.ContentXElement,Barotrauma.Submarine,System.Boolean,Barotrauma.IdRemap)">
      <summary>
            Instantiate a new item and load its data from the XML element.
            </summary>
      <param name="element">The element containing the data of the item</param>
      <param name="submarine">The submarine to spawn the item in (can be null)</param>
      <param name="createNetworkEvent">Should an EntitySpawner event be created to notify clients about the item being created.</param>
      <returns></returns>
    </member>
    <member name="M:Barotrauma.Item.ShallowRemove">
      <summary>
            Remove the item so that it doesn't appear to exist in the game world (stop sounds, remove bodies etc)
            but don't reset anything that's required for cloning the item
            </summary>
    </member>
    <member name="F:Barotrauma.Level.OutsideBoundsCurrentMargin">
      <summary>
            How far outside the boundaries of the level the water current that pushes subs towards the level starts
            </summary>
    </member>
    <member name="F:Barotrauma.Level.OutsideBoundsCurrentMarginExponential">
      <summary>
            How far outside the boundaries of the level the strength of the current starts to increase exponentially
            </summary>
    </member>
    <member name="F:Barotrauma.Level.OutsideBoundsCurrentHardLimit">
      <summary>
            How far outside the boundaries of the level the current stops submarines entirely
            </summary>
    </member>
    <member name="F:Barotrauma.Level.MaxSubmarineWidth">
      <summary>
            The level generator won't try to adjust the width of the main path above this limit.
            </summary>
    </member>
    <member name="P:Barotrauma.Level.CrushDepth">
      <summary>
            The crush depth of a non-upgraded submarine in in-game coordinates. Note that this can be above the top of the level!
            </summary>
    </member>
    <member name="P:Barotrauma.Level.RealWorldCrushDepth">
      <summary>
            The crush depth of a non-upgraded submarine in "real world units" (meters from the surface of Europa). Note that this can be above the top of the level!
            </summary>
    </member>
    <member name="T:Barotrauma.Level.LevelGenStage">
      <summary>
            Random integers generated during the level generation. If these values differ between clients/server,
            it means the levels aren't identical for some reason and there will most likely be major ID mismatches.
            </summary>
    </member>
    <member name="P:Barotrauma.Level.IsLoadedOutpost">
      <summary>
            Is there a loaded level set and is it an outpost?
            </summary>
    </member>
    <member name="P:Barotrauma.Level.IsLoadedFriendlyOutpost">
      <summary>
            Is there a loaded level set, and is it a friendly outpost (FriendlyNPC or Team1). Does not take reputation into account.
            </summary>
    </member>
    <member name="P:Barotrauma.Level.ClusterLocation.Resources">
      <summary>
            Can be null unless initialized in constructor
            </summary>
    </member>
    <member name="M:Barotrauma.Level.ClusterLocation.#ctor(Voronoi2.VoronoiCell,Voronoi2.GraphEdge,System.Boolean)">
      <param name="initializeResourceList">List is initialized only when specified, otherwise will be null</param>
    </member>
    <member name="M:Barotrauma.Level.GenerateMissionResources(Barotrauma.ItemPrefab,System.Int32,Barotrauma.Level.PositionType,System.Single@,System.Collections.Generic.IEnumerable{Barotrauma.Level.Cave})">
      <param name="rotation">Used by clients to set the rotation for the resources</param>
    </member>
    <member name="M:Barotrauma.Level.GetRealWorldDepth(System.Single)">
      <summary>
            Calculate the "real" depth in meters from the surface of Europa
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.Client.ResetVotes(System.Boolean)">
      <summary>
            Reset what this client has voted for and the kick votes given to this client
            </summary>
    </member>
    <member name="F:Barotrauma.Networking.Client.SessionId">
      <summary>
            An ID for this client for the current session.
            THIS IS NOT A PERSISTENT VALUE. DO NOT STORE THIS LONG-TERM.
            IT CANNOT BE USED TO IDENTIFY PLAYERS ACROSS SESSIONS.
            </summary>
    </member>
    <member name="P:Barotrauma.Networking.Client.AccountId">
      <summary>
            The ID of the account used to authenticate this session.
            This value can be used as a persistent value to identify
            players in the banlist and campaign saves.
            </summary>
    </member>
    <member name="F:Barotrauma.Networking.Client.UsingFreeCam">
      <summary>
            Is the client using the 'freecam' console command?
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.ChatMessage.GetGarbleAmount(Barotrauma.Entity,Barotrauma.Entity,System.Single,System.Single)">
      <summary>
            How much messages sent by <paramref name="sender" /> should get garbled. Takes the distance between the entities and optionally the obstructions between them into account (see <paramref name="obstructionMultiplier" />).
            </summary>
      <param name="obstructionMultiplier">Values greater than or equal to 1 cause the message to get garbled more heavily when there's some obstruction between the characters. Values smaller than 1 mean the garbling only depends on distance.</param>
    </member>
    <member name="F:Barotrauma.Networking.GameServer.pendingMessagesToOwner">
      <summary>
            Chat messages that get sent to the owner of the server when the owner is determined
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.GameServer.AddPendingMessageToOwner(System.String,Barotrauma.Networking.ChatMessageType)">
      <summary>
            Creates a message that gets sent to the server owner once the connection is initialized. Can be used to for example notify the owner of problems during initialization
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.GameServer.ClientWriteInitial(Barotrauma.Networking.Client,Barotrauma.Networking.IWriteMessage)">
      <summary>
            Write info that the client needs when joining the server
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.GameServer.SendChatMessage(System.String,System.Nullable{Barotrauma.Networking.ChatMessageType},Barotrauma.Networking.Client,Barotrauma.Character,Barotrauma.Networking.PlayerConnectionChangeType,Barotrauma.ChatMode)">
      <summary>
            Add the message to the chatbox and pass it to all clients who can receive it
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.ServerEntityEventManager.Write(Barotrauma.Networking.SegmentTableWriter{Barotrauma.Networking.ServerNetSegment}@,Barotrauma.Networking.Client,Barotrauma.Networking.IWriteMessage)">
      <summary>
            Writes all the events that the client hasn't received yet into the outgoing message
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.ServerEntityEventManager.Write(Barotrauma.Networking.SegmentTableWriter{Barotrauma.Networking.ServerNetSegment}@,Barotrauma.Networking.Client,Barotrauma.Networking.IWriteMessage,System.Collections.Generic.List{Barotrauma.Networking.NetEntityEvent}@)">
      <summary>
            Writes all the events that the client hasn't received yet into the outgoing message
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.ServerEntityEventManager.GetEventsToSync(Barotrauma.Networking.Client)">
      <summary>
            Returns a list of events that should be sent to the client from the eventList 
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.ServerEntityEventManager.Read(Barotrauma.Networking.IReadMessage,Barotrauma.Networking.Client)">
      <summary>
            Read the events from the message, ignoring ones we've already received
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.NetworkMember.IsCompatible(System.Version,System.Version)">
      <summary>
            Check if the two version are compatible (= if they can play together in multiplayer).
            </summary>
    </member>
    <member name="P:Barotrauma.Networking.OrderChatMessage.WallSectionIndex">
      <summary>
            Used when the order targets a wall
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.OrderChatMessage.#ctor(Barotrauma.Order,Barotrauma.Character,Barotrauma.Character,System.Boolean)">
      <summary>
            Same as calling <see cref="!:OrderChatMessage.OrderChatMessage(Order, string, int, string, ISpatialEntity, Character, Character)" />,
            but the text parameter is set using <see cref="!:Order.GetChatMessage(string, string, bool, string)" /></summary>
    </member>
    <member name="F:Barotrauma.Networking.RespawnManager.SkillReductionOnDeath">
      <summary>
            How much skills drop towards the job's default skill levels when dying
            </summary>
    </member>
    <member name="P:Barotrauma.Networking.RespawnManager.RespawnTime">
      <summary>
            When will the shuttle be dispatched with respawned characters
            </summary>
    </member>
    <member name="P:Barotrauma.Networking.RespawnManager.ReturnTime">
      <summary>
            When will the sub start heading back out of the level
            </summary>
    </member>
    <member name="F:Barotrauma.Networking.ServerSettings.ServerDetailsChanged">
      <summary>
            Have some of the properties listed in the server list changed
            </summary>
    </member>
    <member name="P:Barotrauma.Networking.ServerSettings.AllowedClientNameChars">
      <summary>
            A list of int pairs that represent the ranges of UTF-16 codes allowed in client names
            </summary>
    </member>
    <member name="T:Barotrauma.Networking.IClientSerializable">
      <summary>
            Interface for entities that the clients can send events to the server
            </summary>
    </member>
    <member name="T:Barotrauma.Networking.IServerSerializable">
      <summary>
            Interface for entities that the server can send events to the clients
            </summary>
    </member>
    <member name="T:Barotrauma.Networking.IServerPositionSync">
      <summary>
            Interface for entities that handle ServerNetObject.ENTITY_POSITION
            </summary>
    </member>
    <member name="F:Barotrauma.Networking.NetConfig.RoundStartSyncDuration">
      <summary>
            How long the server waits for the clients to get in sync after the round has started before kicking them
            </summary>
    </member>
    <member name="F:Barotrauma.Networking.NetConfig.EventRemovalTime">
      <summary>
            How long the server keeps events that everyone currently synced has received
            </summary>
    </member>
    <member name="F:Barotrauma.Networking.NetConfig.OldReceivedEventKickTime">
      <summary>
            If a client hasn't received an event that has been succesfully sent to someone within this time, they get kicked
            </summary>
    </member>
    <member name="F:Barotrauma.Networking.NetConfig.OldEventKickTime">
      <summary>
            If a client hasn't received an event after this time, they get kicked
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.NetConfig.InterpolateSimPositionError(Microsoft.Xna.Framework.Vector2,System.Nullable{System.Single})">
      <summary>
            Interpolates the positional error of a physics body towards zero.
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.NetConfig.InterpolateRotationError(System.Single)">
      <summary>
            Interpolates the rotational error of a physics body towards zero.
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.NetConfig.InterpolateCursorPositionError(Microsoft.Xna.Framework.Vector2)">
      <summary>
            Interpolates the cursor position error towards zero.
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.NetEntityEventManager.Write(Barotrauma.Networking.IWriteMessage,System.Collections.Generic.List{Barotrauma.Networking.NetEntityEvent},System.Collections.Generic.List{Barotrauma.Networking.NetEntityEvent}@,Barotrauma.Networking.Client)">
      <summary>
            Write the events to the outgoing message. The recipient parameter is only needed for ServerEntityEventManager
            </summary>
    </member>
    <member name="T:Barotrauma.Networking.NetIdUtils">
      <summary>
            Helper class for dealing with 16-bit IDs that wrap around ushort.MaxValue
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.NetIdUtils.IdMoreRecent(System.UInt16,System.UInt16)">
      <summary>
            Is newID more recent than oldID, i.e. newId &gt; oldId accounting for ushort rollover
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.NetIdUtils.IdMoreRecentOrMatches(System.UInt16,System.UInt16)">
      <summary>
            newId &gt;= oldId accounting for ushort rollover (newer or equals)
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.NetIdUtils.GetIdOlderThan(System.UInt16)">
      <summary>
            Returns some ID that is older than the input ID. There are no guarantees
            regarding its relation to values other than the input.
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.NetIdUtils.IsValidId(System.UInt16,System.UInt16,System.UInt16)">
      <summary>
            Is the current ID valid given the previous ID and latest possible ID (not smaller than the previous ID or larger than the latest ID)
            </summary>
    </member>
    <member name="F:Barotrauma.Networking.SteamId.steam64Prefix">
             Based on information found here: https://developer.valvesoftware.com/wiki/SteamID
             ------------------------------------------------------------------------------------
             A SteamID is a 64-bit value (16 hexadecimal digits) that's broken up as follows:
            
                                | a  | b |   c   |    d     |
             Most significant - | 01 | 1 | 00001 | 0546779D | - Least significant
            
             a) 8 bits representing the universe the account belongs to.
             b) 4 bits representing the type of account. Typically 1.
             c) 20 bits representing the instance of the account. Typically 1.
             d) 32 bits representing the account number.
            
             The account number is additionally broken up as follows:
            
                                |                e                | f |
             Most significant - | 0000010101000110011101111001110 | 1 | - Least significant
            
             e) These are the 31 most significant bits of the account number.
             f) This is the least significant bit of the account number, discriminated under the name Y for some reason.
            
             Barotrauma supports two textual representations of SteamIDs:
             1. STEAM40: Given this name as it represents 40 of the 64 bits in the ID. The account type and instance both
                         have an implied value of 1. The format is "STEAM_{universe}:{Y}:{restOfAccountNumber}".
             2. STEAM64: If STEAM40 does not suffice to represent an ID (i.e. the account type or instance were different
                         from 1), we use "STEAM64_{fullId}" where fullId is the 64-bit decimal representation of the full
                         ID.
        </member>
    <member name="F:Barotrauma.Networking.AccountInfo.AccountId">
      <summary>
            The primary ID for a given user
            </summary>
    </member>
    <member name="F:Barotrauma.Networking.AccountInfo.OtherMatchingIds">
      <summary>
            Other user IDs that this user might be closely tied to,
            such as the owner of the current copy of Barotrauma
            </summary>
    </member>
    <member name="T:Barotrauma.Networking.SingleUIntUnion">
      <summary>
            Utility struct for writing Singles
            </summary>
    </member>
    <member name="F:Barotrauma.Networking.SingleUIntUnion.SingleValue">
      <summary>
            Value as a 32 bit float
            </summary>
    </member>
    <member name="F:Barotrauma.Networking.SingleUIntUnion.UIntValue">
      <summary>
            Value as an unsigned 32 bit integer
            </summary>
    </member>
    <member name="M:Barotrauma.Networking.PeerDisconnectPacket.ToLidgrenStringRepresentation">
      <summary>
            This exists because Lidgren is a piece of shit and
            doesn't readily support sending anything other than
            a string through a disconnect packet, so this thing
            needs a sufficiently nasty string representation that
            can be decoded with some certainty that it won't get
            mangled by user input.
            </summary>
    </member>
    <member name="M:Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.UpdateFireSources">
      <summary>
            Update which branches are currently in range of fires
            </summary>
    </member>
    <member name="M:Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.CreateBody(Barotrauma.MapCreatures.Behavior.BallastFloraBranch)">
      <summary>
            Create a body for a branch which works as the hitbox for flamer
            </summary>
      <param name="branch"></param>
    </member>
    <member name="F:Barotrauma.MapCreatures.Behavior.BallastFloraBranch.IsRootGrowth">
      <summary>
            Decorative branches that grow around the root
            </summary>
    </member>
    <member name="P:Barotrauma.MapCreatures.Behavior.BallastFloraBranch.BranchDepth">
      <summary>
            How far from the root this branch is
            </summary>
    </member>
    <member name="P:Barotrauma.Hull.OutpostModuleTags">
      <summary>
            Inherited flags from outpost generation.
            </summary>
    </member>
    <member name="M:Barotrauma.Hull.GetApproximateDistance(Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,Barotrauma.Hull,System.Single,System.Single)">
      <summary>
            Approximate distance from this hull to the target hull, moving through open gaps without passing through walls.
            Uses a greedy algo and may not use the most optimal path. Returns float.MaxValue if no path is found.
            </summary>
    </member>
    <member name="M:Barotrauma.Hull.FindHull(Microsoft.Xna.Framework.Vector2,Barotrauma.Hull,System.Boolean,System.Boolean)">
      <summary>
            Returns the hull which contains the point (or null if it isn't inside any)
            </summary>
      <param name="position">The position to check</param>
      <param name="guess">This hull is checked first: if the current hull is known, this can be used as an optimization</param>
      <param name="useWorldCoordinates">Should world coordinates or the sub's local coordinates be used?</param>
      <param name="inclusive">Does being exactly at the edge of the hull count as being inside?</param>
    </member>
    <member name="M:Barotrauma.Hull.FindHullUnoptimized(Microsoft.Xna.Framework.Vector2,Barotrauma.Hull,System.Boolean,System.Boolean)">
      <summary>
            Returns the hull which contains the point (or null if it isn't inside any). The difference to FindHull is that this method goes through all hulls without trying
            to first find the sub the point is inside and checking the hulls in that sub. 
            = This is slower, use with caution in situations where the sub's extents or hulls may have changed after it was loaded.
            </summary>
    </member>
    <member name="M:Barotrauma.Hull.IsTaggedAirlock">
      <summary>
            Is this hull or any of the items inside it tagged as "airlock"?
            </summary>
    </member>
    <member name="M:Barotrauma.Hull.LeadsOutside(Barotrauma.Character)">
      <summary>
            Does this hull have any doors leading outside?
            </summary>
      <param name="character">Used to check if this character has access to the door leading outside</param>
    </member>
    <member name="P:Barotrauma.Structure.DefaultRect">
      <summary>
            Unscaled rect
            </summary>
    </member>
    <member name="P:Barotrauma.Structure.BodyRotation">
      <summary>
            In radians, takes flipping into account
            </summary>
    </member>
    <member name="P:Barotrauma.Structure.BodyOffset">
      <summary>
            Offset of the physics body from the center of the structure. Takes flipping into account.
            </summary>
    </member>
    <member name="M:Barotrauma.Structure.GetAttachTarget(Microsoft.Xna.Framework.Vector2)">
      <summary>
            Checks if there's a structure items can be attached to at the given position and returns it.
            </summary>
    </member>
    <member name="M:Barotrauma.Structure.SectionIsLeaking(System.Int32)">
      <summary>
            Sections that are leaking have a gap placed on them
            </summary>
    </member>
    <member name="P:Barotrauma.Submarine.Borders">
      <summary>
            Extents of the solid items/structures (ones with a physics body) and hulls
            </summary>
    </member>
    <member name="P:Barotrauma.Submarine.VisibleBorders">
      <summary>
            Extents of all the visible items/structures/hulls (including ones without a physics body)
            </summary>
    </member>
    <member name="P:Barotrauma.Submarine.RealWorldDepth">
      <summary>
            How deep down the sub is from the surface of Europa in meters (affected by level type, does not correspond to "actual" coordinate systems)
            </summary>
    </member>
    <member name="M:Barotrauma.Submarine.CreateTurretAI">
      <summary>
            Creates an AI that operates all the turrets on a sub, same as Thalamus but only operates the turrets.
            </summary>
    </member>
    <member name="M:Barotrauma.Submarine.GetDockedBorders">
      <summary>
            Returns a rect that contains the borders of this sub and all subs docked to it, excluding outposts
            </summary>
    </member>
    <member name="F:Barotrauma.Submarine.connectedSubs">
      <summary>
            Don't use this directly, because the list is updated only when GetConnectedSubs() is called. The method is called so frequently that we don't want to create new list here.
            </summary>
    </member>
    <member name="M:Barotrauma.Submarine.GetConnectedSubs">
      <summary>
            Returns a list of all submarines that are connected to this one via docking ports, including this sub.
            </summary>
    </member>
    <member name="M:Barotrauma.Submarine.FindSpawnPos(Microsoft.Xna.Framework.Vector2,System.Nullable{Microsoft.Xna.Framework.Point},System.Single,System.Int32)">
      <summary>
            Attempt to find a spawn position close to the specified position where the sub doesn't collide with walls/ruins
            </summary>
    </member>
    <member name="M:Barotrauma.Submarine.PickBodies(Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,System.Collections.Generic.IEnumerable{FarseerPhysics.Dynamics.Body},System.Nullable{FarseerPhysics.Dynamics.Category},System.Boolean,System.Predicate{FarseerPhysics.Dynamics.Fixture},System.Boolean)">
      <summary>
            Returns a list of physics bodies the ray intersects with, sorted according to distance (the closest body is at the beginning of the list).
            </summary>
      <param name="customPredicate">Can be used to filter the bodies based on some condition. If the predicate returns false, the body isignored.</param>
      <param name="allowInsideFixture">Should fixtures that the start of the ray is inside be returned</param>
    </member>
    <member name="M:Barotrauma.Submarine.CheckVisibility(Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean)">
      <summary>
            check visibility between two points (in sim units)
            </summary>
      <returns>a physics body that was between the points (or null)</returns>
    </member>
    <member name="M:Barotrauma.Submarine.FindClosest(Microsoft.Xna.Framework.Vector2,System.Boolean,System.Boolean,System.Boolean,System.Nullable{Barotrauma.CharacterTeamType})">
      <param name="teamType">If has value, the sub must match the team type.</param>
    </member>
    <member name="M:Barotrauma.Submarine.IsConnectedTo(Barotrauma.Submarine)">
      <summary>
            Returns true if the sub is same as the other.
            </summary>
    </member>
    <member name="M:Barotrauma.Submarine.FindContaining(Microsoft.Xna.Framework.Vector2)">
      <summary>
            Finds the sub whose borders contain the position
            </summary>
    </member>
    <member name="M:Barotrauma.Submarine.DisableObstructedWayPoints">
      <summary>
            Permanently disables obstructed waypoints obstructed by the level.
            </summary>
    </member>
    <member name="M:Barotrauma.Submarine.DisableObstructedWayPoints(Barotrauma.Submarine)">
      <summary>
            Temporarily disables waypoints obstructed by the other sub.
            </summary>
    </member>
    <member name="M:Barotrauma.Submarine.EnableObstructedWaypoints(Barotrauma.Submarine)">
      <summary>
            Only affects temporarily disabled waypoints.
            </summary>
    </member>
    <member name="M:Barotrauma.EntitySpawner.IsInSpawnQueue(System.Predicate{Barotrauma.EntitySpawner.IEntitySpawnInfo})">
      <summary>
            Are there any entities in the spawn queue that match the given predicate
            </summary>
    </member>
    <member name="M:Barotrauma.EntitySpawner.CountSpawnQueue(System.Predicate{Barotrauma.EntitySpawner.IEntitySpawnInfo})">
      <summary>
            How many entities in the spawn queue match the given predicate
            </summary>
    </member>
    <member name="P:Barotrauma.PhysicsBody.TransformedRotation">
      <summary>
            Takes flipping (Dir) into account.
            </summary>
    </member>
    <member name="P:Barotrauma.PhysicsBody.SuppressSmoothRotationCalls">
      <summary>
            Ignore rotation calls for the rest of this and the next update. Automatically disabled after that. Used for temporarily suppressing the SmoothRotate calls to prevent conflicting or unitentionally amplified rotations.
            </summary>
    </member>
    <member name="M:Barotrauma.PhysicsBody.GetLocalFront(System.Nullable{System.Single})">
      <summary>
            Returns the farthest point towards the forward of the body.
            For capsules and circles, the front is at the top.
            For horizontal capsules, the front is at the right-most point.
            For rectangles, the front is either at the top or at the right, depending on which one of the two is greater: width or height.
            The rotation is in radians.
            </summary>
    </member>
    <member name="M:Barotrauma.PhysicsBody.ApplyLinearImpulse(Microsoft.Xna.Framework.Vector2,System.Single)">
      <summary>
            Apply an impulse to the body without increasing it's velocity above a specific limit.
            </summary>
    </member>
    <member name="M:Barotrauma.PhysicsBody.ApplyLinearImpulse(Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,System.Single)">
      <summary>
            Apply an impulse to the body without increasing it's velocity above a specific limit.
            </summary>
    </member>
    <member name="M:Barotrauma.PhysicsBody.ApplyWaterForces">
      <summary>
            Applies buoyancy, drag and angular drag caused by water
            </summary>
    </member>
    <member name="M:Barotrauma.PhysicsBody.SmoothRotate(System.Single,System.Single,System.Boolean)">
      <summary>
            Rotate the body towards the target rotation in the "shortest direction", taking into account the current angular velocity to prevent overshooting.
            </summary>
      <param name="targetRotation">Desired rotation in radians</param>
      <param name="force">How fast the body should be rotated. Does not represent any real unit, you may want to experiment with different values to get the desired effect.</param>
      <param name="wrapAngle">Should the angles be wrapped. Set to false if it makes a difference whether the angle of the body is 0.0f or 360.0f.</param>
    </member>
    <member name="T:Barotrauma.Program">
      <summary>
            The main class.
            </summary>
    </member>
    <member name="M:Barotrauma.Program.Main(System.String[])">
      <summary>
            The main entry point for the application.
            </summary>
    </member>
    <member name="M:Barotrauma.Steam.SteamManager.Workshop.GetItem(System.UInt64)">
      <summary>
            Fetches a Workshop item's metadata. This is batched to minimize Steamworks API calls.
            The description of the returned item is truncated to save bandwidth.
            </summary>
      <param name="itemId">Workshop Item ID</param>
    </member>
    <member name="M:Barotrauma.Steam.SteamManager.Workshop.GetItemAsap(System.UInt64,System.Boolean)">
      <summary>
            Fetches a Workshop item's metadata in its own API call instead of batching.
            This minimizes delay but needs to be used with caution to prevent rate limiting.
            </summary>
      <param name="itemId">Workshop Item ID</param>
      <param name="withLongDescription">
            If true, ask for the item's entire description, otherwise it'll be truncated.
            </param>
    </member>
    <member name="T:Barotrauma.Steam.SteamManager.Workshop.CopyIndicator">
      <summary>
            This class creates a file called ".copying" that
            serves to keep mod copy operations in the same
            directory from overlapping.
            </summary>
    </member>
    <member name="T:Barotrauma.Steam.SteamManager.Workshop.InstallTaskCounter">
      <summary>
            This class serves the purpose of preventing
            more than 10 mod install tasks from proceeding
            at the same time.
            </summary>
    </member>
    <member name="P:Barotrauma.Traitor.TraitorMission.IsCompleted">
      <summary>
            Has the mission been completed (does not mean that the traitor necessarily won, the mission is considered completed if the traitor fails for whatever reason)
            </summary>
    </member>
    <member name="T:Barotrauma.DoSProtection.DoSAction">
      <summary>
            A struct that executes an action when it's created and another one when it's disposed.
            </summary>
    </member>
    <member name="F:Barotrauma.DoSProtection.OffenseData.Stopwatch">
      <summary>
            Timer that keeps track of how long it takes to process a packet.
            </summary>
    </member>
    <member name="F:Barotrauma.DoSProtection.OffenseData.Strikes">
      <summary>
            Amount of strikes the client has received for causing the server to slow down.
            </summary>
    </member>
    <member name="F:Barotrauma.DoSProtection.OffenseData.PacketCount">
      <summary>
            How many packets have been sent in the last minute.
            </summary>
    </member>
    <member name="M:Barotrauma.DoSProtection.OffenseData.ResetStrikes">
      <summary>
            Resets the strikes and packet count.
            </summary>
    </member>
    <member name="M:Barotrauma.DoSProtection.OffenseData.ResetTimer">
      <summary>
            Resets the timer.
            </summary>
    </member>
    <member name="M:Barotrauma.DoSProtection.Start(Barotrauma.Networking.Client)">
      <summary>
             Called when the server receives a packet to start logging how much time it takes to process.
             </summary>
      <param name="client">The client to start a timer for.</param>
      <returns>Nothing useful. Required for the "using" keyword.</returns>
      <remarks>
             Calling stop is not required, the timer will be stopped automatically when the function it was started in returns.
             </remarks>
      <example>
        <code>
             public void ServerRead(IReadMessage msg, Client c)
             {
                 // start the timer
                 using var _ = dosProtection.Start(connectedClient);
             
                 if (condition)
                 {
                     // the timer will be stopped here.
                     return;
                 }
            
                 ProcessMessage(msg);
                 // the timer will be stopped here.
             }
             </code>
      </example>
    </member>
    <member name="M:Barotrauma.DoSProtection.Pause(Barotrauma.Networking.Client)">
      <summary>
            Temporary pauses the timer for the client.
            Used when we know a packet is going to slow down the server but we don't want to count it as a strike.
            For example when a client is starting a round.
            </summary>
      <param name="client">The client to pause the timer for.</param>
      <returns>Nothing useful. Required for the "using" keyword.</returns>
      <remarks>
            Calling resume is not required, the timer will be resumed automatically when the using block ends.
            </remarks>
      <example>
        <code>
            using (dos.Pause(client))
            {
                // do something that will slow down the server
            }
            // the timer will be resumed here
            </code>
      </example>
    </member>
    <member name="F:Barotrauma.AIChatMessage.Identifier">
      <summary>
            An arbitrary identifier that can be used to determine what kind of a message this is 
            and prevent characters from saying the same kind of line too often.
            </summary>
    </member>
    <member name="M:Barotrauma.AIController.HasValidPath(System.Boolean,System.Boolean,System.Func{Barotrauma.WayPoint,System.Boolean})">
      <summary>
            Is the current path valid, using the provided parameters.
            </summary>
      <param name="requireNonDirty"></param>
      <param name="requireUnfinished"></param>
      <param name="nodePredicate"></param>
      <returns>When <paramref name="nodePredicate" /> is defined, returns false if any of the nodes fails to match the predicate.</returns>
    </member>
    <member name="P:Barotrauma.AITarget.FadeOutTime">
      <summary>
            How long does it take for the ai target to fade out if not kept alive.
            </summary>
    </member>
    <member name="P:Barotrauma.AITarget.InDetectable">
      <summary>
            Should be reset to false each frame and kept indetectable by e.g. a status effect.
            </summary>
    </member>
    <member name="P:Barotrauma.AITarget.NeedsUpdate">
      <summary>
            Does the AI target do something that requires Update() to be called (e.g. static targets don't need to be updated)
            </summary>
    </member>
    <member name="F:Barotrauma.EnemyAIController.TargetOutposts">
      <summary>
            Enable the character to attack the outposts and the characters inside them. Disabled by default in normal levels, enabled in outpost levels.
            </summary>
    </member>
    <member name="P:Barotrauma.EnemyAIController.UnattackableSubmarines">
      <summary>
            The monster won't try to damage these submarines
            </summary>
    </member>
    <member name="F:Barotrauma.EnemyAIController.stateResetCooldown">
      <summary>
            How long do we hold on to the current state after losing a target before we reset back to the original state.
            In other words, how long do we have to idle before the original state is restored.
            </summary>
    </member>
    <member name="M:Barotrauma.EnemyAIController.TryResetOriginalState(Barotrauma.Identifier)">
      <summary>
            Resets the target's state to the original value defined in the xml.
            </summary>
    </member>
    <member name="M:Barotrauma.EnemyAIController.ChangeTargetState(Barotrauma.Character,Barotrauma.AIState,System.Nullable{System.Single})">
      <summary>
            Temporarily changes the predefined state for a target. Eg. Idle -&gt; Attack.
            Note: does not change the current AIState!
            </summary>
    </member>
    <member name="F:Barotrauma.HumanAIController.AutoFaceMovement">
      <summary>
            Resets each frame
            </summary>
    </member>
    <member name="P:Barotrauma.HumanAIController.ReportRange">
      <summary>
            How far other characters can hear reports done by this character (e.g. reports for fires, intruders). Defaults to infinity.
            </summary>
    </member>
    <member name="F:Barotrauma.HumanAIController.previousAttackResults">
      <summary>
            List of previous attacks done to this character
            </summary>
    </member>
    <member name="P:Barotrauma.HumanAIController.UseOutsideWaypoints">
      <summary>
            Waypoints that are not linked to a sub (e.g. main path).
            </summary>
    </member>
    <member name="M:Barotrauma.HumanAIController.HullSafety.Update(System.Single)">
      <summary>
            Returns true when the safety is stale
            </summary>
    </member>
    <member name="F:Barotrauma.HumanAIController.RefuseDraggingThresholdHigh">
      <summary>
            The bot breaks free if being dragged by a human player from another team for longer than this
            </summary>
    </member>
    <member name="F:Barotrauma.HumanAIController.RefuseDraggingThresholdLow">
      <summary>
            If the RefuseDraggingDuration is active (the bot recently broke free of being dragged), the bot breaks free much faster
            </summary>
    </member>
    <member name="M:Barotrauma.HumanAIController.HasDivingSuit(Barotrauma.Character,System.Single,System.Boolean)">
      <summary>
            Check whether the character has a diving suit in usable condition plus some oxygen.
            </summary>
    </member>
    <member name="M:Barotrauma.HumanAIController.HasDivingMask(Barotrauma.Character,System.Single,System.Boolean)">
      <summary>
            Check whether the character has a diving mask in usable condition plus some oxygen.
            </summary>
    </member>
    <member name="M:Barotrauma.HumanAIController.HasItem(Barotrauma.Character,Barotrauma.Identifier,System.Collections.Generic.IEnumerable{Barotrauma.Item}@,Barotrauma.Identifier,System.Single,System.Boolean,System.Boolean,System.Func{Barotrauma.Item,System.Boolean})">
      <summary>
            Note: uses a single list for matching items. The item is reused each time when the method is called. So if you use the method twice, and then refer to the first items, you'll actually get the second. 
            To solve this, create a copy of the collection or change the code so that you first handle the first items and only after that query for the next items.
            </summary>
    </member>
    <member name="M:Barotrauma.HumanAIController.PropagateHullSafety(Barotrauma.Character,Barotrauma.Hull)">
      <summary>
            Updates the hull safety for all ai characters in the team. The idea is that the crew communicates (magically) via radio about the threads.
            The safety levels need to be calculated for each bot individually, because the formula takes into account things like current orders.
            There's now a cached value per each hull, which should prevent too frequent calculations.
            </summary>
    </member>
    <member name="M:Barotrauma.HumanAIController.IsTrueForAnyCrewMember(System.Func{Barotrauma.Character,System.Boolean},System.Boolean,System.Boolean)">
      <summary>
            Including the player characters in the same team.
            </summary>
    </member>
    <member name="P:Barotrauma.IndoorsSteeringManager.InStairs">
      <summary>
            Returns true if any node in the path is in stairs
            </summary>
    </member>
    <member name="M:Barotrauma.IndoorsSteeringManager.GetNextLadder">
      <summary>
            Seeks the ladder from the next and next + 1 nodes.
            </summary>
    </member>
    <member name="P:Barotrauma.AIObjective.AllowMultipleInstances">
      <summary>
            Can there be multiple objective instaces of the same type?
            </summary>
    </member>
    <member name="P:Barotrauma.AIObjective.ConcurrentObjectives">
      <summary>
            Run the main objective with all subobjectives concurrently?
            If false, the main objective will continue only when all the subobjectives have been removed (done).
            </summary>
    </member>
    <member name="P:Barotrauma.AIObjective.AllowAutomaticItemUnequipping">
      <summary>
            There's a separate property for diving suit and mask: KeepDivingGearOn.
            </summary>
    </member>
    <member name="P:Barotrauma.AIObjective.Priority">
      <summary>
            Final priority value after all calculations.
            </summary>
    </member>
    <member name="P:Barotrauma.AIObjective.IsLoop">
      <summary>
            When true, the objective is never completed, unless CanBeCompleted returns false.
            </summary>
    </member>
    <member name="F:Barotrauma.AIObjective.AbortCondition">
      <summary>
            Aborts the objective when this condition is true.
            </summary>
    </member>
    <member name="E:Barotrauma.AIObjective.Completed">
      <summary>
            A single shot event. Automatically cleared after launching. Use OnCompleted method for implementing (internal) persistent behavior.
            </summary>
    </member>
    <member name="E:Barotrauma.AIObjective.Abandoned">
      <summary>
            A single shot event. Automatically cleared after launching. Use OnAbandoned method for implementing (internal) persistent behavior.
            </summary>
    </member>
    <member name="E:Barotrauma.AIObjective.Selected">
      <summary>
            A single shot event. Automatically cleared after launching. Use OnSelected method for implementing (internal) persistent behavior.
            </summary>
    </member>
    <member name="E:Barotrauma.AIObjective.Deselected">
      <summary>
            A single shot event. Automatically cleared after launching. Use OnDeselected method for implementing (internal) persistent behavior.
            </summary>
    </member>
    <member name="M:Barotrauma.AIObjective.TryComplete(System.Single)">
      <summary>
            Makes the character act according to the objective, or according to any subobjectives that need to be completed before this one
            </summary>
    </member>
    <member name="M:Barotrauma.AIObjective.AddSubObjectiveInQueue(Barotrauma.AIObjective)">
      <summary>
            This method allows multiple subobjectives of same type. Use with caution.
            </summary>
    </member>
    <member name="M:Barotrauma.AIObjective.CalculatePriority">
      <summary>
            Call this only when the priority needs to be recalculated. Use the cached Priority property when you don't need to recalculate.
            </summary>
    </member>
    <member name="M:Barotrauma.AIObjective.SyncRemovedObjectives``2(System.Collections.Generic.Dictionary{``0,``1},System.Collections.Generic.IEnumerable{``0})">
      <summary>
            Checks if the subobjectives in the given collection are removed from the subobjectives. And if so, removes it also from the dictionary.
            </summary>
    </member>
    <member name="M:Barotrauma.AIObjective.TryAddSubObjective``1(``0@,System.Func{``0},System.Action,System.Action)">
      <summary>
            Checks if the objective already is created and added in subobjectives. If not, creates it.
            Handles objectives that cannot be completed. If the objective has been removed form the subobjectives, a null value is assigned to the reference.
            Returns true if the objective was created and successfully added.
            </summary>
    </member>
    <member name="F:Barotrauma.AIObjectiveCombat.holdFireCondition">
      <summary>
            Don't start using a weapon if this condition is true
            </summary>
    </member>
    <member name="M:Barotrauma.AIObjectiveCombat.SeekAmmunition(System.Collections.Immutable.ImmutableHashSet{Barotrauma.Identifier})">
      <summary>
            Seeks for more ammunition. Creates a new subobjective.
            </summary>
    </member>
    <member name="M:Barotrauma.AIObjectiveCombat.Reload(System.Boolean)">
      <summary>
            Reloads the ammunition found in the inventory.
            If seekAmmo is true, tries to get find the ammo elsewhere.
            </summary>
    </member>
    <member name="P:Barotrauma.AIObjectiveContainItem.RemoveExistingWhenNecessary">
      <summary>
            Only remove existing items when the contain target can't be put in the inventory
            </summary>
    </member>
    <member name="P:Barotrauma.AIObjectiveDecontainItem.DropIfFails">
      <summary>
            If true drops the item when containing the item fails.
            In both cases abandons the objective.
            Note that has no effect if the target container was not defined (always drops) -&gt; completes when the item is dropped.
            </summary>
    </member>
    <member name="M:Barotrauma.AIObjectiveExtinguishFires.GetFireSeverity(Barotrauma.Hull)">
      <summary>
            0-1 based on the horizontal size of all of the fires in the hull.
            </summary>
    </member>
    <member name="F:Barotrauma.AIObjectiveFindDivingGear.DIVING_GEAR_WEARABLE_INDOORS">
      <summary>
            Diving gear that's suitable for wearing indoors (-&gt; the bots don't try to unequip it when they don't need diving gear)
            </summary>
    </member>
    <member name="M:Barotrauma.AIObjectiveFindSafety.FindBestHull(Barotrauma.Hull@,System.Collections.Generic.IEnumerable{Barotrauma.Hull},System.Boolean)">
      <summary>
            Tries to find the best (safe, nearby) hull the character can find a path to.
            Checks one hull at a time, and returns HullSearchStatus.Finished when all potential hulls have been checked.
            </summary>
    </member>
    <member name="P:Barotrauma.AIObjectiveGetItem.AllowStealing">
      <summary>
            Is the character allowed to take the item from somewhere else than their own sub (e.g. an outpost)
            </summary>
    </member>
    <member name="P:Barotrauma.AIObjectiveGetItem.AllowVariants">
      <summary>
            Are variants of the specified item allowed
            </summary>
    </member>
    <member name="M:Barotrauma.AIObjectiveGetItem.FindItemToSpawn">
      <summary>
            Returns the "best" item to spawn when using <see cref="F:Barotrauma.AIObjectiveGetItem.spawnItemIfNotFound" /> and there's multiple suitable items.
            Best in this context is the one that's sold at the lowest price in stores (usually the most "basic" item)
            </summary>
      <returns></returns>
    </member>
    <member name="M:Barotrauma.AIObjectiveGetItem.ResetInternal">
      <summary>
            Does not reset the ignored items list
            </summary>
    </member>
    <member name="F:Barotrauma.AIObjectiveGoTo.requiredCondition">
      <summary>
            Doesn't allow the objective to complete if this condition is false
            </summary>
    </member>
    <member name="F:Barotrauma.AIObjectiveGoTo.SourceEventAction">
      <summary>
            Which event action created this objective (if any)
            </summary>
    </member>
    <member name="P:Barotrauma.AIObjectiveGoTo.CloseEnough">
      <summary>
            Display units
            </summary>
    </member>
    <member name="P:Barotrauma.AIObjectiveGoTo.UseDistanceRelativeToAimSourcePos">
      <summary>
            If true, the distance to the destination is calculated from the character's AimSourcePos (= shoulder) instead of the collider's position
            </summary>
    </member>
    <member name="M:Barotrauma.AIObjectiveLoop`1.GetList">
      <summary>
            List of all possible items of the specified type. Used for filtering the removed objectives.
            </summary>
    </member>
    <member name="P:Barotrauma.AIObjectiveManager.Objectives">
      <summary>
            Excluding the current order.
            </summary>
    </member>
    <member name="P:Barotrauma.AIObjectiveManager.WaitTimer">
      <summary>
            When set above zero, the character will stand still doing nothing until the timer runs out. Does not affect orders, find safety or combat.
            </summary>
    </member>
    <member name="P:Barotrauma.AIObjectiveManager.CurrentOrder">
      <summary>
            The AIObjective in <see cref="P:Barotrauma.AIObjectiveManager.CurrentOrders" /> with the highest <see cref="P:Barotrauma.AIObjective.Priority" /></summary>
    </member>
    <member name="M:Barotrauma.AIObjectiveManager.GetActiveObjectives``1">
      <summary>
            Returns all active objectives of the specific type. Creates a new collection -&gt; don't use too frequently.
            </summary>
    </member>
    <member name="F:Barotrauma.AIObjectiveOperateItem.EndNodeFilter">
      <summary>
            If undefined, a default filter will be used.
            </summary>
    </member>
    <member name="F:Barotrauma.AIObjectiveRepairItems.RelevantSkill">
      <summary>
            If set, only fix items where required skill matches this.
            </summary>
    </member>
    <member name="F:Barotrauma.OrderPrefab.ContextualName">
      <summary>
            Name that can be used with the contextual version of the order
            </summary>
    </member>
    <member name="F:Barotrauma.OrderPrefab.AppropriateJobs">
      <summary>
            If defined, the order can only be quick-assigned to characters with these jobs. Or if it's a report, the icon will only be displayed to characters with these jobs.
            </summary>
    </member>
    <member name="F:Barotrauma.OrderPrefab.CanBeGeneralized">
      <summary>
            Can the order be turned into a non-entity-targeting one if it was originally created with a target entity.
            Note: if MustSetTarget is true, CanBeGeneralized will always be false.
            </summary>
    </member>
    <member name="F:Barotrauma.OrderPrefab.PreferredJobs">
      <summary>
            If defined, the order will be quick-assigned to characters with these jobs before characters with other jobs.
            </summary>
    </member>
    <member name="P:Barotrauma.OrderPrefab.DrawIconWhenContained">
      <summary>
            Should the order icon be drawn when the order target is inside a container
            </summary>
    </member>
    <member name="P:Barotrauma.OrderPrefab.AssignmentPriority">
      <summary>
            Affects how high on the order list the order will be placed (i.e. the manual priority order when it's given) when it's first given.
            Manually rearranging orders will override this priority.
            </summary>
    </member>
    <member name="M:Barotrauma.OrderPrefab.GetTargetItemComponent(Barotrauma.Item)">
      <summary>
            Get the target item component based on the target item type
            </summary>
    </member>
    <member name="M:Barotrauma.OrderPrefab.GetMatchingItems(Barotrauma.Submarine,System.Boolean,System.Nullable{Barotrauma.CharacterTeamType},Barotrauma.Character,Barotrauma.Identifier)">
      <param name="interactableFor">Only returns items which are interactable for this character</param>
    </member>
    <member name="M:Barotrauma.OrderPrefab.GetMatchingItems(System.Boolean,Barotrauma.Character,Barotrauma.Identifier)">
      <param name="interactableFor">Only returns items which are interactable for this character</param>
    </member>
    <member name="M:Barotrauma.OrderPrefab.GetDismissOrderOption(Barotrauma.Order)">
      <summary>
            Used to create the order option for the Dismiss order to know which order it targets
            </summary>
      <param name="order">The order to target with the dismiss order</param>
    </member>
    <member name="M:Barotrauma.OrderPrefab.CreateInstance(Barotrauma.OrderPrefab.OrderTargetType,Barotrauma.Character,System.Boolean)">
      <summary>
            Create an Order instance with a null target
            </summary>
    </member>
    <member name="P:Barotrauma.Order.TargetSpatialEntity">
      <summary>
            Note this property doesn't return the follow target of the Follow objective, as expected!
            </summary>
    </member>
    <member name="M:Barotrauma.Order.#ctor(Barotrauma.OrderPrefab,Barotrauma.Entity,Barotrauma.Items.Components.ItemComponent,Barotrauma.Character,System.Boolean)">
      <summary>
            Constructor for orders with the target type OrderTargetType.Entity
            </summary>
    </member>
    <member name="M:Barotrauma.Order.#ctor(Barotrauma.OrderPrefab,Barotrauma.Identifier,Barotrauma.Entity,Barotrauma.Items.Components.ItemComponent,Barotrauma.Character,System.Boolean)">
      <summary>
            Constructor for orders with the target type OrderTargetType.Entity
            </summary>
    </member>
    <member name="M:Barotrauma.Order.#ctor(Barotrauma.OrderPrefab,Barotrauma.OrderTarget,Barotrauma.Character)">
      <summary>
            Constructor for orders with the target type OrderTargetType.Position
            </summary>
    </member>
    <member name="M:Barotrauma.Order.#ctor(Barotrauma.OrderPrefab,Barotrauma.Identifier,Barotrauma.OrderTarget,Barotrauma.Character)">
      <summary>
            Constructor for orders with the target type OrderTargetType.Position
            </summary>
    </member>
    <member name="M:Barotrauma.Order.#ctor(Barotrauma.OrderPrefab,Barotrauma.Structure,System.Nullable{System.Int32},Barotrauma.Character)">
      <summary>
            Constructor for orders with the target type OrderTargetType.WallSection
            </summary>
    </member>
    <member name="M:Barotrauma.Order.#ctor(Barotrauma.OrderPrefab,Barotrauma.Identifier,Barotrauma.Structure,System.Nullable{System.Int32},Barotrauma.Character)">
      <summary>
            Constructor for orders with the target type OrderTargetType.WallSection
            </summary>
    </member>
    <member name="M:Barotrauma.Order.#ctor(Barotrauma.OrderPrefab,Barotrauma.Identifier,System.Int32,Barotrauma.Order.OrderType,Barotrauma.AIObjective,Barotrauma.Entity,Barotrauma.Items.Components.ItemComponent,Barotrauma.Character,System.Boolean)">
      <summary>
            Constructor for orders with the target type OrderTargetType.Entity
            </summary>
    </member>
    <member name="M:Barotrauma.Order.#ctor(Barotrauma.OrderPrefab,Barotrauma.Identifier,System.Int32,Barotrauma.Order.OrderType,Barotrauma.AIObjective,Barotrauma.OrderTarget,Barotrauma.Character)">
      <summary>
            Constructor for orders with the target type OrderTargetType.Position
            </summary>
    </member>
    <member name="M:Barotrauma.Order.#ctor(Barotrauma.OrderPrefab,Barotrauma.Identifier,System.Int32,Barotrauma.Order.OrderType,Barotrauma.AIObjective,Barotrauma.Structure,System.Nullable{System.Int32},Barotrauma.Character)">
      <summary>
            Constructor for orders with the target type OrderTargetType.WallSection
            </summary>
    </member>
    <member name="M:Barotrauma.Order.GetTargetItemComponent(Barotrauma.Item)">
      <summary>
            Get the target item component based on the target item type
            </summary>
    </member>
    <member name="M:Barotrauma.Order.GetMatchingItems(Barotrauma.Submarine,System.Boolean,System.Nullable{Barotrauma.CharacterTeamType},Barotrauma.Character)">
      <param name="interactableFor">Only returns items which are interactable for this character</param>
    </member>
    <member name="M:Barotrauma.Order.GetMatchingItems(System.Boolean,Barotrauma.Character)">
      <param name="interactableFor">Only returns items which are interactable for this character</param>
    </member>
    <member name="M:Barotrauma.Order.GetDismissOrderOption(Barotrauma.Order)">
      <summary>
            Used to create the order option for the Dismiss order to know which order it targets
            </summary>
      <param name="orderInfo">The order to target with the dismiss order</param>
    </member>
    <member name="P:Barotrauma.AnimController.IsMovingFast">
      <summary>
            Note: Presupposes that the slow speed is lower than the high speed. Otherwise will give invalid results.
            </summary>
    </member>
    <member name="P:Barotrauma.AnimController.AllAnimParams">
      <summary>
            Note: creates a new list every time, because the params might have changed. If there is a need to access the property frequently, change the implementation to an array, where the slot is updated when the param is updated(?)
            Currently it's not simple to implement, since the properties are not implemented here, but in the derived classes. Would require to change the params virtual and to call the base property getter/setter or something.
            </summary>
    </member>
    <member name="F:Barotrauma.Ragdoll.MaxImpactDamage">
      <summary>
            Maximum damage per impact (0.1 = 10% of the character's maximum health)
            </summary>
    </member>
    <member name="P:Barotrauma.Ragdoll.ColliderHeightFromFloor">
      <summary>
            In sim units. Joint scale applied.
            </summary>
    </member>
    <member name="M:Barotrauma.Ragdoll.Recreate(Barotrauma.RagdollParams)">
      <summary>
            Call this to create the ragdoll from the RagdollParams.
            </summary>
    </member>
    <member name="M:Barotrauma.Ragdoll.SaveRagdoll(System.String)">
      <summary>
            Saves all serializable data in the currently selected ragdoll params. This method should properly handle character flipping.
            </summary>
    </member>
    <member name="M:Barotrauma.Ragdoll.ResetRagdoll(System.Boolean)">
      <summary>
            Resets the serializable data to the currently selected ragdoll params.
            Force reloading always loads the xml stored on the disk.
            </summary>
    </member>
    <member name="M:Barotrauma.Ragdoll.ResetJoints">
      <summary>
            Resets the current joint values to the serialized joint params.
            </summary>
    </member>
    <member name="M:Barotrauma.Ragdoll.ResetLimbs">
      <summary>
            Resets the current limb values to the serialized limb params.
            </summary>
    </member>
    <member name="M:Barotrauma.Ragdoll.MoveLimb(Barotrauma.Limb,Microsoft.Xna.Framework.Vector2,System.Single,System.Boolean)">
      <param name="pullFromCenter">if false, force is applied to the position of pullJoint</param>
    </member>
    <member name="F:Barotrauma.Ragdoll.bodyInRestTimer">
      <summary>
            How long has the ragdoll stayed motionless
            </summary>
    </member>
    <member name="M:Barotrauma.Ragdoll.GetSurfaceY">
      <summary>
            Get the position of the surface of water at the position of the character, in display units (taking into account connected hulls above the hull the character is in)
            </summary>
    </member>
    <member name="M:Barotrauma.Ragdoll.GetWaterSurfaceAndCeilingY">
      <summary>
            Get the position of the surface of water and the ceiling (= upper edge of the hull) at the position of the character, in display units (taking into account connected hulls above the hull the character is in).
            </summary>
    </member>
    <member name="M:Barotrauma.Ragdoll.GetLimb(Barotrauma.LimbType,System.Boolean)">
      <summary>
            Note that if there are multiple limbs of the same type, only the first (valid) limb is returned.
            </summary>
    </member>
    <member name="T:Barotrauma.Attack">
      <summary>
            Attacks are used to deal damage to characters, structures and items.
            They can be defined in the weapon components of the items or the limb definitions of the characters.
            The limb attacks can also be used by the player, when they control a monster or have some appendage, like a husk stinger.
            </summary>
    </member>
    <member name="P:Barotrauma.Attack.DamageMultiplier">
      <summary>
            Used for multiplying all the damage.
            </summary>
    </member>
    <member name="P:Barotrauma.Attack.RangeMultiplier">
      <summary>
            Used for multiplying all the ranges.
            </summary>
    </member>
    <member name="P:Barotrauma.Attack.ImpactMultiplier">
      <summary>
            Used for multiplying the physics forces.
            </summary>
    </member>
    <member name="P:Barotrauma.Attack.Conditionals">
      <summary>
            Only affects ai decision making. All the conditionals has to be met in order to select the attack. TODO: allow to define conditionals using any (implemented in StatusEffect -&gt; move from there to PropertyConditional?)
            </summary>
    </member>
    <member name="F:Barotrauma.Attack.statusEffects">
      <summary>
            StatusEffects to apply when the attack triggers.
            StatusEffect types of 'OnUse' are executed always, 'OnFailure' only when the attack doesn't deal damage and 'OnSuccess' executes when some damage is dealt.
            </summary>
    </member>
    <member name="F:Barotrauma.Affliction.Source">
      <summary>
            Which character gave this affliction
            </summary>
    </member>
    <member name="M:Barotrauma.Affliction.CopyProperties(Barotrauma.Affliction)">
      <summary>
            Copy properties here instead of using SerializableProperties (with reflection).
            </summary>
    </member>
    <member name="M:Barotrauma.Affliction.SetStrength(System.Single)">
      <summary>
            Use this method to skip clamping and additional logic of the setters.
            Ideally we would keep this private, but doing so would require too much refactoring.
            </summary>
    </member>
    <member name="T:Barotrauma.AfflictionBleeding">
      <summary>
            A special affliction type that increases the character's Bloodloss affliction with a rate relative to the strength of the bleeding.
            </summary>
    </member>
    <member name="T:Barotrauma.AfflictionHusk">
      <summary>
            A special affliction type that gradually makes the character turn into another type of character. 
            See <see cref="T:Barotrauma.AfflictionPrefabHusk" /> for more details.
            </summary>
    </member>
    <member name="T:Barotrauma.AfflictionPrefabHusk">
      <summary>
            AfflictionPrefabHusk is a special type of affliction that has added functionality for husk infection.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefabHusk.DormantThreshold">
      <summary>
            The minimum strength at which husk infection will be in the dormant stage.
            It must be less than or equal to ActiveThreshold.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefabHusk.ActiveThreshold">
      <summary>
            The minimum strength at which husk infection will be in the active stage.
            It must be greater than or equal to DormantThreshold and less than or equal to TransitionThreshold.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefabHusk.TransitionThreshold">
      <summary>
            The minimum strength at which husk infection will be in its final stage.
            It must be greater than or equal to ActiveThreshold.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefabHusk.TransformThresholdOnDeath">
      <summary>
            The minimum strength the affliction must have for the affected character
            to transform into a husk upon death.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefabHusk.HuskedSpeciesName">
      <summary>
            The species of husk to convert the affected character to
            once husk infection reaches its final stage.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefabHusk.TransferBuffs">
      <summary>
            If set to true, all buffs are transferred to the converted
            character after husk transformation is complete.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefabHusk.SendMessages">
      <summary>
            If set to true, the affected player will see on-screen messages describing husk infection symptoms
            and affected bots will speak about their current husk infection stage.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefabHusk.CauseSpeechImpediment">
      <summary>
            If set to true, affected characters will have their speech impeded once the affliction
            reaches the dormant stage.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefabHusk.NeedsAir">
      <summary>
            If set to false, affected characters will no longer require air
            once the affliction reaches the active stage.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefabHusk.ControlHusk">
      <summary>
            If set to true, affected players will retain control of their character
            after transforming into a husk.
            </summary>
    </member>
    <member name="T:Barotrauma.AfflictionPrefab">
      <summary>
            AfflictionPrefab is a prefab that defines a type of affliction that can be applied to a character.
            There are multiple sub-types of afflictions such as AfflictionPrefabHusk, AfflictionPsychosis and AfflictionBleeding that can be used for additional functionality.
            
            When defining a new affliction, the type will be determined by the element name.
            </summary>
      <example>
        <code language="xml">
          <Afflictions>
            <!-- Defines a regular affliction. -->
            <Affliction identifier="mycoolaffliction1" />
            <!-- Defines an AfflictionPrefabHusk affliction. -->
            <AfflictionPrefabHusk identifier="mycoolaffliction2" />
            <!-- Defines an AfflictionBleeding affliction. -->
            <AfflictionBleeding identifier="mycoolaffliction3" />
          </Afflictions>
        </code>
      </example>
    </member>
    <member name="T:Barotrauma.AfflictionPrefab.Effect">
      <summary>
            Effects are the primary way to add functionality to afflictions.
            </summary>
      <doc>
        <Ignore type="SubElement" identifier="AbilityFlag" />
        <SubElement identifier="abilityflag" type="AppliedAbilityFlag">
                Enables the specified flag on the character as long as the effect is active.
            </SubElement>
        <Type identifier="AppliedAbilityFlag">
          <Summary>
                Flag that will be enabled for the character as long as the effect is active.
            <example><code language="xml"><Effect minstrength="0" maxstrength="100"><!-- Grants pressure immunity to the character while the effect is active. --><AbilityFlag flagtype="ImmuneToPressure" /></Effect></code></example></Summary>
          <Field identifier="FlagType" type="AbilityFlags" defaultValue="None">
                Which ability flag to enable.
            </Field>
        </Type>
      </doc>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.Effect.ResistanceFor">
      <summary>
            A list of identifiers of afflictions that the affected character will be
            resistant to when this effect is active.
            </summary>
    </member>
    <member name="T:Barotrauma.AfflictionPrefab.Effect.AppliedStatValue">
      <summary>
            StatType that will be applied to the affected character when the effect is active that is proportional to the effect's strength.
            </summary>
      <example>
        <code language="xml">
          <Effect minstrength="0" maxstrength="100">
            <!-- Walking speed will be increased by 10% at strength 0, 20% at 50 and 30% at 100 -->
            <StatValue stattype="WalkingSpeed" minvalue="0.1" maxvalue="0.3" />
            <!-- Maximum health will be increased by 20% regardless of the effect strength -->
            <StatValue stattype="MaximumHealthMultiplier" value="0.2" />
          </Effect>
        </code>
      </example>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.Effect.AppliedStatValue.StatType">
      <summary>
            Which StatType to apply
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.Effect.AppliedStatValue.MinValue">
      <summary>
            Minimum value to apply
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.Effect.AppliedStatValue.MaxValue">
      <summary>
            Minimum value to apply
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.Effect.AppliedStatValue.Value">
      <summary>
            Constant value to apply, will be ignored if MinValue or MaxValue are set
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.Effect.BlockTransformation">
      <summary>
            Prevents AfflictionHusks with the specified identifier(s) from transforming the character into an AI-controlled character.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.Effect.AfflictionStatValues">
      <summary>
            StatType that will be applied to the affected character when the effect is active that is proportional to the effect's strength.
            </summary>
    </member>
    <member name="M:Barotrauma.AfflictionPrefab.Effect.GetStrengthFactor(Barotrauma.Affliction)">
      <summary>
            Returns 0 if affliction.Strength is MinStrength,
            1 if affliction.Strength is MaxStrength
            </summary>
    </member>
    <member name="M:Barotrauma.AfflictionPrefab.Effect.GetStrengthFactor(System.Single)">
      <summary>
            Returns 0 if affliction.Strength is MinStrength,
            1 if affliction.Strength is MaxStrength
            </summary>
    </member>
    <member name="T:Barotrauma.AfflictionPrefab.Description">
      <summary>
            The description element can be used to define descriptions for the affliction which are shown under specific conditions;
            for example a description that only shows to other players or only at certain strength levels.
            </summary>
      <doc>
        <Field identifier="Text" type="string" defaultValue="&quot;&quot;">
            Raw text for the description.
            </Field>
      </doc>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.Description.TargetType.Any">
      <summary>
            Everyone can see the description.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.Description.TargetType.Self">
      <summary>
            Only the affected character can see the description.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.Description.TargetType.OtherCharacter">
      <summary>
            The affected character cannot see the description but others can.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.Description.Text">
      <summary>
            Raw text for the description.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.Description.TextTag">
      <summary>
            Text tag used to set the text from the localization files.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.Description.MinStrength">
      <summary>
            Minimum strength required for the description to be shown.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.Description.MaxStrength">
      <summary>
            Maximum strength required for the description to be shown.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.Description.Target">
      <summary>
            Who can see the description.
            </summary>
    </member>
    <member name="T:Barotrauma.AfflictionPrefab.PeriodicEffect">
      <summary>
            PeriodicEffect applies StatusEffects to the character periodically.
            </summary>
      <doc>
        <SubElement identifier="StatusEffect" type="StatusEffect" />
        <Field identifier="Interval" type="float" defaultValue="1.0">
                How often the status effect is applied in seconds.
                Setting this attribute will set both the min and max interval to the specified value.
            </Field>
        <Field identifier="MinInterval" type="float" defaultValue="1.0">
                Minimum interval between applying the status effect in seconds.
            </Field>
        <Field identifier="MaxInterval" type="float" defaultValue="1.0">
                Maximum interval between applying the status effect in seconds.
            </Field>
      </doc>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.AfflictionType">
      <summary>
            Arbitrary string that is used to identify the type of the affliction.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.LimbSpecific">
      <summary>
            If set to true, the affliction affects individual limbs. Otherwise, it affects the whole character.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.IndicatorLimb">
      <summary>
             If the affliction doesn't affect individual limbs, this attribute determines
             where the game will render the affliction's indicator when viewed in the
             in-game health UI.
            
             For example, the psychosis indicator is rendered on the head, and low oxygen
             is rendered on the torso.
             </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.TranslationIdentifier">
      <summary>
            Can be set to the identifier of another affliction to make this affliction 
            reuse the same name and description.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.IsBuff">
      <summary>
            If set to true, the game will recognize this affliction as a buff.
            This means, among other things, that bots won't attempt to treat it,
            and the health UI will render the affected limb in green rather than red.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.AffectMachines">
      <summary>
            If set to true, this affliction can affect characters that are marked as
            machines, such as the Fractal Guardian.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.HealableInMedicalClinic">
      <summary>
            If set to true, this affliction can be healed at the medical clinic.
            </summary>
      <doc>
        <override type="DefaultValue">
                false if the affliction is a buff or has the type "geneticmaterialbuff" or "geneticmaterialdebuff", true otherwise.
            </override>
      </doc>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.HealCostMultiplier">
      <summary>
            How much each unit of this affliction's strength will add
            to the cost of healing at the medical clinic.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.BaseHealCost">
      <summary>
            The minimum cost of healing this affliction at the medical clinic.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.ShowBarInHealthMenu">
      <summary>
            If set to false, the health UI will not show the strength of the affliction
            as a bar under its indicator.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.HideIconAfterDelay">
      <summary>
            If set to true, this affliction's icon will be hidden from the HUD after 5 seconds.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.ActivationThreshold">
      <summary>
            How high the strength has to be for the affliction to take effect
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.ShowIconThreshold">
      <summary>
            How high the strength has to be for the affliction icon to be shown in the UI
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.ShowIconToOthersThreshold">
      <summary>
            How high the strength has to be for the affliction icon to be shown to others with a health scanner or via the health interface
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.MaxStrength">
      <summary>
            The maximum strength this affliction can have.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.GrainBurst">
      <summary>
            The strength of the radiation grain effect to apply when the strength of this affliction increases.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.ShowInHealthScannerThreshold">
      <summary>
            How high the strength has to be for the affliction icon to be shown with a health scanner
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.TreatmentThreshold">
      <summary>
            How strong the affliction needs to be before bots attempt to treat it.
            Also effects when the affliction is shown in the suitable treatments list.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.IgnoreTreatmentIfAfflictedBy">
      <summary>
            Bots will not try to treat the affliction if the character has any of these afflictions
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.Duration">
      <summary>
            The duration of the affliction, in seconds. If set to 0, the affliction does not expire.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.KarmaChangeOnApplied">
      <summary>
            How much karma changes when a player applies this affliction to someone (per strength of the affliction)
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.BurnOverlayAlpha">
      <summary>
            Opacity of the burn effect (darker tint) on limbs affected by this affliction. 1 = full strength. 
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.DamageOverlayAlpha">
      <summary>
            Opacity of the bloody damage overlay on limbs affected by this affliction. 1 = full strength. 
            </summary>
    </member>
    <!-- Badly formed XML comment ignored for member "F:Barotrauma.AfflictionPrefab.AchievementOnReceived" -->
    <member name="F:Barotrauma.AfflictionPrefab.AchievementOnRemoved">
      <summary>
            Steam achievement given when the affliction is removed from the controlled character.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.IconColors">
      <summary>
            A gradient that defines which color to render this affliction's icon
            with, based on the affliction's current strength.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.AfflictionOverlayAlphaIsLinear">
      <summary>
            If set to true and the affliction has an AfflictionOverlay element, the overlay's opacity will be strictly proportional to its strength.
            Otherwise, the overlay's opacity will be determined based on its activation threshold and effects.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.ResetBetweenRounds">
      <summary>
            If set to true, this affliction will not persist between rounds.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.DamageParticles">
      <summary>
            Should damage particles be emitted when a character receives this affliction?
            Only relevant if the affliction is of the type "bleeding" or "damage".
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.MedicalSkillGain">
      <summary>
            An arbitrary modifier that affects how much medical skill is increased when you apply the affliction on a target. 
            If the affliction causes damage or is of the 'poison' or 'paralysis' type, the skill is increased only when the target is hostile. 
            If the affliction is of the 'buff' type, the skill is increased only when the target is friendly.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.WeaponsSkillGain">
      <summary>
            An arbitrary modifier that affects how much weapons skill is increased when you apply the affliction on a target. 
            The skill is increased only when the target is hostile. 
            </summary>
    </member>
    <member name="P:Barotrauma.AfflictionPrefab.TargetSpecies">
      <summary>
            A list of species this affliction is allowed to affect.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.effects">
      <summary>
            Effects to apply at various strength levels.
            Only one effect can be applied at any given moment, so their ranges should be defined with no overlap.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.periodicEffects">
      <summary>
            PeriodicEffect applies StatusEffects to the character periodically.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.Icon">
      <summary>
            An icon that’s used in the UI to represent this affliction.
            </summary>
    </member>
    <member name="F:Barotrauma.AfflictionPrefab.AfflictionOverlay">
      <summary>
            A sprite that covers the affected player's entire screen when this affliction is active.
            Its opacity is controlled by the active effect's MinAfflictionOverlayAlphaMultiplier and MaxAfflictionOverlayAlphaMultiplier
            </summary>
    </member>
    <member name="T:Barotrauma.AfflictionPsychosis">
      <summary>
            A special affliction type that makes the character see and hear things that aren't there.
            </summary>
    </member>
    <member name="T:Barotrauma.AfflictionSpaceHerpes">
      <summary>
            A special affliction type that periodically inverts the character's controls and stuns the character. 
            The frequency and duration of the effects increases the higher the strength of the affliction is.
            </summary>
    </member>
    <member name="T:Barotrauma.BuffDurationIncrease">
      <summary>
            A special affliction type that increases the duration of buffs (afflictions of the type "buff"). The increase is defined using the 
            <see cref="P:Barotrauma.AfflictionPrefab.Effect.MinBuffMultiplier" /> and <see cref="P:Barotrauma.AfflictionPrefab.Effect.MaxBuffMultiplier" /> attributes of the affliction effect.
            </summary>
    </member>
    <member name="P:Barotrauma.CharacterHealth.UnmodifiedMaxVitality">
      <summary>
            Maximum vitality without talent- or job-based modifiers
            </summary>
    </member>
    <member name="P:Barotrauma.CharacterHealth.WasInFullHealth">
      <summary>
            Was the character in full health at the beginning of the frame?
            </summary>
    </member>
    <member name="M:Barotrauma.CharacterHealth.GetAfflictionStrength(Barotrauma.Identifier,Barotrauma.Limb,System.Boolean)">
      <summary>
            Get the total strength of the afflictions of a specific type attached to a specific limb
            </summary>
      <param name="afflictionType">Type of the affliction</param>
      <param name="limb">The limb the affliction is attached to</param>
      <param name="requireLimbSpecific">Does the affliction have to be attached to only the specific limb. 
            Most monsters for example don't have separate healths for different limbs, essentially meaning that every affliction is applied to every limb.</param>
    </member>
    <member name="P:Barotrauma.CharacterHealth.OxygenLowResistance">
      <summary>
            0-1.
            </summary>
    </member>
    <member name="M:Barotrauma.CharacterHealth.GetVitalityDecreaseWithVitalityMultipliers(Barotrauma.Affliction)">
      <summary>
            How much vitality the affliction reduces, taking into account the effects of vitality modifiers on the limb the affliction is on (if limb-based)
            </summary>
    </member>
    <member name="M:Barotrauma.CharacterHealth.GetSuitableTreatments(System.Collections.Generic.Dictionary{Barotrauma.Identifier,System.Single},System.Boolean,Barotrauma.Character,Barotrauma.Limb,System.Boolean,System.Single)">
      <summary>
            Get the identifiers of the items that can be used to treat the character. Takes into account all the afflictions the character has,
            and negative treatment suitabilities (e.g. a medicine that causes oxygen loss may not be suitable if the character is already suffocating)
            </summary>
      <param name="treatmentSuitability">A dictionary where the key is the identifier of the item and the value the suitability</param>
      <param name="normalize">If true, the suitability values are normalized between 0 and 1. If not, they're arbitrary values defined in the medical item XML, where negative values are unsuitable, and positive ones suitable.</param>
      <param name="predictFutureDuration">If above 0, the method will take into account how much currently active status effects while affect the afflictions in the next x seconds.</param>
    </member>
    <member name="M:Barotrauma.CharacterHealth.SortAfflictionsBySeverity(System.Collections.Generic.IEnumerable{Barotrauma.Affliction},System.Boolean)">
      <summary>
            Automatically filters out buffs.
            </summary>
    </member>
    <member name="M:Barotrauma.DamageModifier.MatchesAffliction(System.String,System.String)">
      <summary>
            Returns true if the type or the identifier matches the defined types/identifiers.
            </summary>
    </member>
    <member name="M:Barotrauma.HumanPrefab.CreateCharacterInfo(Barotrauma.Rand.RandSync)">
      <summary>
            Creates a character info from the human prefab. If there are custom character infos defined, those are used, otherwise a randomized info is generated.
            </summary>
      <param name="randSync"></param>
      <returns></returns>
    </member>
    <member name="P:Barotrauma.JobPrefab.ItemRepairPriorities">
      <summary>
            Tag -&gt; priority.
            </summary>
    </member>
    <member name="F:Barotrauma.SkillPrefab.PriceMultiplier">
      <summary>
            How much this skill affects characters' hiring cost
            </summary>
    </member>
    <member name="F:Barotrauma.Limb.ragdoll">
      <summary>
            Note that during the limb initialization, character.AnimController returns null, whereas this field is already assigned.
            </summary>
    </member>
    <member name="M:Barotrauma.Limb.UpdateAttack(System.Single,Microsoft.Xna.Framework.Vector2,Barotrauma.IDamageable,Barotrauma.AttackResult@,System.Single,Barotrauma.Limb)">
      <summary>
            Returns true if the attack successfully hit something. If the distance is not given, it will be calculated.
            </summary>
    </member>
    <member name="M:Barotrauma.Limb.StickTo(FarseerPhysics.Dynamics.Body,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2)">
      <summary>
            Attach the limb to a target with WeldJoints.
            Uses sim units.
            </summary>
    </member>
    <member name="F:Barotrauma.AnimationParams._movementSpeed">
               allAnimations[speciesName][fileName]
        </member>
    <member name="P:Barotrauma.AnimationParams.HeadAngle">
      <summary>
            In degrees.
            </summary>
    </member>
    <member name="P:Barotrauma.AnimationParams.TorsoAngle">
      <summary>
            In degrees.
            </summary>
    </member>
    <member name="M:Barotrauma.AnimationParams.GetRandomFilePath(System.Collections.Generic.IReadOnlyList{System.String},Barotrauma.AnimationType)">
      <summary>
            Selects a random filepath from multiple paths, matching the specified animation type.
            </summary>
    </member>
    <member name="M:Barotrauma.AnimationParams.FilterFilesByType(System.Collections.Generic.IEnumerable{System.String},Barotrauma.AnimationType)">
      <summary>
            Selects all file paths that match the specified animation type.
            </summary>
    </member>
    <member name="M:Barotrauma.AnimationParams.GetAnimParams``1(Barotrauma.Identifier,Barotrauma.AnimationType,System.String)">
      <summary>
            If the file name is left null, default file is selected. If fails, will select the default file. Note: Use the filename without the extensions, don't use the full path!
            If a custom folder is used, it's defined in the character info file.
            </summary>
    </member>
    <member name="M:Barotrauma.AnimationParams.Create``1(System.String,Barotrauma.Identifier,Barotrauma.AnimationType)">
      <summary>
            Note: Overrides old animations, if found!
            </summary>
    </member>
    <member name="P:Barotrauma.FishGroundedParams.ColliderStandAngle">
      <summary>
            The angle of the collider when standing (i.e. out of water).
            In degrees.
            </summary>
    </member>
    <member name="P:Barotrauma.FishGroundedParams.FootAnglesInRadians">
      <summary>
            Key = limb id, value = angle in radians
            </summary>
    </member>
    <member name="P:Barotrauma.FishGroundedParams.TailAngle">
      <summary>
            In degrees.
            </summary>
    </member>
    <member name="P:Barotrauma.FishSwimParams.FootAnglesInRadians">
      <summary>
            Key = limb id, value = angle in radians
            </summary>
    </member>
    <member name="P:Barotrauma.FishSwimParams.TailAngle">
      <summary>
            In degrees.
            </summary>
    </member>
    <member name="P:Barotrauma.HumanSwimParams.FootAngle">
      <summary>
            In degrees.
            </summary>
    </member>
    <member name="P:Barotrauma.HumanGroundedParams.FootAngle">
      <summary>
            In degrees.
            </summary>
    </member>
    <member name="T:Barotrauma.CharacterParams">
      <summary>
            Contains character data that should be editable in the character editor.
            </summary>
    </member>
    <member name="F:Barotrauma.RagdollParams.allRagdolls">
      <summary>
            key1: Species name
            key2: File path
            value: Ragdoll parameters
            </summary>
    </member>
    <member name="M:Barotrauma.RagdollParams.GetRagdollParams``1(Barotrauma.Identifier,System.String)">
      <summary>
            If the file name is left null, default file is selected. If fails, will select the default file.  Note: Use the filename without the extensions, don't use the full path!
            If a custom folder is used, it's defined in the character info file.
            </summary>
    </member>
    <member name="M:Barotrauma.RagdollParams.CreateDefault``1(System.String,Barotrauma.Identifier,System.Xml.Linq.XElement)">
      <summary>
            Creates a default ragdoll for the species using a predefined configuration.
            Note: Use only to create ragdolls for new characters, because this overrides the old ragdoll!
            </summary>
    </member>
    <member name="M:Barotrauma.RagdollParams.Apply">
      <summary>
            Applies the current properties to the xml definition without saving to file.
            </summary>
    </member>
    <member name="M:Barotrauma.RagdollParams.Reset(System.Boolean)">
      <summary>
            Resets the current properties to the xml (stored in memory). Force reload reloads the file from disk.
            </summary>
    </member>
    <member name="P:Barotrauma.RagdollParams.JointParams.Limb1Anchor">
      <summary>
            Should be converted to sim units.
            </summary>
    </member>
    <member name="P:Barotrauma.RagdollParams.JointParams.Limb2Anchor">
      <summary>
            Should be converted to sim units.
            </summary>
    </member>
    <member name="P:Barotrauma.RagdollParams.JointParams.UpperLimit">
      <summary>
            In degrees.
            </summary>
    </member>
    <member name="P:Barotrauma.RagdollParams.JointParams.LowerLimit">
      <summary>
            In degrees.
            </summary>
    </member>
    <member name="M:Barotrauma.RagdollParams.LimbParams.GetSpriteOrientation">
      <summary>
            The orientation of the sprite as drawn on the sprite sheet (in radians).
            </summary>
    </member>
    <member name="M:Barotrauma.Abilities.AbilityConditionData.#ctor(Barotrauma.CharacterTalent,Barotrauma.ContentXElement)">
      <summary>
            Some conditions rely on specific ability data that is integrally connected to the AbilityEffectType.
            This is done in order to avoid having to create duplicate ability behavior, such as if an ability needs to trigger
            a common ability effect but in specific circumstances. These conditions could also be partially replaced by
            more explicit AbilityEffectType enums, but this would introduce bloat and overhead to integral game logic
            when instead said logic can be made to only run when required using these conditions.
            
            These conditions will return an error if used outside their limited intended use.
            </summary>
    </member>
    <member name="P:Barotrauma.Abilities.CharacterAbility.EffectDeltaTime">
      <summary>
            Used primarily for StatusEffects. Default to constant outside interval abilities.
            </summary>
    </member>
    <member name="F:Barotrauma.Abilities.CharacterAbilityGroup.characterAbilities">
      <summary>
            List of abilities that are triggered by this group.
            Fallback abilities are triggered if the conditional fails
            </summary>
    </member>
    <member name="F:Barotrauma.Abilities.CharacterAbilityGroup.fallbackAbilities">
      <summary>
            List of abilities that are triggered by this group.
            Fallback abilities are triggered if the conditional fails
            </summary>
    </member>
    <member name="M:Barotrauma.CharacterTalent.CheckTalentsForCrew(System.Collections.Generic.IEnumerable{Barotrauma.Character},Barotrauma.AbilityEffectType,Barotrauma.Abilities.AbilityObject)">
      <summary>
            Checks talents for a given AbilityObject taking into account non-stackable talents.
            </summary>
    </member>
    <member name="T:Barotrauma.TalentMigrationAddStat">
      <summary>
            Migration that adds a missing permanent stat to the character.
            </summary>
    </member>
    <member name="T:Barotrauma.TalentMigrationUpdateStatIdentifier">
      <summary>
            Migration that updates permanent stat identifiers.
            </summary>
    </member>
    <member name="F:Barotrauma.TalentPrefab.AbilityEffectsStackWithSameTalent">
      <summary>
            When set to false the AbilityEffects of multiple of the same talent will not be checked and only the first one.
            </summary>
    </member>
    <member name="F:Barotrauma.TalentTree.AllTalentIdentifiers">
      <summary>
            Talent identifiers of all the talents in this tree
            </summary>
    </member>
    <member name="F:Barotrauma.TalentOption.RequiredTalents">
      <summary>
            How many talents need to be unlocked to consider this tree completed
            </summary>
    </member>
    <member name="F:Barotrauma.TalentOption.MaxChosenTalents">
      <summary>
            How many talents can be unlocked in total
            </summary>
    </member>
    <member name="F:Barotrauma.TalentOption.ShowCaseTalents">
      <summary>
            When specified the talent option will show talent with this identifier
            and clicking on it will expand the talent option to show the talents
            </summary>
    </member>
    <member name="T:Barotrauma.Command">
      <summary>
            Implementation of the Command pattern.
            <see href="https://en.wikipedia.org/wiki/Command_pattern" /></summary>
      <remarks>
            Created by Markus Isberg on 11th of March 2020 for the submarine editor.
            "Implementing a global undo and redo with Memento pattern proved too difficult of a task for me so I implemented it with this pattern instead."
            </remarks>
    </member>
    <member name="M:Barotrauma.Command.Execute">
      <summary>
            A method that should apply a new state on an object or perform an action
            </summary>
    </member>
    <member name="M:Barotrauma.Command.UnExecute">
      <summary>
            A method that should revert Execute() method's actions
            </summary>
    </member>
    <member name="M:Barotrauma.Command.Cleanup">
      <summary>
            State no longer exists, clean up the lingering garbage
            </summary>
    </member>
    <member name="T:Barotrauma.ContentFile">
      <summary>
            Base class for content file types, which are loaded
            from filelist.xml via reflection.
            PLEASE AVOID INHERITING FROM THIS CLASS DIRECTLY.
            Inheriting from GenericPrefabFile&lt;T&gt; is likely what
            you want.
            </summary>
    </member>
    <member name="P:Barotrauma.ContentPackage.FatalLoadErrors">
      <summary>
            Errors that occurred when loading this content package.
            Currently, all errors are considered fatal and the game
            will refuse to load a content package that has any errors.
            </summary>
    </member>
    <member name="P:Barotrauma.ContentPackage.EnableError">
      <summary>
            An error that occurred when trying to enable this mod.
            This field doesn't directly affect whether or not this mod
            can be enabled, but if it's been set to anything other than
            Option.None then the game has already refused to enable it
            at least once.
            </summary>
    </member>
    <member name="P:Barotrauma.ContentPackage.HasMultiplayerSyncedContent">
      <summary>
            Does the content package include some content that needs to match between all players in multiplayer. 
            </summary>
    </member>
    <member name="T:Barotrauma.StatTypes">
      <summary>
             StatTypes are used to alter several traits of a character. They are mostly used by talents.
            
             A lot of StatTypes use a "percentage" value. The way this works is that the value is 0 by default and 1 is added to the value of the stat type to get the final multiplier.
             For example if the value is set to 0.2 then 1 is added to it making it 1.2 and that is used as a multiplier.
             This makes it so values between -100% and +100% can be easily represented as -1 and 1 respectively. For example 0.5 would translate to 1.5 for +50% and -0.2 would translate to 0.8 for -20% multiplier.
             </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.None">
      <summary>
            Used to indicate an invalid stat type. Should not be used.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.ElectricalSkillBonus">
      <summary>
            Boosts electrical skill by a flat amount.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.HelmSkillBonus">
      <summary>
            Boosts helm skill by a flat amount.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.MechanicalSkillBonus">
      <summary>
            Boosts mechanical skill by a flat amount.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.MedicalSkillBonus">
      <summary>
            Boosts medical skill by a flat amount.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.WeaponsSkillBonus">
      <summary>
            Boosts weapons skill by a flat amount.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.HelmSkillOverride">
      <summary>
            Boosts the character's helm skill to the given value if it's lower than the given value.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.MedicalSkillOverride">
      <summary>
            Boosts the character's medical skill to the given value if it's lower than the given value.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.WeaponsSkillOverride">
      <summary>
            Boosts the character's weapons skill to the given value if it's lower than the given value.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.ElectricalSkillOverride">
      <summary>
            Boosts the character's electrical skill to the given value if it's lower than the given value.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.MechanicalSkillOverride">
      <summary>
            Boosts the character's mechanical skill to the given value if it's lower than the given value.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.MaximumHealthMultiplier">
      <summary>
            Increases character's maximum vitality by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.MovementSpeed">
      <summary>
            Increases both walking and swimming speed of the character by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.WalkingSpeed">
      <summary>
            Increases the character's walking speed by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.SwimmingSpeed">
      <summary>
            Increases the character's swimming speed by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.BuffDurationMultiplier">
      <summary>
            Decreases how long it takes for buffs applied to the character decay over time by a percentage.
            Buffs are afflictions that have isBuff set to true.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.DebuffDurationMultiplier">
      <summary>
            Decreases how long it takes for debuff applied to the character decay over time by a percentage.
            Debuffs are afflictions that have isBuff set to false.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.MedicalItemEffectivenessMultiplier">
      <summary>
            Increases the strength of afflictions that are applied to the character by a percentage.
            Medicines are items that have the "medical" tag.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.FlowResistance">
      <summary>
            Increases the resistance to pushing force caused by flowing water by a percentage. The resistance cannot be below 0% or higher than 100%.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.AttackMultiplier">
      <summary>
            Increases how much damage the character deals via all attacks by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.TeamAttackMultiplier">
      <summary>
            Increases how much damage the character deals to other characters on the same team by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.RangedAttackSpeed">
      <summary>
            Decreases the reload time of ranged weapons held by the character by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.TurretAttackSpeed">
      <summary>
            Decreases the reload time of submarine turrets operated by the character by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.TurretPowerCostReduction">
      <summary>
            Decreases the power consumption of submarine turrets operated by the character by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.TurretChargeSpeed">
      <summary>
            Increases how fast submarine turrets operated by the character charge up by a percentage. Affects turrets like pulse laser.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.MeleeAttackSpeed">
      <summary>
            Increases how fast the character can swing melee weapons by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.MeleeAttackMultiplier">
      <summary>
            Increases the damage dealt by melee weapons held by the character by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.RangedSpreadReduction">
      <summary>
            Decreases the spread of ranged weapons held by the character by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.RepairSpeed">
      <summary>
            Increases the repair speed of the character by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.MechanicalRepairSpeed">
      <summary>
            Increases the repair speed of the character when repairing mechanical items by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.DeconstructorSpeedMultiplier">
      <summary>
            Increase deconstruction speed of deconstructor operated by the character by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.RepairToolStructureRepairMultiplier">
      <summary>
            Increases the repair speed of repair tools that fix submarine walls by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.RepairToolStructureDamageMultiplier">
      <summary>
            Increases the wall damage of tools that destroy submarine walls like plasma cutter by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.RepairToolDeattachTimeMultiplier">
      <summary>
            Increase the detach speed of items like minerals that require a tool to detach from the wall by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.MaxRepairConditionMultiplierMechanical">
      <summary>
            Allows the character to repair mechanical items past the maximum condition by a flat percentage amount. For example setting this to 0.1 allows the character to repair mechanical items to 110% condition.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.MaxRepairConditionMultiplierElectrical">
      <summary>
            Allows the character to repair electrical items past the maximum condition by a flat percentage amount. For example setting this to 0.1 allows the character to repair electrical items to 110% condition.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.IncreaseFabricationQuality">
      <summary>
            Increase the the quality of items crafted by the character by a flat amount.
            Can be made to only affect certain item with a given tag types by specifying a tag via CharacterAbilityGivePermanentStat, when no tag is specified the ability affects all items.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.GeneticMaterialRefineBonus">
      <summary>
            Boosts the condition of genes combined by the character by a flat amount.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.GeneticMaterialTaintedProbabilityReductionOnCombine">
      <summary>
            Reduces the chance to taint a gene when combining genes by a percentage. Tainting probability can not go below 0% or above 100%.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.SkillGainSpeed">
      <summary>
            Increases the speed at which the character gains skills by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.ExtraLevelGain">
      <summary>
            Whenever the character's skill level up add a flat amount of more skill levels to the character.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.HelmSkillGainSpeed">
      <summary>
            Increases the speed at which the character gains helm skill by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.WeaponsSkillGainSpeed">
      <summary>
            Increases the speed at which the character gains weapons skill by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.MedicalSkillGainSpeed">
      <summary>
            Increases the speed at which the character gains medical skill by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.ElectricalSkillGainSpeed">
      <summary>
            Increases the speed at which the character gains electrical skill by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.MechanicalSkillGainSpeed">
      <summary>
            Increases the speed at which the character gains mechanical skill by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.MedicalItemApplyingMultiplier">
      <summary>
            Increases the strength of afflictions the character applies to other characters via medicine by a percentage.
            Medicines are items that have the "medical" tag.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.BuffItemApplyingMultiplier">
      <summary>
            Increases the strength of afflictions the character applies to other characters via medicine by a percentage.
            Works only for afflictions that have isBuff set to true.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.PoisonMultiplier">
      <summary>
            Increases the strength of afflictions the character applies to other characters via medicine by a percentage.
            Works only for afflictions that have "poison" type.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.TinkeringDuration">
      <summary>
            Increases how long the character can tinker with items by a flat amount where 1 = 1 second.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.TinkeringStrength">
      <summary>
            Increases the effectiveness of the character's tinkerings by a percentage.
            Tinkering strength affects the speed and effectiveness of the item that is being tinkered with.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.TinkeringDamage">
      <summary>
            Increases how much condition tinkered items lose when the character tinkers with them by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.ReputationGainMultiplier">
      <summary>
            Increases how much reputation the character gains by a percentage.
            Can be made to only affect certain factions with a given tag types by specifying a tag via CharacterAbilityGivePermanentStat, when no tag is specified the ability affects all factions.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.ReputationLossMultiplier">
      <summary>
            Increases how much reputation the character loses by a percentage.
            Can be made to only affect certain factions with a given tag types by specifying a tag via CharacterAbilityGivePermanentStat, when no tag is specified the ability affects all factions.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.MissionMoneyGainMultiplier">
      <summary>
            Increases how much money the character gains from missions by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.ExperienceGainMultiplier">
      <summary>
            Increases how much talent experience the character gains from all sources by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.MissionExperienceGainMultiplier">
      <summary>
            Increases how much talent experience the character gains from missions by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.ExtraMissionCount">
      <summary>
            Increases how many missions the characters crew can have at the same time by a flat amount.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.ExtraSpecialSalesCount">
      <summary>
            Increases how many items are in stock in special sales in the store by a flat amount.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.StoreSellMultiplier">
      <summary>
            Increases how much money is gained from selling items to the store by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.StoreBuyMultiplierAffiliated">
      <summary>
            Decreases the prices of items in affiliated store by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.StoreBuyMultiplier">
      <summary>
            Decreases the prices of items in all stores by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.ShipyardBuyMultiplierAffiliated">
      <summary>
            Decreases the price of upgrades and submarines in affiliated outposts by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.ShipyardBuyMultiplier">
      <summary>
            Decreases the price of upgrades and submarines in all outposts by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.MaxAttachableCount">
      <summary>
            Limits how many of a certain item can be attached to the wall in the submarine at the same time.
            Has to be used with CharacterAbilityGivePermanentStat to specify the tag of the item that is affected. Does nothing if no tag is specified.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.ExplosionRadiusMultiplier">
      <summary>
            Increase the radius of explosions caused by the character by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.ExplosionDamageMultiplier">
      <summary>
            Increases the damage of explosions caused by the character by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.FabricationSpeed">
      <summary>
            Decreases the time it takes to fabricate items on fabricators operated by the character by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.BallastFloraDamageMultiplier">
      <summary>
            Increases how much damage the character deals to ballast flora by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.HoldBreathMultiplier">
      <summary>
            Increases the time it takes for the character to pass out when out of oxygen.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.Apprenticeship">
      <summary>
            Used to set the character's apprencticeship to a certain job.
            Used by the "apprenticeship" talent and requires a job to be specified via CharacterAbilityGivePermanentStat.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.CPRBoost">
      <summary>
            Increases the revival chance of the character when performing CPR by a percentage.
            </summary>
    </member>
    <member name="F:Barotrauma.StatTypes.LockedTalents">
      <summary>
            Can be used to prevent certain talents from being unlocked by specifying the talent's identifier via CharacterAbilityGivePermanentStat.
            </summary>
    </member>
    <member name="T:Barotrauma.AbilityFlags">
      <summary>
            AbilityFlags are a set of toggleable flags that can be applied to characters.
            </summary>
    </member>
    <member name="F:Barotrauma.AbilityFlags.None">
      <summary>
            Used to indicate an erroneous ability flag. Should not be used.
            </summary>
    </member>
    <member name="F:Barotrauma.AbilityFlags.MustWalk">
      <summary>
            Character will not be able to run.
            </summary>
    </member>
    <member name="F:Barotrauma.AbilityFlags.ImmuneToPressure">
      <summary>
            Character is immune to pressure.
            </summary>
    </member>
    <member name="F:Barotrauma.AbilityFlags.IgnoredByEnemyAI">
      <summary>
            Character won't be targeted by enemy AI.
            </summary>
    </member>
    <member name="F:Barotrauma.AbilityFlags.MoveNormallyWhileDragging">
      <summary>
            Character can drag corpses without a movement speed penalty.
            </summary>
    </member>
    <member name="F:Barotrauma.AbilityFlags.CanTinker">
      <summary>
            Character is able to tinker with items.
            </summary>
    </member>
    <member name="F:Barotrauma.AbilityFlags.CanTinkerFabricatorsAndDeconstructors">
      <summary>
            Character is able to tinker with fabricators and deconstructors.
            </summary>
    </member>
    <member name="F:Barotrauma.AbilityFlags.TinkeringPowersDevices">
      <summary>
            Allows items tinkered by the character to consume no power.
            </summary>
    </member>
    <member name="F:Barotrauma.AbilityFlags.GainSkillPastMaximum">
      <summary>
            Allows the character to gain skills past 100.
            </summary>
    </member>
    <member name="F:Barotrauma.AbilityFlags.RetainExperienceForNewCharacter">
      <summary>
            Allows the character to retain experience when respawning as a new character.
            </summary>
    </member>
    <member name="F:Barotrauma.AbilityFlags.AllowSecondOrderedTarget">
      <summary>
            Allows CharacterAbilityApplyStatusEffectsToLastOrderedCharacter to affect the last 2 characters ordered.
            </summary>
    </member>
    <member name="F:Barotrauma.AbilityFlags.AlwaysStayConscious">
      <summary>
            Character will stay conscious even if their vitality drops below 0.
            </summary>
    </member>
    <member name="F:Barotrauma.AbilityFlags.CanNotDieToAfflictions">
      <summary>
            Prevents afflictions on the character from dropping the characters vitality below the kill threshold.
            The character can still die from sources like getting crushed by pressure or if their head is severed.
            </summary>
    </member>
    <member name="M:Barotrauma.EventAction.IsFinished(System.String@)">
      <summary>
            Has the action finished.
            </summary>
      <param name="goToLabel">If null or empty, the event moves to the next action. Otherwise it moves to the specified label.</param>
      <returns></returns>
    </member>
    <member name="M:Barotrauma.EventAction.ToDebugString">
      <summary>
            Rich test to display in debugdraw
            </summary>
      <example>
        <code>
            public override string ToDebugString()
            {
                return $"{ToolBox.GetDebugSymbol(isFinished)} SomeAction -&gt; "(someInfo: {info.ColorizeObject()})";
            }
            </code>
      </example>
      <returns></returns>
    </member>
    <member name="F:Barotrauma.EventSet.Exhaustible">
      <summary>
            'Exhaustible' sets won't appear in the same level until after one world step (~10 min, see Map.ProgressWorld) has passed.
            </summary>
    </member>
    <member name="F:Barotrauma.EventSet.OncePerLevel">
      <summary>
            If true, events from this set can only occur once in the level.
            </summary>
    </member>
    <member name="F:Barotrauma.EventSet.ForceAtDiscoveredNr">
      <summary>
            Used to force an event set based on how many other locations have been discovered before this. (Used for campaign tutorial event sets.)
            </summary>
    </member>
    <member name="F:Barotrauma.EventSet.ForceAtVisitedNr">
      <summary>
            Used to force an event set based on how many other outposts have been visited before this. (Used for campaign tutorial event sets.)
            </summary>
    </member>
    <member name="F:Barotrauma.MissionPrefab.BlockLocationTypeChanges">
      <summary>
            If enabled, locations this mission takes place in cannot change their type
            </summary>
    </member>
    <member name="F:Barotrauma.MissionPrefab.AllowedConnectionTypes">
      <summary>
            The mission can only be received when travelling from a location of the first type to a location of the second type
            </summary>
    </member>
    <member name="F:Barotrauma.MissionPrefab.AllowedLocationTypes">
      <summary>
            The mission can only be received in these location types
            </summary>
    </member>
    <member name="F:Barotrauma.MissionPrefab.UnhideEntitySubCategories">
      <summary>
            Show entities belonging to these sub categories when the mission starts
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.IEnumerableExtensions.Randomize``1(System.Collections.Generic.IList{``0},Barotrauma.Rand.RandSync)">
      <summary>
            Randomizes the collection (using OrderBy) and returns it.
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.IEnumerableExtensions.Shuffle``1(System.Collections.Generic.IList{``0},Barotrauma.Rand.RandSync)">
      <summary>
            Randomizes the list in place without creating a new collection, using a Fisher-Yates-based algorithm.
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.IEnumerableExtensions.GetRandom``1(System.Collections.Generic.IReadOnlyList{``0},Barotrauma.Rand.RandSync)">
      <summary>
            Gets a random element of a list using one of the synced random number generators.
            It's recommended that you guarantee a deterministic order of the elements of the
            input list via sorting.
            </summary>
      <param name="source">List to pick a random element from</param>
      <param name="randSync">Which RNG to use</param>
      <returns>A random item from the list. Return value should match between clients and
            the server, if applicable.</returns>
    </member>
    <member name="M:Barotrauma.Extensions.IEnumerableExtensions.ForEachMod``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
      <summary>
            Executes an action that modifies the collection on each element (such as removing items from the list).
            Creates a temporary list, unless the collection is empty.
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.IEnumerableExtensions.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
      <summary>
            Generic version of List.ForEach.
            Performs the specified action on each element of the collection (short hand for a foreach loop).
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.IEnumerableExtensions.Consume``1(System.Collections.Generic.IEnumerable{``0})">
      <summary>
            Iterates over all elements in a given enumerable and discards the result.
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.IEnumerableExtensions.None``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})">
      <summary>
            Shorthand for !source.Any(predicate) -&gt; i.e. not any.
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.IEnumerableExtensions.AtLeast``1(System.Collections.Generic.IEnumerable{``0},System.Int32,System.Predicate{``0})">
      <summary>
            Returns whether a given collection has at least a certain amount
            of elements for which the predicate returns true.
            </summary>
      <param name="source">Input collection</param>
      <param name="amount">How many elements to match before stopping</param>
      <param name="predicate">Predicate used to evaluate the elements</param>
    </member>
    <!-- Badly formed XML comment ignored for member "M:Barotrauma.Extensions.IEnumerableExtensions.CollectionConcat``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})" -->
    <member name="M:Barotrauma.Extensions.IEnumerableExtensions.MaxOrNull``1(System.Collections.Generic.IEnumerable{``0})">
      <summary>
            Returns the maximum element in a given enumerable, or null if there
            aren't any elements in the input.
            </summary>
      <param name="enumerable">Input collection</param>
      <returns>Maximum element or null</returns>
    </member>
    <member name="M:Barotrauma.Extensions.IEnumerableExtensions.FirstOrNull``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})">
      <summary>
            Same as FirstOrDefault but will always return null instead of default(T) when no element is found
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.PointExtensions.Inverse(Microsoft.Xna.Framework.Point)">
      <summary>
            Negates the X and Y components.
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.PointExtensions.Flip(Microsoft.Xna.Framework.Point)">
      <summary>
            Flips the X and Y components.
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.RectangleExtensions.ContainsWorld(Microsoft.Xna.Framework.Rectangle,Microsoft.Xna.Framework.Rectangle)">
      <summary>
            Like the XNA method, but treats the y-coordinate so that up is greater and down is lower.
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.RectangleExtensions.ContainsWorld(Microsoft.Xna.Framework.Rectangle,Microsoft.Xna.Framework.Vector2)">
      <summary>
            Like the XNA method, but treats the y-coordinate so that up is greater and down is lower.
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.RectangleExtensions.ContainsWorld(Microsoft.Xna.Framework.Rectangle,Microsoft.Xna.Framework.Point)">
      <summary>
            Like the XNA method, but treats the y-coordinate so that up is greater and down is lower.
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.VectorExtensions.Angle(Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2)">
      <summary>
            Unity's Angle implementation without the conversion to degrees.
            Returns the angle in radians between two vectors.
            0 - Pi.
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.VectorExtensions.Forward(System.Single,System.Single)">
      <summary>
            Creates a forward pointing vector based on the rotation (in radians).
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.VectorExtensions.Backward(System.Single,System.Single)">
      <summary>
            Creates a backward pointing vector based on the rotation (in radians).
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.VectorExtensions.ForwardFlipped(System.Single,System.Single)">
      <summary>
            Creates a forward pointing vector based on the rotation (in radians). TODO: remove when the implications have been neutralized
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.VectorExtensions.BackwardFlipped(System.Single,System.Single)">
      <summary>
            Creates a backward pointing vector based on the rotation (in radians). TODO: remove when the implications have been neutralized
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.VectorExtensions.Right(Microsoft.Xna.Framework.Vector2)">
      <summary>
            Creates a normalized perpendicular vector to the right from a forward vector.
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.VectorExtensions.Left(Microsoft.Xna.Framework.Vector2)">
      <summary>
            Creates a normalized perpendicular vector to the left from a forward vector.
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.VectorExtensions.TransformVector(Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2)">
      <summary>
            Transforms a vector relative to the given up vector.
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.VectorExtensions.Flip(Microsoft.Xna.Framework.Vector2)">
      <summary>
            Flips the x and y components.
            </summary>
    </member>
    <member name="M:Barotrauma.Extensions.VectorExtensions.Combine(Microsoft.Xna.Framework.Vector2)">
      <summary>
            Returns the sum of the x and y components.
            </summary>
    </member>
    <member name="M:Barotrauma.StringFormatter.CapitaliseFirstInvariant(System.String)">
      <summary>
            Capitalises the first letter (invariant) and forces the rest to lower case (invariant).
            </summary>
    </member>
    <member name="M:Barotrauma.StringFormatter.FormatCamelCaseWithSpaces(System.String)">
      <summary>
            Adds spaces into a CamelCase string.
            </summary>
    </member>
    <member name="F:Barotrauma.GameAnalyticsManager.Consent.Unknown">
      <summary>
            No attempt to contact the consent server has been made
            </summary>
    </member>
    <member name="F:Barotrauma.GameAnalyticsManager.Consent.Error">
      <summary>
            An error occurred while attempting to retrieve consent status
            </summary>
    </member>
    <member name="F:Barotrauma.GameAnalyticsManager.Consent.Ask">
      <summary>
            The consent status was not saved on the remote database
            </summary>
    </member>
    <member name="F:Barotrauma.GameAnalyticsManager.Consent.No">
      <summary>
            The user explicitly denied consent
            </summary>
    </member>
    <member name="F:Barotrauma.GameAnalyticsManager.Consent.Yes">
      <summary>
            The user explicitly granted consent
            </summary>
    </member>
    <member name="M:Barotrauma.GameAnalyticsManager.SetConsent(Barotrauma.GameAnalyticsManager.Consent)">
      <summary>
            Sets the consent status. This method cannot be called to
            set the status to Consent.Yes; only a positive response from
            the database or the user accepting via the privacy policy
            prompt should enable it.
            </summary>
    </member>
    <member name="M:Barotrauma.GameAnalyticsManager.SetConsentInternal(Barotrauma.GameAnalyticsManager.Consent)">
      <summary>
            Implementation of the bulk of SetConsent.
            DO NOT CALL THIS UNLESS NEEDED.
            </summary>
    </member>
    <member name="M:Barotrauma.GameAnalyticsManager.AddErrorEventOnce(System.String,Barotrauma.GameAnalyticsManager.ErrorSeverity,System.String)">
      <summary>
            Adds an error event to GameAnalytics if an event with the same identifier has not been added yet.
            </summary>
    </member>
    <member name="M:Barotrauma.AutoItemPlacer.SpawnStartItems(Barotrauma.Submarine,System.Nullable{Barotrauma.Identifier})">
      <summary>
            Spawns the items defined in the start item set in the specified sub.
            </summary>
    </member>
    <member name="M:Barotrauma.Faction.GetPlayerAffiliationStatus(Barotrauma.Faction)">
      <summary>
            Get what kind of affiliation this faction has towards the player depending on who they chose to side with via talents
            </summary>
      <returns></returns>
    </member>
    <member name="P:Barotrauma.FactionPrefab.MinReputation">
      <summary>
            How low the reputation can drop on this faction
            </summary>
    </member>
    <member name="P:Barotrauma.FactionPrefab.MaxReputation">
      <summary>
            Maximum reputation level you can gain on this faction
            </summary>
    </member>
    <member name="P:Barotrauma.FactionPrefab.InitialReputation">
      <summary>
            What reputation does this faction start with
            </summary>
    </member>
    <member name="F:Barotrauma.Reputation.MaxReputationLossFromNPCDamage">
      <summary>
            Maximum amount of reputation loss you can get from damaging outpost NPCs per round
            </summary>
    </member>
    <member name="F:Barotrauma.Reputation.MaxReputationLossFromWallDamage">
      <summary>
            Maximum amount of reputation loss you can get from damaging outpost walls per round
            </summary>
    </member>
    <member name="P:Barotrauma.Reputation.NormalizedValue">
      <summary>
            Reputation value normalized to the range of 0-1
            </summary>
    </member>
    <member name="T:Barotrauma.NetWalletUpdate">
      <summary>
            Network message for the server to update wallet values to clients
            </summary>
    </member>
    <member name="T:Barotrauma.NetWalletTransfer">
      <summary>
            Network message for the client to transfer money between wallets
            </summary>
    </member>
    <member name="T:Barotrauma.NetWalletSetSalaryUpdate">
      <summary>
            Network message for the client to set the salary of someone
            </summary>
    </member>
    <member name="T:Barotrauma.WalletChangedData">
      <summary>
            Represents the difference in balance and salary when a wallet gets updated
            Not really used right now but could be used for notifications when receiving funds similar to how talents do it
            </summary>
    </member>
    <member name="T:Barotrauma.NetWalletTransaction">
      <summary>
            Represents an update that changed the amount of money or salary of the wallet
            </summary>
    </member>
    <member name="M:Barotrauma.GameSession.#ctor(Barotrauma.SubmarineInfo,System.String,Barotrauma.GameModePreset,Barotrauma.CampaignSettings,System.String,Barotrauma.MissionType)">
      <summary>
            Start a new GameSession. Will be saved to the specified save path (if playing a game mode that can be saved).
            </summary>
    </member>
    <member name="M:Barotrauma.GameSession.#ctor(Barotrauma.SubmarineInfo,Barotrauma.GameModePreset,System.String,System.Collections.Generic.IEnumerable{Barotrauma.MissionPrefab})">
      <summary>
            Start a new GameSession with a specific pre-selected mission.
            </summary>
    </member>
    <member name="M:Barotrauma.GameSession.#ctor(Barotrauma.SubmarineInfo,System.Collections.Generic.List{Barotrauma.SubmarineInfo},System.Xml.Linq.XDocument,System.String)">
      <summary>
            Load a game session from the specified XML document. The session will be saved to the specified path.
            </summary>
    </member>
    <member name="M:Barotrauma.GameSession.SwitchSubmarine(Barotrauma.SubmarineInfo,System.Boolean,Barotrauma.Networking.Client)">
      <summary>
            Switch to another submarine. The sub is loaded when the next round starts.
            </summary>
    </member>
    <member name="M:Barotrauma.GameSession.GetSessionCrewCharacters(Barotrauma.CharacterType)">
      <summary>
            Returns a list of crew characters currently in the game with a given filter.
            </summary>
      <param name="type">Character type filter</param>
      <returns></returns>
      <remarks>
            In singleplayer mode the CharacterType.Player returns the currently controlled player.
            </remarks>
    </member>
    <member name="P:Barotrauma.CharacterInventory.AccessibleWhenAlive">
      <summary>
            Can the inventory be accessed when the character is still alive
            </summary>
    </member>
    <member name="P:Barotrauma.CharacterInventory.AccessibleByOwner">
      <summary>
            Can the inventory be accessed by the character itself when the character is still alive (only has an effect if AccessibleWhenAlive false)
            </summary>
    </member>
    <member name="M:Barotrauma.CharacterInventory.TryPutItemWithAutoEquipCheck(Barotrauma.Item,Barotrauma.Character,System.Collections.Generic.IEnumerable{Barotrauma.InvSlotType},System.Boolean)">
      <summary>
            If there is no room in the generic inventory (InvSlotType.Any), check if the item can be auto-equipped into its respective limbslot
            </summary>
    </member>
    <member name="M:Barotrauma.CharacterInventory.TryPutItem(Barotrauma.Item,Barotrauma.Character,System.Collections.Generic.IEnumerable{Barotrauma.InvSlotType},System.Boolean,System.Boolean)">
      <summary>
            If there is room, puts the item in the inventory and returns true, otherwise returns false
            </summary>
    </member>
    <member name="P:Barotrauma.WearableSprite.InheritScale">
      <summary>
            Does the wearable inherit all the scalings of the wearer? Also the wearable's own scale is used!
            </summary>
    </member>
    <member name="P:Barotrauma.WearableSprite.Picker">
      <summary>
            None = Any/Not Defined -&gt; no effect.
            Changing the gender forces re-initialization, because the textures can be different for male and female characters.
            </summary>
    </member>
    <member name="M:Barotrauma.WearableSprite.#ctor(Barotrauma.ContentXElement,Barotrauma.Items.Components.Wearable,System.Int32)">
      <summary>
            Note: this constructor cannot initialize automatically, because the gender is unknown at this point. We only know it when the item is equipped.
            </summary>
    </member>
    <!-- Badly formed XML comment ignored for member "F:Barotrauma.FabricationRecipe.FabricationLimitMin" -->
    <!-- Badly formed XML comment ignored for member "F:Barotrauma.FabricationRecipe.FabricationLimitMax" -->
    <member name="P:Barotrauma.ItemPrefab.CanBeSold">
      <summary>
            Any item with a Price element in the definition can be sold everywhere.
            </summary>
    </member>
    <member name="P:Barotrauma.ItemPrefab.Triggers">
      <summary>
            Defines areas where the item can be interacted with. If RequireBodyInsideTrigger is set to true, the character
            has to be within the trigger to interact. If it's set to false, having the cursor within the trigger is enough.
            </summary>
    </member>
    <member name="P:Barotrauma.ItemPrefab.IsOverride">
      <summary>
            Is this prefab overriding a prefab in another content package
            </summary>
    </member>
    <member name="P:Barotrauma.ItemPrefab.LevelCommonness">
      <summary>
            How likely it is for the item to spawn in a level of a given type.
            </summary>
    </member>
    <member name="P:Barotrauma.ItemPrefab.AllowAsExtraCargo">
      <summary>
            Can the item be chosen as extra cargo in multiplayer. If not set, the item is available if it can be bought from outposts in the campaign.
            </summary>
    </member>
    <member name="M:Barotrauma.TalentStatIdentifier.CreateStackable(Barotrauma.ItemTalentStats,Barotrauma.Identifier,System.UInt32)">
      <summary>
            Stackable identifiers feature a unique ID to allow multiple stats applied by the same talent from different characters to coexist.
            </summary>
    </member>
    <member name="M:Barotrauma.TalentStatIdentifier.CreateUnstackable(Barotrauma.ItemTalentStats,Barotrauma.Identifier)">
      <summary>
            Unstackable identifiers do not have a unique ID causing them to be identical to other stats applied by the same talent from different characters and thus only one of them will be applied.
            <see cref="M:Barotrauma.ItemStatManager.ApplyStat(Barotrauma.ItemTalentStats,System.Boolean,System.Single,Barotrauma.CharacterTalent)" /> will always use the highest value for unstackable stats.
            </summary>
    </member>
    <member name="M:Barotrauma.ItemStatManager.ApplyStatDirect(Barotrauma.TalentStatIdentifier,System.Single)">
      <summary>
            Used for setting the value value from network packet; bypassing all validity checks.
            </summary>
    </member>
    <member name="T:Barotrauma.RelatedItem">
      <summary>
            Used by various features to define different kinds of relations between items: 
            for example, which item a character must have equipped to interact with some item in some way, 
            which items can go inside a container, or which kind of item the target of a status effect must have for the effect to execute.
            </summary>
    </member>
    <member name="F:Barotrauma.RelatedItem.RelationType.Contained">
      <summary>
            The item must be contained inside the item this relation is defined in. 
            Can for example by used to make an item usable only when there's a specific kind of item inside it.
            </summary>
    </member>
    <member name="F:Barotrauma.RelatedItem.RelationType.Equipped">
      <summary>
            The user must have equipped the item (i.e. held or worn).
            </summary>
    </member>
    <member name="F:Barotrauma.RelatedItem.RelationType.Picked">
      <summary>
            The user must have picked up the item (i.e. the item needs to be in the user's inventory).
            </summary>
    </member>
    <member name="F:Barotrauma.RelatedItem.RelationType.Container">
      <summary>
            The item this relation is defined in must be inside a specific kind of container. 
            Can for example by used to make an item do something when it's inside some other type of item.
            </summary>
    </member>
    <member name="P:Barotrauma.RelatedItem.MatchOnEmpty">
      <summary>
            Should an empty inventory be considered valid? Can be used to, for example, make an item do something if there's a specific item, or nothing, inside it.
            </summary>
    </member>
    <member name="P:Barotrauma.RelatedItem.RequireEmpty">
      <summary>
            Should only an empty inventory be considered valid? Can be used to, for example, make an item do something when there's nothing inside it.
            </summary>
    </member>
    <member name="P:Barotrauma.RelatedItem.IgnoreInEditor">
      <summary>
            Only valid for the RequiredItems of an ItemComponent. Can be used to ignore the requirement in the submarine editor, 
            making it easier to for example make rewire things that require some special tool to rewire.
            </summary>
    </member>
    <member name="P:Barotrauma.RelatedItem.ExcludedIdentifiers">
      <summary>
            Identifier(s) or tag(s) of the items that are NOT considered valid. 
            Can be used to, for example, exclude some specific items when using tags that apply to multiple items.
            </summary>
    </member>
    <member name="F:Barotrauma.RelatedItem.Msg">
      <summary>
            Only valid for the RequiredItems of an ItemComponent. A message displayed if the required item isn't found (e.g. a notification about lack of ammo or fuel).
            </summary>
    </member>
    <member name="F:Barotrauma.RelatedItem.MsgTag">
      <summary>
            Only valid for the RequiredItems of an ItemComponent. The localization tag of a message displayed if the required item isn't found (e.g. a notification about lack of ammo or fuel).
            </summary>
    </member>
    <member name="P:Barotrauma.RelatedItem.ExcludeBroken">
      <summary>
            Should broken (0 condition) items be excluded?
            </summary>
    </member>
    <member name="P:Barotrauma.RelatedItem.ExcludeFullCondition">
      <summary>
            Should full condition (100%) items be excluded?
            </summary>
    </member>
    <member name="P:Barotrauma.RelatedItem.AllowVariants">
      <summary>
            Are item variants considered valid?
            </summary>
    </member>
    <member name="F:Barotrauma.RelatedItem.TargetSlot">
      <summary>
            Index of the slot the target must be in when targeting a Contained item
            </summary>
    </member>
    <member name="F:Barotrauma.RelatedItem.ItemPos">
      <summary>
            Overrides the position defined in ItemContainer. Only valid when used in the Containable definitions of an ItemContainer.
            </summary>
    </member>
    <member name="F:Barotrauma.RelatedItem.Hide">
      <summary>
             Only valid when used in the Containable definitions of an ItemContainer.
             Only affects when ItemContainer.hideItems is false. Doesn't override the value.
            </summary>
    </member>
    <member name="F:Barotrauma.RelatedItem.Rotation">
      <summary>
             Only valid when used in the Containable definitions of an ItemContainer. 
             Can be used to override the rotation of specific items in the container.
            </summary>
    </member>
    <member name="F:Barotrauma.RelatedItem.SetActive">
      <summary>
             Only valid when used in the Containable definitions of an ItemContainer. 
             Can be used to force specific items to stay active inside the container (such as flashlights attached to a gun).
            </summary>
    </member>
    <member name="P:Barotrauma.RelatedItem.IsOptional">
      <summary>
            Only valid for the RequiredItems of an ItemComponent. Can be used to make the requirement optional, 
            meaning that you don't need to have the item to interact with something, but having it may still affect what the interaction does (such as using a crowbar on a door).
            </summary>
    </member>
    <member name="P:Barotrauma.RelatedItem.Identifiers">
      <summary>
            Identifier(s) or tag(s) of the items that are considered valid.
            </summary>
    </member>
    <member name="T:Barotrauma.StartItemSet">
      <summary>
            Additive sets of items spawned only at the start of the game.
            </summary>
    </member>
    <member name="F:Barotrauma.StartItemSet.Order">
      <summary>
            The order in which the sets are displayed in menus
            </summary>
    </member>
    <member name="M:Barotrauma.ACsMod.#ctor">
            Mod initialization
        </member>
    <member name="M:Barotrauma.ACsMod.Stop">
            Error or client exit
        </member>
    <member name="M:Barotrauma.CsScriptLoader.RegisterAssemblyWithNativeGame(System.Reflection.Assembly)">
      <summary>
            This function should be used whenever a new assembly is created. Wrapper to allow more complicated setup later if need be.
            </summary>
    </member>
    <member name="M:Barotrauma.CsScriptLoader.UnregisterAssemblyFromNativeGame(System.Reflection.Assembly)">
      <summary>
            This function should be used whenever a new assembly is about to be destroyed/unloaded. Wrapper to allow more complicated setup later if need be.
            </summary>
      <param name="assembly">Assembly to remove</param>
    </member>
    <member name="M:Barotrauma.SigilExtensions.LoadType(Sigil.NonGeneric.Emit,System.Type)">
      <summary>
            Puts a type on the stack, as a <see cref="T:System.Type" /> object instead of a
            runtime type token.
            </summary>
      <param name="il">The IL emitter.</param>
      <param name="type">The type to put on the stack.</param>
    </member>
    <member name="M:Barotrauma.SigilExtensions.ToObject(Sigil.NonGeneric.Emit,System.Type)">
      <summary>
            Converts the value on the stack to <see cref="T:System.Object" />.
            </summary>
      <param name="il">The IL emitter.</param>
      <param name="type">The type of the value on the stack.</param>
    </member>
    <member name="M:Barotrauma.SigilExtensions.DerefIfByRef(Sigil.NonGeneric.Emit,System.Type)">
      <summary>
            Deferences the value on stack if the provided type is ByRef.
            </summary>
      <param name="il">The IL emitter.</param>
      <param name="type">The type to check if ByRef.</param>
    </member>
    <member name="M:Barotrauma.SigilExtensions.DerefIfByRef(Sigil.NonGeneric.Emit,System.Type@)">
      <summary>
            Deferences the value on stack if the provided type is ByRef.
            </summary>
      <param name="il">The IL emitter.</param>
      <param name="type">The type to check if ByRef.</param>
    </member>
    <member name="M:Barotrauma.SigilExtensions.LoadLocalAndCast(Sigil.NonGeneric.Emit,Sigil.Local,System.Type)">
      <summary>
            Loads a local variable and casts it to the target type.
            </summary>
      <param name="il">The IL emitter.</param>
      <param name="value">The value to cast. Must be of type <see cref="T:System.Object" />.</param>
      <param name="targetType">The type to cast into.</param>
    </member>
    <member name="M:Barotrauma.SigilExtensions.FormatString(Sigil.NonGeneric.Emit,System.String,Sigil.Local[])">
      <summary>
            Emits a call to <see cref="M:System.String.Format(System.String,System.Object[])" />.
            </summary>
      <param name="il">The IL emitter.</param>
      <param name="format">The string format.</param>
      <param name="args">The local variables passed to string.Format.</param>
    </member>
    <member name="M:Barotrauma.SigilExtensions.NewMessage(Sigil.NonGeneric.Emit,System.String)">
      <summary>
            Emits a call to <see cref="M:Barotrauma.DebugConsole.NewMessage(System.String,System.Nullable{Microsoft.Xna.Framework.Color},System.Boolean)" />.
            </summary>
      <param name="il">The IL emitter.</param>
      <param name="message">The message to print.</param>
    </member>
    <member name="M:Barotrauma.SigilExtensions.NewMessage(Sigil.NonGeneric.Emit)">
      <summary>
            Emits a call to <see cref="M:Barotrauma.DebugConsole.NewMessage(System.String,System.Nullable{Microsoft.Xna.Framework.Color},System.Boolean)" />,
            using the string on the stack.
            </summary>
      <param name="il">The IL emitter.</param>
    </member>
    <member name="M:Barotrauma.SigilExtensions.ForEachEnumerable``1(Sigil.NonGeneric.Emit,Sigil.Local,System.Action{Sigil.NonGeneric.Emit,Sigil.Local,Sigil.Label})">
      <summary>
            Emits a <c>foreach</c> loop that iterates over an <see cref="T:System.Collections.Generic.IEnumerable`1" /> local variable.
            </summary>
      <typeparam name="T">The type of elements in the enumerable.</typeparam>
      <param name="il">The IL emitter.</param>
      <param name="enumerable">The enumerable.</param>
      <param name="action">The body of code to run on each iteration.</param>
    </member>
    <member name="M:Barotrauma.SigilExtensions.ForEachEnumerator``1(Sigil.NonGeneric.Emit,Sigil.Local,System.Action{Sigil.NonGeneric.Emit,Sigil.Local,Sigil.Label})">
      <summary>
            Emits a <c>foreach</c> loop that iterates over an <see cref="T:System.Collections.Generic.IEnumerator`1" /> local variable.
            </summary>
      <typeparam name="T">The type of elements in the enumerable.</typeparam>
      <param name="il">The IL emitter.</param>
      <param name="enumerator">The enumerator.</param>
      <param name="action">The body of code to run on each iteration.</param>
    </member>
    <member name="M:Barotrauma.SigilExtensions.If(Sigil.NonGeneric.Emit,System.Action{Sigil.NonGeneric.Emit})">
      <summary>
            Emits a branch that only executes if the last value on the stack
            is truthy (e.g. non-null references, 1, etc).
            </summary>
      <param name="il">The IL emitter.</param>
      <param name="action">The body of code to run if the value is truthy.</param>
    </member>
    <member name="M:Barotrauma.SigilExtensions.IfNot(Sigil.NonGeneric.Emit,System.Action{Sigil.NonGeneric.Emit})">
      <summary>
            Emits a branch that only executes if the last value on the stack
            is falsy (e.g. null references, 0, etc).
            </summary>
      <param name="il">The IL emitter.</param>
      <param name="action">The body of code to run if the value is falsy.</param>
    </member>
    <member name="M:Barotrauma.SigilExtensions.Branch(Sigil.NonGeneric.Emit,System.Action{Sigil.NonGeneric.Emit},System.Action{Sigil.NonGeneric.Emit})">
      <summary>
            Emits two branches that diverge based on a condition -- analogous
            to an if-else statement. If either <paramref name="if" />
            or <paramref name="else" /> are omitted, it behaves the same as
            <see cref="M:Barotrauma.SigilExtensions.If(Sigil.NonGeneric.Emit,System.Action{Sigil.NonGeneric.Emit})" />
            and <see cref="M:Barotrauma.SigilExtensions.IfNot(Sigil.NonGeneric.Emit,System.Action{Sigil.NonGeneric.Emit})" />.
            </summary>
      <param name="il">The IL emitter.</param>
      <param name="if">The body of code to run if the value is truthy.</param>
      <param name="else">The body of code to run if the value is falsy.</param>
    </member>
    <member name="F:Barotrauma.MapEntity.Upgrades">
      <summary>
            List of upgrades this item has
            </summary>
    </member>
    <member name="F:Barotrauma.MapEntity.OriginalModuleIndex">
      <summary>
            The index of the outpost module this entity originally spawned in (-1 if not an outpost item)
            </summary>
    </member>
    <member name="M:Barotrauma.MapEntity.AddUpgrade(Barotrauma.Upgrade,System.Boolean)">
      <summary>
            Adds a new upgrade to the item
            </summary>
    </member>
    <member name="M:Barotrauma.MapEntity.ShallowRemove">
      <summary>
            Remove the entity from the entity list without removing links to other entities
            </summary>
    </member>
    <member name="M:Barotrauma.MapEntity.UpdateAll(System.Single,Barotrauma.Camera)">
      <summary>
            Call Update() on every object in Entity.list
            </summary>
    </member>
    <member name="M:Barotrauma.MapEntity.FlipX(System.Boolean)">
      <summary>
            Flip the entity horizontally
            </summary>
      <param name="relativeToSub">Should the entity be flipped across the y-axis of the sub it's inside</param>
    </member>
    <member name="M:Barotrauma.MapEntity.FlipY(System.Boolean)">
      <summary>
            Flip the entity vertically
            </summary>
      <param name="relativeToSub">Should the entity be flipped across the x-axis of the sub it's inside</param>
    </member>
    <member name="F:Barotrauma.MapEntity.mapLoadedCalled">
      <summary>
            Update the linkedTo-lists of the entities based on the linkedToID-lists
            Has to be done after all the entities have been loaded (an entity can't
            be linked to some other entity that hasn't been loaded yet)
            </summary>
    </member>
    <member name="M:Barotrauma.MapEntity.GetLinkedEntities``1(System.Collections.Generic.HashSet{``0},System.Nullable{System.Int32},System.Func{``0,System.Boolean})">
      <summary>
            Gets all linked entities of specific type.
            </summary>
    </member>
    <member name="M:Barotrauma.MapEntity.GetLinkedEntitiesRecursive``1(Barotrauma.MapEntity,System.Collections.Generic.HashSet{``0},System.Int32@,System.Nullable{System.Int32},System.Func{``0,System.Boolean})">
      <summary>
            Gets all linked entities of specific type.
            </summary>
    </member>
    <member name="M:Barotrauma.LuaUserData.CreateUserDataFromDescriptor(MoonSharp.Interpreter.DynValue,MoonSharp.Interpreter.Interop.IUserDataDescriptor)">
      <summary>
            See <see cref="M:Barotrauma.LuaUserData.CreateUserDataFromType(MoonSharp.Interpreter.DynValue,System.Type)" />.
            </summary>
      <param name="scriptObject">Lua value to convert and wrap in a userdata.</param>
      <param name="desiredTypeDescriptor">Descriptor of the type of the object to convert the Lua value to. Uses MoonSharp ScriptToClr converters.</param>
      <returns>A userdata that wraps the Lua value converted to an object of the desired type as described by <paramref name="desiredTypeDescriptor" />.</returns>
    </member>
    <member name="M:Barotrauma.LuaUserData.CreateUserDataFromType(MoonSharp.Interpreter.DynValue,System.Type)">
      <summary>
            Converts a Lua value to a CLR object of a desired type and wraps it in a userdata.
            If the type is not registered, then a new <see cref="T:MoonSharp.Interpreter.Interop.StandardUserDataDescriptor" /> will be created and used.
            The goal of this method is to allow Lua scripts to create userdata to wrap certain data without having to register types.
            <remarks>Wrapping the value in a userdata preserves the original type during script-to-CLR conversions.</remarks><example>A Lua script needs to pass a List`1 to a CLR method expecting System.Object, MoonSharp gets
            in the way by converting the List`1 to a MoonSharp.Interpreter.Table and breaking everything.
            Registering the List`1 type can break other scripts relying on default converters, so instead
            it is better to manually wrap the List`1 object into a userdata.
            </example></summary>
      <param name="scriptObject">Lua value to convert and wrap in a userdata.</param>
      <param name="desiredType">Type describing the CLR type of the object to convert the Lua value to.</param>
      <returns>A userdata that wraps the Lua value converted to an object of the desired type.</returns>
    </member>
    <member name="F:Barotrauma.Entity.ID">
      <summary>
            Unique, but non-persistent identifier.
            Stays the same if the entities are created in the exactly same order, but doesn't persist e.g. between the rounds.
            </summary>
    </member>
    <member name="M:Barotrauma.Entity.FindFreeIdBlock(System.Int32)">
      <summary>
            Finds a contiguous block of free IDs of at least the given size
            </summary>
      <returns>The first ID in the found block, or zero if none are found</returns>
    </member>
    <member name="M:Barotrauma.Entity.FindEntityByID(System.UInt16)">
      <summary>
            Find an entity based on the ID
            </summary>
    </member>
    <member name="M:Barotrauma.Entity.FreeID">
      <summary>
            Removes the entity from the entity dictionary and frees up the ID it was using.
            </summary>
    </member>
    <member name="T:Barotrauma.Explosion">
      <summary>
            Explosions are area of effect attacks that can damage characters, items and structures.
            </summary>
      <doc>
        <Field Identifier="showEffects" Type="bool" DefaultValue="true">
                Used to enable all particle effects without having to specify them one by one.
            </Field>
      </doc>
    </member>
    <member name="F:Barotrauma.Explosion.force">
      <summary>
            How much force the explosion applies to the characters.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.cameraShake">
      <summary>
            Intensity of the screen shake effect.
            </summary>
      <doc>
        <override type="DefaultValue">
                10% of the range if showEffects is true, 0 otherwise.
            </override>
      </doc>
    </member>
    <member name="F:Barotrauma.Explosion.cameraShakeRange">
      <summary>
            How far away does the camera shake effect reach.
            </summary>
      <doc>
        <override type="DefaultValue">
                Same as attack range if showEffects is true, 0 otherwise.
            </override>
      </doc>
    </member>
    <member name="F:Barotrauma.Explosion.screenColor">
      <summary>
            Color tint to apply to the player's screen when in range of the explosion.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.screenColorRange">
      <summary>
            How far away can the screen color effect be seen.
            </summary>
      <doc>
        <override type="DefaultValue">
                10% of the range if showEffects is true, 0 otherwise.
            </override>
      </doc>
    </member>
    <member name="F:Barotrauma.Explosion.screenColorDuration">
      <summary>
            How long the screen color effect lasts.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.sparks">
      <summary>
            Whether a spark particle effect is created when the explosion happens.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.shockwave">
      <summary>
            Whether a shockwave particle effect is created when the explosion happens.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.flames">
      <summary>
            Whether a flame particle effect is created when the explosion happens.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.smoke">
      <summary>
            Whether a smoke particle effect is created when the explosion happens.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.flash">
      <summary>
            Whether a flash effect is created when the explosion happens.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.underwaterBubble">
      <summary>
            Whether a underwater bubble particle effect is created when the explosion happens.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.flashColor">
      <summary>
            Color of the light source created by the explosion.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.playTinnitus">
      <summary>
            Whether the explosion plays a tinnitus sound to players who get hit by it.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.applyFireEffects">
      <summary>
            Whether the explosion executes 'OnFire' status effects on the items it hits.
            </summary>
      <doc>
        <override type="DefaultValue">
                true if showEffects is true and flames haven't been explicitly set to false, false otherwise.
            </override>
      </doc>
    </member>
    <member name="F:Barotrauma.Explosion.ignoreFireEffectsForTags">
      <summary>
            List of item tags that the explosion ignores when applying fire effects.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.ignoreCover">
      <summary>
            When set to true, the explosion don't deal less damage when the target is behind a solid object.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.flashDuration">
      <summary>
            How long the light source created by the explosion lasts.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.flashRange">
      <summary>
            How large the light source created by the explosion is.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.decal">
      <summary>
            Identifier of the decal the explosion creates on the background structure it explodes over.
            Set to empty string to disable.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.decalSize">
      <summary>
            Relative size of the decal created by the explosion.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.OnlyInside">
      <summary>
            Whether the explosion only affects characters inside a submarine.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.OnlyOutside">
      <summary>
            Whether the explosion only affects characters outside a submarine.
            </summary>
    </member>
    <member name="F:Barotrauma.Explosion.itemRepairStrength">
      <summary>
            How much the explosion repairs items.
            </summary>
    </member>
    <member name="P:Barotrauma.Explosion.EmpStrength">
      <summary>
            Strength of the EMP effect created by the explosion.
            </summary>
    </member>
    <member name="P:Barotrauma.Explosion.BallastFloraDamage">
      <summary>
            How much damage the explosion does to ballast flora.
            </summary>
    </member>
    <member name="M:Barotrauma.Explosion.RangedStructureDamage(Microsoft.Xna.Framework.Vector2,System.Single,System.Single,System.Single,Barotrauma.Character,System.Collections.Generic.IEnumerable{Barotrauma.Submarine},System.Boolean)">
      <summary>
            Returns a dictionary where the keys are the structures that took damage and the values are the amount of damage taken
            </summary>
    </member>
    <member name="P:Barotrauma.Gap.IsDiagonal">
      <summary>
            "Diagonal" gaps are used on sloped walls to allow characters to pass through them either horizontally or vertically. 
            Water still flows through them only horizontally or vertically
            </summary>
    </member>
    <member name="F:Barotrauma.CaveGenerationParams.OverrideCommonness">
      <summary>
            Overrides the commonness of the object in a specific level type. 
            Key = name of the level type, value = commonness in that level type.
            </summary>
    </member>
    <member name="M:Barotrauma.CaveGenerator.RoundCell(Voronoi2.VoronoiCell,System.Single,System.Single,System.Single)">
      <summary>
            Makes the cell rounder by subdividing the edges and offsetting them at the middle
            </summary>
      <param name="minEdgeLength">How small the individual subdivided edges can be (smaller values produce rounder shapes, but require more geometry)</param>
    </member>
    <member name="F:Barotrauma.LevelData.HuntingGroundsDifficultyThreshold">
      <summary>
            Minimum difficulty of the level before hunting grounds can appear.
            </summary>
    </member>
    <member name="F:Barotrauma.LevelData.MaxHuntingGroundsProbability">
      <summary>
            Probability of hunting grounds appearing in 100% difficulty levels.
            </summary>
    </member>
    <member name="F:Barotrauma.LevelData.InitialDepth">
      <summary>
            The depth at which the level starts at, in in-game coordinates. E.g. if this was set to 100 000 (= 1000 m), the nav terminal would display the depth as 1000 meters at the top of the level.
            </summary>
    </member>
    <member name="F:Barotrauma.LevelData.MinMainPathWidth">
      <summary>
            Determined during level generation based on the size of the submarine. Null if the level hasn't been generated.
            </summary>
    </member>
    <member name="F:Barotrauma.LevelData.EventHistory">
      <summary>
            Events that have previously triggered in this level. Used for making events the player hasn't seen yet more likely to trigger when re-entering the level. Has a maximum size of <see cref="F:Barotrauma.EventManager.MaxEventHistory" />.
            </summary>
    </member>
    <member name="F:Barotrauma.LevelData.NonRepeatableEvents">
      <summary>
            Events that have already triggered in this level and can never trigger again. <see cref="F:Barotrauma.EventSet.OncePerLevel" />.
            </summary>
    </member>
    <member name="P:Barotrauma.LevelData.EventsExhausted">
      <summary>
            'Exhaustible' sets won't appear in the same level until after one world step (~10 min, see Map.ProgressWorld) has passed. <see cref="F:Barotrauma.EventSet.Exhaustible" />.
            </summary>
    </member>
    <member name="P:Barotrauma.LevelData.CrushDepth">
      <summary>
            The crush depth of a non-upgraded submarine in in-game coordinates. Note that this can be above the top of the level!
            </summary>
    </member>
    <member name="P:Barotrauma.LevelData.RealWorldCrushDepth">
      <summary>
            The crush depth of a non-upgraded submarine in "real world units" (meters from the surface of Europa). Note that this can be above the top of the level!
            </summary>
    </member>
    <member name="M:Barotrauma.LevelData.#ctor(Barotrauma.LocationConnection)">
      <summary>
            Instantiates level data using the properties of the connection (seed, size, difficulty)
            </summary>
    </member>
    <member name="M:Barotrauma.LevelData.#ctor(Barotrauma.Location,Barotrauma.Map,System.Single)">
      <summary>
            Instantiates level data using the properties of the location
            </summary>
    </member>
    <member name="P:Barotrauma.LevelObjectPrefab.Alignment">
      <summary>
            Which sides of a wall the object can appear on.
            </summary>
    </member>
    <member name="F:Barotrauma.LevelObjectPrefab.OverrideCommonness">
      <summary>
            Overrides the commonness of the object in a specific level type. 
            Key = name of the level type, value = commonness in that level type.
            </summary>
    </member>
    <member name="P:Barotrauma.LevelObjectPrefab.OverrideProperties">
      <summary>
            A list of prefabs whose properties override this one's properties when a trigger is active.
            E.g. if a trigger in the index 1 of the trigger list is active, the properties in index 1 in this list are used (unless it's null)
            </summary>
    </member>
    <member name="F:Barotrauma.LevelTrigger.statusEffects">
      <summary>
            Effects applied to entities that are inside the trigger
            </summary>
    </member>
    <member name="F:Barotrauma.LevelTrigger.attacks">
      <summary>
            Attacks applied to entities that are inside the trigger
            </summary>
    </member>
    <member name="F:Barotrauma.LevelTrigger.stayTriggeredDelay">
      <summary>
            How long the trigger stays in the triggered state after triggerers have left
            </summary>
    </member>
    <member name="P:Barotrauma.LevelTrigger.ForceFalloff">
      <summary>
            does the force diminish by distance
            </summary>
    </member>
    <member name="P:Barotrauma.LevelTrigger.ForceVelocityLimit">
      <summary>
            Stop applying forces to objects if they're moving faster than this
            </summary>
    </member>
    <member name="M:Barotrauma.LevelTrigger.CheckContactsForEntity(Barotrauma.PhysicsBody,Barotrauma.Entity)">
      <summary>
            Are there any active contacts between the physics body and the target entity
            </summary>
    </member>
    <member name="M:Barotrauma.LevelTrigger.OtherTriggered(Barotrauma.LevelObject,Barotrauma.LevelTrigger)">
      <summary>
            Another trigger was triggered, check if this one should react to it
            </summary>
    </member>
    <member name="M:Barotrauma.LevelTrigger.ApplyAttacks(System.Collections.Generic.List{Barotrauma.Attack},Barotrauma.IDamageable,Microsoft.Xna.Framework.Vector2,System.Single)">
      <summary>
            Applies attacks to a damageable.
            </summary>
    </member>
    <member name="M:Barotrauma.LevelTrigger.ApplyAttacks(System.Collections.Generic.List{Barotrauma.Attack},Microsoft.Xna.Framework.Vector2,System.Single)">
      <summary>
            Applies attacks to structures.
            </summary>
    </member>
    <member name="M:Barotrauma.MapEntityPrefab.Find(System.String,System.String,System.Boolean)">
      <summary>
            Find a matching map entity prefab
            </summary>
      <param name="name">The name of the item (can be omitted when searching based on identifier)</param>
      <param name="identifier">The identifier of the item (if null, the identifier is ignored and the search is done only based on the name)</param>
    </member>
    <member name="M:Barotrauma.MapEntityPrefab.Find(System.Predicate{Barotrauma.MapEntityPrefab})">
      <summary>
            Find a matching map entity prefab
            </summary>
      <param name="predicate">A predicate that returns true on the desired prefab.</param>
    </member>
    <member name="P:Barotrauma.MapEntityPrefab.AllowedLinks">
      <summary>
            Links defined to identifiers.
            </summary>
    </member>
    <member name="M:Barotrauma.MapEntityPrefab.NameMatches(System.String,System.StringComparison)">
      <summary>
            Check if the name or any of the aliases of this prefab match the given name.
            </summary>
    </member>
    <member name="P:Barotrauma.Location.LocationTypeChangesBlocked">
      <summary>
            Is some mission blocking this location from changing its type?
            </summary>
    </member>
    <member name="P:Barotrauma.Location.StoreInfo.PriceModifier">
      <summary>
            In percentages. Larger values make buying more expensive and selling less profitable, and vice versa.
            </summary>
    </member>
    <member name="M:Barotrauma.Location.StoreInfo.#ctor(Barotrauma.Location,Barotrauma.Identifier)">
      <summary>
            Create new StoreInfo
            </summary>
    </member>
    <member name="M:Barotrauma.Location.StoreInfo.#ctor(Barotrauma.Location,System.Xml.Linq.XElement)">
      <summary>
            Load previously saved StoreInfo
            </summary>
    </member>
    <member name="M:Barotrauma.Location.StoreInfo.GetAdjustedItemBuyPrice(Barotrauma.ItemPrefab,Barotrauma.PriceInfo,System.Boolean)">
      <param name="priceInfo">If null, item.GetPriceInfo() will be used to get it.</param>
            /// <param name="considerDailySpecials">If false, the price won't be affected by <see cref="P:Barotrauma.Location.DailySpecialPriceModifier" /></param></member>
    <member name="M:Barotrauma.Location.StoreInfo.GetAdjustedItemSellPrice(Barotrauma.ItemPrefab,Barotrauma.PriceInfo,System.Boolean)">
      <param name="priceInfo">If null, item.GetPriceInfo() will be used to get it.</param>
      <param name="considerRequestedGoods">If false, the price won't be affected by <see cref="P:Barotrauma.Location.RequestGoodPriceModifier" /></param>
    </member>
    <member name="F:Barotrauma.Location.SpecialsUpdateInterval">
      <summary>
            How many map progress steps it takes before the discounts should be updated.
            </summary>
    </member>
    <member name="M:Barotrauma.Location.#ctor(Barotrauma.CampaignMode,System.Xml.Linq.XElement)">
      <summary>
            Create a location from save data
            </summary>
    </member>
    <member name="M:Barotrauma.Location.ClearMissions">
      <summary>
            Removes all unlocked missions from the location
            </summary>
    </member>
    <member name="M:Barotrauma.Location.RegisterTakenItems(System.Collections.Generic.IEnumerable{Barotrauma.Item})">
      <summary>
            Mark the items that have been taken from the outpost to prevent them from spawning when re-entering the outpost
            </summary>
    </member>
    <member name="M:Barotrauma.Location.RegisterKilledCharacters(System.Collections.Generic.IEnumerable{Barotrauma.Character})">
      <summary>
            Mark the characters who have been killed to prevent them from spawning when re-entering the outpost
            </summary>
    </member>
    <member name="M:Barotrauma.Location.CreateStores(System.Boolean)">
      <param name="force">If true, the stores will be recreated if they already exists.</param>
    </member>
    <member name="P:Barotrauma.LocationType.AllowInRandomLevels">
      <summary>
            Can this location type be used in the random, non-campaign levels that don't take place in any specific zone
            </summary>
    </member>
    <member name="P:Barotrauma.LocationType.IgnoreGenericEvents">
      <summary>
            If set to true, only event sets that explicitly define this location type in <see cref="F:Barotrauma.EventSet.LocationTypeIdentifiers" /> can be selected at this location. Defaults to false.
            </summary>
    </member>
    <member name="P:Barotrauma.LocationType.StorePriceModifierRange">
      <summary>
            In percentages
            </summary>
    </member>
    <member name="F:Barotrauma.LocationTypeChange.Requirement.RequiredLocations">
      <summary>
            The change can only happen if there's at least one of the given types of locations near this one
            </summary>
    </member>
    <member name="F:Barotrauma.LocationTypeChange.Requirement.RequiredProximity">
      <summary>
            How close the location needs to be to one of the RequiredLocations for the change to occur
            </summary>
    </member>
    <member name="F:Barotrauma.LocationTypeChange.Requirement.Probability">
      <summary>
            Base probability per turn for the location to change if near one of the RequiredLocations
            </summary>
    </member>
    <member name="F:Barotrauma.LocationTypeChange.Requirement.RequiredProximityForProbabilityIncrease">
      <summary>
            How close the location needs to be to one of the RequiredLocations for the probability to increase
            </summary>
    </member>
    <member name="F:Barotrauma.LocationTypeChange.Requirement.ProximityProbabilityIncrease">
      <summary>
            How much the probability increases per turn if within RequiredProximityForProbabilityIncrease steps of RequiredLocations
            </summary>
    </member>
    <member name="F:Barotrauma.LocationTypeChange.Requirement.RequireBeaconStation">
      <summary>
            Does there need to be a beacon station within RequiredProximity
            </summary>
    </member>
    <member name="F:Barotrauma.LocationTypeChange.Requirement.RequireHuntingGrounds">
      <summary>
            Does there need to be hunting grounds within RequiredProximity
            </summary>
    </member>
    <member name="F:Barotrauma.LocationTypeChange.Probability">
      <summary>
            Base probability per turn for the location to change if near one of the RequiredLocations
            </summary>
    </member>
    <member name="F:Barotrauma.LocationTypeChange.DisallowedAdjacentLocations">
      <summary>
            The change can't happen if there's one or more of the given types of locations near this one
            </summary>
    </member>
    <member name="F:Barotrauma.LocationTypeChange.DisallowedProximity">
      <summary>
            How close the location needs to be to one of the DisallowedAdjacentLocations for the change to be disabled
            </summary>
    </member>
    <member name="F:Barotrauma.LocationTypeChange.CooldownAfterChange">
      <summary>
            The location can't change it's type for this many turns after this location type changes occurs
            </summary>
    </member>
    <member name="F:Barotrauma.Map.OnLocationChanged">
      <summary>
            From -&gt; To
            </summary>
    </member>
    <member name="M:Barotrauma.Map.#ctor(Barotrauma.CampaignMode,System.Xml.Linq.XElement)">
      <summary>
            Load a previously saved campaign map from XML
            </summary>
    </member>
    <member name="M:Barotrauma.Map.#ctor(Barotrauma.CampaignMode,System.String)">
      <summary>
            Generate a new campaign map from the seed
            </summary>
    </member>
    <member name="M:Barotrauma.Map.GetDistanceToClosestLocationOrConnection(Barotrauma.Location,System.Int32,System.Func{Barotrauma.Location,System.Boolean},System.Func{Barotrauma.LocationConnection,System.Boolean})">
      <summary>
            Get the shortest distance from the start location to another location that satisfies the specified criteria.
            </summary>
      <returns>The distance to a matching location, or int.MaxValue if none are found.</returns>
    </member>
    <member name="M:Barotrauma.Map.Load(Barotrauma.CampaignMode,System.Xml.Linq.XElement)">
      <summary>
            Load a previously saved map from an xml element
            </summary>
    </member>
    <member name="M:Barotrauma.Map.LoadState(Barotrauma.CampaignMode,System.Xml.Linq.XElement,System.Boolean)">
      <summary>
            Load the state of an existing map from xml (current state of locations, where the crew is now, etc).
            </summary>
    </member>
    <member name="M:Barotrauma.Radiation.OnStep(System.Single)">
      <summary>
            Advances the progress  of the radiation.
            </summary>
      <param name="steps"></param>
    </member>
    <member name="P:Barotrauma.OutpostGenerationParams.AllowedLocationTypes">
      <summary>
            Identifiers of the location types this outpost can appear in. If empty, can appear in all types of locations.
            </summary>
    </member>
    <member name="F:Barotrauma.OutpostGenerator.PlacedModule.Info">
      <summary>
            Info of this outpost module
            </summary>
    </member>
    <member name="F:Barotrauma.OutpostGenerator.PlacedModule.PreviousModule">
      <summary>
            Which module is this one attached to
            </summary>
    </member>
    <member name="F:Barotrauma.OutpostGenerator.PlacedModule.ThisGapPosition">
      <summary>
            The position of this module's gap that attaches to the previous module
            </summary>
    </member>
    <member name="M:Barotrauma.OutpostGenerator.SelectModules(System.Collections.Generic.IEnumerable{Barotrauma.SubmarineInfo},Barotrauma.Location,Barotrauma.OutpostGenerationParams)">
      <summary>
            Select the number and types of the modules to use in the outpost
            </summary>
    </member>
    <member name="M:Barotrauma.OutpostGenerator.AppendToModule(Barotrauma.OutpostGenerator.PlacedModule,System.Collections.Generic.List{Barotrauma.SubmarineInfo},System.Collections.Generic.List{Barotrauma.Identifier},System.Collections.Generic.List{Barotrauma.OutpostGenerator.PlacedModule},Barotrauma.LocationType,System.Boolean,System.Boolean)">
      <summary>
            Attaches additional modules to all the available gaps of the given module, 
            and continues recursively through the attached modules until all the pending module types have been placed.
            </summary>
      <param name="currentModule">The module to attach to</param>
      <param name="availableModules">Which modules we can choose from</param>
      <param name="pendingModuleFlags">Which types of modules we still need in the outpost</param>
      <param name="selectedModules">The modules we've already selected to be used in the outpost.</param>
    </member>
    <member name="M:Barotrauma.OutpostGenerator.AppendModule(Barotrauma.OutpostGenerator.PlacedModule,Barotrauma.OutpostModuleInfo.GapPosition,System.Collections.Generic.List{Barotrauma.SubmarineInfo},System.Collections.Generic.List{Barotrauma.Identifier},System.Collections.Generic.List{Barotrauma.OutpostGenerator.PlacedModule},Barotrauma.LocationType,System.Boolean)">
      <summary>
            Attaches a new random module to one side of the given module
            </summary>
      <param name="currentModule">The module to attach to</param>
      <param name="gapPosition">Which side of the module to attach the new module to</param>
      <param name="availableModules">Which modules we can choose from</param>
      <param name="pendingModuleFlags">Which types of modules we still need in the outpost</param>
      <param name="selectedModules">The modules we've already selected to be used in the outpost.</param>
    </member>
    <member name="M:Barotrauma.OutpostGenerator.FindOverlap(System.Collections.Generic.IEnumerable{Barotrauma.OutpostGenerator.PlacedModule},System.Collections.Generic.IEnumerable{Barotrauma.OutpostGenerator.PlacedModule},Barotrauma.OutpostGenerator.PlacedModule@,Barotrauma.OutpostGenerator.PlacedModule@)">
      <summary>
            Check if any of the modules in modules1 overlap with modules in modules2
            </summary>
    </member>
    <member name="M:Barotrauma.OutpostGenerator.ModulesOverlap(Barotrauma.OutpostGenerator.PlacedModule,Barotrauma.OutpostGenerator.PlacedModule)">
      <summary>
            Check if the modules overlap, taking their Offsets and MoveOffsets into account
            </summary>
    </member>
    <member name="M:Barotrauma.OutpostGenerator.ModuleOverlapsWithModuleConnections(System.Collections.Generic.IEnumerable{Barotrauma.OutpostGenerator.PlacedModule})">
      <summary>
            Check if any of the modules overlaps with a connection between 2 other modules
            </summary>
    </member>
    <member name="M:Barotrauma.OutpostGenerator.FindOverlapSolution(System.Collections.Generic.IEnumerable{Barotrauma.OutpostGenerator.PlacedModule},Barotrauma.OutpostGenerator.PlacedModule,Barotrauma.OutpostGenerator.PlacedModule,System.Collections.Generic.IEnumerable{Barotrauma.OutpostGenerator.PlacedModule},System.Collections.Generic.Dictionary{Barotrauma.OutpostGenerator.PlacedModule,Microsoft.Xna.Framework.Vector2}@)">
      <summary>
            Attempt to find a way to move the modules in a way that stops the 2 specific modules from overlapping.
            Done by iterating through the modules and testing how much the subsequent modules (i.e. modules that are further from the initial outpost) 
            would need to be moved further to solve the overlap. The solution that requires moving the modules the least is chosen.
            </summary>
      <param name="movableModules">The set of modules the method is allowed to move</param>
      <param name="module1">Module overlapping with module2</param>
      <param name="module2">Module overlapping with module1</param>
      <param name="allmodules">All generated modules</param>
      <param name="solution">The solution to the overlap (if any). Key = placed module, value = distance to move the module</param>
      <returns>Was a solution found for resolving the overlap.</returns>
    </member>
    <member name="M:Barotrauma.OutpostGenerator.GetSubsequentModules(Barotrauma.OutpostGenerator.PlacedModule,System.Collections.Generic.IEnumerable{Barotrauma.OutpostGenerator.PlacedModule},System.Collections.Generic.List{Barotrauma.OutpostGenerator.PlacedModule}@)">
      <summary>
            Get the modules that are further from the initial module than the startModule. StartModule is also included in the list.
            </summary>
    </member>
    <member name="P:Barotrauma.PriceInfo.CanBeSpecial">
      <summary>
            Can the item be a Daily Special or a Requested Good
            </summary>
    </member>
    <member name="P:Barotrauma.PriceInfo.MinLevelDifficulty">
      <summary>
            The item isn't available in stores unless the level's difficulty is above this value
            </summary>
    </member>
    <member name="P:Barotrauma.PriceInfo.BuyingPriceMultiplier">
      <summary>
            The cost of item when sold by the store. Higher modifier means the item costs more to buy from the store.
            </summary>
    </member>
    <member name="F:Barotrauma.PriceInfo.DefaultAmount">
      <summary>
            Used when both <see cref="P:Barotrauma.PriceInfo.MinAvailableAmount" /> and <see cref="P:Barotrauma.PriceInfo.MaxAvailableAmount" /> are set to 0.
            </summary>
    </member>
    <member name="P:Barotrauma.PriceInfo.MinReputation">
      <summary>
            Minimum reputation needed to buy the item (Key = faction ID, Value = min rep)
            </summary>
    </member>
    <member name="M:Barotrauma.PriceInfo.#ctor(System.Xml.Linq.XElement)">
      <summary>
            Support for the old style of determining item prices
            when there were individual Price elements for each location type
            where the item was for sale.
            </summary>
    </member>
    <member name="F:Barotrauma.StructurePrefab.IsHorizontal">
      <summary>
            If null, the orientation is determined automatically based on the dimensions of the structure instances
            </summary>
    </member>
    <member name="P:Barotrauma.SubmarineBody.Borders">
      <summary>
            Extents of the solid items/structures (ones with a physics body) and hulls
            </summary>
    </member>
    <member name="P:Barotrauma.SubmarineBody.VisibleBorders">
      <summary>
            Extents of all the visible items/structures/hulls (including ones without a physics body)
            </summary>
    </member>
    <member name="M:Barotrauma.SubmarineBody.DisplaceCharacters(Microsoft.Xna.Framework.Vector2)">
      <summary>
            Moves away any character that is inside the bounding box of the sub (but not inside the sub)
            </summary>
      <param name="subTranslation">The translation that was applied to the sub before doing the displacement 
            (used for determining where to push the characters)</param>
    </member>
    <member name="P:Barotrauma.SubmarineInfo.EqualityCheckVal">
      <summary>
            A random int that gets assigned when saving the sub. Used in mp campaign to verify that sub files match
            </summary>
    </member>
    <member name="P:Barotrauma.SubmarineInfo.LowFuel">
      <summary>
            Note: Refreshed for loaded submarines when they are saved, when they are loaded, and on round end. If you need to refresh it, please use Submarine.CheckFuel() method!
            </summary>
    </member>
    <member name="M:Barotrauma.SubmarineInfo.IsCrushDepthDefinedInStructures(System.Single@)">
      <summary>
            Calculated from <see cref="P:Barotrauma.SubmarineInfo.SubmarineElement" />. Can be used when the sub hasn't been loaded and we can't access <see cref="P:Barotrauma.Submarine.RealWorldCrushDepth" />.
            </summary>
    </member>
    <member name="M:Barotrauma.WayPoint.OnGapStateChanged(System.Boolean,Barotrauma.Gap)">
      <summary>
            Only called by a Gap when the state changes.
            So in practice used like an event callback, although technically just a method
            (It would be cleaner to use an actual event in Gap.cs, but event registering and unregistering might cause an extra hassle)
            </summary>
    </member>
    <member name="T:Barotrauma.NetworkSerialize">
      <summary>
             Marks fields and properties as to be serialized and deserialized by <see cref="T:Barotrauma.INetSerializableStruct" />.
             Also contains settings for some types like maximum and minimum values for numbers to reduce bits used.
             </summary>
      <example>
        <code>
             struct NetPurchasedItem : INetSerializableStruct
             {
                 [NetworkSerialize]
                 public string Identifier;
            
                 [NetworkSerialize(ArrayMaxSize = 16)]
                 public string[] Tags;
            
                 [NetworkSerialize(MinValueInt = 0, MaxValueInt = 8)]
                 public int Amount;
             }
             </code>
      </example>
      <remarks>
             Using the attribute on the struct will make all fields and properties serialized
             </remarks>
    </member>
    <member name="T:Barotrauma.NetSerializableProperties">
      <summary>
            Static class that contains serialize and deserialize functions for different types used in <see cref="T:Barotrauma.INetSerializableStruct" /></summary>
    </member>
    <member name="M:Barotrauma.NetSerializableProperties.CreateBehavior``1(System.Type,System.Type,Barotrauma.NetSerializableProperties.ReadWriteBehavior{``0}.ReadDelegate,Barotrauma.NetSerializableProperties.ReadWriteBehavior{``0}.WriteDelegate)">
      <param name="behaviorGenericParam">The type that the behavior handles</param>
      <param name="funcGenericParam">The type that will be used as the generic parameter for the read/write methods</param>
      <param name="readFunc">The read method.
            It must have a generic parameter.
            The return type must be such that if the generic parameter is replaced with funcGenericParam, you get behaviorGenericParam.</param>
      <param name="writeFunc">The write method. The first parameter's type must be the same as readFunc's return type.</param>
      <typeparam name="TDelegateBase">Ideally the least specific type possible, because it's replaced by behaviorGenericParam</typeparam>
      <returns>A ReadWriteBehavior&lt;behaviorGenericParam&gt;</returns>
    </member>
    <member name="T:Barotrauma.INetSerializableStruct">
      <summary>
             Interface that allows the creation of automatically serializable and deserializable structs.
             <br /><br /></summary>
      <example>
        <code>
             public enum PurchaseResult
             {
                 Unknown,
                 Completed,
                 Declined
             }
            
             [NetworkSerialize]
             struct NetStoreTransaction : INetSerializableStruct
             {
                 public long Timestamp { get; set; }
                 public PurchaseResult Result { get; set; }
                 public NetPurchasedItem? PurchasedItem { get; set; }
             }
            
             [NetworkSerialize]
             struct NetPurchasedItem : INetSerializableStruct
             {
                 public string Identifier;
                 public string[] Tags;
                 public int Amount;
             }
             </code>
      </example>
      <remarks>
             Supported types are:<br /><see cref="T:System.Boolean">bool</see><br /><see cref="T:System.Byte">byte</see><br /><see cref="T:System.UInt16">ushort</see><br /><see cref="T:System.Int16">short</see><br /><see cref="T:System.UInt32">uint</see><br /><see cref="T:System.Int32">int</see><br /><see cref="T:System.UInt64">ulong</see><br /><see cref="T:System.Int64">long</see><br /><see cref="T:System.Single">float</see><br /><see cref="T:System.Double">double</see><br /><see cref="T:System.String">string</see><br /><see cref="T:Barotrauma.Networking.AccountId" /><br /><see cref="T:System.Collections.Immutable.ImmutableArray`1"></see><br /><see cref="T:Microsoft.Xna.Framework.Color" /><br /><see cref="T:Microsoft.Xna.Framework.Vector2" /><br />
             In addition arrays, enums, <see cref="T:System.Nullable`1" /> and <see cref="T:Barotrauma.Option`1" /> are supported.<br />
             Using <see cref="T:System.Nullable`1" /> or <see cref="T:Barotrauma.Option`1" /> will make the field or property optional.
             </remarks>
      <seealso cref="T:Barotrauma.NetworkSerialize" />
    </member>
    <member name="M:Barotrauma.INetSerializableStruct.Read``1(Barotrauma.Networking.IReadMessage)">
      <summary>
             Deserializes a network message into a struct.
             </summary>
      <example>
        <code>
             public void ClientRead(IReadMessage inc)
             {
                 NetStoreTransaction transaction = INetSerializableStruct.Read&lt;NetStoreTransaction&gt;(inc);
                 if (transaction.Result == PurchaseResult.Declined)
                 {
                     Console.WriteLine("Purchase declined!");
                     return;
                 }
            
                 if (transaction.PurchasedItem is { } item)
                 {
                     // Purchased 3x Wrench with tags: smallitem, mechanical, tool
                     Console.WriteLine($"Purchased {item.Amount}x {item.Identifier} with tags: {string.Join(", ", item.Tags)}");
                 }
             }
             </code>
      </example>
      <param name="inc">Incoming network message</param>
      <typeparam name="T">Type of the struct that implements <see cref="T:Barotrauma.INetSerializableStruct" /></typeparam>
      <returns>A new struct of type T with fields and properties deserialized</returns>
    </member>
    <member name="M:Barotrauma.INetSerializableStruct.Write(Barotrauma.Networking.IWriteMessage)">
      <summary>
             Serializes the struct into a network message
             <example><code>
             public void ServerWrite(IWriteMessage msg)
             {
                 INetSerializableStruct transaction = new NetStoreTransaction
                 {
                     Result = PurchaseResult.Completed,
                     Timestamp = DateTimeOffset.Now.ToUnixTimeSeconds(),
                     PurchasedItem = new NetPurchasedItem
                     {
                         Identifier = "Wrench",
                         Amount = 3,
                         Tags = new []{ "smallitem", "mechanical", "tool" }
                     }
                 };
            
                 transaction.Write(msg);
             }
             </code></example></summary>
      <param name="msg">Outgoing network message</param>
    </member>
    <member name="M:Barotrauma.PrefabCollection`1.#ctor">
      <summary>
            Default constructor.
            </summary>
    </member>
    <member name="M:Barotrauma.PrefabCollection`1.#ctor(System.Action{`0,System.Boolean},System.Action{`0},System.Action,System.Action{Barotrauma.ContentFile},System.Action{Barotrauma.ContentFile})">
      <summary>
            Constructor with OnAdd and OnRemove callbacks provided.
            </summary>
    </member>
    <member name="M:Barotrauma.PrefabCollection`1.#ctor(System.Action)">
      <summary>
            Constructor with only the OnSort callback provided.
            </summary>
    </member>
    <member name="F:Barotrauma.PrefabCollection`1.OnAdd">
      <summary>
            Method to be called when calling Add(T prefab, bool override).
            If provided, the method is called only if Add succeeds.
            </summary>
    </member>
    <member name="F:Barotrauma.PrefabCollection`1.OnRemove">
      <summary>
            Method to be called when calling Remove(T prefab).
            If provided, the method is called before success
            or failure can be determined within the body of Remove.
            </summary>
    </member>
    <member name="F:Barotrauma.PrefabCollection`1.OnSort">
      <summary>
            Method to be called when calling SortAll().
            </summary>
    </member>
    <member name="F:Barotrauma.PrefabCollection`1.OnAddOverrideFile">
      <summary>
            Method to be called when calling AddOverrideFile(ContentFile file).
            </summary>
    </member>
    <member name="F:Barotrauma.PrefabCollection`1.OnRemoveOverrideFile">
      <summary>
            Method to be called when calling RemoveOverrideFile(ContentFile file).
            </summary>
    </member>
    <member name="F:Barotrauma.PrefabCollection`1.prefabs">
      <summary>
            Dictionary containing all prefabs of the same type.
            Key is the identifier.
            Value is a list of prefabs that share the same identifier,
            where the first element is the "base" prefab,
            i.e. the only prefab that's loaded when override tags are not defined.
            This first element can be null, if only overrides are defined.
            The last element of the list is the prefab that is effectively used
            (hereby called "active prefab")
            </summary>
    </member>
    <member name="F:Barotrauma.PrefabCollection`1.overrideFiles">
      <summary>
            Collection of content files that override all previous prefabs
            i.e. anything set to load before these effectively doesn't exist
            </summary>
    </member>
    <member name="P:Barotrauma.PrefabCollection`1.AllPrefabs">
      <summary>
            AllPrefabs exposes all prefabs instead of just the active ones.
            </summary>
    </member>
    <member name="P:Barotrauma.PrefabCollection`1.Item(Barotrauma.Identifier)">
      <summary>
            Returns the active prefab with the given identifier.
            </summary>
      <param name="identifier">Prefab identifier</param>
      <returns>Active prefab with the given identifier</returns>
    </member>
    <member name="M:Barotrauma.PrefabCollection`1.TryGet(Barotrauma.Identifier,`0@)">
      <summary>
            Returns true if a prefab with the identifier exists, false otherwise.
            </summary>
      <param name="identifier">Prefab identifier</param>
      <param name="result">The matching prefab (if one is found)</param>
      <returns>Whether a prefab with the identifier exists or not</returns>
    </member>
    <member name="M:Barotrauma.PrefabCollection`1.Find(System.Predicate{`0})">
      <summary>
            Finds the first active prefab that returns true given the predicate,
            or null if no such prefab is found.
            </summary>
      <param name="predicate">Predicate to perform the search with.</param>
      <returns></returns>
    </member>
    <member name="M:Barotrauma.PrefabCollection`1.ContainsKey(Barotrauma.Identifier)">
      <summary>
            Returns true if a prefab with the given identifier exists, false otherwise.
            </summary>
      <param name="identifier">Prefab identifier</param>
      <returns>Whether a prefab with the given identifier exists or not</returns>
    </member>
    <member name="M:Barotrauma.PrefabCollection`1.IsOverride(`0)">
      <summary>
            Determines whether a prefab is implemented as an override or not.
            </summary>
      <param name="prefab">Prefab in this collection</param>
      <returns>Whether a prefab is implemented as an override or not</returns>
    </member>
    <member name="M:Barotrauma.PrefabCollection`1.Add(`0,System.Boolean)">
      <summary>
            Add a prefab to the collection.
            If not marked as an override, fail if a prefab with the same
            identifier already exists.
            Otherwise, add to the corresponding list,
            without making any changes to the base prefab.
            </summary>
      <param name="prefab">Prefab</param>
      <param name="isOverride">Is marked as override</param>
    </member>
    <member name="M:Barotrauma.PrefabCollection`1.Remove(`0)">
      <summary>
            Removes a prefab from the collection.
            </summary>
      <param name="prefab">Prefab</param>
    </member>
    <member name="M:Barotrauma.PrefabCollection`1.RemoveByFile(Barotrauma.ContentFile)">
      <summary>
            Removes all prefabs that were loaded from a certain file.
            </summary>
    </member>
    <member name="M:Barotrauma.PrefabCollection`1.AddOverrideFile(Barotrauma.ContentFile)">
      <summary>
            Adds an override file to the collection.
            </summary>
    </member>
    <member name="M:Barotrauma.PrefabCollection`1.RemoveOverrideFile(Barotrauma.ContentFile)">
      <summary>
            Removes an override file from the collection.
            </summary>
    </member>
    <member name="M:Barotrauma.PrefabCollection`1.SortAll">
      <summary>
            Sorts all prefabs in the collection based on the content package load order.
            </summary>
    </member>
    <member name="M:Barotrauma.PrefabCollection`1.GetEnumerator">
      <summary>
            GetEnumerator implementation to enable foreach
            </summary>
      <returns>IEnumerator</returns>
    </member>
    <member name="M:Barotrauma.PrefabCollection`1.System#Collections#IEnumerable#GetEnumerator">
      <summary>
            GetEnumerator implementation to enable foreach
            </summary>
      <returns>IEnumerator</returns>
    </member>
    <member name="T:Barotrauma.PrefabWithUintIdentifier">
      <summary>
            Prefab that has a property serves as a deterministic hash of
            a prefab's identifier. This member is filled automatically
            by PrefabCollection.Add. Required for GetRandom to work on
            arbitrary Prefab enumerables, recommended for network synchronization.
            </summary>
    </member>
    <member name="M:Barotrauma.PerlinNoise.GetPerlin(System.Single,System.Single)">
      <summary>
            Sample a pre-generated perlin noise map. Faster than calculating the noise on the fly.
            </summary>
      <param name="x">Normalized x position. The noise map starts repeating after x &gt; 1</param>
      <param name="y">Normalized y position. The noise map starts repeating after y &gt; 1</param>
      <returns>A noise value between 0.0f and 1.0f</returns>
    </member>
    <member name="M:Barotrauma.GameScreen.Update(System.Double)">
      <summary>
            Allows the game to run logic such as updating the world,
            checking for collisions, gathering input, and playing audio.
            </summary>
    </member>
    <member name="F:Barotrauma.Editable.VectorComponentLabels">
      <summary>
            Labels of the components of a vector property (defaults to x,y,z,w)
            </summary>
    </member>
    <member name="F:Barotrauma.Editable.FallBackTextTag">
      <summary>
            If a translation can't be found for the property name, this tag is used instead
            </summary>
    </member>
    <member name="F:Barotrauma.Editable.ReadOnly">
      <summary>
            Currently implemented only for int and bool fields. TODO: implement the remaining types (SerializableEntityEditor)
            </summary>
    </member>
    <member name="F:Barotrauma.Serialize.AlwaysUseInstanceValues">
      <summary>
            If set to true, the instance values saved in a submarine file will always override the prefab values, even if using a mod that normally overrides instance values.
            </summary>
    </member>
    <!-- Badly formed XML comment ignored for member "M:Barotrauma.Serialize.#ctor(System.Object,Barotrauma.IsPropertySaveable,System.String,System.String,System.Boolean)" -->
    <member name="M:Barotrauma.SerializableProperty.TryGetValueWithoutReflection(System.Object)">
      <summary>
            Try getting the values of some commonly used properties directly without reflection
            </summary>
    </member>
    <member name="M:Barotrauma.SerializableProperty.TryGetFloatValueWithoutReflection(System.Object,System.Single@)">
      <summary>
            Try getting the values of some commonly used properties directly without reflection
            </summary>
    </member>
    <member name="M:Barotrauma.SerializableProperty.TryGetBoolValueWithoutReflection(System.Object,System.Boolean@)">
      <summary>
            Try getting the values of some commonly used properties directly without reflection
            </summary>
    </member>
    <member name="M:Barotrauma.SerializableProperty.TryGetStringValueWithoutReflection(System.Object,System.String@)">
      <summary>
            Try getting the values of some commonly used properties directly without reflection
            </summary>
    </member>
    <member name="M:Barotrauma.SerializableProperty.TrySetFloatValueWithoutReflection(System.Object,System.Single)">
      <summary>
            Try setting the values of some commonly used properties directly without reflection
            </summary>
    </member>
    <member name="M:Barotrauma.SerializableProperty.TrySetBoolValueWithoutReflection(System.Object,System.Boolean)">
      <summary>
            Try setting the values of some commonly used properties directly without reflection
            </summary>
    </member>
    <member name="M:Barotrauma.SerializableProperty.UpgradeGameVersion(Barotrauma.ISerializableEntity,Barotrauma.ContentXElement,System.Version)">
      <summary>
            Upgrade the properties of an entity saved with an older version of the game. Properties that should be upgraded are defined using "Upgrade" elements in the config file.
            for example, <Upgrade gameversion="0.9.2.0" scale="0.5" /> would force the scale of the entity to 0.5 if it was saved with a version prior to 0.9.2.0.
            </summary>
      <param name="entity">The entity to upgrade</param>
      <param name="configElement">The XML element to get the upgrade instructions from (e.g. the config of an item prefab)</param>
      <param name="savedVersion">The game version the entity was saved with</param>
    </member>
    <member name="M:Barotrauma.XMLExtensions.GetChildElement(System.Xml.Linq.XContainer,System.String,System.StringComparison)">
      <summary>
            Returns the first child element that matches the name using the provided comparison method.
            </summary>
    </member>
    <member name="M:Barotrauma.XMLExtensions.GetChildElements(System.Xml.Linq.XContainer,System.String,System.StringComparison)">
      <summary>
            Returns all child elements that match the name using the provided comparison method.
            </summary>
    </member>
    <member name="P:Barotrauma.CreatureMetrics.RecentlyEncountered">
      <summary>
            Resets every round.
            </summary>
    </member>
    <member name="P:Barotrauma.Sprite.SourceElement">
      <summary>
            Reference to the xml element from where the sprite was created. Can be null if the sprite was not defined in xml!
            </summary>
    </member>
    <member name="P:Barotrauma.Sprite.Origin">
      <summary>
            In pixels
            </summary>
    </member>
    <member name="P:Barotrauma.Sprite.RelativeOrigin">
      <summary>
            0 - 1
            </summary>
    </member>
    <member name="P:Barotrauma.Sprite.EntityIdentifier">
      <summary>
            Identifier of the Map Entity so that we can link the sprite to its owner.
            </summary>
    </member>
    <member name="M:Barotrauma.Sprite.GetIdentifier(System.Xml.Linq.XElement)">
      <summary>
            Creates a supposedly unique identifier from the parent element. If the parent element is not found, uses the sprite element.
            TODO: If there are multiple elements with exactly the same data, the ids will fail. -&gt; Is there a better way to identify the sprites?
            ALSO TODO: delete :)
            </summary>
    </member>
    <member name="M:Barotrauma.Sprite.ReloadXML">
      <summary>
            Works only if there is a name attribute defined for the sprite. For items and structures, the entity id or name is used if the sprite's name attribute is not defined.
            </summary>
    </member>
    <member name="F:Barotrauma.StatusEffect.ItemSpawnInfo.SpawnIfCantBeContained">
      <summary>
            Should the item spawn even if the container can't contain items of this type
            </summary>
    </member>
    <member name="P:Barotrauma.StatusEffect.CharacterSpawnInfo.TotalMaxCount">
      <summary>
            The maximum amount of creatures of the same species in the same team that are allowed to be spawned via this status effect. 
            Also the creatures spawned by other means are counted in the check.
            </summary>
    </member>
    <member name="F:Barotrauma.StatusEffect.TargetSlot">
      <summary>
            Index of the slot the target must be in when targeting a Contained item
            </summary>
    </member>
    <member name="F:Barotrauma.StatusEffect.CheckConditionalAlways">
      <summary>
            Always do the conditional checks for the duration/delay. If false, only check conditional on apply.
            </summary>
    </member>
    <member name="F:Barotrauma.StatusEffect.Stackable">
      <summary>
            Only valid if the effect has a duration or delay. Can the effect be applied on the same target(s)s if the effect is already being applied?
            </summary>
    </member>
    <member name="F:Barotrauma.StatusEffect.Interval">
      <summary>
            The interval at which the effect is executed. The difference between delay and interval is that effects with a delay find the targets, check the conditions, etc
            immediately when Apply is called, but don't apply the effects until the delay has passed. Effects with an interval check if the interval has passed when Apply is
            called and apply the effects if it has, otherwise they do nothing.
            </summary>
    </member>
    <member name="F:Barotrauma.StatusEffect.AllowWhenBroken">
      <summary>
            Can the StatusEffect be applied when the item applying it is broken
            </summary>
    </member>
    <member name="F:Barotrauma.StatusEffect.requiredAfflictions">
      <summary>
            Which type of afflictions the target must receive for the StatusEffect to be applied. Only valid when the type of the effect is OnDamaged.
            </summary>
    </member>
    <member name="T:Barotrauma.SteamAchievementManager.RoundData">
      <summary>
            Keeps track of things that have happened during the round
            </summary>
    </member>
    <member name="M:Barotrauma.TextManager.VerifyLanguageAvailable">
      <summary>
            Check if the currently selected language is available, and switch to English if not
            </summary>
    </member>
    <member name="P:Barotrauma.Timing.FrameLimit">
      <summary>
            Maximum FPS (0 = unlimited).
            </summary>
    </member>
    <member name="M:Barotrauma.PropertyReference.CalculateUpgrade(System.Int32)">
      <summary>
            Calculate the new value of the property
            </summary>
      <param name="level">level of the upgrade</param>
      <returns></returns>
    </member>
    <member name="M:Barotrauma.PropertyReference.ApplySavedValue(System.Xml.Linq.XElement)">
      <summary>
            Sets the OriginalValue to a value stored in the save XML element
            </summary>
      <param name="savedElement"></param>
    </member>
    <member name="M:Barotrauma.PropertyReference.ApplyPercentage(System.Single,System.Single,System.Int32)">
      <summary>
            Recursively apply a percentage to a value certain amount of times
            </summary>
      <param name="value">original value</param>
      <param name="amount">percentage increase/decrease</param>
      <param name="times">how many times to apply the percentage change</param>
      <returns></returns>
    </member>
    <member name="M:Barotrauma.Upgrade.ResetNonAffectedProperties(System.Xml.Linq.XContainer)">
      <summary>
            Finds saved properties in the XML element and resets properties that are not managed by the upgrade anymore to their default values
            </summary>
      <param name="saveElement">XML save element</param>
    </member>
    <member name="M:Barotrauma.Upgrade.FindItemComponent(Barotrauma.Item,System.String)">
      <summary>
            Find an item component matching the XML element
            </summary>
      <param name="item">Target item</param>
      <param name="name">XML ItemComponent element</param>
      <returns>Array of matching ItemComponents or null</returns>
    </member>
    <member name="M:Barotrauma.Upgrade.ApplyUpgrade">
      <summary>
            Applies the upgrade to the target item and components
            </summary>
      <remarks>
            This method should be called every time a new upgrade is added unless you set the original values of PropertyReference manually.
            Do note that <see cref="M:Barotrauma.MapEntity.AddUpgrade(Barotrauma.Upgrade,System.Boolean)" /> calls this method automatically.
            </remarks>
    </member>
    <member name="F:Barotrauma.UpgradePrefab.MaxLevel">
      <summary>
            Maximum upgrade level without taking submarine tier or class restrictions into account
            </summary>
    </member>
    <member name="M:Barotrauma.UpgradePrefab.GetMaxLevelForCurrentSub">
      <summary>
            Returns the maximum upgrade level for the current sub, taking tier and class restrictions into account
            </summary>
    </member>
    <member name="M:Barotrauma.UpgradePrefab.GetMaxLevel(Barotrauma.SubmarineInfo)">
      <summary>
            Returns the maximum upgrade level for the specified sub, taking tier and class restrictions into account
            </summary>
    </member>
    <member name="M:Barotrauma.UpgradePrefab.ParsePercentage(System.String,Barotrauma.Identifier,System.Xml.Linq.XElement,System.Boolean)">
      <summary>
            Parse a integer value from a string that is formatted like a percentage increase / decrease.
            </summary>
      <param name="value">String to parse</param>
      <param name="attribute">What XML attribute the value originates from, only used for warning formatting.</param>
      <param name="sourceElement">What XMLElement the value originates from, only used for warning formatting.</param>
      <param name="suppressWarnings">Whether or not to suppress warnings if both "attribute" and "sourceElement" are defined.</param>
      <returns></returns>
      <example>
            This sample returns -15 as an integer.
            <code>
            XElement element = new XElement("change", new XAttribute("increase", "-15%"));
            ParsePercentage(element.GetAttributeString("increase", string.Empty));
            </code></example>
    </member>
    <member name="F:Barotrauma.Homoglyphs.homoglyphs">
            List of homoglyphs taken from https://github.com/codebox/homoglyph/
        </member>
    <member name="M:Barotrauma.MathUtils.WrapAngleTwoPi(System.Single)">
      <summary>
            wrap the angle between 0.0f and 2pi
            </summary>
    </member>
    <member name="M:Barotrauma.MathUtils.WrapAnglePi(System.Single)">
      <summary>
            wrap the angle between -pi and pi
            </summary>
    </member>
    <member name="M:Barotrauma.MathUtils.GetMidAngle(System.Single,System.Single)">
      <summary>
            Returns the angle between the two angles, where the direction matters.
            </summary>
    </member>
    <member name="M:Barotrauma.MathUtils.SolveTriangleSSS(System.Single,System.Single,System.Single)">
      <summary>
            solves the angle opposite to side a (parameters: lengths of each side)
            </summary>
    </member>
    <member name="M:Barotrauma.MathUtils.LinesIntersect(Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2)">
      <summary>
            check whether line from a to b is intersecting with line from c to b
            </summary>
    </member>
    <member name="M:Barotrauma.MathUtils.GetLineCircleIntersections(Microsoft.Xna.Framework.Vector2,System.Single,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,System.Boolean,System.Nullable{Microsoft.Xna.Framework.Vector2}@,System.Nullable{Microsoft.Xna.Framework.Vector2}@)">
      <summary>
            Get the intersections between a line (either infinite or a line segment) and a circle
            </summary>
      <param name="circlePos">Center of the circle</param>
      <param name="radius">Radius of the circle</param>
      <param name="point1">1st point on the line</param>
      <param name="point2">2nd point on the line</param>
      <param name="isLineSegment">Is the line a segment or infinite</param>
      <returns>The number of intersections</returns>
    </member>
    <member name="M:Barotrauma.MathUtils.GetPointOnCircumference(Microsoft.Xna.Framework.Vector2,System.Single,System.Single)">
      <summary>
            Get a point on a circle's circumference
            </summary>
      <param name="center">Center of the circle</param>
      <param name="radius">Radius of the circle</param>
      <param name="angle">Angle (in radians) from the center</param>
      <returns></returns>
    </member>
    <member name="M:Barotrauma.MathUtils.GetPointsOnCircumference(Microsoft.Xna.Framework.Vector2,System.Single,System.Int32,System.Single)">
      <summary>
            Get a specific number of evenly distributed points on a circle's circumference
            </summary>
      <param name="center">Center of the circle</param>
      <param name="radius">Radius of the circle</param>
      <param name="points">Number of points to calculate</param>
      <param name="firstAngle">Angle (in radians) of the first point from the center</param>
      <returns></returns>
    </member>
    <member name="M:Barotrauma.MathUtils.TriangulateConvexHull(System.Collections.Generic.List{Microsoft.Xna.Framework.Vector2},Microsoft.Xna.Framework.Vector2)">
      <summary>
            divide a convex hull into triangles
            </summary>
      <returns>List of triangle vertices (sorted counter-clockwise)</returns>
    </member>
    <member name="M:Barotrauma.MathUtils.NearlyEqual(System.Single,System.Single,System.Single)">
      <summary>
            Float comparison. Note that may still fail in some cases.
            </summary>
    </member>
    <member name="M:Barotrauma.MathUtils.NearlyEqual(Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,System.Single)">
      <summary>
            Float comparison. Note that may still fail in some cases.
            </summary>
    </member>
    <member name="M:Barotrauma.MathUtils.Bezier(Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,System.Single)">
      <summary>
            Returns a position in a curve.
            </summary>
    </member>
    <member name="M:Barotrauma.MathUtils.ToVector2(Barotrauma.Alignment)">
      <summary>
            Converts the alignment to a vector where -1,-1 is the top-left corner, 0,0 the center and 1,1 bottom-right
            </summary>
    </member>
    <member name="M:Barotrauma.MathUtils.RotatePointAroundTarget(Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,System.Single,System.Boolean)">
      <summary>
            Rotates a point in 2d space around another point.
            Modified from:
            http://www.gamefromscratch.com/post/2012/11/24/GameDev-math-recipes-Rotating-one-point-around-another-point.aspx
            </summary>
    </member>
    <member name="M:Barotrauma.MathUtils.RotatePoint(Microsoft.Xna.Framework.Vector2,System.Single)">
      <summary>
            Rotates a point in 2d space around the origin
            </summary>
    </member>
    <member name="M:Barotrauma.MathUtils.GetImaginaryRect(Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2)">
      <summary>
            Returns the corners of an imaginary rectangle.
            Unlike the XNA rectangle, this can be rotated with the up parameter.
            </summary>
    </member>
    <member name="M:Barotrauma.MathUtils.GetImaginaryRect(Microsoft.Xna.Framework.Vector2[],Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2)">
      <summary>
            Returns the corners of an imaginary rectangle.
            Unlike the XNA Rectangle, this can be rotated with the up parameter.
            </summary>
    </member>
    <member name="M:Barotrauma.MathUtils.RectangleContainsPoint(Microsoft.Xna.Framework.Vector2[],Microsoft.Xna.Framework.Vector2)">
      <summary>
            Check if a point is inside a rectangle.
            Unlike the XNA Rectangle, this rectangle might have been rotated.
            For XNA Rectangles, use the Contains instance method.
            </summary>
    </member>
    <member name="M:Barotrauma.MathUtils.RectangleContainsPoint(Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2)">
      <summary>
            Check if a point is inside a rectangle.
            Unlike the XNA Rectangle, this rectangle might have been rotated.
            For XNA Rectangles, use the Contains instance method.
            </summary>
    </member>
    <member name="M:Barotrauma.MathUtils.TriangleContainsPoint(Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2,Microsoft.Xna.Framework.Vector2)">
      <summary>
            Slightly modified from https://gamedev.stackexchange.com/questions/110229/how-do-i-efficiently-check-if-a-point-is-inside-a-rotated-rectangle
            </summary>
    </member>
    <member name="M:Barotrauma.MathUtils.InverseLerp(System.Single,System.Single,System.Single)">
      <summary>
            Returns a scalar t from a value v between a range from min to max. Clamped between 0 and 1.
            </summary>
    </member>
    <member name="T:Barotrauma.MTRandom">
      <summary>
            Mersenne Twister based random
            </summary>
    </member>
    <member name="M:Barotrauma.MTRandom.#ctor">
      <summary>
            Constructor with randomized seed
            </summary>
    </member>
    <member name="M:Barotrauma.MTRandom.#ctor(System.Int32)">
      <summary>
            Constructor with provided 32 bit seed
            </summary>
    </member>
    <member name="M:Barotrauma.MTRandom.Initialize(System.UInt32)">
      <summary>
            (Re)initialize this instance with provided 32 bit seed
            </summary>
    </member>
    <member name="M:Barotrauma.MTRandom.NextUInt32">
      <summary>
            Generates a random value from UInt32.MinValue to UInt32.MaxValue, inclusively
            </summary>
    </member>
    <member name="M:Barotrauma.MTRandom.Next">
      <summary>
            Generates a random value that is greater or equal than 0 and less than Int32.MaxValue
            </summary>
    </member>
    <member name="M:Barotrauma.MTRandom.Next(System.Int32)">
      <summary>
            Returns a random value is greater or equal than 0 and less than maxValue
            </summary>
    </member>
    <member name="M:Barotrauma.MTRandom.NextInt32">
      <summary>
            Generates a random value greater or equal than 0 and less or equal than Int32.MaxValue (inclusively)
            </summary>
    </member>
    <member name="M:Barotrauma.MTRandom.NextDouble">
      <summary>
            Returns random value larger or equal to 0.0 and less than 1.0
            </summary>
    </member>
    <member name="M:Barotrauma.Rand.Range(System.Int32,System.Int32,Barotrauma.Rand.RandSync)">
      <summary>
            Min inclusive, Max exclusive!
            </summary>
    </member>
    <member name="M:Barotrauma.Rand.Value(Barotrauma.Rand.RandSync)">
      <summary>
            Random float between 0 and 1.
            </summary>
    </member>
    <!-- Badly formed XML comment ignored for member "T:Barotrauma.Range`1" -->
    <member name="M:Barotrauma.ReflectionUtils.AddNonAbstractAssemblyTypes(System.Reflection.Assembly,System.Boolean)">
      <summary>
            Adds an assembly's Non-Abstract Types to the cache for Barotrauma's Type lookup. 
            </summary>
      <param name="assembly">Assembly to be added</param>
      <param name="overwrite">Whether or not to overwrite an entry if the assembly already exists within it.</param>
    </member>
    <member name="M:Barotrauma.ReflectionUtils.RemoveAssemblyFromCache(System.Reflection.Assembly)">
      <summary>
            Removes an assembly from the cache for Barotrauma's Type lookup.
            </summary>
      <param name="assembly">Assembly to remove.</param>
    </member>
    <member name="M:Barotrauma.IO.Validation.SkipInDebugBuilds">
      <summary>
            Skips validation for as long as the returned object remains in scope (remember to use using)
            </summary>
    </member>
    <member name="F:Barotrauma.IO.Validation.SkipValidationInDebugBuilds">
      <summary>
            When set to true, the game is allowed to modify the vanilla content in debug builds. Has no effect in non-debug builds.
            </summary>
    </member>
    <member name="M:Barotrauma.IO.Path.GetInvalidFileNameCharsCrossPlatform">
      <summary>
            Returns file name characters that are invalid on any of our supported platforms (essentially the list of invalid characters on Windows)
            </summary>
    </member>
    <member name="F:Barotrauma.SerializableTimeZone.Value">
      <summary>
            Diff from UTC
            </summary>
    </member>
    <member name="T:Barotrauma.SerializableDateTime">
      <summary>
            DateTime wrapper that tries to offer a reliable
            string representation that's also human-friendly
            </summary>
    </member>
    <member name="M:Barotrauma.ToolBox.ConvertInputType(System.String)">
      <summary>
            a method for changing inputtypes with old names to the new ones to ensure backwards compatibility with older subs
            </summary>
    </member>
    <member name="M:Barotrauma.ToolBox.HSVToRGB(System.Single,System.Single,System.Single)">
      <summary>
            Convert a HSV value into a RGB value.
            </summary>
      <param name="hue">Value between 0 and 360</param>
      <param name="saturation">Value between 0 and 1</param>
      <param name="value">Value between 0 and 1</param>
      <see href="https://en.wikipedia.org/wiki/HSL_and_HSV#HSV_to_RGB">Reference</see>
      <returns></returns>
    </member>
    <member name="M:Barotrauma.ToolBox.GetDebugSymbol(System.Boolean,System.Boolean)">
      <summary>
            Returns either a green [x] or a red [o]
            </summary>
      <param name="isFinished"></param>
      <param name="isRunning"></param>
      <returns></returns>
    </member>
    <member name="M:Barotrauma.ToolBox.ColorizeObject(System.Object)">
      <summary>
            Turn the object into a string and give it rich color based on the object type
            </summary>
      <param name="obj"></param>
      <returns></returns>
    </member>
    <member name="M:Barotrauma.ToolBox.LevenshteinDistance(System.String,System.String)">
      <summary>
            Calculates the minimum number of single-character edits (i.e. insertions, deletions or substitutions) required to change one string into the other
            </summary>
    </member>
    <member name="M:Barotrauma.ToolBox.ExtractBits(Barotrauma.Networking.IReadMessage,System.Int32)">
      <summary>
            Reads a number of bits from the buffer and inserts them to a new NetBuffer instance
            </summary>
    </member>
    <member name="M:Barotrauma.ToolBox.CreateCopy``1(``0,System.Reflection.BindingFlags)">
      <summary>
            Returns a new instance of the class with all properties and fields copied.
            </summary>
    </member>
    <member name="M:Barotrauma.ToolBox.CopyValues``1(``0,``0,System.Reflection.BindingFlags)">
      <summary>
            Copies the values of the source to the destination. May not work, if the source is of higher inheritance class than the destination. Does not work with virtual properties.
            </summary>
    </member>
    <member name="M:Barotrauma.ToolBox.CleanUpPathCrossPlatform(System.String,System.Boolean,System.String)">
      <summary>
            Cleans up a path by replacing backslashes with forward slashes, and
            optionally corrects the casing of the path. Recommended when serializing
            paths to a human-readable file to force case correction on all platforms.
            Also useful when working with paths to files that currently don't exist,
            i.e. case cannot be corrected.
            </summary>
      <param name="path">Path to clean up</param>
      <param name="correctFilenameCase">Should the case be corrected to match the filesystem?</param>
      <param name="directory">Directories that the path should be found in, not returned.</param>
      <returns>Path with corrected slashes, and corrected case if requested.</returns>
    </member>
    <member name="M:Barotrauma.ToolBox.CleanUpPath(System.String)">
      <summary>
            Cleans up a path by replacing backslashes with forward slashes, and
            corrects the casing of the path on non-Windows platforms. Recommended
            when loading a path from a file, to make sure that it is found on all
            platforms when attempting to open it.
            </summary>
      <param name="path">Path to clean up</param>
      <returns>Path with corrected slashes, and corrected case if required by the platform.</returns>
    </member>
    <member name="M:Barotrauma.ToolBox.ExtendColorToPercentageSigns(System.String)">
      <summary>
            Extends % and + characters to color tags in talent name tooltips to make them look nicer.
            This obviously does not work in languages like French where a non breaking space is used
            so it's just a a bit extra for the languages it works with.
            </summary>
      <param name="original"></param>
      <returns></returns>
    </member>
    <member name="T:Voronoi2.Voronoi">
      <summary>
            Description of Voronoi.
            </summary>
    </member>
    <member name="M:Voronoi2.Voronoi.generateVoronoi(System.Double[],System.Double[],System.Double,System.Double,System.Double,System.Double)">
            
            @param xValuesIn Array of X values for each site.
            @param yValuesIn Array of Y values for each site. Must be identical length to yValuesIn
            @param minX The minimum X of the bounding box around the voronoi
            @param maxX The maximum X of the bounding box around the voronoi
            @param minY The minimum Y of the bounding box around the voronoi
            @param maxY The maximum Y of the bounding box around the voronoi
            @return
        </member>
    <member name="F:Voronoi2.VoronoiCell.OnDestroyed">
      <summary>
            Executed when the cell is destroyed (only applies to destructible level walls)
            </summary>
    </member>
    <member name="M:Voronoi2.GraphEdge.GetNormal(Voronoi2.VoronoiCell)">
      <summary>
            Returns the normal of the edge that points outwards from the specified cell
            </summary>
    </member>
  </members>
</doc>