using System;
using System.Linq;
using Buddy.BehaviorTree;
using Buddy.Common;
using Buddy.CommonBot;
using Buddy.Swtor;
using DefaultCombat.Dynamics;
using Action = Buddy.BehaviorTree.Action;
namespace DefaultCombat.Routines
{
// Darkness Assassin v1.0 - Cystacae/Edited by Neo93
// Known Bugs: Can't get behind on pull, Also same as Madness Assassin that randomly Force Lightning may interfere. I only say may because I have yet to see it but Madness code is relatively the same.
public static class AssassinDarkness
{
[Behavior(BehaviorType.Pull)]
[Class(CharacterClass.Inquisitor, AdvancedClass.Assassin, SkillTreeId.AssassinDarkness)]
public static Composite AssassinDarknessPull()
{
return new PrioritySelector(
Spell.Cast("Force Speed", ret => BuddyTor.Me.CurrentTarget.Distance >= Global.MeleeDist && BuddyTor.Me.CurrentTarget.Distance <= 4f),
Movement.MoveTo(ret => BuddyTor.Me.CurrentTarget.Position, Global.MeleeDist),
Spell.Cast("Maul", ret => BuddyTor.Me.HasBuff("Stealth"))
);
}
[Behavior(BehaviorType.Combat)]
[Class(CharacterClass.Inquisitor, AdvancedClass.Assassin, SkillTreeId.AssassinDarkness)]
public static Composite AssassinDarknessCombat()
{
return new PrioritySelector(
Spell.WaitForCast(),
Movement.StopInRange(Global.MeleeDist),
//***Generel***
Spell.Cast("Force Speed", ret => BuddyTor.Me.CurrentTarget.Distance >= Global.MeleeDist && BuddyTor.Me.CurrentTarget.Distance <= 4f),
Spell.Cast("Surging Charge", ret => !BuddyTor.Me.HasBuff("Surging Charge")),
Spell.Cast("Unbreakable Will", ret => BuddyTor.Me.IsStunned),
Spell.Cast("Recklessness", castWhen => BuddyTor.Me.InCombat && !BuddyTor.Me.HasBuff("Recklessness")),
Spell.Cast("Dark Ward", castWhen => BuddyTor.Me.InCombat && !BuddyTor.Me.HasBuff("Dark Ward")),
Spell.Cast("Dark Charge", castWhen => BuddyTor.Me.InCombat && !BuddyTor.Me.HasBuff("Dark Charge")),
//**Defensive**
Spell.Cast("Deflection", ret => BuddyTor.Me.InCombat && BuddyTor.Me.HealthPercent <= 40),
Spell.Cast("Force Shroud", ret => BuddyTor.Me.InCombat && BuddyTor.Me.HealthPercent <= 20),
Spell.Cast("Overcharge Saber", ret => BuddyTor.Me.HealthPercent <= 30),
//**CC**
Spell.Cast("Whirlwind", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 4),
//*Interrupts*
Spell.Cast("Jolt", ret => BuddyTor.Me.CurrentTarget.IsCasting),
Spell.Cast("Electrocute", ret => BuddyTor.Me.CurrentTarget.IsCasting),
Spell.Cast("Low Slash", ret => BuddyTor.Me.CurrentTarget.IsCasting),
//Rotation
Spell.Cast("Maul", castWhen => BuddyTor.Me.HasBuff("Stealth")),
Spell.Cast("Maul", castWhen => BuddyTor.Me.HasBuff("Conspirator's Cloak")),
Spell.Cast("Force Lightning", ret => BuddyTor.Me.HasBuff("Harnessed Darkness") && BuddyTor.Me.Buffs.FirstOrDefault(B => B.Name == "Harnessed Darkness").Stacks > 2),
Spell.Cast("Wither", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 1),
Spell.Cast("Spike"),
Spell.Cast("Discharge", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 2),
Spell.Cast("Shock", ret => BuddyTor.Me.HasBuff("Energize")),
Spell.Cast("Assassinate", castWhen => BuddyTor.Me.CurrentTarget.HealthPercent <= 30),
Spell.Cast("Thrash"),
Spell.Cast("Saber Strike"),
//Movement
Movement.MoveTo(ret => BuddyTor.Me.CurrentTarget.Position, Global.MeleeDist)
);
}
[Behavior(BehaviorType.OutOfCombat)]
[Class(CharacterClass.Inquisitor, AdvancedClass.Assassin, SkillTreeId.AssassinDarkness)]
public static Composite AssassinDarknessOutOfCombat()
{
return new PrioritySelector(
Spell.Cast("Stealth", castWhen => !BuddyTor.Me.HasBuff("Stealth")),
Spell.Cast("Surging Charge", ret => !BuddyTor.Me.HasBuff("Surging Charge"))
);
}
}
}
Code:using System; using System.Linq; using Buddy.BehaviorTree; using Buddy.Common; using Buddy.CommonBot; using Buddy.Swtor; using DefaultCombat.Dynamics; using Action = Buddy.BehaviorTree.Action; namespace DefaultCombat.Routines { // Darkness Assassin v1.0 - Cystacae/Edited by Neo93 // Known Bugs: Can't get behind on pull, Also same as Madness Assassin that randomly Force Lightning may interfere. I only say may because I have yet to see it but Madness code is relatively the same. public static class AssassinDarkness { [Behavior(BehaviorType.Pull)] [Class(CharacterClass.Inquisitor, AdvancedClass.Assassin, SkillTreeId.AssassinDarkness)] public static Composite AssassinDarknessPull() { return new PrioritySelector( Spell.Cast("Force Speed", ret => BuddyTor.Me.CurrentTarget.Distance >= Global.MeleeDist && BuddyTor.Me.CurrentTarget.Distance <= 4f), Movement.MoveTo(ret => BuddyTor.Me.CurrentTarget.Position, Global.MeleeDist), Spell.Cast("Maul", ret => BuddyTor.Me.HasBuff("Stealth")) ); } [Behavior(BehaviorType.Combat)] [Class(CharacterClass.Inquisitor, AdvancedClass.Assassin, SkillTreeId.AssassinDarkness)] public static Composite AssassinDarknessCombat() { return new PrioritySelector( Spell.WaitForCast(), Movement.StopInRange(Global.MeleeDist), //***Generel*** Spell.Cast("Force Speed", ret => BuddyTor.Me.CurrentTarget.Distance >= Global.MeleeDist && BuddyTor.Me.CurrentTarget.Distance <= 4f), Spell.Cast("Surging Charge", ret => !BuddyTor.Me.HasBuff("Surging Charge")), Spell.Cast("Unbreakable Will", ret => BuddyTor.Me.IsStunned), Spell.Cast("Recklessness", castWhen => BuddyTor.Me.InCombat && !BuddyTor.Me.HasBuff("Recklessness")), Spell.Cast("Dark Ward", castWhen => BuddyTor.Me.InCombat && !BuddyTor.Me.HasBuff("Dark Ward")), Spell.Cast("Dark Charge", castWhen => BuddyTor.Me.InCombat && !BuddyTor.Me.HasBuff("Dark Charge")), //**Defensive** Spell.Cast("Deflection", ret => BuddyTor.Me.InCombat && BuddyTor.Me.HealthPercent <= 40), Spell.Cast("Force Shroud", ret => BuddyTor.Me.InCombat && BuddyTor.Me.HealthPercent <= 20), Spell.Cast("Overcharge Saber", ret => BuddyTor.Me.HealthPercent <= 30), //**CC** Spell.Cast("Whirlwind", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 4), //*Interrupts* Spell.Cast("Jolt", ret => BuddyTor.Me.CurrentTarget.IsCasting), Spell.Cast("Electrocute", ret => BuddyTor.Me.CurrentTarget.IsCasting), Spell.Cast("Low Slash", ret => BuddyTor.Me.CurrentTarget.IsCasting), //Rotation Spell.Cast("Maul", castWhen => BuddyTor.Me.HasBuff("Stealth")), Spell.Cast("Maul", castWhen => BuddyTor.Me.HasBuff("Conspirator's Cloak")), Spell.Cast("Force Lightning", ret => BuddyTor.Me.HasBuff("Harnessed Darkness") && BuddyTor.Me.Buffs.FirstOrDefault(B => B.Name == "Harnessed Darkness").Stacks > 2), Spell.Cast("Wither", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 1), Spell.Cast("Spike"), Spell.Cast("Discharge", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 2), Spell.Cast("Shock", ret => BuddyTor.Me.HasBuff("Energize")), Spell.Cast("Assassinate", castWhen => BuddyTor.Me.CurrentTarget.HealthPercent <= 30), Spell.Cast("Thrash"), Spell.Cast("Saber Strike"), //Movement Movement.MoveTo(ret => BuddyTor.Me.CurrentTarget.Position, Global.MeleeDist) ); } [Behavior(BehaviorType.OutOfCombat)] [Class(CharacterClass.Inquisitor, AdvancedClass.Assassin, SkillTreeId.AssassinDarkness)] public static Composite AssassinDarknessOutOfCombat() { return new PrioritySelector( Spell.Cast("Stealth", castWhen => !BuddyTor.Me.HasBuff("Stealth")), Spell.Cast("Surging Charge", ret => !BuddyTor.Me.HasBuff("Surging Charge")) ); } } }
I Changed Some stuff for mine it works awesome....But I am still getting that bug that after he cast force lighting once he wont cast it again io
Can you post a log so I can take a look at why this may be happening.
Code:using System; using System.Linq; using Buddy.BehaviorTree; using Buddy.Common; using Buddy.CommonBot; using Buddy.Swtor; using DefaultCombat.Dynamics; using Action = Buddy.BehaviorTree.Action; namespace DefaultCombat.Routines { // Darkness Assassin v1.0 - Cystacae/Edited by Neo93 // Known Bugs: Can't get behind on pull, Also same as Madness Assassin that randomly Force Lightning may interfere. I only say may because I have yet to see it but Madness code is relatively the same. public static class AssassinDarkness { [Behavior(BehaviorType.Pull)] [Class(CharacterClass.Inquisitor, AdvancedClass.Assassin, SkillTreeId.AssassinDarkness)] public static Composite AssassinDarknessPull() { return new PrioritySelector( Spell.Cast("Force Speed", ret => BuddyTor.Me.CurrentTarget.Distance >= Global.MeleeDist && BuddyTor.Me.CurrentTarget.Distance <= 4f), Movement.MoveTo(ret => BuddyTor.Me.CurrentTarget.Position, Global.MeleeDist), Spell.Cast("Maul", ret => BuddyTor.Me.HasBuff("Stealth")) ); } [Behavior(BehaviorType.Combat)] [Class(CharacterClass.Inquisitor, AdvancedClass.Assassin, SkillTreeId.AssassinDarkness)] public static Composite AssassinDarknessCombat() { return new PrioritySelector( Spell.WaitForCast(), Movement.StopInRange(Global.MeleeDist), //***Generel*** Spell.Cast("Force Speed", ret => BuddyTor.Me.CurrentTarget.Distance >= Global.MeleeDist && BuddyTor.Me.CurrentTarget.Distance <= 4f), Spell.Cast("Surging Charge", ret => !BuddyTor.Me.HasBuff("Surging Charge")), Spell.Cast("Unbreakable Will", ret => BuddyTor.Me.IsStunned), Spell.Cast("Recklessness", castWhen => BuddyTor.Me.InCombat && !BuddyTor.Me.HasBuff("Recklessness")), Spell.Cast("Dark Ward", castWhen => BuddyTor.Me.InCombat && !BuddyTor.Me.HasBuff("Dark Ward")), Spell.Cast("Dark Charge", castWhen => BuddyTor.Me.InCombat && !BuddyTor.Me.HasBuff("Dark Charge")), //**Defensive** Spell.Cast("Deflection", ret => BuddyTor.Me.InCombat && BuddyTor.Me.HealthPercent <= 40), Spell.Cast("Force Shroud", ret => BuddyTor.Me.InCombat && BuddyTor.Me.HealthPercent <= 20), Spell.Cast("Overcharge Saber", ret => BuddyTor.Me.HealthPercent <= 30), //**CC** Spell.Cast("Whirlwind", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 4), //*Interrupts* Spell.Cast("Jolt", ret => BuddyTor.Me.CurrentTarget.IsCasting), Spell.Cast("Electrocute", ret => BuddyTor.Me.CurrentTarget.IsCasting), Spell.Cast("Low Slash", ret => BuddyTor.Me.CurrentTarget.IsCasting), //Rotation Spell.Cast("Maul", castWhen => BuddyTor.Me.HasBuff("Stealth")), Spell.Cast("Maul", castWhen => BuddyTor.Me.HasBuff("Conspirator's Cloak")), Spell.Cast("Force Lightning", ret => BuddyTor.Me.HasBuff("Harnessed Darkness") && BuddyTor.Me.Buffs.FirstOrDefault(B => B.Name == "Harnessed Darkness").Stacks > 2), Spell.Cast("Wither", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 1), Spell.Cast("Spike"), Spell.Cast("Discharge", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 2), Spell.Cast("Shock", ret => BuddyTor.Me.HasBuff("Energize")), Spell.Cast("Assassinate", castWhen => BuddyTor.Me.CurrentTarget.HealthPercent <= 30), Spell.Cast("Thrash"), Spell.Cast("Saber Strike"), //Movement Movement.MoveTo(ret => BuddyTor.Me.CurrentTarget.Position, Global.MeleeDist) ); } [Behavior(BehaviorType.OutOfCombat)] [Class(CharacterClass.Inquisitor, AdvancedClass.Assassin, SkillTreeId.AssassinDarkness)] public static Composite AssassinDarknessOutOfCombat() { return new PrioritySelector( Spell.Cast("Stealth", castWhen => !BuddyTor.Me.HasBuff("Stealth")), Spell.Cast("Surging Charge", ret => !BuddyTor.Me.HasBuff("Surging Charge")) ); } } }
I Changed Some stuff for mine it works awesome....But I am still getting that bug that after he cast force lighting once he wont cast it again io
using System;
using System.Linq;
using Buddy.BehaviorTree;
using Buddy.Common;
using Buddy.CommonBot;
using Buddy.Swtor;
using DefaultCombat.Dynamics;
using Action = Buddy.BehaviorTree.Action;
namespace DefaultCombat.Routines
{
// Darkness Assassin v1.0 - Cystacae/Edited by Neo93
// Known Bugs: Can't get behind on pull, Also same as Madness Assassin that randomly Force Lightning may interfere. I only say may because I have yet to see it but Madness code is relatively the same.
public static class AssassinDarkness
{
[Behavior(BehaviorType.Pull)]
[Class(CharacterClass.Inquisitor, AdvancedClass.Assassin, SkillTreeId.AssassinDarkness)]
public static Composite AssassinDarknessPull()
{
return new PrioritySelector(
Spell.Cast("Force Speed", ret => BuddyTor.Me.CurrentTarget.Distance >= Global.MeleeDist && BuddyTor.Me.CurrentTarget.Distance <= 4f),
Movement.MoveTo(ret => BuddyTor.Me.CurrentTarget.Position, Global.MeleeDist),
Spell.Cast("Maul", ret => BuddyTor.Me.HasBuff("Stealth"))
);
}
[Behavior(BehaviorType.Combat)]
[Class(CharacterClass.Inquisitor, AdvancedClass.Assassin, SkillTreeId.AssassinDarkness)]
public static Composite AssassinDarknessCombat()
{
return new PrioritySelector(
Spell.WaitForCast(),
Movement.StopInRange(Global.MeleeDist),
//***Generel***
Spell.Cast("Force Speed", ret => BuddyTor.Me.CurrentTarget.Distance >= Global.MeleeDist && BuddyTor.Me.CurrentTarget.Distance <= 4f),
Spell.Cast("Surging Charge", ret => !BuddyTor.Me.HasBuff("Surging Charge")),
Spell.Cast("Unbreakable Will", ret => BuddyTor.Me.IsStunned),
Spell.Cast("Recklessness", castWhen => BuddyTor.Me.InCombat && !BuddyTor.Me.HasBuff("Recklessness")),
Spell.Cast("Dark Ward", castWhen => BuddyTor.Me.InCombat && !BuddyTor.Me.HasBuff("Dark Ward")),
Spell.Cast("Dark Charge", castWhen => BuddyTor.Me.InCombat && !BuddyTor.Me.HasBuff("Dark Charge")),
//**Defensive**
Spell.Cast("Deflection", ret => BuddyTor.Me.InCombat && BuddyTor.Me.HealthPercent <= 40),
Spell.Cast("Force Shroud", ret => BuddyTor.Me.InCombat && BuddyTor.Me.HealthPercent <= 20),
Spell.Cast("Overcharge Saber", ret => BuddyTor.Me.HealthPercent <= 30),
//**CC**
Spell.Cast("Whirlwind", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 4),
//*Interrupts*
Spell.Cast("Jolt", ret => BuddyTor.Me.CurrentTarget.IsCasting),
Spell.Cast("Electrocute", ret => BuddyTor.Me.CurrentTarget.IsCasting),
Spell.Cast("Low Slash", ret => BuddyTor.Me.CurrentTarget.IsCasting),
//Rotation
Spell.Cast("Maul", castWhen => BuddyTor.Me.HasBuff("Stealth")),
Spell.Cast("Maul", castWhen => BuddyTor.Me.HasBuff("Conspirator's Cloak")),
Spell.Cast("Force Lightning", castWhen => BuddyTor.Me.HasBuff("Harnessed Darkness") && BuddyTor.Me.Buffs.FirstOrDefault(B => B.Name == "Harnessed Darkness").Stacks == 3),
Spell.Cast("Wither", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 1),
Spell.Cast("Discharge", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 2),
Spell.Cast("Shock", ret => BuddyTor.Me.HasBuff("Energize")),
Spell.Cast("Spike"),
Spell.Cast("Assassinate", castWhen => BuddyTor.Me.CurrentTarget.HealthPercent <= 30),
Spell.Cast("Thrash"),
Spell.Cast("Saber Strike"),
//Movement
Movement.MoveTo(ret => BuddyTor.Me.CurrentTarget.Position, Global.MeleeDist)
);
}
[Behavior(BehaviorType.OutOfCombat)]
[Class(CharacterClass.Inquisitor, AdvancedClass.Assassin, SkillTreeId.AssassinDarkness)]
public static Composite AssassinDarknessOutOfCombat()
{
return new PrioritySelector(
Spell.Cast("Stealth", castWhen => !BuddyTor.Me.HasBuff("Stealth")),
Spell.Cast("Surging Charge", ret => !BuddyTor.Me.HasBuff("Surging Charge"))
);
}
}
}
using System;
using System.Linq;
using Buddy.BehaviorTree;
using Buddy.Common;
using Buddy.CommonBot;
using Buddy.Swtor;
using DefaultCombat.Dynamics;
using Action = Buddy.BehaviorTree.Action;
namespace DefaultCombat.Routines
{
// Darkness Assassin v1.0 - Cystacae/Edited by Neo93
// Known Bugs: Can't get behind on pull, Also same as Madness Assassin that randomly Force Lightning may interfere. I only say may because I have yet to see it but Madness code is relatively the same.
public static class AssassinDarkness
{
[Behavior(BehaviorType.Pull)]
[Class(CharacterClass.Inquisitor, AdvancedClass.Assassin, SkillTreeId.AssassinDarkness)]
public static Composite AssassinDarknessPull()
{
return new PrioritySelector(
Movement.MoveTo(ret => BuddyTor.Me.CurrentTarget.Position, Global.MeleeDist),
Spell.Cast("Maul", ret => BuddyTor.Me.HasBuff("Stealth"))
);
}
[Behavior(BehaviorType.Combat)]
[Class(CharacterClass.Inquisitor, AdvancedClass.Assassin, SkillTreeId.AssassinDarkness)]
public static Composite AssassinDarknessCombat()
{
return new PrioritySelector(
Spell.WaitForCast(),
Movement.StopInRange(Global.MeleeDist),
//***Generel***
Spell.Cast("Surging Charge", ret => !BuddyTor.Me.HasBuff("Surging Charge")),
Spell.Cast("Unbreakable Will", ret => BuddyTor.Me.IsStunned),
Spell.Cast("Recklessness", castWhen => BuddyTor.Me.InCombat && !BuddyTor.Me.HasBuff("Recklessness")),
Spell.Cast("Dark Ward", castWhen => BuddyTor.Me.InCombat && !BuddyTor.Me.HasBuff("Dark Ward")),
Spell.Cast("Dark Charge", castWhen => BuddyTor.Me.InCombat && !BuddyTor.Me.HasBuff("Dark Charge")),
//**Defensive**
Spell.Cast("Deflection", ret => BuddyTor.Me.InCombat && BuddyTor.Me.HealthPercent <= 40),
Spell.Cast("Force Shroud", ret => BuddyTor.Me.InCombat && BuddyTor.Me.HealthPercent <= 20),
Spell.Cast("Overcharge Saber", ret => BuddyTor.Me.HealthPercent <= 30),
//**CC**
Spell.Cast("Whirlwind", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 4),
//*Interrupts*
Spell.Cast("Jolt", ret => BuddyTor.Me.CurrentTarget.IsCasting),
Spell.Cast("Electrocute", ret => BuddyTor.Me.CurrentTarget.IsCasting),
Spell.Cast("Low Slash", ret => BuddyTor.Me.CurrentTarget.IsCasting),
//Rotation
Spell.Cast("Assassinate", castWhen => BuddyTor.Me.CurrentTarget.HealthPercent <= 30),
Spell.Cast("Maul", castWhen => BuddyTor.Me.HasBuff("Stealth")),
Spell.Cast("Maul", castWhen => BuddyTor.Me.HasBuff("Conspirator's Cloak")),
Spell.Cast("Wither", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 1),
Spell.Cast("Discharge", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 2),
Spell.Cast("Shock", ret => BuddyTor.Me.HasBuff("Energize")),
Spell.Cast("Spike"),
Spell.Cast("Force Lightning", castWhen => BuddyTor.Me.HasBuff("Harnessed Darkness") && BuddyTor.Me.HasBuff("Energize")),
Spell.Cast("Thrash"),
Spell.Cast("Saber Strike"),
//Movement
Movement.MoveTo(ret => BuddyTor.Me.CurrentTarget.Position, Global.MeleeDist)
);
}
[Behavior(BehaviorType.OutOfCombat)]
[Class(CharacterClass.Inquisitor, AdvancedClass.Assassin, SkillTreeId.AssassinDarkness)]
public static Composite AssassinDarknessOutOfCombat()
{
return new PrioritySelector(
Spell.Cast("Stealth", castWhen => !BuddyTor.Me.HasBuff("Stealth")),
Spell.Cast("Surging Charge", ret => !BuddyTor.Me.HasBuff("Surging Charge"))
);
}
}
}
Getting a very odd error. A window pops up that says "Unhandled exception: Unable to connect to the remote server"
But then the bot keeps running as if there is no problem. If I hit OK on the error box it crashes the bot. Very peculiar.
Also, it still waits for the full cast of recharge and reload instead of waiting until you're fully healed and moving. (Commando Gunnery)
They also still aren't using death from above, or mortar volley.
*edit*
I know it's late, and you guys have done a lot of work, but I really wish you'd reconsider using the merchelpers file... There are a lot of really smart features those classes that are in that file have that the ones that aren't (such as gunnery) don't have. To name a few are the not full channels on regen spells (and rezzing companion before casting regen spells), buffing people who come near you, and just generally (it seems) more stable and intuitive.
Also, the coding language in that file is a lot simpler, user friendly, and has a lot more options (such as filtering moves used based on strength of mobs etc. and functionality for moves that target the ground) Joe did a lot of good work, and I wish you'd reconsider throwing it all to the winds because it's a little messy (which is totally solved by search functionality).
Just my 2 cents. Trying to help... because as is right now I'd definitely try to veer towards classes that are supported by joe's over what you've got in 2.0 (not trying to be mean, just helpful). The A.I. and functionality just isn't there, and the profiles don't have the versatility.
Code:using System; using System.Linq; using Buddy.BehaviorTree; using Buddy.Common; using Buddy.CommonBot; using Buddy.Swtor; using DefaultCombat.Dynamics; using Action = Buddy.BehaviorTree.Action; namespace DefaultCombat.Routines { // Darkness Assassin v1.0 - Cystacae/Edited by Neo93 // Known Bugs: Can't get behind on pull, Also same as Madness Assassin that randomly Force Lightning may interfere. I only say may because I have yet to see it but Madness code is relatively the same. public static class AssassinDarkness { [Behavior(BehaviorType.Pull)] [Class(CharacterClass.Inquisitor, AdvancedClass.Assassin, SkillTreeId.AssassinDarkness)] public static Composite AssassinDarknessPull() { return new PrioritySelector( Movement.MoveTo(ret => BuddyTor.Me.CurrentTarget.Position, Global.MeleeDist), Spell.Cast("Maul", ret => BuddyTor.Me.HasBuff("Stealth")) ); } [Behavior(BehaviorType.Combat)] [Class(CharacterClass.Inquisitor, AdvancedClass.Assassin, SkillTreeId.AssassinDarkness)] public static Composite AssassinDarknessCombat() { return new PrioritySelector( Spell.WaitForCast(), Movement.StopInRange(Global.MeleeDist), //***Generel*** Spell.Cast("Surging Charge", ret => !BuddyTor.Me.HasBuff("Surging Charge")), Spell.Cast("Unbreakable Will", ret => BuddyTor.Me.IsStunned), Spell.Cast("Recklessness", castWhen => BuddyTor.Me.InCombat && !BuddyTor.Me.HasBuff("Recklessness")), Spell.Cast("Dark Ward", castWhen => BuddyTor.Me.InCombat && !BuddyTor.Me.HasBuff("Dark Ward")), Spell.Cast("Dark Charge", castWhen => BuddyTor.Me.InCombat && !BuddyTor.Me.HasBuff("Dark Charge")), //**Defensive** Spell.Cast("Deflection", ret => BuddyTor.Me.InCombat && BuddyTor.Me.HealthPercent <= 40), Spell.Cast("Force Shroud", ret => BuddyTor.Me.InCombat && BuddyTor.Me.HealthPercent <= 20), Spell.Cast("Overcharge Saber", ret => BuddyTor.Me.HealthPercent <= 30), //**CC** Spell.Cast("Whirlwind", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 4), //*Interrupts* Spell.Cast("Jolt", ret => BuddyTor.Me.CurrentTarget.IsCasting), Spell.Cast("Electrocute", ret => BuddyTor.Me.CurrentTarget.IsCasting), Spell.Cast("Low Slash", ret => BuddyTor.Me.CurrentTarget.IsCasting), //Rotation Spell.Cast("Assassinate", castWhen => BuddyTor.Me.CurrentTarget.HealthPercent <= 30), Spell.Cast("Maul", castWhen => BuddyTor.Me.HasBuff("Stealth")), Spell.Cast("Maul", castWhen => BuddyTor.Me.HasBuff("Conspirator's Cloak")), Spell.Cast("Wither", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 1), Spell.Cast("Discharge", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 2), Spell.Cast("Shock", ret => BuddyTor.Me.HasBuff("Energize")), Spell.Cast("Spike"), Spell.Cast("Force Lightning", castWhen => BuddyTor.Me.HasBuff("Harnessed Darkness") && BuddyTor.Me.HasBuff("Energize")), Spell.Cast("Thrash"), Spell.Cast("Saber Strike"), //Movement Movement.MoveTo(ret => BuddyTor.Me.CurrentTarget.Position, Global.MeleeDist) ); } [Behavior(BehaviorType.OutOfCombat)] [Class(CharacterClass.Inquisitor, AdvancedClass.Assassin, SkillTreeId.AssassinDarkness)] public static Composite AssassinDarknessOutOfCombat() { return new PrioritySelector( Spell.Cast("Stealth", castWhen => !BuddyTor.Me.HasBuff("Stealth")), Spell.Cast("Surging Charge", ret => !BuddyTor.Me.HasBuff("Surging Charge")) ); } } }
Adude this code seems to work perfect have not died yet in my Farming Area!
Insults weren't intended here and I certainly wasn't slamming your ability to code. If anything, I'm slamming mine. One of my points is you'd be able to get a lot more help out of people with joes because the language is more user friendly. Well, I can see I won't be able to convince you, but on the silver lining side:ouch...i am still learning C# and honestly i find that MerHelper file is great but i don't understand a lot of things in there. that's why i ma working the way i am. in the future i will be adding all of the cool stuff that Joe did but for now we need to get all the rotations perfect.
like i said before give me access to your FTP account and let me know what toon to perfect the rotation for, i can only guess with rotations unless i can see how its working in practice. but be patient my friend we will get everything set perfectly, i still need to work to pay my rent and by food to eat for my fam![]()
//***Generel***
Spell.Cast("Tenacity", ret => BuddyTor.Me.IsStunned),
Spell.Cast("Adrenaline Rush", ret => BuddyTor.Me, ret => BuddyTor.Me.HealthPercent <= 30),//-30 Health
//**Defensive**
Spell.BuffSelf("Reactive Shield", ret => BuddyTor.Me.HealthPercent < 40),
//**CC**
Spell.Cast("Concussive Round", on => Helpers.ccTarget(), castWhen => Helpers.Targets.Count() >= 4),
//*Interrupts*
Spell.Cast("Disabling Shot", ret => BuddyTor.Me.CurrentTarget.IsCasting),
Spell.Cast("Cryo Grenade", ret => BuddyTor.Me.CurrentTarget.IsCasting),
//Rotation
Spell.Cast("Concussive Charge", castWhen => BuddyTor.Me.ResourceStat <= 63 && Helpers.Targets.Count(t => t.Distance <= 1) >= 1),//+25 Energy
Spell.Cast("Recharge Cells", castWhen => BuddyTor.Me.ResourceStat <= 68),
Spell.Cast("Advanced Medical Probe", ret => BuddyTor.Me.HealthPercent <= 40),
Spell.Cast("Medical Probe", ret => BuddyTor.Me.HealthPercent <= 50),
Spell.Cast("Reserve Powercell"), //-50 Energy
Spell.Cast("Plasma Grenade"),
Spell.Cast("Full Auto", ret => BuddyTor.Me.HasBuff("Curtain of Fire")),//+16 Energy
Spell.WaitForCast(),
Spell.Cast("High Impact Bolt", ret => BuddyTor.Me.HasBuff("Charged Barrel")),//+16 Energy
Spell.Cast("Grav Round", castWhen => BuddyTor.Me.CurrentTarget.HealthPercent >= 75),
Spell.Cast("Grav Round", castWhen => BuddyTor.Me.ResourceStat <= 68),//+19 Energy
Spell.Cast("Demolition Round"),//+16 Energy
Spell.Cast("Electro Net"),//+8 Energy
Spell.Cast("Sticky Grenade", castWhen => Helpers.Targets.Count() >= 3 && BuddyTor.Me.ResourceStat >= 10),//+16 Energy
Spell.Cast("Pulse Cannon", castWhen => BuddyTor.Me.ResourceStat <= 63 && Helpers.Targets.Count(t => t.Distance <= 1) >= 3),//+25 Energy
Spell.Cast("Grav Round"),//+0 Energy
ouch...i am still learning C# and honestly i find that MerHelper file is great but i don't understand a lot of things in there. that's why i ma working the way i am. in the future i will be adding all of the cool stuff that Joe did but for now we need to get all the rotations perfect.
l:
PLEASE Adude...no ouchies!!!!I am sure that I am not the only one that REALLY appreciate you sharing this with us...and I do not care HOW you do it, because I am way too old to even try to learn how to get it all to work. All I know is it works and works well
Bows to Adude! Must remember to go buy you some lunch..![]()
NOW THIS IS MOTIVATION!!!!!! I THINK I WILL GO DO SOME EPIC CODING NOW.... after lunched thought
![]()