vanilla-wow-addons – Rev 1
?pathlinks?
local Moog_HudClass = {
[MOOGHUD_CLASS_MAGE] = "00FFFF",
[MOOGHUD_CLASS_WARLOCK] = "8D54FB",
[MOOGHUD_CLASS_PRIEST] = "FFFFFF",
[MOOGHUD_CLASS_DRUID] = "FF8A00",
[MOOGHUD_CLASS_SHAMAN] = "FF71A8",
[MOOGHUD_CLASS_PALADIN] = "FF71A8",
[MOOGHUD_CLASS_ROGUE] = "FFFF00",
[MOOGHUD_CLASS_HUNTER] = "00FF00",
[MOOGHUD_CLASS_WARRIOR] = "B39442",
};
local Moog_HudRep = { "FF4444", "DD4444", "DD7744", "BB9944", "44DD44", "55EE44", "66FF44"};
function GetArgs(message, separator)
local args = {};
local i = 0;
for value in string.gfind(message, "[^"..separator.."]+") do
i = i + 1;
args[i] = value;
end
return args;
end
function sr_pr(msg)
DEFAULT_CHAT_FRAME:AddMessage(msg);
end
-- Seal: Added
local function Moog_UpdateCurrentState(unit)
local stateicon = getglobal("Moog_Hud_"..unit.."_StatusTexture");
local inCombat = this.inCombat;
if (not stateicon) then return; end
if(unit == "target") then
inCombat = UnitAffectingCombat(unit);
end
if(inCombat == 1) then
stateicon:Show();
stateicon:SetTexCoord(.5625, .9375, .0625, .4375);
elseif(unit == "player" and IsResting()) then
stateicon:Show();
stateicon:SetTexCoord(.0625, .4375, .0625, .4375);
else
stateicon:Hide();
end
end
local function Moog_UpdatePvP(unit)
local pvpicon = getglobal("Moog_Hud_"..unit.."_PvPTexture");
if (not pvpicon) then return; end
local factionGroup = UnitFactionGroup(unit);
if ( UnitIsPVPFreeForAll(unit) ) then
pvpicon:SetTexture("Interface\\TargetingFrame\\UI-PVP-FFA");
pvpicon:Show();
elseif ( factionGroup and UnitIsPVP(unit) ) then
pvpicon:SetTexture("Interface\\TargetingFrame\\UI-PVP-"..factionGroup);
pvpicon:Show();
else
pvpicon:Hide();
end
end
local function Moog_UpdatePartyLeader()
if ( IsPartyLeader() and (GetNumPartyMembers() > 0) ) then
Moog_Hud_player_LeaderTexture:Show();
else
Moog_Hud_player_LeaderTexture:Hide();
end
end
local function Moog_UpdatePartyLoot()
local lootMethod, lootMaster = GetLootMethod();
if ((lootMaster == 0)and (GetNumPartyMembers() > 0)) then
Moog_Hud_player_LootTexture:Show();
else
Moog_Hud_player_LootTexture:Hide();
end
end
-- Seal: End Add
function Moog_Hud_OnLoad()
SlashCmdList["MOOGHUD"] = Moog_Hud_SlashHandler;
SLASH_MOOGHUD1 = "/moog";
-- Shen: Events which are needed globally
this:RegisterEvent("PLAYER_ENTERING_WORLD");
this:RegisterEvent("PLAYER_LEAVING_WORLD");
this:RegisterEvent("VARIABLES_LOADED");
Moog_UseMobHealth = false;
Moog_SpellBlinkTime = GetTime();
table.insert(UnitPopupFrames,"Moog_Player_DropDown");
table.insert(UnitPopupFrames,"Moog_Target_DropDown");
--RegisterForSave("MoogHUDInfo");
sr_pr("Moog HUD v"..MOOGHUD_VERSION.." loaded. Type /moog to bring up options");
end
function Moog_Hud_SlashHandler(msg)
-- if (msg == nil) then
-- msg = ""; end
local parsedmsg = GetArgs(msg," ");
if (parsedmsg[1] == nil) then
Moogmenu:Show();
else
parsedmsg[1] = strlower(parsedmsg[1])
if strfind(parsedmsg[1], "menu") and Moogmenu then
Moogmenu:Show();
elseif Moogmenu then
Moogmenu:Show();
end
end
end
function Moog_HudTargetUpdate()
-- Update Combo Points here just to be sure it catches target deaths, etc
local points = GetComboPoints();
if (points > 0) then
Moog_HudCombo:SetText(points);
else
Moog_HudCombo:SetText("");
end
if (UnitIsDeadOrGhost("target")) then
Moog_TargetHudHPText:SetTextColor(0.7, 0.7, 0.7);
else
Moog_TargetHudHPText:SetTextColor(1, 0, 0);
end
if (MoogHUDInfo.TargetOn and UnitExists("target")) then
Moog_TargetHud:Show();
-- Moog_TargetHudHPPerc:SetText(ceil((UnitHealth("target") / UnitHealthMax("target")) * 100).."%");
if UnitIsDeadOrGhost("target") then
Moog_TargetHudHPText:SetText("Dead");
elseif ((UnitInParty("target") or UnitIsUnit("target","pet")) and (MoogHUDInfo.PlayerTargetPC == false)) then
Moog_TargetHudHPText:SetText(UnitHealth("target").."/"..UnitHealthMax("target"));
else
if (Moog_UseMobHealth and (MoogHUDInfo.MobTargetPC == false)) then
Moog_TargetHudHPText:SetText(Moog_MobHealth_GetTargetCurHP().."/"..Moog_MobHealth_GetTargetMaxHP());
else
Moog_TargetHudHPText:SetText(ceil((UnitHealth("target") / UnitHealthMax("target")) * 100).."%");
end
end
if (UnitManaMax("target") > 0) then
if ((UnitIsPlayer("target") and (MoogHUDInfo.PlayerTargetPC == false)) or ((not UnitIsPlayer("target")) and (MoogHUDInfo.MobTargetPC == false))) then
Moog_TargetHudMPText:SetText(UnitMana("target").."/"..UnitManaMax("target"));
else
Moog_TargetHudMPText:SetText(ceil((UnitMana("target") / UnitManaMax("target")) * 100).."%");
end
else
Moog_TargetHudMPText:SetText(" ");
end
if (UnitLevel("target") < 0) then
if ( UnitClassification("target") == "worldboss" ) then
Moog_TargetHudLevel:SetText("Boss");
else
Moog_TargetHudLevel:SetText("L??");
end
else
if ( string.find(UnitClassification("target"), "elite") == nil ) then
Moog_TargetHudLevel:SetText("L" .. UnitLevel("target"));
else
Moog_TargetHudLevel:SetText("L" .. UnitLevel("target") .. "+");
end
end
local targetfriend = 1;
if (UnitIsFriend("player","target") == nil) then
targetfriend = 0; end
if (targetfriend == 1) then
Moog_TargetHudLevel:SetTextColor(1, 0.9, 0);
elseif (UnitIsTrivial("target")) then
Moog_TargetHudLevel:SetTextColor(0.7, 0.7, 0.7);
elseif (UnitLevel("target") == -1) then
Moog_TargetHudLevel:SetTextColor(1, 0, 0);
elseif (UnitLevel("target") <= (UnitLevel("player")-3)) then
Moog_TargetHudLevel:SetTextColor(0, 0.9, 0);
elseif (UnitLevel("target") >= (UnitLevel("player")+5)) then
Moog_TargetHudLevel:SetTextColor(1, 0, 0);
elseif (UnitLevel("target") >= (UnitLevel("player")+3)) then
Moog_TargetHudLevel:SetTextColor(1, 0.5, 0);
else
Moog_TargetHudLevel:SetTextColor(1, 0.9, 0);
end
local info = {};
if (UnitPowerType("target") == 0) then
info = { r = 0.00, g = 0.7, b = 1.00 };
else
info = ManaBarColor[UnitPowerType("target")];
end
local class = UnitClass("target");
local color = Moog_HudClass[class];
if (UnitIsPlayer("target")) then
if (color) then
Moog_TargetHudName:SetText("|cff"..color..UnitName("target").."|r");
else
Moog_TargetHudName:SetText("|cffb39442"..UnitName("target").."|r");
end
else
local reaction = UnitReaction("target","player");
local reactioncolour = Moog_HudRep[4];
if (reaction) then
reactioncolour = Moog_HudRep[reaction];
end
Moog_TargetHudName:SetText("|cff"..reactioncolour..UnitName("target").."|r");
end
if ((UnitIsPlayer("target") or (MoogHUDInfo.MobClass == true)) and MoogHUDInfo.ShowIcons) then
Moog_Target_ClassTexture:SetTexCoord(Moog_ClassPosRight(class), Moog_ClassPosLeft(class), Moog_ClassPosTop(class), Moog_ClassPosBottom(class));
Moog_Target_Icon:Show();
else
Moog_Target_Icon:Hide();
end
if (UnitIsTapped("target") and not UnitIsTappedByPlayer("target")) then
Moog_TargetHudName:SetTextColor(0.5, 0.5, 0.5);
end
Moog_TargetHudMPText:SetTextColor(info.r, info.g, info.b);
Moog_HudTargetAuras();
--Seal: Added Update status and pvp
--Moog_UpdatePvP("target");
--Moog_UpdateCurrentState("target");
--Seal: End Add
else
Moog_TargetHud:Hide();
end
end
function Moog_HudTargetAuras()
local i, icon, buff, debuff, debuffborder, debuffcount;
for i = 1, 16 do
buff = UnitBuff("target", i);
button = getglobal("Moog_TargetHudBuff"..i);
if (buff) then
icon = getglobal(button:GetName().."Icon");
icon:SetTexture(buff);
button:Show();
button.unit = "target";
else
button:Hide();
end
end
for i = 1, 16 do
debuff, debuffApplications = UnitDebuff("target", i);
button = getglobal("Moog_TargetHudDeBuff"..i);
if (debuff) then
icon = getglobal(button:GetName().."Icon");
debuffborder = getglobal(button:GetName().."Border");
debuffcount = getglobal(button:GetName().."Count");
icon:SetTexture(debuff);
button:Show();
debuffborder:Show();
button.isdebuff = 1;
button.unit = "target";
if (debuffApplications > 1) then
debuffcount:SetText(debuffApplications);
debuffcount:Show();
else
debuffcount:Hide();
end
else
button:Hide();
end
end
end
function Moog_HudSetAuraTooltip()
if (not this:IsVisible()) then return; end
GameTooltip:SetOwner(this, "ANCHOR_BOTTOMRIGHT");
local unit = this.unit;
if (this.isdebuff == 1) then
GameTooltip:SetUnitDebuff(unit, this:GetID());
else
GameTooltip:SetUnitBuff(unit, this:GetID());
end
end
function Moog_HudUpdateOptions()
if (MoogHUDInfo.SelfOn) then
Moog_SelfHud:Show();
else
Moog_SelfHud:Hide();
end
if (MoogHUDInfo.ShowIcons) then
Moog_Player_Icon:Show();
else
Moog_Player_Icon:Hide();
end
if (MoogHUDInfo.Seperation == nil) then
MoogHUDInfo.Seperation = 0; end
Moog_HudLeft:SetPoint("CENTER","Moog_Hud","CENTER", -MoogHUDInfo.Seperation, 0);
Moog_HudRight:SetPoint("CENTER","Moog_Hud","CENTER", MoogHUDInfo.Seperation, 0);
if (MoogHUDInfo.SeperateNumbers == nil) then
MoogHUDInfo.SeperateNumbers = 0; end
local TextOffset = 0;
if (MoogHUDInfo.SeperateNumbers) then
TextOffset=MoogHUDInfo.Seperation; end
Moog_HudHealthText:SetPoint("BOTTOMRIGHT","Moog_HudCombo","TOPLEFT", -TextOffset, 0);
Moog_HudManaText:SetPoint("BOTTOMLEFT","Moog_HudCombo","TOPRIGHT", TextOffset, 0);
--Moog_TargetHudHPText:SetPoint("TOPLEFT","Moog_TargetHudName","BOTTOMLEFT", -TextOffset, -2);
--Moog_TargetHudMPText:SetPoint("TOPRIGHT","Moog_TargetHudName","BOTTOMRIGHT", TextOffset, -2);
if (MoogHUDInfo.VertPos == nil) then
MoogHUDInfo.VertPos = 50; end
Moog_Hud:SetPoint("CENTER","UIParent","CENTER", 0, MoogHUDInfo.VertPos);
Moog_HudTargetUpdate();
end
function Moog_HudOnEvent(event)
if (event == "VARIABLES_LOADED" ) then
if ( not MoogHUDInfo ) then
MoogHUDInfo = {
["SelfOn"] = true,
["Seperation"] = 0,
["VertPos"] = 50,
["TargetOn"] = true,
["MobTargetPC"] = false,
["PlayerTargetPC"] = false,
["MobClass"] = false,
["ShowIcons"] = false,
["BlinkLongCast"] = true,
["BlinkInstaCast"] = false,
["SeperateNumbers"] = false
};
end
if MoogHUDInfo.SelfOn == nil then
MoogHUDInfo.SelfOn = true; end
if MoogHUDInfo.TargetOn == nil then
MoogHUDInfo.TargetOn = true; end
if MoogHUDInfo.MobTargetPC == nil then
MoogHUDInfo.MobTargetPC = false; end
if MoogHUDInfo.PlayerTargetPC == nil then
MoogHUDInfo.PlayerTargetPC = false; end
if MoogHUDInfo.MobClass == nil then
MoogHUDInfo.MobClass = false; end
if MoogHUDInfo.ShowIcons == nil then
MoogHUDInfo.ShowIcons = false; end
if MoogHUDInfo.BlinkLongCast == nil then
MoogHUDInfo.BlinkLongCast = true; end
if MoogHUDInfo.BlinkInstaCast == nil then
MoogHUDInfo.BlinkInstaCast = false; end
if MoogHUDInfo.SeperateNumbers == nil then
MoogHUDInfo.SeperateNumbers = false; end
if MobHealthFrame then
sr_pr("Moog HUD detected MobHealth/MobInfo");
Moog_UseMobHealth = true; end
Moog_HudUpdateOptions();
elseif (event == "PLAYER_ENTERING_WORLD") then
-- Shen: Event hooks moved from OnLoad
--Seal: Added
this:RegisterEvent("PLAYER_ENTER_COMBAT");
this:RegisterEvent("PLAYER_LEAVE_COMBAT");
this:RegisterEvent("PLAYER_UPDATE_RESTING");
this:RegisterEvent("PLAYER_REGEN_DISABLED");
this:RegisterEvent("PLAYER_REGEN_ENABLED");
this:RegisterEvent("PARTY_LEADER_CHANGED");
this:RegisterEvent("PARTY_LOOT_METHOD_CHANGED");
--Seal: End Add
this:RegisterEvent("PLAYER_COMBO_POINTS");
this:RegisterEvent("UNIT_AURA");
this:RegisterEvent("UNIT_HEALTH");
this:RegisterEvent("UNIT_MAXHEALTH");
this:RegisterEvent("UNIT_MANA");
this:RegisterEvent("UNIT_RAGE");
this:RegisterEvent("UNIT_FOCUS");
this:RegisterEvent("UNIT_ENERGY");
this:RegisterEvent("UNIT_MAXMANA");
this:RegisterEvent("UNIT_MAXRAGE");
this:RegisterEvent("UNIT_MAXFOCUS");
this:RegisterEvent("UNIT_MAXENERGY");
this:RegisterEvent("UNIT_NAME_UPDATE");
this:RegisterEvent("UNIT_DISPLAYPOWER");
this:RegisterEvent("PARTY_MEMBERS_CHANGED");
--Seal: Added
this:RegisterEvent("UNIT_PVP_UPDATE");
--Seal: End Add
Moog_HealthHud:SetVertexColor(0, 1, 0);
Moog_HealthHud:SetAlpha(0);
Moog_ManaHud:SetAlpha(0);
Moog_ManaHudBG:SetAlpha(0);
Moog_ManaHudBG:SetTexCoord(0, 1, 0, 1);
Moog_HealthHudBG:SetAlpha(0);
Moog_HealthHudBG:SetVertexColor(0, 1, 0);
Moog_HealthHudBG:SetTexCoord(0, 1, 0, 1);
if (UnitPowerType("player") == 0) then
info = { r = 0.00, g = 0.7, b = 1.00 };
else
info = ManaBarColor[UnitPowerType("player")];
end
Moog_ManaHud:SetVertexColor(info.r, info.g, info.b);
Moog_ManaHudBG:SetVertexColor(info.r, info.g, info.b);
local p=UnitMana("player")/UnitManaMax("player");
local h = 256 * p;
Moog_ManaHud:SetHeight(h);
Moog_ManaHud:SetTexCoord(0, 1, 1-p, 1);
Moog_HudManaText:SetText(UnitMana("player").."/"..UnitManaMax("player"));
Moog_HudManaText:SetVertexColor(info.r, info.g, info.b);
if (GetNumPartyMembers() > 0) then
Moog_Player_ClassTexture:SetAlpha(1);
Moog_Player_Icon:EnableMouse(true);
else
Moog_Player_ClassTexture:SetAlpha(0.5);
Moog_Player_Icon:EnableMouse(false);
end
p=UnitHealth("player")/UnitHealthMax("player");
h = 256 * p;
Moog_HealthHud:SetHeight(h);
Moog_HealthHud:SetTexCoord(0, 1, 1-p, 1);
Moog_HudHealthText:SetText(UnitHealth("player").."/"..UnitHealthMax("player"));
Moog_HudHealthText:SetVertexColor(0, 1, 0);
local PlayerClass = UnitClass("player");
Moog_Player_ClassTexture:SetTexCoord(Moog_ClassPosRight(PlayerClass), Moog_ClassPosLeft(PlayerClass), Moog_ClassPosTop(PlayerClass), Moog_ClassPosBottom(PlayerClass));
--Seal: Added
Moog_UpdateCurrentState("player");
Moog_UpdatePvP("player");
Moog_UpdatePartyLeader();
Moog_UpdatePartyLoot();
--Seal: End Add
-- Shen: Hook added for leaving, unregistering hooks
elseif (event == "PLAYER_LEAVING_WORLD") then
this:UnregisterEvent("PLAYER_ENTER_COMBAT");
this:UnregisterEvent("PLAYER_LEAVE_COMBAT");
this:UnregisterEvent("PLAYER_UPDATE_RESTING");
this:UnregisterEvent("PLAYER_REGEN_DISABLED");
this:UnregisterEvent("PLAYER_REGEN_ENABLED");
this:UnregisterEvent("PARTY_LEADER_CHANGED");
this:UnregisterEvent("PARTY_LOOT_METHOD_CHANGED");
this:UnregisterEvent("PLAYER_COMBO_POINTS");
this:UnregisterEvent("UNIT_AURA");
this:UnregisterEvent("UNIT_HEALTH");
this:UnregisterEvent("UNIT_MAXHEALTH");
this:UnregisterEvent("UNIT_MANA");
this:UnregisterEvent("UNIT_RAGE");
this:UnregisterEvent("UNIT_FOCUS");
this:UnregisterEvent("UNIT_ENERGY");
this:UnregisterEvent("UNIT_MAXMANA");
this:UnregisterEvent("UNIT_MAXRAGE");
this:UnregisterEvent("UNIT_MAXFOCUS");
this:UnregisterEvent("UNIT_MAXENERGY");
this:UnregisterEvent("UNIT_NAME_UPDATE");
this:UnregisterEvent("UNIT_DISPLAYPOWER");
this:UnregisterEvent("PARTY_MEMBERS_CHANGED");
this:UnregisterEvent("UNIT_PVP_UPDATE");
elseif (event == "UNIT_DISPLAYPOWER") then
local info = {};
if (arg1 == "player" or arg1 == "target") then
if (UnitPowerType(arg1) == 0) then
info = { r = 0.00, g = 0.7, b = 1.00 };
else
info = ManaBarColor[UnitPowerType(arg1)];
end
if (arg1 == "player") then
Moog_ManaHud:SetVertexColor(info.r, info.g, info.b);
Moog_ManaHudBG:SetVertexColor(info.r, info.g, info.b);
else
Moog_TargetHudMPText:SetTextColor(info.r, info.g, info.b);
end
end
elseif (event == "PLAYER_COMBO_POINTS") then
local points = GetComboPoints();
if (points > 0) then
Moog_HudCombo:SetText(points);
else
Moog_HudCombo:SetText("");
end
elseif (event == "UNIT_AURA" and arg1 == "target") then
Moog_HudTargetAuras();
elseif (event == "UNIT_HEALTH" or event == "UNIT_MAXHEALTH") then
if (arg1=="player") then
if UnitHealthMax("player")==0 then return; end
local p=UnitHealth("player")/UnitHealthMax("player");
local h = 256 * p;
Moog_HealthHud:SetHeight(h);
Moog_HealthHud:SetTexCoord(0, 1, 1-p, 1);
if (UnitIsDeadOrGhost("player")) then
Moog_HudHealthText:SetTextColor(0.7, 0.7, 0.7);
Moog_HudHealthText:SetText("Dead");
else
Moog_HudHealthText:SetTextColor(0, 1, 0);
Moog_HudHealthText:SetText(UnitHealth("player").."/"..UnitHealthMax("player"));
end
elseif (arg1 == "target") then
if (UnitIsDeadOrGhost("target")) then
Moog_TargetHudHPText:SetTextColor(0.7, 0.7, 0.7);
else
Moog_TargetHudHPText:SetTextColor(1, 0, 0);
end
if (UnitIsTapped("target") and not UnitIsTappedByPlayer("target")) then
Moog_TargetHudName:SetTextColor(0.5, 0.5, 0.5);
end
-- Moog_TargetHudHPPerc:SetText(ceil((UnitHealth("target") / UnitHealthMax("target")) * 100).."%");
if UnitIsDeadOrGhost("target") then
Moog_TargetHudHPText:SetText("Dead");
elseif ((UnitInParty("target") or UnitIsUnit("target","pet")) and (MoogHUDInfo.PlayerTargetPC == false)) then
Moog_TargetHudHPText:SetText(UnitHealth("target").."/"..UnitHealthMax("target"));
else
if (Moog_UseMobHealth and (MoogHUDInfo.MobTargetPC == false)) then
Moog_TargetHudHPText:SetText(Moog_MobHealth_GetTargetCurHP().."/"..Moog_MobHealth_GetTargetMaxHP());
else
Moog_TargetHudHPText:SetText(ceil((UnitHealth("target") / UnitHealthMax("target")) * 100).."%");
end
end
end
elseif (event == "PARTY_MEMBERS_CHANGED") then
--sr_pr(GetNumPartyMembers());
if (GetNumPartyMembers() > 0) then
Moog_Player_ClassTexture:SetAlpha(1);
Moog_Player_Icon:EnableMouse(true);
else
Moog_Player_ClassTexture:SetAlpha(0.5);
Moog_Player_Icon:EnableMouse(false);
end
Moog_UpdatePartyLeader();
Moog_UpdatePartyLoot();
elseif (event == "UNIT_NAME_UPDATE") then
if (arg1=="target") then
Moog_HudTargetUpdate();
end
else
if (arg1=="player") then
if UnitManaMax("player")==0 then return; end
local p=UnitMana("player")/UnitManaMax("player");
local h = 256 * p;
Moog_ManaHud:SetHeight(h);
Moog_ManaHud:SetTexCoord(0, 1, 1-p, 1);
Moog_HudManaText:SetText(UnitMana("player").."/"..UnitManaMax("player"));
elseif (arg1 == "target") then
if ((UnitIsPlayer("target") and (MoogHUDInfo.PlayerTargetPC == false)) or ((not UnitIsPlayer("target")) and (MoogHUDInfo.MobTargetPC == false))) then
Moog_TargetHudMPText:SetText(UnitMana("target").."/"..UnitManaMax("target"));
else
Moog_TargetHudMPText:SetText(ceil((UnitMana("target") / UnitManaMax("target")) * 100).."%");
end
end
end
--Seal: Added
if ( event == "PLAYER_ENTER_COMBAT" or event == "PLAYER_REGEN_DISABLED") then
this.inCombat = 1;
Moog_UpdateCurrentState("player");
return;
end
if ( event == "PLAYER_UPDATE_RESTING" ) then
Moog_UpdateCurrentState("player");
return;
end
if ( event == "PLAYER_LEAVE_COMBAT" or event == "PLAYER_REGEN_ENABLED") then
this.inCombat = 0;
Moog_UpdateCurrentState("player");
return;
end
if (event == "UNIT_PVP_UPDATE") then
if ((arg1 == "target") or (arg1 == "player")) then
Moog_UpdatePvP(arg1); end
end
if (event == "PARTY_LEADER_CHANGED") then
Moog_UpdatePartyLeader();
return;
end
if (event == "PARTY_LOOT_METHOD_CHANGED") then
Moog_UpdatePartyLoot();
end
--Seal: End Add
end
function Moog_PlayerDropDown_OnLoad()
UIDropDownMenu_Initialize(this, Moog_PlayerDropDown_Initialize, "MENU");
end
function Moog_PlayerDropDown_Initialize()
UnitPopup_ShowMenu(Moog_Player_DropDown, "SELF", "player");
end
function Moog_Player_MouseUp(button)
if (button == "RightButton") then
ToggleDropDownMenu(1, nil, Moog_Player_DropDown, "Moog_Player_ClassTexture", 0, 0); end
end
function Moog_Player_MouseDown(button)
end
function Moog_TargetDropDown_OnLoad()
UIDropDownMenu_Initialize(this, Moog_TargetDropDown_Initialize, "MENU");
end
function Moog_TargetDropDown_Initialize()
local menu = nil;
if (UnitIsEnemy("target", "player")) then
return;
end
if (UnitIsUnit("target", "player")) then
menu = "SELF";
elseif (UnitIsUnit("target", "pet")) then
menu = "PET";
elseif (UnitIsPlayer("target")) then
if (UnitInParty("target")) then
menu = "PARTY";
else
menu = "PLAYER";
end
end
if (menu) then
UnitPopup_ShowMenu(Moog_Target_DropDown, menu, "target");
end
end
function Moog_Target_MouseUp(button)
if (button == "RightButton") then
ToggleDropDownMenu(1, nil, Moog_Target_DropDown, "Moog_Target_ClassTexture", 0, 0); end
end
function Moog_Target_MouseDown(button)
end
---------------------------------
--Class Icon Location Functions--
---------------------------------
function Moog_ClassPosRight (class)
if(class==MOOGHUD_CLASS_WARRIOR) then return 0; end
if(class==MOOGHUD_CLASS_MAGE) then return 0.25; end
if(class==MOOGHUD_CLASS_ROGUE) then return 0.5; end
if(class==MOOGHUD_CLASS_DRUID) then return 0.75; end
if(class==MOOGHUD_CLASS_HUNTER) then return 0; end
if(class==MOOGHUD_CLASS_SHAMAN) then return 0.25; end
if(class==MOOGHUD_CLASS_PRIEST) then return 0.5; end
if(class==MOOGHUD_CLASS_WARLOCK) then return 0.75; end
if(class==MOOGHUD_CLASS_PALADIN) then return 0; end
return nil;
end
function Moog_ClassPosLeft (class)
if(class==MOOGHUD_CLASS_WARRIOR) then return 0.25; end
if(class==MOOGHUD_CLASS_MAGE) then return 0.5; end
if(class==MOOGHUD_CLASS_ROGUE) then return 0.75; end
if(class==MOOGHUD_CLASS_DRUID) then return 1; end
if(class==MOOGHUD_CLASS_HUNTER) then return 0.25; end
if(class==MOOGHUD_CLASS_SHAMAN) then return 0.5; end
if(class==MOOGHUD_CLASS_PRIEST) then return 0.75; end
if(class==MOOGHUD_CLASS_WARLOCK) then return 1; end
if(class==MOOGHUD_CLASS_PALADIN) then return 0.25; end
return nil;
end
function Moog_ClassPosTop (class)
if(class==MOOGHUD_CLASS_WARRIOR) then return 0; end
if(class==MOOGHUD_CLASS_MAGE) then return 0; end
if(class==MOOGHUD_CLASS_ROGUE) then return 0; end
if(class==MOOGHUD_CLASS_DRUID) then return 0; end
if(class==MOOGHUD_CLASS_HUNTER) then return 0.25; end
if(class==MOOGHUD_CLASS_SHAMAN) then return 0.25; end
if(class==MOOGHUD_CLASS_PRIEST) then return 0.25; end
if(class==MOOGHUD_CLASS_WARLOCK) then return 0.25; end
if(class==MOOGHUD_CLASS_PALADIN) then return 0.5; end
return nil;
end
function Moog_ClassPosBottom (class)
if(class==MOOGHUD_CLASS_WARRIOR) then return 0.25; end
if(class==MOOGHUD_CLASS_MAGE) then return 0.25; end
if(class==MOOGHUD_CLASS_ROGUE) then return 0.25; end
if(class==MOOGHUD_CLASS_DRUID) then return 0.25; end
if(class==MOOGHUD_CLASS_HUNTER) then return 0.5; end
if(class==MOOGHUD_CLASS_SHAMAN) then return 0.5; end
if(class==MOOGHUD_CLASS_PRIEST) then return 0.5; end
if(class==MOOGHUD_CLASS_WARLOCK) then return 0.5; end
if(class==MOOGHUD_CLASS_PALADIN) then return 0.75; end
return nil;
end