Reupload + some bug fixes
This commit is contained in:
@@ -0,0 +1,140 @@
|
||||
-- Interface with the Outfitter addon by mundocani
|
||||
|
||||
local function OutfitterSwitch(outfitName)
|
||||
-- this uses a static string of "Fishing" *not* the translation
|
||||
local vOut, vCat, vInd = Outfitter_FindOutfitByStatID("Fishing");
|
||||
if ( vOut ) then
|
||||
local wasPole = FishingBuddy.API.IsFishingPole();
|
||||
if ( wasPole ) then
|
||||
Outfitter_RemoveOutfit(vOut);
|
||||
else
|
||||
vOut.Disabled = nil;
|
||||
Outfitter_WearOutfit(vOut, vCat);
|
||||
end
|
||||
Outfitter_Update(true);
|
||||
return wasPole;
|
||||
end
|
||||
end
|
||||
|
||||
local function CleanOutDuplicates(vName)
|
||||
local count = 0;
|
||||
for vCategoryID, vOutfits in gOutfitter_Settings.Outfits do
|
||||
for vOutfitIndex, vOutfit in vOutfits do
|
||||
if ( vOutfit.Name == vName ) then
|
||||
count = count + 1;
|
||||
end
|
||||
end
|
||||
end
|
||||
if ( count > 0 ) then
|
||||
-- nuke all of the outfits named 'Fishing Buddy' since they're
|
||||
-- likely wrong, so that we can create a new 'good' one
|
||||
local vOut,_,_ = Outfitter_FindOutfitByName(vName);
|
||||
while ( vOut ) do
|
||||
Outfitter_DeleteOutfit(vOut);
|
||||
vOut,_,_ = Outfitter_FindOutfitByName(vName);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function OutfitterInitialize()
|
||||
if ( gOutfitter_Settings ) then
|
||||
local vName = "Fishing Buddy";
|
||||
CleanOutDuplicates(vName);
|
||||
-- create the default fishing outfit, if it doesn't exist
|
||||
local vOut,_,_ = Outfitter_FindOutfitByStatID("Fishing");
|
||||
if ( not vOut ) then
|
||||
vOut = Outfitter_GenerateSmartOutfit(vName, "Fishing", OutfitterItemList_GetEquippableItems(true));
|
||||
if ( vOut ) then
|
||||
local vCategoryID = Outfitter_AddOutfit(vOut);
|
||||
-- we're done
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- calculate scores based on Outfitter
|
||||
local function StylePoints(outfit)
|
||||
local isp = FishingBuddy.OutfitManager.ItemStylePoints;
|
||||
local points = 0;
|
||||
if ( outfit )then
|
||||
for slot in outfit.Items do
|
||||
points = points + isp(outfit.Items[slot].Code,
|
||||
outfit.Items[slot].EnchantCode);
|
||||
end
|
||||
end
|
||||
return points;
|
||||
end
|
||||
|
||||
local function BonusPoints(outfit, vStatID)
|
||||
local points = 0;
|
||||
if ( outfit )then
|
||||
for slot in outfit.Items do
|
||||
if ( outfit.Items[slot][vStatID] ) then
|
||||
points = points + outfit.Items[slot][vStatID];
|
||||
end
|
||||
-- Enternium Fishing Line
|
||||
if ( outfit.Items[slot].EnchantCode == 2603 ) then
|
||||
points = points + 5;
|
||||
end
|
||||
end
|
||||
end
|
||||
return points;
|
||||
end
|
||||
|
||||
-- Outfitter patches ( not needed in 1.2)
|
||||
if ( not Outfitter_FindOutfitByStatID ) then
|
||||
Outfitter_FindOutfitByStatID = function(pStatID)
|
||||
if not pStatID or pStatID == "" then
|
||||
return nil;
|
||||
end
|
||||
|
||||
for vCategoryID, vOutfits in gOutfitter_Settings.Outfits do
|
||||
for vOutfitIndex, vOutfit in vOutfits do
|
||||
if vOutfit.StatID and vOutfit.StatID == pStatID then
|
||||
return vOutfit, vCategoryID, vOutfitIndex;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- return nil, nil, nil;
|
||||
end
|
||||
end
|
||||
|
||||
local Saved_OutfitterItem_OnEnter = OutfitterItem_OnEnter;
|
||||
local function Patch_OutfitterItem_OnEnter(pItem)
|
||||
Saved_OutfitterItem_OnEnter(pItem);
|
||||
if ( not pItem.isCategoryItem ) then
|
||||
local vOutfit = Outfitter_GetOutfitFromListItem(pItem);
|
||||
if ( vOutfit and vOutfit.StatID == "Fishing" ) then
|
||||
local vDescription;
|
||||
local bp = BonusPoints(vOutfit, "Fishing");
|
||||
if ( bp >= 0 ) then
|
||||
bp = "+"..bp;
|
||||
else
|
||||
bp = 0 - bp;
|
||||
bp = "-"..bp;
|
||||
end
|
||||
bp = Outfitter_cFishingStatName.." "..bp;
|
||||
local sp = StylePoints(vOutfit);
|
||||
local pstring;
|
||||
if ( points == 1 ) then
|
||||
pstring = FishingBuddy.POINT;
|
||||
else
|
||||
pstring = FishingBuddy.POINTS;
|
||||
end
|
||||
vDescription = string.format(FishingBuddy.CONFIG_OUTFITTER_TEXT,
|
||||
bp, sp)..pstring;
|
||||
GameTooltip_AddNewbieTip(vOutfit.Name, 1.0, 1.0, 1.0, vDescription, 1);
|
||||
end
|
||||
end
|
||||
end
|
||||
-- point to our new function so we get our own tooltip
|
||||
OutfitterItem_OnEnter = Patch_OutfitterItem_OnEnter;
|
||||
|
||||
if ( Outfitter_OnLoad ) then
|
||||
FishingBuddy.OutfitManager.RegisterManager("Outfitter",
|
||||
OutfitterInitialize,
|
||||
function(useme) end,
|
||||
OutfitterSwitch);
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user