initial commit
This commit is contained in:
Executable
+178
@@ -0,0 +1,178 @@
|
||||
-- Wrap OutfitDisplayFrame with our "improvements"
|
||||
FishingBuddy.OutfitFrame = {};
|
||||
|
||||
local function StylePoints(outfit)
|
||||
local isp = FishingBuddy.OutfitManager.ItemStylePoints;
|
||||
local points = 0;
|
||||
if ( outfit )then
|
||||
for slot in outfit do
|
||||
if ( outfit[slot].item ) then
|
||||
local _,_,check, enchant = string.find(outfit[slot].item,
|
||||
"^(%d+):(%d+)");
|
||||
points = points + isp(check, enchant);
|
||||
end
|
||||
end
|
||||
end
|
||||
return points;
|
||||
end
|
||||
|
||||
local match;
|
||||
local function ItemBonusPoints(item)
|
||||
local points = 0;
|
||||
if ( item and item ~= "" ) then
|
||||
if ( not match ) then
|
||||
match = FishingBuddy.GetFishingSkillName().." %+(%d+)";
|
||||
end
|
||||
FishingOutfitTooltip:SetHyperlink("item:"..item);
|
||||
local bodyslot = FishingOutfitTooltipTextLeft2:GetText();
|
||||
local textline = 2;
|
||||
while (bodyslot) do
|
||||
local _,_,bonus = string.find(bodyslot, match);
|
||||
if bonus then
|
||||
points = points + bonus;
|
||||
end
|
||||
textline = textline + 1;
|
||||
bodyslot = getglobal("FishingOutfitTooltipTextLeft"..textline):GetText();
|
||||
end
|
||||
-- See if the Eternium Fishing Line has been applied
|
||||
local _,_,check, enchant = string.find(item, "^(%d+):(%d+)");
|
||||
if ( enchant == "2603" ) then
|
||||
points = points + 5;
|
||||
end
|
||||
end
|
||||
return points;
|
||||
end
|
||||
|
||||
local function BonusPoints(outfit)
|
||||
local points = 0;
|
||||
if ( outfit )then
|
||||
for slot in outfit do
|
||||
points = points + ItemBonusPoints(outfit[slot].item);
|
||||
end
|
||||
end
|
||||
return points;
|
||||
end
|
||||
|
||||
local function UpdateSwitchButton(outfit)
|
||||
if ( outfit and not OutfitDisplayFrame_SwitchWillFail(FishingOutfitFrame, outfit) ) then
|
||||
FishingOutfitSwitchButton:Enable();
|
||||
else
|
||||
FishingOutfitSwitchButton:Disable();
|
||||
end
|
||||
end
|
||||
|
||||
FishingBuddy.OutfitFrame.OutfitChanged = function(button)
|
||||
local outfit = OutfitDisplayFrame_GetOutfit(FishingOutfitFrame);
|
||||
if ( outfit ) then
|
||||
FishingBuddy.SetOutfit(outfit);
|
||||
end
|
||||
local points = BonusPoints(outfit);
|
||||
if ( points >= 0 ) then
|
||||
points = "+"..points;
|
||||
else
|
||||
points = 0 - points;
|
||||
points = "-"..points;
|
||||
end
|
||||
FishingOutfitSkill:SetText(FishingBuddy.CONFIG_SKILL_TEXT..points);
|
||||
points = StylePoints(outfit);
|
||||
local pstring;
|
||||
if ( points == 1 ) then
|
||||
pstring = FishingBuddy.POINT;
|
||||
else
|
||||
pstring = FishingBuddy.POINTS;
|
||||
end
|
||||
FishingOutfitStyle:SetText(FishingBuddy.CONFIG_STYLISH_TEXT..points.." "..pstring);
|
||||
UpdateSwitchButton(outfit);
|
||||
FishingOutfitFrame.valid = true;
|
||||
end
|
||||
|
||||
FishingBuddy.OutfitFrame.OnLoad = function()
|
||||
-- Handle the override
|
||||
if ( OutfitDisplayFrame_OnLoad ) then
|
||||
OutfitDisplayFrame_OnLoad();
|
||||
FishingOutfitSkill.tooltip = FishingBuddy.CONFIG_SKILL_INFO;
|
||||
FishingOutfitStyle.tooltip = FishingBuddy.CONFIG_STYLISH_INFO;
|
||||
FishingOutfitSwitchButton:SetText(FishingBuddy.SWITCHOUTFIT);
|
||||
FishingOutfitFrame.OutfitChanged = FishingBuddy.OutfitFrame.OutfitChanged;
|
||||
else
|
||||
FishingBuddy.DisableSubFrame("FishingOutfitFrame");
|
||||
end
|
||||
end
|
||||
|
||||
FishingBuddy.OutfitFrame.OnShow = function()
|
||||
if ( not this.valid ) then
|
||||
local outfit = FishingBuddy.GetOutfit();
|
||||
OutfitDisplayFrame_SetOutfit(FishingOutfitFrame, outfit);
|
||||
FishingBuddy.OutfitFrame.OutfitChanged();
|
||||
end
|
||||
end
|
||||
|
||||
FishingBuddy.OutfitFrame.OnHide = function()
|
||||
-- FishingOutfitFrame_OutfitChanged();
|
||||
end
|
||||
|
||||
FishingBuddy.OutfitFrame.Button_OnClick = function()
|
||||
-- make sure we have the current state
|
||||
FishingBuddy.SetOutfit(OutfitDisplayFrame_GetOutfit(FishingOutfitFrame));
|
||||
FishingBuddy.OutfitFrame.Switch();
|
||||
end
|
||||
|
||||
-- only have one outfit at the moment
|
||||
-- don't switch if
|
||||
-- we can't find everything in the outfit
|
||||
-- we have saved stuff but we're not wearing everything in the outfit
|
||||
-- We don't have the outfit display frame!
|
||||
FishingBuddy.OutfitFrame.Switch = function()
|
||||
if (CursorHasItem()) then
|
||||
FishingBuddy.UIError(FishingBuddy.CURSORBUSYMSG);
|
||||
return false;
|
||||
end
|
||||
if ( OutfitDisplayFrame_IsSwapping() ) then
|
||||
FishingBuddy.UIError(OUTFITDISPLAYFRAME_TOOFASTMSG);
|
||||
return false;
|
||||
end
|
||||
|
||||
local isfishing = FishingBuddy.IsFishingPole();
|
||||
local outfit = FishingBuddy.GetOutfit();
|
||||
local waswearing = FishingBuddy.GetWasWearing();
|
||||
if ( waswearing ) then
|
||||
local msg;
|
||||
|
||||
if ( isfishing ) then
|
||||
msg = OutfitDisplayFrame_SwitchWillFail(FishingOutfitFrame, waswearing);
|
||||
else
|
||||
msg = FishingBuddy.CANTSWITCHBACK;
|
||||
FishingBuddy.SetWasWearing(nil);
|
||||
StartedFishing = nil;
|
||||
end
|
||||
|
||||
if ( msg ) then
|
||||
FishingBuddy.UIError(msg);
|
||||
return false;
|
||||
end
|
||||
local check = OutfitDisplayFrame_SwitchOutfit(waswearing);
|
||||
if ( check ) then
|
||||
FishingBuddy.SetWasWearing(nil);
|
||||
FishingBuddy.OutfitManager.CheckSwitch(false);
|
||||
end
|
||||
elseif ( outfit ) then
|
||||
local msg;
|
||||
if ( not isfishing ) then
|
||||
msg = OutfitDisplayFrame_SwitchWillFail(FishingOutfitFrame, outfit);
|
||||
else
|
||||
msg = FishingBuddy.POLEALREADYEQUIPPED;
|
||||
end
|
||||
if ( msg ) then
|
||||
FishingBuddy.UIError(msg);
|
||||
return false;
|
||||
end
|
||||
local waswearing = OutfitDisplayFrame_SwitchOutfit(outfit);
|
||||
if ( waswearing ) then
|
||||
FishingBuddy.SetWasWearing(waswearing);
|
||||
FishingBuddy.OutfitManager.CheckSwitch(true);
|
||||
end
|
||||
else
|
||||
FishingBuddy.UIError(FishingBuddy.NOOUTFITDEFINED);
|
||||
end
|
||||
return true;
|
||||
end
|
||||
Reference in New Issue
Block a user