• Visit Rebornbuddy
  • Need some help with drg profile

    Discussion in 'Rebornbuddy Forum' started by exaccuss, Jan 1, 2014.

    1. exaccuss

      exaccuss Active Member

      Joined:
      Nov 10, 2013
      Messages:
      1,021
      Likes Received:
      6
      Trophy Points:
      38
      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Runtime.InteropServices;
      using System.Text;
      using System.Windows.Forms;
      using ff14bot;
      using ff14bot.Enums;
      using ff14bot.Managers;
      using ff14bot.Navigation;
      using ff14bot.Objects;
      using TreeSharp;
      using Action = TreeSharp.Action;

      namespace Kupo.Rotations
      {
      public class LancerDragoon : KupoRoutine
      {
      public override int PullRange
      {
      get { return 5; }
      }

      public override ClassJobType[] Class
      {
      get { return new ClassJobType[]{ClassJobType.Dragoon, ClassJobType.Lancer, };}
      }

      protected override Composite CreatePreCombatBuffs()
      {
      return SummonChocobo();
      }

      protected override Composite CreateRest()
      {
      return DefaultRestBehavior(r => Core.Player.CurrentTPPercent);
      }

      private string[] PullSpells = new[] { "Heavy Thrust", "True Thrust" };
      private string _BestPullSpell;
      private string BestPullSpell
      {
      get
      {
      if (string.IsNullOrEmpty(_BestPullSpell))
      {
      foreach (var spell in PullSpells)
      {
      if (Actionmanager.HasSpell(spell))
      {
      _BestPullSpell = spell;
      return spell;
      }
      }
      _BestPullSpell = "Heavy Thrust";
      return "Heavy Thrust";
      }
      else
      {
      return _BestPullSpell;
      }
      }
      }

      protected override Composite CreatePull()
      {
      return new PrioritySelector(
      new Decorator(r => Actionmanager.InSpellInRangeLOS(BestPullSpell, Core.Target) == SpellRangeCheck.ErrorNotInRange, new Action(r => Navigator.MoveTo(Core.Target.Location))),
      new Decorator(r => Actionmanager.InSpellInRangeLOS(BestPullSpell, Core.Target) == SpellRangeCheck.ErrorNotInFront, new Action(r => Core.Target.Face())),
      Apply(r => BestPullSpell, r => Actionmanager.InSpellInRangeLOS(BestPullSpell, Core.Target) == SpellRangeCheck.Success)
      );


      }

      protected override Composite CreateCombat()
      {
      return new PrioritySelector(
      Apply("Internal Release", r=> true, r => Core.Player),
      Apply("Fracture"),
      Apply("Phlebotomize", r => Core.Player.ClassLevel >= 30),
      Apply("Blood for Blood", r=> Core.Player.ClassLevel >= 12),
      Cast("Chaos Thrust", r=> Core.Player.ClassLevel >= 50),
      Cast("True Thrust", r => true),
      Cast("Power Surge", r=> Core.Player.ClassLevel >= 45),
      Cast("Jump", r=> Core.Player.ClassLevel >= 30),
      Cast("Dragonfire Dive", r=> Core.Player.ClassLevel >= 50),
      Cast("Full Thrust", r => Actionmanager.LastSpell.Name == "Vorpal Thrust"),
      Cast("Vorpal Thrust", r => Actionmanager.LastSpell.Name == "True Thrust"),
      Cast("True Thrust"),
      Cast("Disembowel", r=> Core.Player.ClassLevel >= 38),
      Cast("Impulse Drive", r => Core.Player.IsBehind == true),
      Cast("Heavy Thrust", r => Core.Player.ClassLevel >= 12)// r => Actionmanager.LastSpellId == 0 || Actionmanager.LastSpell.Name == "Full Thrust" )


      );
      }
      }
      }

      It only seems to spam disembowel over and over unless phlebotomize and jump needs to be re applied. What i want it to do is go impulse drive > disembowel > True thrust combo. Can it be done?

      EDIT: Ok, i changed it to:

      protected override Composite CreateCombat()
      {
      return new PrioritySelector(
      Apply("Internal Release", r=> true, r => Core.Player),
      Apply("Fracture"),
      Apply("Phlebotomize", r => Core.Player.ClassLevel >= 30),
      Apply("Blood for Blood", r=> Core.Player.ClassLevel >= 12),
      Cast("Vorpal Thrust", r => Actionmanager.LastSpell.Name == "True Thrust"),
      Cast("True Thrust", r => Actionmanager.LastSpell.Name == "Disembowel"),
      Apply("Disembowel", r => Actionmanager.LastSpell.Name == "Impulse Drive"),
      Cast("Impulse Drive")

      And it seems to work, but is it at all possible to make it so if the effect of disembowel is active, it wont just spam impulse drive?
       

    Share This Page