Vixen
c7401864
csharp
public sealed class GameplayTagSet

The tags something has right now, counted by how many sources granted each.

Read the guide page for this →

Remarks

Counted, and that is the entire reason this is a type rather than a HashSet<GameplayTag>. Two effects grant State.Stunned; one expires; the target must still be stunned. A plain set loses that, and the bug it produces — a crowd-control break that depends on which of two stuns landed first — is the kind that reproduces once a week in a raid and never on a developer's machine. Every grant is balanced by exactly one revoke, and a tag is present while its count is above zero.

Sorted by index, so a prefix query is a binary search. The pre-order numbering means everything beneath Damage.Fire is contiguous, so ContainsAny looks for the first index at or after the range's start and asks whether it is still inside it — one search, no scan, no allocation.

Fields and properties (1)

  • public int Count

    How many distinct tags are present.

Methods (11)

  • public bool Add(GameplayTag tag)

    Grants a tag, or increments the count of one already granted.

  • public void AddRange(ReadOnlySpan<GameplayTag> tags)

    Grants several tags.

  • public bool Remove(GameplayTag tag)

    Revokes one grant of a tag.

  • public void RemoveRange(ReadOnlySpan<GameplayTag> tags)

    Revokes one grant of each of several tags.

  • public void Clear()

    Forgets every tag and every count.

  • public bool Contains(GameplayTag tag)

    Whether a tag is present, exactly.

  • public int CountOf(GameplayTag tag)

    How many sources granted a tag.

  • public bool ContainsAny(GameplayTagRange range)

    Whether anything in the set falls under a prefix.

  • public bool ContainsAny(ReadOnlySpan<GameplayTagRange> ranges)

    Whether anything in the set falls under any of several prefixes.

  • public bool ContainsAll(ReadOnlySpan<GameplayTagRange> ranges)

    Whether every one of several prefixes is matched by something in the set.

  • public GameplayTagSet.Enumerator GetEnumerator()

    Walks the present tags in index order, which is the pre-order walk of the tag tree.

Used by (49, showing 40)

  • AttunedVixen.Gameplay.Instances.Tests
  • CollectionRecordVixen.Gameplay.Collections
  • CollectionTestsVixen.Gameplay.Collections.Tests
  • CompositeRequirementContextVixen.Gameplay
  • ContentVixen.Gameplay.Quests.Tests
  • CrafterVixen.Gameplay.Crafting
  • CraftingTestsVixen.Gameplay.Crafting.Tests
  • DynamicEventTestsVixen.Gameplay.Quests.Tests
  • EffectSetVixen.Gameplay
  • EffectSetTestsVixen.Gameplay.Tests
  • EventBusTestsVixen.Gameplay.Quests.Tests
  • ExplorationRecordVixen.Gameplay.Exploration
  • ExplorationSectionTestsVixen.Live.Gameplay.Tests
  • ExplorationTestsVixen.Gameplay.Exploration.Tests
  • GameplayEventVixen.Gameplay
  • GameplaySubjectVixen.Gameplay
  • GameplayTagQueryVixen.Gameplay
  • GameplayTagQueryTestsVixen.Gameplay.Tests
  • GameplayTagSetTestsVixen.Gameplay.Tests
  • GuildRankVixen.Gameplay.Social
  • GuildTestsVixen.Gameplay.Social.Tests
  • HolderVixen.Gameplay.Economy.Tests
  • HousePlotVixen.Gameplay.Housing
  • HousingTestsVixen.Gameplay.Housing.Tests
  • IRequirementContextVixen.Gameplay
  • InstanceRunTestsVixen.Gameplay.Instances.Tests
  • InteractionNodeVixen.Gameplay.Interaction
  • InteractionTestsVixen.Gameplay.Interaction.Tests
  • KeyholderVixen.Gameplay.Interaction.Tests
  • LevelledVixen.Gameplay.Exploration.Tests
  • LevelledVixen.Gameplay.Housing.Tests
  • LootContextVixen.Gameplay.Loot
  • MatchTicketVixen.Live.Matchmaking
  • MatchmakerTestsVixen.Live.Matchmaking.Tests
  • NothingVixen.Live.Gameplay.Tests
  • ProgressionStateVixen.Gameplay.Progression
  • ProgressionStateTestsVixen.Gameplay.Progression.Tests
  • QuestJournalVixen.Gameplay.Quests
  • QuestJournalTestsVixen.Gameplay.Quests.Tests
  • RequirementTestsVixen.Gameplay.Tests