Gunnery. 3 points in ironsights the increase aim. Also notice when cast Recharge and Reload. It waits till whole 15 seconds is done even if only lil low on health. Not sure if that is CC or BW. Using kicks profile if that part matters.
Trooper CC Update ok guys here you go. Vanguard(Tactics) View attachment Tact.cs Vanguard(Assault) View attachment Assault.cs Commando(Assault) View attachment Assault.cs Commando(Gunnery) View attachment Gunnery.cs - No Changes since last one. some testing done but feedback would be appreciated.
Oki got it to work with the combat bot profile, but have a few questions: 1) is there any chance to get the CC to only do Force Lightning when i have 3 stacks of Harnessed Darkness 2) Is there a chance for the CC to pop Dark Ward when ever i don't have any charges left on me or when it's off CD? can't think of anything else right now, but will keep trying it out
ah oki, just thought, since it used pretty much all my skills .. but guess i'll have to wait with the darkness then
I would like to invite all the Sorc's (Madness and Lightning versions of you) to test the Custom Class, any feedback will be much appreciated. I would like to know how it performs at various levels, the testing that was done on it was mostly on a low level toon and a level 50 toon, so, i would like to invite you all to test it and give feedback.
As the level 50 sorc who tested the CC's, I can vouch that it is working great. No bugs that I found at level 50. doing about 900 dps on lightning build and up to 1150 on dps on Madness build.
Testing Marauder Carnage now. lvl 20. doing good so far. On Balmorra doing easier type mobs. No problems.
Here's my current Watchman Sentinel CC: Code: using System; using System.Linq; using Buddy.BehaviorTree; using Buddy.Common; using Buddy.CommonBot; using Buddy.Swtor; using WingIt.Dynamics; using Action = Buddy.BehaviorTree.Action; namespace WingIt.Routines { public static class SentinelWatchman { [Class(CharacterClass.Knight, AdvancedClass.Sentinel, SkillTreeId.SentinelWatchman)] [Behavior(BehaviorType.Combat)] public static Composite SentinelWatchmanCombat() { return new PrioritySelector( Movement.StopInRange(0.4f), Spell.WaitForCast(), // Pull Spell.Cast("Force Leap", ret => BuddyTor.Me.CurrentTarget.Distance >= 1f), //+3 Focuse/15s CD/30m Range - Pull Spell.Cast("Overload Saber", castWhen => !BuddyTor.Me.HasBuff("Overload Saber")), // CC Break Spell.Cast("Resolve", castWhen => BuddyTor.Me.IsStunned), //Insignia/2m CD Spell.Cast("Valorous Call", castWhen => !BuddyTor.Me.HasBuff("Centering")), // Zen, top priority Spell.Cast("Zen", castWhen => BuddyTor.Me.Buffs.FirstOrDefault(B => B.Name == "Centering").Stacks == 30 && !BuddyTor.Me.HasBuff("Zen")), // Group buffs //Spell.Cast("Inspiration", castWhen => BuddyTor.Me.CurrentTarget.Debuffs.FirstOrDefault(B => B.Name == "Centering").Stacks == 30 && BuddyTor.Me.InCombat),//5m CD //Spell.Cast("Transcendence", castWhen => BuddyTor.Me.CurrentTarget.Debuffs.FirstOrDefault(B => B.Name == "Centering").Stacks == 30 && BuddyTor.Me.HealthPercent <= 50 || (BuddyTor.Me.CurrentTarget.Distance >= 30 && !AbilityManager.CanCast("Force Charge", BuddyTor.Me.CurrentTarget))), Spell.Cast("Combat Focus", castWhen => BuddyTor.Me.InCombat && BuddyTor.Me.ResourceStat <= 6), //# Spell.Cast("Pacify", castwhen => BuddyTor.Me.CurrentTarget.Toughness == CombatToughness.Player || BuddyTor.Me.CurrentTarget.Toughness == CombatToughness.Standard || BuddyTor.Me.CurrentTarget.Toughness == CombatToughness.Strong || BuddyTor.Me.CurrentTarget.Toughness == CombatToughness.Weak), // Defensive abilities Spell.BuffSelf("Rebuke", castWhen => BuddyTor.Me.InCombat && BuddyTor.Me.HealthPercent <= 70),//1m CD Spell.BuffSelf("Saber Ward", castWhen => BuddyTor.Me.InCombat && BuddyTor.Me.HealthPercent <= 50),//3m CD Spell.BuffSelf("Force Camouflage", castWhen => BuddyTor.Me.InCombat && BuddyTor.Me.HealthPercent <= 20),//45s CD Spell.BuffSelf("Guarded by the Force", castWhen => BuddyTor.Me.InCombat && BuddyTor.Me.HealthPercent <= 10),//1m15s CD //**CC** Spell.Cast("Force Kick", castWhen => BuddyTor.Me.CurrentTarget.IsCasting && BuddyTor.Me.CurrentTarget.CastTimeEnd - TimeSpan.FromSeconds(1) >= DateTime.Now), Spell.Cast("Force Stasis", castWhen => ((BuddyTor.Me.CurrentTarget.IsCasting && !AbilityManager.CanCast("Disruption", BuddyTor.Me.CurrentTarget) || BuddyTor.Me.HealthPercent <= 60)) && !BuddyTor.Me.HasBuff("Saber Ward")), Spell.Cast("Awe", onUnit => { var previousTarget = BuddyTor.Me.CurrentTarget; return Helpers.Targets.FirstOrDefault( t => t != previousTarget && (t.Toughness == CombatToughness.Strong)) ?? Helpers.Targets.FirstOrDefault(t => t != previousTarget); }, castWhen => Helpers.Targets.Count() >= 3), // Offensive abilities by priority Spell.Cast("Merciless Slash", castWhen => BuddyTor.Me.ResourceStat >= 5), Spell.Cast("Zealous Strike", castWhen => BuddyTor.Me.ResourceStat <= 6), Spell.Cast("Force Sweep", castWhen => ObjectManager.GetObjects<Buddy.Swtor.Objects.TorNpc>().Count(o => o.Distance <= .4f && !o.IsDead) >= 3 && BuddyTor.Me.ResourceStat >= 3 && Helpers.Targets.Count() >= 3), Spell.Cast("Cyclone Slash", castWhen => ObjectManager.GetObjects<Buddy.Swtor.Objects.TorNpc>().Count(o => o.Distance <= .4f && !o.IsDead) >= 3 && BuddyTor.Me.ResourceStat >= 3 && Helpers.Targets.Count() >= 3), Spell.Cast("Cauterize", castWhen => !BuddyTor.Me.CurrentTarget.HasDebuff("Bleeding") && BuddyTor.Me.CurrentTarget.HealthPercent >= 30 && BuddyTor.Me.ResourceStat >= 2 && ObjectManager.GetObjects<Buddy.Swtor.Objects.TorNpc>().Count(o => o.Distance <= .4f && !o.IsDead) <= 3), Spell.Cast("Dispatch", castWhen => BuddyTor.Me.CurrentTarget.HealthPercent <= 20 && BuddyTor.Me.ResourceStat >= 3),//-3 Rage Spell.Cast("Master Strike"),//30s CD Spell.Cast("Pommel Strike", castWhen => BuddyTor.Me.CurrentTarget.IsStunned && (BuddyTor.Me.CurrentTarget.Toughness == CombatToughness.Standard || BuddyTor.Me.CurrentTarget.Toughness == CombatToughness.Weak)),//strong skill but only usable on stunned - normal or weak - enemys Spell.Cast("Zealous Strike", castWhen => BuddyTor.Me.ResourceStat <= 6),//+6 Rage/12s CD Spell.Cast("Slash", castWhen => (BuddyTor.Me.ResourceStat >= 7 && AbilityManager.HasAbility("Merciless Slash")) || (BuddyTor.Me.ResourceStat >= 3 && !AbilityManager.HasAbility("Merciless Slash"))), Spell.Cast("Strike", castWhen => BuddyTor.Me.ResourceStat <= 10),//+2 Rage //Movement Movement.MoveTo(ret => BuddyTor.Me.CurrentTarget.Position, 0.4f) ); } [Class(CharacterClass.Warrior, AdvancedClass.Sentinel, SkillTreeId.SentinelWatchman)] [Behavior(BehaviorType.OutOfCombat)] public static Composite SentinelWatchmanOutOfCombat() { Logger.Write("Watchman"); return new PrioritySelector( Spell.Cast("Juyo Form", ret => AbilityManager.HasAbility("Juyo Form") && !BuddyTor.Me.HasBuff("Juyo Form")), Spell.Cast("Shii-Cho Form", ret => !AbilityManager.HasAbility("Juyo Form") && !BuddyTor.Me.HasBuff("Shii-Cho Form")) ); } [Class(CharacterClass.Warrior, AdvancedClass.Sentinel, SkillTreeId.SentinelWatchman)] [Behavior(BehaviorType.Pull)] public static Composite SentinelWatchmanPull() { return SentinelWatchmanCombat(); } } } Its untested at high levels, as I'm still leveling my character with the bot, so I'm not sure how well it works with some abilities. I modeled it as best I can off of the priority list sentinels use in general, though my centering code still doesnt work at all. Itll get tweaked a lot over the next week.
Merc Arsenal - View attachment Arsenal.cs Merc Firebug - View attachment Firebug.cs Will do all specs i have for trooper to BH on monday if others dont.
@Mizzy Did you use the annihilation cc logic? ofc, I had no time to implement the stack condition, so if it works, gj
Ran arsenal for hour (and still going) on corellia. Just a quick made grind/farm profile. No deaths. And firebug? You mean pyrotech? 30k credits from loot alone in hr. Is that good? An orange, blue, few greens.
I pulled the stack logic from Immortal: Code: castWhen => BuddyTor.Me.Buffs.FirstOrDefault(B => B.Name == "Centering").Stacks == 30 Figured It'd work, not sure why it doesnt.