Commit 266f308b authored by TOM_RUS's avatar TOM_RUS
Browse files

WOW-30669patch8.2.0_PTR

parent 2e226349
......@@ -137,6 +137,15 @@ local AzeriteEssence =
{ Name = "milestones", Type = "table", InnerType = "AzeriteMilestoneInfo", Nilable = false },
},
},
{
Name = "GetNumUnlockedEssences",
Type = "Function",
Returns =
{
{ Name = "numUnlockedEssences", Type = "number", Nilable = false },
},
},
{
Name = "GetPendingActivationEssence",
Type = "Function",
......
......@@ -92,6 +92,7 @@ local QuestLineInfo =
{ Name = "y", Type = "number", Nilable = false },
{ Name = "isHidden", Type = "bool", Nilable = false },
{ Name = "isLegendary", Type = "bool", Nilable = false },
{ Name = "isDaily", Type = "bool", Nilable = false },
{ Name = "floorLocation", Type = "QuestLineFloorLocation", Nilable = false },
},
},
......
......@@ -95,6 +95,7 @@ local WarCampaign =
{ Name = "visibilityConditionMatched", Type = "bool", Nilable = false },
{ Name = "playerConditionFailedReason", Type = "string", Nilable = true },
{ Name = "complete", Type = "bool", Nilable = false },
{ Name = "overrideStepActive", Type = "bool", Nilable = false },
},
},
},
......
......@@ -20,11 +20,20 @@ local LOCKED_LINE_COLOR = CreateColor(.486, .486, .486);
local HEART_MODEL_SCENE_INFO = StaticModelInfo.CreateModelSceneEntry(256, 1962885); -- Offhand_1H_HeartofAzeroth_D_01.m2
local LEARN_MODEL_SCENE_INFO = StaticModelInfo.CreateModelSceneEntry(259, 2101299); -- 8FX_Azerite_AbsorbCurrency_Small_ImpactBase.m2
local LEARN_MODEL_SCENE_ACTOR_SETTINGS = {
["effect"] = { startDelay = 0.79, duration = 0.769, speed = 1 },
};
local UNLOCK_SLOT_MODEL_SCENE_INFO = StaticModelInfo.CreateModelSceneEntry(269, 1983548); -- 8FX_Azerite_Generic_NovaHigh_Base.m2
local UNLOCK_STAMINA_MODEL_SCENE_INFO = StaticModelInfo.CreateModelSceneEntry(270, 1983548); -- 8FX_Azerite_Generic_NovaHigh_Base.m2
local UNLOCK_SECONDARY_EFFECT_ID = 2924332; -- CFX_Azerite_TimeLostTopaz_Major_Rank4_Cast.m2
local REVEAL_SLOT_MODEL_SCENE_INFO = StaticModelInfo.CreateModelSceneEntry(286, 1983548); -- 8FX_Azerite_Generic_NovaHigh_Base.m2
local REVEAL_SECONDARY_EFFECT_ID = 2924332; -- CFX_Azerite_TimeLostTopaz_Major_Rank4_Cast.m2
local UNLOCK_STAMINA_MODEL_SCENE_INFO = StaticModelInfo.CreateModelSceneEntry(270, 1983548, 2924332); -- 8FX_Azerite_Generic_NovaHigh_Base.m2, CFX_Azerite_TimeLostTopaz_Major_Rank4_Cast.m2
local UNLOCK_MODEL_SCENE_ACTOR_SETTINGS = {
["effect"] = { startDelay = 0, duration = 0.4, speed = 1 },
["effect2"] = { startDelay = 0.4, duration = 0.6, speed = 1 },
};
local REVEAL_SLOT_MODEL_SCENE_INFO = StaticModelInfo.CreateModelSceneEntry(286, 1983548, 2924332); -- 8FX_Azerite_Generic_NovaHigh_Base.m2, CFX_Azerite_TimeLostTopaz_Major_Rank4_Cast.m2
local REVEAL_MODEL_SCENE_ACTOR_SETTINGS = {
["effect"] = { startDelay = 0, duration = 0.4, speed = 1 },
["effect2"] = { startDelay = 0.4, duration = 1.2, speed = 1 },
};
local LEARN_SHAKE_DELAY = 0.869;
local LEARN_SHAKE = { { x = 0, y = -20}, { x = 0, y = 20}, { x = 0, y = -20}, { x = 0, y = 20}, { x = -9, y = -8}, { x = 8, y = 8}, { x = -3, y = -8}, { x = 9, y = 8}, { x = -3, y = -1}, { x = 2, y = 2}, { x = -2, y = -3}, { x = -1, y = -1}, { x = 4, y = 2}, { x = 3, y = 4}, { x = -3, y = 4}, { x = 4, y = -4}, { x = -4, y = 2}, { x = -2, y = 1}, { x = -3, y = -1}, { x = 2, y = 2}, { x = -2, y = -3}, { x = -1, y = -1}, { x = 4, y = 2}, { x = 3, y = 4}, { x = -3, y = 4}, { x = 4, y = -4}, { x = -4, y = 2}, { x = -2, y = 1}, { x = -3, y = -1}, { x = 2, y = 2}, { x = -2, y = -3}, { x = -1, y = -1}, { x = 4, y = 2}, { x = 3, y = 4}, { x = -3, y = 4}, { x = 4, y = -4}, { x = -4, y = 2}, { x = -2, y = 1}, { x = -3, y = -1}, { x = 2, y = 2}, { x = -2, y = -3}, { x = -1, y = -1}, { x = 4, y = 2}, { x = 3, y = 4}, { x = -3, y = 4}, { x = 4, y = -4}, { x = -4, y = 2}, { x = -2, y = 1}, { x = -3, y = -1}, { x = 2, y = 2}, { x = -2, y = -3}, { x = -1, y = -1}, { x = 4, y = 2}, { x = 3, y = 4}, { x = -3, y = 4}, { x = 4, y = -4}, { x = -4, y = 2}, { x = -2, y = 1}, { x = -3, y = -1}, { x = 2, y = 2}, { x = -2, y = -3}, { x = -1, y = -1}, { x = 4, y = 2}, { x = 3, y = 4}, { x = -3, y = 4}, { x = 4, y = -4}, { x = -4, y = 2}, { x = -2, y = 1}, };
......@@ -184,8 +193,6 @@ function AzeriteEssenceUIMixin:OnShow()
end);
end
self.shouldPlayReveal = C_AzeriteEssence:HasNeverActivatedAnyEssences();
FrameUtil.RegisterFrameForEvents(self, AZERITE_ESSENCE_FRAME_EVENTS);
self:RefreshPowerLevel();
......@@ -210,6 +217,7 @@ function AzeriteEssenceUIMixin:OnHide()
if self.numRevealsPlaying then
self:CancelReveal();
end
self.shouldPlayReveal = nil;
FrameUtil.UnregisterFrameForEvents(self, AZERITE_ESSENCE_FRAME_EVENTS);
......@@ -234,18 +242,28 @@ end
function AzeriteEssenceUIMixin:TryShow()
if C_AzeriteEssence.CanOpenUI() then
ShowUIPanel(AzeriteEssenceUI);
if not C_AzeriteEssence.IsAtForge() then
if C_AzeriteEssence.GetNumUnlockedEssences() > 1 then
SetCVarBitfield("closedInfoFrames", LE_FRAME_TUTORIAL_CHANGE_AZERITE_ESSENCES, true);
end
end
return true;
end
return false;
end
function AzeriteEssenceUIMixin:ShouldOpenBagsOnShow()
return C_AzeriteEssence.GetNumUnlockedEssences() > 0;
end
function AzeriteEssenceUIMixin:OnEssenceActivated(essenceID, slotFrame)
self:SetNewlyActivatedEssence(essenceID, slotFrame.milestoneID);
self.ActivationGlow.Anim:Stop();
self.ActivationGlow.Anim:Play();
if self.shouldPlayReveal then
if self:ShouldPlayReveal() then
self.revealInProgress = true;
PlaySound(SOUNDKIT.UI_82_HEARTOFAZEROTH_SLOTFIRSTESSENCE);
slotFrame:PlayRevealEffect();
ShakeFrame(self:GetParent(), REVEAL_SHAKE, REVEAL_SHAKE_DURATION, REVEAL_SHAKE_FREQUENCY);
......@@ -255,14 +273,14 @@ function AzeriteEssenceUIMixin:OnEssenceActivated(essenceID, slotFrame)
end
);
else
PlaySound(SOUNDKIT.UI_82_HEARTOFAZEROTH_SLOTESSENCE);
end
-- temp sounds
if slotFrame.slot == Enum.AzeriteEssence.MainSlot then
PlaySound(13827);
else
PlaySound(13829);
local soundID = SOUNDKIT.UI_82_HEARTOFAZEROTH_SLOTESSENCE;
if slotFrame:IsMainSlot() then
local essenceInfo = C_AzeriteEssence.GetEssenceInfo(essenceID);
if essenceInfo.rank == MAX_ESSENCE_RANK then
soundID = SOUNDKIT.UI_82_HEARTOFAZEROTH_SLOTMAJORESSENCE_RANK4;
end
end
PlaySound(soundID);
end
self:RefreshSlots();
......@@ -310,7 +328,7 @@ end
function AzeriteEssenceUIMixin:RefreshMilestones()
for i, milestoneFrame in ipairs(self.Milestones) do
-- Main slot is always present
if self.shouldPlayReveal and (not milestoneFrame.slot or milestoneFrame.slot ~= Enum.AzeriteEssence.MainSlot) then
if self:ShouldPlayReveal() and (not milestoneFrame.slot or not milestoneFrame:IsMainSlot()) then
milestoneFrame:Hide();
else
milestoneFrame:Show();
......@@ -319,7 +337,7 @@ function AzeriteEssenceUIMixin:RefreshMilestones()
end
for i, lineContainer in ipairs(self.Lines) do
if self.shouldPlayReveal then
if self:ShouldPlayReveal() then
lineContainer:Hide();
else
lineContainer:Show();
......@@ -404,6 +422,17 @@ function AzeriteEssenceUIMixin:GetEffectiveEssence(milestoneID)
end
end
function AzeriteEssenceUIMixin:ShouldPlayReveal()
if self.shouldPlayReveal == nil then
self.shouldPlayReveal = C_AzeriteEssence:HasNeverActivatedAnyEssences();
end
return self.shouldPlayReveal;
end
function AzeriteEssenceUIMixin:IsRevealInProgress()
return not not self.revealInProgress;
end
function AzeriteEssenceUIMixin:PlayReveal()
if not self.revealSwirlPool then
self.numRevealsPlaying = 0;
......@@ -459,7 +488,7 @@ function AzeriteEssenceUIMixin:CancelReveal()
self.revealSwirlPool:ReleaseAll();
self.numRevealsPlaying = nil;
self.shouldPlayReveal = false;
self.revealInProgress = false;
end
function AzeriteEssenceUIMixin:OnSwirlAnimationFinished()
......@@ -468,6 +497,7 @@ function AzeriteEssenceUIMixin:OnSwirlAnimationFinished()
self.numRevealsPlaying = nil;
self.revealSwirlPool:ReleaseAll();
self.shouldPlayReveal = false;
self.revealInProgress = false;
self:RefreshMilestones();
end
end
......@@ -522,6 +552,8 @@ function AzeriteEssenceListMixin:OnLoad()
self:RegisterEvent("VARIABLES_LOADED");
self.collapsed = GetCVarBool("otherRolesAzeriteEssencesHidden");
self:CheckAndSetUpLearnEffect();
end
function AzeriteEssenceListMixin:OnShow()
......@@ -593,6 +625,15 @@ function AzeriteEssenceListMixin:CacheAndSortEssences()
end
end
function AzeriteEssenceListMixin:CheckAndSetUpLearnEffect()
local scene = self.LearnEssenceModelScene;
if not scene.effect then
local forceUpdate = true;
local stopAnim = true;
scene.effect = StaticModelInfo.SetupModelScene(scene, LEARN_MODEL_SCENE_INFO, forceUpdate, stopAnim);
end
end
function AzeriteEssenceListMixin:GetNumViewableEssences()
if not self:ShouldShowInvalidEssences() and self.headerIndex then
return self.headerIndex;
......@@ -669,26 +710,10 @@ function AzeriteEssenceListMixin:OnEssenceChanged(essenceID)
self.learnEssenceButton.Glow2.Anim:Play();
self.learnEssenceButton.Glow3.Anim:Play();
-- scene
C_Timer.After(0.79,
function()
local scene = self.LearnEssenceModelScene;
scene:SetPoint("CENTER", self.learnEssenceButton);
if not scene.effect then
local forceUpdate = true;
scene.effect = StaticModelInfo.SetupModelScene(scene, LEARN_MODEL_SCENE_INFO, forceUpdate);
end
if scene.effect then
scene:Show();
scene.effect:SetAnimation(0, 0, 1, 0);
C_Timer.After(0.769,
function()
scene.effect:SetAnimation(0, 0, 0, 0);
end
);
end
end
);
-- timer so the effect only plays once
local scene = self.LearnEssenceModelScene;
scene:SetPoint("CENTER", self.learnEssenceButton);
self:CheckAndSetUpLearnEffect();
scene:ShowAndAnimateActors(LEARN_MODEL_SCENE_ACTOR_SETTINGS);
C_Timer.After(2.969, function() self:CleanUpLearnEssence(); end);
end
end
......@@ -734,9 +759,12 @@ function AzeriteEssenceListMixin:Refresh()
local essences = self:GetCachedEssences();
local numEssences = self:GetNumViewableEssences();
local slotEssences = self:GetParent():GetSlotEssences();
local parent = self:GetParent();
local slotEssences = parent:GetSlotEssences();
local pendingEssenceID = C_AzeriteEssence.GetPendingActivationEssence();
local hasUnlockedEssence = false;
self.HeaderButton:Hide();
local offset = HybridScrollFrame_GetOffset(self);
......@@ -781,6 +809,7 @@ function AzeriteEssenceListMixin:Refresh()
activatedMarker = button.ActivatedMarkerPassive;
end
end
hasUnlockedEssence = true;
else
button.Name:SetTextColor(LOCKED_FONT_COLOR:GetRGB());
button.Icon:SetDesaturated(true);
......@@ -804,6 +833,15 @@ function AzeriteEssenceListMixin:Refresh()
HybridScrollFrame_Update(self, totalHeight, self:GetHeight());
self:UpdateMouseOverTooltip();
if hasUnlockedEssence and parent:ShouldPlayReveal() and not parent:IsRevealInProgress() then
ScrollBar_Disable(self.scrollBar);
self.Tutorial:Show();
self.Tutorial:SetPoint("BOTTOM", self.buttons[1].Icon, "TOP", 0, 12);
else
ScrollBar_Enable(self.scrollBar);
self.Tutorial:Hide();
end
end
function AzeriteEssenceListMixin:UpdateMouseOverTooltip()
......@@ -849,10 +887,8 @@ end
function AzeriteMilestoneBaseMixin:OnEvent(event, ...)
if event == "UI_MODEL_SCENE_INFO_UPDATED" then
self.UnlockModelScene.unlockEffect = nil;
if self.RevealModelScene then
self.RevealModelScene.revealEffect = nil;
end
self.EffectsModelScene.primaryEffect = nil;
self.EffectsModelScene.secondaryEffect = nil;
end
end
......@@ -862,7 +898,6 @@ end
function AzeriteMilestoneBaseMixin:OnHide()
self:UnregisterEvent("UI_MODEL_SCENE_INFO_UPDATED");
self.UnlockModelScene.unlockEffect = nil;
end
function AzeriteMilestoneBaseMixin:OnMouseUp()
......@@ -883,39 +918,25 @@ function AzeriteMilestoneBaseMixin:OnLeave()
GameTooltip:Hide();
end
function AzeriteMilestoneBaseMixin:OnUnlocked()
local scene = self.UnlockModelScene;
if not scene.unlockEffect then
function AzeriteMilestoneBaseMixin:CheckAndSetUpUnlockEffect()
local scene = self.EffectsModelScene;
if not scene.primaryEffect then
local forceUpdate = true;
local stopAnim = true;
local sceneInfo = self.slot and UNLOCK_SLOT_MODEL_SCENE_INFO or UNLOCK_STAMINA_MODEL_SCENE_INFO;
scene.unlockEffect = StaticModelInfo.SetupModelScene(scene, sceneInfo, forceUpdate);
scene.secondaryEffect = scene:GetActorByTag("effect2");
if scene.secondaryEffect then
scene.secondaryEffect:SetModelByFileID(UNLOCK_SECONDARY_EFFECT_ID);
end
scene.primaryEffect, scene.secondaryEffect = StaticModelInfo.SetupModelScene(scene, sceneInfo, forceUpdate, true);
end
if scene.unlockEffect then
scene:Show();
scene.unlockEffect:SetAnimation(0, 0, 1, 0);
end
function AzeriteMilestoneBaseMixin:OnUnlocked()
self:CheckAndSetUpUnlockEffect();
local scene = self.EffectsModelScene;
if scene.primaryEffect then
scene:ShowAndAnimateActors(UNLOCK_MODEL_SCENE_ACTOR_SETTINGS, function() scene:Hide(); end);
C_Timer.After(.4,
function()
scene.unlockEffect:SetAnimation(0, 0, 0, 0);
C_Timer.After(2,
function()
scene:Hide();
end
);
C_Timer.After(.4,
function()
self.SwirlContainer:Show();
self.SwirlContainer.SelectedAnim:Play();
end
);
if scene.secondaryEffect then
scene.secondaryEffect:SetAnimation(0, 0, 1, 0);
C_Timer.After(0.5, function() scene.secondaryEffect:SetAnimation(0, 0, 0, 0); end);
end
self.SwirlContainer:Show();
self.SwirlContainer.SelectedAnim:Play();
end
);
if GameTooltip:GetOwner() == self then
......@@ -930,34 +951,22 @@ function AzeriteMilestoneBaseMixin:OnUnlocked()
end
end
function AzeriteMilestoneBaseMixin:PlayRevealEffect()
local scene = self.RevealModelScene;
if not scene.revealEffect then
function AzeriteMilestoneBaseMixin:CheckAndSetUpRevealEffect()
local scene = self.EffectsModelScene;
if not scene.primaryEffect then
scene:SetSize(2000, 2000);
local forceUpdate = true;
scene.revealEffect = StaticModelInfo.SetupModelScene(scene, REVEAL_SLOT_MODEL_SCENE_INFO, forceUpdate);
scene.secondaryEffect = scene:GetActorByTag("effect2");
if scene.secondaryEffect then
scene.secondaryEffect:SetModelByFileID(REVEAL_SECONDARY_EFFECT_ID);
end
local stopAnim = true;
scene.primaryEffect, scene.secondaryEffect = StaticModelInfo.SetupModelScene(scene, REVEAL_SLOT_MODEL_SCENE_INFO, forceUpdate, stopAnim);
end
end
function AzeriteMilestoneBaseMixin:PlayRevealEffect()
self:CheckAndSetUpRevealEffect();
if scene.revealEffect then
scene:Show();
scene.revealEffect:SetAnimation(0, 0, 1, 0);
C_Timer.After(.4,
function()
scene.revealEffect:SetAnimation(0, 0, 0, 0);
C_Timer.After(2,
function()
scene:Hide();
end
);
if scene.secondaryEffect then
scene.secondaryEffect:SetAnimation(0, 0, 1, 0);
C_Timer.After(0.5, function() scene.secondaryEffect:SetAnimation(0, 0, 0, 0); end);
end
end
);
local scene = self.EffectsModelScene;
if scene.primaryEffect then
scene:ShowAndAnimateActors(REVEAL_MODEL_SCENE_ACTOR_SETTINGS, function() scene:Hide(); end);
end
end
......@@ -1008,6 +1017,10 @@ function AzeriteMilestoneBaseMixin:AddStateToTooltip(requiredLevelString, return
end
end
function AzeriteMilestoneBaseMixin:IsMainSlot()
return self.slot == Enum.AzeriteEssence.MainSlot;
end
AzeriteMilestoneSlotMixin = CreateFromMixins(AzeriteMilestoneBaseMixin);
function AzeriteMilestoneSlotMixin:OnDragStart()
......@@ -1030,6 +1043,9 @@ function AzeriteMilestoneSlotMixin:Refresh()
self:UpdateMilestoneInfo();
if self.unlocked then
if self:IsMainSlot() and self:GetParent():ShouldPlayReveal() then
self:CheckAndSetUpRevealEffect();
end
self:ShowStateFrame(self.UnlockedState);
local essenceID = self:GetParent():GetEffectiveEssence(self.milestoneID);
local icon;
......@@ -1052,6 +1068,9 @@ function AzeriteMilestoneSlotMixin:Refresh()
stateFrame.EmptyGlow.Anim:Play();
end
else
if not self:IsMainSlot() then
self:CheckAndSetUpUnlockEffect();
end
if self:ShouldShowUnlockState() then
self:ShowStateFrame(self.AvailableState);
if C_AzeriteEssence.IsAtForge() then
......@@ -1093,8 +1112,7 @@ function AzeriteMilestoneSlotMixin:OnMouseUp(button)
end
function AzeriteMilestoneSlotMixin:OnEnter()
local isMainSlot = self.slot == Enum.AzeriteEssence.MainSlot;
if isMainSlot then
if self:IsMainSlot() then
GameTooltip:SetOwner(self, "ANCHOR_RIGHT", -20, 0);
else
GameTooltip:SetOwner(self, "ANCHOR_RIGHT", -10, -5);
......@@ -1119,11 +1137,10 @@ function AzeriteMilestoneSlotMixin:OnEnter()
else
local wrapText = true;
if not self.unlocked then
assert(not isMainSlot);
GameTooltip_SetTitle(GameTooltip, AZERITE_ESSENCE_PASSIVE_SLOT);
self:AddStateToTooltip(AZERITE_ESSENCE_LOCKED_SLOT_LEVEL, AZERITE_ESSENCE_UNLOCK_SLOT);
else
if isMainSlot then
if self:IsMainSlot() then
GameTooltip_SetTitle(GameTooltip, AZERITE_ESSENCE_EMPTY_MAIN_SLOT);
GameTooltip_AddColoredLine(GameTooltip, AZERITE_ESSENCE_EMPTY_MAIN_SLOT_DESC, NORMAL_FONT_COLOR, wrapText);
else
......@@ -1144,6 +1161,7 @@ function AzeriteMilestoneStaminaMixin:Refresh()
self.Icon:SetAtlas("heartofazeroth-node-on");
else
self.Icon:SetAtlas("heartofazeroth-node-off");
self:CheckAndSetUpUnlockEffect();
end
if not self.unlocked and self:ShouldShowUnlockState() then
if C_AzeriteEssence.IsAtForge() then
......
......@@ -8,7 +8,7 @@
<KeyValue key="swirlScale" type="number" value="1"/>
</KeyValues>
<Frames>
<ModelScene parentKey="UnlockModelScene" drawLayer="OVERLAY" inherits="NonInteractableModelSceneMixinTemplate" hidden="true">
<ModelScene parentKey="EffectsModelScene" drawLayer="OVERLAY" inherits="NonInteractableModelSceneMixinTemplate" hidden="true">
<Size x="700" y="700" />
<Anchors>
<Anchor point="CENTER" />
......@@ -136,12 +136,6 @@
<KeyValue key="isDraggable" type="boolean" value="true"/>
</KeyValues>
<Frames>
<ModelScene parentKey="RevealModelScene" drawLayer="OVERLAY" inherits="NonInteractableModelSceneMixinTemplate" hidden="true">
<Size x="2000" y="2000" />
<Anchors>
<Anchor point="CENTER" />
</Anchors>
</ModelScene>
<Frame parentKey="UnlockedState" parentArray="StateFrames" setAllPoints="true">
<Layers>
<Layer level="BACKGROUND" textureSubLevel="-1">
......@@ -501,6 +495,31 @@
<Anchor point="BOTTOMRIGHT" relativeKey="$parent.RightInset" x="-26" y="2"/>
</Anchors>
<Frames>
<Frame parentKey="Tutorial" inherits="GlowBoxTemplate" enableMouse="true" hidden="true" frameStrata="DIALOG">
<Size x="210" y="100"/>
<Layers>
<Layer level="ARTWORK">
<Texture parentKey="Arrow" inherits="HelpPlateArrowDOWN">
<Anchors>
<Anchor point="BOTTOM" x="0" y="-19"/>
</Anchors>
</Texture>
</Layer>
<Layer level="OVERLAY">
<FontString parentKey="Text" inherits="GameFontHighlightLeft" justifyV="TOP" text="AZERITE_ESSENCE_TUTORIAL_FIRST_ESSENCE">
<Size x="190" y="0"/>
<Anchors>
<Anchor point="TOPLEFT" x="10" y="-18"/>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnLoad>
self:SetHeight(self.Text:GetHeight() + 34);
</OnLoad>
</Scripts>
</Frame>
<ModelScene parentKey="LearnEssenceModelScene" inherits="NonInteractableModelSceneMixinTemplate" frameStrata="HIGH" hidden="true">
<Size x="650" y="650"/>
</ModelScene>
......@@ -801,8 +820,8 @@
<Alpha childKey="BlackCover2" duration="1" order="1" fromAlpha="1" toAlpha="0" smoothing="IN"/>
<Alpha childKey="Titans" duration="1" order="1" fromAlpha="1" toAlpha="0" smoothing="IN"/>
<Alpha childKey="Titans2" duration="1" order="1" fromAlpha="1" toAlpha="0" smoothing="IN"/>
<Scale childKey="Titans" startDelay="0" duration="2" order="1" fromScaleX="0.875" fromScaleY="0.875" toScaleX="0.933" toScaleY="0.933"/>
<Scale childKey="Titans2" startDelay="0" duration="2" order="1" fromScaleX="0.875" fromScaleY="0.875" toScaleX="0.933" toScaleY="0.933"/>
<Scale childKey="Titans" startDelay="0" duration="2" order="1" fromScaleX="0.9" fromScaleY="0.9" toScaleX="1" toScaleY="1"/>
<Scale childKey="Titans2" startDelay="0" duration="2" order="1" fromScaleX="0.9" fromScaleY="0.9" toScaleX="1" toScaleY="1"/>
<Alpha childKey="RuneStatic" duration="0" order="1" fromAlpha="0" toAlpha="0.5"/>
<Scale childKey="RingLargeFlip" smoothing="IN" duration="0.802" order="1" fromScaleX="6.68" fromScaleY="6.68" toScaleX="0.01" toScaleY="1.104"/>
<Scale childKey="RingLargeFlip2" smoothing="NONE" duration="0.802" order="1" fromScaleX="6.68" fromScaleY="6.68" toScaleX="0.01" toScaleY="1.104"/>
......
......@@ -82,10 +82,8 @@ end
function AzeriteEmpoweredItemPowerMixin:SetupModelScene(forceUpdate)
self.ClickEffect:Hide();
self.clickEffectActor = StaticModelInfo.SetupModelScene(self.ClickEffect, CLICK_MODEL_SCENE_INFO, forceUpdate);
if self.clickEffectActor then
self.clickEffectActor:SetAnimation(0, 0, 0, 0);
end
local stopAnim = true;
self.clickEffectActor = StaticModelInfo.SetupModelScene(self.ClickEffect, CLICK_MODEL_SCENE_INFO, forceUpdate, stopAnim);
self.CanSelectEffect:Hide();
StaticModelInfo.SetupModelScene(self.CanSelectEffect, SELECTION_READY_MODEL_SCENE_INFO, forceUpdate);
......
......@@ -73,11 +73,8 @@ function AzeriteEmpoweredItemSlotMixin:SetupModelScene(forceUpdate)
local modelSceneInfo = self.isFinalTier and FINAL_POWER_LOCKED_MODEL_SCENE_INFO or POWER_LOCKED_MODEL_SCENE_INFO;
if forceUpdate or self.modelSceneInfo ~= modelSceneInfo then
self.modelSceneInfo = modelSceneInfo;
self.lockedInEffectActor = StaticModelInfo.SetupModelScene(self.LockedInEffect, modelSceneInfo, forceUpdate);
if self.lockedInEffectActor then
self.lockedInEffectActor:SetAnimation(0, 0, 0, 0);
end
local stopAnim = true;
self.lockedInEffectActor = StaticModelInfo.SetupModelScene(self.LockedInEffect, modelSceneInfo, forceUpdate, stopAnim);
self.LockedInEffect:Hide();
end
end
......
......@@ -16,7 +16,7 @@ StaticPopupDialogs["DIALOG_REPLACE_MOUNT_EQUIPMENT"] = {
OnAccept = function()
MountJournal_OnDialogApplyEquipmentChoice(MountJournal, true);
PlaySound(SOUNDKIT.UI_MOUNT_SLOTEQUIPMENT);
PlaySound(SOUNDKIT.UI_MOUNT_SLOTEQUIPMENT_APPROVAL);
end,
OnCancel = function()
MountJournal_OnDialogApplyEquipmentChoice(MountJournal, false);
......@@ -74,15 +74,27 @@ function MountEquipmentButtonMixin:OnClick()
end
end
function MountEquipmentButtonMixin:ApplyEquipmentAtCursor()
if self:IsEnabled() then
local itemLocation = C_Cursor.GetCursorItem();
if MountJournal_ApplyEquipment(MountJournal, itemLocation) then
ClearCursor();
PlaySound(SOUNDKIT.UI_MOUNT_SLOTEQUIPMENT);