diff --git a/Source/Framework/Constants/AchievementConst.cs b/Source/Framework/Constants/AchievementConst.cs index 90ee8cda0..501587609 100644 --- a/Source/Framework/Constants/AchievementConst.cs +++ b/Source/Framework/Constants/AchievementConst.cs @@ -421,6 +421,10 @@ namespace Framework.Constants PlayerBestWeeklyWinPvpTierInBracketEqualOrGreaterThan = 325, // (Mainline) Player has best weekly win at or above "{@PVP_TIER_ENUM}" for "{@PVP_BRACKET}" PlayerHasVanillaCollectorsEdition = 326, // Player has Vanilla Collector's Edition PlayerHasItemWithKeystoneLevelModifierEqualOrGreaterThan = 327, + + PlayerMythicPlusRatingInDisplaySeasonEqualOrGreaterThan = 329, /*NYI*/ // Player has Mythic+ Rating of at least "{#DungeonScore}" in {DisplaySeason} + + MythicPlusRatingIsInTop01Percent = 334, // top 0.1% rating } public enum CriteriaFailEvent : byte @@ -709,6 +713,7 @@ namespace Framework.Constants ObtainAnyItemWithCurrencyValue = 229, /*NYI*/ // Obtain Any Item With Currency Value "{CurrencyTypes}" MythicPlusRatingAttained = 230, /*NYI*/ // (Player) Mythic+ Rating "{#DungeonScore}" attained SpentTalentPoint = 231, /*NYI*/ // (Player) spent talent point + MythicPlusDisplaySeasonEnded = 234, /*NYI*/ // {DisplaySeason} Count } diff --git a/Source/Framework/Constants/CliDBConst.cs b/Source/Framework/Constants/CliDBConst.cs index e90031f67..469d3975a 100644 --- a/Source/Framework/Constants/CliDBConst.cs +++ b/Source/Framework/Constants/CliDBConst.cs @@ -1798,7 +1798,7 @@ namespace Framework.Constants DontDismissWhenEncounterIsAborted = 0x80000000 // NYI } - public enum TaxiNodeFlags : byte + public enum TaxiNodeFlags : ushort { Alliance = 0x1, Horde = 0x2, diff --git a/Source/Framework/Constants/PlayerConst.cs b/Source/Framework/Constants/PlayerConst.cs index fc6b623b7..ba33b896a 100644 --- a/Source/Framework/Constants/PlayerConst.cs +++ b/Source/Framework/Constants/PlayerConst.cs @@ -45,7 +45,7 @@ namespace Framework.Constants public const uint infinityCooldownDelayCheck = Time.Month / 2; public const int MaxPlayerSummonDelay = 2 * Time.Minute; - public const int TaxiMaskSize = 339; + public const int TaxiMaskSize = 345; // corpse reclaim times public const int DeathExpireStep = (5 * Time.Minute); diff --git a/Source/Framework/Constants/Spells/SpellAuraConst.cs b/Source/Framework/Constants/Spells/SpellAuraConst.cs index d9e1537dd..0b5ff002d 100644 --- a/Source/Framework/Constants/Spells/SpellAuraConst.cs +++ b/Source/Framework/Constants/Spells/SpellAuraConst.cs @@ -527,6 +527,7 @@ namespace Framework.Constants ModVersatilityHealingDoneBenefit = 503, // NYI ModHealingTakenFromCaster = 504, ModPlayerChoiceRerolls = 505, // NYI + DisableInertia = 506, // NYI Total } diff --git a/Source/Framework/Constants/Spells/SpellConst.cs b/Source/Framework/Constants/Spells/SpellConst.cs index 78b61fbb2..853a6f12d 100644 --- a/Source/Framework/Constants/Spells/SpellConst.cs +++ b/Source/Framework/Constants/Spells/SpellConst.cs @@ -2418,6 +2418,8 @@ namespace Framework.Constants ModifyKeystone2 = 285, GrantBattlepetExperience = 286, SetGarrisonFollowerLevel = 287, + Unk288 = 288, + Unk289 = 289, TotalSpellEffects } diff --git a/Source/Framework/Database/Databases/HotfixDatabase.cs b/Source/Framework/Database/Databases/HotfixDatabase.cs index cb1cc2b51..3e092b985 100644 --- a/Source/Framework/Database/Databases/HotfixDatabase.cs +++ b/Source/Framework/Database/Databases/HotfixDatabase.cs @@ -187,8 +187,8 @@ namespace Framework.Database " FROM battlemaster_list_locale WHERE locale = ?"); // BroadcastText.db2 - PrepareStatement(HotfixStatements.SEL_BROADCAST_TEXT, "SELECT Text, Text1, ID, LanguageID, ConditionID, EmotesID, Flags, ChatBubbleDurationMs, SoundKitID1, " + - "SoundKitID2, EmoteID1, EmoteID2, EmoteID3, EmoteDelay1, EmoteDelay2, EmoteDelay3 FROM broadcast_text"); + PrepareStatement(HotfixStatements.SEL_BROADCAST_TEXT, "SELECT Text, Text1, ID, LanguageID, ConditionID, EmotesID, Flags, ChatBubbleDurationMs, " + + "VoiceOverPriorityID, SoundKitID1, SoundKitID2, EmoteID1, EmoteID2, EmoteID3, EmoteDelay1, EmoteDelay2, EmoteDelay3 FROM broadcast_text"); PrepareStatement(HotfixStatements.SEL_BROADCAST_TEXT_LOCALE, "SELECT ID, Text_lang, Text1_lang FROM broadcast_text_locale WHERE locale = ?"); // BroadcastTextDuration.db2 @@ -675,15 +675,15 @@ namespace Framework.Database // ItemSparse.db2 PrepareStatement(HotfixStatements.SEL_ITEM_SPARSE, "SELECT ID, AllowableRace, Description, Display3, Display2, Display1, Display, ExpansionID, DmgVariance, " + - "LimitCategory, DurationInInventory, QualityModifier, BagFamily, ItemRange, StatPercentageOfSocket1, StatPercentageOfSocket2, " + - "StatPercentageOfSocket3, StatPercentageOfSocket4, StatPercentageOfSocket5, StatPercentageOfSocket6, StatPercentageOfSocket7, " + - "StatPercentageOfSocket8, StatPercentageOfSocket9, StatPercentageOfSocket10, StatPercentEditor1, StatPercentEditor2, StatPercentEditor3, " + - "StatPercentEditor4, StatPercentEditor5, StatPercentEditor6, StatPercentEditor7, StatPercentEditor8, StatPercentEditor9, StatPercentEditor10, " + - "Stackable, MaxCount, RequiredAbility, SellPrice, BuyPrice, VendorStackCount, PriceVariance, PriceRandomValue, Flags1, Flags2, Flags3, " + - "Flags4, FactionRelated, ModifiedCraftingReagentItemID, ContentTuningID, PlayerLevelToItemLevelCurveID, ItemNameDescriptionID, " + - "RequiredTransmogHoliday, RequiredHoliday, GemProperties, SocketMatchEnchantmentId, TotemCategoryID, InstanceBound, ZoneBound1, ZoneBound2, " + - "ItemSet, LockID, StartQuestID, PageID, ItemDelay, MinFactionID, RequiredSkillRank, RequiredSkill, ItemLevel, AllowableClass, ArtifactID, " + - "SpellWeight, SpellWeightCategory, SocketType1, SocketType2, SocketType3, SheatheType, Material, PageMaterialID, LanguageID, Bonding, " + + "LimitCategory, DurationInInventory, QualityModifier, BagFamily, StartQuestID, LanguageID, ItemRange, StatPercentageOfSocket1, " + + "StatPercentageOfSocket2, StatPercentageOfSocket3, StatPercentageOfSocket4, StatPercentageOfSocket5, StatPercentageOfSocket6, " + + "StatPercentageOfSocket7, StatPercentageOfSocket8, StatPercentageOfSocket9, StatPercentageOfSocket10, StatPercentEditor1, StatPercentEditor2, " + + "StatPercentEditor3, StatPercentEditor4, StatPercentEditor5, StatPercentEditor6, StatPercentEditor7, StatPercentEditor8, StatPercentEditor9, " + + "StatPercentEditor10, Stackable, MaxCount, RequiredAbility, SellPrice, BuyPrice, VendorStackCount, PriceVariance, PriceRandomValue, Flags1, " + + "Flags2, Flags3, Flags4, FactionRelated, ModifiedCraftingReagentItemID, ContentTuningID, PlayerLevelToItemLevelCurveID, " + + "ItemNameDescriptionID, RequiredTransmogHoliday, RequiredHoliday, GemProperties, SocketMatchEnchantmentId, TotemCategoryID, InstanceBound, " + + "ZoneBound1, ZoneBound2, ItemSet, LockID, PageID, ItemDelay, MinFactionID, RequiredSkillRank, RequiredSkill, ItemLevel, AllowableClass, " + + "ArtifactID, SpellWeight, SpellWeightCategory, SocketType1, SocketType2, SocketType3, SheatheType, Material, PageMaterialID, Bonding, " + "DamageDamageType, StatModifierBonusStat1, StatModifierBonusStat2, StatModifierBonusStat3, StatModifierBonusStat4, StatModifierBonusStat5, " + "StatModifierBonusStat6, StatModifierBonusStat7, StatModifierBonusStat8, StatModifierBonusStat9, StatModifierBonusStat10, ContainerSlots, " + "MinReputation, RequiredPVPMedal, RequiredPVPRank, RequiredLevel, InventoryType, OverallQualityID FROM item_sparse"); @@ -735,7 +735,7 @@ namespace Framework.Database PrepareStatement(HotfixStatements.SEL_LANGUAGE_WORDS, "SELECT ID, Word, LanguageID FROM language_words"); // Languages.db2 - PrepareStatement(HotfixStatements.SEL_LANGUAGES, "SELECT ID, Name FROM languages"); + PrepareStatement(HotfixStatements.SEL_LANGUAGES, "SELECT ID, Name, Flags, UiTextureKitID, UiTextureKitElementCount FROM languages"); PrepareStatement(HotfixStatements.SEL_LANGUAGES_LOCALE, "SELECT ID, Name_lang FROM languages_locale WHERE locale = ?"); // LfgDungeons.db2 diff --git a/Source/Game/DataStorage/Structs/B_Records.cs b/Source/Game/DataStorage/Structs/B_Records.cs index 5c4ab3898..8366e3452 100644 --- a/Source/Game/DataStorage/Structs/B_Records.cs +++ b/Source/Game/DataStorage/Structs/B_Records.cs @@ -117,6 +117,7 @@ namespace Game.DataStorage public ushort EmotesID; public byte Flags; public uint ChatBubbleDurationMs; + public int VoiceOverPriorityID; public uint[] SoundKitID = new uint[2]; public ushort[] EmoteID = new ushort[3]; public ushort[] EmoteDelay = new ushort[3]; diff --git a/Source/Game/DataStorage/Structs/I_Records.cs b/Source/Game/DataStorage/Structs/I_Records.cs index 2a7f69c37..7587f6153 100644 --- a/Source/Game/DataStorage/Structs/I_Records.cs +++ b/Source/Game/DataStorage/Structs/I_Records.cs @@ -349,6 +349,8 @@ namespace Game.DataStorage public uint DurationInInventory; public float QualityModifier; public uint BagFamily; + public uint StartQuestID; + public int LanguageID; public float ItemRange; public float[] StatPercentageOfSocket = new float[ItemConst.MaxStats]; public int[] StatPercentEditor = new int[ItemConst.MaxStats]; @@ -375,7 +377,6 @@ namespace Game.DataStorage public ushort[] ZoneBound = new ushort[2]; public ushort ItemSet; public ushort LockID; - public ushort StartQuestID; public ushort PageID; public ushort ItemDelay; public ushort MinFactionID; @@ -390,7 +391,6 @@ namespace Game.DataStorage public byte SheatheType; public byte Material; public byte PageMaterialID; - public byte LanguageID; public byte Bonding; public byte DamageType; public sbyte[] StatModifierBonusStat = new sbyte[ItemConst.MaxStats]; diff --git a/Source/Game/DataStorage/Structs/L_Records.cs b/Source/Game/DataStorage/Structs/L_Records.cs index 10885ca5a..a17410899 100644 --- a/Source/Game/DataStorage/Structs/L_Records.cs +++ b/Source/Game/DataStorage/Structs/L_Records.cs @@ -31,6 +31,9 @@ namespace Game.DataStorage { public uint Id; public LocalizedString Name; + public int Flags; + public int UiTextureKitID; + public int UiTextureKitElementCount; } public sealed class LFGDungeonsRecord diff --git a/Source/Game/Spells/SpellInfo.cs b/Source/Game/Spells/SpellInfo.cs index dcbd9fdae..4288a0b7c 100644 --- a/Source/Game/Spells/SpellInfo.cs +++ b/Source/Game/Spells/SpellInfo.cs @@ -4749,8 +4749,10 @@ namespace Game.Spells new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.Unit), // 283 SPELL_EFFECT_COMPLETE_CAMPAIGN new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.Unit), // 284 SPELL_EFFECT_SEND_CHAT_MESSAGE new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.Unit), // 285 SPELL_EFFECT_MODIFY_KEYSTONE_2 - new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.Unit), // 284 SPELL_EFFECT_GRANT_BATTLEPET_EXPERIENCE - new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 285 SPELL_EFFECT_SET_GARRISON_FOLLOWER_LEVEL + new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.Unit), // 286 SPELL_EFFECT_GRANT_BATTLEPET_EXPERIENCE + new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 287 SPELL_EFFECT_SET_GARRISON_FOLLOWER_LEVEL + new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 288 SPELL_EFFECT_288 + new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.Unit), // 289 SPELL_EFFECT_289 }; #region Fields