What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

Altec's Rogue Routine

1. Mutilate - Your hard hitting ability and main attack beside Dispatch. It generates 2 combo points, not one, so its giving you early start to get your buffs/debuffs on. Having 2CP at start, you can quicker build up CPs for finishers, for Bot, having extra combo point means that rotation will be executed faster. Mutilate have best DpE (damage per energy) value cause it gives you 2cps for the cost of one GCD and energy cost for one attack.

If you look this from bot perspective - Bot doesn't actually take in concern mobs health as health pool, but as % value. This means bot cant read does mob have 100hp, 10k or 100k as full HP pool, it just see those numbers as % value for executing its condition in rotation. So, these 100% can be 100, 10k or 100k, bot doesnt see actual HP value, it has its own target percentage conditioned rotation that follows, so having extra CP will have that rotation going faster for once GCD and energy cost of extra attack that would generate that combo point to execute next step in rotation.
We actually can check current life value/max. I have a few checks for is current target's life > 1/3 of my max life. What would be some logic that you would like to see regarding life? Also ambush gives 2cp now as well :P
 
is this routine just for pve?
Yup, Built for PvE, havent tested it in PvP
We actually can check current life value/max. I have a few checks for is current target's life > 1/3 of my max life. What would be some logic that you would like to see regarding life? Also ambush gives 2cp now as well :P

I stand corrected, ty :) I havent played my rogue that much, i have rerolled a monk. I have spent some time on it, playing with Altec routine, but i presume that i never bothered to read Ambush specific tooltip. Damn, that was noobish. :D
 
TBH, far superior. Im rogue for 4-5years and i used this CC for my raids last two months, supreme quality tbh, slim to none pre-config, rotation is done perfectly and correctly (which is more important) according to EJ and other theorycrafting sites.
Only thing that is buddy is that routine dont use Envenom when target is < 35% HP. Its constantly using dispatch till SnD and Rupture fell off, after which it reapply them and continue dispatching.

Overall it performs exceptional, in i480 my dps was always above 84k DPS in Assassination on boss fights, which brought me close to DPS monster in my guild, 2h Frost DK which did around 88-90k DPS. I had around 79k in combat (which by default fall behind as weaker spec, its not routine fault).

If you ask me, this is "THE" raiding routine. Combat rotation is done perfectly, while assassination only have that bug, not envenoming below 35% HP.

Sweet, will try it out and see how it goes :)
 
I was playing for a few weeks before I noticed it and only because I was reading through each spell, one by one, after I had made myself sound like a noob in guild chat while talking about feint/survivability :P
 
What CC do you suggest for leveling? Standard? This? Another. I'd like an AFK-able one if possible, even if it's slightly slower.
 
This CC is awesome i'm using it currently to level as combat.

I added Evasion & Combat Readiness to the main roation aswell (works only if you have use cooldowns selected). It should help survive those tricky multiple pull fights.

Code:
        #region Combat
        public Composite MainRotation()
        {
            return new PrioritySelector(
                new Decorator(ret => Me.IsDead || Me.IsGhost || Me.IsCasting || Me.IsChanneling, new ActionAlwaysSucceed()),
                new Decorator(ret => (Me.GroupInfo.IsInParty || Me.GroupInfo.IsInRaid) && (Me.CurrentMap.IsDungeon || Me.CurrentMap.IsRaid) && Me.CurrentTarget != null && !Me.CurrentTarget.Combat, new ActionAlwaysSucceed()),
                //Movement
                new Decorator(ret => ARSettings.Instance.FaceTarget && ValidUnit(Me.CurrentTarget) && !Me.IsSafelyFacing(Me.CurrentTarget, 70f) && Me.CurrentTarget.InLineOfSight && !Me.HasAura("Killing Spree"), new Action(delegate { Me.CurrentTarget.Face(); return RunStatus.Failure; })),
                new Decorator(ret => ARSettings.Instance.Movement && SpellManager.HasSpell("Shadowstep") && ARSettings.Instance.ShadowStep && ValidUnit(Me.CurrentTarget) && Me.CurrentTarget.Distance > 10 && Me.CurrentTarget.InLineOfSpellSight && !Me.HasAura("Killing Spree"), new Action(delegate { CastSpell("Shadowstep", Me.CurrentTarget); return RunStatus.Failure; })),
                new Decorator(ret => ARSettings.Instance.Movement && SpellManager.HasSpell("Rocket Jump") && Me.IsSafelyFacing(Me.CurrentTarget, 20f) && ValidUnit(Me.CurrentTarget) && Me.CurrentTarget.Distance > 15 && Me.CurrentTarget.InLineOfSpellSight && !Me.HasAura("Killing Spree"), new Action(delegate { CastSpell("Rocket Jump", Me.CurrentTarget); return RunStatus.Failure; })),
                new Decorator(ret => ARSettings.Instance.Movement && SpellManager.HasSpell("Sprint") && (SpellManager.HasSpell("Shadow Step") && !SpellManager.CanCast("Shadow Step") || !SpellManager.HasSpell("Shadow Step")) && ValidUnit(Me.CurrentTarget) && !Me.CurrentTarget.IsWithinMeleeRange && Me.CurrentTarget.InLineOfSpellSight && !Me.HasAura("Killing Spree"), new Action(delegate { CastSpell("Sprint", Me.CurrentTarget); return RunStatus.Failure; })),
                new Decorator(ret => ARSettings.Instance.Movement && Me.CurrentTarget.Distance > 2.5 && !Me.CurrentTarget.IsWithinMeleeRange && !Me.HasAura("Killing Spree"), new Action(delegate { MoveBehind(Me.CurrentTarget); Logging.Write("Moving to the target"); return RunStatus.Failure; })),
                new Decorator(ret => ARSettings.Instance.Movement && ValidUnit(Me.CurrentTarget) && (Me.CurrentTarget.Distance > 2.5 && Me.CurrentTarget.IsWithinMeleeRange) && !Me.HasAura("Killing Spree"), new Action(delegate { Navigator.PlayerMover.MoveStop(); return RunStatus.Failure; })),
                //End of Movement
                //Pick Pocket -- 5m default seems buggy atm
                new Decorator(ret => Me.HasAura("Stealth") && ValidUnit(Me.CurrentTarget) && Me.CurrentTarget.IsHumanoid && Me.CurrentTarget.Distance <= 5, new Action(delegate { CastSpell("Pick Pocket", Me.CurrentTarget); return RunStatus.Failure; })),
                //Target is interuptable
                new Decorator(ret => SpellManager.HasSpell("Kick") && ARSettings.Instance.Kick && !Me.IsStealthed && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && (Me.CurrentTarget.IsCasting || Me.CurrentTarget.IsChanneling) && Me.CurrentTarget.CanInterruptCurrentSpellCast, new Action(delegate { CastSpell("Kick", Me.CurrentTarget); return RunStatus.Failure; })),
                //Energy Regen Mechanic -- Slice and Dice
                new Decorator(ret => SpellManager.HasSpell("Slice and Dice") && CP() > 0 && (!Me.HasAura("Slice and Dice") || Me.GetAuraTimeLeft("Slice and Dice", true).TotalSeconds < 3), new Action(delegate { CastSpell("Slice and Dice", Me); return RunStatus.Failure; })),
                //Energy Regen Mechanic -- Rupture
                new Decorator(ret => SpellManager.HasSpell("Rupture") && !Me.IsStealthed && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && Me.IsFacing(Me.CurrentTarget) && ((ARSettings.Instance.Spec == "Combat" && ARSettings.Instance.Rupture && !Me.HasAura("Blade Flurry") && CP() > 4) || ARSettings.Instance.Spec != "Combat" && CP() > 0) && (!Me.CurrentTarget.HasMyAura("Rupture") || Me.CurrentTarget.GetAuraTimeLeft("Rupture", true).TotalSeconds < 5), new Action(delegate { CastSpell("Rupture", Me.CurrentTarget); return RunStatus.Failure; })),
                //Tricks of the Trade -- Target's Target
                new Decorator(ret => SpellManager.HasSpell("Tricks of the Trade") && (Me.GroupInfo.IsInParty || Me.GroupInfo.IsInRaid) && (Me.IsStealthed || (Me.FocusedUnit != null && !Me.FocusedUnit.IsAlive && Me.FocusedUnit.IsFriendly)) && Me.CurrentTarget.CurrentTarget.IsAlive && Me.CurrentTarget.CurrentTarget.IsFriendly, new Action(delegate { CastSpell("Tricks of the Trade", Me.CurrentTarget.CurrentTarget); return RunStatus.Failure; })),
                //Tricks of the Trade -- Focus Target
                new Decorator(ret => SpellManager.HasSpell("Tricks of the Trade") && (Me.GroupInfo.IsInParty || Me.GroupInfo.IsInRaid) && !Me.IsStealthed && Me.FocusedUnit != null && Me.FocusedUnit.IsAlive && Me.FocusedUnit.IsFriendly, new Action(delegate { CastSpell("Tricks of the Trade", Me.FocusedUnit); return RunStatus.Failure; })),
                //Blade Flurry
                new Decorator(ret => SpellManager.HasSpell("Blade Flurry") && ARSettings.Instance.BladeFlurry && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && Me.IsFacing(Me.CurrentTarget) && !Me.HasAura("Killing Spree") && BFaddCount() >= 2 && !Me.HasAura("Blade Flurry"), new Action(delegate { CastSpell("Blade Flurry", Me); return RunStatus.Failure; })),
                new Decorator(ret => SpellManager.HasSpell("Blade Flurry") && ARSettings.Instance.BladeFlurry && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && Me.IsFacing(Me.CurrentTarget) && !Me.HasAura("Killing Spree") && BFaddCount() < 2 && Me.HasAura("Blade Flurry"), new Action(delegate { Me.CancelAura("Blade Flurry"); return RunStatus.Failure; })),
                //Self Heals
                //Recup
                new Decorator(ret => SpellManager.HasSpell("Recuperate") && ARSettings.Instance.Recuperate && Me.ComboPoints > 0 && Me.HealthPercent < ARSettings.Instance.RHP && !Me.HasAura("Recuperate"), new Action(delegate{CastSpell("Recuperate", Me);return RunStatus.Failure;})),
                //Shiv
                new Decorator(ret => SpellManager.HasSpell("Shiv") && ARSettings.Instance.AShiv && !Me.IsStealthed && ARSettings.Instance.OHPoison == "Cripple Poison" && Me.HasAura(ARSettings.Instance.OHPoison) && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && Me.CurrentTarget.IsMoving && !Me.CurrentTarget.HasAura("Debilitating poison"), new Action(delegate { CastSpell("Shiv", Me.CurrentTarget); return RunStatus.Failure; })),
                new Decorator(ret => SpellManager.HasSpell("Shiv") && ARSettings.Instance.AShiv && !Me.IsStealthed && ARSettings.Instance.OHPoison == "Mind-numbing Poison" && Me.HasAura(ARSettings.Instance.OHPoison) && !SpellManager.CanCast("Kick") && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && !Me.CurrentTarget.HasAura("Mind Paralysis"), new Action(delegate { CastSpell("Shiv", Me.CurrentTarget); return RunStatus.Failure; })),
                new Decorator(ret => SpellManager.HasSpell("Shiv") && ARSettings.Instance.AShiv && !Me.IsStealthed && ARSettings.Instance.OHPoison == "Leeching Poison" && Me.HasAura(ARSettings.Instance.OHPoison) && Me.HealthPercent < ARSettings.Instance.RHP, new Action(delegate { CastSpell("Shiv", Me.CurrentTarget); return RunStatus.Failure; })),

                #region Boss CD's / Always Use CD's
		// Defensive cooldowns
		new Decorator(ret => SpellManager.HasSpell("Evasion") && ARSettings.Instance.UseCDs && ValidUnit(Me.CurrentTarget) && !Me.IsStealthed && Me.HealthPercent <= 50, new Action(delegate { CastSpell("Evasion", Me); return RunStatus.Failure; })),
                new Decorator(ret => SpellManager.HasSpell("Combat Readiness") && !SpellManager.CanCast("Evasion") && !Me.HasAura("Evasion") && ARSettings.Instance.UseCDs && ValidUnit(Me.CurrentTarget) && !Me.IsStealthed && Me.HealthPercent <= 50, new Action(delegate { CastSpell("Combat Readiness", Me); return RunStatus.Failure; })),

		//Boss CDs / always use CDs
                //Expose Armor
                new Decorator(ret => SpellManager.HasSpell("Expose Armor") && ARSettings.Instance.ExposeArmor && (IsTargetBoss() || ARSettings.Instance.UseCDs) && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && Me.IsFacing(Me.CurrentTarget) && !Me.IsStealthed && Me.CurrentTarget.HasMyAura("Weakened Armor") && Me.CurrentTarget.GetAuraByName("Weakened Armor").StackCount < 3, new Action(delegate { CastSpell("Expose Armor", Me.CurrentTarget); return RunStatus.Failure; })),
                new Decorator(ret => SpellManager.HasSpell("Expose Armor") && ARSettings.Instance.ExposeArmor && (IsTargetBoss() || ARSettings.Instance.UseCDs) && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && Me.IsFacing(Me.CurrentTarget) && !Me.IsStealthed && (!Me.CurrentTarget.HasAura("Weakened Armor") || Me.CurrentTarget.GetAuraTimeLeft("Weakened Armor", false).TotalSeconds < 3), new Action(delegate { CastSpell("Expose Armor", Me.CurrentTarget); return RunStatus.Failure; })),
                //Shadow Blades
                new Decorator(ret => SpellManager.HasSpell("Shadow Blades") && ARSettings.Instance.ShadowBlades && (IsTargetBoss() || ARSettings.Instance.UseCDs) && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && Me.IsFacing(Me.CurrentTarget) && !Me.HasAura("Killing Spree") && !Me.IsStealthed, new Action(delegate { CastSpell("Shadow Blades", Me); return RunStatus.Failure; })),
                //Vanish
                new Decorator(ret => SpellManager.HasSpell("Vanish") && ARSettings.Instance.Vanish && (IsTargetBoss() || ARSettings.Instance.UseCDs) && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && Me.IsFacing(Me.CurrentTarget) && !Me.IsStealthed && ((ARSettings.Instance.Spec == "Sublety" && !Me.CurrentTarget.HasMyAura("Find Weakness")) || ARSettings.Instance.Spec != "Sublety"), new Action(delegate {CastSpell("Vanish", Me); return RunStatus.Failure;})),
                //Assassination - Vendetta
                new Decorator(ret => SpellManager.HasSpell("Vendetta") && ARSettings.Instance.Vendetta && (IsTargetBoss() || ARSettings.Instance.UseCDs) && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && Me.IsFacing(Me.CurrentTarget), new Action(delegate { CastSpell("Vendetta", Me.CurrentTarget); return RunStatus.Failure; })),
                //Combat - Adrenaline Rush
                new Decorator(ret => SpellManager.HasSpell("Adrenaline Rush") && ARSettings.Instance.AdrenalineRush && (IsTargetBoss() || ARSettings.Instance.UseCDs) && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && Me.IsFacing(Me.CurrentTarget) && !Me.HasAura("Killing Spree") && !Me.IsStealthed, new Action(delegate { CastSpell("Adrenaline Rush", Me); return RunStatus.Failure; })),
                //Combat - Killing Spree
                new Decorator(ret => SpellManager.HasSpell("Killing Spree") && ARSettings.Instance.KillingSpree && (IsTargetBoss() || ARSettings.Instance.UseCDs) && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && !Me.IsStealthed && Me.CurrentEnergy < 40 && !Me.HasAura("Adrenaline Rush") && !Me.HasAura("Shadow Blades"), new Action(delegate {CastSpell("Killing Spree", Me); return RunStatus.Failure;})),
                //Sublety - Premeditation
                new Decorator(ret => SpellManager.HasSpell("Premeditation") && ARSettings.Instance.Premeditation && (IsTargetBoss() || ARSettings.Instance.UseCDs) && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && Me.IsFacing(Me.CurrentTarget) && (Me.IsStealthed || Me.HasAura("Shadow Dance")), new Action(delegate { CastSpell("Premeditation", Me.CurrentTarget); return RunStatus.Failure; })),
                //Sublety - Shadow Dance
                // ***** needs behind check *****
                new Decorator(ret => SpellManager.HasSpell("Shadow Dance") && ARSettings.Instance.ShadowDance && (IsTargetBoss() || ARSettings.Instance.UseCDs) && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && Me.IsFacing(Me.CurrentTarget) && !Me.IsStealthed && !Me.CurrentTarget.HasMyAura("Find Weakness"), new Action(delegate { CastSpell("Shadow Dance", Me); return RunStatus.Failure; })),
                //Talent - Preparation 
                // ***** need talent checker *****
                new Decorator(ret => SpellManager.HasSpell("Preparation") && ARSettings.Instance.Preparation && (IsTargetBoss() || ARSettings.Instance.UseCDs) && !SpellManager.CanCast("Vanish") && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && Me.IsFacing(Me.CurrentTarget) && !Me.IsStealthed, new Action(delegate { CastSpell("Preparation", Me); return RunStatus.Failure; })),
                //Racials
                //Arcane Torrent
                new Decorator(ret => SpellManager.HasSpell("Arcane Torrent") && ARSettings.Instance.ArcaneTorrent && (IsTargetBoss() || ARSettings.Instance.UseCDs) && ValidUnit(Me.CurrentTarget) && Me.IsFacing(Me.CurrentTarget) && !Me.IsStealthed && (Me.CurrentEnergy < 85 || ((Me.CurrentTarget.IsCasting || Me.CurrentTarget.IsChanneling) && Me.CurrentTarget.CanInterruptCurrentSpellCast && Me.CurrentTarget.Distance <= 8)), new Action(delegate { CastSpell("Arcane Torrent", Me.CurrentTarget); return RunStatus.Failure; })),
                //Berserking
                new Decorator(ret => SpellManager.HasSpell("Berserking") && ARSettings.Instance.Berserking && (IsTargetBoss() || ARSettings.Instance.UseCDs) && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && Me.IsFacing(Me.CurrentTarget) && !Me.IsStealthed, new Action(delegate { CastSpell("Berserking", Me); return RunStatus.Failure; })),
                //Blood Fury
                new Decorator(ret => SpellManager.HasSpell("Blood Fury") && ARSettings.Instance.BloodFury && (IsTargetBoss() || ARSettings.Instance.UseCDs) && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && Me.IsFacing(Me.CurrentTarget) && !Me.IsStealthed, new Action(delegate { CastSpell("Blood Fury", Me); return RunStatus.Failure; })),
                //Rocket Barrage
                new Decorator(ret => SpellManager.HasSpell("Rocket Barrage") && ARSettings.Instance.RocketBarrage && (IsTargetBoss() || ARSettings.Instance.UseCDs) && ValidUnit(Me.CurrentTarget) && Me.CurrentTarget.Distance <= 30 && Me.IsFacing(Me.CurrentTarget) && !Me.IsStealthed, new Action(delegate { CastSpell("Rocket Barrage", Me.CurrentTarget); return RunStatus.Failure; })),
                //Engy Gloves
                new Decorator(ret => ARSettings.Instance.UseEngineeringGloves && (IsTargetBoss() || ARSettings.Instance.UseCDs) && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && Me.IsFacing(Me.CurrentTarget) && !Me.IsStealthed && Me.Inventory.Equipped.Hands.Usable && Me.Inventory.Equipped.Hands.Cooldown == 0, new Action(delegate { Me.Inventory.Equipped.Hands.Use(); return RunStatus.Failure; })),
                //Trinkets
                new Decorator(ret => ARSettings.Instance.UseTrinkets && (IsTargetBoss() || ARSettings.Instance.UseCDs) && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && Me.IsFacing(Me.CurrentTarget) && !Me.IsStealthed && Me.Inventory.Equipped.Trinket1.Usable && Me.Inventory.Equipped.Trinket1.Cooldown == 0, new Action(delegate { Me.Inventory.Equipped.Trinket1.Use(); return RunStatus.Failure; })),
                new Decorator(ret => ARSettings.Instance.UseTrinkets && (IsTargetBoss() || ARSettings.Instance.UseCDs) && ValidUnit(Me.CurrentTarget) && IsEnemy(Me.CurrentTarget) && Me.IsFacing(Me.CurrentTarget) && !Me.IsStealthed && Me.Inventory.Equipped.Trinket2.Usable && Me.Inventory.Equipped.Trinket2.Cooldown == 0, new Action(delegate { Me.Inventory.Equipped.Trinket2.Use(); return RunStatus.Failure; })),
                #endregion

                //AoE
                new Decorator(ret => SpellManager.HasSpell("Fan of Knives") && ARSettings.Instance.AOE && addCount() >= ARSettings.Instance.AoeAmount, AoERotation()),
                //Assassination
                new Decorator(ret => SpellManager.HasSpell("Mutilate") && (!SpellManager.HasSpell("Fan of Knives") || !ARSettings.Instance.AOE || addCount() < ARSettings.Instance.AoeAmount), AssassinationRotation()),
                //Combat Spec
                new Decorator(ret => !SpellManager.HasSpell("Mutilate") && !SpellManager.HasSpell("Backstab") && (!SpellManager.HasSpell("Fan of Knives") || !ARSettings.Instance.AOE || addCount() < ARSettings.Instance.AoeAmount), CombatRotation()),
                //Sublety Spec
                new Decorator(ret => SpellManager.HasSpell("Backstab") && (SpellManager.HasSpell("Fan of Knives") || !ARSettings.Instance.AOE || addCount() < ARSettings.Instance.AoeAmount), SubletyRotation())
            );
        }
 
When i try to use it, it just spinns around and around and pulling more and more mobs. Going back to CLU.. :( Which is not so bad, but you always want to try out something new.
 

Attachments

works good) thank u)
i just use your routine (in combat spec) with LazyRaider. Im loving it)
 
When i try to use it, it just spinns around and around and pulling more and more mobs. Going back to CLU.. :( Which is not so bad, but you always want to try out something new.

I'm getting this too. Anyone else?
 
Assassination
below 35% with 5 cp sometimes don't do envenom only Dispatch so waste cp. can you fix this please.
I tested in Combat Bot.
 

Attachments

i'm using this with assassination spec and love it.

I'm only having one problem; the shadowstep option doesn't seem to work. what I mean is, I check the box for shadowstep and click save but it won't remember the setting. I open up the class config again and it shows the box unchecked.

also don't like how it uses sprint right before it pulls a mob.

These are very minor things and overall love the routine. I'll check back if I have any problems (no real problems currently).
 
I don't have a clue what I am looking for and my eyes are surely bleeding by now, but..

in the file ARForm.Designer.cs should there be something like "this.SS.CheckedChanged += new System.EventHandler(this.SS_CheckedChanged);" around line 440?

edit: wow.. this actually made shadowstep work.
 
Last edited:
testing it for 2 hours, before the reset :D
(its been running for about 10 min. Works like a charm!)
 
Great CR. I am Ass. and I DO NOT have Recouperate checked. It's keeping it up almost 100%. I tried enabling it and setting it to 1%...still keeping it up..
 
Great CR. I am Ass. and I DO NOT have Recouperate checked. It's keeping it up almost 100%. I tried enabling it and setting it to 1%...still keeping it up..

Do you have "Spend CP (rest)" checked off? this will spend combo points remaining after combat on SnD or recuperate.
 
Back
Top