Commit b8655359 authored by TOM_RUS's avatar TOM_RUS

WOW-36401patch9.0.2_Beta

parent 3234e434
......@@ -68,6 +68,10 @@ local Covenants =
{ Name = "animaGemsFullSoundKit", Type = "number", Nilable = false },
{ Name = "animaNewGemSoundKit", Type = "number", Nilable = false },
{ Name = "animaReinforceSelectSoundKit", Type = "number", Nilable = false },
{ Name = "upgradeTabSelectSoundKitID", Type = "number", Nilable = false },
{ Name = "reservoirFullSoundKitID", Type = "number", Nilable = false },
{ Name = "beginResearchSoundKitID", Type = "number", Nilable = false },
{ Name = "renownFanfareSoundKitID", Type = "number", Nilable = false },
{ Name = "name", Type = "string", Nilable = false },
{ Name = "soulbindIDs", Type = "table", InnerType = "number", Nilable = false },
},
......
......@@ -94,9 +94,9 @@ local CurrencyConstants =
{
Name = "CurrencySource",
Type = "Enumeration",
NumValues = 46,
NumValues = 49,
MinValue = 0,
MaxValue = 45,
MaxValue = 48,
Fields =
{
{ Name = "ConvertOldItem", Type = "CurrencySource", EnumValue = 0 },
......@@ -144,7 +144,10 @@ local CurrencyConstants =
{ Name = "AccountCopy", Type = "CurrencySource", EnumValue = 42 },
{ Name = "WeeklyRewardChest", Type = "CurrencySource", EnumValue = 43 },
{ Name = "GarrisonTalentTreeReset", Type = "CurrencySource", EnumValue = 44 },
{ Name = "Last", Type = "CurrencySource", EnumValue = 45 },
{ Name = "DailyReset", Type = "CurrencySource", EnumValue = 45 },
{ Name = "AddConduitToCollection", Type = "CurrencySource", EnumValue = 46 },
{ Name = "Last", Type = "CurrencySource", EnumValue = 47 },
{ Name = "Barbershop", Type = "CurrencySource", EnumValue = 48 },
},
},
{
......@@ -193,7 +196,7 @@ local CurrencyConstants =
Type = "Constants",
Values =
{
{ Name = "PLAYER_CURRENCY_CLIENT_FLAGS", Type = "number", Value = PLAYER_CURRENCY_PDB_IN_BACKPACK|PLAYER_CURRENCY_PDB_UNUSED_IN_UI },
{ Name = "PLAYER_CURRENCY_CLIENT_FLAGS", Type = "number", Value = Enum.PlayerCurrencyFlagsDbFlags.InBackpack + Enum.PlayerCurrencyFlagsDbFlags.UnusedInUI },
{ Name = "MAX_CURRENCY_QUANTITY", Type = "number", Value = 100000000 },
{ Name = "CONQUEST_ARENA_AND_BG_META_CURRENCY_ID", Type = "number", Value = 483 },
{ Name = "CONQUEST_RATED_BG_META_CURRENCY_ID", Type = "number", Value = 484 },
......
......@@ -158,11 +158,13 @@ local LegendaryCrafting =
Arguments =
{
{ Name = "baseItem", Type = "table", Mixin = "ItemLocationMixin", Nilable = true },
{ Name = "filter", Type = "RuneforgePowerFilter", Nilable = true },
},
Returns =
{
{ Name = "runeforgePowerIDs", Type = "table", InnerType = "number", Nilable = false },
{ Name = "specRuneforgePowerIDs", Type = "table", InnerType = "number", Nilable = false },
{ Name = "otherSpecRuneforgePowerIDs", Type = "table", InnerType = "number", Nilable = false },
},
},
{
......@@ -173,6 +175,7 @@ local LegendaryCrafting =
{
{ Name = "classID", Type = "number", Nilable = true },
{ Name = "specID", Type = "number", Nilable = true },
{ Name = "filter", Type = "RuneforgePowerFilter", Nilable = true },
},
Returns =
......
......@@ -2,6 +2,19 @@ local LegendaryCraftingTypes =
{
Tables =
{
{
Name = "RuneforgePowerFilter",
Type = "Enumeration",
NumValues = 3,
MinValue = 0,
MaxValue = 2,
Fields =
{
{ Name = "All", Type = "RuneforgePowerFilter", EnumValue = 0 },
{ Name = "Available", Type = "RuneforgePowerFilter", EnumValue = 1 },
{ Name = "Unavailable", Type = "RuneforgePowerFilter", EnumValue = 2 },
},
},
{
Name = "RuneforgePowerState",
Type = "Enumeration",
......
......@@ -132,6 +132,20 @@ local QuestTaskInfo =
{ Name = "quests", Type = "table", InnerType = "number", Nilable = false },
},
},
{
Name = "GetUIWidgetSetIDFromQuestID",
Type = "Function",
Arguments =
{
{ Name = "questID", Type = "number", Nilable = false },
},
Returns =
{
{ Name = "UiWidgetSetID", Type = "number", Nilable = false },
},
},
{
Name = "IsActive",
Type = "Function",
......
......@@ -729,6 +729,7 @@ local Soulbinds =
{ Name = "state", Type = "SoulbindNodeState", Nilable = false },
{ Name = "conduitType", Type = "SoulbindConduitType", Nilable = true },
{ Name = "parentNodeIDs", Type = "table", InnerType = "number", Nilable = false },
{ Name = "failureRenownRequirement", Type = "number", Nilable = true },
},
},
{
......
......@@ -274,10 +274,6 @@ function AnimaDiversionPinMixin:SetSelectedState(selected, leaveOtherSelections)
end
function AnimaDiversionPinMixin:OnMouseEnter()
if AnimaDiversionFrame.SelectPinInfoFrame:IsSelectionInfoShowingForNode(self) then
return;
end
GameTooltip:SetOwner(self, "ANCHOR_RIGHT");
self:RefreshTooltip();
end
......@@ -309,6 +305,7 @@ function AnimaDiversionPinMixin:RefreshTooltip()
GameTooltip_AddHighlightLine(GameTooltip, costString);
end
end
GameTooltip_AddColoredLine(GameTooltip, ANIMA_DIVERSION_CLICK_CHANNEL, GREEN_FONT_COLOR);
end
local worldQuestID = C_Garrison.GetTalentUnlockWorldQuest(self.nodeData.talentID);
if worldQuestID then
......@@ -343,13 +340,8 @@ function AnimaDiversionPinMixin:OnClick(button)
AnimaDiversionFrame.ReinforceInfoFrame:SelectNodeToReinforce(self);
else
if self.nodeData.state ~= Enum.AnimaDiversionNodeState.Available then
return;
end
AnimaDiversionFrame.SelectPinInfoFrame:SetupAndShow(self);
if AnimaDiversionFrame.SelectPinInfoFrame:IsSelectionInfoShowingForNode(self) then
GameTooltip:Hide();
if self.nodeData.state == Enum.AnimaDiversionNodeState.Available then
StaticPopup_Show("ANIMA_DIVERSION_CONFIRM_CHANNEL", self.nodeData.name, nil, self);
end
end
end
......
......@@ -52,7 +52,6 @@ StaticPopupDialogs["ANIMA_DIVERSION_CONFIRM_CHANNEL"] = {
self.timeleft = C_DateAndTime.GetSecondsUntilDailyReset();
end,
OnHide = function(self, selectedNode)
AnimaDiversionFrame.SelectPinInfoFrame:ClearSelectedNode();
AnimaDiversionFrame:ClearExclusiveSelectionNode();
end,
hideOnEscape = 1,
......@@ -84,7 +83,6 @@ function AnimaDiversionFrameMixin:OnLoad()
self:SetShouldPanOnClick(false);
self:AddStandardDataProviders();
self.bolsterProgressGemPool = CreateFramePool("FRAME", self.ReinforceProgressFrame, "AnimaDiversionBolsterProgressGemTemplate");
self.SelectPinInfoFrame.currencyPool = CreateFramePool("FRAME", self.SelectPinInfoFrame, "AnimaDiversionCurrencyCostFrameTemplate");
UIPanelCloseButton_SetBorderAtlas(self.CloseButton, "UI-Frame-Oribos-ExitButtonBorder", -1, 1);
end
......@@ -108,7 +106,6 @@ end
function AnimaDiversionFrameMixin:OnHide()
MapCanvasMixin.OnHide(self);
FrameUtil.UnregisterFrameForEvents(self, ANIMA_DIVERSION_FRAME_EVENTS);
self.SelectPinInfoFrame:Hide();
self.ReinforceInfoFrame:Hide();
self:StopGemsFullSound();
PlaySound(SOUNDKIT.UI_COVENANT_ANIMA_DIVERSION_CLOSE, nil, SOUNDKIT_ALLOW_DUPLICATES);
......@@ -120,7 +117,6 @@ function AnimaDiversionFrameMixin:OnEvent(event, ...)
elseif (event == "CURRENCY_DISPLAY_UPDATE") then
self:SetupBolsterProgressBar();
self:SetupCurrencyFrame();
self.SelectPinInfoFrame:CurrencyUpdate();
elseif(event == "ANIMA_DIVERSION_TALENT_UPDATED") then
self:SetupBolsterProgressBar();
end
......@@ -337,125 +333,6 @@ function AnimaDiversionFrameMixin:SetupCurrencyFrame()
end
end
AnimaDiversionSelectionInfoMixin = { };
function AnimaDiversionSelectionInfoMixin:IsSelectionInfoShowingForNode(node)
if (not self:IsShown() or not self.currentlySelectedNode) then
return false;
end
if(self.currentlySelectedNode == node) then
return true;
end
return false;
end
function AnimaDiversionSelectionInfoMixin:CurrencyUpdate()
if( not self:IsShown()) then
return;
end
if(self.currentlySelectedNode) then
self:SetupAndShow(self.currentlySelectedNode);
end
end
function AnimaDiversionSelectionInfoMixin:ClearSelectedNode()
if self.currentlySelectedNode then
self:GetParent():RefreshAllDataProviders();
end
self.currentlySelectedNode = nil;
end
function AnimaDiversionSelectionInfoMixin:SetupAndShow(node)
if self.currentlySelectedNode then
self.currentlySelectedNode:SetSelectedState(false);
end
node:SetSelectedState(true);
self.currentlySelectedNode = node;
self:ClearAllPoints();
self:SetPoint("LEFT", node, "RIGHT", 20, 0);
local nodeInfo = node.nodeData;
self.Title:SetText(nodeInfo.name);
self.Description:SetText(nodeInfo.description);
local canAffordAnimaSelection = self:SetupCosts(nodeInfo.costs);
local nodeAvailableForSelection = nodeInfo.state == Enum.AnimaDiversionNodeState.Available and canAffordAnimaSelection;
self.SelectButton:SetShown(nodeAvailableForSelection);
self.AlreadySelected:SetShown(not nodeAvailableForSelection);
if (not nodeAvailableForSelection) then
if (nodeInfo.state == Enum.AnimaDiversionNodeState.SelectedTemporary or nodeInfo.state == Enum.AnimaDiversionNodeState.SelectedPermanent) then
self.AlreadySelected:SetText(ANIMA_DIVERSION_NODE_SELECTED);
elseif(not canAffordAnimaSelection) then
self.AlreadySelected:SetText(ANIMA_DIVERSION_NOT_ENOUGH_CURRENCY);
else
self.AlreadySelected:SetText(ANIMA_DIVERSION_NODE_UNAVAILABLE);
end
end
self:Layout();
self:Show();
PlaySound(AnimaDiversionFrame.covenantData.animaChannelSelectSoundKit, nil, SOUNDKIT_ALLOW_DUPLICATES);
end
function AnimaDiversionSelectionInfoMixin:GetSelectedNode()
return self.currentlySelectedNode;
end
function AnimaDiversionSelectionInfoMixin:SetupCosts(CurrencyCosts)
local playerCanAfford = true;
self.currencyPool:ReleaseAll();
for i, costInfo in ipairs(CurrencyCosts) do
self.lastCurrency = self:SetupSingleCurrency(i, costInfo);
if(not self.lastCurrency.canAfford) then
playerCanAfford = false;
end
end
self.SelectButton:ClearAllPoints();
self.SelectButton:SetPoint("TOP", self.lastCurrency, "BOTTOM", 10, -10);
self.AlreadySelected:ClearAllPoints();
self.AlreadySelected:SetPoint("CENTER", self.SelectButton);
return playerCanAfford;
end
function AnimaDiversionSelectionInfoMixin:SetupSingleCurrency(index, costInfo)
local currency = self.currencyPool:Acquire();
if(index == 1) then
currency:SetPoint("TOP", self.Description, "BOTTOM", -15, -10);
else
currency:SetPoint("TOP", self.lastCurrency, "BOTTOM", 0, -10);
end
local currencyInfo = C_CurrencyInfo.GetCurrencyInfo(costInfo.currencyID);
if(currencyInfo) then
currency.Quantity:SetJustifyH("LEFT");
currency.Quantity:SetText(ANIMA_DIVERSION_CURRENCY_DISPLAY:format(costInfo.quantity, currencyInfo.iconFileID));
end
currency.currencyInfo = currencyInfo;
currency.canAfford = currencyInfo.quantity >= costInfo.quantity;
currency:Show();
return currency;
end
AnimaDiversionSelectButtonMixin = { };
function AnimaDiversionSelectButtonMixin:OnClick()
local selectedNode = self:GetParent():GetSelectedNode();
if selectedNode then
PlaySound(SOUNDKIT.UI_COVENANT_ANIMA_DIVERSION_CLICK_CHANNEL_BUTTON, nil, SOUNDKIT_ALLOW_DUPLICATES);
StaticPopup_Show("ANIMA_DIVERSION_CONFIRM_CHANNEL", selectedNode.nodeData.name, nil, selectedNode);
self:GetParent():Hide();
end
end
AnimaDiversionCurrencyFrameMixin = { };
function AnimaDiversionCurrencyFrameMixin:OnEnter()
......
......@@ -148,71 +148,6 @@
<OnHide method="OnHide"/>
</Scripts>
</Frame>
<Frame parentKey="SelectPinInfoFrame" inherits="ResizeLayoutFrame" mixin="AnimaDiversionSelectionInfoMixin" frameLevel="515">
<KeyValues>
<KeyValue key="spacing" value="5" type="number"/>
<KeyValue key="fixedWidth" value="250" type="number"/>
</KeyValues>
<Layers>
<Layer level="BACKGROUND">
<Texture parentKey="Background">
<Anchors>
<Anchor point="TOPLEFT"/>
<Anchor point="BOTTOMRIGHT"/>
</Anchors>
<Color r="0" b="0" g="0"/>
</Texture>
</Layer>
<Layer level="ARTWORK">
<FontString parentKey="Title" justifyV="BOTTOM" justifyH="LEFT" inherits="GameFontNormal">
<Size x="230" y="0"/>
<Anchors>
<Anchor point="TOP" x="2" y="-10"/>
</Anchors>
</FontString>
<FontString parentKey="Description" justifyV="BOTTOM" justifyH="LEFT" inherits="GameFontHighlight">
<Size x="230" y="0"/>
<Anchors>
<Anchor point="TOP" relativeKey="$parent.Title" relativePoint="BOTTOM" x="0" y="-15"/>
</Anchors>
</FontString>
<FontString parentKey="AlreadySelected" justifyV="BOTTOM" justifyH="LEFT" inherits="GameFontRed" text="ANIMA_DIVERSION_NODE_SELECTED" hidden="true">
<Size x="230" y="0"/>
</FontString>
</Layer>
</Layers>
<Frames>
<Frame parentKey="NineSlice" inherits="NineSlicePanelTemplate" frameLevel="550">
<KeyValues>
<KeyValue key="layoutType" value="IdenticalCornersLayout" type="string"/>
<KeyValue key="layoutTextureKit" value="AnimaChannel" type="string"/>
<KeyValue key="ignoreInLayout" value="true" type="boolean"/>
</KeyValues>
<Anchors>
<Anchor point="TOPLEFT" x="-8" y="8"/>
<Anchor point="BOTTOMRIGHT" x="8" y="-8" />
</Anchors>
</Frame>
<Button parentKey="SelectButton" inherits="UIPanelButtonTemplate" mixin="AnimaDiversionSelectButtonMixin" text="ANIMA_DIVERSION_DIVERT_ANIMA">
<Size x="100" y="25"/>
<Scripts>
<OnClick method="OnClick"/>
</Scripts>
</Button>
<Button parentKey="CloseButton" inherits="UIPanelCloseButton" frameLevel="555">
<Anchors>
<Anchor point="TOPRIGHT" x="5" y="5" />
</Anchors>
<Scripts>
<OnClick>
PlaySound(SOUNDKIT.UI_9_0_ANIMA_DIVERSION_GENERAL_EXIT, nil, SOUNDKIT_ALLOW_DUPLICATES);
self:GetParent():ClearSelectedNode();
self:GetParent():Hide();
</OnClick>
</Scripts>
</Button>
</Frames>
</Frame>
</Frames>
<Scripts>
<OnLoad method="OnLoad"/>
......
......@@ -167,11 +167,11 @@ end
function CharacterCreateMixin:OnShow()
C_CharacterCreation.SetInCharacterCreate(true);
local selectedFaction;
local _, selectedFaction;
if self.paidServiceType then
C_CharacterCreation.CustomizeExistingCharacter(self.paidServiceCharacterID);
self.currentPaidServiceName = C_PaidServices.GetName();
selectedFaction = C_PaidServices.GetCurrentFaction();
_, selectedFaction = C_PaidServices.GetCurrentFaction();
NameChoiceFrame.EditBox:SetText(self.currentPaidServiceName);
else
self.currentPaidServiceName = nil;
......@@ -1360,14 +1360,14 @@ function CharacterCreateRaceAndClassMixin:IsRaceValid(raceData, faction)
if CharacterCreateFrame.paidServiceType == PAID_CHARACTER_CUSTOMIZATION then
local notForPaidService = false;
local currentRace = C_PaidServices.GetCurrentRaceID(notForPaidService);
local currentFaction = C_PaidServices.GetCurrentFaction();
local _, currentFaction = C_PaidServices.GetCurrentFaction();
return (currentRace == raceData.raceID and currentFaction == faction);
elseif CharacterCreateFrame.paidServiceType == PAID_FACTION_CHANGE then
local currentFaction = C_PaidServices.GetCurrentFaction();
local _, currentFaction = C_PaidServices.GetCurrentFaction();
local currentClass = C_PaidServices.GetCurrentClassID();
return (currentFaction ~= faction and C_CharacterCreation.IsRaceClassValid(raceData.raceID, currentClass));
elseif CharacterCreateFrame.paidServiceType == PAID_RACE_CHANGE then
local currentFaction = C_PaidServices.GetCurrentFaction();
local _, currentFaction = C_PaidServices.GetCurrentFaction();
local notForPaidService = false;
local currentRace = C_PaidServices.GetCurrentRaceID(notForPaidService);
local currentClass = C_PaidServices.GetCurrentClassID();
......
......@@ -234,7 +234,6 @@ function CovenantCallingsMixin:OnCovenantCallingsUpdated(callings)
end
AnchorUtil.GridLayout(frames, AnchorUtil.CreateAnchor("LEFT", self.Decor, "LEFT", -42, 0), self.layout);
self:Layout();
self:CheckDisplayHelpTip();
end
end
......
......@@ -47,30 +47,25 @@
</Scripts>
</Frame>
<Frame name="CovenantCallingsTemplate" inherits="ResizeLayoutFrame" mixin="CovenantCallingsMixin" virtual="true">
<Frame name="CovenantCallingsTemplate" mixin="CovenantCallingsMixin" virtual="true">
<Size x="361" y="105"/>
<Layers>
<Layer level="BACKGROUND" textureSublevel="-1">
<Texture parentKey="Background" atlas="shadowlands-landingpage-divider" useAtlasSize="true">
<Anchors>
<Anchor point="TOPLEFT"/>
<Anchor point="TOP"/>
</Anchors>
</Texture>
</Layer>
<Layer level="BACKGROUND">
<Texture parentKey="Decor">
<KeyValues>
<KeyValue key="ignoreInLayout" value="true" type="boolean"/>
</KeyValues>
<Anchors>
<Anchor point="CENTER"/>
<Anchor point="TOP" x="0" y="-50"/>
</Anchors>
</Texture>
</Layer>
<Layer level="ARTWORK">
<FontString parentKey="Title" inherits="GameFontHighlightLarge" text="CALLINGS_QUESTS">
<KeyValues>
<KeyValue key="ignoreInLayout" value="true" type="boolean"/>
</KeyValues>
<Anchors>
<Anchor point="TOPLEFT" x="45" y="-14"/>
</Anchors>
......
......@@ -20,22 +20,15 @@
</Anchors>
</Texture>
</Layer>
<Layer level="ARTWORK">
<Texture parentKey="LevelBorder" atlas="CovenantSanctum-Icon-RankBorder" useAtlasSize="true" parentArray="Textures">
<Anchors>
<Anchor point="BOTTOM" y="-5"/>
</Anchors>
</Texture>
</Layer>
<Layer level="OVERLAY">
<Texture parentKey="Check" atlas="CovenantSanctum-Renown-Checkmark" useAtlasSize="true" parentArray="Textures">
<Anchors>
<Anchor point="BOTTOMLEFT" x="1" y="-1"/>
<Anchor point="BOTTOMRIGHT" x="3" y="0"/>
</Anchors>
</Texture>
<FontString parentKey="Level" inherits="GameFontNormal">
<Anchors>
<Anchor point="CENTER" relativeKey="$parent.LevelBorder"/>
<Anchor point="BOTTOM" y="-1"/>
</Anchors>
</FontString>
<MaskTexture parentKey="HexMask" atlas="CovenantSanctum-Renown-Hexagon-Mask" useAtlasSize="true" hWrapMode="CLAMPTOBLACKADDITIVE" vWrapMode="CLAMPTOBLACKADDITIVE">
......@@ -59,7 +52,7 @@
</Scripts>
</Frame>
<Frame name="CovenantRenownRewardTemplate" mixin="CovenantRenownRewardMixin" virtual="true">
<Frame name="CovenantRenownRewardTemplate" mixin="CovenantRenownRewardMixin" frameLevel="10" virtual="true">
<Size x="415" y="136"/>
<Layers>
<Layer level="BORDER">
......@@ -166,16 +159,27 @@
<Anchor point="BOTTOM" relativeKey="$parent.Background" y="11"/>
</Anchors>
</Texture>
<Texture parentKey="CelebrationModelSceneTarget">
<Size x="10" y="10"/>
<Anchors>
<Anchor point="BOTTOM" y="168"/>
</Anchors>
</Texture>
<Texture parentKey="SelectedLevelGlow">
<Anchors>
<Anchor point="CENTER"/>
</Anchors>
</Texture>
</Layer>
<Layer level="ARTWORK">
<Texture parentKey="TitleDivider">
<Anchors>
<Anchor point="TOP" relativeKey="$parent.Background" y="-102"/>
<Anchor point="TOP" y="-128"/>
</Anchors>
</Texture>
<Texture parentKey="Divider">
<Anchors>
<Anchor point="TOP" relativeKey="$parent.Background" y="-183"/>
<Anchor point="TOP" x="0" y="-209"/>
</Anchors>
</Texture>
<Texture parentKey="Anima">
......@@ -188,17 +192,12 @@
<Color r="0" g="0" b="0"/>
</Shadow>
<Anchors>
<Anchor point="TOP" y="-65"/>
</Anchors>
</FontString>
<FontString parentKey="CovenantName" inherits="GameFontNormal">
<Anchors>
<Anchor point="TOP" relativeKey="$parent.Header" relativePoint="BOTTOM" y="-4"/>
<Anchor point="TOP" y="-71"/>
</Anchors>
</FontString>