|
|
|
|
|
|
|
|
|
local Plater = _G.Plater
|
|
|
|
|
local GameCooltip = GameCooltip2
|
|
|
|
|
local DF = DetailsFramework
|
|
|
|
|
local _
|
|
|
|
|
local UnitPower = _G.UnitPower
|
|
|
|
|
local UnitPowerMax = _G.UnitPowerMax
|
|
|
|
|
local abs = _G.abs
|
|
|
|
|
|
|
|
|
|
local IS_WOW_PROJECT_MAINLINE = WOW_PROJECT_ID == WOW_PROJECT_MAINLINE
|
|
|
|
|
local IS_WOW_PROJECT_NOT_MAINLINE = WOW_PROJECT_ID ~= WOW_PROJECT_MAINLINE
|
|
|
|
|
|
|
|
|
|
--when 'runOnNextFrame' is used instead of 'C_Timer.After', it's to indicate the func will skip the current frame and run on the next one
|
|
|
|
|
local runOnNextFrame = function (func)
|
|
|
|
|
_G.C_Timer.After(0, func)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--[=[
|
|
|
|
|
resource frame: the frame which is anchored into the health bar, controls the size, scale and position
|
|
|
|
|
resource bar: is anchored (setallpoints) into the resource frame, hold all combo points textures and animations
|
|
|
|
|
widget: wildcard to reference a texture, fontstring or a frame containing textures and fontstring
|
|
|
|
|
--]=]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--default settings
|
|
|
|
|
--[=[
|
|
|
|
|
--alignment settings
|
|
|
|
|
resource_padding = 1,
|
|
|
|
|
|
|
|
|
|
--size settings
|
|
|
|
|
block_size = 20,
|
|
|
|
|
block_texture_background = "Interface\\COMMON\\Indicator-Gray"
|
|
|
|
|
block_texture_artwork = "Interface\\COMMON\\Indicator-Yellow"
|
|
|
|
|
block_texture_overlay = "Interface\\CHARACTERFRAME\\TempPortraitAlphaMaskSmall"
|
|
|
|
|
--]=]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--[=[
|
|
|
|
|
- quando o plater é iniciado, criar um unico frame para o resource que irá pular para a nameplate que é alvo
|
|
|
|
|
- quando uma nameplate é mostrada no jogo, confere se o novo resource esta ativo e se ele é mostrado na nameplate alvo e se o jogador tem spec que usa
|
|
|
|
|
- quando o alvo é mudado, faz as checagens acima tbm
|
|
|
|
|
- se é mostrado na personal bar, apenas adicionar ela lá
|
|
|
|
|
|
|
|
|
|
- funcões que serão necessárias:
|
|
|
|
|
- criação do frame do resource quando o plater for iniciado (CreateResourceBar)
|
|
|
|
|
- precisa mostra o resource em uma nameplate (UpdateResourceBar)
|
|
|
|
|
- verifica se a spec que o jogador esta usando possui uma barra de resource
|
|
|
|
|
|
|
|
|
|
- cache e verificações no codigo do plater
|
|
|
|
|
- variaveis que precisam de cache: esta usando o novo resource e se esta usando target (ou no personal bar)
|
|
|
|
|
- ao mudar de target > conferir se esta usando o novo resource > conferir se esta usando resource em nameplate > conferir se a namepalte é o alvo
|
|
|
|
|
- se a spec do jogador não usar uma barra de resource, por false que o jogador esta usando o novo resource
|
|
|
|
|
--]=]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local CONST_NUM_COMBO_POINTS = 10
|
|
|
|
|
local CONST_WIDGET_WIDTH = 20
|
|
|
|
|
local CONST_WIDGET_HEIGHT = 20
|
|
|
|
|
|
|
|
|
|
local animationFunctions = {}
|
|
|
|
|
|
|
|
|
|
--power
|
|
|
|
|
local SPELL_POWER_MANA = SPELL_POWER_MANA or (PowerEnum and PowerEnum.Mana) or 0
|
|
|
|
|
local SPELL_POWER_RAGE = SPELL_POWER_RAGE or (PowerEnum and PowerEnum.Rage) or 1
|
|
|
|
|
local SPELL_POWER_FOCUS = SPELL_POWER_FOCUS or (PowerEnum and PowerEnum.Focus) or 2
|
|
|
|
|
local SPELL_POWER_ENERGY = SPELL_POWER_ENERGY or (PowerEnum and PowerEnum.Energy) or 3
|
|
|
|
|
local SPELL_POWER_COMBO_POINTS2 = SPELL_POWER_COMBO_POINTS or (PowerEnum and PowerEnum.ComboPoints) or 4
|
|
|
|
|
local SPELL_POWER_RUNES = SPELL_POWER_RUNES or (PowerEnum and PowerEnum.Runes) or 5
|
|
|
|
|
local SPELL_POWER_RUNIC_POWER = SPELL_POWER_RUNIC_POWER or (PowerEnum and PowerEnum.RunicPower) or 6
|
|
|
|
|
local SPELL_POWER_SOUL_SHARDS = SPELL_POWER_SOUL_SHARDS or (PowerEnum and PowerEnum.SoulShards) or 7
|
|
|
|
|
local SPELL_POWER_LUNAR_POWER = SPELL_POWER_LUNAR_POWER or (PowerEnum and PowerEnum.LunarPower) or 8
|
|
|
|
|
local SPELL_POWER_HOLY_POWER = SPELL_POWER_HOLY_POWER or (PowerEnum and PowerEnum.HolyPower) or 9
|
|
|
|
|
local SPELL_POWER_ALTERNATE_POWER = SPELL_POWER_ALTERNATE_POWER or (PowerEnum and PowerEnum.Alternate) or 10
|
|
|
|
|
local SPELL_POWER_MAELSTROM = SPELL_POWER_MAELSTROM or (PowerEnum and PowerEnum.Maelstrom) or 11
|
|
|
|
|
local SPELL_POWER_CHI = SPELL_POWER_CHI or (PowerEnum and PowerEnum.Chi) or 12
|
|
|
|
|
local SPELL_POWER_INSANITY = SPELL_POWER_INSANITY or (PowerEnum and PowerEnum.Insanity) or 13
|
|
|
|
|
local SPELL_POWER_OBSOLETE = SPELL_POWER_OBSOLETE or (PowerEnum and PowerEnum.Obsolete) or 14
|
|
|
|
|
local SPELL_POWER_OBSOLETE2 = SPELL_POWER_OBSOLETE2 or (PowerEnum and PowerEnum.Obsolete2) or 15
|
|
|
|
|
local SPELL_POWER_ARCANE_CHARGES = SPELL_POWER_ARCANE_CHARGES or (PowerEnum and PowerEnum.ArcaneCharges) or 16
|
|
|
|
|
local SPELL_POWER_FURY = SPELL_POWER_FURY or (PowerEnum and PowerEnum.Fury) or 17
|
|
|
|
|
local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 18
|
|
|
|
|
|
|
|
|
|
local resourceTypes = {
|
|
|
|
|
[SPELL_POWER_INSANITY] = true, --shadow priest
|
|
|
|
|
[SPELL_POWER_CHI] = true, --monk
|
|
|
|
|
[SPELL_POWER_HOLY_POWER] = true, --paladins
|
|
|
|
|
[SPELL_POWER_LUNAR_POWER] = true, --balance druids
|
|
|
|
|
[SPELL_POWER_SOUL_SHARDS] = true, --warlock affliction
|
|
|
|
|
[SPELL_POWER_COMBO_POINTS2] = true, --combo points
|
|
|
|
|
[SPELL_POWER_MAELSTROM] = true, --shamans
|
|
|
|
|
[SPELL_POWER_PAIN] = true, --demonhunter tank
|
|
|
|
|
[SPELL_POWER_RUNES] = true, --dk
|
|
|
|
|
[SPELL_POWER_ARCANE_CHARGES] = true, --mage
|
|
|
|
|
[SPELL_POWER_FURY] = true, --warrior demonhunter dps
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
local energyTypes = {
|
|
|
|
|
[SPELL_POWER_MANA] = true,
|
|
|
|
|
[SPELL_POWER_RAGE] = true,
|
|
|
|
|
[SPELL_POWER_ENERGY] = true,
|
|
|
|
|
[SPELL_POWER_RUNIC_POWER] = true,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
local resourcePowerType = {
|
|
|
|
|
[SPELL_POWER_COMBO_POINTS2] = SPELL_POWER_ENERGY, --combo points
|
|
|
|
|
[SPELL_POWER_SOUL_SHARDS] = SPELL_POWER_MANA, --warlock
|
|
|
|
|
[SPELL_POWER_LUNAR_POWER] = SPELL_POWER_MANA, --druid
|
|
|
|
|
[SPELL_POWER_HOLY_POWER] = SPELL_POWER_MANA, --paladin
|
|
|
|
|
[SPELL_POWER_INSANITY] = SPELL_POWER_MANA, --shadowpriest
|
|
|
|
|
[SPELL_POWER_MAELSTROM] = SPELL_POWER_MANA, --shaman
|
|
|
|
|
[SPELL_POWER_CHI] = SPELL_POWER_MANA, --monk
|
|
|
|
|
[SPELL_POWER_PAIN] = SPELL_POWER_ENERGY, --demonhuinter
|
|
|
|
|
[SPELL_POWER_RUNES] = SPELL_POWER_RUNIC_POWER, --dk
|
|
|
|
|
[SPELL_POWER_ARCANE_CHARGES] = SPELL_POWER_MANA, --mage
|
|
|
|
|
[SPELL_POWER_FURY] = SPELL_POWER_RAGE, --warrior
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
--cache
|
|
|
|
|
local DB_USE_PLATER_RESOURCE_BAR = false
|
|
|
|
|
local DB_PLATER_RESOURCE_BAR_ON_PERSONAL = false
|
|
|
|
|
local DB_PLATER_RESOURCE_BAR_ANCHOR
|
|
|
|
|
|
|
|
|
|
--local DB_PLATER_RESOURCE_BAR_HEIGHT
|
|
|
|
|
local DB_PLATER_RESOURCE_BAR_SCALE
|
|
|
|
|
local DB_PLATER_RESOURCE_PADDING
|
|
|
|
|
local DB_PLATER_RESOURCE_GROW_DIRECTON
|
|
|
|
|
local DB_PLATER_RESOURCE_SHOW_DEPLATED
|
|
|
|
|
local DB_PLATER_RESOURCE_SHOW_NUMBER
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--when plater in the main file refreshes its upvalues, this function is also called
|
|
|
|
|
--called from plater.lua on Plater.RefreshDBUpvalues()
|
|
|
|
|
function Plater.RefreshResourcesDBUpvalues()
|
|
|
|
|
local profile = Plater.db.profile
|
|
|
|
|
|
|
|
|
|
DB_USE_PLATER_RESOURCE_BAR = profile.plater_resources_show
|
|
|
|
|
DB_PLATER_RESOURCE_BAR_ON_PERSONAL = profile.plater_resources_personal_bar
|
|
|
|
|
DB_PLATER_RESOURCE_BAR_ANCHOR = profile.plater_resources_anchor
|
|
|
|
|
--DB_PLATER_RESOURCE_BAR_HEIGHT = profile.plater_resource_width
|
|
|
|
|
DB_PLATER_RESOURCE_BAR_SCALE = profile.plater_resources_scale
|
|
|
|
|
DB_PLATER_RESOURCE_PADDING = profile.plater_resources_padding
|
|
|
|
|
DB_PLATER_RESOURCE_GROW_DIRECTON = profile.plater_resources_grow_direction
|
|
|
|
|
DB_PLATER_RESOURCE_SHOW_DEPLATED = profile.plater_resources_show_depleted
|
|
|
|
|
DB_PLATER_RESOURCE_SHOW_NUMBER = profile.plater_resources_show_number
|
|
|
|
|
|
|
|
|
|
--check if the frame exists if the player opt-in to use plater resources
|
|
|
|
|
if (DB_USE_PLATER_RESOURCE_BAR) then
|
|
|
|
|
if (not _G.PlaterNameplatesResourceFrame) then
|
|
|
|
|
C_Timer.After (2, Plater.CreatePlaterResourceFrame)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--base frame for the class or spec resource bar, it's a child of the main frame called 'PlaterNameplatesResourceFrame'
|
|
|
|
|
--the function passed is responsible to build textures and animations
|
|
|
|
|
local create_resource_bar = function (parent, frameName, func)
|
|
|
|
|
local resourceBar = CreateFrame("frame", frameName, parent)
|
|
|
|
|
|
|
|
|
|
resourceBar:EnableMouse (false)
|
|
|
|
|
resourceBar:EnableMouseWheel (false)
|
|
|
|
|
|
|
|
|
|
--store all widgets
|
|
|
|
|
resourceBar.widgets = {}
|
|
|
|
|
--store all background textures
|
|
|
|
|
resourceBar.widgetsBackground = {}
|
|
|
|
|
|
|
|
|
|
--create widgets which are frames holding textures and animations
|
|
|
|
|
for i = 1, CONST_NUM_COMBO_POINTS do
|
|
|
|
|
local newWidget = func(resourceBar, "$parentCPO" .. i)
|
|
|
|
|
resourceBar.widgets [#resourceBar.widgets + 1] = newWidget
|
|
|
|
|
newWidget:EnableMouse(false)
|
|
|
|
|
newWidget:EnableMouseWheel(false)
|
|
|
|
|
newWidget:SetSize(20, 20)
|
|
|
|
|
newWidget:Hide()
|
|
|
|
|
|
|
|
|
|
local CPOID = DF:CreateLabel(newWidget, i, 12, "white", nil, nil, nil, "overlay")
|
|
|
|
|
CPOID:SetPoint("bottom", newWidget, "top", 0, 5)
|
|
|
|
|
CPOID:Hide()
|
|
|
|
|
newWidget.numberId = CPOID
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return resourceBar
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--separated resources functions for class and specs
|
|
|
|
|
local resource_monk = function(platerResourceFrame)
|
|
|
|
|
--platerResourceFrame.resourceBars [268] = create_resource_bar (platerResourceFrame, "$parentMonk1Resource") --brewmaster chi bar
|
|
|
|
|
local newResourceBar = create_resource_bar (platerResourceFrame, "$parentMonk2Resource", animationFunctions.CreateMonkComboPoints) --windwalker chi
|
|
|
|
|
platerResourceFrame.resourceBars [269] = newResourceBar
|
|
|
|
|
tinsert (platerResourceFrame.allResourceBars, newResourceBar)
|
|
|
|
|
newResourceBar.resourceId = SPELL_POWER_CHI
|
|
|
|
|
newResourceBar.updateResourceFunc = animationFunctions.OnComboPointsChanged
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--each function create a resource frame for its class or spec
|
|
|
|
|
local resource_mage_arcane = function(platerResourceFrame)
|
|
|
|
|
local newResourceBar = create_resource_bar (platerResourceFrame, "$parentArcaneResource")
|
|
|
|
|
platerResourceFrame.resourceBars [62] = newResourceBar
|
|
|
|
|
tinsert (platerResourceFrame.allResourceBars, newResourceBar)
|
|
|
|
|
newResourceBar.resourceId = SPELL_POWER_ARCANE_CHARGES
|
|
|
|
|
newResourceBar.updateResourceFunc = false
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local resource_rogue_druid_cpoints = function(platerResourceFrame)
|
|
|
|
|
local newResourceBar = create_resource_bar (platerResourceFrame, "$parentRogueResource")
|
|
|
|
|
newResourceBar.resourceId = SPELL_POWER_COMBO_POINTS2
|
|
|
|
|
tinsert (platerResourceFrame.allResourceBars, newResourceBar)
|
|
|
|
|
|
|
|
|
|
--rogue
|
|
|
|
|
if (Plater.PlayerClass == "DRUID") then
|
|
|
|
|
platerResourceFrame.resourceBars ["ROGUE"] = newResourceBar
|
|
|
|
|
newResourceBar.classId = "ROGUE"
|
|
|
|
|
newResourceBar.updateResourceFunc = false
|
|
|
|
|
|
|
|
|
|
--druid
|
|
|
|
|
elseif (Plater.PlayerClass == "DRUID") then
|
|
|
|
|
platerResourceFrame.resourceBars [103] = newResourceBar
|
|
|
|
|
newResourceBar.classId = "DRUID"
|
|
|
|
|
newResourceBar.updateResourceFunc = false
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local resource_warlock = function(platerResourceFrame)
|
|
|
|
|
local newResourceBar = create_resource_bar (platerResourceFrame, "$parentWarlockResource")
|
|
|
|
|
platerResourceFrame.resourceBars ["WARLOCK"] = newResourceBar
|
|
|
|
|
tinsert (platerResourceFrame.allResourceBars, newResourceBar)
|
|
|
|
|
newResourceBar.resourceId = SPELL_POWER_SOUL_SHARDS
|
|
|
|
|
newResourceBar.updateResourceFunc = false
|
|
|
|
|
newResourceBar.classId = "WARLOCK"
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local resource_paladin = function(platerResourceFrame)
|
|
|
|
|
local newResourceBar = create_resource_bar (platerResourceFrame, "$parentPaladinResource")
|
|
|
|
|
platerResourceFrame.resourceBars [70] = newResourceBar
|
|
|
|
|
tinsert (platerResourceFrame.allResourceBars, newResourceBar)
|
|
|
|
|
newResourceBar.resourceId = SPELL_POWER_HOLY_POWER
|
|
|
|
|
newResourceBar.updateResourceFunc = false
|
|
|
|
|
newResourceBar.classId = "PALADIN"
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local resource_dk = function(platerResourceFrame)
|
|
|
|
|
local newResourceBar = create_resource_bar (platerResourceFrame, "$parentDKResource")
|
|
|
|
|
platerResourceFrame.resourceBars ["DEATHKNIGHT"] = newResourceBar
|
|
|
|
|
tinsert (platerResourceFrame.allResourceBars, newResourceBar)
|
|
|
|
|
newResourceBar.resourceId = SPELL_POWER_RUNES
|
|
|
|
|
newResourceBar.updateResourceFunc = false
|
|
|
|
|
newResourceBar.classId = "DEATHKNIGHT"
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--this funtion is called once at the logon, it'll create the resource frames for the class
|
|
|
|
|
function Plater.CreatePlaterResourceFrame()
|
|
|
|
|
|
|
|
|
|
if (not DB_USE_PLATER_RESOURCE_BAR) then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if (PlaterNameplatesResourceFrame) then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--create a frame attached to UIParent, this frame is the fondation for the resource bar
|
|
|
|
|
local platerResourceFrame = CreateFrame("frame", "PlaterNameplatesResourceFrame")
|
|
|
|
|
|
|
|
|
|
--store the resources bars created for the class or spec (hash table)
|
|
|
|
|
platerResourceFrame.resourceBars = {}
|
|
|
|
|
--store all resource bars created (index table)
|
|
|
|
|
platerResourceFrame.allResourceBars = {}
|
|
|
|
|
|
|
|
|
|
--grab the player class
|
|
|
|
|
local playerClass = Plater.PlayerClass
|
|
|
|
|
|
|
|
|
|
if (IS_WOW_PROJECT_NOT_MAINLINE) then --classic
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
if (playerClass == "MAGE") then
|
|
|
|
|
resource_mage_arcane(platerResourceFrame)
|
|
|
|
|
|
|
|
|
|
elseif (playerClass == "ROGUE" or playerClass == "DRUID") then
|
|
|
|
|
resource_rogue_druid_cpoints(platerResourceFrame)
|
|
|
|
|
|
|
|
|
|
elseif (playerClass == "WARLOCK") then
|
|
|
|
|
resource_warlock(platerResourceFrame)
|
|
|
|
|
|
|
|
|
|
elseif (playerClass == "PALADIN") then
|
|
|
|
|
resource_paladin(platerResourceFrame)
|
|
|
|
|
|
|
|
|
|
elseif (playerClass == "DEATHKNIGHT") then
|
|
|
|
|
resource_dk(platerResourceFrame)
|
|
|
|
|
|
|
|
|
|
elseif (playerClass == "MONK") then
|
|
|
|
|
resource_monk(platerResourceFrame)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--run the function to update the
|
|
|
|
|
platerResourceFrame:SetScript ("OnEvent", function(self, event, ...)
|
|
|
|
|
self.currentBarShown.updateResourceFunc(self, self.currentBarShown)
|
|
|
|
|
end)
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function Plater.ResourceFrame_EnableEvents()
|
|
|
|
|
local platerResourceFrame = _G.PlaterNameplatesResourceFrame
|
|
|
|
|
platerResourceFrame:RegisterUnitEvent ("UNIT_POWER_FREQUENT", "player")
|
|
|
|
|
platerResourceFrame:RegisterUnitEvent ("UNIT_MAXPOWER", "player")
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function Plater.ResourceFrame_DisableEvents()
|
|
|
|
|
local platerResourceFrame = _G.PlaterNameplatesResourceFrame
|
|
|
|
|
platerResourceFrame:UnregisterEvent ("UNIT_POWER_FREQUENT")
|
|
|
|
|
platerResourceFrame:UnregisterEvent ("UNIT_MAXPOWER")
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--called when use plater resource bar is disabled or when no match on rules to show it
|
|
|
|
|
--only called from inside this file
|
|
|
|
|
function Plater.HidePlaterResourceFrame()
|
|
|
|
|
if (PlaterNameplatesResourceFrame) then
|
|
|
|
|
Plater.ResourceFrame_DisableEvents()
|
|
|
|
|
return PlaterNameplatesResourceFrame:Hide()
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local canUsePlaterResourceFrame = function()
|
|
|
|
|
if IS_WOW_PROJECT_NOT_MAINLINE then return end
|
|
|
|
|
|
|
|
|
|
--nameplate which will have the resource bar
|
|
|
|
|
local nameplateAnchor
|
|
|
|
|
|
|
|
|
|
if (not DB_USE_PLATER_RESOURCE_BAR) then
|
|
|
|
|
return Plater.HidePlaterResourceFrame()
|
|
|
|
|
|
|
|
|
|
elseif (not DB_PLATER_RESOURCE_BAR_ON_PERSONAL) then
|
|
|
|
|
--target nameplate
|
|
|
|
|
nameplateAnchor = C_NamePlate.GetNamePlateForUnit ("target")
|
|
|
|
|
--if the player has no target, this will return nil
|
|
|
|
|
if (not nameplateAnchor) then
|
|
|
|
|
return Plater.HidePlaterResourceFrame()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
--personal bar
|
|
|
|
|
nameplateAnchor = C_NamePlate.GetNamePlateForUnit ("player")
|
|
|
|
|
--if the player nameplate does not exists, just quit
|
|
|
|
|
if (not nameplateAnchor) then
|
|
|
|
|
return Plater.HidePlaterResourceFrame()
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if (IS_WOW_PROJECT_NOT_MAINLINE) then
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
|
|
local specIndex = GetSpecializationInfo (GetSpecialization())
|
|
|
|
|
|
|
|
|
|
if (specIndex) then
|
|
|
|
|
local playerClass = Plater.PlayerClass
|
|
|
|
|
|
|
|
|
|
--check if the resource bar is used by all specs in the player class by comparing it to the class name
|
|
|
|
|
local resourceBarByClass = _G.PlaterNameplatesResourceFrame.resourceBars[playerClass]
|
|
|
|
|
if (resourceBarByClass) then
|
|
|
|
|
resourceBarByClass.resourceClass = playerClass
|
|
|
|
|
resourceBarByClass.resourceSpec = false
|
|
|
|
|
|
|
|
|
|
Plater.ResourceFrame_EnableEvents()
|
|
|
|
|
Plater.UpdatePlaterResourceFrame(nameplateAnchor)
|
|
|
|
|
return Plater.UpdatePlaterResourceBar(nameplateAnchor, resourceBarByClass)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--check if the current player spec uses a resource bar
|
|
|
|
|
local resourceBarBySpec = _G.PlaterNameplatesResourceFrame.resourceBars[specIndex]
|
|
|
|
|
if (resourceBarBySpec) then
|
|
|
|
|
resourceBarBySpec.resourceClass = false
|
|
|
|
|
resourceBarBySpec.resourceSpec = specIndex
|
|
|
|
|
|
|
|
|
|
Plater.ResourceFrame_EnableEvents()
|
|
|
|
|
Plater.UpdatePlaterResourceFrame(nameplateAnchor)
|
|
|
|
|
return Plater.UpdatePlaterResourceBar(nameplateAnchor, resourceBarBySpec)
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
--if no specialization, player might be low level
|
|
|
|
|
if (UnitLevel("player") < 10) then
|
|
|
|
|
--should get by class?
|
|
|
|
|
if (playerClass == "ROGUE") then
|
|
|
|
|
Plater.ResourceFrame_EnableEvents()
|
|
|
|
|
Plater.UpdatePlaterResourceFrame(nameplateAnchor)
|
|
|
|
|
return Plater.UpdatePlaterResourceBar(nameplateAnchor, _G.PlaterNameplatesResourceFrame.resourceBars ["ROGUE"])
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return Plater.HidePlaterResourceFrame()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--currently is called from:
|
|
|
|
|
--player spec change (PLAYER_SPECIALIZATION_CHANGED)
|
|
|
|
|
--player target has changed
|
|
|
|
|
--decides if the resource is shown or not
|
|
|
|
|
function Plater.CanUsePlaterResourceFrame()
|
|
|
|
|
return runOnNextFrame(canUsePlaterResourceFrame)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--called when 'CanUsePlaterResourceFrame' gives green flag to show the resource bar
|
|
|
|
|
--this function receives the nameplate where the resource bar will be attached
|
|
|
|
|
function Plater.UpdatePlaterResourceFrame(plateFrame)
|
|
|
|
|
if IS_WOW_PROJECT_NOT_MAINLINE then return end
|
|
|
|
|
|
|
|
|
|
--get the main resource frame
|
|
|
|
|
local platerResourceFrame = _G.PlaterNameplatesResourceFrame
|
|
|
|
|
|
|
|
|
|
--make its parent be the healthBar from the nameplate where it is anchored to
|
|
|
|
|
platerResourceFrame:SetParent(plateFrame.unitFrame.healthBar)
|
|
|
|
|
|
|
|
|
|
--update the resource anchor
|
|
|
|
|
Plater.SetAnchor(platerResourceFrame, DB_PLATER_RESOURCE_BAR_ANCHOR)
|
|
|
|
|
|
|
|
|
|
--update the size
|
|
|
|
|
local healthBarWidth = plateFrame.unitFrame.healthBar:GetWidth()
|
|
|
|
|
platerResourceFrame:SetWidth(healthBarWidth)
|
|
|
|
|
platerResourceFrame:SetHeight(2)
|
|
|
|
|
platerResourceFrame:SetScale(DB_PLATER_RESOURCE_BAR_SCALE)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--called when 'CanUsePlaterResourceFrame' gives green flag to show the resource bar
|
|
|
|
|
--this funtion receives the nameplate and the bar to show
|
|
|
|
|
function Plater.UpdatePlaterResourceBar(plateFrame, resourceBar)
|
|
|
|
|
|
|
|
|
|
--main resource frame
|
|
|
|
|
local platerResourceFrame = _G.PlaterNameplatesResourceFrame
|
|
|
|
|
|
|
|
|
|
--hide all resourcebar widgets
|
|
|
|
|
for i = 1, #resourceBar.widgets do
|
|
|
|
|
resourceBar.widgets[i]:Hide()
|
|
|
|
|
resourceBar.widgets[i].numberId:SetShown(DB_PLATER_RESOURCE_SHOW_NUMBER)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--check if the bar already shown isn't the bar asking to be shown
|
|
|
|
|
if (platerResourceFrame.currentBarShown) then
|
|
|
|
|
if (platerResourceFrame.currentBarShown ~= resourceBar) then
|
|
|
|
|
platerResourceFrame.currentBarShown:Hide()
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
platerResourceFrame.currentBarShown = resourceBar
|
|
|
|
|
|
|
|
|
|
if (DB_PLATER_RESOURCE_SHOW_NUMBER) then
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--show the resource bar
|
|
|
|
|
resourceBar:Show()
|
|
|
|
|
resourceBar:SetHeight(1)
|
|
|
|
|
platerResourceFrame:Show()
|
|
|
|
|
|
|
|
|
|
if (IS_WOW_PROJECT_NOT_MAINLINE) then
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
if (DB_PLATER_RESOURCE_SHOW_DEPLATED) then
|
|
|
|
|
Plater.UpdateResourcesFor_ShowDepleted(platerResourceFrame, resourceBar)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--update the resources widgets when using the resources showing the background of depleted
|
|
|
|
|
--on this type, the location of each resource icon is precomputed
|
|
|
|
|
function Plater.UpdateResourcesFor_ShowDepleted(platerResourceFrame, resourceBar)
|
|
|
|
|
--get the table with the widgets created to represent monk wind walker chi
|
|
|
|
|
local widgetTable = resourceBar.widgets
|
|
|
|
|
|
|
|
|
|
--get the total of widgets to show
|
|
|
|
|
local totalWidgetsShown = UnitPowerMax("player", resourceBar.resourceId)
|
|
|
|
|
--store the amount of widgets currently in use
|
|
|
|
|
resourceBar.widgetsInUseAmount = totalWidgetsShown
|
|
|
|
|
--set the amount of resources the player has
|
|
|
|
|
resourceBar.lastResourceAmount = 0
|
|
|
|
|
|
|
|
|
|
--get the default size of each widget
|
|
|
|
|
local widgetWidth = CONST_WIDGET_WIDTH
|
|
|
|
|
local widgetHeight = CONST_WIDGET_HEIGHT
|
|
|
|
|
--sum of the width of all resources shown
|
|
|
|
|
local totalWidth = 0
|
|
|
|
|
|
|
|
|
|
local isGrowingToLeft = DB_PLATER_RESOURCE_GROW_DIRECTON == "left"
|
|
|
|
|
|
|
|
|
|
local firstWidgetIndex = isGrowingToLeft and totalWidgetsShown or 1
|
|
|
|
|
local firstWidgetIndex = 1
|
|
|
|
|
local firstWindowPoint = isGrowingToLeft and "right" or "left"
|
|
|
|
|
|
|
|
|
|
local firstWidget = widgetTable[firstWidgetIndex]
|
|
|
|
|
firstWidget:SetPoint(firstWindowPoint, resourceBar, firstWindowPoint, 0, 0)
|
|
|
|
|
resourceBar.widgetsBackground[ firstWidgetIndex ]:Show()
|
|
|
|
|
resourceBar.widgetsBackground[ firstWidgetIndex ]:ClearAllPoints()
|
|
|
|
|
resourceBar.widgetsBackground[ firstWidgetIndex ]:SetPoint(firstWindowPoint, resourceBar, firstWindowPoint, 0, 0)
|
|
|
|
|
|
|
|
|
|
for i = 1, totalWidgetsShown do
|
|
|
|
|
local thisResourceWidget
|
|
|
|
|
local lastResourceWidget
|
|
|
|
|
|
|
|
|
|
if (isGrowingToLeft and false) then
|
|
|
|
|
i = abs(i-(totalWidgetsShown+1))
|
|
|
|
|
thisResourceWidget = widgetTable[i]
|
|
|
|
|
lastResourceWidget = widgetTable[i + 1]
|
|
|
|
|
else
|
|
|
|
|
thisResourceWidget = widgetTable[i]
|
|
|
|
|
lastResourceWidget = widgetTable[i - 1]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
thisResourceWidget:SetSize (widgetWidth, widgetHeight)
|
|
|
|
|
|
|
|
|
|
if (i ~= firstWidgetIndex) then
|
|
|
|
|
resourceBar.widgetsBackground[ i ]:Show()
|
|
|
|
|
resourceBar.widgetsBackground[ i ]:ClearAllPoints()
|
|
|
|
|
thisResourceWidget:ClearAllPoints()
|
|
|
|
|
|
|
|
|
|
if (isGrowingToLeft) then
|
|
|
|
|
resourceBar.widgetsBackground[ i ]:SetPoint("right", lastResourceWidget, "left", -DB_PLATER_RESOURCE_PADDING, 0)
|
|
|
|
|
thisResourceWidget:SetPoint("right", lastResourceWidget, "left", -DB_PLATER_RESOURCE_PADDING, 0)
|
|
|
|
|
else
|
|
|
|
|
resourceBar.widgetsBackground[ i ]:SetPoint("left", lastResourceWidget, "right", DB_PLATER_RESOURCE_PADDING, 0)
|
|
|
|
|
thisResourceWidget:SetPoint("left", lastResourceWidget, "right", DB_PLATER_RESOURCE_PADDING, 0)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--add the spacing into the total width occupied
|
|
|
|
|
totalWidth = totalWidth + DB_PLATER_RESOURCE_PADDING
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
totalWidth = totalWidth + widgetWidth
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
for i = totalWidgetsShown+1, CONST_NUM_COMBO_POINTS do
|
|
|
|
|
local thisResourceWidget = widgetTable[i]
|
|
|
|
|
thisResourceWidget:Hide()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
resourceBar:SetWidth(totalWidth)
|
|
|
|
|
resourceBar:SetPoint("center", platerResourceFrame, "center", 0, 0)
|
|
|
|
|
|
|
|
|
|
platerResourceFrame.currentBarShown.updateResourceFunc(platerResourceFrame, platerResourceFrame.currentBarShown, true)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--realign the combat points after the amount of available combo points change
|
|
|
|
|
--this amount isn't the max amount of combo points but the current resources deom UnitPower
|
|
|
|
|
local updateResources_noDepleted = function(resourceBar, currentResources)
|
|
|
|
|
|
|
|
|
|
--main resource frame
|
|
|
|
|
local platerResourceFrame = _G.PlaterNameplatesResourceFrame
|
|
|
|
|
|
|
|
|
|
--get the table with the widgets created to represent monk wind walker chi
|
|
|
|
|
local widgetTable = resourceBar.widgets
|
|
|
|
|
|
|
|
|
|
--get the default size of each widget
|
|
|
|
|
local widgetWidth = CONST_WIDGET_WIDTH
|
|
|
|
|
local widgetHeight = CONST_WIDGET_HEIGHT
|
|
|
|
|
--sum of the width of all resources shown
|
|
|
|
|
local totalWidth = 0
|
|
|
|
|
|
|
|
|
|
for i = 1, currentResources do
|
|
|
|
|
local thisResourceWidget = widgetTable[i]
|
|
|
|
|
local lastResourceWidget = widgetTable[i - 1]
|
|
|
|
|
local thisResouceBackground = resourceBar.widgetsBackground[ i ]
|
|
|
|
|
|
|
|
|
|
if (not thisResourceWidget.inUse) then
|
|
|
|
|
thisResourceWidget:Show()
|
|
|
|
|
thisResouceBackground:Show()
|
|
|
|
|
|
|
|
|
|
thisResourceWidget.inUse = true
|
|
|
|
|
thisResourceWidget.ShowAnimation:Play()
|
|
|
|
|
thisResourceWidget:SetSize (widgetWidth, widgetHeight)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
thisResourceWidget:ClearAllPoints()
|
|
|
|
|
resourceBar.widgetsBackground[ i ]:ClearAllPoints()
|
|
|
|
|
|
|
|
|
|
if (not lastResourceWidget) then --this is the first widget, anchor it into the left side of the frame
|
|
|
|
|
resourceBar.widgetsBackground[ i ]:SetPoint("left", resourceBar, "left", 0, 0)
|
|
|
|
|
thisResourceWidget:SetPoint("left", resourceBar, "left", 0, 0)
|
|
|
|
|
|
|
|
|
|
else --no the first anchor into the latest widget
|
|
|
|
|
resourceBar.widgetsBackground[ i ]:SetPoint("left", lastResourceWidget, "right", DB_PLATER_RESOURCE_PADDING, 0)
|
|
|
|
|
thisResourceWidget:SetPoint("left", lastResourceWidget, "right", DB_PLATER_RESOURCE_PADDING, 0)
|
|
|
|
|
totalWidth = totalWidth + DB_PLATER_RESOURCE_PADDING --add the gap into the total width size
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
lastResourceWidget = thisResourceWidget
|
|
|
|
|
totalWidth = totalWidth + widgetWidth
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--hide non used widgets
|
|
|
|
|
for i = currentResources+1, CONST_NUM_COMBO_POINTS do
|
|
|
|
|
local thisResourceWidget = widgetTable[i]
|
|
|
|
|
thisResourceWidget.inUse = false
|
|
|
|
|
thisResourceWidget:Hide()
|
|
|
|
|
resourceBar.widgetsBackground[ i ]:Hide()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
resourceBar:SetWidth(totalWidth)
|
|
|
|
|
resourceBar:SetPoint(DB_PLATER_RESOURCE_GROW_DIRECTON, platerResourceFrame, DB_PLATER_RESOURCE_GROW_DIRECTON, 0, 0)
|
|
|
|
|
|
|
|
|
|
--save the amount of resources
|
|
|
|
|
resourceBar.lastResourceAmount = currentResources
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local updateResources_withDepleted = function(resourceBar, currentResources)
|
|
|
|
|
--calculate how many widgets need to be shown or need to be hide
|
|
|
|
|
if (currentResources < resourceBar.lastResourceAmount) then --hide widgets
|
|
|
|
|
for i = resourceBar.lastResourceAmount, currentResources+1, -1 do
|
|
|
|
|
resourceBar.widgets[ i ]:Hide()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
elseif (currentResources > resourceBar.lastResourceAmount) then --show widgets
|
|
|
|
|
for i = resourceBar.lastResourceAmount + 1, currentResources do
|
|
|
|
|
resourceBar.widgets[ i ]:Show()
|
|
|
|
|
resourceBar.widgets[ i ].ShowAnimation:Play()
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--save the amount of resources
|
|
|
|
|
resourceBar.lastResourceAmount = currentResources
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function animationFunctions.OnComboPointsChanged(platerResourceFrame, resourceBar, forcedRefresh)
|
|
|
|
|
--amount of resources the player has now
|
|
|
|
|
local currentResources = UnitPower("player", resourceBar.resourceId)
|
|
|
|
|
--resources amount got updated?
|
|
|
|
|
if (currentResources == resourceBar.lastResourceAmount and not forcedRefresh) then
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
--which update method to use
|
|
|
|
|
if (DB_PLATER_RESOURCE_SHOW_DEPLATED) then
|
|
|
|
|
return updateResources_withDepleted(resourceBar, currentResources)
|
|
|
|
|
else
|
|
|
|
|
return updateResources_noDepleted(resourceBar, currentResources)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--functions to create the class or spec resources widgets
|
|
|
|
|
animationFunctions.CreateMonkComboPoints = function(parent, frameName)
|
|
|
|
|
|
|
|
|
|
--> create the main frame
|
|
|
|
|
local MonkWWComboPoint = CreateFrame ("frame", frameName, parent)
|
|
|
|
|
|
|
|
|
|
--create background
|
|
|
|
|
local Background = parent:CreateTexture (nil, "BORDER")
|
|
|
|
|
Background:SetTexture ([[Interface\PLAYERFRAME\MonkUIAtlas]])
|
|
|
|
|
Background:SetDrawLayer ("BORDER", 1)
|
|
|
|
|
Background:SetPoint ("center", MonkWWComboPoint, "center", 0, 0)
|
|
|
|
|
Background:SetSize (CONST_WIDGET_WIDTH, CONST_WIDGET_HEIGHT)
|
|
|
|
|
Background:SetVertexColor (0.98431158065796, 0.99215465784073, 0.99999779462814, 0.99999779462814)
|
|
|
|
|
Background:SetTexCoord (0.5513224029541, 0.61600479125977, 0.025, 0.1610000038147)
|
|
|
|
|
parent.widgetsBackground [ #parent.widgetsBackground + 1 ] = Background
|
|
|
|
|
|
|
|
|
|
--> single animation group
|
|
|
|
|
local MainAnimationGroup = MonkWWComboPoint:CreateAnimationGroup()
|
|
|
|
|
MainAnimationGroup:SetLooping ("NONE")
|
|
|
|
|
MainAnimationGroup:SetToFinalAlpha(true)
|
|
|
|
|
|
|
|
|
|
--> widgets:
|
|
|
|
|
|
|
|
|
|
----------------------------------------------
|
|
|
|
|
|
|
|
|
|
local BallTexture = MonkWWComboPoint:CreateTexture (nil, "ARTWORK")
|
|
|
|
|
BallTexture:SetTexture ([[Interface\PLAYERFRAME\MonkUIAtlas]])
|
|
|
|
|
BallTexture:SetDrawLayer ("ARTWORK", 0)
|
|
|
|
|
BallTexture:SetPoint ("center", MonkWWComboPoint, "center", 0, 0)
|
|
|
|
|
BallTexture:SetSize (CONST_WIDGET_WIDTH * 0.90, CONST_WIDGET_HEIGHT * 0.90)
|
|
|
|
|
BallTexture:SetTexCoord (0.6427360534668, 0.70684181213379, 0.02872227191925, 0.15893713951111)
|
|
|
|
|
|
|
|
|
|
--> animations for BallTexture
|
|
|
|
|
|
|
|
|
|
BallTexture.scale = MainAnimationGroup:CreateAnimation ("SCALE")
|
|
|
|
|
BallTexture.scale:SetTarget (BallTexture)
|
|
|
|
|
BallTexture.scale:SetOrder (1)
|
|
|
|
|
BallTexture.scale:SetDuration (0.195999994874)
|
|
|
|
|
BallTexture.scale:SetFromScale (0, 0)
|
|
|
|
|
BallTexture.scale:SetToScale (1, 1)
|
|
|
|
|
BallTexture.scale:SetOrigin ("center", 0, 0)
|
|
|
|
|
BallTexture.scale = MainAnimationGroup:CreateAnimation ("SCALE")
|
|
|
|
|
BallTexture.scale:SetTarget (BallTexture)
|
|
|
|
|
BallTexture.scale:SetOrder (2)
|
|
|
|
|
BallTexture.scale:SetDuration (0.046000000089407)
|
|
|
|
|
BallTexture.scale:SetFromScale (1, 1)
|
|
|
|
|
BallTexture.scale:SetToScale (1.1999999284744, 1.1999999284744)
|
|
|
|
|
BallTexture.scale:SetOrigin ("center", 0, 0)
|
|
|
|
|
BallTexture.scale = MainAnimationGroup:CreateAnimation ("SCALE")
|
|
|
|
|
BallTexture.scale:SetTarget (BallTexture)
|
|
|
|
|
BallTexture.scale:SetOrder (3)
|
|
|
|
|
BallTexture.scale:SetDuration (0.016000000759959)
|
|
|
|
|
BallTexture.scale:SetFromScale (1.1999999284744, 1.1999999284744)
|
|
|
|
|
BallTexture.scale:SetToScale (1, 1)
|
|
|
|
|
BallTexture.scale:SetOrigin ("center", 0, 0)
|
|
|
|
|
|
|
|
|
|
----------------------------------------------
|
|
|
|
|
|
|
|
|
|
local UpSpark = MonkWWComboPoint:CreateTexture (nil, "OVERLAY")
|
|
|
|
|
UpSpark:SetTexture ([[Interface\QUESTFRAME\ObjectiveTracker]])
|
|
|
|
|
UpSpark:SetDrawLayer ("OVERLAY", 0)
|
|
|
|
|
UpSpark:SetPoint ("center", MonkWWComboPoint, "center", 0, 0)
|
|
|
|
|
UpSpark:SetSize (CONST_WIDGET_WIDTH * 0.89, CONST_WIDGET_HEIGHT * 0.89)
|
|
|
|
|
UpSpark:SetTexCoord (0.7108479309082, 0.83905952453613, 0.0010000000149012, 0.12888721466064)
|
|
|
|
|
|
|
|
|
|
--> animations for UpSpark
|
|
|
|
|
|
|
|
|
|
UpSpark.scale = MainAnimationGroup:CreateAnimation ("SCALE")
|
|
|
|
|
UpSpark.scale:SetTarget (UpSpark)
|
|
|
|
|
UpSpark.scale:SetOrder (1)
|
|
|
|
|
UpSpark.scale:SetDuration (0.195999994874)
|
|
|
|
|
UpSpark.scale:SetFromScale (0, 0)
|
|
|
|
|
UpSpark.scale:SetToScale (1, 1)
|
|
|
|
|
UpSpark.scale:SetOrigin ("center", 0, 0)
|
|
|
|
|
UpSpark.alpha = MainAnimationGroup:CreateAnimation ("ALPHA")
|
|
|
|
|
UpSpark.alpha:SetTarget (UpSpark)
|
|
|
|
|
UpSpark.alpha:SetOrder (1)
|
|
|
|
|
UpSpark.alpha:SetDuration (0.195999994874)
|
|
|
|
|
UpSpark.alpha:SetFromAlpha (0)
|
|
|
|
|
UpSpark.alpha:SetToAlpha (0.40382900834084)
|
|
|
|
|
UpSpark.rotation = MainAnimationGroup:CreateAnimation ("ROTATION")
|
|
|
|
|
UpSpark.rotation:SetTarget (UpSpark)
|
|
|
|
|
UpSpark.rotation:SetOrder (1)
|
|
|
|
|
UpSpark.rotation:SetDuration (0.195999994874)
|
|
|
|
|
UpSpark.rotation:SetDegrees (60)
|
|
|
|
|
UpSpark.rotation:SetOrigin ("center", 0, 0)
|
|
|
|
|
UpSpark.rotation = MainAnimationGroup:CreateAnimation ("ROTATION")
|
|
|
|
|
UpSpark.rotation:SetTarget (UpSpark)
|
|
|
|
|
UpSpark.rotation:SetOrder (2)
|
|
|
|
|
UpSpark.rotation:SetDuration (0.195999994874)
|
|
|
|
|
UpSpark.rotation:SetDegrees (15)
|
|
|
|
|
UpSpark.rotation:SetOrigin ("center", 0, 0)
|
|
|
|
|
UpSpark.alpha = MainAnimationGroup:CreateAnimation ("ALPHA")
|
|
|
|
|
UpSpark.alpha:SetTarget (UpSpark)
|
|
|
|
|
UpSpark.alpha:SetOrder (2)
|
|
|
|
|
UpSpark.alpha:SetDuration (0.096000000834465)
|
|
|
|
|
UpSpark.alpha:SetFromAlpha (0.4038280248642)
|
|
|
|
|
UpSpark.alpha:SetToAlpha (0.25)
|
|
|
|
|
UpSpark.rotation = MainAnimationGroup:CreateAnimation ("ROTATION")
|
|
|
|
|
UpSpark.rotation:SetTarget (UpSpark)
|
|
|
|
|
UpSpark.rotation:SetOrder (3)
|
|
|
|
|
UpSpark.rotation:SetDuration (0.195999994874)
|
|
|
|
|
UpSpark.rotation:SetDegrees (60)
|
|
|
|
|
UpSpark.rotation:SetOrigin ("center", 0, 0)
|
|
|
|
|
UpSpark.alpha = MainAnimationGroup:CreateAnimation ("ALPHA")
|
|
|
|
|
UpSpark.alpha:SetTarget (UpSpark)
|
|
|
|
|
UpSpark.alpha:SetOrder (3)
|
|
|
|
|
UpSpark.alpha:SetDuration (0.195999994874)
|
|
|
|
|
UpSpark.alpha:SetFromAlpha (0.25)
|
|
|
|
|
UpSpark.alpha:SetToAlpha (0)
|
|
|
|
|
|
|
|
|
|
----------------------------------------------
|
|
|
|
|
|
|
|
|
|
local BackgroundSpark = MonkWWComboPoint:CreateTexture (nil, "BACKGROUND")
|
|
|
|
|
BackgroundSpark:SetTexture ([[Interface\PVPFrame\PvPHonorSystem]])
|
|
|
|
|
BackgroundSpark:SetDrawLayer ("BACKGROUND", 0)
|
|
|
|
|
BackgroundSpark:SetPoint ("center", MonkWWComboPoint, "center", 0, 0)
|
|
|
|
|
BackgroundSpark:SetSize (CONST_WIDGET_WIDTH * 1.39, CONST_WIDGET_HEIGHT * 1.39)
|
|
|
|
|
BackgroundSpark:SetTexCoord (0.0096916198730469, 0.1160000038147, 0.43700000762939, 0.54200000762939)
|
|
|
|
|
|
|
|
|
|
--> animations for BackgroundSpark
|
|
|
|
|
|
|
|
|
|
BackgroundSpark.alpha = MainAnimationGroup:CreateAnimation ("ALPHA")
|
|
|
|
|
BackgroundSpark.alpha:SetTarget (BackgroundSpark)
|
|
|
|
|
BackgroundSpark.alpha:SetOrder (1)
|
|
|
|
|
BackgroundSpark.alpha:SetDuration (0.195999994874)
|
|
|
|
|
BackgroundSpark.alpha:SetFromAlpha (0)
|
|
|
|
|
BackgroundSpark.alpha:SetToAlpha (1)
|
|
|
|
|
BackgroundSpark.rotation = MainAnimationGroup:CreateAnimation ("ROTATION")
|
|
|
|
|
BackgroundSpark.rotation:SetTarget (BackgroundSpark)
|
|
|
|
|
BackgroundSpark.rotation:SetOrder (1)
|
|
|
|
|
BackgroundSpark.rotation:SetDuration (0.195999994874)
|
|
|
|
|
BackgroundSpark.rotation:SetDegrees (2)
|
|
|
|
|
BackgroundSpark.rotation:SetOrigin ("center", 0, 0)
|
|
|
|
|
BackgroundSpark.alpha = MainAnimationGroup:CreateAnimation ("ALPHA")
|
|
|
|
|
BackgroundSpark.alpha:SetTarget (BackgroundSpark)
|
|
|
|
|
BackgroundSpark.alpha:SetOrder (2)
|
|
|
|
|
BackgroundSpark.alpha:SetDuration (0.195999994874)
|
|
|
|
|
BackgroundSpark.alpha:SetFromAlpha (0.34612736105919)
|
|
|
|
|
BackgroundSpark.alpha:SetToAlpha (0.24995632469654)
|
|
|
|
|
BackgroundSpark.alpha = MainAnimationGroup:CreateAnimation ("ALPHA")
|
|
|
|
|
BackgroundSpark.alpha:SetTarget (BackgroundSpark)
|
|
|
|
|
BackgroundSpark.alpha:SetOrder (3)
|
|
|
|
|
BackgroundSpark.alpha:SetDuration (0.195999994874)
|
|
|
|
|
BackgroundSpark.alpha:SetFromAlpha (0.25)
|
|
|
|
|
BackgroundSpark.alpha:SetToAlpha (0)
|
|
|
|
|
|
|
|
|
|
--> test the animation
|
|
|
|
|
--MainAnimationGroup:Play()
|
|
|
|
|
|
|
|
|
|
MonkWWComboPoint.ShowAnimation = MainAnimationGroup
|
|
|
|
|
return MonkWWComboPoint
|
|
|
|
|
end
|