Commit 00d2ff0f authored by TOM_RUS's avatar TOM_RUS

WOW-35938patch9.0.2_Beta

parent 4a7b23b5
...@@ -94,6 +94,15 @@ local ChatInfo = ...@@ -94,6 +94,15 @@ local ChatInfo =
{ Name = "ids", Type = "table", InnerType = "string", Nilable = false }, { Name = "ids", Type = "table", InnerType = "string", Nilable = false },
}, },
}, },
{
Name = "GetMentorChannelID",
Type = "Function",
Returns =
{
{ Name = "channelID", Type = "number", Nilable = false },
},
},
{ {
Name = "GetNumActiveChannels", Name = "GetNumActiveChannels",
Type = "Function", Type = "Function",
...@@ -126,6 +135,34 @@ local ChatInfo = ...@@ -126,6 +135,34 @@ local ChatInfo =
{ Name = "isRegistered", Type = "bool", Nilable = false }, { Name = "isRegistered", Type = "bool", Nilable = false },
}, },
}, },
{
Name = "IsChannelRegional",
Type = "Function",
Arguments =
{
{ Name = "channelIndex", Type = "number", Nilable = false },
},
Returns =
{
{ Name = "isRegional", Type = "bool", Nilable = false },
},
},
{
Name = "IsChannelRegionalForChannelID",
Type = "Function",
Arguments =
{
{ Name = "channelID", Type = "number", Nilable = false },
},
Returns =
{
{ Name = "isRegional", Type = "bool", Nilable = false },
},
},
{ {
Name = "IsPartyChannelType", Name = "IsPartyChannelType",
Type = "Function", Type = "Function",
......
...@@ -62,6 +62,7 @@ local Covenants = ...@@ -62,6 +62,7 @@ local Covenants =
{ {
{ Name = "ID", Type = "number", Nilable = false }, { Name = "ID", Type = "number", Nilable = false },
{ Name = "textureKit", Type = "string", Nilable = false }, { Name = "textureKit", Type = "string", Nilable = false },
{ Name = "celebrationSoundKit", Type = "number", Nilable = false },
{ Name = "name", Type = "string", Nilable = false }, { Name = "name", Type = "string", Nilable = false },
{ Name = "soulbindIDs", Type = "table", InnerType = "number", Nilable = false }, { Name = "soulbindIDs", Type = "table", InnerType = "number", Nilable = false },
}, },
......
...@@ -194,6 +194,20 @@ local LegendaryCrafting = ...@@ -194,6 +194,20 @@ local LegendaryCrafting =
{ Name = "isRuneforgeLegendary", Type = "bool", Nilable = false }, { Name = "isRuneforgeLegendary", Type = "bool", Nilable = false },
}, },
}, },
{
Name = "IsRuneforgeLegendaryMaxLevel",
Type = "Function",
Arguments =
{
{ Name = "runeforgeLegendary", Type = "table", Mixin = "ItemLocationMixin", Nilable = false },
},
Returns =
{
{ Name = "isMaxLevel", Type = "bool", Nilable = false },
},
},
{ {
Name = "IsUpgradeItemValidForRuneforgeLegendary", Name = "IsUpgradeItemValidForRuneforgeLegendary",
Type = "Function", Type = "Function",
......
...@@ -181,6 +181,20 @@ local PvpInfo = ...@@ -181,6 +181,20 @@ local PvpInfo =
{ Name = "info", Type = "BattlefieldVehicleInfo", Nilable = false }, { Name = "info", Type = "BattlefieldVehicleInfo", Nilable = false },
}, },
}, },
{
Name = "GetBattlefieldVehicles",
Type = "Function",
Arguments =
{
{ Name = "uiMapID", Type = "number", Nilable = false },
},
Returns =
{
{ Name = "vehicles", Type = "table", InnerType = "BattlefieldVehicleInfo", Nilable = false },
},
},
{ {
Name = "GetBrawlRewards", Name = "GetBrawlRewards",
Type = "Function", Type = "Function",
......
...@@ -89,9 +89,9 @@ local ScenarioInfo = ...@@ -89,9 +89,9 @@ local ScenarioInfo =
{ {
Name = "JailersTowerType", Name = "JailersTowerType",
Type = "Enumeration", Type = "Enumeration",
NumValues = 7, NumValues = 11,
MinValue = 0, MinValue = 0,
MaxValue = 6, MaxValue = 10,
Fields = Fields =
{ {
{ Name = "TwistingCorridors", Type = "JailersTowerType", EnumValue = 0 }, { Name = "TwistingCorridors", Type = "JailersTowerType", EnumValue = 0 },
...@@ -101,6 +101,10 @@ local ScenarioInfo = ...@@ -101,6 +101,10 @@ local ScenarioInfo =
{ Name = "Coldheart", Type = "JailersTowerType", EnumValue = 4 }, { Name = "Coldheart", Type = "JailersTowerType", EnumValue = 4 },
{ Name = "Mortregar", Type = "JailersTowerType", EnumValue = 5 }, { Name = "Mortregar", Type = "JailersTowerType", EnumValue = 5 },
{ Name = "UpperReaches", Type = "JailersTowerType", EnumValue = 6 }, { Name = "UpperReaches", Type = "JailersTowerType", EnumValue = 6 },
{ Name = "ArkobanHall", Type = "JailersTowerType", EnumValue = 7 },
{ Name = "TormentChamberJaina", Type = "JailersTowerType", EnumValue = 8 },
{ Name = "TormentChamberThrall", Type = "JailersTowerType", EnumValue = 9 },
{ Name = "TormentChamberAnduin", Type = "JailersTowerType", EnumValue = 10 },
}, },
}, },
}, },
......
...@@ -368,6 +368,20 @@ local Soulbinds = ...@@ -368,6 +368,20 @@ local Soulbinds =
{ Name = "result", Type = "bool", Nilable = false }, { Name = "result", Type = "bool", Nilable = false },
}, },
}, },
{
Name = "MatchesCurrentSpecSet",
Type = "Function",
Arguments =
{
{ Name = "specSetID", Type = "number", Nilable = false },
},
Returns =
{
{ Name = "matches", Type = "bool", Nilable = false },
},
},
{ {
Name = "RemovePendingConduit", Name = "RemovePendingConduit",
Type = "Function", Type = "Function",
...@@ -521,7 +535,7 @@ local Soulbinds = ...@@ -521,7 +535,7 @@ local Soulbinds =
{ Name = "conduitID", Type = "number", Nilable = false }, { Name = "conduitID", Type = "number", Nilable = false },
{ Name = "conduitRank", Type = "number", Nilable = false }, { Name = "conduitRank", Type = "number", Nilable = false },
{ Name = "conduitType", Type = "SoulbindConduitType", Nilable = false }, { Name = "conduitType", Type = "SoulbindConduitType", Nilable = false },
{ Name = "conduitSpecID", Type = "number", Nilable = false }, { Name = "conduitSpecSetID", Type = "number", Nilable = false },
{ Name = "conduitSpecName", Type = "string", Nilable = true }, { Name = "conduitSpecName", Type = "string", Nilable = true },
{ Name = "covenantID", Type = "number", Nilable = true }, { Name = "covenantID", Type = "number", Nilable = true },
{ Name = "conduitItemID", Type = "number", Nilable = false }, { Name = "conduitItemID", Type = "number", Nilable = false },
......
...@@ -21,7 +21,7 @@ local Spell = ...@@ -21,7 +21,7 @@ local Spell =
}, },
}, },
{ {
Name = "GetMawPowerRarityStringAndBorderAtlasBySpellID", Name = "GetMawPowerBorderAtlasBySpellID",
Type = "Function", Type = "Function",
Arguments = Arguments =
...@@ -31,7 +31,6 @@ local Spell = ...@@ -31,7 +31,6 @@ local Spell =
Returns = Returns =
{ {
{ Name = "rarityString", Type = "string", Nilable = false },
{ Name = "rarityBorderAtlas", Type = "string", Nilable = false }, { Name = "rarityBorderAtlas", Type = "string", Nilable = false },
}, },
}, },
......
...@@ -22,6 +22,11 @@ local SplashScreen = ...@@ -22,6 +22,11 @@ local SplashScreen =
{ {
Name = "RequestLatestSplashScreen", Name = "RequestLatestSplashScreen",
Type = "Function", Type = "Function",
Arguments =
{
{ Name = "fromGameMenu", Type = "bool", Nilable = false },
},
}, },
}, },
......
AnimaDiversion_WorldQuestDataProviderMixin = CreateFromMixins(WorldQuestDataProviderMixin);
function AnimaDiversion_WorldQuestDataProviderMixin:GetPinTemplate()
return "AnimaDiversion_WorldQuestPinTemplate";
end
AnimaDiversion_WorldQuestPinMixin = CreateFromMixins(WorldQuestPinMixin);
function AnimaDiversion_WorldQuestPinMixin:OnLoad()
WorldQuestPinMixin.OnLoad(self);
self:SetAlphaLimits(2.0, 0.6, 0.6);
self:SetScalingLimits(1, 0.4125, 0.425);
self:SetNudgeTargetFactor(0.015);
self:SetNudgeZoomedOutFactor(1.0);
self:SetNudgeZoomedInFactor(0.25);
end
\ No newline at end of file
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
..\FrameXML\UI.xsd">
<Script file="AD_WorldQuestDataProvider.lua"/>
<Frame name="AnimaDiversion_WorldQuestPinTemplate" inherits="WorldQuestPinTemplate" mixin="AnimaDiversion_WorldQuestPinMixin" virtual="true"/>
</Ui>
...@@ -134,11 +134,6 @@ function AnimaDiversionDataProviderMixin:RefreshAllData(fromOnShow) ...@@ -134,11 +134,6 @@ function AnimaDiversionDataProviderMixin:RefreshAllData(fromOnShow)
self:AddOrigin(originPosition); self:AddOrigin(originPosition);
for _, nodeData in ipairs(animaNodes) do for _, nodeData in ipairs(animaNodes) do
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); self:AddNode(nodeData);
end end
end end
...@@ -286,6 +281,15 @@ function AnimaDiversionPinMixin:OnMouseEnter() ...@@ -286,6 +281,15 @@ function AnimaDiversionPinMixin:OnMouseEnter()
elseif self.nodeData.state == Enum.AnimaDiversionNodeState.SelectedPermanent then elseif self.nodeData.state == Enum.AnimaDiversionNodeState.SelectedPermanent then
GameTooltip_AddBlankLineToTooltip(GameTooltip); GameTooltip_AddBlankLineToTooltip(GameTooltip);
GameTooltip_AddColoredLine(GameTooltip, ANIMA_DIVERSION_POI_REINFORCED, GREEN_FONT_COLOR); GameTooltip_AddColoredLine(GameTooltip, ANIMA_DIVERSION_POI_REINFORCED, GREEN_FONT_COLOR);
elseif self.nodeData.state == Enum.AnimaDiversionNodeState.Available then
local talentInfo = C_Garrison.GetTalentInfo(self.nodeData.talentID);
if talentInfo then
local costString = GetGarrisonTalentCostString(talentInfo);
if costString then
GameTooltip_AddBlankLineToTooltip(GameTooltip);
GameTooltip_AddHighlightLine(GameTooltip, costString);
end
end
end end
end end
......
...@@ -30,6 +30,7 @@ StaticPopupDialogs["ANIMA_DIVERSION_CONFIRM_CHANNEL"] = { ...@@ -30,6 +30,7 @@ StaticPopupDialogs["ANIMA_DIVERSION_CONFIRM_CHANNEL"] = {
OnAccept = function(self, selectedNode) OnAccept = function(self, selectedNode)
C_AnimaDiversion.SelectAnimaNode(selectedNode.nodeData.talentID, true); C_AnimaDiversion.SelectAnimaNode(selectedNode.nodeData.talentID, true);
HelpTip:Acknowledge(AnimaDiversionFrame, ANIMA_DIVERSION_TUTORIAL_SELECT_LOCATION); HelpTip:Acknowledge(AnimaDiversionFrame, ANIMA_DIVERSION_TUTORIAL_SELECT_LOCATION);
HelpTip:Acknowledge(AnimaDiversionFrame.ReinforceProgressFrame, ANIMA_DIVERSION_TUTORIAL_FILL_BAR);
end, end,
OnShow = function(self, selectedNode) OnShow = function(self, selectedNode)
AnimaDiversionFrame:SetExclusiveSelectionNode(selectedNode); AnimaDiversionFrame:SetExclusiveSelectionNode(selectedNode);
...@@ -116,46 +117,8 @@ function AnimaDiversionFrameMixin:HasAvailableNode() ...@@ -116,46 +117,8 @@ function AnimaDiversionFrameMixin:HasAvailableNode()
end end
function AnimaDiversionFrameMixin:UpdateTutorialTips() function AnimaDiversionFrameMixin:UpdateTutorialTips()
self.hasIntroTutorialShowing = false;
local updateTutorialTipsClosure = GenerateClosure(self.UpdateTutorialTips, self); local updateTutorialTipsClosure = GenerateClosure(self.UpdateTutorialTips, self);
local spendAnimaHelpTipInfo = {
text = ANIMA_DIVERSION_TUTORIAL_SPEND_ANIMA,
buttonStyle = HelpTip.ButtonStyle.Close,
cvarBitfield = "closedInfoFrames",
bitfieldFlag = LE_FRAME_TUTORIAL_ANIMA_DIVERSION_SPEND_ANIMA,
targetPoint = HelpTip.Point.RightEdgeCenter,
offsetX = -50,
checkCVars = true,
autoEdgeFlipping = true,
useParentStrata = true,
onAcknowledgeCallback = updateTutorialTipsClosure,
};
if HelpTip:Show(self.AnimaDiversionCurrencyFrame, spendAnimaHelpTipInfo) then
self.hasIntroTutorialShowing = true;
return;
end
local fillBarHelpTipInfo = {
text = ANIMA_DIVERSION_TUTORIAL_FILL_BAR,
buttonStyle = HelpTip.ButtonStyle.Close,
cvarBitfield = "closedInfoFrames",
bitfieldFlag = LE_FRAME_TUTORIAL_ANIMA_DIVERSION_FILL_BAR,
targetPoint = HelpTip.Point.RightEdgeCenter,
offsetX = -17,
checkCVars = true,
autoEdgeFlipping = true,
useParentStrata = true,
onAcknowledgeCallback = function() self:UpdateTutorialTips(); self:RefreshAllDataProviders(); end,
};
if HelpTip:Show(self.ReinforceProgressFrame, fillBarHelpTipInfo) then
self.hasIntroTutorialShowing = true;
return;
end
if self:CanReinforceNode() then if self:CanReinforceNode() then
local reinforceLocationHelpTipInfo = { local reinforceLocationHelpTipInfo = {
text = ANIMA_DIVERSION_TUTORIAL_SELECT_LOCATION_PERMANENT, text = ANIMA_DIVERSION_TUTORIAL_SELECT_LOCATION_PERMANENT,
...@@ -184,12 +147,23 @@ function AnimaDiversionFrameMixin:UpdateTutorialTips() ...@@ -184,12 +147,23 @@ function AnimaDiversionFrameMixin:UpdateTutorialTips()
targetPoint = HelpTip.Point.LeftEdgeCenter, targetPoint = HelpTip.Point.LeftEdgeCenter,
offsetX = 120, offsetX = 120,
offsetY = 30, offsetY = 30,
checkCVars = true,
useParentStrata = true, useParentStrata = true,
onAcknowledgeCallback = updateTutorialTipsClosure, onAcknowledgeCallback = updateTutorialTipsClosure,
}; };
HelpTip:Show(self, selectLocationHelpTipInfo) HelpTip:Show(self, selectLocationHelpTipInfo);
local fillBarHelpTipInfo = {
text = ANIMA_DIVERSION_TUTORIAL_FILL_BAR,
buttonStyle = HelpTip.ButtonStyle.None,
targetPoint = HelpTip.Point.RightEdgeCenter,
offsetX = -17,
autoEdgeFlipping = true,
useParentStrata = true,
onAcknowledgeCallback = updateTutorialTipsClosure,
};
HelpTip:Show(self.ReinforceProgressFrame, fillBarHelpTipInfo);
end end
end end
...@@ -211,10 +185,6 @@ function AnimaDiversionFrameMixin:ClearExclusiveSelectionNode() ...@@ -211,10 +185,6 @@ function AnimaDiversionFrameMixin:ClearExclusiveSelectionNode()
self.disallowSelection = false; self.disallowSelection = false;
end end
function AnimaDiversionFrameMixin:HasIntroTutorialShowing()
return self.hasIntroTutorialShowing;
end
function AnimaDiversionFrameMixin:CanReinforceNode() function AnimaDiversionFrameMixin:CanReinforceNode()
return self.bolsterProgress >= 10; return self.bolsterProgress >= 10;
end end
...@@ -290,7 +260,9 @@ end ...@@ -290,7 +260,9 @@ end
function AnimaDiversionFrameMixin:AddStandardDataProviders() function AnimaDiversionFrameMixin:AddStandardDataProviders()
self:AddDataProvider(CreateFromMixins(AnimaDiversionDataProviderMixin)); self:AddDataProvider(CreateFromMixins(AnimaDiversionDataProviderMixin));
self:AddDataProvider(CreateFromMixins(AnimaDiversion_WorldQuestDataProviderMixin));
local pinFrameLevelsManager = self:GetPinFrameLevelsManager(); local pinFrameLevelsManager = self:GetPinFrameLevelsManager();
pinFrameLevelsManager:AddFrameLevel("PIN_FRAME_LEVEL_WORLD_QUEST", 500);
pinFrameLevelsManager:AddFrameLevel("PIN_FRAME_LEVEL_ANIMA_DIVERSION_MODELSCENE_PIN"); pinFrameLevelsManager:AddFrameLevel("PIN_FRAME_LEVEL_ANIMA_DIVERSION_MODELSCENE_PIN");
pinFrameLevelsManager:AddFrameLevel("PIN_FRAME_LEVEL_ANIMA_DIVERSION_PIN"); pinFrameLevelsManager:AddFrameLevel("PIN_FRAME_LEVEL_ANIMA_DIVERSION_PIN");
end end
......
...@@ -3,4 +3,5 @@ ...@@ -3,4 +3,5 @@
## Version: 1.0 ## Version: 1.0
## LoadOnDemand: 1 ## LoadOnDemand: 1
AnimaDiversionDataProvider.xml AnimaDiversionDataProvider.xml
AD_WorldQuestDataProvider.xml
Blizzard_AnimaDiversionUI.xml Blizzard_AnimaDiversionUI.xml
\ No newline at end of file
...@@ -105,26 +105,39 @@ function AuctionCategoryMixin:CreateNamedSubCategory(name) ...@@ -105,26 +105,39 @@ function AuctionCategoryMixin:CreateNamedSubCategory(name)
return subCategory; return subCategory;
end end
function AuctionCategoryMixin:CreateNamedSubCategoryAndFilter(name, classID, subClassID, inventoryType, implicitFilter) function AuctionCategoryMixin:CreateNamedSubCategoryAndFilter(name, classID, subClassID, inventoryType, implicitFilter, useParentFilters)
local category = self:CreateNamedSubCategory(name); local category = self:CreateNamedSubCategory(name);
category:AddFilter(classID, subClassID, inventoryType, implicitFilter);
if useParentFilters then
self.filters = self.filters or {};
category:SetFilters(self.filters);
else
category:AddFilter(classID, subClassID, inventoryType, implicitFilter);
end
return category; return category;
end end
function AuctionCategoryMixin:CreateSubCategoryAndFilter(classID, subClassID, inventoryType, implicitFilter) function AuctionCategoryMixin:CreateSubCategoryAndFilter(classID, subClassID, inventoryType, implicitFilter, useParentFilters)
local category = self:CreateSubCategory(classID, subClassID, inventoryType, implicitFilter); local category = self:CreateSubCategory(classID, subClassID, inventoryType, implicitFilter);
category:AddFilter(classID, subClassID, inventoryType, implicitFilter);
if useParentFilters then
self.filters = self.filters or {};
category:SetFilters(self.filters);
else
category:AddFilter(classID, subClassID, inventoryType, implicitFilter);
end
return category; return category;
end end
function AuctionCategoryMixin:AddBulkInventoryTypeCategories(classID, subClassID, inventoryTypes) function AuctionCategoryMixin:AddBulkInventoryTypeCategories(classID, subClassID, inventoryTypes)
local inventoryType = nil; local inventoryType = nil;
self:CreateSubCategoryAndFilter(classID, subClassID, inventoryType, Enum.AuctionHouseFilter.LegendaryCraftedItemOnly); local useParentFilters = true;
self:CreateSubCategoryAndFilter(classID, subClassID, inventoryType, Enum.AuctionHouseFilter.LegendaryCraftedItemOnly, useParentFilters);
for i, inventoryType in ipairs(inventoryTypes) do for i, inventoryType in ipairs(inventoryTypes) do
self:CreateSubCategoryAndFilter(classID, subClassID, inventoryType, implicitFilter); self:CreateSubCategoryAndFilter(classID, subClassID, inventoryType);
end end
end end
...@@ -143,6 +156,10 @@ function AuctionCategoryMixin:AddFilter(classID, subClassID, inventoryType, impl ...@@ -143,6 +156,10 @@ function AuctionCategoryMixin:AddFilter(classID, subClassID, inventoryType, impl
end end
end end
function AuctionCategoryMixin:SetFilters(filters)
self.filters = filters;
end
do do
local function GenerateSubClassesHelper(self, classID, subClasses) local function GenerateSubClassesHelper(self, classID, subClasses)
for i = 1, #subClasses do for i = 1, #subClasses do
...@@ -268,8 +285,11 @@ do -- Armor ...@@ -268,8 +285,11 @@ do -- Armor
clothChestCategory:AddFilter(LE_ITEM_CLASS_ARMOR, LE_ITEM_ARMOR_CLOTH, Enum.InventoryType.IndexRobeType); clothChestCategory:AddFilter(LE_ITEM_CLASS_ARMOR, LE_ITEM_ARMOR_CLOTH, Enum.InventoryType.IndexRobeType);
local miscCategory = armorCategory:CreateSubCategory(LE_ITEM_CLASS_ARMOR, LE_ITEM_ARMOR_GENERIC); local miscCategory = armorCategory:CreateSubCategory(LE_ITEM_CLASS_ARMOR, LE_ITEM_ARMOR_GENERIC);
miscCategory:CreateSubCategoryAndFilter(LE_ITEM_CLASS_ARMOR, LE_ITEM_ARMOR_GENERIC, nil, Enum.AuctionHouseFilter.LegendaryCraftedItemOnly);
miscCategory:CreateSubCategoryAndFilter(LE_ITEM_CLASS_ARMOR, LE_ITEM_ARMOR_GENERIC, Enum.InventoryType.NECK_TYPE); local useParentFilters = true;
miscCategory:CreateSubCategoryAndFilter(LE_ITEM_CLASS_ARMOR, LE_ITEM_ARMOR_GENERIC, nil, Enum.AuctionHouseFilter.LegendaryCraftedItemOnly, useParentFilters);
miscCategory:CreateSubCategoryAndFilter(LE_ITEM_CLASS_ARMOR, LE_ITEM_ARMOR_GENERIC, Enum.InventoryType.IndexNeckType);
miscCategory:CreateNamedSubCategoryAndFilter(AUCTION_SUBCATEGORY_CLOAK, LE_ITEM_CLASS_ARMOR, LE_ITEM_ARMOR_CLOTH, Enum.InventoryType.IndexCloakType); miscCategory:CreateNamedSubCategoryAndFilter(AUCTION_SUBCATEGORY_CLOAK, LE_ITEM_CLASS_ARMOR, LE_ITEM_ARMOR_CLOTH, Enum.InventoryType.IndexCloakType);
miscCategory:CreateSubCategoryAndFilter(LE_ITEM_CLASS_ARMOR, LE_ITEM_ARMOR_GENERIC, Enum.InventoryType.IndexFingerType); miscCategory:CreateSubCategoryAndFilter(LE_ITEM_CLASS_ARMOR, LE_ITEM_ARMOR_GENERIC, Enum.InventoryType.IndexFingerType);
......