-
-
Save pushedx/2628cf2710c87eba97742577fc3b29ea to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private HashSet<MetadataFlags> _flags; | |
/// <summary> | |
/// Does this item have a specific Metadata flag? | |
/// </summary> | |
/// <param name="flags">The flags to check.</param> | |
/// <returns>true if all the metadata flags exists and false if not.</returns> | |
public bool HasMetadataFlags(params MetadataFlags[] flags) | |
{ | |
if (_flags == null) | |
{ | |
if (!BITC.MetadataFlagLookup.TryGetValue(Metadata, out _flags)) | |
{ | |
return false; | |
} | |
} | |
foreach (var flag in flags) | |
{ | |
if (!_flags.Contains(flag)) | |
{ | |
return false; | |
} | |
} | |
return true; | |
} | |
/// <summary> | |
/// Does this item have any of the specific Metadata flag? | |
/// </summary> | |
/// <param name="flags">The flags to check.</param> | |
/// <returns>true if any of the metadata flags exists and false if not.</returns> | |
public bool AnyMetadataFlags(params MetadataFlags[] flags) | |
{ | |
if (_flags == null) | |
{ | |
if (!BITC.MetadataFlagLookup.TryGetValue(Metadata, out _flags)) | |
{ | |
return false; | |
} | |
} | |
foreach (var flag in flags) | |
{ | |
if (_flags.Contains(flag)) | |
{ | |
return true; | |
} | |
} | |
return false; | |
} | |
#region Temp Metadata Processing | |
/// <summary> | |
/// Returns true if this item is of the helmet type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Helmets)")] | |
public bool IsHelmetType => HasMetadataFlags(MetadataFlags.Helmets); | |
/// <summary> | |
/// Returns true if this item is of the Leaguestones type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Leaguestones)")] | |
public bool IsLeaguestoneType => HasMetadataFlags(MetadataFlags.Leaguestones); | |
/// <summary> | |
/// Returns true if this item is of the essence type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.CurrencyItemisedProphecy)")] | |
public bool IsProphecyType => HasMetadataFlags(MetadataFlags.CurrencyItemisedProphecy); | |
/// <summary> | |
/// Returns true if this item is of the Labyrinth item type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Labyrinth)")] | |
public bool IsLabyrinthType => HasMetadataFlags(MetadataFlags.Labyrinth); | |
/// <summary> | |
/// Returns true if this item is of the skill gem type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Gems)")] | |
public bool IsSkillGemType => HasMetadataFlags(MetadataFlags.Gems); | |
/// <summary> | |
/// Returns true if this item is of the quest type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.QuestItems)")] | |
public bool IsQuestType => HasMetadataFlags(MetadataFlags.QuestItems); | |
/// <summary> | |
/// Returns true if this item is of the jewel type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Jewels)")] | |
public bool IsJewelType => HasMetadataFlags(MetadataFlags.Jewels); | |
/// <summary> | |
/// Returns true if this item is of the talisman type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Talismans)")] | |
public bool IsTalismanType => HasMetadataFlags(MetadataFlags.Talismans); | |
/// <summary> | |
/// Returns true if this item is of the divination card type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.DivinationCards)")] | |
public bool IsDivinationCardType => HasMetadataFlags(MetadataFlags.DivinationCards); | |
/// <summary> | |
/// Returns true if this item is of the map type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Maps)")] | |
public bool IsMapType => HasMetadataFlags(MetadataFlags.Maps); | |
/// <summary> | |
/// Returns true if this item is of the map fragment type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.MapFragments)")] | |
public bool IsMapFragmentType => HasMetadataFlags(MetadataFlags.MapFragments); | |
/// <summary> | |
/// Returns true if this item is of the currency type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Currency) && !HasMetadataFlags(MetadataFlags.CurrencyItemisedProphecy)")] | |
public bool IsCurrencyType => HasMetadataFlags(MetadataFlags.Currency) && !HasMetadataFlags(MetadataFlags.CurrencyItemisedProphecy); | |
/// <summary> | |
/// Returns true if this item is of the belt type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Belts)")] | |
public bool IsBeltType => HasMetadataFlags(MetadataFlags.Belts); | |
/// <summary> | |
/// Returns true if this item is of the amulet type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Amulets)")] | |
public bool IsAmuletType => HasMetadataFlags(MetadataFlags.Amulets); | |
/// <summary> | |
/// Returns true if this item is of the ring type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Rings)")] | |
public bool IsRingType => HasMetadataFlags(MetadataFlags.Rings); | |
/// <summary> | |
/// Returns true if this item is of the armour type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Armours)")] | |
public bool IsArmorType => HasMetadataFlags(MetadataFlags.Armours); | |
/// <summary> | |
/// Returns true if this item is of the quiver type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Quivers)")] | |
public bool IsQuiverType => HasMetadataFlags(MetadataFlags.Quivers); | |
/// <summary> | |
/// Returns true if this item is of the flask type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Flasks)")] | |
public bool IsFlaskType => HasMetadataFlags(MetadataFlags.Flasks); | |
/// <summary> | |
/// Returns true if this item is of the weapon type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Weapons)")] | |
public bool IsWeaponType => HasMetadataFlags(MetadataFlags.Weapons); | |
/// <summary> | |
/// Returns true if this item is of the one hand weapon type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.OneHandWeapons)")] | |
public bool IsOneHandWeaponType => HasMetadataFlags(MetadataFlags.OneHandWeapons); | |
/// <summary> | |
/// Returns true if this item is of the two hand weapon type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.TwoHandWeapons)")] | |
public bool IsTwoHandWeaponType => HasMetadataFlags(MetadataFlags.TwoHandWeapons); | |
/// <summary> | |
/// Returns true if this item is of the fishing rod type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.FishingRods)")] | |
public bool IsFishingRodType => HasMetadataFlags(MetadataFlags.FishingRods); | |
/// <summary> | |
/// Returns true if this item is of the bow type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Bows)")] | |
public bool IsBowType => HasMetadataFlags(MetadataFlags.Bows); | |
/// <summary> | |
/// Returns true if this item is of the tow hand mace type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.TwoHandMaces)")] | |
public bool IsTwoHandMaceType => HasMetadataFlags(MetadataFlags.TwoHandMaces); | |
/// <summary> | |
/// Returns true if this item is of the two hand sword type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.TwoHandSwords)")] | |
public bool IsTwoHandSwordType => HasMetadataFlags(MetadataFlags.TwoHandSwords); | |
/// <summary> | |
/// Returns true if this item is of the two hand axe type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.TwoHandAxes)")] | |
public bool IsTwoHandAxeType => HasMetadataFlags(MetadataFlags.TwoHandAxes); | |
/// <summary> | |
/// Returns true if this item is of the staff type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Staves)")] | |
public bool IsStaffType => HasMetadataFlags(MetadataFlags.Staves); | |
/// <summary> | |
/// Returns true if this item is of the one hand mace type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.OneHandMaces)")] | |
public bool IsOneHandMaceType => HasMetadataFlags(MetadataFlags.OneHandMaces); | |
/// <summary> | |
/// Returns true if this item is of the one hand thrusting sword type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.OneHandThrustingSwords)")] | |
public bool IsOneHandThrustingSwordType => HasMetadataFlags(MetadataFlags.OneHandThrustingSwords); | |
/// <summary> | |
/// Returns true if this item is of the one hand sword type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.OneHandSwords)")] | |
public bool IsOneHandSwordType => HasMetadataFlags(MetadataFlags.OneHandSwords); | |
/// <summary> | |
/// Returns true if this item is of the one hand axe type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.OneHandAxes)")] | |
public bool IsOneHandAxeType => HasMetadataFlags(MetadataFlags.OneHandAxes); | |
/// <summary> | |
/// Returns true if this item is of the claw type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Claws)")] | |
public bool IsClawType => HasMetadataFlags(MetadataFlags.Claws); | |
/// <summary> | |
/// Returns true if this item is of the dagger type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Daggers)")] | |
public bool IsDaggerType => HasMetadataFlags(MetadataFlags.Daggers); | |
/// <summary> | |
/// Returns true if this item is of the wand type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Wands)")] | |
public bool IsWandType => HasMetadataFlags(MetadataFlags.Wands); | |
/// <summary> | |
/// Returns true if this item is of the shield type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Shields)")] | |
public bool IsShieldType => HasMetadataFlags(MetadataFlags.Shields); | |
/// <summary> | |
/// Returns true if this item is of the boot type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Boots)")] | |
public bool IsBootType => HasMetadataFlags(MetadataFlags.Boots); | |
/// <summary> | |
/// Returns true if this item is of the glove type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Gloves)")] | |
public bool IsGloveType => HasMetadataFlags(MetadataFlags.Gloves); | |
/// <summary> | |
/// Returns true if this item is of the body armour type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.BodyArmours)")] | |
public bool IsBodyArmorType => HasMetadataFlags(MetadataFlags.BodyArmours); | |
/// <summary> | |
/// Returns true if this item is of the breach shard type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.BreachShard)")] | |
public bool IsBreachShardType => HasMetadataFlags(MetadataFlags.BreachShard); | |
/// <summary> | |
/// Returns true if this item is of the breach upgrade type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.BreachUpgrade)")] | |
public bool IsBreachUpgradeType => HasMetadataFlags(MetadataFlags.BreachUpgrade); | |
/// <summary> | |
/// Returns true if this item is of the essence type and false if not. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.Essence)")] | |
public bool IsEssenceType => HasMetadataFlags(MetadataFlags.Essence); | |
/// <summary> | |
/// Returns true if this item is of the MysteryLeaguestone type. | |
/// </summary> | |
[Obsolete("HasMetadataFlags(MetadataFlags.MysteryLeaguestone)")] | |
public bool IsMysteryLeaguestone => HasMetadataFlags(MetadataFlags.MysteryLeaguestone); | |
#endregion |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment