I get this output:
Don't know why ;s
Modified CC:
Code:
[21:08:32:121] Exception in CGWorld__TraceLine:Process must have frozen or gotten out of sync; InjectionFinishedEvent was never fired. - at BlueMagic.ExecutorRand.Execute()
at Styx.WoWInternals.World.GameWorld.#QJc(WoWPoint from, WoWPoint to, Single distance, CGWorldFrameHitFlags flags, WoWPoint& hitPoint) - Honorbuddy
[21:08:32:151] [LazyRaider] Version 1.1.1 Stopped
[21:08:32:153] Activity: Honorbuddy Stopped
[21:08:32:161] System.ApplicationException: Cannot run Tick before running Start first!
at TreeSharp.Composite.Tick(Object context)
at Styx.Logic.BehaviorTree.TreeRoot.Tick()
[21:08:32:161] Cleared POI - Reason Exception in Root.Tick()
[21:08:32:161] Cleared POI
Don't know why ;s
Modified CC:
Code:
using System.Linq;
using Singular.Dynamics;
using Singular.Helpers;
using Singular.Managers;
using Singular.Settings;
using Styx;
using Styx.Combat.CombatRoutine;
using Styx.Logic;
using Styx.Logic.Combat;
using Styx.WoWInternals.WoWObjects;
using TreeSharp;
namespace Singular.ClassSpecific.Paladin
{
public static class Holy
{
[Class(WoWClass.Paladin)]
[Spec(TalentSpec.HolyPaladin)]
[Behavior(BehaviorType.Rest)]
[Context(WoWContext.All)]
public static Composite CreateHolyPaladinRest()
{
return new PrioritySelector(
// Heal self before resting. There is no need to eat while we have 100% mana
CreatePaladinHealBehavior(true),
// Rest up damnit! Do this first, so we make sure we're fully rested.
Rest.CreateDefaultRestBehaviour(),
// Can we res people?
Spell.Resurrect("Redemption"),
// Make sure we're healing OOC too!
CreatePaladinHealBehavior(false, false)
);
}
[Class(WoWClass.Paladin)]
[Spec(TalentSpec.HolyPaladin)]
[Behavior(BehaviorType.Heal)]
[Context(WoWContext.All)]
public static Composite CreateHolyPaladinHealBehavior()
{
return new PrioritySelector(CreatePaladinHealBehavior());
}
[Class(WoWClass.Paladin)]
[Spec(TalentSpec.HolyPaladin)]
[Behavior(BehaviorType.CombatBuffs)]
[Context(WoWContext.All)]
public static Composite CreateHolyPaladinCombatBuffsBehavior()
{
return new PrioritySelector(
Spell.BuffSelf(
"Divine Plea",
ret => StyxWoW.Me.ManaPercent <= SingularSettings.Instance.Paladin.DivinePleaMana && StyxWoW.Me.HealthPercent > 90)
);
}
[Class(WoWClass.Paladin)]
[Spec(TalentSpec.HolyPaladin)]
[Behavior(BehaviorType.Combat)]
[Context(WoWContext.All)]
public static Composite CreateHolyPaladinCombatBehavior()
{
return new PrioritySelector(
Safers.EnsureTarget(),
Spell.Cast("Judgement",
ret => SpellManager.HasSpell("Judgement") &&
!StyxWoW.Me.HasAura("Judgements of the Pure") &&
StyxWoW.Me.CurrentTarget.Distance <= SpellManager.Spells["Judgement"].MaxRange - 2 &&
StyxWoW.Me.CurrentTarget.InLineOfSight &&
StyxWoW.Me.IsSafelyFacing(StyxWoW.Me.CurrentTarget)),
new Decorator(
ret => !StyxWoW.Me.IsInParty && !StyxWoW.Me.IsInRaid,
new PrioritySelector(
Movement.CreateMoveToLosBehavior(),
Movement.CreateFaceTargetBehavior(),
Helpers.Common.CreateAutoAttack(true),
Helpers.Common.CreateInterruptSpellCast(ret => StyxWoW.Me.CurrentTarget),
Spell.Buff("Judgement"),
Spell.Cast("Hammer of Wrath"),
Spell.Cast("Holy Shock"),
Spell.Cast("Crusader Strike"),
Spell.Cast("Exorcism"),
Spell.Cast("Holy Wrath"),
Spell.Cast("Consecration"),
Movement.CreateMoveToTargetBehavior(true, 5f)
))
);
}
[Class(WoWClass.Paladin)]
[Spec(TalentSpec.HolyPaladin)]
[Behavior(BehaviorType.Pull)]
[Context(WoWContext.All)]
public static Composite CreateHolyPaladinPullBehavior()
{
return new PrioritySelector(
new Decorator(
ret => !StyxWoW.Me.IsInParty && !StyxWoW.Me.IsInRaid,
new PrioritySelector(
Movement.CreateMoveToLosBehavior(),
Movement.CreateFaceTargetBehavior(),
Spell.Cast("Judgement"),
Helpers.Common.CreateAutoAttack(true),
Movement.CreateMoveToTargetBehavior(true, 5f)
)
)
);
}
internal static Composite CreatePaladinHealBehavior()
{
return CreatePaladinHealBehavior(false, true);
}
internal static Composite CreatePaladinHealBehavior(bool selfOnly)
{
return CreatePaladinHealBehavior(selfOnly, false);
}
internal static Composite CreatePaladinHealBehavior(bool selfOnly, bool moveInRange)
{
HealerManager.NeedHealTargeting = true;
return
new PrioritySelector(
ctx => selfOnly ? StyxWoW.Me : HealerManager.Instance.FirstUnit,
new Decorator(
ret => ret != null,
new PrioritySelector(
Spell.WaitForCast(),
// BoL on the tank or myself.
Spell.Buff(
"Beacon of Light",
ret => RaFHelper.Leader,
ret => RaFHelper.Leader.IsAlive && !RaFHelper.Leader.HasMyAura("Beacon of Light")),
Spell.BuffSelf(
"Beacon of Light",
ret => RaFHelper.Leader == null && !StyxWoW.Me.HasAura("Beacon of Light")),
// Big Heal
Spell.Heal(
"Lay on Hands",
ret => (WoWUnit)ret,
ret => StyxWoW.Me.Combat && !((WoWUnit)ret).HasAura("Forbearance") &&
((WoWUnit)ret).HealthPercent <= SingularSettings.Instance.Paladin.LayOnHandsHealth),
// Cleanse
Spell.Buff(
"Cleanse",
ret => (WoWUnit)ret,
ret => SingularSettings.Instance.DispelPlayers && Dispelling.CanDispelUnit((WoWUnit)ret)),
// Protection Cooldowns
Spell.Buff(
"Hand of Sacrifice",
ret => RaFHelper.Leader,
ret => SingularSettings.Instance.Paladin.HandOfSacrifice && RaFHelper.Leader.HealthPercent <= SingularSettings.Instance.Paladin.HandOfSacrificeHealthHoly && !RaFHelper.Leader.IsMe && !RaFHelper.Leader.Dead && !RaFHelper.Leader.IsGhost),
Spell.BuffSelf(
"Divine Protection",
ret => SingularSettings.Instance.Paladin.DivineProtection && StyxWoW.Me.HealthPercent <= SingularSettings.Instance.Paladin.DivineProtectionHealthHoly),
Spell.BuffSelf(
"Divine Plea",
ret => StyxWoW.Me.ManaPercent <= SingularSettings.Instance.Paladin.DivinePleaMana && StyxWoW.Me.HealthPercent > 85),
// Cooldowns
Spell.BuffSelf(
"Divine Favor",
ret => (!SingularSettings.Instance.Paladin.DivineFavorExclusive || (!StyxWoW.Me.HasAura("Guardian of Ancient Kings") && !StyxWoW.Me.HasAura("Avenging Wrath") && !StyxWoW.Me.HasAura("Divine Plea"))) &&
Unit.NearbyUnfriendlyUnits.Count(u => u.Distance < 40 && u.HealthPercent < SingularSettings.Instance.Paladin.DivineFavorHealth) >= SingularSettings.Instance.Paladin.DivineFavorMembers),
Spell.BuffSelf(
"Avenging Wrath",
ret => (!SingularSettings.Instance.Paladin.AvengingWrathExclusive || (!StyxWoW.Me.HasAura("Guardian of Ancient Kings") && !StyxWoW.Me.HasAura("Divine Favor") && !StyxWoW.Me.HasAura("Divine Plea"))) &&
Unit.NearbyUnfriendlyUnits.Count(u => u.Distance < 40 && u.HealthPercent < SingularSettings.Instance.Paladin.AvengingWrathHealth) >= SingularSettings.Instance.Paladin.AvengingWrathMembers),
Spell.Cast(
"Guardian of Ancient Kings",
ret => (!SingularSettings.Instance.Paladin.GoAKExclusive || (!StyxWoW.Me.HasAura("Avenging Wrath") && !StyxWoW.Me.HasAura("Divine Favor") && !StyxWoW.Me.HasAura("Divine Plea"))) &&
Unit.NearbyUnfriendlyUnits.Count(u => u.Distance < 40 && u.HealthPercent < SingularSettings.Instance.Paladin.GoAKHealthHoly) >= SingularSettings.Instance.Paladin.GoAKMembers),
// LoD and WoG need to be used every time we get 3 HP. LoD if AOE, WoG if single target.
Spell.Cast(
"Light of Dawn",
ret => StyxWoW.Me,
ret => StyxWoW.Me.CurrentHolyPower == 3 &&
Clusters.GetClusterCount((WoWPlayer)ret, Unit.NearbyFriendlyPlayers.Where(p => !p.Dead && !p.IsGhost && p.HealthPercent <= SingularSettings.Instance.Paladin.LightOfDawnHealth).Cast<WoWUnit>(), ClusterType.Cone, 30f) >= SingularSettings.Instance.Paladin.LightOfDawnCount),
Spell.Heal(
"Word of Glory",
ret => (WoWUnit)ret,
ret => StyxWoW.Me.CurrentHolyPower == 3 && ((WoWUnit)ret).HealthPercent <= SingularSettings.Instance.Paladin.WordOfGloryHealth),
// Big AoE
Spell.Cast(
"Holy Radiance",
ret => Clusters.GetBestUnitForCluster(Unit.NearbyFriendlyPlayers.Cast<WoWUnit>(), ClusterType.Radius, 10f),
ret => Clusters.GetClusterCount((WoWPlayer)ret, Unit.NearbyFriendlyPlayers.Where(p => !p.Dead && !p.IsGhost && p.HealthPercent <= SingularSettings.Instance.Paladin.LightOfDawnHealth).Cast<WoWUnit>(), ClusterType.Radius, 10f) >= SingularSettings.Instance.Paladin.LightOfDawnCount),
// Use on CD
Spell.Heal(
"Holy Shock",
ret => (WoWUnit)ret,
ret => ((WoWUnit)ret).HealthPercent <= SingularSettings.Instance.Paladin.HolyShockHealth),
// Fast Heal - Lots of Mana
Spell.Heal(
"Flash of Light",
ret => (WoWUnit)ret,
ret => ((WoWUnit)ret).HealthPercent <= SingularSettings.Instance.Paladin.FlashOfLightHealth),
// Big Heal - Lots of Mana
Spell.Heal(
"Divine Light",
ret => (WoWUnit)ret,
ret => ((WoWUnit)ret).HealthPercent <= SingularSettings.Instance.Paladin.DivineLightHealth),
// The Heal
Spell.Heal(
"Holy Light",
ret => (WoWUnit)ret,
ret => ((WoWUnit)ret).HealthPercent <= SingularSettings.Instance.Paladin.HolyLightHealth),
new Decorator(
ret => moveInRange,
new PrioritySelector(
// Get in range and los
Movement.CreateMoveToLosBehavior(ret => (WoWUnit)ret),
Movement.CreateMoveToTargetBehavior(true, 35f, ret => (WoWUnit)ret)))
)));
}
}
}