using System;
using System.Drawing;
using System.Windows.Forms;
using System.Threading;
using System.Collections.Generic;
using System.Linq;
using ArcheBuddy.Bot.Classes;
namespace Follower
{
public class LazyRaider : Core
{
private string lensBuff, resurgenceBuff, hummingbirdDittyBuff, arazebsBoonBuff, mirrorLightBuff, criticalDiscordBuff;
private bool debug = true;
private bool manaForce, insulatingLens, magicCircle, manaStars, hellSpear, rhythmicRenewal,
summonCrows, absorbLifeforce, dissonant, startlingStrain, cripplingMire, freezingArrow, flamebolt,
mirrorLight, resurgence, hummingbirdDitty, arazebsBoon, ferventHealing, criticalDiscord;
public static string GetPluginAuthor()
{
return "Totalschaden";
}
public static string GetPluginVersion()
{
return "0.0.1";
}
public static string GetPluginDescription()
{
return "FFM CombatRoutine for ProGrinder Plugin";
}
public void UseSkillAndWait(string skillName, bool selfTarget = false)
{
while (me.isCasting || me.isGlobalCooldown)
Thread.Sleep(100);
if (!UseSkill(skillName, true, selfTarget))
{
if (me.target != null && GetLastError() == LastError.NoLineOfSight)
{
if (dist(me.target) <= 5)
ComeTo(me.target, 2);
else if (dist(me.target) <= 10)
ComeTo(me.target, 3);
else if (dist(me.target) < 20)
ComeTo(me.target, 8);
else
ComeTo(me.target, 8);
}
}
while (me.isCasting || me.isGlobalCooldown)
Thread.Sleep(100);
}
public void GetLensBuffRank ()
{
if (debug)
Log("Try to Find Lens Buff Rank 1");
if (getBuff("Insulating Lens (Rank 1)") != null)
{
if (debug)
Log("Found Lens Buff Rank 1");
lensBuff = "Insulating Lens (Rank 1)";
return;
}
if (debug)
Log("Try to Find Lens Buff Rank 2");
if (getBuff("Insulating Lens (Rank 2)") != null)
{
if (debug)
Log("Found Lens Buff Rank 2");
lensBuff = "Insulating Lens (Rank 2)";
return;
}
if (debug)
Log("Try to Find Lens Buff Rank 3");
if (getBuff("Insulating Lens (Rank 3)") != null)
{
if (debug)
Log("Found Lens Buff Rank 3");
lensBuff = "Insulating Lens (Rank 3)";
return;
}
if (debug)
Log("Try to Find Lens Buff Rank 4");
if (getBuff("Insulating Lens (Rank 4)") != null)
{
if (debug)
Log("Found Lens Buff Rank 4");
lensBuff = "Insulating Lens (Rank 4)";
return;
}
if (debug)
Log("Try to Find Lens Buff Rank 5");
if (getBuff("Insulating Lens (Rank 5)") != null)
{
if (debug)
Log("Found Lens Buff Rank 5");
lensBuff = "Insulating Lens (Rank 5)";
return;
}
if (debug)
Log("Try to Find Lens Buff Rank 6");
if (getBuff("Insulating Lens (Rank 6)") != null)
{
if (debug)
Log("Found Lens Buff Rank 6");
lensBuff = "Insulating Lens (Rank 6)";
return;
}
if (debug)
Log("Try to Find Lens Buff Rank 7");
if (getBuff("Insulating Lens (Rank 7)") != null)
{
if (debug)
Log("Found Lens Buff Rank 7");
lensBuff = "Insulating Lens (Rank 7)";
return;
}
if (debug)
Log("Try to Find Lens Buff Rank 8");
if (getBuff("Insulating Lens (Rank 8)") != null)
{
if (debug)
Log("Found Lens Buff Rank 8");
lensBuff = "Insulating Lens (Rank 8)";
return;
}
if (debug)
Log("Try to Find Lens Buff Rank 9");
if (getBuff("Insulating Lens (Rank 9)") != null)
{
if (debug)
Log("Found Lens Buff Rank 9");
lensBuff = "Insulating Lens (Rank 9)";
return;
}
if (debug)
Log("Try to Find Lens Buff Rank 10");
if (getBuff("Insulating Lens (Rank 10)") != null)
{
if (debug)
Log("Found Lens Buff Rank 10");
lensBuff = "Insulating Lens (Rank 10)";
return;
}
}
public void GetResurgenceBuff ()
{
if (debug)
Log("Try to Find Resurgence Buff Rank 1");
if (getBuff("Resurgence") != null)
{
if (debug)
Log("Found Resurgence Buff Rank 1");
resurgenceBuff = "Resurgence";
return;
}
if (debug)
Log("Try to Find Resurgence Buff Rank 2");
if (getBuff("Resurgence (Rank 2)") != null)
{
if (debug)
Log("Found Resurgence Buff Rank 2");
resurgenceBuff = "Resurgence (Rank 2)";
return;
}
if (debug)
Log("Try to Find Resurgence Buff Rank 3");
if (getBuff("Resurgence (Rank 3)") != null)
{
if (debug)
Log("Found Resurgence Buff Rank 3");
resurgenceBuff = "Resurgence (Rank 3)";
return;
}
if (debug)
Log("Try to Find Resurgence Buff Rank 4");
if (getBuff("Resurgence (Rank 4)") != null)
{
if (debug)
Log("Found Resurgence Buff Rank 4");
resurgenceBuff = "Resurgence (Rank 4)";
return;
}
if (debug)
Log("Try to Find Resurgence Buff Rank 5");
if (getBuff("Resurgence (Rank 5)") != null)
{
if (debug)
Log("Found Resurgence Buff Rank 5");
resurgenceBuff = "Resurgence (Rank 5)";
return;
}
if (debug)
Log("Try to Find Resurgence Buff Rank 6");
if (getBuff("Resurgence (Rank 6)") != null)
{
if (debug)
Log("Found Resurgence Buff Rank 6");
resurgenceBuff = "Resurgence (Rank 6)";
return;
}
if (debug)
Log("Try to Find Resurgence Buff Rank 7");
if (getBuff("Resurgence (Rank 7)") != null)
{
if (debug)
Log("Found Resurgence Buff Rank 7");
resurgenceBuff = "Resurgence (Rank 7)";
return;
}
if (debug)
Log("Try to Find Resurgence Buff Rank 8");
if (getBuff("Resurgence (Rank 8)") != null)
{
if (debug)
Log("Found Resurgence Buff Rank 8");
resurgenceBuff = "Resurgence (Rank 8)";
return;
}
if (debug)
Log("Try to Find Resurgence Buff Rank 9");
if (getBuff("Resurgence (Rank 9)") != null)
{
if (debug)
Log("Found Resurgence Buff Rank 9");
resurgenceBuff = "Resurgence (Rank 9)";
return;
}
if (debug)
Log("Try to Find Resurgence Buff Rank 10");
if (getBuff("Resurgence (Rank 10)") != null)
{
if (debug)
Log("Found Resurgence Buff Rank 10");
resurgenceBuff = "Resurgence (Rank 10)";
return;
}
}
public void GetHummingbirdDittyBuff ()
{
if (debug)
Log("Try to Find Hummingbird Ditty Buff Rank 1");
if (getBuff("Hummingbird Ditty (Rank 1)") != null)
{
if (debug)
Log("Found Hummingbird Ditty Buff Rank 1");
hummingbirdDittyBuff = "Hummingbird Ditty (Rank 1)";
return;
}
if (debug)
Log("Try to Find Hummingbird Ditty Buff Rank 2");
if (getBuff("Hummingbird Ditty (Rank 2)") != null)
{
if (debug)
Log("Found Hummingbird Ditty Buff Rank 2");
hummingbirdDittyBuff = "Hummingbird Ditty (Rank 2)";
return;
}
if (debug)
Log("Try to Find Hummingbird Ditty Buff Rank 3");
if (getBuff("Hummingbird Ditty (Rank 3)") != null)
{
if (debug)
Log("Found Hummingbird Ditty Buff Rank 3");
hummingbirdDittyBuff = "Hummingbird Ditty (Rank 3)";
return;
}
if (debug)
Log("Try to Find Hummingbird Ditty Buff Rank 4");
if (getBuff("Hummingbird Ditty (Rank 4)") != null)
{
if (debug)
Log("Found Hummingbird Ditty Buff Rank 4");
hummingbirdDittyBuff = "Hummingbird Ditty (Rank 4)";
return;
}
if (debug)
Log("Try to Find Hummingbird Ditty Buff Rank 5");
if (getBuff("Hummingbird Ditty (Rank 5)") != null)
{
if (debug)
Log("Found Hummingbird Ditty Buff Rank 5");
hummingbirdDittyBuff = "Hummingbird Ditty (Rank 5)";
return;
}
if (debug)
Log("Try to Find Hummingbird Ditty Buff Rank 6");
if (getBuff("Hummingbird Ditty (Rank 6)") != null)
{
if (debug)
Log("Found Hummingbird Ditty Buff Rank 6");
hummingbirdDittyBuff = "Hummingbird Ditty (Rank 6)";
return;
}
if (debug)
Log("Try to Find Hummingbird Ditty Buff Rank 7");
if (getBuff("Hummingbird Ditty (Rank 7)") != null)
{
if (debug)
Log("Found Hummingbird Ditty Buff Rank 7");
hummingbirdDittyBuff = "Hummingbird Ditty (Rank 7)";
return;
}
if (debug)
Log("Try to Find Hummingbird Ditty Buff Rank 8");
if (getBuff("Hummingbird Ditty (Rank 8)") != null)
{
if (debug)
Log("Found Hummingbird Ditty Buff Rank 8");
hummingbirdDittyBuff = "Hummingbird Ditty (Rank 8)";
return;
}
if (debug)
Log("Try to Find Hummingbird Ditty Buff Rank 9");
if (getBuff("Hummingbird Ditty (Rank 9)") != null)
{
if (debug)
Log("Found Hummingbird Ditty Buff Rank 9");
hummingbirdDittyBuff = "Hummingbird Ditty (Rank 9)";
return;
}
if (debug)
Log("Try to Find Hummingbird Ditty Buff Rank 10");
if (getBuff("Hummingbird Ditty (Rank 10)") != null)
{
if (debug)
Log("Found Hummingbird Ditty Buff Rank 1");
hummingbirdDittyBuff = "Hummingbird Ditty (Rank 10)";
return;
}
}
public void GetArazebsBoonBuff ()
{
if (debug)
Log("Try to Find Arazeb's Boon Buff Rank 1");
if (getBuff("Arazeb's Boon (Rank 1)") != null)
{
if (debug)
Log("Found Arazeb's Boon Buff Rank 1");
arazebsBoonBuff = "Arazeb's Boon (Rank 1)";
return;
}
if (debug)
Log("Try to Find Arazeb's Boon Buff Rank 2");
if (getBuff("Arazeb's Boon (Rank 2)") != null)
{
if (debug)
Log("Found Arazeb's Boon Buff Rank 2");
arazebsBoonBuff = "Arazeb's Boon (Rank 2)";
return;
}
if (debug)
Log("Try to Find Arazeb's Boon Buff Rank 3");
if (getBuff("Arazeb's Boon (Rank 3)") != null)
{
if (debug)
Log("Found Arazeb's Boon Buff Rank 3");
arazebsBoonBuff = "Arazeb's Boon (Rank 3)";
return;
}
if (debug)
Log("Try to Find Arazeb's Boon Buff Rank 4");
if (getBuff("Arazeb's Boon (Rank 4)") != null)
{
if (debug)
Log("Found Arazeb's Boon Buff Rank 4");
arazebsBoonBuff = "Arazeb's Boon (Rank 4)";
return;
}
if (debug)
Log("Try to Find Arazeb's Boon Buff Rank 5");
if (getBuff("Arazeb's Boon (Rank 5)") != null)
{
if (debug)
Log("Found Arazeb's Boon Buff Rank 5");
arazebsBoonBuff = "Arazeb's Boon (Rank 5)";
return;
}
if (debug)
Log("Try to Find Arazeb's Boon Buff Rank 6");
if (getBuff("Arazeb's Boon (Rank 6)") != null)
{
if (debug)
Log("Found Arazeb's Boon Buff Rank 6");
arazebsBoonBuff = "Arazeb's Boon (Rank 6)";
return;
}
if (debug)
Log("Try to Find Arazeb's Boon Buff Rank 7");
if (getBuff("Arazeb's Boon (Rank 7)") != null)
{
if (debug)
Log("Found Arazeb's Boon Buff Rank 7");
arazebsBoonBuff = "Arazeb's Boon (Rank 7)";
return;
}
if (debug)
Log("Try to Find Arazeb's Boon Buff Rank 8");
if (getBuff("Arazeb's Boon (Rank 8)") != null)
{
if (debug)
Log("Found Arazeb's Boon Buff Rank 8");
arazebsBoonBuff = "Arazeb's Boon (Rank 8)";
return;
}
if (debug)
Log("Try to Find Arazeb's Boon Buff Rank 9");
if (getBuff("Arazeb's Boon (Rank 9)") != null)
{
if (debug)
Log("Found Arazeb's Boon Buff Rank 9");
arazebsBoonBuff = "Arazeb's Boon (Rank 9)";
return;
}
if (debug)
Log("Try to Find Arazeb's Boon Buff Rank 10");
if (getBuff("Arazeb's Boon (Rank 10)") != null)
{
if (debug)
Log("Found Arazeb's Boon Buff Rank 10");
arazebsBoonBuff = "Arazeb's Boon (Rank 10)";
return;
}
}
public void GetMirrorLightBuff()
{
if (debug)
Log("Try to Find Mirror Light Buff");
if (getBuff("Blessing") != null)
{
if (debug)
Log("Found Mirror Light");
mirrorLightBuff = "Blessing";
return;
}
}
public void GetCriticalDiscordBuff ()
{
if (debug)
Log("Try to Find Critical Discord Buff");
if (getBuff("Determination") != null)
{
if (debug)
Log("Found Critical Discord");
criticalDiscordBuff = "Determination)";
return;
}
}
public void GetSpells ()
{
if (getSkill("Mana Force") != null)
manaForce = true;
if (getSkill("Insulating Lens") != null)
insulatingLens = true;
if (getSkill("Magic Circle") != null)
magicCircle = true;
if (getSkill("Mana Stars") != null)
manaStars = true;
if (getSkill("Hell Spear") != null)
hellSpear = true;
if (getSkill("Rhythmic Renewal") != null)
rhythmicRenewal = true;
if (getSkill("Summon Crows") != null)
summonCrows = true;
if (getSkill("Absorb Lifeforce") != null)
absorbLifeforce = true;
if (getSkill("Dissonant") != null)
dissonant = true;
if (getSkill("Startling Strain") != null)
startlingStrain = true;
if (getSkill("Crippling Mire") != null)
cripplingMire = true;
if (getSkill("Freezing Arrow") != null)
freezingArrow = true;
if (getSkill("Flamebolt") != null)
flamebolt = true;
if (getSkill("Mirror Light") != null)
mirrorLight = true;
if (getSkill("Resurgence") != null)
resurgence = true;
if (getSkill("Hummingbird Ditty") != null)
hummingbirdDitty = true;
if (getSkill("Arazeb's Boon") != null)
arazebsBoon = true;
if (getSkill("Fervent Healing") != null)
ferventHealing = true;
if (getSkill("Critical Discord") != null)
criticalDiscord = true;
}
public void PluginRun()
{
GetSpells();
while (true)
{
while (me.target == null || !isAlive(me.target) )
{
if (resurgence && skillCooldown("Resurgence") == 0 && hpp () <= 95 && getBuff(resurgenceBuff) == null)
{
if (debug)
Log("Casting Resurgence");
UseSkillAndWait("Resurgence", true);
if (getBuff(resurgenceBuff) == null)
GetResurgenceBuff();
}
if (ferventHealing && skillCooldown("Fervent Healing") == 0 && hpp() <= 80)
{
if (debug)
Log ("Casting Fervent Healing 1/5");
UseSkillAndWait("Fervent Healing");
for (int i = 0; i < 3; i++)
{
if (hpp () <= 96)
{
if (debug)
Log ("Casting Fervent Healing " + (i+1) + "/5");
UseSkillAndWait("Fervent Healing");
}
else
break;
}
}
Thread.Sleep(250);
}
while (me.target != null && isAttackable(me.target))
{
// Spell Party Stating here.
if (insulatingLens && skillCooldown("Insulating Lens") == 0 && getBuff(lensBuff) == null)
{
if (debug)
Log("Casting Insulating Lens");
UseSkillAndWait("Insulating Lens", true);
if (getBuff(lensBuff) == null)
GetLensBuffRank();
}
if (hummingbirdDitty && getBuff(hummingbirdDittyBuff) == null)
{
if (debug)
Log("Casting Hummingbird Ditty");
UseSkillAndWait("Hummingbird Ditty", true);
if (getBuff(hummingbirdDittyBuff) == null)
GetHummingbirdDittyBuff();
}
if (arazebsBoon && getBuff(arazebsBoonBuff) == null)
{
if (debug)
Log("Casting Arazeb's Boon");
UseSkillAndWait("Arazeb's Boon", true);
if (getBuff(arazebsBoonBuff) == null)
GetArazebsBoonBuff();
}
if (mirrorLight && skillCooldown("Mirror Light") == 0 && getBuff(mirrorLightBuff) == null)
{
if (debug)
Log("Casting Mirror Light");
UseSkillAndWait("Mirror Light", true);
if (getBuff(mirrorLightBuff) == null)
GetMirrorLightBuff();
}
if (resurgence && skillCooldown("Resurgence") == 0 && hpp () <= 95 && getBuff(resurgenceBuff) == null)
{
if (debug)
Log("Casting Resurgence");
UseSkillAndWait("Resurgence", true);
if (getBuff(resurgenceBuff) == null)
GetResurgenceBuff();
}
if (ferventHealing && skillCooldown("Fervent Healing") == 0 && hpp() <= 80)
{
if (debug)
Log ("Casting Fervent Healing 1/5");
UseSkillAndWait("Fervent Healing");
for (int i = 0; i < 3; i++)
{
if (hpp () <= 96)
{
if (debug)
Log ("Casting Fervent Healing " + (i+1) + "/5");
UseSkillAndWait("Fervent Healing");
}
else
break;
}
}
if (magicCircle && skillCooldown("Magic Circle") == 0 && dist(me.target) <= 25 && hpp(me.target) == 100)
{
if (debug)
Log("Casting Magic Circle");
UseSkillAndWait("Magic Circle");
}
if (mirrorLight && skillCooldown("Mirror Light") == 0 && dist(me.target) <= 25)
{
if (debug)
Log("Casting Mirror Light");
UseSkillAndWait("Mirror Light");
break;
}
if (criticalDiscord && dist(me.target) <= 20)
{
if (debug)
Log("Casting Critical Discord");
UseSkillAndWait("Critical Discord");
/* if (getBuff(criticalDiscordBuff) == null) // Bugged Buffname, need ID..later
GetCriticalDiscordBuff();*/
}
if (manaStars && skillCooldown("Mana Stars") == 0 && hpp (me.target) <= 7 && dist(me.target) <= 20)
{
if (debug)
Log("Casting Mana Stars");
UseSkillAndWait("Mana Stars");
break;
}
if (manaForce && skillCooldown("Mana Force") == 0 && dist(me.target) <= 7 && hpp (me.target) >= 15)
{
if (debug)
Log("Casting Mana Force");
UseSkillAndWait("Mana Force");
break;
}
if (rhythmicRenewal && skillCooldown("Rhythmic Renewal") == 0 && hpp (me) < 40)
{
if (debug)
Log("Casting Rhytmic Rebewal");
UseSkillAndWait("Rhythmic Renewal");
break;
}
if (hellSpear && dist(me.target) <= 5 && skillCooldown("Hell Spear") == 0 && hpp(me.target) >= 35)
{
if (debug)
Log("Casting Hell Spear");
UseSkillAndWait("Hell Spear");
break;
}
if (summonCrows && dist(me.target) <= 5 && skillCooldown("Summon Crows") == 0 && getAggroMobs().Count >= 2)
{
if (debug)
Log("Casting Summon Crows");
UseSkillAndWait("Summon Crows");
break;
}
if (absorbLifeforce && skillCooldown("Absorb Lifeforce") == 0 && hpp (me) <= 85 && dist(me.target) <= 20 && ((startlingStrain && skillCooldown("Startling Strain") >= 0) || !startlingStrain) )
{
if (debug)
Log("Casting Absorb LifeForce");
UseSkillAndWait("Absorb Lifeforce");
break;
}
if (dissonant && skillCooldown("Dissonant") == 0 && skillCooldown("Startling Strain") >= 18 && dist(me.target) <= 20)
{
if (debug)
Log("Casting Dissonant");
UseSkillAndWait("Dissonant");
break;
}
if (startlingStrain && skillCooldown("Startling Strain") == 0 && dist(me.target) <= 20)
{
if (debug)
Log("Casting Starling Strain");
UseSkillAndWait("Startling Strain");
if(absorbLifeforce && skillCooldown("Absorb Lifeforce") == 0 && hpp (me) <= 85)
{
if (debug)
Log("Casting Absorb LifeForce (Combo)");
UseSkillAndWait("Absorb Lifeforce");
}
else
{
for (int i = 0; i < 5; i++)
{
if (debug)
Log("Casting Flamebold (Waiting for Stun end)");
if (flamebolt)
UseSkillAndWait("Flamebolt");
}
}
if (debug)
Log("Casting Dissonant (Combo!)");
if (dissonant)
UseSkillAndWait("Dissonant");
break;
}
if (cripplingMire && skillCooldown("Crippling Mire") == 0 && dist(me.target) <= 20 && dist (me.target) >=10)
{
if (debug)
Log("Casting Crippling Mire");
UseSkillAndWait("Crippling Mire");
break;
}
if (freezingArrow && skillCooldown("Freezing Arrow") == 0)
{
if (debug)
Log("Casting Freezing Arrow");
UseSkillAndWait("Freezing Arrow");
for (int i = 0; i < 2; i++)
{
if (debug)
Log("Casting Flamebolt (Combo)");
UseSkillAndWait("Flamebolt");
}
break;
}
if (flamebolt && skillCooldown("Flamebolt") == 0)
{
for (int i = 0; i < 2; i++)
{
if (debug)
Log("Casting Flamebolt, nothing else ready :(");
UseSkillAndWait("Flamebolt");
}
break;
}
Thread.Sleep(100);
}
Thread.Sleep(250);
}
}
}
}