--fury warrior custom class by kampfschaf
function Settings()
FightDist = 5;
PullDist = 24;
end
function InCombat()
LuaDoString("combat=UnitAffectingCombat('player')");
if WowGetLuaValue("combat") == "1" then
return true;
else
return false;
end
end
-- function InZerkerStance()
-- if IsSpellKnown(2458) then
-- LuaDoString('zerkicon, zerkname, zerkactive = GetShapeshiftFormInfo(3);');
-- zerkstate = WowGetLuaValue("zerkactive");
-- if zerkstate == "1" then
-- return true;
-- else
-- return false;
-- end
-- else
-- return true -- fallback wenn
-- end
-- end
-- function ActivateZerkerstance()
-- if IsSpellKnown(2458) and not InZerkerStance() then
-- _Log("Berserker Stance");
-- CastSpellByID(2458, Player, true);
-- NextAction();
-- end
function GetRage()
LuaDoString("power = UnitPower('player', 1);");
Rage= tonumber(WowGetLuaValue("power"));
--_Log(Rage);
return Rage;
end
function CanCleave()
if IsSpellKnown(845) and IsSpellReady(845) and GetRage() >= 30 then
_Log("-- standardcleave");
return true
end
if IsSpellKnown(122510) and IsSpellKnown(845) and HasBuff(Player, 122510) then
_Log("--ultimatum cleave");
return
end
end
function NextAction()
if true then return end
end
function PullMob(MobAddr)
--variables used for pull routine
TargetDist = GetDistToUnit(MobAddr); --distance from toon to target
Target=MobAddr; --i'm too fuckin lazy
-- heal with heavy windwool bandage at level 85+ when HP below 50% and no recently bandaged debuff present
if PlayerHpPercent() <= 50 and not HasBuff(Player, 11196) and not InCombat() then
_Log("prepull bandage");
LuaDoString('bandagename= GetItemInfo(72986); RunMacroText(string.format("/use %s",bandagename))');
Sleep(8500);
NextAction();
end
--pull charge id100 (lv3, 8-25m) > leap id6544 (lv85, 8-40m) > heroic throw id57755 (lv20, 30m) > taunt id355 (lv12, 30m)
--ActivateZerkerstance();
--check for battleshout
if IsSpellKnown(6673) and IsSpellReady(6673) and not HasBuff(Player, 6673) then
_Log("prepull bshout");
CastSpellByID(6673, Player, true);
NextAction();
end
-- charge. use only with glyph of blazing trail. sucker
if IsSpellKnown(100) and IsSpellReady(100) and TargetDist >= 8 and TargetDist <= 25 then
_Log("CHAAAARGE");
CastSpellByID(100, Target, true);
NextAction();
--leap, for style. inspirational thanks fly out to hamburger
elseif IsSpellKnown(6544) and IsSpellReady(6544) and TargetDist >= 8 and TargetDist <= 40 then
_Log("pull heroic leap");
LuaDoString('name= GetSpellInfo(6544); RunMacroText(string.format("/cast %s",name))')
tPos = GetUnitPos(Target);
DoTerrainClick(tPos[0],tPos[1],tPos[2]);
NextAction();
--hthrow
elseif IsSpellKnown(57755) and IsSpellReady(57755) and TargetDist <= 30 then
_Log("pull heroic throw");
CastSpellByID(57755, Target, true);
NextAction();
--taunt
elseif IsSpellKnown(355) and IsSpellReady(355) and TargetDist <= 30 then
_Log("pull Taunt");
CastSpellByID(355, Target, true);
NextAction();
end
--autoswing start
StartAutoAttack();
end
function Fight()
Target = GetAttacker(1);
StartAutoAttack();
--check for possible bot fucked-up-ness
if not InCombat() then
_Log("we are not actually in fight, calm down bro");
Sleep(2000);
end
--selfheal via victory rush, buff "victorious" id 32216
if IsSpellKnown(34428) and HasBuff(Player, 32216) then
_Log("victory rush");
CastSpellByID(34428, Target, true);
NextAction();
end
--heal via master healing potion level 85+ itemid 76097
if PlayerHpPercent() <=50 then
_Log("using master healing potion");
LuaDoString('healpotname= GetItemInfo(76097); RunMacroText(string.format("/use %s",healpotname))');
NextAction();
end
--check for Battleshout, apply if we do not waste rage
if IsSpellKnown(6673) and IsSpellReady(6673) and GetRage() <= 70 then
_Log("Battleshout");
CastSpellByID(6673, Player, true);
NextAction();
end
--can we execute him already? used between 20 and 5 percent mob hp
if IsSpellKnown(5308) and IsSpellReady(5308) and GetRage() >= 30 and GetUnitHpPro(Target) <= 20 then
_Log("EXECUTE");
CastSpellByID(5308, Target, true);
NextAction();
end
-- combat routine for single target fights
-- check if we are in zerker stance ... how the fuck do i do this?
--ActivateZerkerstance();
-- BShoutExecute > BT > smash > Raging Blow > wildstrike when bloodsurge buff > heroic strike when rage>80
--bloodthirst, 23881, generate 10 rage
if IsSpellKnown(23881) and IsSpellReady(23881) then
_Log("Bloodthirst");
CastSpellByID(23881, Target, true);
NextAction();
end
--colossus smash, 86346, 0 rage
if IsSpellKnown(86346) and IsSpellReady(86346) then
_Log("Colossus Smash");
CastSpellByID(86346, Target, true);
NextAction();
end
--use berserker rage 18499 when rage is below 80 and raging blow buff 131116 is not active (BR triggers buff 131116)
if IsSpellKnown(18499) and GetRage() <=80 and not HasBuff(Player, 131116) then
_Log("Berserker Rage");
CastSpellByID(18499, Player, false);
NextAction();
end
--raging blow, 85288, cost 10 rage, only active when buff 131116 is active
if IsSpellKnown(85288) and IsSpellReady(85288) and HasBuff(Player, 131116) and GetRage() >= 10 then
_Log("Raging Blow");
CastSpellByID(85288, Target, true);
NextAction();
end
if GetAttackerCount <= 2 then
--wild strike, 100130, 30 rage, 10 rage with bloodsurge proc. use only with bloodsurge proc(46916)
if IsSpellKnown(100130) and IsSpellKnown(46915) and HasBuff(Player, 46916) and GetRage() >= 10 then
_Log("got bloodsurge buff&10+ rage");
if GetRage() >=20 then --use 2 times
if GetRage() >=30 then --use 3 times
_Log("wild strike#3");
CastSpellByID(100130, Target, true);--30+ rage
end
_Log("Wild Strike #2");
CastSpellByID(100130, Target, true); --20+ rage
end
--elsewise use one time
_Log("wild strike#1");
CastSpellByID(100130, Target, true);--10+rage
NextAction();
end
--heroic strike when rage exceeds 80, id 78, costs 30 rage
if IsSpellKnown(78) and GetRage() >= 80 then
_Log("excess Rage, using HStrike");
CastSpellByID(78, Target, false);
NextAction();
end
--use deadly calm to recude heroic strike cost to 10 rage
if IsSpellKnown(85730) and IsSpellReady(85730) and GetRage() >= 60 then
_Log("deadly calm");
CastSpellByID(85730, Player, true);
NextAction();
end
--check for HS with deadly calm
if IsSpellKnown(78) and HasBuff(Player, 85730) and GetRage() >= 60 then
_Log("deadly calm HS");
CastSpellByID(78, Target, false);
NextAction();
end
end
--combat routine for multiple mobs
if GetAttackerCount() >=3 then
if GetAttackerCount() >= 4 then
--ausrasten
if IsSpellKnown(107574) and IsSpellReady(107574) then
_Log("going AVATAR");
CastSpellByID(107574, Player, true);
NextAction();
end
if IsSpellKnown(114207) and IsSpellReady(114207) then
_Log("Skull Banner");
CastSpellByID(114207, Player, false);
NextAction();
end
if IsSpellKnown(1719) and IsSpellReady(1719) then
_Log("Recklessness");
CastSpellByID(1719, Player, false);
NextAction();
end
end
if IsSpellKnown(6343) and IsSpellReady(6343) and GetRage() >= 20 then
_Log("Thunderclap");
CastSpellByID(6343, Target, true);
NextAction();
end
if IsSpellKnown(1680) and IsSpellReady(1680) and GetRage() >= 30 then
_Log("Whirlwind");
CastSpellByID(1680, Target, true);
NextAction();
end
if IsSpellKnown(46924) and IsSpellReady(46924) then
_Log("Bladestorm");
CastSpellByID(46924, Target, true);
Sleep(6000);
NextAction();
end
if IsSpellKnown(845) and IsSpellReady(845) and IsSpellKnown(85730) and IsSpellReady(85730) and GetRage() >= 30 then
_Log("Cleaving with deadly calm");
CastSpellByID(85730, Player, true);
CastSpellByID(845, Target, true);
CastSpellByID(845, Target, true);
NextAction();
end
end
end