In MercHelpers.cs: Called in RunAroundAndKillStuff() - Driven by the DoRandomGrind flag
ScanForPlaceables() does the node-scanning it's driven by the flag up-top in MercHelpers, ScanForNodes (set to either true or false, if false, the node-scanning will be skipped in for DoRandomGrind).
ScanForMobs() does the mob-finding and initiates combat.
For a Bodyguard, for example, BGCombat() runs the actual combat.
At a higher level:
1. Modify ScanForMobs to check your advanced class (BuddyTor.Me.AdvancedClass==AdvancedClass.SorcererShadow - or somethin like that) and call your combat routine if the adv class makes a match.
2. Add in your Combat routine/PrioritySelector of course.
3. You'd be bypassing the variables I use (TD for target distance, THP for Target Health Percent, etc) I load (I set up vars to try and eliminate most of the repeated polling that goes on - just makes more work for the app and in my opinion adds to instability)
Another option for (3) - just create another void combat routine like the rest - ShadowCombat() - that would get called in (1) - using the same method I did for the others. If you've already customized your own using the Default - I'm guessing you can figure it out.
If you DO create another void for Shadow Combat (which would be my suggestion

) - let me know and I'll incorporate it into the 'release set'.
Thanks for the interest!
Joe