Guest User

DNC

a guest
Sep 22nd, 2016
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 58.54 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Setup functions for this job.  Generally should not be modified.
  3. -------------------------------------------------------------------------------------------------------------------
  4. --[[
  5.     Custom commands:
  6.    
  7.     gs c step
  8.         Uses the currently configured step on the target, with either <t> or <stnpc> depending on setting.
  9.  
  10.     gs c step t
  11.         Uses the currently configured step on the target, but forces use of <t>.
  12.    
  13.    
  14.     Configuration commands:
  15.    
  16.     gs c cycle mainstep
  17.         Cycles through the available steps to use as the primary step when using one of the above commands.
  18.        
  19.     gs c cycle altstep
  20.         Cycles through the available steps to use for alternating with the configured main step.
  21.        
  22.     gs c toggle usealtstep
  23.         Toggles whether or not to use an alternate step.
  24.        
  25.     gs c toggle selectsteptarget
  26.         Toggles whether or not to use <stnpc> (as opposed to <t>) when using a step.
  27. --]]
  28.  
  29.  
  30. -- Initialization function for this job file.
  31. function get_sets()
  32.     mote_include_version = 2
  33.    
  34.     -- Load and initialize the include file.
  35.     include('Mote-Include.lua')
  36.     include('organizer-lib')
  37.  
  38. end
  39.  
  40.  
  41. -- Setup vars that are user-independent.  state.Buff vars initialized here will automatically be tracked.
  42. function job_setup()
  43.  
  44.     include('Mote-TreasureHunter')
  45.     state.TreasureMode:set('Tag')
  46.    
  47.     state.Buff['Climactic Flourish'] = buffactive['climactic flourish'] or false
  48.    
  49.     state.Buff.Doom = buffactive.doom or false
  50.    
  51.     state.Buff.sleep = buffactive.sleep or false
  52.  
  53.     state.MainStep = M{['description']='Main Step', 'Box Step', 'Quickstep', 'Feather Step', 'Stutter Step'}
  54.     state.AltStep = M{['description']='Alt Step', 'Quickstep', 'Feather Step', 'Stutter Step', 'Box Step'}
  55.     --Haste mode
  56.     state.HasteMode = M{['description']='Haste Mode', 'Haste_15', 'Haste_25' , 'Haste_35', 'Max'}
  57.     state.UseAltStep = M(false, 'Use Alt Step')
  58.     state.SelectStepTarget = M(false, 'Select Step Target')
  59.     state.IgnoreTargetting = M(false, 'Ignore Targetting')
  60.  
  61.     state.CurrentStep = M{['description']='Current Step', 'Main', 'Alt'}
  62.     state.SkillchainPending = M(false, 'Skillchain Pending')
  63.    
  64.     -- JA IDs for actions that always have TH: Provoke, Animated Flourish
  65.     info.default_ja_ids = S{35, 204}
  66.     -- Unblinkable JA IDs for actions that always have TH: Quick/Box/Stutter Step, Desperate/Violent Flourish
  67.     info.default_u_ja_ids = S{201, 202, 203, 205, 207}
  68.      
  69.     determine_haste_group()
  70. end
  71.  
  72. -------------------------------------------------------------------------------------------------------------------
  73. -- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
  74. -------------------------------------------------------------------------------------------------------------------
  75.  
  76. -- Setup vars that are user-dependent.  Can override this function in a sidecar file.
  77. function user_setup()
  78.     state.OffenseMode:options('Normal' ,'Haste2', 'Acc', 'NoDW')
  79.    
  80.     state.HybridMode:options('Normal', 'Evasion', 'PDT')
  81.     state.WeaponskillMode:options('Normal')
  82.     state.PhysicalDefenseMode:options('PDT', 'Evasion')
  83. -- Haste modes
  84.     --state.HasteMode:options('Normal', 'HighHaste', 'MaxHaste')
  85.  
  86.     gear.default.weaponskill_waist = "Fotia Belt"
  87.    
  88.  
  89.     -- Additional local binds
  90.     send_command('bind ^= gs c cycle mainstep')
  91. -- Haste mode keybind
  92.     --send_command('bind != gs c cycle HasteMode')
  93.     send_command('bind ^- gs c toggle selectsteptarget')
  94.     send_command('bind !- gs c toggle usealtstep')
  95.     send_command('bind ^` input /ja "Chocobo Jig" <me>')
  96.     send_command('bind !` input /ja "Chocobo Jig II" <me>')
  97.  
  98.     select_default_macro_book()
  99. end
  100.  
  101.  
  102. -- Called when this job file is unloaded (eg: job change)
  103. function user_unload()
  104.     send_command('unbind ^`')
  105.     send_command('unbind !`')
  106.     send_command('unbind ^=')
  107.     send_command('unbind !=')
  108.     send_command('unbind ^-')
  109.     send_command('unbind !-')
  110. end
  111.  
  112.  
  113. -- Define sets and vars used by this job file.
  114. function init_gear_sets()
  115.     --------------------------------------
  116.     -- Start defining the sets
  117.     --------------------------------------
  118.    
  119.     --TH on first hit
  120.     sets.TreasureHunter = {legs={ name="Herculean Trousers", augments={'CHR+5','Accuracy+2 Attack+2','"Treasure Hunter"+1','Mag. Acc.+6 "Mag.Atk.Bns."+6',}},
  121.     waist="Chaac Belt"}
  122.    
  123.     -- Precast Sets
  124.    
  125.     -- Precast sets to enhance JAs
  126.  
  127.     sets.precast.JA['No Foot Rise'] = {body="Horos Casaque +1"}
  128.  
  129.     sets.precast.JA['Trance'] = {head="Horos Tiara +1"}
  130.    
  131.  
  132.     -- Waltz set (chr and vit)
  133.     sets.precast.Waltz = {ammo="Light Sachet",
  134.         head="Anwig Salade",ear1="Roundel earring",ear2="Handler's earring +1",
  135.         body="Passion Jacket",neck="Dualism Collar +1",
  136.         hands={ name="Herculean Gloves", augments={'Accuracy+5','"Waltz" potency +11%',}},
  137.         legs="Dashing Subligar",waist="Aristo Belt",
  138.         ring1="Asklepian Ring",ring2="Valseur's Ring",
  139.         back={ name="Senuna's Mantle", augments={'CHR+20','Eva.+20 /Mag. Eva.+20','CHR+10','"Waltz" potency +10%',}},
  140.         feet={ name="Herculean Boots", augments={'"Waltz" potency +10%','CHR+8',}}}
  141.        
  142.     -- Don't need any special gear for Healing Waltz.
  143.     sets.precast.Waltz['Healing Waltz'] = {}
  144.    
  145.     sets.precast.Samba = {head="Maxixi Tiara +1",back="Senuna's Mantle"}
  146.  
  147.     sets.precast.Jig = {legs="Horos Tights +1", feet="Maxixi Toe Shoes +1"}
  148.  
  149.     sets.precast.Step = {ammo="Falcon Eye",
  150.         head="Meghanada Visor +1",neck="Subtlety Spectacles",ear1="Zennaroi Earring",ear2="Digni. Earring",
  151.         body="Meghanada Cuirie +1",hands="Meg. Gloves +1",ring1="Cacoethic Ring +1",ring2="Defending Ring",
  152.         back="Senuna's Mantle",waist="Olseni Belt",
  153.         legs="Meg. Chausses +1",
  154.         feet="Meg. Jam. +1"}
  155.        
  156.     sets.precast.Step['Feather Step'] = {feet="Maculele Toeshoes +1"}
  157.    
  158.     sets.precast.Step['Stutter Step'] = {legs={ name="Herculean Trousers", augments={'CHR+5','Accuracy+2 Attack+2','"Treasure Hunter"+1','Mag. Acc.+6 "Mag.Atk.Bns."+6',}},
  159.     waist="Chaac Belt"}
  160.  
  161.     sets.precast.Flourish1 = {}
  162.     sets.precast.Flourish1['Violent Flourish'] = {ammo="Pemphredo Tathlum",
  163.         head="Dampening Tam",body="Horos Casaque +1",
  164.         hands="Rawhide Gloves",
  165.         ring1="Sangoma Ring",ring2="Etana Ring",ear1="Digni. Earring",ear2="Gwati Earring",
  166.         waist="Eschan Stone",neck="Voltsurge Torque",back="Aput Mantle",
  167.         legs={ name="Herculean Trousers", augments={'Rng.Atk.+9','Mag. Acc.+30','Mag. Acc.+16 "Mag.Atk.Bns."+16',}},
  168.         feet={ name="Herculean Boots", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','Weapon skill damage +1%','MND+5','Mag. Acc.+12','"Mag.Atk.Bns."+11',}}} -- magic accuracy
  169.        
  170.     sets.precast.Flourish1['Desperate Flourish'] = {ammo="Falcon Eye",
  171.         head="Maculele Tiara +1",neck="Subtlety Spectacles",ear1="Zennaroi Earring",ear2="Digni. Earring",
  172.         body="Horos Casaque +1",hands="Maculele Bangles +1",ring1="Cacoethic Ring +1",ring2="Etana Ring",
  173.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}},waist="Olseni Belt",
  174.         legs={ name="Herculean Trousers", augments={'Accuracy+24 Attack+24','"Dual Wield"+1','DEX+14','Accuracy+8','Attack+3',}},
  175.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}} -- acc gear
  176.  
  177.     sets.precast.Flourish2 = {}
  178.     sets.precast.Flourish2['Reverse Flourish'] = {hands="Maculele Bangles +1",
  179.       back={ name="Toetapper Mantle", augments={'"Store TP"+1','"Dual Wield"+5','"Rev. Flourish"+30','Weapon skill damage +2%',}}}
  180.  
  181.     sets.precast.Flourish3 = {}
  182.     sets.precast.Flourish3['Striking Flourish'] = {body="Maculele Casaque +1"}
  183.     sets.precast.Flourish3['Climactic Flourish'] = {head="Maculele Tiara +1"}
  184.  
  185.     -- Fast cast sets for spells
  186.    
  187.     sets.precast.FC = {ammo="Impatiens",
  188.       head={ name="Herculean Helm", augments={'Mag. Acc.+25','"Fast Cast"+5','MND+5','"Mag.Atk.Bns."+12',}},
  189.       neck="Voltsurge Torque",ear1="Etiolation Earring",ear2="Loquacious Earring",
  190.       body="Foppish Tunica",hands="Leyline Gloves",
  191.       legs={ name="Herculean Trousers", augments={'Mag. Acc.+6','"Fast Cast"+6','INT+9','"Mag.Atk.Bns."+10',}},
  192.       ring1="Lebeche Ring",ring2="Prolix Ring",
  193.       back={ name="Senuna's Mantle", augments={'AGI+20','Eva.+20 /Mag. Eva.+20','"Fast Cast"+10',}},
  194.       feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+15','"Fast Cast"+5','Mag. Acc.+14',}}}
  195.  
  196.     sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads",body="Passion Jacket"})
  197.  
  198.        
  199.     -- Weaponskill sets
  200.     -- Default set for any weaponskill that isn't any more specifically defined
  201.     sets.precast.WS = {ammo="Ginsen",
  202.         head={ name="Herculean Helm", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+10','Accuracy+8','Attack+5',}},
  203.         neck="Fotia Gorget",ear1="Ishvara Earring",ear2="Moonshade Earring",
  204.         body="Adhemar Jacket",hands="Maculele Bangles +1",ring1="Rajas Ring",ring2="Apate Ring",
  205.         back="Senuna's Mantle",waist="Fotia Belt",
  206.         legs="Samnuha Tights",
  207.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  208.    
  209.    
  210.     -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
  211.     sets.precast.WS['Shark Bite'] = set_combine(sets.precast.WS, {
  212.         ammo="Floestone",
  213.         head={ name="Adhemar Bonnet", augments={'STR+10','DEX+10','Attack+15',}},
  214.         body={ name="Adhemar Jacket", augments={'STR+10','DEX+10','Attack+15',}},
  215.         hands={ name="Adhemar Wristbands", augments={'STR+10','DEX+10','Attack+15',}},
  216.         legs={ name="Lustratio Subligar", augments={'Accuracy+15','DEX+5','Crit. hit rate+2%',}},
  217.         feet="Macu. Toeshoes +1",neck="Fotia Gorget",waist="Fotia Belt",
  218.         ear1="Jupiter's Pearl",ear2="Ishvara Earring",ring1="Ramuh Ring +1",ring2="Apate Ring",
  219.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}}})
  220.    
  221.     sets.precast.WS['Exenterator'] = set_combine(sets.precast.WS, {
  222.         ammo="Ginsen",
  223.         head={ name="Lilitu Headpiece", augments={'STR+10','DEX+10','Attack+15','Weapon skill damage +3%',}},
  224.         body={ name="Adhemar Jacket", augments={'STR+10','DEX+10','Attack+15',}},
  225.         hands={ name="Adhemar Wristbands", augments={'STR+10','DEX+10','Attack+15',}},
  226.         legs="Maculele Tights +1",
  227.         feet="Macu. Toeshoes +1",neck="Fotia Gorget",waist="Fotia Belt",ear1="Tati Earring",
  228.         ear2="Tati Earring",ring1="Ramuh Ring +1",ring2="Apate Ring",
  229.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Weapon skill damage +10%',}}})
  230.    
  231.  
  232.     sets.precast.WS['Pyrrhic Kleos'] = {ammo="Falcon Eye",
  233.         head={ name="Herculean Helm", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+10','Accuracy+8','Attack+5',}},
  234.         body="Adhemar Jacket",neck="Fotia Gorget",
  235.         ear1="Tati Earring",ear2="Tati Earring",hands="Adhemar Wristbands",
  236.         legs="Samnuha Tights",feet="Lustratio Leggings",
  237.         waist="Fotia Belt",ring1="Ifrit Ring +1",ring2="Ifrit Ring +1",
  238.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}}}
  239.  
  240.     sets.precast.WS['Evisceration'] = {ammo="Charis Feather",
  241.         head={ name="Herculean Helm", augments={'Accuracy+10 Attack+10','Crit.hit rate+4','Attack+11',}},
  242.         body="Foppish Tunica",
  243.         neck="Fotia Gorget",ear1="Jupiter's Pearl",ear2="Moonshade Earring",
  244.         hands="Adhemar Wristbands",ring1="Ramuh Ring +1",ring2="Ramuh Ring +1",waist="Fotia Belt",legs="Lustratio Subligar",
  245.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Crit.hit rate+10',}},
  246.         feet={ name="Herculean Boots", augments={'Attack+23','Crit.hit rate+4','DEX+10','Accuracy+9',}}}
  247.    
  248.  
  249.     sets.precast.WS["Rudra's Storm"] = {
  250.         ammo="Floestone",
  251.         head="Lilitu Headpiece",
  252.         body={ name="Adhemar Jacket", augments={'STR+10','DEX+10','Attack+15',}},
  253.         hands="Meghanada Gloves +1",
  254.         legs={ name="Lustratio Subligar", augments={'Accuracy+15','DEX+5','Crit. hit rate+2%',}},
  255.         feet={ name="Herculean Boots", augments={'Attack+12','Weapon skill damage +5%','DEX+4',}},
  256.         neck="Caro Necklace",waist="Grunfeld Rope",
  257.         ear1="Moonshade Earring",ear2="Ishvara Earring",ring1="Ramuh Ring +1",ring2="Ramuh Ring +1",
  258.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%',}}}
  259.        
  260.     sets.precast.WS["Rudra's Storm"].CF = {ammo="Charis Feather",
  261.         neck="Caro Necklace",
  262.         ear1="Ishvara Earring",
  263.         ear2="Moonshade Earring",body="Meghanada Cuirie +1",
  264.         hands="Meghanada Gloves +1",
  265.         ring1="Ramuh Ring +1",ring2="Ramuh Ring +1",
  266.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%',}},
  267.         waist="Grunfeld Rope",legs="Lustratio Subligar",
  268.         feet={ name="Herculean Boots", augments={'Attack+12','Weapon skill damage +5%','DEX+4',}}}
  269.  
  270.     sets.precast.WS['Aeolian Edge'] = {ammo="Pemphredo Tathlum",
  271.         head={ name="Herculean Helm", augments={'Mag. Acc.+17 "Mag.Atk.Bns."+17','Mag. Acc.+4','"Mag.Atk.Bns."+12',}},
  272.         neck="Sanctity Necklace",ear1="Friomisi Earring",ear2="Crematio Earring",
  273.         body="Samnuha Coat",hands="Leyline Gloves",
  274.         ring1="Ramuh Ring +1",ring2="Ramuh Ring +1",
  275.         --back="Argochampsa mantle",
  276.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%',}},
  277.         waist="Eschan Stone",
  278.         legs={ name="Herculean Trousers", augments={'Mag. Acc.+16 "Mag.Atk.Bns."+16','"Fast Cast"+5','"Mag.Atk.Bns."+15',}},
  279.         feet={ name="Herculean Boots", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','Weapon skill damage +1%','MND+5','Mag. Acc.+12','"Mag.Atk.Bns."+11',}}}
  280.    
  281.     sets.precast.Skillchain = {}
  282.    
  283.    
  284.     -- Midcast Sets
  285.    
  286.     sets.midcast.FastRecast = {
  287.       ammo="Impatiens",
  288.       head={ name="Herculean Helm", augments={'Mag. Acc.+25','"Fast Cast"+5','MND+5','"Mag.Atk.Bns."+12',}},
  289.       neck="Voltsurge Torque",ear1="Etiolation Earring",ear2="Loquacious Earring",
  290.       body="Foppish Tunica",hands="Leyline Gloves",
  291.       legs={ name="Herculean Trousers", augments={'Mag. Acc.+6','"Fast Cast"+6','INT+9','"Mag.Atk.Bns."+10',}},
  292.       ring1="Lebeche Ring",ring2="Prolix Ring",
  293.       feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+15','"Fast Cast"+5','Mag. Acc.+14',}}}
  294.        
  295.     -- Specific spells
  296.     sets.midcast.Utsusemi = {
  297.         head={ name="Herculean Helm", augments={'Accuracy+19','Damage taken-3%','STR+7','Attack+7',}},
  298.         body="Emet Harness +1",neck="Twilight Torque",ear1="Etiolation Earring",ear2="Loquacious Earring",
  299.         hands="Leyline Gloves",ring1="Defending Ring",ring2="Patricius Ring",
  300.         back="Fravashi Mantle",
  301.         legs={ name="Herculean Trousers", augments={'Mag. Acc.+6','"Fast Cast"+6','INT+9','"Mag.Atk.Bns."+10',}},
  302.         feet={ name="Herculean Boots", augments={'"Mag.Atk.Bns."+15','"Fast Cast"+5','Mag. Acc.+14',}}}
  303.    
  304.     sets.midcast['Yoran-Oran (UC)'] = set_combine(sets.midcast.FastRecast, {body="Yoran Unity Shirt"})
  305.  
  306.     -- Sets to return to when not performing an action.
  307.    
  308.     -- Resting sets
  309.     sets.resting = {head="Ocelomeh Headpiece +1",body={ name="Rawhide Vest", augments={'HP+50','Accuracy+15','Evasion+20',}},
  310.         neck="Bathy Choker +1",ear1="Infused Earring",
  311.         ring1="Shneddick Ring",ring2="Paguroidea Ring",feet="Maculele Toeshoes +1"}
  312.     --sets.ExtraRegen = {head="Ocelomeh Headpiece +1"}
  313.    
  314.  
  315.     -- Idle sets
  316.  
  317.     sets.idle = {
  318.         head="Ocelomeh Headpiece +1",neck="Bathy Choker +1",ear1="Infused Earring",ear2="Hearty Earring",
  319.         body={ name="Rawhide Vest", augments={'HP+50','Accuracy+15','Evasion+20',}},
  320.         hands="Maculele Bangles +1",legs="Maculele Tights +1",
  321.         ring1="Shneddick Ring",ring2="Paguroidea Ring",
  322.         back="Solemnity Cape",
  323.         feet={ name="Rawhide Boots", augments={'HP+50','Accuracy+15','Evasion+20',}}}
  324.  
  325.     sets.idle.Town = {main="Terpsichore",head="Moogle Masque",neck="Bathy Choker +1",
  326.         ear1="Infused Earring",ear2="Hearty Earring",
  327.         body="Tidal Talisman",hands="Maculele Bangles +1",ring1="Shneddick Ring",ring2="Paguroidea Ring",
  328.         back="Solemnity Cape",waist="Patentia Sash",legs="Gemini Subligar",
  329.         feet={ name="Rawhide Boots", augments={'HP+50','Accuracy+15','Evasion+20',}}}
  330.  
  331.     sets.idle.Weak = {
  332.         neck="Bathy Choker +1",ear1="Dudgeon Earring",ear2="Hearty Earring",
  333.         body="Horos Casaque +1",hands="Maculele Bangles +1",ring1="Shneddick Ring",ring2="Paguroidea Ring",
  334.         back="Solemnity Cape",feet={ name="Rawhide Boots", augments={'HP+50','Accuracy+15','Evasion+20',}}}
  335.    
  336.     -- Defense sets
  337.  
  338.     sets.defense.Evasion = {}
  339.  
  340.     sets.defense.PDT = {
  341.         head={ name="Herculean Helm", augments={'Accuracy+19','Damage taken-3%','STR+7','Attack+7',}},neck="Twilight Torque",
  342.         body="Meghanada Cuirie +1",hands={ name="Herculean Gloves", augments={'Accuracy+26','Damage taken-2%','Attack+3',}},
  343.         ring1="Defending Ring",ring2="Patricius Ring",waist="Dynamic Belt",
  344.         legs="Meghanada Chausses +1",back="Agema Cape",
  345.         feet={ name="Herculean Boots", augments={'Accuracy+14 Attack+14','Phys. dmg. taken -4%','STR+7','Accuracy+9',}}}
  346.  
  347.     sets.defense.MDT = {
  348.         neck="Twilight Torque",
  349.         ring1="Defending Ring",ring2="Purity Ring",
  350.         back="Mubvumbamiri Mantle"}
  351.  
  352.     sets.Kiting = {}
  353.  
  354.     -- Engaged sets
  355.  
  356.     -- Variations for TP weapon and (optional) offense/defense modes.  Code will fall back on previous
  357.     -- sets if more refined versions aren't defined.
  358.     -- If you create a set with both offense and defense modes, the offense mode should be first.
  359.     -- EG: sets.engaged.Dagger.Accuracy.Evasion
  360.     -- Fodder is Single wield mode.
  361.    
  362.     -- Normal melee group
  363.     sets.engaged = {ammo="Ginsen",
  364.         head={ name="Adhemar Bonnet", augments={'STR+10','DEX+10','Attack+15',}},neck="Charis Necklace",
  365.         ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  366.         body="Maculele Casaque +1",hands="Adhemar Wristbands",
  367.         ring1="Rajas Ring",ring2="Petrov Ring",
  368.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
  369.         waist="Patentia Sash",legs="Taeon Tights",
  370.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  371.  
  372.     sets.engaged.NoDW = {main="Terpsichore",ammo="Ginsen",
  373.         head="Maculele Tiara +1",neck="Combatant's Torque",ear1="Dedition Earring",ear2="Tripudio Earring",
  374.         body="Adhemar Jacket",hands="Adhemar Wristbands",
  375.         ring1="Rajas Ring",ring2="Petrov Ring",
  376.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},
  377.         waist="Olseni Belt",legs="Samnuha Tights",
  378.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  379.        
  380.     sets.engaged.NoDW.Evasion = {main="Terpsichore",ammo="Charis Feather",
  381.         head={ name="Adhemar Bonnet", augments={'STR+10','DEX+10','Attack+15',}},neck="Combatant's Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  382.         body="Maculele Casaque +1",hands="Adhemar Wristbands",
  383.         ring1="Rajas Ring",ring2="Petrov Ring",
  384.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},
  385.         waist="Patentia Sash",legs="Taeon Tights",
  386.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  387.  
  388.     sets.engaged.Acc = {ammo="Falcon Eye",
  389.         head="Dampening Tam",neck="Combatant's Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  390.         body="Maculele Casaque +1",hands="Adhemar Wristbands",ring1="Rajas Ring",ring2="Petrov Ring",
  391.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
  392.         waist="Patentia Sash",legs={ name="Herculean Trousers", augments={'Accuracy+24 Attack+24','"Dual Wield"+1','DEX+14','Accuracy+8','Attack+3',}},
  393.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  394.     sets.engaged.Evasion = {ammo="Ginsen",
  395.         head={ name="Adhemar Bonnet", augments={'STR+10','DEX+10','Attack+15',}},neck="Charis Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  396.         body="Maculele Casaque +1",hands="Adhemar Wristbands",
  397.         ring1="Rajas Ring",ring2="Petrov Ring",
  398.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dual Wield"+10',}},
  399.         waist="Patentia Sash",legs="Taeon Tights",
  400.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  401.     sets.engaged.PDT = {main="Terpsichore",ammo="Ginsen",
  402.         head={ name="Adhemar Bonnet", augments={'STR+10','DEX+10','Attack+15',}},
  403.         neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  404.         body="Horos Casaque +1",hands={ name="Herculean Gloves", augments={'Accuracy+26','Damage taken-2%','Attack+3',}},
  405.         ring1="Defending Ring",ring2="Patricius Ring",
  406.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dual Wield"+10',}},
  407.         waist="Patentia Sash",legs="Taeon Tights",
  408.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  409.     sets.engaged.Acc.Evasion = {main="Terpsichore",ammo="Falcon Eye",
  410.         head="Maculele Tiara +1",
  411.         neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  412.         body="Horos Casaque +1",hands={ name="Herculean Gloves", augments={'Accuracy+26','Damage taken-2%','Attack+3',}},
  413.         ring1="Defending Ring",ring2="Patricius Ring",
  414.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dual Wield"+10',}},
  415.         waist="Patentia Sash",legs="Taeon Tights",
  416.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  417.     sets.engaged.Acc.PDT = {main="Terpsichore",ammo="Ginsen",
  418.         head={ name="Adhemar Bonnet", augments={'STR+10','DEX+10','Attack+15',}},neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  419.         body="Horos Casaque +1",hands={ name="Herculean Gloves", augments={'Accuracy+26','Damage taken-2%','Attack+3',}},
  420.         ring1="Defending Ring",ring2="Patricius Ring",
  421.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dual Wield"+10',}},waist="Patentia Sash",
  422.         legs="Taeon Tights",
  423.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  424.    
  425.     -- Haste at 15%
  426.     sets.engaged.Haste_15 = {ammo="Ginsen",
  427.         head={ name="Adhemar Bonnet", augments={'STR+10','DEX+10','Attack+15',}},neck="Charis Necklace",
  428.         ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  429.         body="Maculele Casaque +1",hands="Adhemar Wristbands",
  430.         ring1="Rajas Ring",ring2="Petrov Ring",
  431.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
  432.         waist="Patentia Sash",legs="Taeon Tights",
  433.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  434.  
  435.     sets.engaged.NoDW.Haste_15 = {main="Terpsichore",ammo="Ginsen",
  436.         head="Maculele Tiara +1",neck="Combatant's Torque",ear1="Dedition Earring",ear2="Tripudio Earring",
  437.         body="Adhemar Jacket",hands="Adhemar Wristbands",
  438.         ring1="Rajas Ring",ring2="Petrov Ring",
  439.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},
  440.         waist="Olseni Belt",legs="Samnuha Tights",
  441.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  442.        
  443.     sets.engaged.NoDW.Evasion.Haste_15 = {main="Terpsichore",ammo="Charis Feather",
  444.         head={ name="Adhemar Bonnet", augments={'STR+10','DEX+10','Attack+15',}},neck="Combatant's Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  445.         body="Maculele Casaque +1",hands="Adhemar Wristbands",
  446.         ring1="Rajas Ring",ring2="Petrov Ring",
  447.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},
  448.         waist="Patentia Sash",legs="Taeon Tights",
  449.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  450.  
  451.     sets.engaged.Acc.Haste_15 = {ammo="Falcon Eye",
  452.         head="Dampening Tam",neck="Combatant's Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  453.         body="Maculele Casaque +1",hands="Adhemar Wristbands",ring1="Rajas Ring",ring2="Petrov Ring",
  454.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
  455.         waist="Patentia Sash",legs={ name="Herculean Trousers", augments={'Accuracy+24 Attack+24','"Dual Wield"+1','DEX+14','Accuracy+8','Attack+3',}},
  456.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  457.     sets.engaged.Evasion.Haste_15 = {ammo="Ginsen",
  458.         head={ name="Adhemar Bonnet", augments={'STR+10','DEX+10','Attack+15',}},neck="Charis Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  459.         body="Maculele Casaque +1",hands="Adhemar Wristbands",
  460.         ring1="Rajas Ring",ring2="Petrov Ring",
  461.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dual Wield"+10',}},
  462.         waist="Patentia Sash",legs="Taeon Tights",
  463.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  464.     sets.engaged.PDT.Haste_15 = {main="Terpsichore",ammo="Ginsen",
  465.         head={ name="Adhemar Bonnet", augments={'STR+10','DEX+10','Attack+15',}},
  466.         neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  467.         body="Horos Casaque +1",hands={ name="Herculean Gloves", augments={'Accuracy+26','Damage taken-2%','Attack+3',}},
  468.         ring1="Defending Ring",ring2="Patricius Ring",
  469.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dual Wield"+10',}},
  470.         waist="Patentia Sash",legs="Taeon Tights",
  471.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  472.     sets.engaged.Acc.Evasion.Haste_15 = {main="Terpsichore",ammo="Falcon Eye",
  473.         head="Maculele Tiara +1",
  474.         neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  475.         body="Horos Casaque +1",hands={ name="Herculean Gloves", augments={'Accuracy+26','Damage taken-2%','Attack+3',}},
  476.         ring1="Defending Ring",ring2="Patricius Ring",
  477.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dual Wield"+10',}},
  478.         waist="Patentia Sash",legs="Taeon Tights",
  479.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  480.     sets.engaged.Acc.PDT.Haste_15 = {main="Terpsichore",ammo="Ginsen",
  481.         head={ name="Adhemar Bonnet", augments={'STR+10','DEX+10','Attack+15',}},neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  482.         body="Horos Casaque +1",hands={ name="Herculean Gloves", augments={'Accuracy+26','Damage taken-2%','Attack+3',}},
  483.         ring1="Defending Ring",ring2="Patricius Ring",
  484.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dual Wield"+10',}},waist="Patentia Sash",
  485.         legs="Taeon Tights",
  486.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  487.  
  488.     --Custom melee group: Mid Haste 25%
  489.     sets.engaged.Haste_25 = {ammo="Ginsen",
  490.         head={ name="Adhemar Bonnet", augments={'STR+10','DEX+10','Attack+15',}},neck="Charis Necklace",
  491.         ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  492.         body="Maculele Casaque +1",hands="Adhemar Wristbands",
  493.         ring1="Rajas Ring",ring2="Petrov Ring",
  494.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
  495.         waist="Patentia Sash",legs="Taeon Tights",
  496.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  497.  
  498.     sets.engaged.NoDW.Haste_25 = {main="Terpsichore",ammo="Ginsen",
  499.         head="Maculele Tiara +1",neck="Combatant's Torque",ear1="Dedition Earring",ear2="Tripudio Earring",
  500.         body="Adhemar Jacket",hands="Adhemar Wristbands",
  501.         ring1="Rajas Ring",ring2="Petrov Ring",
  502.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},
  503.         waist="Olseni Belt",legs="Samnuha Tights",
  504.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  505.        
  506.     sets.engaged.NoDW.Evasion.Haste_25 = {main="Terpsichore",ammo="Charis Feather",
  507.         head={ name="Adhemar Bonnet", augments={'STR+10','DEX+10','Attack+15',}},neck="Combatant's Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  508.         body="Maculele Casaque +1",hands="Adhemar Wristbands",
  509.         ring1="Rajas Ring",ring2="Petrov Ring",
  510.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},
  511.         waist="Patentia Sash",legs="Taeon Tights",
  512.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  513.  
  514.     sets.engaged.Acc.Haste_25 = {ammo="Falcon Eye",
  515.         head="Dampening Tam",neck="Combatant's Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  516.         body="Maculele Casaque +1",hands="Adhemar Wristbands",ring1="Rajas Ring",ring2="Petrov Ring",
  517.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
  518.         waist="Patentia Sash",legs={ name="Herculean Trousers", augments={'Accuracy+24 Attack+24','"Dual Wield"+1','DEX+14','Accuracy+8','Attack+3',}},
  519.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  520.     sets.engaged.Evasion.Haste_25 = {ammo="Ginsen",
  521.         head={ name="Adhemar Bonnet", augments={'STR+10','DEX+10','Attack+15',}},neck="Charis Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  522.         body="Maculele Casaque +1",hands="Adhemar Wristbands",
  523.         ring1="Rajas Ring",ring2="Petrov Ring",
  524.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dual Wield"+10',}},
  525.         waist="Patentia Sash",legs="Taeon Tights",
  526.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  527.     sets.engaged.PDT.Haste_25 = {main="Terpsichore",ammo="Ginsen",
  528.         head={ name="Adhemar Bonnet", augments={'STR+10','DEX+10','Attack+15',}},
  529.         neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  530.         body="Horos Casaque +1",hands={ name="Herculean Gloves", augments={'Accuracy+26','Damage taken-2%','Attack+3',}},
  531.         ring1="Defending Ring",ring2="Patricius Ring",
  532.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dual Wield"+10',}},
  533.         waist="Patentia Sash",legs="Taeon Tights",
  534.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  535.     sets.engaged.Acc.Evasion.Haste_25 = {main="Terpsichore",ammo="Falcon Eye",
  536.         head="Maculele Tiara +1",
  537.         neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  538.         body="Horos Casaque +1",hands={ name="Herculean Gloves", augments={'Accuracy+26','Damage taken-2%','Attack+3',}},
  539.         ring1="Defending Ring",ring2="Patricius Ring",
  540.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dual Wield"+10',}},
  541.         waist="Patentia Sash",legs="Taeon Tights",
  542.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  543.     sets.engaged.Acc.PDT.Haste_25 = {main="Terpsichore",ammo="Ginsen",
  544.         head={ name="Adhemar Bonnet", augments={'STR+10','DEX+10','Attack+15',}},neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  545.         body="Horos Casaque +1",hands={ name="Herculean Gloves", augments={'Accuracy+26','Damage taken-2%','Attack+3',}},
  546.         ring1="Defending Ring",ring2="Patricius Ring",
  547.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dual Wield"+10',}},waist="Patentia Sash",
  548.         legs="Taeon Tights",
  549.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  550.        
  551.     -- Custom melee group: High Haste (2x March and Haste or Haste 2 or Mighty Guard and Haste 1)
  552.     sets.engaged.Haste_35 = {ammo="Ginsen",
  553.         head="Dampening Tam",neck="Combatant's Torque",
  554.         ear1="Tripudio Earring",ear2="Brutal Earring",
  555.         body="Adhemar Jacket",hands="Adhemar Wristbands",
  556.         ring1="Rajas Ring",ring2="Petrov Ring",
  557.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},waist="Patentia Sash",
  558.         legs="Samnuha Tights",
  559.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  560.  
  561.     sets.engaged.NoDW.Haste_35 = {main="Terpsichore",ammo="Ginsen",
  562.         head="Maculele Tiara +1",neck="Combatant's Torque",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  563.         body="Adhemar Jacket",hands="Adhemar Wristbands",
  564.         ring1="Rajas Ring",ring2="Petrov Ring",
  565.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},
  566.         waist="Olseni Belt",legs="Samnuha Tights",
  567.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  568.     sets.engaged.NoDW.Evasion.Haste_35 = {main="Terpsichore",ammo="Charis Feather",
  569.         head="Maculele Tiara +1",
  570.         neck="Combatant's Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  571.         body="Adhemar Jacket",hands={ name="Herculean Gloves", augments={'Accuracy+26','Damage taken-2%','Attack+3',}},
  572.         ring1="Rajas Ring",ring2="Petrov Ring",
  573.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},waist="Patentia Sash",
  574.         legs="Samnuha Tights",
  575.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  576.  
  577.     sets.engaged.Acc.Haste_35 = {ammo="Falcon Eye",
  578.         head="Dampening Tam",neck="Combatant's Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  579.         body="Adhemar jacket",hands="Adhemar Wristbands",ring1="Rajas Ring",ring2="Petrov Ring",
  580.         back={ name="Senuna's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
  581.         waist="Patentia Sash",legs={ name="Herculean Trousers", augments={'Accuracy+24 Attack+24','"Dual Wield"+1','DEX+14','Accuracy+8','Attack+3',}},
  582.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  583.     sets.engaged.Evasion.Haste_35 = {ammo="Ginsen",
  584.         head={ name="Adhemar Bonnet", augments={'STR+10','DEX+10','Attack+15',}},neck="Charis Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  585.         body="Adhemar Jacket",hands="Adhemar Wristbands",
  586.         ring1="Rajas Ring",ring2="Petrov Ring",
  587.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},waist="Patentia Sash",
  588.         legs="Samnuha Tights",
  589.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  590.     sets.engaged.Acc.Evasion.Haste_35 = {main="Terpsichore",ammo="Falcon Eye",
  591.         head="Maculele Tiara +1",neck="Charis Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  592.         body="Adhemar Jacket",hands="Adhemar Wristbands",
  593.         ring1="Rajas Ring",ring2="Petrov Ring",
  594.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},waist="Patentia Sash",
  595.         legs={ name="Herculean Trousers", augments={'Accuracy+24 Attack+24','"Dual Wield"+1','DEX+14','Accuracy+8','Attack+3',}},
  596.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  597.     sets.engaged.PDT.Haste_35 = {main="Terpsichore",ammo="Ginsen",
  598.         head={ name="Adhemar Bonnet", augments={'STR+10','DEX+10','Attack+15',}},neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  599.         body="Horos Casaque +1",hands={ name="Herculean Gloves", augments={'Accuracy+26','Damage taken-2%','Attack+3',}},
  600.         ring1="Defending Ring",ring2="Patricius Ring",
  601.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},waist="Patentia Sash",
  602.         legs="Samnuha Tights",
  603.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  604.     sets.engaged.Acc.PDT.Haste_35 = {main="Terpsichore",ammo="Falcon Eye",
  605.         head="Maculele Tiara +1",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  606.         body="Horos Casaque +1",hands={ name="Herculean Gloves", augments={'Accuracy+26','Damage taken-2%','Attack+3',}},
  607.         ring1="Defending Ring",ring2="Patricius Ring",
  608.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},
  609.         waist="Patentia Sash",
  610.         legs={ name="Herculean Trousers", augments={'Accuracy+24 Attack+24','"Dual Wield"+1','DEX+14','Accuracy+8','Attack+3',}},
  611.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  612.  
  613.  
  614.     -- Custom melee group: Max Haste (2x March + Haste or Geo-Haste and Haste 1 or Geo-haste and March or Geo-haste and Mighty Guard)
  615.     sets.engaged.MaxHaste = {ammo="Ginsen",
  616.         head={ name="Herculean Helm", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+10','Accuracy+8','Attack+5',}},
  617.         neck="Combatant's Torque",ear1="Brutal Earring",ear2="Cessance Earring",
  618.         body={ name="Herculean Vest", augments={'Attack+22','"Triple Atk."+3','DEX+6','Accuracy+4',}},
  619.         hands="Adhemar Wristbands",ring1="Rajas Ring",ring2="Petrov Ring",
  620.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},waist="Windbuffet Belt +1",
  621.         legs="Samnuha Tights",
  622.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  623.  
  624.     -- Capped magical haste during single wield
  625.     sets.engaged.NoDW.MaxHaste = {main="Terpsichore",ammo="Ginsen",
  626.         head="Maculele Tiara +1",neck="Combatant's Torque",ear1="Dedition Earring",ear2="Tripudio Earring",
  627.         body="Adhemar Jacket",hands="Adhemar Wristbands",
  628.         ring1="Rajas Ring",ring2="Petrov Ring",
  629.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},
  630.         waist="Olseni Belt",legs="Samnuha Tights",
  631.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  632.     sets.engaged.NoDW.Evasion.MaxHaste = {main="Terpsichore",ammo="Charis Feather",
  633.         head="Maculele Tiara +1",
  634.         neck="Combatant's Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  635.         body="Adhemar Jacket",
  636.         hands={ name="Herculean Gloves", augments={'Accuracy+26','Damage taken-2%','Attack+3',}},
  637.         ring1="Rajas Ring",ring2="Petrov Ring",
  638.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},waist="Patentia Sash",
  639.         legs="Samnuha Tights",
  640.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  641.  
  642.     sets.engaged.Acc.MaxHaste = {ammo="Falcon Eye",
  643.         head="Dampening Tam",neck="Combatant's Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  644.         body="Maculele Casaque +1",hands="Adhemar Wristbands",ring1="Rajas Ring",ring2="Ramuh Ring +1",
  645.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},
  646.         waist="Kentarch Belt +1",legs={ name="Herculean Trousers", augments={'Accuracy+24 Attack+24','"Dual Wield"+1','DEX+14','Accuracy+8','Attack+3',}},
  647.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  648.     sets.engaged.Evasion.MaxHaste = {main="Terpsichore",ammo="Ginsen",
  649.         head="Maculele Tiara +1",
  650.         neck="Asperity Necklace",ear1="Tripudio Earring",ear2="Cessance Earring",
  651.         body="Adhemar Jacket",
  652.         hands="Adhemar Wristbands",
  653.         ring1="Rajas Ring",ring2="Petrov Ring",
  654.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},waist="Windbuffet Belt +1",
  655.         legs="Samnuha Tights",
  656.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  657.     sets.engaged.Acc.Evasion.MaxHaste = {main="Terpsichore",ammo="Falcon Eye",
  658.         head="Maculele Tiara +1",neck="Asperity Necklace",ear1="Tripudio Earring",ear2="Cessance Earring",
  659.         body="Horos Casaque +1",hands="Maculele Bangles +1",ring1="Rajas Ring",ring2="Petrov Ring",
  660.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},
  661.         waist="Olseni Belt",
  662.         legs={ name="Herculean Trousers", augments={'Accuracy+24 Attack+24','"Dual Wield"+1','DEX+14','Accuracy+8','Attack+3',}},
  663.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  664.     sets.engaged.PDT.MaxHaste = {main="Terpsichore",ammo="Ginsen",
  665.         head="Maculele Tiara +1",
  666.         neck="Twilight Torque",ear1="Tripudio Earring",ear2="Cessance Earring",
  667.         body="Horos Casaque +1",hands={ name="Herculean Gloves", augments={'Accuracy+26','Damage taken-2%','Attack+3',}},
  668.         ring1="Defending Ring",ring2="Patricius Ring",
  669.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},waist="Windbuffet Belt +1",
  670.         legs="Samnuha Tights",
  671.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  672.     sets.engaged.Acc.PDT.MaxHaste = {main="Terpsichore",ammo="Falcon Eye",
  673.         head="Maculele Tiara +1",neck="Twilight Torque",ear1="Tripudio Earring",ear2="Cessance Earring",
  674.         body="Horos Casaque +1",hands={ name="Herculean Gloves", augments={'Accuracy+26','Damage taken-2%','Attack+3',}},
  675.         ring1="Defending Ring",ring2="Patricius Ring",
  676.         back={ name="Senuna's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10',}},
  677.         waist="Windbuffet Belt +1",
  678.         legs={ name="Herculean Trousers", augments={'Accuracy+24 Attack+24','"Dual Wield"+1','DEX+14','Accuracy+8','Attack+3',}},
  679.         feet={ name="Herculean Boots", augments={'Accuracy+16 Attack+16','"Triple Atk."+4','DEX+7','Accuracy+15','Attack+4',}}}
  680.  
  681.  
  682.  
  683.     -- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
  684.     sets.buff['Saber Dance'] = {}
  685.     sets.buff['Climactic Flourish'] = {head="Maculele Tiara +1"}
  686.     sets.buff.Doom = {ring1="Blenmot's Ring",ring2="Purity Ring"}
  687.     sets.buff.sleep = {head="Frenzy Sallet"}
  688.  
  689.     --Organizer
  690.     organizer_items = {head="Shobuhouou Kabuto",
  691.         ring="Warp Ring",sub="Airy Buckler"}
  692. end
  693.  
  694.  
  695. -------------------------------------------------------------------------------------------------------------------
  696. -- Job-specific hooks for standard casting events.
  697. -------------------------------------------------------------------------------------------------------------------
  698.  
  699. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  700. -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
  701. function job_precast(spell, action, spellMap, eventArgs)
  702.      cancel_conflicting_buffs(spell, action, spellMap, eventArgs)
  703. end
  704.  
  705.  
  706. function job_post_precast(spell, action, spellMap, eventArgs)
  707.     if spell.type == "WeaponSkill" then
  708.         if state.Buff['Climactic Flourish'] then
  709.             equip(sets.buff['Climactic Flourish'])
  710.         end
  711.         if state.SkillchainPending.value == true then
  712.             equip(sets.precast.Skillchain)
  713.         end
  714.     end
  715. end
  716.  
  717.  
  718.  
  719. -- For shadows
  720. function midcast(spell)
  721.     if spell.name == 'Utsusemi: Ichi' then
  722.         send_command('cancel Copy Image|Copy Image (2)')
  723.     end
  724. end
  725.  
  726. -- Return true if we handled the aftercast work.  Otherwise it will fall back
  727. -- to the general aftercast() code in Mote-Include.
  728. function job_aftercast(spell, action, spellMap, eventArgs)
  729.     if not spell.interrupted then
  730.         if spell.english == "Wild Flourish" then
  731.             state.SkillchainPending:set()
  732.             send_command('wait 5;gs c unset SkillchainPending')
  733.         elseif spell.type:lower() == "weaponskill" then
  734.             state.SkillchainPending:toggle()
  735.             send_command('wait 6;gs c unset SkillchainPending')
  736.         end
  737.     end
  738. end
  739.  
  740. -------------------------------------------------------------------------------------------------------------------
  741. -- Job-specific hooks for non-casting events.
  742. -------------------------------------------------------------------------------------------------------------------
  743.  
  744. -- Called when a player gains or loses a buff.
  745. -- buff == buff gained or lost
  746. -- gain == true if the buff was gained, false if it was lost.
  747. function job_buff_change(buff,gain, eventArgs)
  748.     --If we gain or lose any haste buffs, adjust which gear set we target.
  749.     if S{'haste','march','embrava','haste samba','indi-haste','geo-haste','mighty guard'}:contains(buff:lower()) then
  750.         determine_haste_group()
  751.         handle_equipping_gear(player.status)
  752.     --elseif (buff == "terror" or buff == "petrification" or buff == "stun") and gain then
  753.            -- equip(sets.defense.PDT)
  754.    
  755.     elseif (buff == "sleep" and gain) and player.hp > 100 and player.status == "Engaged" then
  756.         equip(sets.buff.sleep)
  757.                
  758.                 if buffactive.stoneskin then
  759.                     send_command('cancel Stoneskin')
  760.  
  761.                 end
  762.     elseif state.Buff.Doom then
  763.         equip(sets.buff.Doom)
  764.  
  765.     --elseif (buff == "Doom" and gain)  then
  766.         --equip(sets.buff.Doom)
  767.     elseif buff == 'Saber Dance' or buff == 'Climactic Flourish' then
  768.         handle_equipping_gear(player.status)
  769.     end
  770. end
  771.        
  772.  
  773.  
  774.  
  775.  
  776.  
  777. function job_status_change(new_status, old_status)
  778.     if new_status == 'Engaged' then
  779.          determine_haste_group()
  780.     end
  781. end
  782.  
  783. --Aftermath for Terpsichore
  784. function job_precast(spell, action, spellMap, eventArgs)
  785.     custom_aftermath_timers_precast(spell)
  786. end
  787.  
  788. function job_aftercast(spell, action, spellMap, eventArgs)
  789.     custom_aftermath_timers_aftercast(spell)
  790. end
  791.  
  792. -------------------------------------------------------------------------------------------------------------------
  793. -- User code that supplements standard library decisions.
  794. -------------------------------------------------------------------------------------------------------------------
  795.  
  796. -- Called by the default 'update' self-command.
  797. function job_update(cmdParams, eventArgs)
  798.     determine_haste_group()
  799. end
  800.  
  801.  
  802. function get_custom_wsmode(spell, spellMap, defaut_wsmode)
  803.     local wsmode
  804.  
  805.     if state.Buff['Climactic Flourish'] then
  806.         wsmode = 'CF'
  807.     end
  808.    
  809.     return wsmode
  810. end
  811.  
  812. function customize_melee_set(meleeSet)
  813.     if state.DefenseMode.value ~= 'None' then
  814.         if buffactive['Saber dance'] then
  815.             meleeSet = set_combine(meleeSet, sets.buff['Saber Dance'])
  816.         end
  817.         if state.Buff['Climactic Flourish'] then
  818.             meleeSet = set_combine(meleeSet, sets.buff['Climactic Flourish'])
  819.         end
  820.     end
  821.    
  822.     if player.equipment.sub == 'Airy Buckler' then
  823.         meleeSet = set_combine(meleeSet, sets.Fodder)
  824.     end
  825.    
  826.     if state.TreasureMode.value == 'Fulltime' then
  827.         meleeSet = set_combine(meleeSet, sets.TreasureHunter)
  828.     end
  829.  
  830.     return meleeSet
  831. end
  832.  
  833. -- Handle auto-targetting based on local setup.
  834. function job_auto_change_target(spell, action, spellMap, eventArgs)
  835.     if spell.type == 'Step' then
  836.         if state.IgnoreTargetting.value == true then
  837.             state.IgnoreTargetting:reset()
  838.             eventArgs.handled = true
  839.         end
  840.        
  841.         eventArgs.SelectNPCTargets = state.SelectStepTarget.value
  842.     end
  843. end
  844.  
  845.  
  846. -- Function to display the current relevant user state when doing an update.
  847. -- Set eventArgs.handled to true if display was handled, and you don't want the default info shown.
  848. function display_current_job_state(eventArgs)
  849.     local msg = 'Melee'
  850.    
  851.     if state.CombatForm.has_value then
  852.         msg = msg .. ' (' .. state.CombatForm.value .. ')'
  853.     end
  854.    
  855.     msg = msg .. ': '
  856.    
  857.     msg = msg .. state.OffenseMode.value
  858.     if state.HybridMode.value ~= 'Normal' then
  859.         msg = msg .. '/' .. state.HybridMode.value
  860.     end
  861.     msg = msg .. ', WS: ' .. state.WeaponskillMode.value
  862.    
  863.     if state.DefenseMode.value ~= 'None' then
  864.         msg = msg .. ', ' .. 'Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
  865.     end
  866.    
  867.     if state.Kiting.value then
  868.         msg = msg .. ', Kiting'
  869.     end
  870.  
  871.     msg = msg .. ', ['..state.MainStep.current
  872.  
  873.     if state.UseAltStep.value == true then
  874.         msg = msg .. '/'..state.AltStep.current
  875.     end
  876.    
  877.     msg = msg .. ']'
  878.  
  879.     if state.SelectStepTarget.value == true then
  880.         steps = steps..' (Targetted)'
  881.     end
  882.  
  883.     add_to_chat(122, msg)
  884.  
  885.     eventArgs.handled = true
  886. end
  887.  
  888.  
  889. -------------------------------------------------------------------------------------------------------------------
  890. -- User self-commands.
  891. -------------------------------------------------------------------------------------------------------------------
  892.  
  893. -- Called for custom player commands.
  894. function job_self_command(cmdParams, eventArgs)
  895.     if cmdParams[1] == 'step' then
  896.         if cmdParams[2] == 't' then
  897.             state.IgnoreTargetting:set()
  898.         end
  899.  
  900.         local doStep = ''
  901.         if state.UseAltStep.value == true then
  902.             doStep = state[state.CurrentStep.current..'Step'].current
  903.             state.CurrentStep:cycle()
  904.         else
  905.             doStep = state.MainStep.current
  906.         end        
  907.        
  908.         send_command('@input /ja "'..doStep..'" <t>')
  909.     end
  910. end
  911.  
  912. -------------------------------------------------------------------------------------------------------------------
  913. -- Utility functions specific to this job.
  914. -------------------------------------------------------------------------------------------------------------------
  915.  
  916. function determine_haste_group()
  917.     -- We have three groups of DW in gear: Charis body, Charis neck + DW earrings, and Patentia Sash.
  918.  
  919.     -- For high haste, we want to be able to drop one of the 10% groups (body, preferably).
  920.     -- High haste buffs:
  921.     -- 2x Marches + Haste
  922.     -- 2x Marches + Haste Samba
  923.     -- 1x March + Haste + Haste Samba
  924.     -- Embrava + any other haste buff
  925.    
  926.     -- For max haste, we probably need to consider dropping all DW gear.
  927.     -- Max haste buffs:
  928.     -- Embrava + Haste/March + Haste Samba
  929.     -- 2x March + Haste + Haste Samba
  930.     -- I put in GEO haste with 580 as buff and buff ID 33 is haste 1/2.
  931.     -- Mighty Guard was added from the extra +15% haste
  932.     --Added Haste 1/2 + Mighty Guard + haste samba combo to try to circumvent no toggle for hastes
  933.     --Need haste samba to cap with twashtar
  934.     classes.CustomMeleeGroups:clear()
  935.    
  936. --   if buffactive.embrava and (buffactive.haste or buffactive.march or buffactive['Mighty Guard']) and buffactive['haste samba'] then
  937. --      add_to_chat(8, '------------- Max Haste -------------')
  938. --        classes.CustomMeleeGroups:append('MaxHaste')
  939. --  elseif buffactive.haste == 2 then
  940. --      add_to_chat(8, '------------- Max Haste -------------')
  941. --      classes.CustomMeleeGroups:append('MaxHaste')
  942. --    elseif buffactive.march == 2 and (buffactive.haste or buffactive['Mighty Guard']) then
  943. --        add_to_chat(8, '------------- Max Haste -------------')
  944. --      classes.CustomMeleeGroups:append('MaxHaste')
  945. --  elseif buffactive[580] and (buffactive[33] or buffactive.march or buffactive['Mighty Guard'] or buffactive['haste samba']) then
  946. --        add_to_chat(8, '------------- Max Haste --------------')
  947. --      classes.CustomMeleeGroups:append('MaxHaste')
  948. --  elseif buffactive[580] and not buffactive[33] then
  949. --      add_to_chat(8, '-------------High Haste-------------')
  950. --      classes.CustomMeleeGroups:append('HighHaste')
  951. --    elseif buffactive.march == 1 and (buffactive.haste or buffactive['Mighty Guard']) and buffactive['haste samba'] then
  952. --        add_to_chat(8, '-------------High Haste-------------')
  953. --      classes.CustomMeleeGroups:append('HighHaste')
  954. --    elseif buffactive.march == 2 and (buffactive.haste or buffactive['Mighty Guard'] or buffactive['haste samba']) then
  955. --      add_to_chat(8, '-------------High Haste-------------')
  956. --      classes.CustomMeleeGroups:append('HighHaste')
  957. --  elseif buffactive.haste == 1 and (buffactive['haste samba'] or buffactive['Mighty Guard']) then
  958. --      add_to_chat(8, '-------------High Haste-------------')
  959. --      classes.CustomMeleeGroups:append('HighHaste')
  960.  
  961. --    end
  962.  
  963.     --Alternative haste mechanics with toggle
  964.     -- Haste: 15%
  965.     -- Haste Samba: 10%
  966.     -- Victory March +0/+3/+4/+5    9.4/14%/15.6%/17.1% +0
  967.     -- Advancing March +0/+3/+4/+5  6.3/10.9%/12.5%/14%  +0
  968.     -- Embrava 30% with 500 enhancing skill
  969.     -- Mighty Guard: 15%
  970.     -- buffactive[580] = geo haste
  971.     -- buffactive[33] = regular haste
  972.     -- buffactive[604] = mighty guard
  973.     -- state.HasteMode = toggle for when you know Haste II is being cast on you
  974.     -- Hi = Haste II is being cast. This is clunky to use when both haste II and haste I are being cast
  975.     if state.HasteMode.value == 'Haste2' then
  976.         if buffactive.embrava and (buffactive.haste or buffactive.march or buffactive['Mighty Guard']) and buffactive['haste samba'] then
  977.             add_to_chat(8, '------------- Max Haste -------------')
  978.             classes.CustomMeleeGroups:append('MaxHaste')
  979.         elseif buffactive.haste == 2 then
  980.             add_to_chat(8, '------------- Max Haste -------------')
  981.             classes.CustomMeleeGroups:append('MaxHaste')
  982.         elseif buffactive.march == 2 and (buffactive.haste or buffactive['Mighty Guard']) then
  983.             add_to_chat(8, '------------- Max Haste -------------')
  984.             classes.CustomMeleeGroups:append('MaxHaste')
  985.         elseif buffactive[580] and (buffactive[33] or buffactive.march or buffactive['Mighty Guard'] or buffactive['haste samba']) then
  986.             add_to_chat(8, '------------- Max Haste --------------')
  987.             classes.CustomMeleeGroups:append('MaxHaste')
  988.         elseif buffactive.march == 2 and (buffactive.haste or buffactive['Mighty Guard'] or buffactive['haste samba']) then
  989.             add_to_chat(8, '-------------High Haste-------------')
  990.             classes.CustomMeleeGroups:append('Haste_35')
  991.         elseif buffactive.march == 1 and (buffactive.haste or buffactive['Mighty Guard']) and buffactive['haste samba'] then
  992.             add_to_chat(8, '-------------High Haste-------------')
  993.             classes.CustomMeleeGroups:append('Haste_35')
  994.         elseif buffactive[580] and not buffactive[33] then
  995.             add_to_chat(8, '-------------High Haste-------------')
  996.             classes.CustomMeleeGroups:append('Haste_30')
  997.         elseif buffactive.haste == 1 and (buffactive['haste samba']) then
  998.             add_to_chat(8, '-------------High Haste-------------')
  999.             classes.CustomMeleeGroups:append('Haste_30')
  1000.         elseif buffactive.march == 2 then
  1001.             classes.CustomMeleeGroups:append('Haste_30')
  1002.         elseif buffactive['haste samba'] and (buffactive['Might Guard'] or buffactive.march == 1) then
  1003.             add_to_chat(8, '-------------Haste 25%-------------')
  1004.             classes.CustomMeleeGroups:append('Haste_25')
  1005.         elseif buffactive.march == 1 or buffactive['Might Guard'] or buffactive['haste samba'] then
  1006.             add_to_chat(8, '-------------Haste 15%-------------')
  1007.             classes.CustomMeleeGroups:append('Haste_15')
  1008.         end
  1009.     else
  1010.         if ( buffactive[580] and buffactive['haste samba'] and ( buffactive.march or buffactive[33] or buffactive.embrava or buffactive['Might guard']) ) or  -- geo haste + anything
  1011.            ( buffactive.embrava and buffactive['haste samba'] (buffactive.march or buffactive[33] or buffactive['Might Guard']) ) or  -- embrava + anything
  1012.            ( buffactive.march == 2 and (buffactive[33] or buffactive['Might Guard']) ) or  -- two marches + anything
  1013.            ( buffactive[33] and buffactive['Might Guard'] and buffactive.march and buffactive['haste samba']) then -- haste + mighty guard + any marches
  1014.             add_to_chat(8, '-------------Max Haste--------------')
  1015.             classes.CustomMeleeGroups:append('MaxHaste')
  1016.         elseif ( (buffactive['Might Guard'] or buffactive[33]) and buffactive.march == 1 and buffactive['haste samba']) or -- MG or haste + samba with 1 march
  1017.                ( buffactive.march == 2 and buffactive['haste samba'] ) or
  1018.                ( buffactive[580] and buffactive['haste samba'] ) then
  1019.             add_to_chat(8, '-------------Haste 35%-------------')
  1020.             classes.CustomMeleeGroups:append('Haste_35')
  1021.         elseif ( buffactive.march == 2 ) or -- two marches from ghorn
  1022.                ( (buffactive[33] or buffactive['Might Guard'] or buffactive['haste samba']) and buffactive.march == 1 ) or  -- MG or haste + 1 march
  1023.                ( buffactive[580] ) or  -- geo haste
  1024.                ( buffactive[33] and buffactive['Might Guard'] ) then  -- haste with MG
  1025.             add_to_chat(8, '-------------Haste 30%-------------')
  1026.             classes.CustomMeleeGroups:append('Haste_30')
  1027.         elseif  ( (buffactive['haste samba']) and
  1028.                 (buffactive.haste or buffactive.march == 1 or buffactive['Might Guard'] or buffactive['haste samba']) ) then
  1029.             classes.CustomMeleeGroups:append('Haste_25')
  1030.         elseif buffactive.haste or buffactive['Might Guard'] or buffactive.march == 1 then
  1031.             add_to_chat(8, '-------------Haste 15%-------------')
  1032.             classes.CustomMeleeGroups:append('Haste_15')
  1033.         end
  1034.     end
  1035. end
  1036.  
  1037.  
  1038.  
  1039. -- Automatically use Presto. The working code.
  1040. function job_pretarget(spell, action, spellMap, eventArgs)
  1041.     if spell.type == 'Step' then
  1042.         local allRecasts = windower.ffxi.get_ability_recasts()
  1043.         local prestoCooldown = allRecasts[236]
  1044.         local under5FMs = not buffactive['Finishing Move 6'] and not buffactive['Finishing Move 7']
  1045.          
  1046.         if player.main_job_level >= 77 and prestoCooldown < 1 and under5FMs then
  1047.             cast_delay(1.1)
  1048.             send_command('input /ja "Presto" <me>')
  1049.         end
  1050.     end
  1051. end
  1052.  
  1053. --Custom hook
  1054.  
  1055.  
  1056.  
  1057. -- Select default macro book on initial load or subjob change.
  1058. function select_default_macro_book()
  1059.     -- Default macro set/book
  1060.     if player.sub_job == 'WAR' then
  1061.         set_macro_page(1, 15)
  1062.     elseif player.sub_job == 'NIN' then
  1063.         set_macro_page(1, 15)
  1064.     elseif player.sub_job == 'SAM' then
  1065.         set_macro_page(1, 15)
  1066.     else
  1067.         set_macro_page(1, 15)
  1068.     end
  1069. end
Add Comment
Please, Sign In to add comment