• Visit Rebornbuddy
  • Dragoon question

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

    1. exaccuss

      exaccuss Active Member

      Joined:
      Nov 10, 2013
      Messages:
      1,021
      Likes Received:
      6
      Trophy Points:
      38
      Ok, i am using one of fredalbob's dragoon profile, but it always seems to just spam disembowel over and over. What needs to be changed?

      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("Plebotomize", r => Core.Player.ClassLevel >= 30),
      Apply("Blood for Blood", r=> Core.Player.ClassLevel >= 12),
      Cast("Impulse Drive", r => Core.Player.IsBehind == true),
      Cast("Disembowel", r=> Core.Player.ClassLevel >= 38),
      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("Heavy Thrust", r => Core.Player.ClassLevel >= 12)// r => Actionmanager.LastSpellId == 0 || Actionmanager.LastSpell.Name == "Full Thrust" )


      );
      }
      }
      }

      The priority should be: Internal Release (CD) > Blood for Blood (CD) > Heavy Thrust > Impulse Drive > Disembowel > Chaos Thrust > Plebotomize > Power Surge > Jump > Dragonfire Dive > True Thrust Combo Rotaiton
       
    2. exaccuss

      exaccuss Active Member

      Joined:
      Nov 10, 2013
      Messages:
      1,021
      Likes Received:
      6
      Trophy Points:
      38
      protected override Composite CreateCombat()
      {
      return new PrioritySelector(
      Apply("Internal Release", r=> true, r => Core.Player),
      Apply("Bloodbath", r=> true, r => Core.Player),
      Apply("Blood for Blood", r=> true, r => Core.Player),
      Cast("Second Wind", r => Core.Player.CurrentHealthPercent < 80, r => Core.Player),
      Cast("Invigorate", r => Core.Player.CurrentTPPercent < 60, r => Core.Player),
      Cast("Mercy Stroke"),
      Cast("Full Thrust", r => Actionmanager.LastSpell.Name == "Vorpal Thrust"),
      Cast("Vorpal Thrust", r => Actionmanager.LastSpell.Name == "True Thrust"),
      Cast("True Thrust", r => Actionmanager.LastSpell.Name == "Phlebotomize"),
      Cast("Phlebotomize", r => Actionmanager.LastSpell.Name == "Disembowel"),
      Cast("Disembowel", r => Actionmanager.LastSpell.Name == "Impulse Drive"),
      Cast("Impulse Drive", r => true)// r => Actionmanager.LastSpellId == 0 || Actionmanager.LastSpell.Name == "Full Thrust" )

      Does anybody know how to make this rotation work at any side of the enemy? ie with this profile, it only progresses past impulse drive if it uses it from the rear..
       
    3. nekoramen

      nekoramen Member

      Joined:
      Dec 1, 2013
      Messages:
      38
      Likes Received:
      3
      Trophy Points:
      8
      I don't think you can.

      As always, at the office so I can't check but I think Actionmanager.LastSpell only register on combo skills. Phlebotomize doesn't combo into True Thrust so it won't run True Thrust and in return won't run Vorpal and Full. Likewise, Impulse Drive also doesn't combo into Disembowel if not used from the rear.

      You can set a variable to always get the last skill regardless of combo but why would you want to? The thrust combo is higher in potential if you're using it from anywhere.
       
    4. exaccuss

      exaccuss Active Member

      Joined:
      Nov 10, 2013
      Messages:
      1,021
      Likes Received:
      6
      Trophy Points:
      38
      Yeah i noticed that. Basically what i set up (for a level 40 drg) is it will keep casting heavy thrust until you use it from flank then you go behind target and it will do impulse drive - disembowel - phlebotomize - true thrust rotation. It may not be the most efficient, but it gets the job done at least.
       

    Share This Page