public enum RoutineStates
{
CombatPrep, //Speaks for itself
Pulling, //Speaks for itself
SingleTargetCombat, //Blow shit up
DoubleTargetCombat, //CC one, kill other, then downgrade to single target. Optimized for mana efficiency due to extra mob.
MultiTargetCombat //AoEgrinding
}
public enum CombatPrepStates //apparently checking health is not needed
{
CheckingBuffs, //I'm going to have this here anyway because of waltz's current buff implementation
Buffing, //May just make this part of the CheckingBuffs.
CheckingManagem, //Speaks for itself
PreCombatWards //I'll implement it if I have to. Do any pre-combat fire/frost wards on fire/frost damage dealers
}
public enum PullingStates
{
Advancing, //Get close if the mob wandered out of range for some reason. If it did, your pull range is probably too high
CheckingPullMobCount, //Make sure I'm not getting into something I can't handle, jump to doublemob combat if just pulling two mobs anwyay, go straight to mutli if aoegrinding
Casting //the actual pulling
}
public enum SingleTargetCombat
{
Nuking, //our good 'ole spec-optimized nukes.
PreFlee, //Pop a mana shield, turn away from the mob, gtfo of town
SwapToDoubleTargetCombat //Escalate to doubletarget combat if a mob aggros, essentially just start the CC
}
public enum DoubleTargetCombat
{
Nuking, //Will be same as singletarget nuking, because it's really the same
CrowdControl, //Snare mobs if possible, get away, sheep lower priority mob
SwapToMultiTargetCobmat, //Switch to multi target combat if needed, not sure how well it'd work mostly because there's a good chance you'll be lowhp with adds. Flee?
Fleeing //same as above
}
public enum MultiTargetCombat
{
AoENuking, //Fancy blizzarding, blast waving, etc. should really be a frostie for this...
EmergencyCrowdControl, //snares and flares to get away if needed, probably be merged with preflee
Fleeing //same as above
}
public enum BuffStates //kinda like sub-substates for buffing. It'll do my own downtime if I need to.
{
CheckMana, //.....
CheckBuffs, //I repeat, .....
CastBuffs //Spec-optimized buffing.
}