Commit ba6cd7d2 authored by TOM_RUS's avatar TOM_RUS

WOW-35078patch9.0.1_Beta

parent f7e5bbd1
......@@ -195,6 +195,7 @@ ItemSharedDocumentation.lua
LegendaryCraftingTypesDocumentation.lua
ModelSceneDocumentation.lua
NamePlateDocumentation.lua
PetScalingConstantsDocumentation.lua
PlayerDocumentation.lua
PlayerMentorshipConstantsDocumentation.lua
QuestConstantsDocumentation.lua
......
......@@ -6,6 +6,10 @@ local CovenantSanctum =
Functions =
{
{
Name = "DepositAnima",
Type = "Function",
},
{
Name = "EndInteraction",
Type = "Function",
......
......@@ -23,7 +23,16 @@ local GarrisonInfo =
},
},
{
Name = "GetAutoCombatSpellName",
Name = "GetAutoCombatDamageClassValues",
Type = "Function",
Returns =
{
{ Name = "damageClassStrings", Type = "table", InnerType = "AutoCombatDamageClassString", Nilable = false },
},
},
{
Name = "GetCombatLogSpellInfo",
Type = "Function",
Arguments =
......@@ -33,7 +42,7 @@ local GarrisonInfo =
Returns =
{
{ Name = "spellName", Type = "string", Nilable = true },
{ Name = "spellInfo", Type = "AutoCombatSpellInfo", Nilable = true },
},
},
{
......@@ -832,16 +841,12 @@ local GarrisonInfo =
Tables =
{
{
Name = "AutoCombatantRole",
Type = "Enumeration",
NumValues = 3,
MinValue = 0,
MaxValue = 2,
Name = "AutoCombatDamageClassString",
Type = "Structure",
Fields =
{
{ Name = "Damager", Type = "AutoCombatantRole", EnumValue = 0 },
{ Name = "Healer", Type = "AutoCombatantRole", EnumValue = 1 },
{ Name = "Tank", Type = "AutoCombatantRole", EnumValue = 2 },
{ Name = "damageClassValue", Type = "number", Nilable = false },
{ Name = "locString", Type = "string", Nilable = false },
},
},
{
......@@ -958,7 +963,7 @@ local GarrisonInfo =
{ Name = "boardIndex", Type = "number", Nilable = false },
{ Name = "health", Type = "number", Nilable = false },
{ Name = "maxHealth", Type = "number", Nilable = false },
{ Name = "role", Type = "AutoCombatantRole", Nilable = false },
{ Name = "role", Type = "number", Nilable = false },
},
},
{
......@@ -1003,7 +1008,7 @@ local GarrisonInfo =
{ Name = "height", Type = "number", Nilable = false },
{ Name = "mechanics", Type = "table", InnerType = "GarrisonMechanicInfo", Nilable = false },
{ Name = "autoCombatSpells", Type = "table", InnerType = "AutoCombatSpellInfo", Nilable = false },
{ Name = "role", Type = "AutoCombatantRole", Nilable = false },
{ Name = "role", Type = "number", Nilable = false },
{ Name = "health", Type = "number", Nilable = false },
{ Name = "maxHealth", Type = "number", Nilable = false },
{ Name = "boardIndex", Type = "number", Nilable = false },
......
......@@ -6,21 +6,6 @@ local LegendaryCrafting =
Functions =
{
{
Name = "CanCraftRuneforgeLegendary",
Type = "Function",
Arguments =
{
{ Name = "description", Type = "RuneforgeLegendaryCraftDescription", Nilable = false },
},
Returns =
{
{ Name = "canCraft", Type = "bool", Nilable = false },
{ Name = "error", Type = "RuneforgeLegendaryError", Nilable = true },
},
},
{
Name = "CloseRuneforgeInteraction",
Type = "Function",
......@@ -57,6 +42,15 @@ local LegendaryCrafting =
{ Name = "spellID", Type = "number", Nilable = false },
},
},
{
Name = "GetRuneforgeLegendaryCurrencies",
Type = "Function",
Returns =
{
{ Name = "currencies", Type = "table", InnerType = "number", Nilable = false },
},
},
{
Name = "GetRuneforgeModifierInfo",
Type = "Function",
......@@ -79,11 +73,6 @@ local LegendaryCrafting =
Name = "GetRuneforgeModifiers",
Type = "Function",
Arguments =
{
{ Name = "baseItem", Type = "table", Mixin = "ItemLocationMixin", Nilable = false },
},
Returns =
{
{ Name = "modifiedReagentItemIDs", Type = "table", InnerType = "number", Nilable = false },
......
......@@ -2,17 +2,6 @@ local LegendaryCraftingTypes =
{
Tables =
{
{
Name = "RuneforgeLegendaryError",
Type = "Enumeration",
NumValues = 1,
MinValue = 0,
MaxValue = 0,
Fields =
{
{ Name = "MissingReagents", Type = "RuneforgeLegendaryError", EnumValue = 0 },
},
},
{
Name = "RuneforgePowerState",
Type = "Enumeration",
......
local PetScalingConstants =
{
Tables =
{
},
};
APIDocumentation:AddDocumentationTable(PetScalingConstants);
\ No newline at end of file
......@@ -42,9 +42,9 @@ local ScriptedAnimations =
{
Name = "ScriptedAnimationTrajectory",
Type = "Enumeration",
NumValues = 6,
NumValues = 7,
MinValue = 0,
MaxValue = 5,
MaxValue = 6,
Fields =
{
{ Name = "AtSource", Type = "ScriptedAnimationTrajectory", EnumValue = 0 },
......@@ -53,6 +53,7 @@ local ScriptedAnimations =
{ Name = "CurveLeft", Type = "ScriptedAnimationTrajectory", EnumValue = 3 },
{ Name = "CurveRight", Type = "ScriptedAnimationTrajectory", EnumValue = 4 },
{ Name = "CurveRandom", Type = "ScriptedAnimationTrajectory", EnumValue = 5 },
{ Name = "HalfwayBetween", Type = "ScriptedAnimationTrajectory", EnumValue = 6 },
},
},
{
......
......@@ -296,6 +296,7 @@ local Soulbinds =
{ Name = "textureKit", Type = "string", Nilable = false },
{ Name = "tree", Type = "SoulbindTree", Nilable = false },
{ Name = "modelSceneData", Type = "SoulbindModelSceneData", Nilable = false },
{ Name = "resetData", Type = "SoulbindResetData", Nilable = false },
},
},
{
......@@ -324,6 +325,24 @@ local Soulbinds =
{ Name = "parentNodeIDs", Type = "table", InnerType = "number", Nilable = false },
},
},
{
Name = "SoulbindResetCurrencyData",
Type = "Structure",
Fields =
{
{ Name = "currencyID", Type = "number", Nilable = false },
{ Name = "quantity", Type = "number", Nilable = false },
},
},
{
Name = "SoulbindResetData",
Type = "Structure",
Fields =
{
{ Name = "goldCost", Type = "number", Nilable = false },
{ Name = "currencyCosts", Type = "table", InnerType = "SoulbindResetCurrencyData", Nilable = false },
},
},
{
Name = "SoulbindTree",
Type = "Structure",
......
......@@ -285,6 +285,20 @@ local UIWidgetManager =
{ Name = "widgetInfo", Type = "TextureAndTextVisualizationInfo", Nilable = true },
},
},
{
Name = "GetTextureWithAnimationVisualizationInfo",
Type = "Function",
Arguments =
{
{ Name = "widgetID", Type = "number", Nilable = false },
},
Returns =
{
{ Name = "widgetInfo", Type = "TextureWithAnimationVisualizationInfo", Nilable = true },
},
},
{
Name = "GetTopCenterWidgetSetID",
Type = "Function",
......@@ -1041,6 +1055,25 @@ local UIWidgetManager =
{ Name = "layoutDirection", Type = "UIWidgetLayoutDirection", Nilable = false },
},
},
{
Name = "TextureWithAnimationVisualizationInfo",
Type = "Structure",
Fields =
{
{ Name = "shownState", Type = "WidgetShownState", Nilable = false },
{ Name = "tooltip", Type = "string", Nilable = false },
{ Name = "widgetSizeSetting", Type = "number", Nilable = false },
{ Name = "textureKit", Type = "string", Nilable = false },
{ Name = "frameTextureKit", Type = "string", Nilable = false },
{ Name = "hasTimer", Type = "bool", Nilable = false },
{ Name = "orderIndex", Type = "number", Nilable = false },
{ Name = "widgetTag", Type = "string", Nilable = false },
{ Name = "inAnimType", Type = "WidgetAnimationType", Nilable = false },
{ Name = "outAnimType", Type = "WidgetAnimationType", Nilable = false },
{ Name = "widgetScale", Type = "UIWidgetScale", Nilable = false },
{ Name = "layoutDirection", Type = "UIWidgetLayoutDirection", Nilable = false },
},
},
{
Name = "UIWidgetCurrencyInfo",
Type = "Structure",
......
......@@ -46,9 +46,9 @@ local UIWidgetManagerShared =
{
Name = "UIWidgetVisualizationType",
Type = "Enumeration",
NumValues = 18,
NumValues = 20,
MinValue = 0,
MaxValue = 17,
MaxValue = 19,
Fields =
{
{ Name = "IconAndText", Type = "UIWidgetVisualizationType", EnumValue = 0 },
......@@ -69,6 +69,8 @@ local UIWidgetManagerShared =
{ Name = "TextureAndTextRow", Type = "UIWidgetVisualizationType", EnumValue = 15 },
{ Name = "ZoneControl", Type = "UIWidgetVisualizationType", EnumValue = 16 },
{ Name = "CaptureZone", Type = "UIWidgetVisualizationType", EnumValue = 17 },
{ Name = "TextureWithAnimation", Type = "UIWidgetVisualizationType", EnumValue = 18 },
{ Name = "DiscreteProgressSteps", Type = "UIWidgetVisualizationType", EnumValue = 19 },
},
},
},
......
......@@ -489,9 +489,6 @@ end
function CharacterCreateMixin:RotateCharacterToTarget(targetRotation, duration)
if not self.mouseRotating then
local currentRotation = C_CharacterCreation.GetCharacterCreateFacing();
if targetRotation == currentRotation then
return;
end
if duration == 0 then
C_CharacterCreation.SetCharacterCreateFacing(targetRotation);
......@@ -897,17 +894,195 @@ end
function CharacterCreateRaceAndClassMixin:OnHide()
end
function CharacterCreateRaceAndClassMixin:ClearTimer()
if self.Timer then
self.Timer:Cancel();
end
end
function CharacterCreateRaceAndClassMixin:PlayClassAnimations()
self:ClearTimer();
local function playAnims()
self:StopClassAnimations();
local spellVisualKitID = self.selectedClassData.spellVisualKitID;
if spellVisualKitID then
self:GetParent():RotateCharacterToTarget(0, 0);
self.currentSpellVisualKitID = spellVisualKitID;
local startTargetingSequence = true;
local noBlending = (self.allowClassAnimationsAfterSeconds == 0);
C_CharacterCreation.PlaySpellVisualKitOnCharacter(spellVisualKitID, startTargetingSequence, noBlending);
if self.selectedClassData.groundSpellVisualKitID then
self.currentGroundSpellVisualKitID = self.selectedClassData.groundSpellVisualKitID;
C_CharacterCreation.PlaySpellVisualKitOnGround(self.selectedClassData.groundSpellVisualKitID);
end
end
end
if not self.allowClassAnimationsAfterSeconds then
return;
else
if self.allowClassAnimationsAfterSeconds > 0 then
self.Timer = C_Timer.NewTimer(self.allowClassAnimationsAfterSeconds, playAnims);
else
playAnims();
end
end
end
function CharacterCreateRaceAndClassMixin:StopClassAnimations()
self:ClearTimer();
self.currentSpellVisualKitID = nil;
C_CharacterCreation.StopAllSpellVisualKitsOnCharacter();
C_CharacterCreation.SetModelsHiddenState(false);
end
function CharacterCreateRaceAndClassMixin:StopActiveGroundEffect()
if self.currentGroundSpellVisualKitID then
C_CharacterCreation.StopSpellVisualKit(self.currentGroundSpellVisualKitID);
self.currentGroundSpellVisualKitID = nil;
end
end
local function GetDHMetaModelInfo(race, sex)
local metaFormScale = 0.7;
if race == "NightElf" then
if sex == Enum.Unitsex.Female then
return { displayID = 63247, spellVisualKitID = 131909, scale = metaFormScale, equipWeapons = true, weaponScale = 1.15 };
else
return { displayID = 65312, spellVisualKitID = 131909, scale = metaFormScale, equipWeapons = true, weaponScale = 1.15 };
end
elseif race == "BloodElf" then
if sex == Enum.Unitsex.Female then
return { displayID = 67673, spellVisualKitID = 131909, scale = metaFormScale, equipWeapons = true, weaponScale = 1.15 };
else
return { displayID = 67675, spellVisualKitID = 131909, scale = metaFormScale, equipWeapons = true, weaponScale = 1.15 };
end
end
end
local function GetDHNormalModelInfo()
return { showPlayerModel = true, playerModelSpellVisualKitID = 131914 , destroyModelFunc = GetDHMetaModelInfo };
end
local function GetDruidCatModelInfo(race, sex)
if race == "NightElf" then
if sex == Enum.Unitsex.Female then
return { displayID = 29405, spellVisualKitID = 131927 };
else
return { displayID = 892, spellVisualKitID = 131927 };
end
elseif race == "Tauren" then
if sex == Enum.Unitsex.Female then
return { displayID = 29410, spellVisualKitID = 134580 };
else
return { displayID = 29412, spellVisualKitID = 134580 };
end
elseif race == "Worgen" then
if sex == Enum.Unitsex.Female then
return { displayID = 33664, spellVisualKitID = 134578 };
else
return { displayID = 33661, spellVisualKitID = 134578 };
end
elseif race == "Troll" then
if sex == Enum.Unitsex.Female then
return { displayID = 33665, spellVisualKitID = 134582 };
else
return { displayID = 33666, spellVisualKitID = 134582 };
end
elseif race == "HighmountainTauren" then
if sex == Enum.Unitsex.Female then
return { displayID = 80597, spellVisualKitID = 134581 };
else
return { displayID = 80598, spellVisualKitID = 134581 };
end
elseif race == "ZandalariTroll" then
if sex == Enum.Unitsex.Female then
return { displayID = 85195, spellVisualKitID = 134583 };
else
return { displayID = 85194, spellVisualKitID = 134583 };
end
elseif race == "KulTiran" then
if sex == Enum.Unitsex.Female then
return { displayID = 86100, spellVisualKitID = 134579 };
else
return { displayID = 86524, spellVisualKitID = 134579 };
end
end
end
local function GetDruidNormalModelInfo()
return { showPlayerModel = true, playerModelSpellVisualKitID = 131928, destroyModelFunc = GetDruidCatModelInfo };
end
local spellVisualKitCompletionAction =
{
-- Druid
[129374] = { hidePlayerModel = true, createModelFunc = GetDruidCatModelInfo, onCompletionFunc = GetDruidNormalModelInfo },
-- Demon Hunter
[129051] = { hidePlayerModel = true, createModelFunc = GetDHMetaModelInfo, onCompletionFunc = GetDHNormalModelInfo },
}
local createdModelIndices = {};
function CharacterCreateRaceAndClassMixin:OnAnimKitFinished(animKitID, spellVisualKitID)
if self.currentSpellVisualKitID == spellVisualKitID then
local nextAction = spellVisualKitCompletionAction[spellVisualKitID];
if nextAction then
self.currentSpellVisualKitID = nil;
if nextAction.hidePlayerModel then
C_CharacterCreation.SetModelsHiddenState(true);
elseif nextAction.showPlayerModel then
C_CharacterCreation.SetModelsHiddenState(false);
end
local modelSvkID;
if nextAction.createModelFunc then
local createModelInfo = nextAction.createModelFunc(self.selectedRaceData.fileName, self.selectedSexID);
if createModelInfo then
local needsAnim = (createModelInfo.spellVisualKitID ~= nil);
local useCharFacing = true;
createdModelIndices[createModelInfo.displayID] = C_CharacterCreation.CreateAuxModel(createModelInfo.displayID, needsAnim, useCharFacing, createModelInfo.position, createModelInfo.scale);
if createModelInfo.equipWeapons then
C_CharacterCreation.EquipWeaponsOnAuxModel(createdModelIndices[createModelInfo.displayID], createModelInfo.weaponScale);
end
if createModelInfo.spellVisualKitID then
C_CharacterCreation.PlaySpellVisualKitOnAuxModel(createdModelIndices[createModelInfo.displayID], createModelInfo.spellVisualKitID);
self.currentSpellVisualKitID = createModelInfo.spellVisualKitID;
modelSvkID = createModelInfo.spellVisualKitID;
end
end
end
if modelSvkID and nextAction.onCompletionFunc then
spellVisualKitCompletionAction[modelSvkID] = nextAction.onCompletionFunc();
end
if nextAction.destroyModelFunc then
local destroyModelInfo = nextAction.destroyModelFunc(self.selectedRaceData.fileName, self.selectedSexID);
if destroyModelInfo and createdModelIndices[destroyModelInfo.displayID] then
C_CharacterCreation.DestroyAuxModel(createdModelIndices[destroyModelInfo.displayID]);
createdModelIndices[destroyModelInfo.displayID] = nil;
end
end
if nextAction.playerModelSpellVisualKitID then
local doNotStartTargetingSequence = false;
C_CharacterCreation.PlaySpellVisualKitOnCharacter(nextAction.playerModelSpellVisualKitID, doNotStartTargetingSequence);
self.currentSpellVisualKitID = nextAction.playerModelSpellVisualKitID;
end
else
local useBlending = true;
self:PlayClassIdleAnimation(useBlending);
end
end
end
function CharacterCreateRaceAndClassMixin:PlayClassIdleAnimation(useBlending)
......@@ -916,19 +1091,33 @@ function CharacterCreateRaceAndClassMixin:PlayClassIdleAnimation(useBlending)
C_CharacterCreation.PlayClassIdleAnimationOnCharacter(not useBlending);
end
function CharacterCreateRaceAndClassMixin:DestroyCreatedModels()
for _, modelIndex in pairs(createdModelIndices) do
C_CharacterCreation.DestroyAuxModel(modelIndex);
end
createdModelIndices = {};
end
function CharacterCreateRaceAndClassMixin:PlayCustomizationAnimation()
self:StopClassAnimations();
self:DestroyCreatedModels();
C_CharacterCreation.PlayCustomizationIdleAnimationOnCharacter();
end
function CharacterCreateRaceAndClassMixin:IsPlayingClassAnimtion()
return false;
return (self.currentSpellVisualKitID ~= nil);
end
function CharacterCreateRaceAndClassMixin:ClearCurrentSpellVisualKit()
self:ClearTimer();
self.currentSpellVisualKitID = nil;
self.currentGroundSpellVisualKitID = nil;
end
function CharacterCreateRaceAndClassMixin:ClearClassAnimationCountdown()
self.allowClassAnimationsAfterSeconds = nil;
self:ClearTimer();
end
function CharacterCreateRaceAndClassMixin:UpdateState(selectedFaction)
......@@ -961,7 +1150,7 @@ end
function CharacterCreateRaceAndClassMixin:SetCharacterRace(raceID, faction)
if self.selectedRaceID ~= raceID then
CharacterCreateFrame:ResetCharacterRotation();
CharacterCreateFrame:ResetCharacterRotation(nil, true);
self.allowClassAnimationsAfterSeconds = CLASS_ANIM_WAIT_TIME_SECONDS;
self:ClearCurrentSpellVisualKit();
C_CharacterCreation.SetSelectedRace(raceID);
......@@ -986,7 +1175,7 @@ end
function CharacterCreateRaceAndClassMixin:SetCharacterSex(sexID)
if self.selectedSexID ~= sexID then
CharacterCreateFrame:ResetCharacterRotation();
CharacterCreateFrame:ResetCharacterRotation(nil, true);
self.allowClassAnimationsAfterSeconds = CLASS_ANIM_WAIT_TIME_SECONDS;
self:ClearCurrentSpellVisualKit();
C_CharacterCreation.SetSelectedSex(sexID);
......
......@@ -30,7 +30,7 @@
<Anchor point="TOPLEFT" relativePoint="BOTTOMLEFT" x="23" y="5" />
</Anchors>
</Button>
<Button parentKey="FoundationsTabButton" name="$parentTab2" inherits="CovenantSanctumFrameTabButtonTemplate" id="2" text="Foundations">
<Button parentKey="FoundationsTabButton" name="$parentTab2" inherits="CovenantSanctumFrameTabButtonTemplate" id="2" text="Foundations" hidden="true">
<Anchors>
<Anchor point="LEFT" relativeTo="$parentTab1" relativePoint="RIGHT" x="-15" y="0" />
</Anchors>
......
......@@ -57,7 +57,7 @@ function CovenantSanctumUpgradesTabMixin:OnShow()
if self:GetSelectedTree() then
self:Refresh();
else
self:SetSelectedTree(self.ReservoirUpgrade.treeID);
self:SetSelectedTree(self.TravelUpgrade.treeID);
end
end
......@@ -94,7 +94,7 @@ function CovenantSanctumUpgradesTabMixin:GetSelectedTree()
end
function CovenantSanctumUpgradesTabMixin:DepositAnima()
-- TODO
C_CovenantSanctumUI.DepositAnima(); -- TO DO: hook this to a player condition to see if the person even can deposit.
end
function CovenantSanctumUpgradesTabMixin:SetUpCurrencies()
......@@ -397,7 +397,7 @@ function CovenantSanctumUpgradeReservoirMixin:UpdateAnima()
else
self.FillBackground:Show();
local totalHeight = self.Background:GetHeight();
if value == maxDisplayableValue then
if value >= maxDisplayableValue then
self.FillBackground:SetHeight(totalHeight);
self.FillBackground