Core/Items: Implement azerite essences

Port From (https://github.com/TrinityCore/TrinityCore/commit/ec9d624aec9e0a39b1bcee7d4077f46be358faad)
This commit is contained in:
hondacrx
2019-11-22 21:39:35 -05:00
parent c05d592f4c
commit 796c11795f
30 changed files with 1231 additions and 74 deletions
+26 -2
View File
@@ -75,7 +75,7 @@ namespace Game.Network.Packets
GuildData.Value.Write(_worldPacket);
if (AzeriteLevel.HasValue)
_worldPacket.WriteInt32(AzeriteLevel.Value);
_worldPacket.WriteUInt32((uint)AzeriteLevel);
}
public PlayerModelDisplayInfo DisplayInfo;
@@ -84,7 +84,7 @@ namespace Game.Network.Packets
public List<ushort> PvpTalents = new List<ushort>();
public Optional<InspectGuildData> GuildData = new Optional<InspectGuildData>();
public Array<PVPBracketData> Bracket = new Array<PVPBracketData>(6);
public Optional<int> AzeriteLevel;
public uint? AzeriteLevel;
public int ItemLevel;
public uint LifetimeHK;
public uint HonorLevel;
@@ -156,6 +156,30 @@ namespace Game.Network.Packets
}
++i;
}
AzeriteItem azeriteItem = item.ToAzeriteItem();
if (azeriteItem != null)
{
SelectedAzeriteEssences essences = azeriteItem.GetSelectedAzeriteEssences();
if (essences != null)
{
for (byte slot = 0; slot < essences.AzeriteEssenceID.GetSize(); ++slot)
{
AzeriteEssenceData essence = new AzeriteEssenceData();
essence.Index = slot;
essence.AzeriteEssenceID = essences.AzeriteEssenceID[slot];
if (essence.AzeriteEssenceID != 0)
{
essence.Rank = azeriteItem.GetEssenceRank(essence.AzeriteEssenceID);
essence.SlotUnlocked = true;
}
else
essence.SlotUnlocked = azeriteItem.HasUnlockedEssenceSlot(slot);
AzeriteEssences.Add(essence);
}
}
}
}
public void Write(WorldPacket data)