Commit 48c46ad8 authored by TOM_RUS's avatar TOM_RUS

WOW-35755patch9.0.1_Beta

parent cef2e750
......@@ -90,15 +90,16 @@ local AnimaDiversionUI =
{
Name = "AnimaDiversionNodeState",
Type = "Enumeration",
NumValues = 4,
NumValues = 5,
MinValue = 0,
MaxValue = 3,
MaxValue = 4,
Fields =
{
{ Name = "Unavailable", Type = "AnimaDiversionNodeState", EnumValue = 0 },
{ Name = "Available", Type = "AnimaDiversionNodeState", EnumValue = 1 },
{ Name = "SelectedTemporary", Type = "AnimaDiversionNodeState", EnumValue = 2 },
{ Name = "SelectedPermanent", Type = "AnimaDiversionNodeState", EnumValue = 3 },
{ Name = "Cooldown", Type = "AnimaDiversionNodeState", EnumValue = 4 },
},
},
{
......
......@@ -17,9 +17,9 @@ local AuctionHouseEnums =
{
Name = "AuctionHouseFilter",
Type = "Enumeration",
NumValues = 11,
NumValues = 12,
MinValue = 0,
MaxValue = 10,
MaxValue = 11,
Fields =
{
{ Name = "UncollectedOnly", Type = "AuctionHouseFilter", EnumValue = 0 },
......@@ -33,6 +33,7 @@ local AuctionHouseEnums =
{ Name = "EpicQuality", Type = "AuctionHouseFilter", EnumValue = 8 },
{ Name = "LegendaryQuality", Type = "AuctionHouseFilter", EnumValue = 9 },
{ Name = "ArtifactQuality", Type = "AuctionHouseFilter", EnumValue = 10 },
{ Name = "LegendaryCraftedItemOnly", Type = "AuctionHouseFilter", EnumValue = 11 },
},
},
{
......
......@@ -126,6 +126,15 @@ local ChatInfo =
{ Name = "isPartyChannelType", Type = "bool", Nilable = false },
},
},
{
Name = "IsRegionalServiceAvailable",
Type = "Function",
Returns =
{
{ Name = "available", Type = "bool", Nilable = false },
},
},
{
Name = "IsValidChatLine",
Type = "Function",
......@@ -1948,6 +1957,20 @@ local ChatInfo =
{ Name = "supressRaidIcons", Type = "bool", Nilable = false },
},
},
{
Name = "ChatRegionalSendFailed",
Type = "Event",
LiteralName = "CHAT_REGIONAL_SEND_FAILED",
},
{
Name = "ChatRegionalStatusChanged",
Type = "Event",
LiteralName = "CHAT_REGIONAL_STATUS_CHANGED",
Payload =
{
{ Name = "isServiceAvailable", Type = "bool", Nilable = false },
},
},
{
Name = "ChatServerDisconnected",
Type = "Event",
......
......@@ -779,6 +779,16 @@ local GarrisonInfo =
{ Name = "doAlert", Type = "bool", Nilable = false },
},
},
{
Name = "GarrisonTalentEventUpdate",
Type = "Event",
LiteralName = "GARRISON_TALENT_EVENT_UPDATE",
Payload =
{
{ Name = "eventType", Type = "number", Nilable = false },
{ Name = "eventID", Type = "number", Nilable = false },
},
},
{
Name = "GarrisonTalentNpcClosed",
Type = "Event",
......@@ -949,6 +959,7 @@ local GarrisonInfo =
{ Name = "boardIndex", Type = "number", Nilable = false },
{ Name = "oldHealth", Type = "number", Nilable = false },
{ Name = "newHealth", Type = "number", Nilable = false },
{ Name = "maxHealth", Type = "number", Nilable = false },
{ Name = "points", Type = "number", Nilable = true },
},
},
......
......@@ -342,6 +342,20 @@ local Item =
{ Name = "isCached", Type = "bool", Nilable = false },
},
},
{
Name = "IsItemKeystoneByID",
Type = "Function",
Arguments =
{
{ Name = "itemInfo", Type = "string", Nilable = false },
},
Returns =
{
{ Name = "isKeystone", Type = "bool", Nilable = false },
},
},
{
Name = "IsLocked",
Type = "Function",
......
......@@ -165,6 +165,21 @@ local LegendaryCrafting =
{ Name = "runeforgePowerIDs", Type = "table", InnerType = "number", Nilable = false },
},
},
{
Name = "GetRuneforgePowersByClassAndSpec",
Type = "Function",
Arguments =
{
{ Name = "classID", Type = "number", Nilable = true },
{ Name = "specID", Type = "number", Nilable = true },
},
Returns =
{
{ Name = "runeforgePowerIDs", Type = "table", InnerType = "number", Nilable = false },
},
},
{
Name = "IsRuneforgeLegendary",
Type = "Function",
......@@ -238,6 +253,15 @@ local LegendaryCrafting =
Events =
{
{
Name = "NewRuneforgePowerAdded",
Type = "Event",
LiteralName = "NEW_RUNEFORGE_POWER_ADDED",
Payload =
{
{ Name = "powerID", Type = "number", Nilable = false },
},
},
{
Name = "RuneforgeLegendaryCraftingClosed",
Type = "Event",
......
......@@ -525,17 +525,43 @@ local Map =
{ Name = "TopRight", Type = "MapCanvasPosition", EnumValue = 4 },
},
},
{
Name = "UIMapFlag",
Type = "Enumeration",
NumValues = 15,
MinValue = 1,
MaxValue = 16384,
Fields =
{
{ Name = "NoHighlight", Type = "UIMapFlag", EnumValue = 1 },
{ Name = "ShowOverlays", Type = "UIMapFlag", EnumValue = 2 },
{ Name = "ShowTaxiNodes", Type = "UIMapFlag", EnumValue = 4 },
{ Name = "GarrisonMap", Type = "UIMapFlag", EnumValue = 8 },
{ Name = "FallbackToParentMap", Type = "UIMapFlag", EnumValue = 16 },
{ Name = "NoHighlightTexture", Type = "UIMapFlag", EnumValue = 32 },
{ Name = "ShowTaskObjectives", Type = "UIMapFlag", EnumValue = 64 },
{ Name = "NoWorldPositions", Type = "UIMapFlag", EnumValue = 128 },
{ Name = "HideArchaeologyDigs", Type = "UIMapFlag", EnumValue = 256 },
{ Name = "Deprecated", Type = "UIMapFlag", EnumValue = 512 },
{ Name = "HideIcons", Type = "UIMapFlag", EnumValue = 1024 },
{ Name = "HideVignettes", Type = "UIMapFlag", EnumValue = 2048 },
{ Name = "ForceAllOverlayExplored", Type = "UIMapFlag", EnumValue = 4096 },
{ Name = "FlightMapShowZoomOut", Type = "UIMapFlag", EnumValue = 8192 },
{ Name = "FlightMapAutoZoom", Type = "UIMapFlag", EnumValue = 16384 },
},
},
{
Name = "UIMapSystem",
Type = "Enumeration",
NumValues = 3,
NumValues = 4,
MinValue = 0,
MaxValue = 2,
MaxValue = 3,
Fields =
{
{ Name = "World", Type = "UIMapSystem", EnumValue = 0 },
{ Name = "Taxi", Type = "UIMapSystem", EnumValue = 1 },
{ Name = "Adventure", Type = "UIMapSystem", EnumValue = 2 },
{ Name = "Minimap", Type = "UIMapSystem", EnumValue = 3 },
},
},
{
......@@ -587,6 +613,7 @@ local Map =
{ Name = "name", Type = "string", Nilable = false },
{ Name = "mapType", Type = "UIMapType", Nilable = false },
{ Name = "parentMapID", Type = "number", Nilable = false },
{ Name = "flags", Type = "number", Nilable = false },
},
},
{
......
......@@ -20,6 +20,20 @@ local ReportSystem =
{ Name = "canReport", Type = "bool", Nilable = false },
},
},
{
Name = "CanReportPlayerForLanguage",
Type = "Function",
Arguments =
{
{ Name = "playerLocation", Type = "table", Mixin = "PlayerLocationMixin", Nilable = false },
},
Returns =
{
{ Name = "canReport", Type = "bool", Nilable = false },
},
},
{
Name = "InitiateReportPlayer",
Type = "Function",
......
......@@ -74,8 +74,13 @@ local Soulbinds =
Type = "Function",
},
{
Name = "CommitPendingConduits",
Name = "CommitPendingConduitsInSoulbind",
Type = "Function",
Arguments =
{
{ Name = "soulbindID", Type = "number", Nilable = false },
},
},
{
Name = "GetActiveSoulbindID",
......@@ -292,6 +297,20 @@ local Soulbinds =
{ Name = "result", Type = "bool", Nilable = false },
},
},
{
Name = "HasPendingConduitsInSoulbind",
Type = "Function",
Arguments =
{
{ Name = "soulbindID", Type = "number", Nilable = false },
},
Returns =
{
{ Name = "result", Type = "bool", Nilable = false },
},
},
{
Name = "IsConduitInstalled",
Type = "Function",
......
......@@ -197,8 +197,9 @@ local TradeSkillUI =
LiteralName = "NEW_RECIPE_LEARNED",
Payload =
{
{ Name = "spellID", Type = "number", Nilable = false },
{ Name = "recipeID", Type = "number", Nilable = false },
{ Name = "recipeLevel", Type = "number", Nilable = true },
{ Name = "baseRecipeID", Type = "number", Nilable = true },
},
},
{
......@@ -285,6 +286,7 @@ local TradeSkillUI =
Type = "Structure",
Fields =
{
{ Name = "requiredSkillRank", Type = "number", Nilable = false },
{ Name = "slotText", Type = "string", Nilable = true },
{ Name = "options", Type = "table", InnerType = "number", Nilable = false },
},
......
......@@ -166,6 +166,20 @@ local VoiceChat =
{ Name = "volume", Type = "number", Nilable = true },
},
},
{
Name = "GetJoinClubVoiceChannelError",
Type = "Function",
Arguments =
{
{ Name = "clubId", Type = "string", Nilable = false },
},
Returns =
{
{ Name = "errorReason", Type = "VoiceChannelErrorReason", Nilable = true },
},
},
{
Name = "GetLocalPlayerActiveChannelMemberInfo",
Type = "Function",
......@@ -1017,6 +1031,18 @@ local VoiceChat =
{ Name = "OpenMic", Type = "CommunicationMode", EnumValue = 1 },
},
},
{
Name = "VoiceChannelErrorReason",
Type = "Enumeration",
NumValues = 2,
MinValue = 0,
MaxValue = 1,
Fields =
{
{ Name = "Unknown", Type = "VoiceChannelErrorReason", EnumValue = 0 },
{ Name = "IsBattleNetChannel", Type = "VoiceChannelErrorReason", EnumValue = 1 },
},
},
{
Name = "VoiceChatStatusCode",
Type = "Enumeration",
......
......@@ -81,17 +81,22 @@ local WeeklyRewards =
},
},
{
Name = "HasRewards",
Name = "HasAvailableRewards",
Type = "Function",
Returns =
{
{ Name = "hasRewards", Type = "bool", Nilable = false },
{ Name = "hasAvailableRewards", Type = "bool", Nilable = false },
},
},
{
Name = "RequestRewards",
Name = "HasGeneratedRewards",
Type = "Function",
Returns =
{
{ Name = "hasGeneratedRewards", Type = "bool", Nilable = false },
},
},
},
......
local animaPinTextureKitRegions = {
["Icon"] = "AnimaChannel-Icon-%s-Normal",
["IconSelect"] = "AnimaChannel-Icon-%s-Select",
["IconReinforce"] = "AnimaChannel-Icon-%s-Reinforce",
["IconReady"] = "AnimaChannel-Icon-%s-Ready",
[Enum.AnimaDiversionNodeState.Unavailable] = "AnimaChannel-Icon-%s-Normal",
[Enum.AnimaDiversionNodeState.Available] = "AnimaChannel-Icon-%s-Select",
[Enum.AnimaDiversionNodeState.SelectedTemporary] = "AnimaChannel-Icon-%s-Ready",
[Enum.AnimaDiversionNodeState.SelectedPermanent] = "AnimaChannel-Icon-%s-Ready",
[Enum.AnimaDiversionNodeState.Cooldown] = "AnimaChannel-Icon-%s-Normal",
};
local reinforceNodeTextureKitAnimationEffectId = {
......@@ -12,20 +13,22 @@ local reinforceNodeTextureKitAnimationEffectId = {
["Necrolord"] = 31,
};
local animaConnectionLineColors = {
["Kyrian"] = CreateColor(0.55, 0.81, 0.90),
["NightFae"] = CreateColor(0, 0.33, 0.97),
["Venthyr"] = CreateColor(0.81, 0.06, 0.06),
["Necrolord"] = CreateColor(0.1, 0.82, 0.30),
local animaConnectionShowBlackLink = {
["Venthyr"] = true,
["Necrolord"] = true,
};
local ANIMA_DIVERSION_DATA_PROVIDER_FRAME_EVENTS = {
"ANIMA_DIVERSION_TALENT_UPDATED",
"CURRENCY_DISPLAY_UPDATE",
"GARRISON_TALENT_COMPLETE",
"GARRISON_TALENT_EVENT_UPDATE",
};
local ANIMA_DIVERSION_ORIGIN_PIN_BORDER = "AnimaChannel-Icon-Device-%s-Border";
local ANIMA_REINFORCE_MODEL_EFFECT_ID = 35;
local ANIMA_DIVERSION_LINK_TEXTURE = "animachannel-link-anima-%s";
local ANIMA_DIVERSION_LINE_TEXTURE = "_AnimaChannel-Channel-Line-horizontal-%s";
local ANIMA_SELECTION_MODEL_EFFECT_ID = 35;
AnimaDiversionDataProviderMixin = CreateFromMixins(MapCanvasDataProviderMixin);
......@@ -35,28 +38,68 @@ end
function AnimaDiversionDataProviderMixin:OnHide()
FrameUtil.UnregisterFrameForEvents(self, ANIMA_DIVERSION_DATA_PROVIDER_FRAME_EVENTS);
self:ResetModelScene();
end
function AnimaDiversionDataProviderMixin:OnEvent(event, ...)
if event == "ANIMA_DIVERSION_TALENT_UPDATED" or event == "CURRENCY_DISPLAY_UPDATE" then
self:RefreshAllData();
end
end
function AnimaDiversionDataProviderMixin:SetupConnectionOnPin(pin)
if(not self.origin or not animaConnectionLineColors[self.textureKit]) then
return;
local connection = self.connectionPool:Acquire();
connection:Setup(self.textureKit, self.origin, pin);
connection:Show();
self.origin.IconBorder:Show();
end
function AnimaDiversionDataProviderMixin:ResetModelScene()
if self.modelScenePin then
self.modelScenePin.ModelScene:ClearEffects();
self.modelScenePin = nil;
end
self.pinEffects = {};
end
function AnimaDiversionDataProviderMixin:AddEffectOnPin(effectID, pin, permanent)
if self.modelScenePin then
if not self.pinEffects[pin] then
self.pinEffects[pin] = {};
end
pin.lineContainer = self.backgroundLinePool:Acquire();
pin.lineContainer.Fill:SetVertexColor(animaConnectionLineColors[self.textureKit]:GetRGB());
pin.lineContainer.Fill:SetThickness(self.lineThickness);
pin.lineContainer.Fill:SetStartPoint("CENTER", self.origin);
pin.lineContainer.Fill:SetEndPoint("CENTER", pin);
if not self.pinEffects[pin][effectID] then
local pinEffect = self.modelScenePin.ModelScene:AddEffect(effectID, pin, pin);
self.pinEffects[pin][effectID] = {effect = pinEffect, temporary = not permanent};
end
end
end
function AnimaDiversionDataProviderMixin:ClearEffectOnPin(effectID, pin, onlyTemporaryEffects)
if self.modelScenePin then
if self.pinEffects[pin] and self.pinEffects[pin][effectID] then
if not onlyTemporaryEffects or self.pinEffects[pin][effectID].temporary then
self.pinEffects[pin][effectID].effect:CancelEffect();
self.pinEffects[pin][effectID] = nil;
end
end
end
end
function AnimaDiversionDataProviderMixin:ClearEffectOnAllPins(effectID, onlyTemporaryEffects, exemptPin)
if self.modelScenePin then
for pin, _ in pairs(self.pinEffects) do
if pin ~= exemptPin then
self:ClearEffectOnPin(effectID, pin, onlyTemporaryEffects);
end
end
end
end
function AnimaDiversionDataProviderMixin:RemoveAllData()
self:GetMap():RemoveAllPinsByTemplate("AnimaDiversionPinTemplate");
self:ResetModelScene();
self:GetMap():RemoveAllPinsByTemplate("AnimaDiversionModelScenePinTemplate");
end
......@@ -68,37 +111,36 @@ function AnimaDiversionDataProviderMixin:RefreshAllData(fromOnShow)
self:RemoveAllData();
self.bolsterProgress = C_AnimaDiversion.GetReinforceProgress();
if not self.backgroundLinePool then
self.backgroundLinePool = CreateFramePool("FRAME", self:GetMap():GetCanvas(), "AnimaDiversionConnectionTemplate", OnRelease);
if not self.connectionPool then
self.connectionPool = CreateFramePool("FRAME", self:GetMap():GetCanvas(), "AnimaDiversionConnectionTemplate");
else
self.connectionPool:ReleaseAll();
end
self.backgroundLinePool:ReleaseAll();
self.textureKit = C_AnimaDiversion.GetTextureKit();
self.forceReinforceState = self:CanReinforceNode();
if (self.forceReinforceState) then
self:AddModelScene();
end
if(self.modelScenePin) then
self.modelScenePin.ModelScene:ClearEffects();
end
local originPosition = C_AnimaDiversion.GetOriginPosition();
if(originPosition) then
self:AddOrigin(originPosition, self.textureKit);
if not originPosition then
return;
end
self.lineThickness = Lerp(1, 2, Saturate(1 - self:GetMap():GetCanvasZoomPercent())) * 85;
local animaNodes = C_AnimaDiversion.GetAnimaDiversionNodes();
if (not animaNodes) then
if not animaNodes then
return;
end
self:AddOrigin(originPosition);
for _, nodeData in ipairs(animaNodes) do
nodeData.textureKit = self.textureKit
self:AddNode(nodeData);
if AnimaDiversionFrame:HasIntroTutorialShowing() then
-- if one of the 2 intro tutorials is showing, we want to pretend that all nodes are unavailable.
nodeData.state = Enum.AnimaDiversionNodeState.Unavailable;
end
self:AddNode(nodeData);
end
end
function AnimaDiversionDataProviderMixin:AddNode(nodeData)
......@@ -107,23 +149,25 @@ function AnimaDiversionDataProviderMixin:AddNode(nodeData)
pin:SetPosition(nodeData.normalizedPosition.x, nodeData.normalizedPosition.y);
pin.nodeData = nodeData;
pin.owner = self;
pin.forceReinforceState = self.forceReinforceState;
pin.textureKit = self.textureKit;
pin:SetSize(150,175);
pin:SetupNode();
if pin:IsConnected() then
self:SetupConnectionOnPin(pin);
pin:Setup();
end
end
function AnimaDiversionDataProviderMixin:AddOrigin(position, textureKit)
<