public static void ScrapperCombat()
{
WaitForCast();
datLCL = DateTime.Now;
Thread.Sleep(100);
LoadVars();
if (!TargetInCombat()) return;
MercBuffSelf("Lucky Shots", true);
MoveTo(CT, 2.8f);
if (!IG && BuddyTor.Me.IsMoving) StopMoving();
if (CT == null && Me.CurrentTarget != null) CT = Me.CurrentTarget;
if (CT == null) { Logging.Write("No target. Exiting."); return; }
if (CT == Comp) { BuddyTor.Me.ClearTarget(); return; }
if (!CT.InCombat && CT.HealthPercent > .2f)
{
MercCast("Fletchette Round");
MercCast("Stealth");
while (CT.Distance > .15f) MoveTo(CT, .15f);
MercCast("Fletchette Round");
MercCast("Shoot First", CT.Distance <= .20f);
}
if (MercCast("Escape", Me.IsStunned)) return;
MercCast("Crouch", Me, !MyBuffs.Contains("Crouch"));
MoveTo(CT, .50f, "Flurry of Bolts");
if (MercCast("Fletchette Round", !CTDebuffs.Contains("Fletchette Round"))) return;
if (MercCast("Quickdraw")) return;
if (MercCast("Headshot")) return;
if (MercCast("Flourish Shot")) return;
//if (HP <= 70) MercCast("Flurry of Bolts"); // Force a Rifle-Shot on healing so we get at least a LITTLE DAMAGE in - may help with a Heals Catch-22
if (MercCast("Defense Screen", Me, !MyBuffs.Contains("Defense Screen"))) return;
if (MercCast("Heroic Moment: All In", Me, HP <= 25)) return;
//if (MercCast("Evasion", Me, HP <= 30)) return;
//if (MercCast("Kolto Probe", Me, HP <= 70 && !MyBuffs.Contains("Kolto Probe"))) return;
//if (MercCast("Surgical Probe", HP <= 70 && MyBuffs.Contains("Tactical Advantage"))) return;
if (MercCast("Underworld Medicine", Me, HP <= 60)) return;
if (MercCast("Kolto Pack", Me, HP <= 70)) return;
if (MercCast("Cool Head", EP <= 20)) return;
if (MercCast("Pugnacity", EP <= 60 && MyBuffs.Contains("Upper Hand"))) return;
if (MercCast("Pugnacity", Me, RS <= 20)) return;
if (MercCast("Thermal Grenade", !IG)) return;
if (TD <= .50f)
{
if (MercCast("XS Freighter Flyby", StrongOrGreater(CT))) return;
if (MercCast("Blaster Whip")) return;
if (MercCast("Whirling Blow", MyBuffs.Contains("Upper Hand"))) return;
if (MercCast("Blaster Volley", MyBuffs.Contains("Upper Hand") && StrongOrGreater(CT))) return;
if (MercCast("Cheap Shot")) return;
if (MercCast("Tendon Blast")) return;
}
if (MercCast("Distraction", (IG && HP <= 50) || (StrongOrGreater(CT) && TC))) return;
if (MercCast("Flash Grenade", TD <= .50f)) return;
if (MercCast("Dirty Kick", StrongOrGreater(CT) && TC)) return;
if (MercCast("Thermal Grenade", !IG && StrongOrGreater(CT) && TC)) return;
if (MercCast("Wounding Shots", MyBuffs.Contains("Upper Hand") && TWR10 >= 2)) return;
if (MedicineCheckCompHealth()) return;
if (MercCast("Flurry of Bolts", RS <= 30 && (StrongOrGreater(CT) || IG))) return;
if (MercCast("Shrap Bomb")) return;
if (MercCast("Dirty Kick", StrongOrGreater(CT))) return;
if (MercCast("Headshot", CT.IsStunned)) return;
if (MercCast("Sabotage Charge")) return;
if (MercCast("Hemorrhaging Blast")) return;
if (MercCast("Vital Shot", !CTDebuffs.Contains("Bleeding (Tech)"))) return;
if (MercCast("Flash Grenade")) return;
if (MercCast("Blaster Volley", TWR10 >= 3)) return;
if (MercCast("Charged Burst")) return;
if (MercCast("Flurry of Bolts")) return;
}
JNP,
We spoke about TK sage in another thread and you asked me what I thought of your routine (but i hadn't tested it yet at the time). I'm testing it today and I have some notes that would probably help with the routine... it's not following a very optimal rotation right now and it does a few odd things you may wish to iron out. Would you prefer notes here or via PM in your inbox?
WALTER, PLAYED WITH MY TROOPER TODAY!
worked really well - only change with gunnery spec would be to cast sticky grenade as an opener and more often during the fight and if targets get in melee range use stockstrike when up.... other than that, friokking awesome! will try some heal and assault sepcialist over the weekend
Hi Walter,
Per Trooper/Vanguard/Assault Spec:
- As stated above, moving Stockstrike higher on the priority list for close combat would make sense; I'm not sure mine is really used, and it's one of our best abilities (the Assault build grants it extra damage). This should be used every time an enemy is within 4 meters and it's up (after High Impact Bolt).
- Sometimes after Harpoon Pull, the character will stand out of range not attacking (attempting close combat attacks I think) while the companion kills the first mob. After this, he runs back into the fray.
That's all so far. The spec really does run beautifully in spite of the issues mentioned above. I'll let you know if I catch any other obvious issues.
Cheers,
-D
I updated with more stock strikes and proc for high impact bolt, hoping it goes off correctly now. I fixed harpoon to move to target also so hope that helps with delays. (btw I testing this on a powertechgod damn rebels)
if (MercCast("Fortification", !MyBuffs.Contains("Fortification"))) return;
It's still ignoring Stockstrike; it's possibly a range issue. I'm testing a few adjustments, and if they pan out I'll post the changes here.
EDIT
In MercHelpers.cs on line 814, I fixed a typo. Corrected:
if (!CT.InCombat)
{
MercCast("Harpoon");
while (CT.Distance > .8f) MoveTo(CT, .3f);
MercCast("Sticky Grenade");
MercCast("Ion Pulse", RS >= 40);
}
if (CT.InCombat)
{
while (CT.Distance > .8f) MoveTo(CT, .3f);
if (MercCast("Battle Focus", !MyBuffs.Contains("Battle Focus"))) return;
if (MercCast("Assault Plastique")) return;
if (MercCast("High Impact Bolt", CTDebuffs.Contains("Burning (Tech)"))) return;
if (MercCast("Stockstrike", TD <= .4f)) return;
if (MercCast("Sticky Grenade")) return;
if (MercCast("Full Auto", RS >= 50)) return; // NEW
if (MercCast("Ion Pulse", RS >= 30 && TD <= .8f)) return;
if (MercCast("High Impact Bolt", MyBuffs.Contains("Prototype Particle Accelerator"))) return;
if (MercCast("Stockstrike", TD <= .4f)) return;
if (MercCast("High Impact Bolt")) return;
if (MercCast("Stockstrike", TD <= .4f)) return;
if (MercCast("Cryo Grenade", HP <= 70)) return;
if (MercCast("Incendiary Round", RS >= 50)) return;
if (MercCast("High Impact Bolt", MyBuffs.Contains("Burning (Tech)"))) return;
if (MercCast("Stockstrike", TD <= .4f)) return;
//**Defensive**
if (HP <= 30) UseMedPackInInventory();
if (MercCast("Recharge Cells", RS <= 80f)) return;
if (MercCast("Tenacity", Me.IsStunned)) return;
if (MercCast("Cyro Grenade", (TC || TD <= .5f) && StrongOrGreater(CT))) return;
if (MercCast("Explosive Round", RS >= 50f)) return;
if (MercCast("High Impact Bolt")) return;
if (MercCast("Stockstrike", TD <= .4f)) return;
if (MercCast("Sticky Grenade")) return;