local _detalhes = _G.Details --code from blizzard AlertFrames function _detalhes:PlayGlow (frame) frame:Show() frame.glow:Show() frame.glow.animIn:Play() frame.shine:Show() frame.shine.animIn:Play() --PlaySound ("LFG_Rewards", "master") end --WatchFrame copy, got removed on WoD local function DetailsTutorialAlertFrame_OnFinishSlideIn (frame) frame.ScrollChild.Shine:Show(); frame.ScrollChild.IconShine:Show(); frame.ScrollChild.Shine.Flash:Play(); frame.ScrollChild.IconShine.Flash:Play(); end local function DetailsTutorialAlertFrame_OnUpdate (frame, timestep) local animData = frame.animData; local height = animData.height; local scrollStart = animData.scrollStart; local scrollEnd = animData.scrollEnd; local endTime = animData.slideInTime + (animData.endDelay or 0); if (frame.startDelay) then frame.startDelay = frame.startDelay - timestep; if (frame.startDelay <= 0) then frame.startDelay = nil; else return; end end if (frame.isFirst) then height = height + 10; scrollEnd = scrollEnd - 10; end frame.totalTime = frame.totalTime+timestep; if (frame.totalTime > endTime) then frame.totalTime = endTime; end local scrollPos = scrollEnd; if (animData.slideInTime and animData.slideInTime > 0) then height = height*(frame.totalTime/animData.slideInTime); scrollPos = scrollStart + (scrollEnd-scrollStart)*(frame.totalTime/animData.slideInTime); end if ( animData.reverse ) then height = max(animData.height - height, 1); end frame:SetHeight(height); frame:UpdateScrollChildRect(); frame:SetVerticalScroll(floor(scrollPos+0.5)); if (frame.totalTime >= endTime) then frame:SetScript("OnUpdate", nil); if ( animData.onFinishFunc ) then animData.onFinishFunc(frame); end end end function DetailsTutorialAlertFrame_SlideInFrame (frame, animType) frame.totalTime = 0; frame.animData = { height = 72, scrollStart = 65, scrollEnd = -9, slideInTime = 0.4, onFinishFunc = DetailsTutorialAlertFrame_OnFinishSlideIn }; frame.slideInTime = frame.animData.slideInTime; frame:SetHeight(1); if ( frame.animData.reverse ) then frame:SetHeight(frame.animData["height"]); else frame:SetHeight(1); end frame.startDelay = frame.animData.startDelay; frame:SetScript("OnUpdate", DetailsTutorialAlertFrame_OnUpdate); end function _detalhes.PlayBestDamageOnGuild (damage) damage = damage or 100000000 --create the main frame local DetailsNewDamageRecord = CreateFrame("frame", "DetailsNewDamageRecordAnimationFrame", UIParent) DetailsNewDamageRecord:SetPoint("CENTER", UIParent, "CENTER", 0, -200) DetailsNewDamageRecord:SetSize(300, 300) --single animation group local MainAnimationGroup = DetailsNewDamageRecord:CreateAnimationGroup ("DetailsNewDamageRecordAnimationGroup") MainAnimationGroup:SetLooping ("NONE") --widgets: ---------------------------------------------- local BaseTexture = DetailsNewDamageRecord:CreateTexture("BaseTextureTexture", "ARTWORK") BaseTexture:SetTexture([[Interface\ACHIEVEMENTFRAME\UI-Achievement-Alert-Background-Mini]]) BaseTexture:SetDrawLayer("ARTWORK", -5) BaseTexture:SetPoint("center", DetailsNewDamageRecord, "center", 0, 0) BaseTexture:SetSize(256, 64) BaseTexture:SetVertexColor(0.99999779462814, 0.99999779462814, 0.99999779462814, 0.99999779462814) --animations for BaseTexture BaseTexture.alpha = MainAnimationGroup:CreateAnimation("ALPHA") BaseTexture.alpha:SetTarget (BaseTexture) BaseTexture.alpha:SetOrder (1) BaseTexture.alpha:SetDuration(0.14869952201843) BaseTexture.alpha:SetStartDelay (0) BaseTexture.alpha:SetEndDelay (0) BaseTexture.alpha:SetFromAlpha (0) BaseTexture.alpha:SetToAlpha (1) BaseTexture.alpha = MainAnimationGroup:CreateAnimation("ALPHA") BaseTexture.alpha:SetTarget (BaseTexture) BaseTexture.alpha:SetOrder (2) BaseTexture.alpha:SetDuration(1) BaseTexture.alpha:SetStartDelay (5) BaseTexture.alpha:SetEndDelay (0) BaseTexture.alpha:SetFromAlpha (1) BaseTexture.alpha:SetToAlpha (0) ---------------------------------------------- local BigFlash = DetailsNewDamageRecord:CreateTexture("BigFlashTexture", "OVERLAY") BigFlash:SetTexture([[Interface\ACHIEVEMENTFRAME\UI-Achievement-Alert-Glow]]) BigFlash:SetDrawLayer("OVERLAY", 0) BigFlash:SetPoint("center", DetailsNewDamageRecord, "center", -2, 2) BigFlash:SetSize(314, 100) BigFlash:SetDesaturated(false) BigFlash:SetTexCoord(0.0010000000149012, 0.77400001525879, 0.0010000000149012, 0.65800003051758) if (0 ~= 0) then BigFlash:SetRotation (0) end BigFlash:SetVertexColor(0.96470373868942, 0.98823314905167, 0.99999779462814, 0.99999779462814) BigFlash:SetAlpha(1) BigFlash:SetBlendMode("ADD") --animations for BigFlash BigFlash.alpha = MainAnimationGroup:CreateAnimation("ALPHA") BigFlash.alpha:SetTarget (BigFlash) BigFlash.alpha:SetOrder (1) BigFlash.alpha:SetDuration(0.11600000411272) BigFlash.alpha:SetStartDelay (0) BigFlash.alpha:SetEndDelay (0) BigFlash.alpha:SetFromAlpha (0) BigFlash.alpha:SetToAlpha (1) BigFlash.alpha = MainAnimationGroup:CreateAnimation("ALPHA") BigFlash.alpha:SetTarget (BigFlash) BigFlash.alpha:SetOrder (2) BigFlash.alpha:SetDuration(0.31600001454353) BigFlash.alpha:SetStartDelay (0) BigFlash.alpha:SetEndDelay (0) BigFlash.alpha:SetFromAlpha (1) BigFlash.alpha:SetToAlpha (0) ---------------------------------------------- local FlashSwipe = DetailsNewDamageRecord:CreateTexture("FlashSwipeTexture", "OVERLAY") FlashSwipe:SetTexture([[Interface\ACHIEVEMENTFRAME\UI-Achievement-Alert-Glow]]) FlashSwipe:SetDrawLayer("OVERLAY", 7) FlashSwipe:SetPoint("center", DetailsNewDamageRecord, "center", -99, 0) FlashSwipe:SetSize(100, 57) FlashSwipe:SetDesaturated(false) FlashSwipe:SetTexCoord(0.78199996948242, 0.91900001525879, 0.0010000000149012, 0.2760000038147) if (0 ~= 0) then FlashSwipe:SetRotation (0) end FlashSwipe:SetVertexColor(0.86666476726532, 0.54117530584335, 0, 0.99999779462814) FlashSwipe:SetAlpha(1) FlashSwipe:SetBlendMode("ADD") --animations for FlashSwipe FlashSwipe.alpha = MainAnimationGroup:CreateAnimation("ALPHA") FlashSwipe.alpha:SetTarget (FlashSwipe) FlashSwipe.alpha:SetOrder (1) FlashSwipe.alpha:SetDuration(0.31600001454353) FlashSwipe.alpha:SetStartDelay (0.20000000298023) FlashSwipe.alpha:SetEndDelay (0) FlashSwipe.alpha:SetFromAlpha (0) FlashSwipe.alpha:SetToAlpha (0.501051902771) FlashSwipe.translation = MainAnimationGroup:CreateAnimation("TRANSLATION") FlashSwipe.translation:SetTarget (FlashSwipe) FlashSwipe.translation:SetOrder (1) FlashSwipe.translation:SetDuration(0.81599998474121) FlashSwipe.translation:SetStartDelay (0.20000000298023) FlashSwipe.translation:SetEndDelay (0) FlashSwipe.translation:SetOffset (200, 0) FlashSwipe.alpha = MainAnimationGroup:CreateAnimation("ALPHA") FlashSwipe.alpha:SetTarget (FlashSwipe) FlashSwipe.alpha:SetOrder (1) FlashSwipe.alpha:SetDuration(0.31600001454353) FlashSwipe.alpha:SetStartDelay (0.69999998807907) FlashSwipe.alpha:SetEndDelay (0) FlashSwipe.alpha:SetFromAlpha (0.501051902771) FlashSwipe.alpha:SetToAlpha (0) ---------------------------------------------- local Portrait = DetailsNewDamageRecord:CreateTexture("PortraitTexture", "OVERLAY") Portrait:SetTexture([[Interface\ARCHEOLOGY\ARCH-FLAREEFFECT]]) Portrait:SetDrawLayer("OVERLAY", -5) Portrait:SetPoint("center", DetailsNewDamageRecord, "center", 3, 0) Portrait:SetSize(246, 44) Portrait:SetDesaturated(false) Portrait:SetTexCoord(0.051753740310669, 0.81701484680176, 0.086334381103516, 0.25102617263794) if (0 ~= 0) then Portrait:SetRotation (0) end Portrait:SetVertexColor(0.99999779462814, 0.99999779462814, 0.99999779462814, 0.99999779462814) Portrait:SetAlpha(1) Portrait:SetBlendMode("BLEND") --animations for Portrait Portrait.alpha = MainAnimationGroup:CreateAnimation("ALPHA") Portrait.alpha:SetTarget (Portrait) Portrait.alpha:SetOrder (1) Portrait.alpha:SetDuration(0.41600000858307) Portrait.alpha:SetStartDelay (0) Portrait.alpha:SetEndDelay (0) Portrait.alpha:SetFromAlpha (0) Portrait.alpha:SetToAlpha (1) Portrait.scale = MainAnimationGroup:CreateAnimation("SCALE") Portrait.scale:SetTarget (Portrait) Portrait.scale:SetOrder (1) Portrait.scale:SetDuration(0.21600000560284) Portrait.scale:SetStartDelay (0) Portrait.scale:SetEndDelay (0) if (DetailsFramework.IsDragonflight() or DetailsFramework.IsWotLKWowWithRetailAPI()) then Portrait.scale:SetScaleFrom (0, 0) Portrait.scale:SetScaleTo (1, 1) else Portrait.scale:SetFromScale (0, 0) Portrait.scale:SetToScale (1, 1) end Portrait.scale:SetOrigin ("center", 0, 0) Portrait.alpha = MainAnimationGroup:CreateAnimation("ALPHA") Portrait.alpha:SetTarget (Portrait) Portrait.alpha:SetOrder (2) Portrait.alpha:SetDuration(1) Portrait.alpha:SetStartDelay (4.7000002861023) Portrait.alpha:SetEndDelay (0) Portrait.alpha:SetFromAlpha (1) Portrait.alpha:SetToAlpha (0) ---------------------------------------------- local DamageIcon = DetailsNewDamageRecord:CreateTexture("DamageIconTexture", "OVERLAY") DamageIcon:SetTexture([[Interface\LFGFRAME\UI-LFG-ICON-ROLES]]) DamageIcon:SetDrawLayer("OVERLAY", 2) DamageIcon:SetPoint("center", DetailsNewDamageRecord, "center", -97, 1) DamageIcon:SetSize(32, 32) DamageIcon:SetDesaturated(false) DamageIcon:SetTexCoord(0.27200000762939, 0.51899997711182, 0.25837841033936, 0.51399997711182) if (0 ~= 0) then DamageIcon:SetRotation (0) end DamageIcon:SetVertexColor(0.99999779462814, 0.99999779462814, 0.99999779462814, 0.99999779462814) DamageIcon:SetAlpha(1) DamageIcon:SetBlendMode("BLEND") --animations for DamageIcon DamageIcon.alpha = MainAnimationGroup:CreateAnimation("ALPHA") DamageIcon.alpha:SetTarget (DamageIcon) DamageIcon.alpha:SetOrder (1) DamageIcon.alpha:SetDuration(0.51599997282028) DamageIcon.alpha:SetStartDelay (0) DamageIcon.alpha:SetEndDelay (0) DamageIcon.alpha:SetFromAlpha (0) DamageIcon.alpha:SetToAlpha (1) DamageIcon.alpha = MainAnimationGroup:CreateAnimation("ALPHA") DamageIcon.alpha:SetTarget (DamageIcon) DamageIcon.alpha:SetOrder (2) DamageIcon.alpha:SetDuration(1) DamageIcon.alpha:SetStartDelay (4.5999999046326) DamageIcon.alpha:SetEndDelay (0) DamageIcon.alpha:SetFromAlpha (1) DamageIcon.alpha:SetToAlpha (0) ---------------------------------------------- local NewDamageRecord = DetailsNewDamageRecord:CreateFontString("NewDamageRecordFontString", "OVERLAY") NewDamageRecord:SetFont([=[Fonts\FRIZQT__.TTF]=], 12, "OUTLINE") NewDamageRecord:SetText("Damage Record!") NewDamageRecord:SetDrawLayer("OVERLAY", 0) NewDamageRecord:SetPoint("center", DetailsNewDamageRecord, "center", 18, 7) NewDamageRecord:SetSize(181, 20) NewDamageRecord:SetTextColor(1, 1, 1) NewDamageRecord:SetAlpha(1) NewDamageRecord:SetJustifyH("CENTER") --animations for NewDamageRecord NewDamageRecord.alpha = MainAnimationGroup:CreateAnimation("ALPHA") NewDamageRecord.alpha:SetTarget (NewDamageRecord) NewDamageRecord.alpha:SetOrder (1) NewDamageRecord.alpha:SetDuration(0.016000000759959) NewDamageRecord.alpha:SetStartDelay (0) NewDamageRecord.alpha:SetEndDelay (0) NewDamageRecord.alpha:SetFromAlpha (0) NewDamageRecord.alpha:SetToAlpha (0) NewDamageRecord.alpha = MainAnimationGroup:CreateAnimation("ALPHA") NewDamageRecord.alpha:SetTarget (NewDamageRecord) NewDamageRecord.alpha:SetOrder (2) NewDamageRecord.alpha:SetDuration(0.51599997282028) NewDamageRecord.alpha:SetStartDelay (0.40000000596046) NewDamageRecord.alpha:SetEndDelay (4.0999999046326) NewDamageRecord.alpha:SetFromAlpha (0) NewDamageRecord.alpha:SetToAlpha (1) NewDamageRecord.alpha = MainAnimationGroup:CreateAnimation("ALPHA") NewDamageRecord.alpha:SetTarget (NewDamageRecord) NewDamageRecord.alpha:SetOrder (3) NewDamageRecord.alpha:SetDuration(1) NewDamageRecord.alpha:SetStartDelay (0.10000000149012) NewDamageRecord.alpha:SetEndDelay (0) NewDamageRecord.alpha:SetFromAlpha (1) NewDamageRecord.alpha:SetToAlpha (0) ---------------------------------------------- local DamageAmount = DetailsNewDamageRecord:CreateFontString("DamageAmountFontString", "OVERLAY") DamageAmount:SetFont([=[Fonts\FRIZQT__.TTF]=], 12, "THICKOUTLINE") DamageAmount:SetText(_detalhes:comma_value (damage)) DamageAmount:SetDrawLayer("OVERLAY", 0) DamageAmount:SetPoint("center", DetailsNewDamageRecord, "center", 18, -7) DamageAmount:SetSize(100, 20) DamageAmount:SetTextColor(1, 1, 1) DamageAmount:SetAlpha(1) DamageAmount:SetJustifyH("CENTER") --animations for DamageAmount DamageAmount.alpha = MainAnimationGroup:CreateAnimation("ALPHA") DamageAmount.alpha:SetTarget (DamageAmount) DamageAmount.alpha:SetOrder (1) DamageAmount.alpha:SetDuration(0.016000000759959) DamageAmount.alpha:SetStartDelay (0) DamageAmount.alpha:SetEndDelay (0) DamageAmount.alpha:SetFromAlpha (0) DamageAmount.alpha:SetToAlpha (0) DamageAmount.alpha = MainAnimationGroup:CreateAnimation("ALPHA") DamageAmount.alpha:SetTarget (DamageAmount) DamageAmount.alpha:SetOrder (2) DamageAmount.alpha:SetDuration(0.51599997282028) DamageAmount.alpha:SetStartDelay (0.40000000596046) DamageAmount.alpha:SetEndDelay (0) DamageAmount.alpha:SetFromAlpha (0) DamageAmount.alpha:SetToAlpha (1) DamageAmount.alpha = MainAnimationGroup:CreateAnimation("ALPHA") DamageAmount.alpha:SetTarget (DamageAmount) DamageAmount.alpha:SetOrder (3) DamageAmount.alpha:SetDuration(1.0160000324249) DamageAmount.alpha:SetStartDelay (4.2000002861023) DamageAmount.alpha:SetEndDelay (0) DamageAmount.alpha:SetFromAlpha (1) DamageAmount.alpha:SetToAlpha (0) --test the animation MainAnimationGroup:Play() end