/trunk
------------------------------------- |
--------- Assignment Panel ------------- |
------------------------------------- |
self.AssignmentPanel = CreateFrame( "Frame", "TotemGuruSettingsGUI-Assignment", UIParent ); |
self.AssignmentPanel.name = "Totem Assignments"; |
self.AssignmentPanel = CreateFrame( "Frame", "TotemGuruSettingsGUI-Assignment", UIParent ); |
self.AssignmentPanel.name = "Totem Assignments"; |
self.AssignmentPanel.parent = self.mainPanel.name |
self.AssignmentPanel.title = FrameTitle(self.mainPanel.name,self.AssignmentPanel) |
self.AssignmentPanel.subtitle1 = FrameSubtitle("Set the totems for all shamans in the group",self.AssignmentPanel) |
--self:createTotemsWindow("TotemGuruTotemPriorities", "blah blah", self.TotemsPanel ) |
self:createTotemsWindow("TotemGuruTotemPriorities", "blah blah", self.TotemsPanel ) |
x = 140 |
y = -100 |
y = self:createButton("Assign","Assign",x,y,self.AssignmentPanel,TotemGuruAssignments_LoadWindow) |
y = self:createButton("ShowButton","TotemBar",x,y,self.AssignmentPanel,TotemGuruwindows_SingleButtonCast) |
y = self:CreateMulticastDropdown(x-40,y-10) |
InterfaceOptions_AddCategory(self.AssignmentPanel); |
--InterfaceOptions_AddCategory(self.AssignmentPanel); |
end |
local localbutton = totemWindow[totemIcon] |
local totem = TotemGuruTotemsInfo[totemIcon] |
if(totem) then |
TotemGuru_Create_Totem_icon(totemWindow,localbutton,totemIcon,"0",prioritySchool,TotemGuru_OnTotemPriorityClick) |
TotemGuru_Create_Totem_icon(totemWindow,localbutton,totemIcon,totem.spellID,prioritySchool,TotemGuru_OnTotemPriorityClick) |
localbutton.button:SetBackdrop({bgFile = "Interface/DialogFrame/UI-DialogBox-Background", |
edgeFile = "Interface/DialogFrame/UI-DialogBox-Border", |
tile = true, tileSize = 1, edgeSize = 16, |
"Interface/CHARACTERFRAME/UI-Player-PlayTimeUnhealthy", |
0.22, 0.75, 0.2, 0.74, |
nil, |
function (...) TotemGuru_showTooltip(TotemGuruWindows.WarningIcon31Button,3,nil) end, |
function (...) TotemGuru_showTooltip(TotemGuruWindows.WarningIcon3Button,3,nil) end, |
function (...) TotemGuru_hideTooltip() end |
) |
-- along with TotemGuru. If not, see <http://www.gnu.org/licenses/>. |
--some local variables |
TotemGuru_air_school=1 |
TotemGuru_water_school=2 |
TotemGuru_earth_school=3 |
TotemGuru_fire_school=4 |
TotemGuru_air_school=4 |
TotemGuru_water_school=3 |
TotemGuru_earth_school=2 |
TotemGuru_fire_school=1 |
-- These textuers were found by printing the icon field from the combat log message for 'SPELL_SUMMON' |
school = TotemGuru_air_school, |
name = "Grounding Totem", |
effect = "Absorbs one harmful spell cast on a nearby party member to iteself", |
range = "0", |
duration = 45, |
ranks = |
{ |
["0"] = "Rank 1", |
["8177"] = "Rank 1", |
} |
range = "0", |
duration = 45, |
spellID = 8177 |
}, |
[TotemGuru_Textures.Windfury] = |
{ |
school = TotemGuru_air_school, |
name = "Windfury Totem", |
effect = "Provides melee haste to all party members", |
range = "30", |
duration = 300, |
ranks = |
{ |
["0"] = "Rank 1", |
["8512"] = "Rank 1", |
} |
range = "30", |
duration = 300, |
spellID = 8512 |
}, |
[TotemGuru_Textures.ManaSpring] = |
{ |
school = TotemGuru_water_school, |
name = "Mana Spring Totem", |
effect = "Restores mana every 2 seconds to group members", |
range = "30", |
duration = 300, |
ranks = |
{ |
["0"] = "Rank 8", |
["5675"] = "Rank 1*", |
["10495"] = "Rank 2*", |
["10496"] = "Rank 3*", |
["10497"] = "Rank 4*", |
["35570"] = "Rank 5*", |
["58771"] = "Rank 6*", |
["58773"] = "Rank 7*", |
["58774"] = "Rank 8", |
} |
range = "30", |
duration = 300, |
spellID = 5675 |
}, |
[TotemGuru_Textures.WrathOfAir] = |
{ |
school = TotemGuru_air_school, |
name = "Wrath of Air Totem", |
effect = "Provides spell haste to all party members", |
range = "30", |
duration = 300, |
ranks = |
{ |
["0"] = "Rank 1", |
["3738"] = "Rank 1", |
} |
range = "30", |
duration = 300, |
spellID = 3738 |
}, |
[TotemGuru_Textures.TranquilMind] = |
{ |
school = TotemGuru_water_school, |
name = "Totem of Tranquil Mind", |
effect = "Summons a Totem of Tranquil Mind with 5 health at the feet of the caster for 5 min, causing party or raid members within 30 yards to lose 30% less casting or channeling time when damaged.", |
range = "30", |
duration = 300, |
ranks = |
{ |
["0"] = "Rank 1", |
["87718"] = "Rank 1", |
} |
school = TotemGuru_water_school, |
name = "Totem of Tranquil Mind", |
effect = "Summons a Totem of Tranquil Mind with 5 health at the feet of the caster for 5 min, causing party or raid members within 30 yards to lose 30% less casting or channeling time when damaged.", |
range = "30", |
duration = 300, |
spellID = 87718 |
}, |
[TotemGuru_Textures.ElementalResistance] = |
{ |
school = TotemGuru_water_school, |
name = "Elemental Resistance Totem", |
effect = "Summons an Elemental Resistance Totem with 5 health at the feet of the caster for 5 min that increases the Fire, Frost, and Nature resistance of party and raid members within 30.", |
range = "30", |
duration = 300, |
ranks = |
{ |
["0"] = "Rank 1", |
["8184"] = "Rank 1", |
} |
school = TotemGuru_water_school, |
name = "Elemental Resistance Totem", |
effect = "Summons an Elemental Resistance Totem with 5 health at the feet of the caster for 5 min that increases the Fire, Frost, and Nature resistance of party and raid members within 30.", |
range = "30", |
duration = 300, |
spellID = 8184 |
}, |
[TotemGuru_Textures.HealingStream] = |
{ |
school = TotemGuru_water_school, |
name = "Healing Stream Totem", |
effect = "Heals group members every 2 seconds", |
range = "20", |
duration = 300, |
ranks = |
{ |
["0"] = "Rank 9", |
["5394"] = "Rank 1*", |
["6375"] = "Rank 2*", |
["6377"] = "Rank 3*", |
["10462"] = "Rank 4*", |
["10463"] = "Rank 5*", |
["25567"] = "Rank 6*", |
["58755"] = "Rank 7*", |
["58756"] = "Rank 8*", |
["58757"] = "Rank 9", |
} |
range = "20", |
duration = 300, |
spellID = 5394 |
}, |
[TotemGuru_Textures.ManaTide] = |
{ |
school = TotemGuru_water_school, |
name = "Mana Tide Totem", |
effect = "Gain 6% of total mana every 3 seconds.", |
range = "0", |
duration = 12, |
ranks = |
{ |
["0"] = "Rank 1", |
["16191"] = "Rank 1", |
} |
}, |
range = "0", |
duration = 12, |
spellID = 16191 |
}, |
[TotemGuru_Textures.StoneClaw] = |
{ |
school = TotemGuru_earth_school, |
name = "Stoneclaw Totem", |
effect = "Has 1620 health and taunts creatures. 50% chance to stun for 3 sec. Protects all casters totems", |
range = "8", |
duration = 15, |
ranks = |
{ |
["0"] = "Rank 10", |
["5730"] = "Rank 1*", |
["6390"] = "Rank 2*", |
["6391"] = "Rank 3*", |
["6392"] = "Rank 4*", |
["10427"] = "Rank 5*", |
["10428"] = "Rank 6*", |
["25525"] = "Rank 7*", |
["58580"] = "Rank 8*", |
["58581"] = "Rank 9*", |
["58582"] = "Rank 10", |
} |
range = "8", |
duration = 15, |
spellID = 5730 |
}, |
[TotemGuru_Textures.EarthBind] = |
{ |
school = TotemGuru_earth_school, |
name = "Earthbind Totem", |
effect = "Slows enemy movement", |
range = "10", |
duration = 45, |
ranks = |
{ |
["0"] = "Rank 1", |
["2484"] = "Rank 1", |
} |
}, |
range = "10", |
duration = 45, |
spellID = 8177 |
}, |
[TotemGuru_Textures.StoneSkin] = |
{ |
school = TotemGuru_earth_school, |
name = "Stoneskin Totem", |
effect = "Increasing party members armor by 1150. Lasts 5 min.", |
range = "30", |
duration = 300, |
ranks = |
{ |
["0"] = "Rank 10", |
["8071"] = "Rank 1*", |
["8154"] = "Rank 2*", |
["8155"] = "Rank 3*", |
["10406"] = "Rank 4*", |
["10407"] = "Rank 5*", |
["10408"] = "Rank 6*", |
["25508"] = "Rank 7*", |
["25509"] = "Rank 8*", |
["58751"] = "Rank 9*", |
["58753"] = "Rank 10", |
} |
range = "30", |
duration = 300, |
spellID = 8071 |
}, |
[TotemGuru_Textures.StrengthOfEarth] = |
{ |
school = TotemGuru_earth_school, |
name = "Strength Of Earth Totem", |
effect = "Increases the strength and agility of all party members", |
range = "30", |
duration = 300, |
ranks = |
{ |
["0"] = "Rank 8", |
["8075"] = "Rank 1*", |
["8160"] = "Rank 2*", |
["8161"] = "Rank 3*", |
["10442"] = "Rank 4*", |
["25361"] = "Rank 5*", |
["25528"] = "Rank 6*", |
["57622"] = "Rank 7*", |
["58643"] = "Rank 8", |
} |
range = "30", |
duration = 300, |
spellID = 8075 |
}, |
[TotemGuru_Textures.EarthElemental] = |
{ |
school = TotemGuru_earth_school, |
name = "Earth Elemental Totem", |
effect = "Calls forth a greater earth elemental to protect the caster and <his/her> allies.", |
range = "0", |
duration = 120, |
ranks = |
{ |
["0"] = "Rank 1", |
["2062"] = "Rank 1", |
} |
range = "0", |
duration = 120, |
spellID = 2062 |
}, |
[TotemGuru_Textures.Tremor] = |
{ |
school = TotemGuru_earth_school, |
name = "Tremor Totem", |
effect = "Shakes the ground around it, removing Fear, Charm and Sleep effects from party members", |
range = "30", |
duration = 300, |
ranks = |
{ |
["0"] = "Rank 1", |
["8143"] = "Rank 1", |
} |
range = "30", |
duration = 300, |
spellID = 8143 |
}, |
[TotemGuru_Textures.Searing] = |
{ |
school = TotemGuru_fire_school, |
name = "Searing Totem", |
effect = "Repeatedly attacks an enemy with Fire damage", |
range = "20", |
duration = 60, |
ranks = |
{ |
["0"] = "Rank 10", |
["3599"] = "Rank 1*", |
["6363"] = "Rank 2*", |
["6364"] = "Rank 3*", |
["6365"] = "Rank 4*", |
["10437"] = "Rank 5*", |
["10438"] = "Rank 6*", |
["25533"] = "Rank 7*", |
["58699"] = "Rank 8*", |
["58703"] = "Rank 9*", |
["58704"] = "Rank 10", |
} |
range = "20", |
duration = 60, |
spellID = 3599 |
}, |
[TotemGuru_Textures.Magma] = |
{ |
school = TotemGuru_fire_school, |
name = "Magma Totem", |
effect = "Fire damage to all creatures within 8 yards every 2 seconds", |
range = "", |
duration = 20, |
ranks = |
{ |
["0"] = "Rank 7", |
["8190"] = "Rank 1*", |
["10585"] = "Rank 2*", |
["10586"] = "Rank 3*", |
["10587"] = "Rank 4*", |
["25552"] = "Rank 5*", |
["58731"] = "Rank 6*", |
["58734"] = "Rank 7", |
} |
range = "", |
duration = 20, |
spellID = 8190 |
}, |
[TotemGuru_Textures.FlameTongue] = |
{ |
school = TotemGuru_fire_school, |
name = "Flametongue Totem", |
effect = "Increases spell and healing of party memebers", |
range = "30", |
duration = 300, |
ranks = |
{ |
["0"] = "Rank 8", |
["8227"] = "Rank 1*", |
["8249"] = "Rank 2*", |
["10526"] = "Rank 3*", |
["16387"] = "Rank 4*", |
["25557"] = "Rank 5*", |
["58649"] = "Rank 6*", |
["58652"] = "Rank 7*", |
["58656"] = "Rank 8", |
} |
range = "30", |
duration = 300, |
spellID = 8227 |
}, |
[TotemGuru_Textures.FireElemental] = |
{ |
school = TotemGuru_fire_school, |
name = "Fire Elemental Totem", |
effect = "Calls forth a greater fire elemental to rain destruction on the caster's enemies.", |
range = "", |
duration = 120, |
ranks = |
{ |
["0"] = "Rank 1", |
["2894"] = "Rank 1", |
} |
range = "", |
duration = 120, |
spellID = 2894 |
}, |
} |
elseif(event == "PLAYER_TOTEM_UPDATE") then |
haveTotem, totemName, startTime, duration = GetTotemInfo(select(1,...)) |
local player = TotemGuruData.Players[PlayerName:GetText()] |
if (startTime==0 and player and player["school"..(5-select(1,...))])then |
TotemGuru_TotemDied(player["school"..(5-select(1,...))]) |
if (startTime==0 and player and player["school"..(select(1,...))])then |
TotemGuru_TotemDied(player["school"..(select(1,...))]) |
end |
elseif (event == "PLAYER_LOGOUT") then |
TotemGuruConfig.MainFrame.x = TotemGuruMain:GetLeft(); |
-- TotemGuru_showTooltip |
------------------------- |
function TotemGuru_showTooltip(button,icon,spellID) |
--if(not TotemGuruConfig.TotemGuruOff) and |
if TotemGuruConfig.TooltipsEnabled then |
local TipText = "" |
if not spellID then |
local totem_priority = 100; |
local warning_icon; |
for totem_icon,priority in pairs (TotemGuruData.CurrentTotemWarnings[icon].List) do |
if totem_priority > tonumber(priority) then |
totem_priority = tonumber(priority); |
warning_icon = totem_icon; |
end; |
if (spellID and tonumber(spellID) > 0) then |
GameTooltip:SetOwner(button) |
GameTooltip:SetSpellByID(spellID) |
GameTooltip:Show() |
else |
local TipText = "" |
if (not spellID or tonumber(spellID)==0) then |
local totem_priority = 100; |
local warning_icon; |
for totem_icon,priority in pairs (TotemGuruData.CurrentTotemWarnings[icon].List) do |
if totem_priority > tonumber(priority) then |
totem_priority = tonumber(priority); |
warning_icon = totem_icon; |
end; |
end |
if not warning_icon then |
return |
end |
TipText = TipText .. "|TTexturePath:" .. floor((TotemGuruConstants.TOOLTIP_FONT_SIZE+4)*TotemGuruConfig.TotemGuruScale) .. "|t"; |
TipText = TipText .. TotemGuruTotemsInfo[warning_icon].name; |
elseif(TotemGuruTotemsInfo[icon] and tostring(TotemGuruTotemsInfo[icon].spellID)) then |
if (string.find(tostring((TotemGuruTotemsInfo[icon].spellID)), "*")) then |
TipText = "|cFFFF0000 " |
else |
TipText = "|cFF00FF00 " |
end |
TipText = TipText .. "|TTexturePath:" .. floor((TotemGuruConstants.TOOLTIP_FONT_SIZE+4)*TotemGuruConfig.TotemGuruScale) .. "|t" |
TipText = TipText .. TotemGuruTotemsInfo[icon].name .. " " .. tostring(TotemGuruTotemsInfo[icon].spellID) |
TipText = TipText .. "|r|n" .. TotemGuruTotemsInfo[icon].effect |
TipText = TipText .. "|nRange " .. TotemGuruTotemsInfo[icon].range |
TipText = TipText .. "|nDuration " .. TotemGuruTotemsInfo[icon].duration |
else |
TipText = "Totem data not found" |
end |
if not warning_icon then |
return |
if not TotemGuruData.Tooltip then |
TotemGuruData.Tooltip = CreateFrame("Frame", nil,UIParent) |
TotemGuruData.Tooltip:SetFrameStrata("TOOLTIP") |
TotemGuruData.Tooltip:SetClampedToScreen(true) |
local bg = { |
bgFile = "Interface\\Buttons\\UI-SliderBar-Background", |
edgeFile = "Interface\\Buttons\\UI-SliderBar-Border", |
tile = true, |
tileSize = 8, |
edgeSize = 8, |
insets = { left = 3, right = 3, top = 6, bottom = 6 } |
} |
TotemGuruData.Tooltip:SetBackdrop(bg) |
end |
TipText = TipText .. "|TTexturePath:" .. floor((TotemGuruConstants.TOOLTIP_FONT_SIZE+4)*TotemGuruConfig.TotemGuruScale) .. "|t"; |
TipText = TipText .. TotemGuruTotemsInfo[warning_icon].name; |
elseif(TotemGuruTotemsInfo[icon] and TotemGuruTotemsInfo[icon].ranks[tostring(spellID)]) then |
if (string.find(TotemGuruTotemsInfo[icon].ranks[tostring(spellID)], "*")) then |
TipText = "|cFFFF0000 " |
else |
TipText = "|cFF00FF00 " |
TotemGuruData.Tooltip:SetPoint("LEFT", button, "RIGHT") |
if not TotemGuruData.Tooltip.text then |
TotemGuruData.Tooltip.text = TotemGuruData.Tooltip:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall") |
TotemGuruData.Tooltip.text:SetFont(TotemGuruConstants.FONT_TYPE, floor(TotemGuruConstants.TOOLTIP_FONT_SIZE*TotemGuruConfig.TotemGuruScale)) |
TotemGuruData.Tooltip.text:SetJustifyH("LEFT") |
TotemGuruData.Tooltip.text:SetPoint("TOPLEFT",TotemGuruData.Tooltip,"TOPLEFT",3,-3) |
TotemGuruData.Tooltip.text:SetPoint("BOTTOMRIGHT",TotemGuruData.Tooltip,"BOTTOMRIGHT",3,3) |
end |
TipText = TipText .. "|TTexturePath:" .. floor((TotemGuruConstants.TOOLTIP_FONT_SIZE+4)*TotemGuruConfig.TotemGuruScale) .. "|t" |
TipText = TipText .. TotemGuruTotemsInfo[icon].name .. " " .. TotemGuruTotemsInfo[icon].ranks[tostring(spellID)] |
TipText = TipText .. "|r|n" .. TotemGuruTotemsInfo[icon].effect |
TipText = TipText .. "|nRange " .. TotemGuruTotemsInfo[icon].range |
TipText = TipText .. "|nDuration " .. TotemGuruTotemsInfo[icon].duration |
else |
TipText = "Totem data not found" |
end |
if not TotemGuruData.Tooltip then |
TotemGuruData.Tooltip = CreateFrame("Frame", nil,UIParent) |
TotemGuruData.Tooltip:SetFrameStrata("TOOLTIP") |
TotemGuruData.Tooltip:SetClampedToScreen(true) |
local bg = { |
bgFile = "Interface\\Buttons\\UI-SliderBar-Background", |
edgeFile = "Interface\\Buttons\\UI-SliderBar-Border", |
tile = true, |
tileSize = 8, |
edgeSize = 8, |
insets = { left = 3, right = 3, top = 6, bottom = 6 } |
} |
TotemGuruData.Tooltip:SetBackdrop(bg) |
end |
TotemGuruData.Tooltip:SetPoint("LEFT", button, "RIGHT") |
if not TotemGuruData.Tooltip.text then |
TotemGuruData.Tooltip.text = TotemGuruData.Tooltip:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall") |
TotemGuruData.Tooltip.text:SetFont(TotemGuruConstants.FONT_TYPE, floor(TotemGuruConstants.TOOLTIP_FONT_SIZE*TotemGuruConfig.TotemGuruScale)) |
TotemGuruData.Tooltip.text:SetJustifyH("LEFT") |
TotemGuruData.Tooltip.text:SetPoint("TOPLEFT",TotemGuruData.Tooltip,"TOPLEFT",3,-3) |
TotemGuruData.Tooltip.text:SetPoint("BOTTOMRIGHT",TotemGuruData.Tooltip,"BOTTOMRIGHT",3,3) |
TotemGuruData.Tooltip.text:SetText(TipText) |
TotemGuruData.Tooltip:SetWidth(ceil(TotemGuruData.Tooltip.text:GetWidth()+15)) |
TotemGuruData.Tooltip:SetHeight(ceil(TotemGuruData.Tooltip.text:GetHeight()+15)) |
TotemGuruData.Tooltip:Show() |
end |
TotemGuruData.Tooltip.text:SetText(TipText) |
TotemGuruData.Tooltip:SetWidth(ceil(TotemGuruData.Tooltip.text:GetWidth()+15)) |
TotemGuruData.Tooltip:SetHeight(ceil(TotemGuruData.Tooltip.text:GetHeight()+15)) |
TotemGuruData.Tooltip:Show() |
end |
end |
-- TotemGuru_hideTooltip |
------------------------- |
function TotemGuru_hideTooltip() |
GameTooltip:Hide() |
if(TotemGuruData.Tooltip) then |
TotemGuruData.Tooltip:Hide() |
end |
## Notes: Shows totems dropped by other people in the raid. |
## SavedVariablesPerCharacter: TotemGuruConfig |
## Title: TotemGuru |
## Version: 4.0.2 |
## Version: 4.0.3 |
## SVN wowi:revision |
TotemAssignments.lua |