From 5fc8f2a2105629e695e7374e8f6a3b95dea02cf0 Mon Sep 17 00:00:00 2001 From: "Michael (a.k.a. Codermik)" Date: Mon, 26 Sep 2022 17:58:51 +0100 Subject: [PATCH] Self Buff Option / Added Spellstone Support Added the self buff option back in classic versions which was previously broken and temporary hidden. Added support for Warlock Spellstone's and added additional checks for Fel Intelligence. --- SmartBuff.buffs.lua | 17 +++++++++++------ SmartBuff.lua | 22 +++++++++++++++++----- SmartBuff.xml | 31 +++++++++++++++++++++++++++++++ localization.en.lua | 13 ++++++------- 4 files changed, 65 insertions(+), 18 deletions(-) diff --git a/SmartBuff.buffs.lua b/SmartBuff.buffs.lua index 65ec4ed..e8db436 100644 --- a/SmartBuff.buffs.lua +++ b/SmartBuff.buffs.lua @@ -84,6 +84,11 @@ function SMARTBUFF_InitItemList() SMARTBUFF_SUPERIORMANAOIL = GetItemInfo(22521); -- Brilliant Mana Oil SMARTBUFF_SUPERIORWIZARDOIL = GetItemInfo(22522); -- Superior Wizard Oil SMARTBUFF_EXCEPTIONALWIZARDOIL = GetItemInfo(36900); -- Exceptional Wizard Oil + SMARTBUFF_LOCKSPELLSTONE1 = GetItemInfo(41192); -- Warlock Create Spellstone 1 + SMARTBUFF_LOCKSPELLSTONE2 = GetItemInfo(41193); -- Warlock Create Spellstone 2 + SMARTBUFF_LOCKSPELLSTONE3 = GetItemInfo(41194); -- Warlock Create Spellstone 3 + SMARTBUFF_LOCKSPELLSTONE4 = GetItemInfo(41195); -- Warlock Create Spellstone 4 + SMARTBUFF_LOCKSPELLSTONE5 = GetItemInfo(41196); -- Warlock Create Spellstone 5 SMARTBUFF_OILOFIMMOLATION = GetItemInfo(8956); -- Oil of Immolation SMARTBUFF_SOLIDWSTONE = GetItemInfo(7965); -- Solid Weighstone @@ -261,6 +266,7 @@ function SMARTBUFF_InitSpellIDs() -- Misc SMARTBUFF_KIRUSSOV = GetSpellInfo(46302); --"K'iru's Song of Victory" SMARTBUFF_FISHING = GetSpellInfo(7620) or GetSpellInfo(111541); --"Fishing" + SMARTBUFF_FELINTELLIGENCE = GetSpellInfo(54424) -- "Fel Intelligence" -- Druid SMARTBUFF_DRUID_CAT = GetSpellInfo(768); --"Cat Form" @@ -675,12 +681,11 @@ function SMARTBUFF_InitSpellList() {SMARTBUFF_CREATESS, 0.03, SMARTBUFF_CONST_ITEM, nil, SMARTBUFF_SOULSTONEGEM}, {SMARTBUFF_CREATESSLES, 0.03, SMARTBUFF_CONST_ITEM, nil, SMARTBUFF_SOULSTONEGEM}, {SMARTBUFF_CREATESSMIN, 0.03, SMARTBUFF_CONST_ITEM, nil, SMARTBUFF_SOULSTONEGEM}, - {SMARTBUFF_SPELLSTONE6, 60, SMARTBUFF_CONST_INV}, - {SMARTBUFF_SPELLSTONE5, 60, SMARTBUFF_CONST_INV}, - {SMARTBUFF_SPELLSTONE4, 60, SMARTBUFF_CONST_INV}, - {SMARTBUFF_SPELLSTONE3, 60, SMARTBUFF_CONST_INV}, - {SMARTBUFF_SPELLSTONE2, 60, SMARTBUFF_CONST_INV}, - {SMARTBUFF_SPELLSTONE1, 60, SMARTBUFF_CONST_INV}, + {SMARTBUFF_LOCKSPELLSTONE5, 60, SMARTBUFF_CONST_INV}, + {SMARTBUFF_LOCKSPELLSTONE4, 60, SMARTBUFF_CONST_INV}, + {SMARTBUFF_LOCKSPELLSTONE3, 60, SMARTBUFF_CONST_INV}, + {SMARTBUFF_LOCKSPELLSTONE2, 60, SMARTBUFF_CONST_INV}, + {SMARTBUFF_LOCKSPELLSTONE1, 60, SMARTBUFF_CONST_INV}, {SMARTBUFF_FIRESTONE7, 60, SMARTBUFF_CONST_INV}, {SMARTBUFF_FIRESTONE6, 60, SMARTBUFF_CONST_INV}, {SMARTBUFF_FIRESTONE5, 60, SMARTBUFF_CONST_INV}, diff --git a/SmartBuff.lua b/SmartBuff.lua index 494d2c1..5ecb1f6 100644 --- a/SmartBuff.lua +++ b/SmartBuff.lua @@ -6,7 +6,7 @@ -- Cast the most important buffs on you, tanks or party/raid members/pets. ------------------------------------------------------------------------------- -SMARTBUFF_DATE = "210922 Dev"; +SMARTBUFF_DATE = "260922"; SMARTBUFF_VERSION = "r35."..SMARTBUFF_DATE; SMARTBUFF_VERSIONMIN = 11403; -- min version SMARTBUFF_VERSIONNR = 30400; -- max version @@ -23,7 +23,7 @@ local SmartbuffSession = true; local SmartbuffVerCheck = false; -- for my use when checking guild users/testers versions :) local wowVersionString, wowBuild, _, wowTOC = GetBuildInfo(); local isWOTLKC = (_G.WOW_PROJECT_ID == WOW_PROJECT_WRATH_CLASSIC and wowTOC >= 30400); -local SmartbuffRevision = 34; +local SmartbuffRevision = 35; local SmartbuffVerNotifyList = {} -- Smartbuff now uses LibRangeCheck-2.0 by Mitchnull, not fully implemented @@ -1029,7 +1029,7 @@ function SMARTBUFF_AddSoloSetup() cUnits[0] = { }; cUnits[0][0] = "player"; if (sPlayerClass == "HUNTER" or sPlayerClass == "WARLOCK" or sPlayerClass == "MAGE") then cGroups[0][1] = "pet"; end - if (B[CS()][currentTemplate]) then + if (B[CS()][currentTemplate] and B[CS()][currentTemplate].SelfFirst) then if (not cClassGroups) then cClassGroups = { }; end @@ -2009,7 +2009,7 @@ function SMARTBUFF_BuffUnit(unit, subgroup, mode, spell) if (bUsable) then bUsable = IsPowerLimitOk(bs); end - + -- Check for buffs which depends on a pet if (bUsable and cBuff.Params == SG.CheckPet and UnitExists("pet")) then bUsable = false end if (bUsable and cBuff.Params == SG.CheckPetNeeded and not UnitExists("pet")) then bUsable = false end @@ -2037,7 +2037,14 @@ function SMARTBUFF_BuffUnit(unit, subgroup, mode, spell) bUsable = false; end end - + + -- check for Fel Intelligence + if (bUsable and CheckForBuff(SMARTBUFF_FELINTELLIGENCE) and (sPlayerClass == "PRIEST" or sPlayerClass == "MAGE")) then + if (buffnS == SMARTBUFF_AI or buffnS == SMARTBUFF_ABRB1 or buffnS == SMARTBUFF_DS or buffnS == SMARTBUFF_POSRB1) then + bUsable = false; + end + end + if (bUsable and not (cBuff.Type == SMARTBUFF_CONST_TRACK or SMARTBUFF_IsItem(cBuff.Type))) then -- check if you have enough mana/rage/energy to cast local isUsable, notEnoughMana = IsUsableSpell(buffnS); @@ -3779,6 +3786,9 @@ function SMARTBUFF_OHideSAButton() O.HideSAButton = not O.HideSAButton; SMARTBUFF_ShowSAButton(); end +function SMARTBUFF_OSelfFirst() + B[CS()][currentTemplate].SelfFirst = not B[CS()][currentTemplate].SelfFirst; +end function SMARTBUFF_OWarnWhenMountedButton() O.WarnWhileMounted = not O.WarnWhileMounted; end @@ -4117,6 +4127,8 @@ function SMARTBUFF_Options_OnShow() SMARTBUFF_ShowSubGroupsOptions(); SMARTBUFF_SetCheckButtonBuffs(0); + + SmartBuffOptionsFrame_cbSelfFirst:SetChecked(B[CS()][currentTemplate].SelfFirst); SMARTBUFF_Splash_Show(); diff --git a/SmartBuff.xml b/SmartBuff.xml index da6dcc6..c825d24 100644 --- a/SmartBuff.xml +++ b/SmartBuff.xml @@ -1457,6 +1457,37 @@ + + + + + + + + + + + + + + + + + getglobal(self:GetName().."Text"):SetText(SMARTBUFF_OFT_SELFFIRST); + getglobal(self:GetName().."Text"):SetFontObject(GameFontNormalSmall); + + + SMARTBUFF_OSelfFirst(); + + + GameTooltip:SetOwner(self, "ANCHOR_RIGHT"); + GameTooltip:SetText(SMARTBUFF_OFTT_SELFFIRST, SMARTBUFF_TTC_R, SMARTBUFF_TTC_G, SMARTBUFF_TTC_B, SMARTBUFF_TTC_A); + + + GameTooltip:Hide(); + + +