phatcoolguy
New Member
- Joined
- Oct 27, 2015
- Messages
- 4
@willz916 will the corruption cr work for warzones?
i put in asterisk that i cant test it so i dont know if it works or not@willz916 will the corruption cr work for warzones?
i put in asterisk that i cant test it so i dont know if it works or not
i did some changes i forgot to put up earlier the post is edited still cant test it cause i dont have a healerThere are some coding that you have that are from jedi
Spell.Buff("Vindicate", ret => NeedForce()), - Vindicate is a jedi skill i believe
Spell.Cast("Mind Snap", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
Spell.Heal("Dark Heal", 80, ret => Me.HasBuff("Altruism")), - Altruism is jedi buff also
I don't know if that is intentional or not but wanted to point them out.
P.S. I don't know how to put them in code.
this is not for levelingWillz916, could you post your Marauder Carnage script? I tried copying the one made for combat and just replacing names, but it won't compile.
// Copyright (C) 2011-2015 Bossland GmbH
// See the file LICENSE for the source code's detailed license
using Buddy.BehaviorTree;
using DefaultCombat.Core;
using DefaultCombat.Helpers;
namespace DefaultCombat.Routines
{
internal class Carnage : RotationBase
{
public override string Name
{
get { return "Marauder Carnage"; }
}
public override Composite Buffs
{
get
{
return new PrioritySelector(
Spell.Buff("Ataru Form"),
Spell.Buff("Unnatural Might")
);
}
}
public override Composite Cooldowns
{
get
{
return new PrioritySelector(
Spell.Buff("Unleash"),
Spell.Buff("Cloak of Pain", ret => Me.HealthPercent <= 90),
Spell.Buff("Force Camouflage", ret => Me.HealthPercent <= 70),
Spell.Buff("Saber Ward", ret => Me.HealthPercent <= 50),
Spell.Buff("Undying Rage", ret => Me.HealthPercent <= 10),
Spell.Buff("Frenzy", ret => Me.BuffCount("Fury") < 5),
Spell.Buff("Berserk")
);
}
}
public override Composite SingleTarget
{
get
{
return new PrioritySelector(
Spell.Cast("Saber Throw",
ret => !DefaultCombat.MovementDisabled && Me.CurrentTarget.Distance >= 0.5f && Me.CurrentTarget.Distance <= 3f),
Spell.Cast("Force Charge",
ret => !DefaultCombat.MovementDisabled && Me.CurrentTarget.Distance >= 1f && Me.CurrentTarget.Distance <= 3f),
Spell.Cast("Dual Saber Throw",
ret => !DefaultCombat.MovementDisabled && Me.CurrentTarget.Distance >= 1f && Me.CurrentTarget.Distance <= 3f),
//Movement
CombatMovement.CloseDistance(Distance.Melee),
//Rotation
Spell.Cast("Disruption", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
Spell.Cast("Massacre", ret => !Me.HasBuff("Massacre")),
Spell.Cast("Gore"),
Spell.Cast("Ravage", ret => Me.BuffTimeLeft("Gore") >= 2.9),
Spell.Cast("Vicious Throw"),
Spell.Cast("Devastating Blast", ret => Me.HasBuff("Execute")),
Spell.Cast("Massacre"),
Spell.Cast("Dual Saber Throw"),
Spell.Cast("Battering Assault"),
Spell.Cast("Assault")
);
}
}
public override Composite AreaOfEffect
{
get
{
return new Decorator(ret => Targeting.ShouldPbaoe,
new PrioritySelector(
Spell.Cast("Gore"),
Spell.Cast("Sweeping Slash"),
Spell.Cast("Dual Saber Throw"),
Spell.Cast("Viciosus Throw"),
Spell.Cast("Battering Assault"),
Spell.Cast("Assault")
));
}
}
}
this is not for leveling
Code:// Copyright (C) 2011-2015 Bossland GmbH // See the file LICENSE for the source code's detailed license using Buddy.BehaviorTree; using DefaultCombat.Core; using DefaultCombat.Helpers; namespace DefaultCombat.Routines { internal class Carnage : RotationBase { public override string Name { get { return "Marauder Carnage"; } } public override Composite Buffs { get { return new PrioritySelector( Spell.Buff("Ataru Form"), Spell.Buff("Unnatural Might") ); } } public override Composite Cooldowns { get { return new PrioritySelector( Spell.Buff("Unleash"), Spell.Buff("Cloak of Pain", ret => Me.HealthPercent <= 90), Spell.Buff("Force Camouflage", ret => Me.HealthPercent <= 70), Spell.Buff("Saber Ward", ret => Me.HealthPercent <= 50), Spell.Buff("Undying Rage", ret => Me.HealthPercent <= 10), Spell.Buff("Frenzy", ret => Me.BuffCount("Fury") < 5), Spell.Buff("Berserk") ); } } public override Composite SingleTarget { get { return new PrioritySelector( Spell.Cast("Saber Throw", ret => !DefaultCombat.MovementDisabled && Me.CurrentTarget.Distance >= 0.5f && Me.CurrentTarget.Distance <= 3f), Spell.Cast("Force Charge", ret => !DefaultCombat.MovementDisabled && Me.CurrentTarget.Distance >= 1f && Me.CurrentTarget.Distance <= 3f), Spell.Cast("Dual Saber Throw", ret => !DefaultCombat.MovementDisabled && Me.CurrentTarget.Distance >= 1f && Me.CurrentTarget.Distance <= 3f), //Movement CombatMovement.CloseDistance(Distance.Melee), //Rotation Spell.Cast("Disruption", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled), Spell.Cast("Massacre", ret => !Me.HasBuff("Massacre")), Spell.Cast("Gore"), Spell.Cast("Ravage", ret => Me.BuffTimeLeft("Gore") >= 2.9), Spell.Cast("Vicious Throw"), Spell.Cast("Devastating Blast", ret => Me.HasBuff("Execute")), Spell.Cast("Massacre"), Spell.Cast("Dual Saber Throw"), Spell.Cast("Battering Assault"), Spell.Cast("Assault") ); } } public override Composite AreaOfEffect { get { return new Decorator(ret => Targeting.ShouldPbaoe, new PrioritySelector( Spell.Cast("Gore"), Spell.Cast("Sweeping Slash"), Spell.Cast("Dual Saber Throw"), Spell.Cast("Viciosus Throw"), Spell.Cast("Battering Assault"), Spell.Cast("Assault") )); } } }
// Copyright (C) 2011-2015 Bossland GmbH
// See the file LICENSE for the source code's detailed license
using Buddy.BehaviorTree;
using DefaultCombat.Core;
using DefaultCombat.Helpers;
namespace DefaultCombat.Routines
{
internal class Combat : RotationBase
{
public override string Name
{
get { return "Marauder Carnage"; }
}
public override Composite Buffs
{
get
{
return new PrioritySelector(
Spell.Buff("Ataru Form"),
Spell.Buff("Unnatural Might")
);
}
}
public override Composite Cooldowns
{
get
{
return new PrioritySelector(
Spell.Buff("Unleash"),
Spell.Buff("Cloak of Pain", ret => Me.HealthPercent <= 90),
Spell.Buff("Saber Ward", ret => Me.HealthPercent <= 50),
Spell.Buff("Force Camouflage", ret => Me.HealthPercent <= 50 && Me.HasBuff("Saber Ward")),
Spell.Buff("Undying Rage", ret => Me.HealthPercent <= 25 && Me.HasBuff("Saber Ward") || !Me.HasBuff("Force Camouflage")),
Spell.Buff("Frenzy", ret => Me.BuffCount("Fury") < 5),
Spell.Buff("Berserk", ret => Me.CurrentTarget.Distance <= 0.4f),
Spell.Cast("Obfuscate", ret => Me.CurrentTarget.StrongOrGreater() && Me.CurrentTarget.BossOrGreater())
);
}
}
}
public override Composite SingleTarget
{
get
{
return new PrioritySelector(
Spell.Cast("Dual Saber Throw",
ret => !DefaultCombat.MovementDisabled && Me.CurrentTarget.Distance >= 1f && Me.CurrentTarget.Distance <= 3f),
Spell.Cast("Force Charge",
ret => !DefaultCombat.MovementDisabled && Me.CurrentTarget.Distance >= 1f && Me.CurrentTarget.Distance <= 3f),
//Movement
CombatMovement.CloseDistance(Distance.Melee),
//Rotation
Spell.Cast("Disruption", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
Spell.Cast("Force Choke", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
Spell.Cast("Vicious Throw", ret => Me.HasBuff("Slaughter") || Me.CurrentTarget.HealthPercent <= 30),
Spell.Cast("Gore", ret => Me.CurrentTarget.Distance <= 0.4f),
Spell.Cast("Ravage", ret => Me.HasBuff("Gore") && Me.HasBuff("Berserk")),
Spell.Cast("Devastating Blast", ret => Me.HasBuff("Execute") && Me.Level >= 57),
Spell.Cast("Force Scream", ret => Me.HasBuff("Execute") && Me.Level < 57),
Spell.Cast("Massacre"),
Spell.Cast("Vicious Slash", ret => Me.ActionPoints >= 9),
Spell.Cast("Battering Assault", ret => Me.ActionPoints <= 6),
Spell.Cast("Assault", ret => Me.ActionPoints <= 10),
Spell.Cast("Dual Saber Throw")
);
}
}
public override Composite AreaOfEffect
{
get
{
return new Decorator(ret => Targeting.ShouldPbaoe,
new PrioritySelector(
Spell.Cast("Smash"),
Spell.Buff("Intimidating Roar", ret => Me.CurrentTarget.Distance <= 3f && (Buddy.CommonBot.AbilityManager.CanCast("Smash", Me.CurrentTarget) || Buddy.CommonBot.AbilityManager.CanCast("Sweeping Slash", Me.CurrentTarget))),
Spell.Cast("Sweeping Slash")
));
}
}
}
}
well i havent read a guide that says i need to see how many action points i have before i cast an ability so i dont have and that for the typo catch
No worries! I was figuring that since there was an action point mark off in other routine scripts that it would be wise to have them in this one as well. However, even though the basic one works, it doesn't operate for my Mara Carn (level 11) at all when I modify the code even a bit. The script doesn't even contain "Vicious Slash." Any word from the devs on how to get this script to work?
@Everyone: I've used the script I posted above line for line with exception to ability names with my sentinel since level ~13. Why does it not function for the marauder the same way, since all I'm doing is switching ability names?
No idea. Post the build you're using and I'll look at it.
// Copyright (C) 2011-2015 Bossland GmbH
// See the file LICENSE for the source code's detailed license
using Buddy.BehaviorTree;
using DefaultCombat.Core;
using DefaultCombat.Helpers;
namespace DefaultCombat.Routines
{
internal class Combat : RotationBase
{
public override string Name
{
get { return "Sentinel Combat"; }
}
public override Composite Buffs
{
get
{
return new PrioritySelector(
Spell.Buff("Ataru Form"),
Spell.Buff("Force Might")
);
}
}
public override Composite Cooldowns
{
get
{
return new PrioritySelector(
Spell.Buff("Resolute"),
Spell.Buff("Rebuke", ret => Me.HealthPercent <= 90),
//Spell.Buff("Saber Reflect", ret => Me.HealthPercent <= 70),
Spell.Buff("Saber Ward", ret => Me.HealthPercent <= 50),
//Spell.Buff("Force Camouflage", ret => Me.HealthPercent <= 50 && Me.HasBuff("Saber Ward")),
Spell.Buff("Guarded By The Force", ret => Me.HealthPercent <= 25 && Me.HasBuff("Saber Ward") || !Me.HasBuff("Force Camouflage")),
Spell.Buff("Heroic Moment", ret => Me.HealthPercent <= 30),
Spell.Buff("Valorous Call", ret => Me.BuffCount("Centering") < 5),
Spell.Buff("Zen", ret => Me.CurrentTarget.Distance <= 0.4f),
Spell.Cast("Pacify", ret => Me.CurrentTarget.StrongOrGreater() && Me.CurrentTarget.BossOrGreater())
);
}
}
public override Composite SingleTarget
{
get
{
return new PrioritySelector(
Spell.Cast("Twin Saber Throw",
ret => !DefaultCombat.MovementDisabled && Me.CurrentTarget.Distance >= 1f && Me.CurrentTarget.Distance <= 3f),
Spell.Cast("Force Leap",
ret => !DefaultCombat.MovementDisabled && Me.CurrentTarget.Distance >= 1f && Me.CurrentTarget.Distance <= 3f),
//Movement
CombatMovement.CloseDistance(Distance.Melee),
//Rotation
//Spell.Cast("Force Kick", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
//Spell.Cast("Force Stasis", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
Spell.Cast("Dispatch", ret => Me.HasBuff("Hand of Justice") || Me.CurrentTarget.HealthPercent <= 30),
Spell.Cast("Precision", ret => Me.CurrentTarget.Distance <= 0.4f),
Spell.Cast("Blade Dance", ret => Me.HasBuff("Precision")),
//Spell.Cast("Clashing Blast", ret => Me.HasBuff("Opportune Attack") && Me.Level >= 57),
Spell.Cast("Blade Storm", ret => Me.HasBuff("Opportune Attack") && Me.Level < 57),
Spell.Cast("Blade Rush"),
//Spell.Cast("Slash", ret => Me.ActionPoints >= 7 && Me.Level < 26),
Spell.Cast("Zealous Strike", ret => Me.ActionPoints <= 7),
Spell.Cast("Strike", ret => Me.ActionPoints <= 10),
Spell.Cast("Twin Saber Throw")
);
}
}
public override Composite AreaOfEffect
{
get
{
return new Decorator(ret => Targeting.ShouldPbaoe,
new PrioritySelector(
Spell.Cast("Force Sweep"),
//Spell.Buff("Awe", ret => Me.CurrentTarget.Distance <= 3f && (Buddy.CommonBot.AbilityManager.CanCast("Force Sweep", Me.CurrentTarget) || Buddy.CommonBot.AbilityManager.CanCast("Cyclone Slash", Me.CurrentTarget))),
Spell.Cast("Cyclone Slash")
));
}
}
}
}
// Copyright (C) 2011-2015 Bossland GmbH
// See the file LICENSE for the source code's detailed license
using Buddy.BehaviorTree;
using DefaultCombat.Core;
using DefaultCombat.Helpers;
namespace DefaultCombat.Routines
{
internal class Carnage : RotationBase
{
public override string Name
{
get { return "Marauder Carnage"; }
}
public override Composite Buffs
{
get
{
return new PrioritySelector(
Spell.Buff("Ataru Form"),
Spell.Buff("Unnatural Might")
);
}
}
public override Composite Cooldowns
{
get
{
return new PrioritySelector(
Spell.Buff("Unleash"),
Spell.Buff("Cloak of Pain", ret => Me.HealthPercent <= 90),
Spell.Buff("Saber Ward", ret => Me.HealthPercent <= 50),
Spell.Buff("Force Camouflage", ret => Me.HealthPercent <= 50 && Me.HasBuff("Saber Ward")),
Spell.Buff("Undying Rage", ret => Me.HealthPercent <= 25 && Me.HasBuff("Saber Ward") || !Me.HasBuff("Force Camouflage")),
Spell.Buff("Frenzy", ret => Me.BuffCount("Fury") < 5),
Spell.Buff("Berserk", ret => Me.CurrentTarget.Distance <= 0.4f),
Spell.Cast("Obfuscate", ret => Me.CurrentTarget.StrongOrGreater() && Me.CurrentTarget.BossOrGreater())
);
}
}
}
public override Composite SingleTarget
{
get
{
return new PrioritySelector(
Spell.Cast("Dual Saber Throw",
ret => !DefaultCombat.MovementDisabled && Me.CurrentTarget.Distance >= 1f && Me.CurrentTarget.Distance <= 3f),
Spell.Cast("Force Charge",
ret => !DefaultCombat.MovementDisabled && Me.CurrentTarget.Distance >= 1f && Me.CurrentTarget.Distance <= 3f),
//Movement
CombatMovement.CloseDistance(Distance.Melee),
//Rotation
Spell.Cast("Disruption", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
Spell.Cast("Force Choke", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
Spell.Cast("Vicious Throw", ret => Me.HasBuff("Slaughter") || Me.CurrentTarget.HealthPercent <= 30),
Spell.Cast("Gore", ret => Me.CurrentTarget.Distance <= 0.4f),
Spell.Cast("Ravage", ret => Me.HasBuff("Gore") && Me.HasBuff("Berserk")),
Spell.Cast("Devastating Blast", ret => Me.HasBuff("Execute") && Me.Level >= 57),
Spell.Cast("Force Scream", ret => Me.HasBuff("Execute") && Me.Level < 57),
Spell.Cast("Massacre"),
Spell.Cast("Vicious Slash", ret => Me.ActionPoints >= 9),
Spell.Cast("Battering Assault", ret => Me.ActionPoints <= 6),
Spell.Cast("Assault", ret => Me.ActionPoints <= 10),
Spell.Cast("Dual Saber Throw")
);
}
}
public override Composite AreaOfEffect
{
get
{
return new Decorator(ret => Targeting.ShouldPbaoe,
new PrioritySelector(
Spell.Cast("Smash"),
Spell.Buff("Intimidating Roar", ret => Me.CurrentTarget.Distance <= 3f && (Buddy.CommonBot.AbilityManager.CanCast("Smash", Me.CurrentTarget) || Buddy.CommonBot.AbilityManager.CanCast("Sweeping Slash", Me.CurrentTarget))),
Spell.Cast("Sweeping Slash")
));
}
}
}
}
2015-11-13 01:16:31,794 [7] ERROR Log - Compiler Error: c:\Users\Ace\Documents\Lake Sentinel\Routines\DefaultCombat\Routines\Advanced\Marauder\Carnage.cs(46,19) : error CS1518: Expected class, delegate, enum, interface, or struct
2015-11-13 01:16:31,794 [7] ERROR Log - Compiler Error: c:\Users\Ace\Documents\Lake Sentinel\Routines\DefaultCombat\Routines\Advanced\Marauder\Carnage.cs(50,16) : error CS1518: Expected class, delegate, enum, interface, or struct
2015-11-13 01:16:31,794 [7] ERROR Log - Compiler Error: c:\Users\Ace\Documents\Lake Sentinel\Routines\DefaultCombat\Routines\Advanced\Marauder\Carnage.cs(74,3) : error CS1022: Type or namespace definition, or end-of-file expected
2015-11-13 01:16:31,795 [7] ERROR Log - Compiler Error: c:\Users\Ace\Documents\Lake Sentinel\Routines\DefaultCombat\Routines\Advanced\Marauder\Carnage.cs(76,19) : error CS1518: Expected class, delegate, enum, interface, or struct
2015-11-13 01:16:31,795 [7] ERROR Log - Compiler Error: c:\Users\Ace\Documents\Lake Sentinel\Routines\DefaultCombat\Routines\Advanced\Marauder\Carnage.cs(80,16) : error CS1518: Expected class, delegate, enum, interface, or struct
2015-11-13 01:16:31,795 [7] ERROR Log - Compiler Error: c:\Users\Ace\Documents\Lake Sentinel\Routines\DefaultCombat\Routines\Advanced\Marauder\Carnage.cs(81,10) : error CS1518: Expected class, delegate, enum, interface, or struct
2015-11-13 01:16:31,795 [7] ERROR Log - Compiler Error: c:\Users\Ace\Documents\Lake Sentinel\Routines\DefaultCombat\Routines\Advanced\Marauder\Carnage.cs(86,4) : error CS1022: Type or namespace definition, or end-of-file expected
2015-11-13 01:16:31,797 [7] ERROR Log - Unhandled exception during init:
System.InvalidOperationException: No routines were loaded. Please ensure there is a routine for your class before starting the bot.
at Buddy.CommonBot.BotMain.SetCurrentCombatRoutine()
its from editing i suggest when you edit do it little by little and try running it every so often cause you messed up in the coding somewhere id suggest to re start with fresh routine or you can continue to chase the dragon
// Copyright (C) 2011-2015 Bossland GmbH
// See the file LICENSE for the source code's detailed license
using Buddy.BehaviorTree;
using DefaultCombat.Core;
using DefaultCombat.Helpers;
namespace DefaultCombat.Routines
{
internal class Carnage : RotationBase
{
public override string Name
{
get { return "Marauder Carnage"; }
}
public override Composite Buffs
{
get
{
return new PrioritySelector(
Spell.Buff("Ataru Form"),
Spell.Buff("Unnatural Might")
);
}
}
public override Composite Cooldowns
{
get
{
return new PrioritySelector(
Spell.Buff("Unleash"),
Spell.Buff("Cloak of Pain", ret => Me.HealthPercent <= 90),
//Spell.Buff("Saber Reflect", ret => Me.HealthPercent <= 70),
Spell.Buff("Saber Ward", ret => Me.HealthPercent <= 50),
Spell.Buff("Force Camouflage", ret => Me.HealthPercent <= 50 && Me.HasBuff("Saber Ward")),
Spell.Buff("Undying Rage",
ret => Me.HealthPercent <= 25 && Me.HasBuff("Saber Ward") || !Me.HasBuff("Force Camouflage")),
Spell.Buff("Heroic Moment", ret => Me.HealthPercent <= 30),
Spell.Buff("Frenzy", ret => Me.BuffCount("Fury") < 5),
Spell.Buff("Berserk", ret => Me.CurrentTarget.Distance <= 0.4f),
Spell.Cast("Obfuscate", ret => Me.CurrentTarget.StrongOrGreater() && Me.CurrentTarget.BossOrGreater())
);
}
}
public override Composite SingleTarget
{
get
{
return new PrioritySelector(
Spell.Cast("Dual Saber Throw",
ret => !DefaultCombat.MovementDisabled && Me.CurrentTarget.Distance >= 1f && Me.CurrentTarget.Distance <= 3f),
Spell.Cast("Force Charge",
ret => !DefaultCombat.MovementDisabled && Me.CurrentTarget.Distance >= 1f && Me.CurrentTarget.Distance <= 3f),
//Movement
CombatMovement.CloseDistance(Distance.Melee),
//Rotation
//Spell.Cast("Disruption", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
//Spell.Cast("Force Choke", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
Spell.Cast("Vicious Throw", ret => Me.HasBuff("Slaughter") || Me.CurrentTarget.HealthPercent <= 30),
Spell.Cast("Gore", ret => Me.CurrentTarget.Distance <= 0.4f),
Spell.Cast("Ravage", ret => Me.BuffTimeLeft("Gore") >= 2.9),
//Spell.Cast("Devastating Blast", ret => Me.HasBuff("Execute") && Me.Level >= 57),
Spell.Cast("Force Scream", ret => Me.HasBuff("Execute") && Me.Level < 57),
Spell.Cast("Massacre"),
Spell.Cast("Vicious Slash", ret => Me.ActionPoints >= 7 && Me.Level < 26),
Spell.Cast("Battering Assault", ret => Me.ActionPoints <= 7),
Spell.Cast("Assault", ret => Me.ActionPoints <= 10),
Spell.Cast("Dual Saber Throw")
);
}
}
public override Composite AreaOfEffect
{
get
{
return new Decorator(ret => Targeting.ShouldPbaoe,
new PrioritySelector(
Spell.Cast("Smash"),
Spell.Buff("Intimidating Roar",
ret => Me.CurrentTarget.Distance <= 3f && (Buddy.CommonBot.AbilityManager.CanCast("Smash", Me.CurrentTarget) || Buddy.CommonBot.AbilityManager.CanCast("Sweeping Slash", Me.CurrentTarget))),
Spell.Cast("Sweeping Slash")
));
}
}
}
}
gratz what did you you mess up and when i say this ive pounded my face into a comp for 3 hours to find a i added an extra semi colon once lolGood spot man! I finally managed to get it to work.
gratz what did you you mess up and when i say this ive pounded my face into a comp for 3 hours to find a i added an extra semi colon once lol
// Copyright (C) 2011-2015 Bossland GmbH
// See the file LICENSE for the source code's detailed license
using Buddy.BehaviorTree;
using DefaultCombat.Core;
using DefaultCombat.Helpers;
namespace DefaultCombat.Routines
{
internal class Engineering : RotationBase
{
public override string Name
{
get { return "Sniper Engineering"; }
}
public override Composite Buffs
{
get
{
return new PrioritySelector(
Spell.Buff("Coordination")
);
}
}
public override Composite Cooldowns
{
get
{
return new PrioritySelector(
Spell.Buff("Escape"),
Spell.Buff("Shield Probe", ret => Me.HealthPercent <= 50),
Spell.Buff("Evasion", ret => Me.HealthPercent <= 30),
Spell.Buff("Adrenaline Probe", ret => Me.EnergyPercent <= 55),
Spell.Buff("Laze Target"),
Spell.Cast("Target Acquired")
);
}
}
public override Composite SingleTarget
{
get
{
return new PrioritySelector(
//Movement
CombatMovement.CloseDistance(Distance.Melee),
//Low Energy
new Decorator(ret => Me.EnergyPercent < 30,
new PrioritySelector(
Spell.Cast("Fragmentation Grenade", ret => Me.HasBuff("Energy Overrides")),
Spell.Cast("Rifle Shot")
)),
//Rotation
Spell.Cast("Distraction", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled),
Spell.Cast("Series of Shots"),
Spell.Cast("Explosive Probe"),
Spell.DoTGround("Plasma Probe", 9000),
Spell.DoT("Interrogation Probe", "Interrogation Probe"),
Spell.Cast("EMP Discharge", ret => Me.CurrentTarget.HasDebuff("Interrogation Probe")),
Spell.Cast("Fragmentation Grenade", ret => Me.HasBuff("Energy Overrides")),
Spell.DoT("Corrosive Dart", "Corrosive Dart"),
Spell.Cast("Takedown", ret => Me.CurrentTarget.HealthPercent <= 30),
Spell.CastOnGround("Orbital Strike", ret => Me.EnergyPercent > 75),
Spell.Cast("Fragmentation Grenade"),
Spell.Cast("Overload Shot", ret => Me.BuffCount("Calculated Pursuit") == 4),
Spell.Cast("Rifle Shot")
);
}
}
public override Composite AreaOfEffect
{
get
{
return new Decorator(ret => Targeting.ShouldAoe,
new PrioritySelector(
Spell.CastOnGround("Orbital Strike"),
Spell.DoTGround("Plasma Probe", 9000),
Spell.Cast("Suppressive Fire")
));
}
}
}
}
dps increase and better on energy consumption Sniper Engineer
Code:// Copyright (C) 2011-2015 Bossland GmbH // See the file LICENSE for the source code's detailed license using Buddy.BehaviorTree; using DefaultCombat.Core; using DefaultCombat.Helpers; namespace DefaultCombat.Routines { internal class Engineering : RotationBase { public override string Name { get { return "Sniper Engineering"; } } public override Composite Buffs { get { return new PrioritySelector( Spell.Buff("Coordination") ); } } public override Composite Cooldowns { get { return new PrioritySelector( Spell.Buff("Escape"), Spell.Buff("Shield Probe", ret => Me.HealthPercent <= 50), Spell.Buff("Evasion", ret => Me.HealthPercent <= 30), Spell.Buff("Adrenaline Probe", ret => Me.EnergyPercent <= 55), Spell.Buff("Laze Target"), Spell.Cast("Target Acquired") ); } } public override Composite SingleTarget { get { return new PrioritySelector( //Movement CombatMovement.CloseDistance(Distance.Melee), //Low Energy new Decorator(ret => Me.EnergyPercent < 30, new PrioritySelector( Spell.Cast("Fragmentation Grenade", ret => Me.HasBuff("Energy Overrides")), Spell.Cast("Rifle Shot") )), //Rotation Spell.Cast("Distraction", ret => Me.CurrentTarget.IsCasting && !DefaultCombat.MovementDisabled), Spell.Cast("Series of Shots"), Spell.Cast("Explosive Probe"), Spell.DoTGround("Plasma Probe", 9000), Spell.DoT("Interrogation Probe", "Interrogation Probe"), Spell.Cast("EMP Discharge", ret => Me.CurrentTarget.HasDebuff("Interrogation Probe")), Spell.Cast("Fragmentation Grenade", ret => Me.HasBuff("Energy Overrides")), Spell.DoT("Corrosive Dart", "Corrosive Dart"), Spell.Cast("Takedown", ret => Me.CurrentTarget.HealthPercent <= 30), Spell.CastOnGround("Orbital Strike", ret => Me.EnergyPercent > 75), Spell.Cast("Fragmentation Grenade"), Spell.Cast("Overload Shot", ret => Me.BuffCount("Calculated Pursuit") == 4), Spell.Cast("Rifle Shot") ); } } public override Composite AreaOfEffect { get { return new Decorator(ret => Targeting.ShouldAoe, new PrioritySelector( Spell.CastOnGround("Orbital Strike"), Spell.DoTGround("Plasma Probe", 9000), Spell.Cast("Suppressive Fire") )); } } } }