Vixen
c7401864
csharp
public readonly record struct GameplayTagRange

A resolved tag prefix: one tag and everything beneath it, as a half-open range.

Read the guide page for this →

Remarks

This is the authored half of a tag comparison and the reason the dynamic half is four bytes. A rule says fire resistance reduces Damage.Fire.*; the prefix comes out of a definition and is resolved against the table exactly once, at load, into the two numbers that make the test. What is compared a thousand times a frame is a GameplayTag against one of these, with no table read and no string.

Half-open, so an empty range is Start == End and a leaf tag's range is exactly one wide. Empty contains nothing, which is what an unresolvable prefix becomes — a rule about a tag this content does not have matches nothing rather than everything, and the difference between those two is a boss that is immune to all damage.

Fields and properties (6)

  • public uint Start

    The prefix's own index — the first of the range.

  • public uint End

    One past the last index in the prefix's subtree.

  • public static GameplayTagRange Empty

    The range that contains nothing.

  • public bool IsSome

    Whether it can contain anything at all.

  • public int Count

    How many tags fall in it, the prefix itself included.

  • public GameplayTag Tag

    The tag the range is the subtree of.

Methods (3)

  • public GameplayTagRange(uint Start, uint End)

    A resolved tag prefix: one tag and everything beneath it, as a half-open range.

  • public bool Contains(GameplayTag tag)

    Whether a tag is this prefix or beneath it.

  • public override string ToString()

    Returns the fully qualified type name of this instance.

Used by (32)

  • AffixTemplateVixen.Gameplay.Items
  • ChatChannelVixen.Gameplay.Chat
  • ChatLibraryVixen.Gameplay.Chat
  • ChatRouterVixen.Gameplay.Chat
  • CollectionLibraryVixen.Gameplay.Collections
  • CombatAttributesVixen.Gameplay.Combat
  • CompositeRequirementContextVixen.Gameplay
  • ContainerSetVixen.Gameplay.Inventory
  • CrafterVixen.Gameplay.Crafting
  • CraftingLibraryVixen.Gameplay.Crafting
  • EffectSetVixen.Gameplay
  • EffectTemplateVixen.Gameplay
  • GameplayEventFilterVixen.Gameplay
  • GameplayTagQueryVixen.Gameplay
  • GameplayTagSetVixen.Gameplay
  • GameplayTagTableVixen.Gameplay
  • GameplayTagTableTestsVixen.Gameplay.Tests
  • GuildVixen.Gameplay.Social
  • GuildRankVixen.Gameplay.Social
  • GuildTestsVixen.Gameplay.Social.Tests
  • IRequirementContextVixen.Gameplay
  • ItemTemplateVixen.Gameplay.Items
  • QuestLibraryVixen.Gameplay.Quests
  • RecipeVixen.Gameplay.Crafting
  • RequirementVixen.Gameplay
  • ResistanceRuleVixen.Gameplay.Combat
  • SalvageRecipeVixen.Gameplay.Loot
  • SocialBridgeVixen.Live.Gameplay
  • SocialLibraryVixen.Gameplay.Social
  • TravelLibraryVixen.Gameplay.Travel
  • TravelPointVixen.Gameplay.Travel
  • TravellingVixen.Gameplay.Travel