Commit 00d2ff0f authored by TOM_RUS's avatar TOM_RUS

WOW-35938patch9.0.2_Beta

parent 4a7b23b5
......@@ -94,6 +94,15 @@ local ChatInfo =
{ Name = "ids", Type = "table", InnerType = "string", Nilable = false },
},
},
{
Name = "GetMentorChannelID",
Type = "Function",
Returns =
{
{ Name = "channelID", Type = "number", Nilable = false },
},
},
{
Name = "GetNumActiveChannels",
Type = "Function",
......@@ -126,6 +135,34 @@ local ChatInfo =
{ 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",
Type = "Function",
......
......@@ -62,6 +62,7 @@ local Covenants =
{
{ Name = "ID", Type = "number", Nilable = false },
{ Name = "textureKit", Type = "string", Nilable = false },
{ Name = "celebrationSoundKit", Type = "number", Nilable = false },
{ Name = "name", Type = "string", Nilable = false },
{ Name = "soulbindIDs", Type = "table", InnerType = "number", Nilable = false },
},
......
......@@ -194,6 +194,20 @@ local LegendaryCrafting =
{ 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",
Type = "Function",
......
......@@ -181,6 +181,20 @@ local PvpInfo =
{ 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",
Type = "Function",
......
......@@ -89,9 +89,9 @@ local ScenarioInfo =
{
Name = "JailersTowerType",
Type = "Enumeration",
NumValues = 7,
NumValues = 11,
MinValue = 0,
MaxValue = 6,
MaxValue = 10,
Fields =
{
{ Name = "TwistingCorridors", Type = "JailersTowerType", EnumValue = 0 },
......@@ -101,6 +101,10 @@ local ScenarioInfo =
{ Name = "Coldheart", Type = "JailersTowerType", EnumValue = 4 },
{ Name = "Mortregar", Type = "JailersTowerType", EnumValue = 5 },
{ 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 =
{ 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",
Type = "Function",
......@@ -521,7 +535,7 @@ local Soulbinds =
{ Name = "conduitID", Type = "number", Nilable = false },
{ Name = "conduitRank", Type = "number", 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 = "covenantID", Type = "number", Nilable = true },
{ Name = "conduitItemID", Type = "number", Nilable = false },
......
......@@ -21,7 +21,7 @@ local Spell =
},
},
{
Name = "GetMawPowerRarityStringAndBorderAtlasBySpellID",
Name = "GetMawPowerBorderAtlasBySpellID",
Type = "Function",
Arguments =
......@@ -31,7 +31,6 @@ local Spell =
Returns =
{
{ Name = "rarityString", Type = "string", Nilable = false },
{ Name = "rarityBorderAtlas", Type = "string", Nilable = false },
},
},
......
......@@ -22,6 +22,11 @@ local SplashScreen =
{
Name = "RequestLatestSplashScreen",
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)
self:AddOrigin(originPosition);
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);
end
end
......@@ -286,6 +281,15 @@ function AnimaDiversionPinMixin:OnMouseEnter()
elseif self.nodeData.state == Enum.AnimaDiversionNodeState.SelectedPermanent then
GameTooltip_AddBlankLineToTooltip(GameTooltip);
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
......
......@@ -30,6 +30,7 @@ StaticPopupDialogs["ANIMA_DIVERSION_CONFIRM_CHANNEL"] = {
OnAccept = function(self, selectedNode)
C_AnimaDiversion.SelectAnimaNode(selectedNode.nodeData.talentID, true);
HelpTip:Acknowledge(AnimaDiversionFrame, ANIMA_DIVERSION_TUTORIAL_SELECT_LOCATION);
HelpTip:Acknowledge(AnimaDiversionFrame.ReinforceProgressFrame, ANIMA_DIVERSION_TUTORIAL_FILL_BAR);
end,
OnShow = function(self, selectedNode)
AnimaDiversionFrame:SetExclusiveSelectionNode(selectedNode);
......@@ -116,46 +117,8 @@ function AnimaDiversionFrameMixin:HasAvailableNode()
end
function AnimaDiversionFrameMixin:UpdateTutorialTips()
self.hasIntroTutorialShowing = false;
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
local reinforceLocationHelpTipInfo = {
text = ANIMA_DIVERSION_TUTORIAL_SELECT_LOCATION_PERMANENT,
......@@ -184,12 +147,23 @@ function AnimaDiversionFrameMixin:UpdateTutorialTips()
targetPoint = HelpTip.Point.LeftEdgeCenter,
offsetX = 120,
offsetY = 30,
checkCVars = true,
useParentStrata = true,
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
......@@ -211,10 +185,6 @@ function AnimaDiversionFrameMixin:ClearExclusiveSelectionNode()
self.disallowSelection = false;
end
function AnimaDiversionFrameMixin:HasIntroTutorialShowing()
return self.hasIntroTutorialShowing;
end
function AnimaDiversionFrameMixin:CanReinforceNode()
return self.bolsterProgress >= 10;
end
......@@ -290,7 +260,9 @@ end
function AnimaDiversionFrameMixin:AddStandardDataProviders()
self:AddDataProvider(CreateFromMixins(AnimaDiversionDataProviderMixin));
self:AddDataProvider(CreateFromMixins(AnimaDiversion_WorldQuestDataProviderMixin));
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_PIN");
end
......
......@@ -3,4 +3,5 @@
## Version: 1.0
## LoadOnDemand: 1
AnimaDiversionDataProvider.xml
AD_WorldQuestDataProvider.xml
Blizzard_AnimaDiversionUI.xml
\ No newline at end of file
......@@ -105,26 +105,39 @@ function AuctionCategoryMixin:CreateNamedSubCategory(name)
return subCategory;
end
function AuctionCategoryMixin:CreateNamedSubCategoryAndFilter(name, classID, subClassID, inventoryType, implicitFilter)
function AuctionCategoryMixin:CreateNamedSubCategoryAndFilter(name, classID, subClassID, inventoryType, implicitFilter, useParentFilters)
local category = self:CreateNamedSubCategory(name);
if useParentFilters then
self.filters = self.filters or {};
category:SetFilters(self.filters);
else
category:AddFilter(classID, subClassID, inventoryType, implicitFilter);
end
return category;
end
function AuctionCategoryMixin:CreateSubCategoryAndFilter(classID, subClassID, inventoryType, implicitFilter)
function AuctionCategoryMixin:CreateSubCategoryAndFilter(classID, subClassID, inventoryType, implicitFilter, useParentFilters)
local category = self:CreateSubCategory(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;
end
function AuctionCategoryMixin:AddBulkInventoryTypeCategories(classID, subClassID, inventoryTypes)
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
self:CreateSubCategoryAndFilter(classID, subClassID, inventoryType, implicitFilter);
self:CreateSubCategoryAndFilter(classID, subClassID, inventoryType);
end
end
......@@ -143,6 +156,10 @@ function AuctionCategoryMixin:AddFilter(classID, subClassID, inventoryType, impl
end
end
function AuctionCategoryMixin:SetFilters(filters)
self.filters = filters;
end
do
local function GenerateSubClassesHelper(self, classID, subClasses)
for i = 1, #subClasses do
......@@ -268,8 +285,11 @@ do -- Armor
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);
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:CreateSubCategoryAndFilter(LE_ITEM_CLASS_ARMOR, LE_ITEM_ARMOR_GENERIC, Enum.InventoryType.IndexFingerType);
......
......@@ -160,6 +160,10 @@ function FilterButton_SetUp(button, info)
button.type = info.type;
end
function AuctionFrameFilter_OnLoad(self)
self:SetPushedTextOffset(0, 0);
end
function AuctionFrameFilter_OnEnter(self)
TruncatedTooltipScript_OnEnter(self);
......@@ -172,6 +176,14 @@ function AuctionFrameFilter_OnLeave(self)
self.HighlightTexture:Hide();
end
function AuctionFrameFilter_OnMouseDown(self)
self.Text:AdjustPointsOffset(1, -1);
end
function AuctionFrameFilter_OnMouseUp(self)
self.Text:AdjustPointsOffset(-1, 1);
end
function AuctionFrameFilter_OnClick(self, button)
local categoriesList = self:GetParent();
local selectedCategoryIndex, selectedSubCategoryIndex, selectedSubSubCategoryIndex = categoriesList:GetSelectedCategory();
......@@ -201,7 +213,7 @@ function AuctionFrameFilter_OnClick(self, button)
end
categoriesList:SetSelectedCategory(selectedCategoryIndex, selectedSubCategoryIndex, selectedSubSubCategoryIndex);
AuctionFrameFilters_Update(categoriesList, true)
AuctionFrameFilters_Update(categoriesList, true);
end
......
......@@ -35,8 +35,11 @@
</Layer>
</Layers>
<Scripts>
<OnLoad function="AuctionFrameFilter_OnLoad"/>
<OnEnter function="AuctionFrameFilter_OnEnter"/>
<OnLeave function="AuctionFrameFilter_OnLeave"/>
<OnMouseDown function="AuctionFrameFilter_OnMouseDown"/>
<OnMouseUp function="AuctionFrameFilter_OnMouseUp"/>
<OnClick function="AuctionFrameFilter_OnClick"/>
</Scripts>
<ButtonText parentKey="Text" justifyH="LEFT">
......
......@@ -180,6 +180,8 @@ end
function BarberShopMixin:SetCharacterSex(sexID)
C_BarberShop.SetSelectedSex(sexID);
self:UpdateSex();
self:ResetCharacterRotation();
CharCustomizeFrame:UpdateCameraMode();
end
BarberShopButtonMixin = {};
......
......@@ -94,7 +94,7 @@
</Scripts>
</Button>
<Button name="KeybindingsDefaultsButtonTemplate" inherits="UIPanelButtonTemplate" text="RESET_TO_DEFAULT" virtual="true" mixin="KeybindingsDefaultsButtonMixin">
<Size x="130" y="22"/>
<Size x="150" y="22"/>
<Scripts>
<OnClick method="OnClick"/>
</Scripts>
......@@ -156,39 +156,6 @@
<Anchor point="TOPLEFT" relativePoint="TOPRIGHT" x="-245" y="-20"/>
</Anchors>
</CheckButton>
<Button parentKey="unbindButton" inherits="UIPanelButtonTemplate" text="UNBIND" mixin="KeybindingsUnbindButtonMixin">
<Size x="130" y="22"/>
<Anchors>
<Anchor point="BOTTOMRIGHT" x="-205" y="16"/>
</Anchors>
<Scripts>
<OnClick method="OnClick"/>
</Scripts>
</Button>
<Button parentKey="okayButton" inherits="KeybindingsOkayButtonTemplate">
<Anchors>
<Anchor point="BOTTOMLEFT" relativeKey="$parent.unbindButton" relativePoint="BOTTOMRIGHT"/>
</Anchors>
</Button>
<Button parentKey="cancelButton" inherits="KeybindsCancelButtonTemplate">
<Anchors>
<Anchor point="BOTTOMLEFT" relativeKey="$parent.okayButton" relativePoint="BOTTOMRIGHT"/>
</Anchors>
</Button>
<Button parentKey="quickKeybindButton" inherits="UIPanelButtonTemplate" text="QUICK_KEYBIND_MODE_BUTTON" mixin="QuickKeybindButtonMixin">
<Size x="160" y="22"/>
<Anchors>
<Anchor point="BOTTOMRIGHT" relativeKey="$parent.unbindButton" relativePoint="BOTTOMLEFT"/>
</Anchors>
<Scripts>
<OnClick method="OnClick"/>
</Scripts>
</Button>
<Button parentKey="defaultsButton" inherits="KeybindingsDefaultsButtonTemplate">
<Anchors>
<Anchor point="BOTTOMLEFT" x="16" y="16"/>
</Anchors>
</Button>
<Frame name="$parentCategoryList" parentKey="categoryList" inherits="OptionsFrameListTemplate">
<Size x="175" y="569"/>
<Anchors>
......@@ -199,6 +166,12 @@
<KeyValue key="buttonTemplate" value="KeyBindingsCategoryListButtonTemplate" type="string"/>
</KeyValues>
</Frame>
<Button parentKey="defaultsButton" inherits="KeybindingsDefaultsButtonTemplate">
<Anchors>
<Anchor point="BOTTOM" x="0" y="16"/>
<Anchor point="LEFT" relativeKey="$parent.categoryList" relativePoint="LEFT"/>
</Anchors>
</Button>
<Frame parentKey="bindingsContainer" inherits="TooltipBorderBackdropTemplate">
<Anchors>
<Anchor point="TOPLEFT" relativeKey="$parent.categoryList" relativePoint="TOPRIGHT" x="16" y="0"/>
......@@ -209,6 +182,36 @@
<KeyValue key="backdropBorderColor" value="LIGHTGRAY_FONT_COLOR" type="global"/>
</KeyValues>
</Frame>
<Button parentKey="cancelButton" inherits="KeybindsCancelButtonTemplate">
<Anchors>
<Anchor point="BOTTOM" relativeKey="$parent.defaultsButton" relativePoint="BOTTOM"/>
<Anchor point="RIGHT" relativeKey="$parent.bindingsContainer" relativePoint="RIGHT"/>
</Anchors>
</Button>
<Button parentKey="okayButton" inherits="KeybindingsOkayButtonTemplate">
<Anchors>
<Anchor point="BOTTOMRIGHT" relativeKey="$parent.cancelButton" relativePoint="BOTTOMLEFT" x="-2" y="0"/>
</Anchors>
</Button>