Advertisement
Guest User

Untitled

a guest
Apr 13th, 2012
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.35 KB | None | 0 0
  1. using TreeSharp;
  2.  
  3. namespace CLU.Classes.Warrior
  4. {
  5. using global::CLU.Helpers;
  6.  
  7. class Arms : RotationBase
  8. {
  9. public override string Name
  10. {
  11. get { return "Arms Warrior"; }
  12. }
  13.  
  14. public override string KeySpell
  15. {
  16. get { return "Bladestorm"; }
  17. }
  18.  
  19. public override float CombatMaxDistance
  20. {
  21. get
  22. {
  23. return 5f;
  24. }
  25. }
  26.  
  27. public override string Help
  28. {
  29. get
  30. {
  31. return "----------------------------------------------------------------------\n" +
  32. "This Rotation will:\n" +
  33. "1. Heal using Victory Rush, Enraged Regeneration\n" +
  34. "==> Rallying Cry, Healthstone \n" +
  35. "2. AutomaticCooldowns has: \n" +
  36. "==> UseTrinkets \n" +
  37. "==> UseRacials \n" +
  38. "==> UseEngineerGloves \n" +
  39. "3. Stance Dance\n" +
  40. "4. Best Suited for end game raiding\n" +
  41. "NOTE: PvP uses single target rotation - It's not designed for PvP use. \n" +
  42. "Credits to gniegsch and Obliv\n" +
  43. "----------------------------------------------------------------------\n";
  44. }
  45. }
  46.  
  47. public override Composite SingleRotation
  48. {
  49. get
  50. {
  51. return new PrioritySelector(
  52. new Decorator(
  53. ret => Units.IsTargetWorthy(Me.CurrentTarget),
  54. new PrioritySelector(
  55. Item.UseTrinkets(),
  56. Spells.UseRacials(),
  57. Buff.CastBuff("Lifeblood", ret => true, "Lifeblood"), // Thanks Kink
  58. Items.UseEngineerGloves(ret => true, "Engineer's gloves"))),
  59. // Extra button automation
  60. Items.RunMacroText("/click ExtraActionButton1", ret => (Units.IsFadingLight() || Units.IsShrapnel() || Units.IsHourofTwilight()) && CLU.Instance.AutoExtraActionButton, "[Push Button] ExtraActionButton1"),
  61. // Interupts
  62. Spells.CastInterupt("Pummel", ret => true, "Pummel"),
  63. Spells.CastSelfSpell("Spell Reflection", ret => Me.CurrentTarget.IsCasting, "Spell Reflection"),
  64.  
  65. // Start of Actions - SimCraft as of 3/31/2012
  66. // TODO: GCD Check and Tier pce check needs attention. Spell.GCD = 0
  67.  
  68. // 6 berserker_rage,if=buff.deadly_calm.down&cooldown.deadly_calm.remains>1.5&rage<=95,use_off_gcd=1
  69. Spells.CastSelfSpell("Berserker Rage", ret => !Buff.PlayerHasActiveBuff("Deadly Calm") && Spells.SpellCooldown("Deadly Calm").TotalSeconds > 1.5 && Me.CurrentRage <= 95, "Berserker Rage"),
  70. // 7 deadly_calm,use_off_gcd=1
  71. Spells.CastSelfSpell("Deadly Calm", ret => Units.IsTargetWorthy(Me.CurrentTarget), "Deadly Calm"),
  72. // 8 inner_rage,if=buff.deadly_calm.down&cooldown.deadly_calm.remains>15,use_off_gcd=1
  73. Spells.CastSelfSpell("Inner Rage", ret => !Buff.PlayerHasActiveBuff("Deadly Calm") && Spells.SpellCooldown("Deadly Calm").TotalSeconds > 15, "Inner Rage"),
  74. // 9 recklessness,if=target.health_pct>90|target.health_pct<=20,use_off_gcd=1
  75. Spells.CastSpell("Recklessness", ret => Units.IsTargetWorthy(Me.CurrentTarget) && (Me.CurrentTarget.HealthPercent > 90 || Me.CurrentTarget.HealthPercent <= 20), "Recklessness"),
  76. // A stance,choose=berserker,if=buff.taste_for_blood.down&dot.rend.remains>0&rage<=75,use_off_gcd=1
  77. Spells.CastSelfSpell("Berserker Stance", ret => !Buff.PlayerHasBuff("Berserker Stance") && !Buff.PlayerHasActiveBuff("Taste for Blood") && Buff.TargetHasDebuff("Rend") && Me.CurrentRage <= 75, "**Berserker Stance**"),
  78. // B stance,choose=battle,use_off_gcd=1,if=!dot.rend.ticking
  79. Spells.CastSelfSpell("Battle Stance", ret => !Buff.PlayerHasBuff("Battle Stance") && !Buff.TargetHasDebuff("Rend"), "**Battle Stance**"),
  80. // C stance,choose=battle,use_off_gcd=1,if=(buff.taste_for_blood.up|buff.overpower.up)&rage<=75&cooldown.mortal_strike.remains>=1.5,use_off_gcd=1
  81. Spells.CastSelfSpell("Battle Stance", ret => !Buff.PlayerHasBuff("Battle Stance") && (Buff.PlayerHasActiveBuff("Taste for Blood") || Buff.PlayerHasActiveBuff("Overpower")) && Me.CurrentRage <= 75 && Spells.SpellCooldown("Mortal Strike").TotalSeconds > 1.5, "**Battle Stance**"),
  82. // D sweeping_strikes,if=target.adds>0,use_off_gcd=1
  83. Spells.CastAreaSpell("Sweeping Strikes", 5, false, 2, 0.0, 0.0, a => (Buff.PlayerHasBuff("Berserker Stance") || Buff.PlayerHasBuff("Battle Stance")), "Sweeping Strikes"),
  84. // E cleave,if=target.adds>0,use_off_gcd=1
  85. Spells.CastAreaSpell("Cleave", 5, false, 3, 0.0, 0.0, a => (Buff.PlayerHasBuff("Berserker Stance") || Buff.PlayerHasBuff("Battle Stance")) && Me.CurrentRage > 40, "Cleave"),
  86. Spells.CastSpell("Rend", ret => !Buff.TargetHasDebuff("Rend"), "Rend"),
  87. // Disabled for now. We need to only use if we have Blood and Thunder.
  88. // Spells.CastAreaSpell("Thunder Clap", 8, false, 2, 0.0, 0.0, a => Buff.PlayerHasBuff("Battle Stance") && Buff.TargetDebuffTimeLeft("Thunder Clap").TotalSeconds < 12.5 && Buff.TargetHasDebuff("Rend"), "TC Rend"),
  89. // G bladestorm,if=target.adds>0&!buff.deadly_calm.up&!buff.sweeping_strikes.up
  90. Spells.CastAreaSpell("Bladestorm", 5, false, 4, 0.0, 0.0, a => !Buff.PlayerHasActiveBuff("Deadly Calm") && !Buff.PlayerHasActiveBuff("Sweeping Strikes"), "Bladestorm"),
  91. // Q heroic_strike,use_off_gcd=1,if=buff.deadly_calm.up
  92. Spells.CastSpell("Heroic Strike", ret => Buff.PlayerHasActiveBuff("Deadly Calm"), "Heroic Strike"),
  93. // R heroic_strike,use_off_gcd=1,if=rage>85
  94. Spells.CastSpell("Heroic Strike", ret => Me.CurrentRage > 85, "Heroic Strike"),
  95. // S heroic_strike,use_off_gcd=1,if=buff.inner_rage.up&target.health_pct>20&(rage>=60|(set_bonus.tier13_2pc_melee&rage>=50))
  96. Spells.CastSpell("Heroic Strike", ret => Buff.PlayerHasBuff("Inner Rage") && Me.CurrentTarget.HealthPercent > 20 && Me.CurrentRage > 60, "Heroic Strike"),
  97. // T heroic_strike,use_off_gcd=1,if=buff.inner_rage.up&target.health_pct<=20&((rage>=60|(set_bonus.tier13_2pc_melee&rage>=50))|buff.battle_trance.up)
  98. Spells.CastSpell("Heroic Strike", ret => Buff.PlayerHasBuff("Inner Rage") && Me.CurrentTarget.HealthPercent <= 20 && Buff.PlayerHasActiveBuff("Battle Trance"), "Heroic Strike"),
  99. Spells.CastSpell("Mortal Strike", ret => Me.CurrentTarget.HealthPercent > 20, "Mortal Strike"),
  100. Spells.CastSpell("Colossus Smash", ret => !Buff.TargetHasDebuff("Colossus Smash"), "Colossus Smash"),
  101. Spells.CastSpell("Execute", ret => Buff.PlayerActiveBuffTimeLeft("Executioner").TotalSeconds < 1.5, "Execute"),
  102. Spells.CastSpell("Mortal Strike", ret => Me.CurrentTarget.HealthPercent <= 20 && (Buff.TargetDebuffTimeLeft("Rend").TotalSeconds < 3 || !Buff.PlayerHasActiveBuff("Wrecking Crew") || Me.CurrentRage <= 25 || Me.CurrentRage >= 35), "Mortal Strike"),
  103. Spells.CastSpell("Execute", ret => Me.CurrentRage > 90, "Execute"),
  104. Spells.CastSpell("Overpower", ret => Buff.PlayerHasActiveBuff("Taste for Blood") || Buff.PlayerHasActiveBuff("Overpower"), "Overpower"),
  105. Spells.CastSpell("Execute", ret => true, "Execute"),
  106. Spells.CastSpell("Colossus Smash", ret => Buff.TargetDebuffTimeLeft("Colossus Smash").TotalSeconds < 1.5, "Colossus Smash"),
  107. Spells.CastSpell("Slam", ret => (Me.CurrentRage >= 35 || Buff.PlayerHasActiveBuff("Battle Trance") || Buff.PlayerHasActiveBuff("Deadly Calm")), "Slam"),
  108. Buff.CastBuff("Battle Shout", ret => Me.CurrentRage < 60, "Battle Shout"));
  109. // (Buff.PlayerHasBuff("Berserker Stance") || Buff.PlayerHasBuff("Battle Stance")) &&
  110. }
  111. }
  112.  
  113. public override Composite Medic
  114. {
  115. get
  116. {
  117. return new Decorator(
  118. ret => Me.HealthPercent < 100 && CLU.Instance.AutoManageHealing,
  119. new PrioritySelector(
  120. Spells.CastSpell("Victory Rush", ret => Me.HealthPercent < 80 && Buff.PlayerHasBuff("Victorious"), "Victory Rush"),
  121. Spells.CastSelfSpell("Shield Wall", ret => Me.HealthPercent < 35 && !Buff.PlayerHasBuff("Rallying Cry") && !Buff.PlayerHasBuff("Enraged Regeneration"), "Shield Wall"),
  122. Spells.CastSelfSpell("Enraged Regeneration", ret => Me.HealthPercent < 45 && !Buff.PlayerHasBuff("Rallying Cry") && !Buff.PlayerHasBuff("Shield Wall"), "Enraged Regeneration"),
  123. Spells.CastSelfSpell("Rallying Cry", ret => Me.HealthPercent < 45 && !Buff.PlayerHasBuff("Shield Wall") && !Buff.PlayerHasBuff("Enraged Regeneration"), "Rallying Cry"),
  124. Items.UseBagItem("Healthstone", ret => Me.HealthPercent < 40 && !Buff.PlayerHasBuff("Rallying Cry") && !Buff.PlayerHasBuff("Enraged Regeneration") && !Buff.PlayerHasBuff("Shield Wall"), "Healthstone")));
  125. }
  126. }
  127.  
  128. public override Composite PreCombat
  129. {
  130. get
  131. {
  132. return new Decorator(
  133. ret => !Me.Mounted && !Me.Dead && !Me.Combat && !Me.IsFlying && !Me.IsOnTransport && !Me.HasAura("Food") && !Me.HasAura("Drink"),
  134. new PrioritySelector(
  135. Buff.CastBuff("Battle Shout", ret => !Buff.PlayerHasBuff("Battle Shout"), "Battle Shout")));
  136. }
  137. }
  138.  
  139. public override Composite PVPRotation
  140. {
  141. get
  142. {
  143. return SingleRotation;
  144. }
  145. }
  146.  
  147. public override Composite PVERotation
  148. {
  149. get
  150. {
  151. return SingleRotation;
  152. }
  153. }
  154. }
  155. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement