Advertisement
Guest User

DNC lua for Riki

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