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

WTB ret paladin CC

galassie

New Member
Joined
Oct 17, 2012
Messages
9
Reaction score
0
I am looking for a CC that will perform retribution paladin flawlessly. I do not want it to move. I do not want it to select targets. I do not want it to cast Blessing of kings/Blessing of might/Hand of freedom etc. I do not want it to use Cooldowns. I do not want it to use potions.

I was using the "Crusader" ret cc and it was almost perfect. It has stopped working.


I need a replacement CC to raid as ret (I will be doing the movement,targeting,pre potting, buffing, cooldowns on my own)

The cc should know when Holy Avenger is used and change the priority of the abilities accordingly.

It should have the option for me to decide whether or not I want it to heal. If I do want it to heal, I want to be able to choose health % when it will using Flash of light (with selfless healer stacked to 3) / Word of glory

Rotations are as follows:

Single Target: Inqisition > 5Holy Power Templar's Verdict > Execution Sentence > Hammer of Wrath > Exorcism > Crusader's Strike > Judgement > 3-4Holy power Templar's Verdict (> Sacred Shield)

Multiple Target: Inq > 5HP DS > LH > HoW > Exo > HotR > Judge > 3-4HP DS (> SS)



Thanks


I would also accept someone fixing luckykitten - Revision 31: /trunk/Crusader
I have no idea why it doesn't work anymore but it already does what I want...
 
Last edited:
I want's never get without offering something.

Single target:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Styx.CommonBot.Routines;
using Styx;
using Styx.TreeSharp;
using Styx.WoWInternals.WoWObjects;
using Styx.CommonBot;
using CommonBehaviors.Actions;

namespace SuperPaladin
{
    public class SuperPaladin : CombatRoutine
	{
        private delegate bool SimpleBooleanDelegate(object context);
        private delegate WoWUnit UnitSelectionDelegate(object context);

	    public override WoWClass Class
        {
	        get { return WoWClass.Paladin; }
        }

        public override string Name
        {
	        get { return "SuperPaladin"; }
        }

        private Composite _combatBehavior;
        public override Composite CombatBehavior
        {
	        get { return _combatBehavior ?? (_combatBehavior = CreateCombatBehavior()); }
        }

        private Composite CreateCombatBehavior() 
        {
            return new PrioritySelector(
                EnsureTarget(),
                SelfCast("Inquisition", ret => StyxWoW.Me.CurrentHolyPower >= 3 && BuffTimeRemaining("Inquisition").TotalSeconds <= 3),
                Cast("Templar's Verdict", ret => StyxWoW.Me.CurrentHolyPower >= 5),
                Cast("Execution Sentence"),
                Cast("Hammer of Wrath"),
                Cast("Exorcism"),
                Cast("Crusader's Strike"),
                Cast("Judgement"),
                Cast("Templar's Verdict", ret => StyxWoW.Me.CurrentHolyPower >= 3),
                SelfCast("Sacred Shield", ret => BuffTimeRemaining("Sacred Shield").TotalSeconds <= 6)
            );
        }

        private TimeSpan BuffTimeRemaining(string buff)
        {
            return StyxWoW.Me.ActiveAuras.ContainsKey(buff) ? StyxWoW.Me.ActiveAuras[buff].TimeLeft : TimeSpan.Zero;
        }

        private Composite EnsureTarget()
        {
            return new Decorator(ret => StyxWoW.Me.CurrentTarget == null, new ActionAlwaysSucceed());
        }

        private Composite Cast(string spell)
        {
            return Cast(spell, requirements => true);
        }

        private Composite Cast(string spell, SimpleBooleanDelegate requirements)
        {
            return Cast(spell, requirements, unit => StyxWoW.Me.CurrentTarget);
        }

        private Composite Cast(string spell, UnitSelectionDelegate unit)
        {
            return Cast(spell, requirements => true, unit);
        }

        private Composite SelfCast(string spell)
        {
            return SelfCast(spell, requirements => true);
        }

        private Composite SelfCast(string spell, SimpleBooleanDelegate requirements)
        {
            return Cast(spell, requirements, unit => StyxWoW.Me);
        }

        private Composite Cast(string spell, SimpleBooleanDelegate requirements, UnitSelectionDelegate unit)
        {
            return new Decorator(ret => requirements != null && requirements(ret) && SpellManager.HasSpell(spell) && SpellManager.CanCast(spell, unit(ret), false, false),
                new Styx.TreeSharp.Action(ctx => {
                    SpellManager.Cast(spell, unit(ctx));
                    return RunStatus.Success;
                })
            );
        }
    }
}

No idea if it works.
 
Last edited:
Back
Top