vanilla-wow-addons – Rev 1
?pathlinks?
TITAN_REGEN_ID = "TitanRegen"
TITAN_REGEN_HP_FORMAT = "%d";
TITAN_REGEN_HP_FORMAT_PERCENT = "%.2f";
TITAN_REGEN_MP_FORMAT = "%d";
TITAN_REGEN_MP_FORMAT_PERCENT = "%.2f";
TITAN_Regen_FREQUENCY = 1;
TITAN_RegenCurrHealth = 0;
TITAN_RegenCurrMana = 0;
TITAN_RegenMP = 0;
TITAN_RegenHP = 0;
TITAN_RegenCheckedManaState = 0;
TITAN_RegenMaxHPRate = 0;
TITAN_RegenMinHPRate = 9999;
TITAN_RegenMaxMPRate = 0;
TITAN_RegenMinMPRate = 9999;
TITAN_RegenMPDuringCombat = 0;
TITAN_RegenMPCombatTrack = 0;
function TitanPanelTitanRegenButton_OnLoad()
this.registry = {
id = TITAN_REGEN_ID,
builtIn = 1,
version = TITAN_VERSION,
menuText = TITAN_REGEN_MENU_TEXT,
buttonTextFunction = "TitanPanelTitanRegenButton_GetButtonText",
tooltipTitle = TITAN_REGEN_MENU_TOOLTIP_TITLE,
tooltipTextFunction = "TitanPanelTitanRegenButton_GetTooltipText",
savedVariables = {
ShowLabelText = 1,
ShowMPRegen = 1,
ShowHPRegen = 1,
ShowPercentage = TITAN_NIL,
ShowColoredText = TITAN_NIL
}
};
this.timer = 0;
this:RegisterEvent("UNIT_HEALTH");
this:RegisterEvent("UNIT_MANA");
this:RegisterEvent("PLAYER_ENTERING_WORLD");
this:RegisterEvent("PLAYER_REGEN_DISABLED");
this:RegisterEvent("PLAYER_REGEN_ENABLED");
end
function TitanPanelTitanRegenButton_OnEvent()
if ( event == "PLAYER_ENTERING_WORLD") then
if (UnitManaMax("player") == 0) then
TitanSetVar(TITAN_REGEN_ID, "ShowMPRegen", 0);
end
end
if ( event == "PLAYER_REGEN_DISABLED") then
TITAN_RegenMPDuringCombat = 0;
TITAN_RegenMPCombatTrack = 1;
end
if ( event == "PLAYER_REGEN_ENABLED") then
TITAN_RegenMPCombatTrack = 0;
end
local currHealth = 0;
local currMana = 0;
local runUpdate = 0;
if (TitanGetVar(TITAN_REGEN_ID,"ShowHPRegen") == 1) then
if ( event == "UNIT_HEALTH" and arg1 == "player" ) then
currHealth = UnitHealth("player");
runUpdate = 1;
if ( currHealth > TITAN_RegenCurrHealth and TITAN_RegenCurrHealth ~= 0 ) then
TITAN_RegenHP = currHealth-TITAN_RegenCurrHealth;
if (TITAN_RegenHP > TITAN_RegenMaxHPRate) then
TITAN_RegenMaxHPRate = TITAN_RegenHP;
end
if (TITAN_RegenHP < TITAN_RegenMinHPRate or TITAN_RegenMinHPRate == 9999) then
TITAN_RegenMinHPRate = TITAN_RegenHP;
end
end
TITAN_RegenCurrHealth = currHealth;
end
end
if (TitanGetVar(TITAN_REGEN_ID,"ShowMPRegen") == 1) then
if ( event == "UNIT_MANA" and arg1 == "player" ) then
currMana = UnitMana("player");
runUpdate = 1;
if ( currMana > TITAN_RegenCurrMana and TITAN_RegenCurrMana ~= 0 ) then
TITAN_RegenMP = currMana-TITAN_RegenCurrMana;
if (TITAN_RegenMPCombatTrack == 1) then
TITAN_RegenMPDuringCombat = TITAN_RegenMPDuringCombat + TITAN_RegenMP;
end
if (TITAN_RegenMP > TITAN_RegenMaxMPRate) then
TITAN_RegenMaxMPRate = TITAN_RegenMP;
end
if (TITAN_RegenMP < TITAN_RegenMinMPRate or TITAN_RegenMinMPRate == 9999) then
TITAN_RegenMinMPRate = TITAN_RegenMP;
end
end
TITAN_RegenCurrMana = currMana;
end
end
if (runUpdate == 1) then
TitanPanelButton_UpdateButton(TITAN_REGEN_ID);
TitanPanelButton_UpdateTooltip();
end
end
function TitanPanelTitanRegenButton_GetButtonText(id)
local labelTextHP = "";
local valueTextHP = "";
local labelTextMP = "";
local valueTextMP = "";
local OutputStr = "";
if UnitHealth("player") == UnitHealthMax("player") then
TITAN_RegenHP = 0;
end
if UnitMana("player") == UnitManaMax("player") then
TITAN_RegenMP = 0;
end
-- safety in case both are off, then cant ever turn em on
if (TitanGetVar(TITAN_REGEN_ID,"ShowHPRegen") == nil and TitanGetVar(TITAN_REGEN_ID,"ShowMPRegen") == nil) then
TitanSetVar(TITAN_REGEN_ID,"ShowHPRegen",1);
end
if (TitanGetVar(TITAN_REGEN_ID,"ShowHPRegen") == 1) then
labelTextHP = "HP: ";
if (TitanGetVar(TITAN_REGEN_ID,"ShowPercentage") == 1) then
valueTextHP = format(TITAN_REGEN_HP_FORMAT_PERCENT, (TITAN_RegenHP/UnitHealthMax("player"))*100);
else
valueTextHP = format(TITAN_REGEN_HP_FORMAT, TITAN_RegenHP);
end
if (TitanGetVar(TITAN_REGEN_ID, "ShowColoredText")) then
valueTextHP = TitanUtils_GetGreenText(valueTextHP);
else
valueTextHP = TitanUtils_GetHighlightText(valueTextHP);
end
end
if (TitanGetVar(TITAN_REGEN_ID,"ShowMPRegen") == 1) then
labelTextMP = "MP: ";
if (TitanGetVar(TITAN_REGEN_ID,"ShowPercentage") == 1) then
valueTextMP = format(TITAN_REGEN_MP_FORMAT_PERCENT, (TITAN_RegenMP/UnitManaMax("player"))*100);
else
valueTextMP = format(TITAN_REGEN_MP_FORMAT, TITAN_RegenMP);
end
if (TitanGetVar(TITAN_REGEN_ID, "ShowColoredText")) then
valueTextMP = TitanRegenTemp_GetColoredTextRGB(valueTextMP, 0.0, 0.0, 1.0);
else
valueTextMP = TitanUtils_GetHighlightText(valueTextMP);
end
end
-- supports turning off labels
return labelTextHP, valueTextHP, labelTextMP, valueTextMP;
end
function TitanPanelTitanRegenButton_GetTooltipText()
local minHP = TITAN_RegenMinHPRate;
local minMP = TITAN_RegenMinMPRate;
if minHP == 9999 then minHP = 0 end;
if minMP == 9999 then minMP = 0 end;
if (TitanGetVar(TITAN_REGEN_ID,"ShowMPRegen") == 1) then
local regenPercent;
regenPercent = (TITAN_RegenMPDuringCombat/UnitManaMax("player"))*100;
return ""..
format(TITAN_REGEN_TOOLTIP1, UnitHealth("player"),UnitHealthMax("player"),UnitHealthMax("player")-UnitHealth("player")).."\n"..
format(TITAN_REGEN_TOOLTIP2, UnitMana("player"),UnitManaMax("player"),UnitManaMax("player")-UnitMana("player")).."\n"..
format(TITAN_REGEN_TOOLTIP3, TITAN_RegenMaxHPRate).."\n"..
format(TITAN_REGEN_TOOLTIP4, minHP).."\n"..
format(TITAN_REGEN_TOOLTIP5, TITAN_RegenMaxMPRate).."\n"..
format(TITAN_REGEN_TOOLTIP6, minMP).."\n"..
format(TITAN_REGEN_TOOLTIP7, TITAN_RegenMPDuringCombat, regenPercent).."\n"
;
else
return ""..
format(TITAN_REGEN_TOOLTIP1, UnitHealth("player"),UnitHealthMax("player"),UnitHealthMax("player")-UnitHealth("player")).."\n"..
format(TITAN_REGEN_TOOLTIP3, TITAN_RegenMaxHPRate).."\n"..
format(TITAN_REGEN_TOOLTIP4, minHP).."\n"
;
end
end
function TitanPanelRightClickMenu_PrepareTitanRegenMenu()
local id = TITAN_REGEN_ID;
local info;
TitanPanelRightClickMenu_AddTitle(TitanPlugins[id].menuText);
info = {};
info.text = TITAN_REGEN_MENU_SHOW2;
info.func = TitanRegen_ShowHPRegen;
info.checked = TitanGetVar(TITAN_REGEN_ID,"ShowHPRegen");
UIDropDownMenu_AddButton(info);
info = {};
info.text = TITAN_REGEN_MENU_SHOW3;
info.func = TitanRegen_ShowMPRegen;
info.checked = TitanGetVar(TITAN_REGEN_ID,"ShowMPRegen");
UIDropDownMenu_AddButton(info);
info = {};
info.text = TITAN_REGEN_MENU_SHOW4;
info.func = TitanRegen_ShowPercentage;
info.checked = TitanGetVar(TITAN_REGEN_ID,"ShowPercentage");
UIDropDownMenu_AddButton(info);
TitanPanelRightClickMenu_AddSpacer();
info = {};
info.text = TITAN_PANEL_MENU_SHOW_COLORED_TEXT;
info.func = TitanRegen_ShowColoredText;
info.checked = TitanGetVar(TITAN_REGEN_ID, "ShowColoredText");
UIDropDownMenu_AddButton(info);
TitanPanelRightClickMenu_AddToggleLabelText("TitanRegen");
TitanPanelRightClickMenu_AddCommand(TITAN_PANEL_MENU_HIDE, id, TITAN_PANEL_MENU_FUNC_HIDE);
end
function TitanRegen_UpdateSettings()
-- safety in case both are off, then cant ever turn em on
if (TitanGetVar(TITAN_REGEN_ID,"ShowHPRegen") == nil and TitanGetVar(TITAN_REGEN_ID,"ShowMPRegen") == nil) then
TitanSetVar(TITAN_REGEN_ID,"ShowHPRegen",1);
end
TitanPanelButton_UpdateButton(TITAN_REGEN_ID);
end
function TitanRegen_ShowHPRegen()
TitanToggleVar(TITAN_REGEN_ID, "ShowHPRegen");
TitanRegen_UpdateSettings();
end
function TitanRegen_ShowMPRegen()
TitanToggleVar(TITAN_REGEN_ID, "ShowMPRegen");
TitanRegen_UpdateSettings();
end
function TitanRegen_ShowPercentage()
TitanToggleVar(TITAN_REGEN_ID, "ShowPercentage");
TitanRegen_UpdateSettings();
end
function TitanRegen_ShowColoredText()
TitanToggleVar(TITAN_REGEN_ID, "ShowColoredText");
TitanRegen_UpdateSettings();
end
function TitanRegenTemp_GetColoredTextRGB(text, r, g, b)
if (text and r and g and b) then
local redColorCode = format("%02x", r * 255);
local greenColorCode = format("%02x", g * 255);
local blueColorCode = format("%02x", b * 255);
local colorCode = "|cff"..redColorCode..greenColorCode..blueColorCode;
return colorCode..text..FONT_COLOR_CODE_CLOSE;
end
end
Generated by GNU Enscript 1.6.5.90.