vanilla-wow-addons – Rev 1
?pathlinks?
--------------------------------------------------------------------------
-- TitanSkills.lua
--------------------------------------------------------------------------
--[[
Titan Panel [Skills]
Plug-in for Titan Panel that displays Professions, Secondary Skills
and Weapons Skills when hovered over.
Author: Corgi - corgiwow@gmail.com
v0.09 (April 5, 2006 22:00 PST)
- fixed level change
- toc# updated for 1.10 patch
v0.08 (January 5, 2006 20:05 PST)
- added ability to toggle player's Level
- Shift-click opens Skills frame
- toc# updated for 1.9 patch
v0.07 (October 26, 2005 10:18 PST)
- toc# updated for 1.8 patch
- added Skills (Right) options (thanks Forger)
- tooltip will now popup below/above Titan bar (thanks Forger)
- added skill bonuses (e.g. Skill 10(+5)/300) (thanks Forger)
v0.06 (September 24, 2005 19:11 PST)
- toc# updated for 1.7 patch
- added French localization
v0.05 (June 13, 2005 14:30 PST)
- updated for Titan Panel 1.24
v0.04 (June 7, 2005 14:25 PST)
- toc updated for 1.5 patch
- minor french localization
v0.03 (June 6, 2005 12:35 PST)
- complete German translation by Crowley
- added transparent icon
v0.02 (June 3, 2005 20:00 PST)
- list non-passive Class Skills (ie, Rogue's Lockpicking and Poison skills)
v0.01 (May 31, 2005 2:00 PST)
- Initial Release
]]--
TITAN_SKILLS_ID = "Skills";
TITAN_SKILLS_RIGHT_ID = "SkillsRight";
TITAN_SKILLS_ICON = "Interface\\Addons\\TitanSkills\\Artwork\\TitanSkills";
--
-- OnFuctions
--
function TitanPanelSkillsButton_OnLoad()
this.registry = {
id = TITAN_SKILLS_ID,
menuText = TITAN_SKILLS_MENU_TEXT,
buttonTextFunction = "TitanPanelSkillsButton_GetButtonText",
tooltipTitle = TITAN_SKILLS_TOOLTIP,
tooltipTextFunction = "TitanPanelSkillsButton_GetTooltipText",
icon = TITAN_SKILLS_ICON,
iconWidth = 16,
savedVariables = {
ShowIcon = 1,
ShowLabelText = 1,
ShowLevel = TITAN_NIL,
}
};
this:RegisterEvent("SKILL_LINES_CHANGED");
this:RegisterEvent("PLAYER_LEVEL_UP");
end
function TitanPanelSkillsRightButton_OnLoad()
this.registry = {
id = TITAN_SKILLS_RIGHT_ID,
menuText = TITAN_SKILLS_RIGHT_MENU_TEXT,
buttonTextFunction = "TitanPanelSkillsButton_GetButtonText",
tooltipTitle = TITAN_SKILLS_TOOLTIP,
tooltipTextFunction = "TitanPanelSkillsButton_GetTooltipText",
icon = TITAN_SKILLS_ICON,
iconWidth = 16,
};
end
function TitanPanelSkillsButton_OnEvent()
TitanPanelButton_UpdateButton(TITAN_SKILLS_ID);
TitanPanelButton_UpdateTooltip();
end
-- CROWGOBLIN ADDITION
function TitanPanelSkillsButton_OnClick()
if (IsShiftKeyDown()) then
ToggleCharacter("SkillFrame");
end
end
--
-- Titan functions
--
function TitanPanelSkillsButton_GetButtonText(id)
local buttonRichText = "";
if ( TitanGetVar(TITAN_SKILLS_ID,"ShowLevel") ~= nil ) then
buttonRichText = " "..TitanUtils_GetHighlightText(UnitLevel("player"));
end
if ( id == TITAN_SKILLS_RIGHT_ID ) then
return "", "";
else
return TITAN_SKILLS_BUTTON_LABEL, buttonRichText;
end
end
function TitanPanelSkillsButton_GetTooltipText()
local tooltipRichText = "";
local SkillList = TitanPanelSkills_BuildSkillList();
local numSkills = table.getn(SkillList);
local i = 0;
local currentHeader = "";
local prevHeader = "";
for i=1, numSkills do
currentHeader = SkillList[i].stype;
if ( SkillList[i].stype == TRADE_SKILLS or SkillList[i].stype == TITAN_SKILLS_SECONDARY_TEXT or SkillList[i].stype == TITAN_SKILLS_WEAPON_TEXT or SkillList[i].stype == TITAN_SKILLS_CLASS_TEXT ) then
if ( currentHeader ~= prevHeader and SkillList[i].maxrank > 1 ) then
tooltipRichText = tooltipRichText..TitanUtils_GetNormalText(SkillList[i].stype).."\n";
prevHeader = currentHeader;
end
if ( SkillList[i].maxrank > 1 ) then
tooltipRichText = tooltipRichText..TitanUtils_GetGreenText(SkillList[i].name)..":".."\t"..SkillList[i].rank;
if ( SkillList[i].rankbonus > 0 ) then
tooltipRichText = tooltipRichText.."(+"..SkillList[i].rankbonus..")";
end
tooltipRichText = tooltipRichText.."/"..SkillList[i].maxrank.."\n";
end
end
end
-- remove the last \n
tooltipRichText = string.sub(tooltipRichText, 1, string.len(tooltipRichText)-1);
return tooltipRichText;
end
--
-- create menus
--
function TitanPanelRightClickMenu_PrepareSkillsMenu()
TitanPanelRightClickMenu_PrepareMenu(TITAN_SKILLS_ID);
end
function TitanPanelRightClickMenu_PrepareSkillsRightMenu()
TitanPanelRightClickMenu_PrepareMenu(TITAN_SKILLS_RIGHT_ID);
end
function TitanPanelRightClickMenu_PrepareMenu(id)
local info = {};
if ( UIDROPDOWNMENU_MENU_LEVEL == 2 ) then
if ( UIDROPDOWNMENU_MENU_VALUE == "DisplayAbout" ) then
info = {};
info.text = TITAN_SKILLS_ABOUT_POPUP_TEXT;
info.value = "AboutTextPopUP";
info.notClickable = 1;
info.isTitle = 0;
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
end
return;
end
TitanPanelRightClickMenu_AddTitle(TitanPlugins[id].menuText);
if ( id == TITAN_SKILLS_ID ) then
info = {};
info.text = TITAN_SKILLS_SHOW_LEVEL_TEXT;
info.value = "ShowLevelToggle";
info.func = TitanPanelSkills_ShowLevelToggle;
info.checked = TitanGetVar(TITAN_SKILLS_ID, "ShowLevel");
UIDropDownMenu_AddButton(info, UIDROPDOWNMENU_MENU_LEVEL);
TitanPanelRightClickMenu_AddToggleLabelText(id);
TitanPanelRightClickMenu_AddCommand(TITAN_PANEL_MENU_HIDE, id, TITAN_PANEL_MENU_FUNC_HIDE);
end
-- info about plugin
info = {};
info.text = TITAN_SKILLS_ABOUT_TEXT;
info.value = "DisplayAbout";
info.hasArrow = 1;
UIDropDownMenu_AddButton(info);
end
--
-- Skills functions
--
function TitanPanelSkills_BuildSkillList()
local skillName, isHeader, isExpanded, skillRank, numTempPoints, skillModifier, skillMaxRank, isAbandonable;
local stepCost, rankCost, minLevel, skillCostType;
local skillType = "";
local skillIndex = 0;
local SkillList = { };
local numSkills = GetNumSkillLines();
for skillIndex=1, numSkills do
skillName, isHeader, isExpanded, skillRank, numTempPoints, skillModifier, skillMaxRank, isAbandonable, stepCost, rankCost, minLevel, skillCostType = GetSkillLineInfo(skillIndex);
if ( isHeader ) then
skillType = skillName;
else
local entry = { name = skillName, stype = skillType, rank = skillRank, maxrank = skillMaxRank, rankbonus = skillModifier };
table.insert(SkillList, entry);
end
end
--TitanPanelSkills_DisplayTheList(SkillList);
return SkillList;
end
function TitanPanelSkills_ShowLevelToggle()
if ( TitanGetVar(TITAN_SKILLS_ID, "ShowLevel") ) then
TitanSetVar(TITAN_SKILLS_ID, "ShowLevel", nil);
else
TitanSetVar(TITAN_SKILLS_ID, "ShowLevel", 1);
end
TitanPanelButton_UpdateButton(TITAN_SKILLS_ID);
end
--
-- debug
--
function TitanPanelSkills_DisplayTheList(thelist)
local i = 0;
for i=1, table.getn(thelist) do
TitanPanelSkills_ChatPrint(i..":"..thelist[i].name..":"..thelist[i].stype.."\n");
end
end
function TitanPanelSkills_ChatPrint(msg)
DEFAULT_CHAT_FRAME:AddMessage(msg);
end
Generated by GNU Enscript 1.6.5.90.