public sealed class GameplayTagSetThe tags something has right now, counted by how many sources granted each.
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 CountHow 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