private Composite CreateUseClassRegainHealth()
{
// Do not change this to a PrioSelector and a chain of Spell.BuffSelf calls. This is a switch for performance reasons.
return new PrioritySelector(
new Decorator(
ret => BuddyTor.Me.HealthPercent < 95 || BuddyTor.Me.ResourceStat < 95,
//new Decorator(ret => BuddyTor.Me.Class == CharacterClass.Trooper || BuddyTor.Me.Class == CharacterClass.,
Spell.WaitForCast()),
new Switch<CharacterClass>(
ret => Class,
// Republic
new SwitchArgument<CharacterClass>(CharacterClass.Knight, Cast("Introspection", ret => BuddyTor.Me, ret => BuddyTor.Me.HealthPercent < 95)),
new SwitchArgument<CharacterClass>(CharacterClass.Consular, Cast("Meditation", ret => BuddyTor.Me, ret => BuddyTor.Me.HealthPercent < 95 || BuddyTor.Me.ResourceStat <= 50)),
new SwitchArgument<CharacterClass>(CharacterClass.Smuggler, Cast("Recuperate", ret => BuddyTor.Me, ret => BuddyTor.Me.HealthPercent < 95 || BuddyTor.Me.ResourceStat <= 50)),
new SwitchArgument<CharacterClass>(CharacterClass.Trooper, Cast("Recharge and Reload", ret => BuddyTor.Me, ret => BuddyTor.Me.HealthPercent < 95 || BuddyTor.Me.ResourceStat < 5)),
// Empire
new SwitchArgument<CharacterClass>(CharacterClass.Warrior, Cast("Channel Hatred", ret => BuddyTor.Me, ret => BuddyTor.Me.HealthPercent < 95)),
new SwitchArgument<CharacterClass>(CharacterClass.Inquisitor, Cast("Seethe", ret => BuddyTor.Me, ret => BuddyTor.Me.HealthPercent < 95 || BuddyTor.Me.ResourceStat <= 50)),
new SwitchArgument<CharacterClass>(CharacterClass.Agent, Cast("Recuperate", ret => BuddyTor.Me, ret => BuddyTor.Me.HealthPercent < 95 || BuddyTor.Me.ResourceStat <= 50)),
new SwitchArgument<CharacterClass>(CharacterClass.BountyHunter, Cast("Recharge and Reload", ret => BuddyTor.Me, ret => BuddyTor.Me.HealthPercent < 95 || BuddyTor.Me.ResourceStat >= 50))
));
}