diff --git a/plugins/Details_3DModelsPaths/Details_3DModelsPaths.toc b/plugins/Details_3DModelsPaths/Details_3DModelsPaths.toc index 5981aa84..531bdf5d 100644 --- a/plugins/Details_3DModelsPaths/Details_3DModelsPaths.toc +++ b/plugins/Details_3DModelsPaths/Details_3DModelsPaths.toc @@ -1,4 +1,4 @@ -## Interface: 70000 +## Interface: 70100 ## Title: Details! 3D Model Viewer ## Notes: When the 3d models option is enabled, this tool is used to select which model will be used on the window's rows. ## DefaultState: Enabled diff --git a/plugins/Details_DataStorage/Details_DataStorage.toc b/plugins/Details_DataStorage/Details_DataStorage.toc index 65592562..70f2a87a 100644 --- a/plugins/Details_DataStorage/Details_DataStorage.toc +++ b/plugins/Details_DataStorage/Details_DataStorage.toc @@ -1,4 +1,4 @@ -## Interface: 70000 +## Interface: 70100 ## Title: Details Storage ## Notes: Stores information for Details! ## DefaultState: Enabled diff --git a/plugins/Details_DmgRank/Details_DmgRank.toc b/plugins/Details_DmgRank/Details_DmgRank.toc index c0ba4aa2..3589d2ec 100644 --- a/plugins/Details_DmgRank/Details_DmgRank.toc +++ b/plugins/Details_DmgRank/Details_DmgRank.toc @@ -1,4 +1,4 @@ -## Interface: 70000 +## Interface: 70100 ## Title: Details Damage, the Game! (plugin) ## Notes: Plugin for Details ## RequiredDeps: Details diff --git a/plugins/Details_DpsTuning/Details_DpsTuning.toc b/plugins/Details_DpsTuning/Details_DpsTuning.toc index 7bb5fcb8..b70ea203 100644 --- a/plugins/Details_DpsTuning/Details_DpsTuning.toc +++ b/plugins/Details_DpsTuning/Details_DpsTuning.toc @@ -1,4 +1,4 @@ -## Interface: 70000 +## Interface: 70100 ## Title: Details Dps Tuning (plugin) ## Notes: Plugin for Details ## RequiredDeps: Details diff --git a/plugins/Details_EncounterDetails/Details_EncounterDetails.lua b/plugins/Details_EncounterDetails/Details_EncounterDetails.lua index 16c9d96b..f5125527 100644 --- a/plugins/Details_EncounterDetails/Details_EncounterDetails.lua +++ b/plugins/Details_EncounterDetails/Details_EncounterDetails.lua @@ -342,21 +342,50 @@ local function CreatePluginFrames (data) end --> show icon on toolbar + + local re_ShowIconBallonTutorial = function() + EncounterDetails:ShowIconBallonTutorial() + end + + function EncounterDetails:ShowIconBallonTutorial() + if (InCombatLockdown()) then + C_Timer.After (5, function() + --print ("in combat") + re_ShowIconBallonTutorial() + end) + return + end + + local hook_AlertButtonCloseButton = function() + --print ("done tutorial") + EncounterDetails:SetTutorialCVar ("ENCOUNTER_DETAILS_BALLON_TUTORIAL1", true) + end + + if (EncounterDetailsTutorialAlertButton1 or not EncounterDetails.ToolbarButton or not EncounterDetails.ToolbarButton:IsShown()) then + --print (EncounterDetailsTutorialAlertButton1, not EncounterDetails.ToolbarButton, not EncounterDetails.ToolbarButton:IsShown()) + return + end + + local alert = CreateFrame ("frame", "EncounterDetailsTutorialAlertButton1", EncounterDetails.ToolbarButton, "MicroButtonAlertTemplate") + alert:SetFrameLevel (302) + alert.label = "Click here (on the skull icon) to bring the Encounter Details panel" + alert.Text:SetSpacing (4) + MicroButtonAlert_SetText (alert, alert.label) + alert:SetPoint ("bottom", EncounterDetails.ToolbarButton, "top", 0, 22) + alert.CloseButton:HookScript ("OnClick", hook_AlertButtonCloseButton) + alert:Show() + + --print ("showing ballon") + end + function EncounterDetails:ShowIcon() EncounterDetails.showing = true --> [1] button to show [2] button animation: "star", "blink" or true (blink) EncounterDetails:ShowToolbarIcon (EncounterDetails.ToolbarButton, "star") - - --EncounterDetails:SetTutorialCVar ("ENCOUNTER_DETAILS_TUTORIAL1", false) - - if (not EncounterDetails:GetTutorialCVar ("ENCOUNTER_DETAILS_TUTORIAL1")) then - EncounterDetails:SetTutorialCVar ("ENCOUNTER_DETAILS_TUTORIAL1", true) - local plugin_icon_alert = CreateFrame ("frame", "EncounterDetailsPopUp1", EncounterDetails.ToolbarButton, "DetailsHelpBoxTemplate") - plugin_icon_alert.ArrowUP:Show() - plugin_icon_alert.ArrowGlowUP:Show() - plugin_icon_alert.Text:SetText ("Encounter Details is Ready!\n\nTake a look in the encounter summary, click here!") - plugin_icon_alert:SetPoint ("bottom", EncounterDetails.ToolbarButton, "top", 0, 30) - plugin_icon_alert:Show() + + if (not EncounterDetails:GetTutorialCVar ("ENCOUNTER_DETAILS_BALLON_TUTORIAL1")) then + --print ("nao viu o tutorial ainda") + C_Timer.After (2, EncounterDetails.ShowIconBallonTutorial) end end @@ -367,6 +396,79 @@ local function CreatePluginFrames (data) EncounterDetails:HideToolbarIcon (EncounterDetails.ToolbarButton) end + local re_ShowTutorialAlert = function() + EncounterDetails:ShowTutorial() + end + local hook_AlertCloseButton = function() + re_ShowTutorialAlert() + end + + function EncounterDetails:ShowTutorial() + --EncounterDetails.db.AlertTutorialStep = 1 + if (not EncounterDetails.Frame:IsShown()) then + return + end + + EncounterDetails.db.AlertTutorialStep = EncounterDetails.db.AlertTutorialStep or 1 + + if (EncounterDetails.db.AlertTutorialStep == 1) then + local alert = CreateFrame ("frame", "EncounterDetailsTutorialAlert1", EncounterDetails.Frame, "MicroButtonAlertTemplate") + alert:SetFrameLevel (302) + alert.label = "on this tab, you see the damage chart for the latest tries on the encounter" + alert.Text:SetSpacing (4) + MicroButtonAlert_SetText (alert, alert.label) + alert:SetPoint ("bottom", EncounterDetails.Frame.buttonSwitchGraphic.widget, "top", 0, 22) + alert.CloseButton:HookScript ("OnClick", hook_AlertCloseButton) + alert:Show() + EncounterDetails.Frame.buttonSwitchGraphic:Click() + -- + EncounterDetails.db.AlertTutorialStep = EncounterDetails.db.AlertTutorialStep + 1 + + elseif (EncounterDetails.db.AlertTutorialStep == 2) then + local alert = CreateFrame ("frame", "EncounterDetailsTutorialAlert2", EncounterDetails.Frame, "MicroButtonAlertTemplate") + alert:SetFrameLevel (302) + alert.label = "on Emotes you can check what the boss printed to chat" + alert.Text:SetSpacing (4) + MicroButtonAlert_SetText (alert, alert.label) + alert:SetPoint ("bottom", EncounterDetails.Frame.buttonSwitchBossEmotes.widget, "top", 0, 22) + alert.CloseButton:HookScript ("OnClick", hook_AlertCloseButton) + alert:Show() + EncounterDetails.Frame.buttonSwitchBossEmotes:Click() + -- + EncounterDetails.db.AlertTutorialStep = EncounterDetails.db.AlertTutorialStep + 1 + + elseif (EncounterDetails.db.AlertTutorialStep == 3) then + local alert = CreateFrame ("frame", "EncounterDetailsTutorialAlert3", EncounterDetails.Frame, "MicroButtonAlertTemplate") + alert:SetFrameLevel (302) + alert.label = "here you create weakauras for boss abilities or DBM/BigWigs boss timers" + alert.Text:SetSpacing (4) + MicroButtonAlert_SetText (alert, alert.label) + alert:SetPoint ("bottom", EncounterDetails.Frame.buttonSwitchSpellsAuras.widget, "top", 0, 22) + alert.CloseButton:HookScript ("OnClick", hook_AlertCloseButton) + alert:Show() + EncounterDetails.Frame.buttonSwitchSpellsAuras:Click() + -- + EncounterDetails.db.AlertTutorialStep = EncounterDetails.db.AlertTutorialStep + 1 + + elseif (EncounterDetails.db.AlertTutorialStep == 4) then + local alert = CreateFrame ("frame", "EncounterDetailsTutorialAlert4", EncounterDetails.Frame, "MicroButtonAlertTemplate") + alert:SetFrameLevel (302) + alert.label = "see damage done and time spent on each phase of the encounter" + alert.Text:SetSpacing (4) + MicroButtonAlert_SetText (alert, alert.label) + alert:SetPoint ("bottom", EncounterDetails.Frame.buttonSwitchPhases.widget, "top", 0, 22) + alert.CloseButton:HookScript ("OnClick", hook_AlertCloseButton) + alert:Show() + EncounterDetails.Frame.buttonSwitchPhases:Click() + -- + EncounterDetails.db.AlertTutorialStep = EncounterDetails.db.AlertTutorialStep + 1 + + end + + end + + + --> user clicked on button, need open or close window function EncounterDetails:OpenWindow() if (EncounterDetails.open) then @@ -397,7 +499,9 @@ local function CreatePluginFrames (data) widget:Hide() end end - + + C_Timer.After (3, function() EncounterDetails:ShowTutorial() end) + return true end @@ -597,11 +701,11 @@ local function DispellInfo (dispell, barra) for index, tabela in _ipairs (tabela_jogadores) do local coords = EncounterDetails.class_coords [tabela[3]] if (not coords) then - GameCooltip:AddLine (tabela[1], tabela[2]) + GameCooltip:AddLine (tabela[1], tabela[2], 1, "white", "orange") GameCooltip:AddIcon ("Interface\\GossipFrame\\DailyActiveQuestIcon") --GameTooltip:AddDoubleLine ("|TInterface\\GossipFrame\\DailyActiveQuestIcon:14:14:0:0:16:16:0:1:0:1".."|t "..tabela[1], tabela[2], 1, 1, 1, 1, 1, 1) else - GameCooltip:AddLine (tabela[1], tabela[2]) + GameCooltip:AddLine (tabela[1], tabela[2], 1, "white", "orange") GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\classes_small", nil, 1, 14, 14, (coords[1]), (coords[2]), (coords[3]), (coords[4])) --GameTooltip:AddDoubleLine ("|TInterface\\AddOns\\Details\\images\\classes_small:14:14:0:0:128:128:"..(coords[1]*128)..":"..(coords[2]*128)..":"..(coords[3]*128)..":"..(coords[4]*128).."|t "..tabela[1]..": ", tabela[2], 1, 1, 1, 1, 1, 1) end @@ -865,6 +969,8 @@ function EncounterDetails:SetRowScripts (barra, index, container) DamageTakenDetails (self.jogador, barra) elseif (self.TTT == "adds_container") then + GameCooltip:AddLine ("Hover over the arrows for:", "", 1, "white") + GameCooltip:AddLine ("Damage Taken") GameCooltip:AddIcon ("Interface\\Buttons\\UI-MicroStream-Green", 1, 1, 14, 14, 0, 1, 1, 0) @@ -1420,7 +1526,7 @@ function EncounterDetails:OpenAndRefresh (_, segment) for _, esta_tabela in _pairs (dano_em) do local coords = EncounterDetails.class_coords [esta_tabela[3]] - GameCooltip:AddLine (esta_tabela[1]..": ", _detalhes:ToK (esta_tabela[2]).." (".. _cstr ("%.1f", esta_tabela[2]/dano_em_total*100) .."%)") + GameCooltip:AddLine (esta_tabela[1]..": ", _detalhes:ToK (esta_tabela[2]).." (".. _cstr ("%.1f", esta_tabela[2]/dano_em_total*100) .."%)", 1, "white", "orange") --GameTooltip:AddDoubleLine ("|TInterface\\AddOns\\Details\\images\\classes_small:14:14:0:0:128:128:"..(coords[1]*128)..":"..(coords[2]*128)..":"..(coords[3]*128)..":"..(coords[4]*128).."|t "..esta_tabela[1]..": ", _detalhes:comma_value(esta_tabela[2]).." (".. _cstr ("%.1f", esta_tabela[2]/dano_em_total*100) .."%)", 1, 1, 1, 1, 1, 1) GameCooltip:AddIcon ([[Interface\AddOns\Details\images\classes_small]], 1, 1, 14, 14, (coords[1]), (coords[2]), (coords[3]), (coords[4])) @@ -1466,7 +1572,7 @@ function EncounterDetails:OpenAndRefresh (_, segment) local coords = EncounterDetails.class_coords [esta_tabela[3]] if (coords) then --GameTooltip:AddDoubleLine ("|TInterface\\AddOns\\Details\\images\\classes_small:14:14:0:0:128:128:"..(coords[1]*128)..":"..(coords[2]*128)..":"..(coords[3]*128)..":"..(coords[4]*128).."|t "..esta_tabela[1]..": ", _detalhes:comma_value(esta_tabela[2]).." (".. _cstr ("%.1f", esta_tabela[2]/damage_from_total*100) .."%)", 1, 1, 1, 1, 1, 1) - GameCooltip:AddLine (esta_tabela[1]..": ", _detalhes:ToK (esta_tabela[2]).." (".. _cstr ("%.1f", esta_tabela[2]/damage_from_total*100) .."%)") + GameCooltip:AddLine (esta_tabela[1]..": ", _detalhes:ToK (esta_tabela[2]).." (".. _cstr ("%.1f", esta_tabela[2]/damage_from_total*100) .."%)", 1, "white", "orange") GameCooltip:AddIcon ([[Interface\AddOns\Details\images\classes_small]], 1, 1, 14, 14, (coords[1]), (coords[2]), (coords[3]), (coords[4])) GameCooltip:AddStatusBar (0, 1, 1, 1, 1, 1, false, {value = 100, color = {.3, .3, .3, 1}, specialSpark = false, texture = [[Interface\AddOns\Details\images\bar_serenity]]}) diff --git a/plugins/Details_EncounterDetails/Details_EncounterDetails.toc b/plugins/Details_EncounterDetails/Details_EncounterDetails.toc index d24eeafa..1c04e511 100644 --- a/plugins/Details_EncounterDetails/Details_EncounterDetails.toc +++ b/plugins/Details_EncounterDetails/Details_EncounterDetails.toc @@ -1,4 +1,4 @@ -## Interface: 70000 +## Interface: 70100 ## Title: Details Encounter (plugin) ## Notes: Plugin for Details ## RequiredDeps: Details diff --git a/plugins/Details_RaidCheck/Details_RaidCheck.toc b/plugins/Details_RaidCheck/Details_RaidCheck.toc index dfa2f379..628f876d 100644 --- a/plugins/Details_RaidCheck/Details_RaidCheck.toc +++ b/plugins/Details_RaidCheck/Details_RaidCheck.toc @@ -1,4 +1,4 @@ -## Interface: 70000 +## Interface: 70100 ## Title: Details Raid Check (plugin) ## Notes: Show a icon on Details title bar showing flask, food, pre-pots. ## RequiredDeps: Details diff --git a/plugins/Details_RaidInfo-EmeraldNightmare/Details_RaidInfo-EmeraldNightmare.toc b/plugins/Details_RaidInfo-EmeraldNightmare/Details_RaidInfo-EmeraldNightmare.toc index 37ed32d8..97335409 100644 --- a/plugins/Details_RaidInfo-EmeraldNightmare/Details_RaidInfo-EmeraldNightmare.toc +++ b/plugins/Details_RaidInfo-EmeraldNightmare/Details_RaidInfo-EmeraldNightmare.toc @@ -1,4 +1,4 @@ -## Interface: 70000 +## Interface: 70100 ## Title: Details: Emerald Nightmare ## Notes: Plugin for Details ## RequiredDeps: Details diff --git a/plugins/Details_RaidInfo-Nighthold/Details_RaidInfo-Nighthold.toc b/plugins/Details_RaidInfo-Nighthold/Details_RaidInfo-Nighthold.toc index 36b79bbf..534418f6 100644 --- a/plugins/Details_RaidInfo-Nighthold/Details_RaidInfo-Nighthold.toc +++ b/plugins/Details_RaidInfo-Nighthold/Details_RaidInfo-Nighthold.toc @@ -1,4 +1,4 @@ -## Interface: 70000 +## Interface: 70100 ## Title: Details: Nighthold ## Notes: Plugin for Details ## RequiredDeps: Details diff --git a/plugins/Details_Streamer/Details_Streamer.lua b/plugins/Details_Streamer/Details_Streamer.lua index ed3ae073..6746fb0d 100644 --- a/plugins/Details_Streamer/Details_Streamer.lua +++ b/plugins/Details_Streamer/Details_Streamer.lua @@ -996,8 +996,29 @@ local lastspell, lastcastid, lastchannelid, ischanneling local channelspells = {} local lastChannelSpell = "" +local APM = 0 +local ACTIONS = 0 +local ACTIONS_EVENT_TIME = {} +local AMP_Tick = C_Timer.NewTicker (1, function() + APM = ACTIONS * 60 + --print ("APM:", APM) + ACTIONS = 0 +end) +local APM_FRAME = CreateFrame ("frame", "DetailsAPMFrame", UIParent) +APM_FRAME:RegisterEvent ("PLAYER_STARTED_MOVING") +APM_FRAME:RegisterEvent ("PLAYER_STOPPED_MOVING") +APM_FRAME:SetScript ("OnEvent", function() + ACTIONS = ACTIONS + 1 +end) + listener:SetScript ("OnEvent", function (self, event, ...) +if (event ~= "UNIT_SPELLCAST_SENT" and event ~= "UNIT_SPELLCAST_SUCCEEDED" and ACTIONS_EVENT_TIME [event] ~= GetTime()) then + ACTIONS = ACTIONS + 1 + ACTIONS_EVENT_TIME [event] = GetTime() + --print (event, GetTime()) +end + --print (self, event, ...) if (event == "UNIT_SPELLCAST_SENT") then diff --git a/plugins/Details_Streamer/Details_Streamer.toc b/plugins/Details_Streamer/Details_Streamer.toc index cb380205..8b0a3668 100644 --- a/plugins/Details_Streamer/Details_Streamer.toc +++ b/plugins/Details_Streamer/Details_Streamer.toc @@ -1,4 +1,4 @@ -## Interface: 70000 +## Interface: 70100 ## Title: Details!: Streamer (plugin) ## Notes: Show which spells you are casting, viewers can see what are you doing and follow your steps. ## RequiredDeps: Details diff --git a/plugins/Details_TimeAttack/Details_TimeAttack.toc b/plugins/Details_TimeAttack/Details_TimeAttack.toc index 8a1edc3d..d9e59f6e 100644 --- a/plugins/Details_TimeAttack/Details_TimeAttack.toc +++ b/plugins/Details_TimeAttack/Details_TimeAttack.toc @@ -1,4 +1,4 @@ -## Interface: 70000 +## Interface: 70100 ## Title: Details TimeAttack (plugin) ## Notes: Plugin for Details ## SavedVariablesPerCharacter: _detalhes_databaseTimeAttack diff --git a/plugins/Details_TinyThreat/Details_TinyThreat.toc b/plugins/Details_TinyThreat/Details_TinyThreat.toc index 57093b73..5b247c77 100644 --- a/plugins/Details_TinyThreat/Details_TinyThreat.toc +++ b/plugins/Details_TinyThreat/Details_TinyThreat.toc @@ -1,4 +1,4 @@ -## Interface: 70000 +## Interface: 70100 ## Title: Details Tiny Threat (plugin) ## Notes: Plugin for Details ## RequiredDeps: Details diff --git a/plugins/Details_Vanguard/Details_Vanguard.toc b/plugins/Details_Vanguard/Details_Vanguard.toc index ba7f0a0b..a4406503 100644 --- a/plugins/Details_Vanguard/Details_Vanguard.toc +++ b/plugins/Details_Vanguard/Details_Vanguard.toc @@ -1,4 +1,4 @@ -## Interface: 70000 +## Interface: 70100 ## Title: Details Vanguard (plugin) ## Notes: Plugin for Details ## SavedVariablesPerCharacter: _detalhes_databaseVanguard