motox11jmc

DRK 031822

Jul 27th, 2016 (edited)
4,327
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 55.03 KB | None | 0 0
  1. --[[ Info
  2. Commands
  3.     //gs debugmode
  4.     //gs showswaps
  5.     //gs validate - looks for gear in your sets that isnt in inventory.
  6.  
  7. -- Scythe Light:
  8.     Insurgency > Vorpal Scythe > Entropy > Guillotine > Entropy > Insurgency
  9.     Vorpal Scythe > Entropy > Guillotine > Entropy > Insurgency
  10.     Entropy > Guillotine > Entropy > Insurgency
  11.     Guillotine > Entropy > Insurgency
  12.    
  13. -- Scythe Darkness:
  14.     Insurgency (M) > Vorpal Scythe > Vorpal Scythe > Insurgency (M) > Entropy (MM) > Cross Reaper
  15.     Entropy (MM) > Guillotine > Entropy (MM) > Cross Reaper > Entropy (MM)
  16.     Cross Reaper > Insurgency (M) > Entropy (MM) > Cross Reaper
  17.     Insurgency (M) > Entropy (MM) > Cross Reaper
  18.     Cross Reaper > Entropy (MM)
  19.     Entropy (MM) > Cross Reaper
  20.  
  21. -- Apoc Darkness
  22.     Entropy (MM) > Guillotine > Entropy (MM) > Cross Reaper > Entropy (MM) > Catastrophe (R)
  23.     Entropy (MM) > Guillotine > Entropy (MM) > Cross Reaper > Entropy (MM)
  24.     Insurgency (M) > Entropy (MM) > Cross Reaper > Catastrophe (R)
  25.     Insurgency (M) > Catastrophe (R) > Cross Reaper > Catastrophe (R)
  26.     Cross Reaper > Insurgency (M) > Catastrophe (R) > Cross Reaper
  27.     Catastrophe (R) > Cross Reaper > Catastrophe (R)
  28.     Insurgency (M) > Catastrophe (R) > Cross Reaper
  29.     Cross Reaper > Catastrophe (R) > Catastrophe (R)
  30.     Cross Reaper > Entropy (MM) > Catastrophe (R)
  31.     Entropy (MM) > Cross Reaper > Catastrophe (R)
  32.     Catastrophe (R) > Catastrophe (R)
  33.     Catastrophe (R) > Cross Reaper
  34.     Cross Reaper > Catastrophe (R)
  35.  
  36. -- Other Light
  37.     Catastrophe (R) > Savage Blade (Q) > Insurgency (M)
  38.     Entropy (MM) > Savage Blade (Q) > Insurgency (M)
  39.     Savage Blade (Q) > Insurgency (M)
  40.     Chant du Cygne (E) > Torcleaver (E)
  41.  
  42. -- Other Dark
  43.     Atonement (M) > Entropy (MM) > Cross Reaper
  44.     Savage Blade (Q) > Cross Reaper > Entropy (MM)
  45.     Chant du Cygne (E) > Catastrophe (R)
  46.     Chant du Cygne (E) > Entropy (MM)
  47.     Requiescat (MM) > Cross Reaper
  48.     Requiescat (MM) > Torcleaver (E)
  49.  
  50. -- GreatSword
  51.     Resolution (MM) > Torcleaver (E) > Scourge (R) > Resolution (MM) > Torcleaver (E)
  52.     Resolution (MM) > Torcleaver (E) > Scourge (R) > Resolution (MM)
  53.     Resolution (MM) > Scourge (R) > Torcleaver (E)
  54.     Scourge (R) > Resolution (MM) > Torcleaver (E)
  55.     Torcleaver (E) > Torcleaver (E)
  56.     Scourge (R) > Resolution (MM)
  57. --]]
  58.  
  59. -- Initialization function for this job file.
  60. function get_sets()
  61.     mote_include_version = 2
  62. -- Load and initialize the include file.
  63.     include('Mote-Include.lua')
  64. end
  65.  
  66. -- Binds
  67. function binds_on_load()
  68. -- F9-F12
  69.     send_command('bind f9 gs c cycle OffenseMode')
  70.     send_command('bind f10 gs c cycle HybridMode')
  71.     send_command('bind f11 gs c cycle CastingMode')
  72.     send_command('bind f12 gs c cycle IdleMode')
  73. -- ALT F9-12
  74.     send_command('bind !f9 gs c update user')
  75.     send_command('bind !f10 gs c cycle RangedMode')
  76.     send_command('bind !f11 gs c cycle WeaponskillMode')
  77.     send_command('bind !f12 gs c cycle Kiting')
  78. end
  79.  
  80. -- Called when this job file is unloaded (eg: job change)
  81. function file_unload()
  82.     if binds_on_unload then
  83.         binds_on_unload()
  84.     end
  85. end
  86.  
  87. -- Setup vars that are user-independent.
  88. function job_setup()
  89.     --state.Buff.Aftermath = buffactive.Aftermath or false
  90.     state.Buff.Souleater = buffactive.Souleater or false
  91.     state.Buff['Dark Seal'] = buffactive['Dark Seal'] or false
  92.     state.Buff['Last Resort'] = buffactive['Last Resort'] or false
  93.     state.Buff['Doom'] = buffactive['Doom'] or false
  94.     state.Buff['Curse'] = buffactive['Curse'] or false
  95.    
  96.     -- new code
  97.     --state.Buff['Afermath: Lv.3'] = buffactive['Aftermath: Lv.3'] or false
  98.  
  99.  
  100.     Apoc_weapons = S{'Apocalypse'}
  101.     GS_weapons = S{'Ragnarok', 'Raetic Algol +1', 'Caladbolg'}
  102.     Anguta_weapons = S{'Anguta'}
  103.     Lib_weapons = S{'Liberator'}
  104.  
  105.     LowTierNuke = S{
  106.         'Stone', 'Water', 'Aero', 'Fire', 'Blizzard', 'Thunder',
  107.         'Stone II', 'Water II', 'Aero II', 'Fire II', 'Blizzard II', 'Thunder II',
  108.         'Stone III', 'Water III', 'Aero III', 'Fire III', 'Blizzard III', 'Thunder III',
  109.         'Stonega', 'Waterga', 'Aeroga', 'Firaga', 'Blizzaga', 'Thundaga',
  110.         'Stonega II', 'Waterga II', 'Aeroga II', 'Firaga II', 'Blizzaga II', 'Thundaga II'}
  111.    
  112.     -- Mote has capitalization errors in the default Absorb mappings, so we use our own.
  113.     Absorbs = S{'Absorb-STR', 'Absorb-DEX', 'Absorb-VIT', 'Absorb-AGI', 'Absorb-INT', 'Absorb-MND', 'Absorb-CHR', 'Absorb-Attri', 'Absorb-ACC', 'Absorb-TP'}
  114.    
  115.     get_combat_form()
  116.     get_combat_weapon()
  117.     update_melee_groups()
  118. end
  119.  
  120. -- Setup vars that are user-dependent.
  121. function user_setup()
  122.     state.OffenseMode:options('Normal', 'LowAcc', 'MidAcc', 'HighAcc')
  123.     state.HybridMode:options('Normal', 'DamageTaken')
  124.     state.CastingMode:options('Normal', 'Resistant', 'Enmity')
  125.     state.IdleMode:options('Normal','DamageTaken')
  126.     state.WeaponskillMode:options('Normal', 'Attack')
  127.     -- new
  128.     war_js = player.sub_job == 'WAR' or false
  129.  
  130.     select_default_macro_book()
  131. end
  132.  
  133. -- Define sets and vars used by this job file.
  134. function init_gear_sets()
  135. -- Precast sets
  136.     sets.Enmity = {
  137.         ammo="Sapience Orb",
  138.         head="Loess Barbuta +1", body="Emet Harness +1",
  139.         back="Reiki Cloak", neck="Unmoving Collar +1",
  140.         legs=Ody_Enmity_legs, feet="Eschite Greaves",
  141.         ring1="Pernicious Ring", ring2="Begrudging Ring",
  142.         ear1="Trux Earring", ear2="Cryptic Earring"}
  143.  
  144.     sets.precast.JA['Diabolic Eye'] = {hands="Fallen's Finger Gauntlets +3"}
  145.     sets.precast.JA['Nether Void'] = {legs="Heathen's Flanchard +1"}
  146.     sets.precast.JA['Dark Seal'] = {head="Fallen's Burgeonet +3"}
  147.     sets.precast.JA['Souleater'] = {head="Ignominy Burgeonet +3"}
  148.     sets.precast.JA['Weapon Bash'] = {hands="Ignominy Gauntlets +3"}
  149.     sets.precast.JA['Last Resort'] = {feet="Fallen's Sollerets +3", back=Ank_STP}
  150.     sets.precast.JA['Blood Weapon'] = {body="Fallen's Cuirass +3"}
  151.     sets.precast.JA['Arcane Circle'] = {feet="Ignominy Sollerets +3"}
  152.    
  153.     sets.precast.JA['Provoke'] = sets.Enmity
  154.  
  155. -- Earring considerations, given Lugra's day/night stats
  156.     sets.BrutalLugra = { ear1="Brutal Earring", ear2="Lugra Earring +1" }
  157.     sets.Lugra = { ear1="Lugra Earring +1" }
  158.     -- New sets
  159.     --sets.IshvaraLugra = { ear1="Thrud Earring", ear2="Lugra Earring +1" }
  160.     --sets.Brutal = { ear1="Brutal Earring" }
  161.     --sets.Ishvara = { ear1="Thrud Earring" }
  162.  
  163. -- Fast cast sets for spells
  164.     sets.precast.FC = {
  165.         ammo="Sapience Orb",
  166.         head="Carmine Mask +1", body="Fallen's Cuirass +3",
  167.         back=Ank_FC, neck="Baetyl Pendant",
  168.         hands="Leyline Gloves", waist="Tempus Fugit +1",
  169.         legs="Eschite Cuisses", feet=Ody_FC_feet,
  170.         ring1="Rahab Ring", ring2="Kishar Ring",
  171.         ear1="Malignance Earring", ear2="Enchanter's Earring +1"}
  172.  
  173.     sets.precast.FC.Impact = set_combine(sets.precast.FC, {
  174.         head=empty, body="Twilight Cloak"})
  175.  
  176. -- Midcast Sets
  177.     sets.midcast.FastRecast = {
  178.         ammo="Sapience Orb",
  179.         head="Carmine Mask +1", body="Fallen's Cuirass +3",
  180.         back=Ank_FC, neck="Baetyl Pendant",
  181.         hands="Leyline Gloves", waist="Tempus Fugit +1",
  182.         legs="Eschite Cuisses", feet=Ody_FC_feet,
  183.         ring1="Rahab Ring", ring2="Kishar Ring",
  184.         ear1="Malignance Earring", ear2="Enchanter's Earring +1"}
  185.  
  186. -- Specific spells
  187.     sets.midcast['Enfeebling Magic'] = {
  188.         ammo="Pemphredo Tathlum",
  189.         head="Carmine Mask +1", body="Nyame Mail",
  190.         back=Ank_FC, neck="Erra Pendant",
  191.         hands="Nyame Gauntlets", waist="Eschan Stone",
  192.         legs="Nyame Flanchard", feet="Nyame Sollerets",
  193.         ring1="Stikini Ring +1", Ring2="Kishar Ring",
  194.         ear1="Malignance Earring", ear2="Dignitary's Earring"}
  195.     sets.midcast['Enfeebling Magic'].Resistant = sets.midcast['Enfeebling Magic']
  196.     sets.midcast['Enfeebling Magic'].Enmity = sets.Enmity
  197.  
  198. -- Based on HP when casted.
  199.     sets.midcast['Dread Spikes'] = {
  200.         ammo="Staunch Tathlum +1",
  201.         head="Ratri Sallet +1", body="Heathen's Cuirass +1",
  202.         back="Moonlight Cape", neck="Dualism Collar +1",
  203.         hands="Ratri Gadlings +1", waist="Oneiros Belt",
  204.         legs="Ratri Cuisses +1", feet="Ratri Sollerets +1",
  205.         ring1="Moonlight Ring", Ring2="Gelatinous Ring +1",
  206.         ear1="Odnowa Earring +1", ear2="Tuisto Earring"}
  207.  
  208. -- Absorbs - Dark magic does not affect potency, use macc.
  209.     sets.midcast.Absorb = {
  210.         ammo="Pemphredo Tathlum",
  211.         head="Ignominy Burgeonet +3", body="Nyame Mail",
  212.         back="Chuparrosa Mantle", neck="Erra Pendant",
  213.         hands="Pavor Gauntlets", waist="Eschan Stone",
  214.         legs="Onyx Cuisses", feet="Ratri Sollerets +1",
  215.         Ring1="Stikini Ring +1", Ring2="Kishar Ring",
  216.         ear1="Malignance Earring", ear2="Dignitary's Earring"}
  217.     sets.midcast.Absorb.Resistant = set_combine(sets.midcast.Absorb, {
  218.         head="Carmine Mask +1", legs="Nyame Flanchard"})
  219.  
  220.     sets.midcast['Absorb-TP'] = set_combine(sets.midcast.Absorb, {hands="Heathen's Gauntlets +1"})
  221.     sets.midcast['Absorb-TP'].Resistant = set_combine(sets.midcast.Absorb.Resistant, {hands="Heathen's Gauntlets +1"})
  222.  
  223.     sets.midcast['Dark Magic'] = {
  224.         ammo="Pemphredo Tathlum",
  225.         head="Ignominy Burgeonet +3", body="Carmine Scale Mail",
  226.         back=Ank_FC, neck="Erra Pendant",
  227.         hands="Fallen's Finger Gauntlets +3", waist="Eschan Stone",
  228.         legs="Fallen's Flanchard +3", feet="Ratri Sollerets +1",
  229.         ring1="Stikini Ring +1", Ring2="Evanescence Ring",
  230.         ear1="Malignance Earring", ear2="Dignitary's Earring"}
  231.     sets.midcast['Dark Magic'].Resistant = set_combine(sets.midcast['Dark Magic'], {
  232.         head="Carmine Mask +1", body="Nyame Mail",
  233.         hands="Nyame Gauntlets",
  234.         legs="Nyame Flanchard", feet="Nyame Sollerets"})
  235.     sets.midcast['Dark Magic'].Enmity = sets.Enmity
  236.    
  237.     sets.midcast.Endark = set_combine(sets.midcast['Dark Magic'], {
  238.         head="Ignominy Burgeonet +3",
  239.         hands="Fallen's Finger Gauntlets +3"})
  240.  
  241.     sets.midcast.Stun = {
  242.         ammo="Pemphredo Tathlum",
  243.         head="Carmine Mask +1", body="Fallen's Cuirass +3",
  244.         back=Ank_FC, neck="Erra Pendant",
  245.         hands="Leyline Gloves", waist="Tempus Fugit +1",
  246.         legs="Eschite Cuisses", feet=Ody_FC_feet,
  247.         Ring1="Stikini Ring +1", Ring2="Stikini Ring +1",
  248.         ear1="Malignance Earring", ear2="Dignitary's Earring"}
  249.     sets.midcast.Stun.Resistant =set_combine(sets.midcast.Stun, {
  250.         hands="Nyame Gauntlets",
  251.         legs="Nyame Flanchard", feet="Nyame Sollerets"})
  252.     sets.midcast.Stun.Enmity = sets.Enmity
  253.  
  254.     sets.midcast.Drain = {
  255.         ammo="Pemphredo Tathlum",
  256.         head="Pixie Hairpin +1", body="Carmine Scale Mail",
  257.         back="Niht Mantle", neck="Erra Pendant",
  258.         hands="Fallen's Finger Gauntlets +3", waist="Austerity Belt +1",
  259.         legs="Fallen's Flanchard +3", feet="Ratri Sollerets +1",
  260.         ring1="Stikini Ring +1", Ring2="Evanescence Ring",
  261.         ear1="Malignance Earring", ear2="Hirudinea Earring"}
  262.     sets.midcast.Drain.Resistant = set_combine(sets.midcast.Drain, {
  263.         body="Nyame Mail", legs="Nyame Flanchard"})
  264.  
  265.     sets.midcast['Drain III'] = sets.midcast.Drain
  266.     sets.midcast['Drain III'].Resistant = sets.midcast.Drain.Resistant
  267.  
  268.     sets.midcast.Aspir = sets.midcast.Drain
  269.     sets.midcast.Aspir.Resistant = sets.midcast.Drain.Resistant
  270.  
  271.     sets.midcast.Impact = set_combine(sets.midcast['Dark Magic'], {head=empty, body="Twilight Cloak"})
  272.     sets.midcast.Impact.Resistant = set_combine(sets.midcast['Dark Magic'].Resistant, {head=empty, body="Twilight Cloak"})
  273.  
  274. -- Elemental Magic sets are default for handling low-tier nukes.
  275.     sets.midcast.LowTierNuke = {
  276.         ammo="Pemphredo Tathlum",
  277.         head="Carmine Mask +1", body="Carmine Scale Mail",
  278.         back="Izdubar Mantle", neck="Sanctity Necklace",
  279.         hands="Fallen's Finger Gauntlets +3", waist="Eschan Stone",
  280.         legs="Eschite Cuisses",feet="Nyame Sollerets",
  281.         ring1="Shiva Ring +1", ring2="Shiva Ring +1",
  282.         ear1="Malignance Earring", ear2="Friomisi Earring"}
  283.     sets.midcast.LowTierNuke.Resistant = {
  284.         ammo="Pemphredo Tathlum",
  285.         head="Carmine Mask +1", body="Carmine Scale Mail",
  286.         back=Ank_FC, neck="Sanctity Necklace",
  287.         hands="Leyline Gloves", waist="Eschan Stone",
  288.         legs="Eschite Cuisses",feet="Nyame Sollerets",
  289.         ring1="Shiva Ring +1", ring2="Shiva Ring +1",
  290.         ear1="Malignance Earring", ear2="Friomisi Earring"}
  291.     sets.midcast.LowTierNuke.Enmity = sets.Enmity
  292.  
  293.     -- Custom classes for high-tier nukes.
  294.     sets.midcast.HighTierNuke = sets.midcast.LowTierNuke
  295.     sets.midcast.HighTierNuke.Resistant = sets.midcast.LowTierNuke.Resistant
  296.     sets.midcast.HighTierNuke.Enmity = sets.Enmity
  297.  
  298. -- Resting sets
  299.     sets.resting = {
  300.         ammo="Staunch Tathlum +1",
  301.         head=Val_Refresh_head, body="Sakpata's Breastplate",
  302.         back="Moonlight Cape", neck="Coatl Gorget +1",
  303.         hands=Ody_Refresh_hands, waist="Carrier's Sash",
  304.         legs=Ody_Refresh_legs, feet=Val_Refresh_feet,
  305.         ring1="Stikini Ring +1", ring2="Stikini Ring +1",
  306.         ear1="Etiolation Earring", ear2="Genmei Earring"}
  307.  
  308. -- Idle sets
  309.     sets.idle = {
  310.         ammo="Staunch Tathlum +1",
  311.         head=Val_Refresh_head, body="Sakpata's Breastplate",
  312.         back="Moonlight Cape", neck="Coatl Gorget +1",
  313.         hands=Ody_Refresh_hands, waist="Carrier's Sash",
  314.         legs=Ody_Refresh_legs, feet=Val_Refresh_feet,
  315.         ring1="Stikini Ring +1", ring2="Stikini Ring +1",
  316.         ear1="Etiolation Earring", ear2="Genmei Earring"}
  317.  
  318.     sets.idle.DamageTaken = {
  319.         ammo="Staunch Tathlum +1",
  320.         head="Nyame Helm", body="Sakpata's Breastplate",
  321.         back="Moonlight Cape", neck="Coatl Gorget +1",
  322.         hands="Nyame Gauntlets", waist="Carrier's Sash",
  323.         legs="Nyame Flanchard", feet="Nyame Sollerets",
  324.         ring1="Moonlight Ring", ring2="Gelatinous Ring +1",
  325.         ear1="Odnowa Earring +1", ear2="Tuisto Earring"}
  326.  
  327.     sets.idle.Town = {
  328.         ammo="Staunch Tathlum +1",
  329.         head="Hjarrandi Helm", body="Hjarrandi Breastplate",
  330.         back="Moonlight Cape", neck="Abyssal Beads +2",
  331.         hands="Sakpata's Gauntlets", waist="Tempus Fugit +1",
  332.         legs="Carmine Cuisses +1", feet="Ratri Sollerets +1",
  333.         ring1="Niqmaddu Ring", ring2="Regal Ring",
  334.         ear1="Telos Earring", ear2="Lugra Earring +1"}
  335.  
  336.     sets.idle.Weak = {
  337.         ammo="Staunch Tathlum +1",
  338.         head="Twilight Helm", body="Twilight Mail",
  339.         back="Moonlight Cape", neck="Loricate Torque +1",
  340.         hands="Nyame Gauntlets", waist="Carrier's Sash",
  341.         legs="Nyame Flanchard", feet="Nyame Sollerets",
  342.         ring1="Moonlight Ring", ring2="Defending Ring",
  343.         ear1="Odnowa Earring +1", ear2="Tuisto Earring"}
  344.  
  345.     sets.Kiting = {legs="Carmine Cuisses +1"}
  346.  
  347. -- Custom buff sets
  348.     sets.Souleater = {head="Ignominy Burgeonet +3"}
  349.     sets['Last Resort'] = {}
  350.     sets.Doom = {head="Twilight Helm", body="Twilight Mail", ring2="Purity Ring"}
  351.     sets['Dark Seal'] = {head="Fallen's Burgeonet +3"}
  352.  
  353.     --removed for now, not sure how it interacts.
  354.     --sets.Aftermath = {}
  355.  
  356. -- Engaged Sets
  357.  
  358. -- Any weapon not defined will use these sets. 
  359.     --1044acc
  360.     sets.engaged = {
  361.         ammo="Coiste Bodhar",
  362.         head="Flamma Zucchetto +2", body=Val_QA_body,
  363.         back=Ank_DA_TP, neck="Abyssal Bead Necklace +2",
  364.         hands="Sakpata's Gauntlets", waist="Sailfi Belt +1",
  365.         legs="Ignominy Flanchard +3", feet="Flamma Gambieras +2",
  366.         ring1="Niqmaddu ring", ring2="Hetairoi Ring",
  367.         ear1="Brutal Earring", ear2="Cessance Earring"}
  368.     --1103acc
  369.     sets.engaged.LowAcc = {
  370.         ammo="Coiste Bodhar",
  371.         head="Flamma Zucchetto +2", body=Val_QA_body,
  372.         back=Ank_DA_TP, neck="Abyssal Bead Necklace +2",
  373.         hands="Sakpata's Gauntlets", waist="Sailfi Belt +1",
  374.         legs="Ignominy Flanchard +3", feet="Flamma Gambieras +2",
  375.         ring1="Niqmaddu ring", ring2="Regal Ring",
  376.         ear1="Brutal Earring", ear2="Cessance Earring"}
  377.     --1165acc
  378.     sets.engaged.MidAcc = {
  379.         ammo="Coiste Bodhar",
  380.         head=Arg_HQ_head, body=Val_STP_body,
  381.         back=Ank_DA_TP, neck="Abyssal Bead Necklace +2",
  382.         hands="Sakpata's Gauntlets", waist="Ioskeha Belt +1",
  383.         legs="Ignominy Flanchard +3", feet=Val_STP_feet,
  384.         ring1="Niqmaddu ring", ring2="Regal ring",
  385.         ear1="Telos Earring", ear2="Cessance Earring"}
  386.     --1225acc
  387.     sets.engaged.HighAcc = {
  388.         ammo="Seething Bomblet +1",
  389.         head="Ignominy Burgeonet +3", body="Ignominy Cuirass +3",
  390.         back=Ank_DA_TP, neck="Abyssal Bead Necklace +2",
  391.         hands="Ignominy Gauntlets +3", waist="Ioskeha Belt +1",
  392.         legs="Ignominy Flanchard +3", feet=Val_STP_feet,
  393.         ring1="Moonlight Ring", ring2="Regal ring",
  394.         ear1="Telos Earring", ear2="Mache Earring +1"} 
  395.  
  396.     sets.engaged.Haste = set_combine(sets.engaged, {
  397.         waist="Windbuffet Belt +1"})
  398.     sets.engaged.Haste.LowAcc = set_combine(sets.engaged.LowAcc, {
  399.         waist="Windbuffet Belt +1"})
  400.     sets.engaged.Haste.MidAcc = set_combine(sets.engaged.MidAcc, {
  401.         waist="Windbuffet Belt +1"})
  402.     sets.engaged.Haste.HighAcc = set_combine(sets.engaged.HighAcc, {
  403.         waist="Windbuffet Belt +1"})
  404.  
  405. -- Liberator - Need 29stp for 5 hit. 76stp for 4hit.
  406.     --1116acc 31stp 43da 8ta 8qa 22haste
  407.     sets.engaged.Liberator = {
  408.         ammo="Coiste Bodhar",
  409.         head="Flamma Zucchetto +2", body=Val_QA_body,
  410.         back=Ank_DA_TP, neck="Abyssal Bead Necklace +2",
  411.         hands="Sakpata's Gauntlets", waist="Sailfi Belt +1",
  412.         legs="Ignominy Flanchard +3", feet="Flamma Gambieras +2",
  413.         ring1="Niqmaddu Ring", ring2="Hetairoi Ring",
  414.         ear1="Brutal Earring", ear2="Cessance Earring"}
  415.     --1157acc 32stp 44da 4ta 8qa 24haste
  416.     sets.engaged.Liberator.LowAcc = {
  417.         ammo="Coiste Bodhar",
  418.         head="Flamma Zucchetto +2", body=Val_QA_body,
  419.         back=Ank_DA_TP, neck="Abyssal Bead Necklace +2",
  420.         hands="Sakpata's Gauntlets", waist="Sailfi Belt +1",
  421.         legs="Ignominy Flanchard +3", feet="Flamma Gambieras +2",
  422.         ring1="Niqmaddu Ring", ring2="Hetairoi Ring",
  423.         ear1="Telos Earring", ear2="Cessance Earring"}
  424.     --1212acc 33stp 36da 4ta 5qa 21haste
  425.     sets.engaged.Liberator.MidAcc = {
  426.         ammo="Seething Bomblet +1",
  427.         head=Arg_HQ_head, body=Val_STP_body,
  428.         back=Ank_DA_TP, neck="Abyssal Bead Necklace +2",
  429.         hands="Sakpata's Gauntlets", waist="Sailfi Belt +1",
  430.         legs="Ignominy Flanchard +3", feet=Val_STP_feet,
  431.         ring1="Niqmaddu Ring", ring2="Hetairoi Ring",
  432.         ear1="Telos Earring", ear2="Cessance Earring"}
  433.     --1297acc 33stp 12da 22haste
  434.     sets.engaged.Liberator.HighAcc = {
  435.         ammo="Seething Bomblet +1",
  436.         head="Ignominy Burgeonet +3", body="Ignominy Cuirass +3",
  437.         back=Ank_STP, neck="Abyssal Bead Necklace +2",
  438.         hands="Ignominy Gauntlets +3", waist="Ioskeha Belt +1",
  439.         legs="Ignominy Flanchard +3", feet=Val_STP_feet,
  440.         ring1="Moonlight Ring", ring2="Regal ring",
  441.         ear1="Telos Earring", ear2="Mache Earring +1"}
  442.    
  443.     -- Liberator AM3
  444.     --69stp in gear + 15 from sam = 84 total.
  445.     sets.engaged.Liberator.AM3 = set_combine(sets.engaged.Liberator, {
  446.         ammo="Coiste Bodhar",
  447.         head="Flamma Zucchetto +2", body="Hjarrandi Breastplate",
  448.         back=Ank_STP, neck="Abyssal Bead Necklace +2",
  449.         hands="Sakpata's Gauntlets", waist="Sailfi Belt +1",
  450.         legs=Ody_STP_legs, feet=Val_STP_feet,
  451.         ring1="Niqmaddu Ring", ring2="Hetairoi Ring",
  452.         ear1="Brutal Earring", ear2="Cessance Earring"})
  453.     sets.engaged.Liberator.LowAcc.AM3 = set_combine(sets.engaged.Liberator.AM3, {})
  454.     sets.engaged.Liberator.MidAcc.AM3 = set_combine(sets.engaged.Liberator.AM3, {})
  455.     sets.engaged.Liberator.HighAcc.AM3 = set_combine(sets.engaged.Liberator.AM3, {})
  456.     -- LIberator Capped Delay
  457.     sets.engaged.Haste.Liberator = set_combine(sets.engaged.Liberator, {
  458.         waist="Windbuffet Belt +1"})
  459.     sets.engaged.Haste.Liberator.LowAcc = set_combine(sets.engaged.Liberator.LowAcc, {
  460.         waist="Windbuffet Belt +1"})
  461.     sets.engaged.Haste.Liberator.MidAcc = set_combine(sets.engaged.Liberator.MidAcc, {
  462.         waist="Windbuffet Belt +1"})
  463.     sets.engaged.Haste.Liberator.HighAcc = set_combine(sets.engaged.Liberator.HighAcc, {
  464.         waist="Windbuffet Belt +1"})
  465.     -- Liberator AM3 Capped Delay
  466.     sets.engaged.Haste.Liberator.AM3 = set_combine(sets.engaged.Liberator.AM3, {
  467.         waist="Windbuffet Belt +1"})
  468.     sets.engaged.Haste.Liberator.LowAcc.AM3 = set_combine(sets.engaged.Liberator.LowAcc.AM3, {
  469.         waist="Windbuffet Belt +1"})
  470.     sets.engaged.Haste.Liberator.MidAcc.AM3 = set_combine(sets.engaged.Liberator.MidAcc.AM3, {
  471.         waist="Windbuffet Belt +1"})
  472.     sets.engaged.Haste.Liberator.HighAcc.AM3 = set_combine(sets.engaged.Liberator.HighAcc.AM3, {
  473.         waist="Windbuffet Belt +1"})
  474.  
  475. -- Anguta - Need 26stp for 5 hit. 72stp for 4 hit.
  476.     --1093acc 73stp 23da 8ta 6qa 22haste
  477.     sets.engaged.Anguta = {
  478.         ammo="Coiste Bodhar",
  479.         head="Flamma Zucchetto +2", body=Val_QA_body,
  480.         back=Ank_STP, neck="Abyssal Bead Necklace +2",
  481.         hands="Sakpata's Gauntlets", waist="Sailfi Belt +1",
  482.         legs=Ody_STP_legs, feet="Flamma Gambieras +2",
  483.         ring1="Niqmaddu Ring", ring2="Hetairoi Ring",
  484.         ear1="Telos Earring", ear2="Brutal Earring"}   
  485.     --1155acc 73stp 27da 2ta 6qa 24haste
  486.     sets.engaged.Anguta.LowAcc = {
  487.         ammo="Coiste Bodhar",
  488.         head="Flamma Zucchetto +2", body=Val_QA_body,
  489.         back=Ank_STP, neck="Abyssal Bead Necklace +2",
  490.         hands="Sakpata's Gauntlets", waist="Sailfi Belt +1",
  491.         legs=Ody_STP_legs, feet="Flamma Gambieras +2",
  492.         ring1="Niqmaddu Ring", ring2="Chirich Ring +1",
  493.         ear1="Telos Earring", ear2="Cessance Earring"}
  494.     --1212acc 43stp 36da 4ta 5qa 21haste
  495.     sets.engaged.Anguta.MidAcc = {
  496.         ammo="Seething Bomblet +1",
  497.         head=Arg_HQ_head, body=Val_STP_body,
  498.         back=Ank_DA_TP, neck="Abyssal Bead Necklace +2",
  499.         hands="Sakpata's Gauntlets", waist="Sailfi Belt +1",
  500.         legs="Ignominy Flanchard +3", feet=Val_STP_feet,
  501.         ring1="Niqmaddu Ring", ring2="Hetairoi Ring",
  502.         ear1="Telos Earring", ear2="Cessance Earring"}
  503.     --1297acc 43stp 12da 22haste
  504.     sets.engaged.Anguta.HighAcc = {
  505.         ammo="Seething Bomblet +1",
  506.         head="Ignominy Burgeonet +3", body="Ignominy Cuirass +3",
  507.         back=Ank_STP, neck="Abyssal Bead Necklace +2",
  508.         hands="Ignominy Gauntlets +3", waist="Ioskeha Belt +1",
  509.         legs="Ignominy Flanchard +3", feet=Val_STP_feet,
  510.         ring1="Moonlight Ring", ring2="Regal ring",
  511.         ear1="Telos Earring", ear2="Mache Earring +1"}
  512.     -- Anguta capped delay.
  513.     sets.engaged.Haste.Anguta = set_combine(sets.engaged.Anguta, {
  514.         waist="Windbuffet Belt +1"})
  515.     sets.engaged.Haste.Anguta.LowAcc = set_combine(sets.engaged.Anguta.LowAcc, {
  516.         waist="Windbuffet Belt +1"})
  517.     sets.engaged.Haste.Anguta.MidAcc = set_combine(sets.engaged.Anguta.MidAcc, {
  518.         waist="Windbuffet Belt +1"})
  519.     sets.engaged.Haste.Anguta.HighAcc = set_combine(sets.engaged.Anguta.HighAcc, {
  520.         waist="Windbuffet Belt +1"})
  521.  
  522. -- Apocalypse - Need 33stp for 5 hit. 82stp for 4hit.
  523.     --1180acc 33stp 41da 8ta 8qa 22haste
  524.     sets.engaged.Apocalypse = {
  525.         ammo="Coiste Bodhar",
  526.         head="Flamma Zucchetto +2", body=Val_QA_body,
  527.         back=Ank_DA_TP, neck="Abyssal Bead Necklace +2",
  528.         hands="Sakpata's Gauntlets", waist="Sailfi Belt +1",
  529.         legs="Ignominy Flanchard +3", feet="Flamma Gambieras +2",
  530.         ring1="Niqmaddu Ring", ring2="Hetairoi Ring",
  531.         ear1="Telos Earring", ear2="Brutal Earring"}
  532.     --1207acc 37stp 44da 4ta 8qa 24haste
  533.     sets.engaged.Apocalypse.LowAcc = {
  534.         ammo="Coiste Bodhar",
  535.         head="Flamma Zucchetto +2", body=Val_QA_body,
  536.         back=Ank_DA_TP, neck="Abyssal Bead Necklace +2",
  537.         hands="Sakpata's Gauntlets", waist="Sailfi Belt +1",
  538.         legs="Ignominy Flanchard +3", feet=Val_STP_feet,
  539.         ring1="Niqmaddu Ring", ring2="Hetairoi Ring",
  540.         ear1="Telos Earring", ear2="Cessance Earring"}
  541.     --1272acc 33stp 36da 4ta 5qa 21haste
  542.     sets.engaged.Apocalypse.MidAcc = {
  543.         ammo="Seething Bomblet +1",
  544.         head=Arg_HQ_head, body=Val_STP_body,
  545.         back=Ank_DA_TP, neck="Abyssal Bead Necklace +2",
  546.         hands="Sakpata's Gauntlets", waist="Sailfi Belt +1",
  547.         legs="Ignominy Flanchard +3", feet=Val_STP_feet,
  548.         ring1="Niqmaddu Ring", ring2="Hetairoi Ring",
  549.         ear1="Telos Earring", ear2="Cessance Earring"}
  550.     --1357acc 33stp 12da 22haste
  551.     sets.engaged.Apocalypse.HighAcc = {
  552.         ammo="Seething Bomblet +1",
  553.         head="Ignominy Burgeonet +3", body="Ignominy Cuirass +3",
  554.         back=Ank_STP, neck="Abyssal Bead Necklace +2",
  555.         hands="Ignominy Gauntlets +3", waist="Ioskeha Belt +1",
  556.         legs="Ignominy Flanchard +3", feet=Val_STP_feet,
  557.         ring1="Moonlight Ring", ring2="Regal ring",
  558.         ear1="Telos Earring", ear2="Mache Earring +1"}
  559.  
  560.     -- Apocalypse AM
  561.     sets.engaged.Apocalypse.AM = set_combine(sets.engaged.Apocalypse, {
  562.         ammo="Coiste Bodhar",
  563.         head="Flamma Zucchetto +2", body="Hjarrandi Breastplate",
  564.         back=Ank_STP, neck="Abyssal Bead Necklace +2",
  565.         hands="Sakpata's Gauntlets", waist="Sailfi Belt +1",
  566.         legs=Ody_STP_legs, feet=Val_STP_feet,
  567.         ring1="Niqmaddu Ring", ring2="Hetairoi Ring",
  568.         ear1="Brutal Earring", ear2="Cessance Earring"})
  569.     sets.engaged.Apocalypse.LowAcc.AM = set_combine(sets.engaged.Apocalypse.AM, {})
  570.     sets.engaged.Apocalypse.MidAcc.AM = set_combine(sets.engaged.Apocalypse.AM, {})
  571.     sets.engaged.Apocalypse.HighAcc.AM = set_combine(sets.engaged.Apocalypse.AM, {})
  572.     -- Apocalypse capped delay.
  573.     sets.engaged.Haste.Apocalypse = set_combine(sets.engaged.Apocalypse, {
  574.         waist="Windbuffet Belt +1"})
  575.     sets.engaged.Haste.Apocalypse.LowAcc = set_combine(sets.engaged.Apocalypse.LowAcc, {
  576.         waist="Windbuffet Belt +1"})
  577.     sets.engaged.Haste.Apocalypse.MidAcc = set_combine(sets.engaged.Apocalypse.MidAcc, {
  578.         waist="Windbuffet Belt +1"})
  579.     sets.engaged.Haste.Apocalypse.HighAcc = set_combine(sets.engaged.Apocalypse.HighAcc, {
  580.         waist="Windbuffet Belt +1"})
  581.     -- Apocalypse AM capped delay.
  582.     sets.engaged.Haste.Apocalypse.AM = set_combine(sets.engaged.Apocalypse.AM, {
  583.         waist="Windbuffet Belt +1"})
  584.     sets.engaged.Haste.Apocalypse.LowAcc.AM = set_combine(sets.engaged.Apocalypse.LowAcc.AM, {
  585.         waist="Windbuffet Belt +1"})
  586.     sets.engaged.Haste.Apocalypse.MidAcc.AM = set_combine(sets.engaged.Apocalypse.MidAcc.AM, {
  587.         waist="Windbuffet Belt +1"})
  588.     sets.engaged.Haste.Apocalypse.HighAcc.AM = set_combine(sets.engaged.Apocalypse.HighAcc.AM, {
  589.         waist="Windbuffet Belt +1"})
  590.  
  591. -- GreatSword
  592.     -- No Roll
  593.         -- sub war @ 130 tp ws, need 79 stp for 5 hit.
  594.         -- sub war @ 130 tp ws. need 43 stp for 6 hit.
  595.  
  596.         -- sub sam @ 148 tp ws, need 60 stp for 5 hit.
  597.         -- sub sam @ 148 tp ws, need 26 stp for 6 hit.
  598.  
  599.     -- With Roll
  600.         -- sub war @ 150 tp ws, need 59 stp+ sam roll 7+ for 5 hit.
  601.         -- sub war @ 150 tp ws, need 24 stp+ sam roll 7+ for 6 hit.
  602.  
  603.         -- sub sam @ 168 tp ws, need 40 stp+ sam roll 7+ for 5 hit.
  604.         -- sub sam @ 168 tp ws, need 6 stp+ sam roll 7+ for 6 hit.
  605.        
  606. -- This probably all needs adjusted for -10stp ring.
  607.     -- New #s when using -10 STP ring. -- More has changed, since the TP per WS is higher then before the ring??????
  608.     -- Previous calculations did not include roll gear, which add 4 step per +1 roll.
  609.     -- So 28 more stp for regal necklace.
  610.    
  611.     -- No Roll
  612.         --NOT CHECKED YET sub war @ 130 tp ws, need 79 stp for 5 hit.
  613.         --NOT CHECKED YET sub war @ 130 tp ws. need 43 stp for 6 hit.
  614.  
  615.         -- sub sam @ 142 tp ws, need 62 stp for 5 hit.
  616.         -- sub sam @ 142 tp ws, need 26 stp for 6 hit.
  617.  
  618.     -- With Roll
  619.         --NOT CHECKED YET sub war @ 150 tp ws, need 59 stp+ sam roll 7+ for 5 hit.
  620.         --NOT CHECKED YET sub war @ 150 tp ws, need 24 stp+ sam roll 7+ for 6 hit.
  621.  
  622.         -- sub sam @ 196 tp ws, need 61 stp+ sam roll 7+ for 4 hit.
  623.         -- sub sam @ 196 tp ws, need 0 stp+ sam roll 7+ for 5 hit.
  624.  
  625.     --1142acc 60stp 29da 9ta 3qa 26haste = 56 extra hits per 100 swings.
  626.     sets.engaged.GreatSword = {
  627.         ammo="Coiste Bodhar",
  628.         head="Flamma Zucchetto +2", body=Val_STP_body,
  629.         back=Ank_STP, neck="Abyssal Bead Necklace +2",
  630.         hands="Sakpata's Gauntlets", waist="Sailfi Belt +1",
  631.         legs="Ignominy Flanchard +3", feet="Flamma Gambieras +2",
  632.         ring1="Niqmaddu Ring", ring2="Hetairoi Ring",
  633.         ear1="Telos Earring", ear2="Cessance Earring"}
  634.     --1200acc 61stp 28da 7ta 3qa 26haste = 51 extra hits per 100 swings, but 1 less hit overall to WS.
  635.     sets.engaged.GreatSword.LowAcc = {
  636.         ammo="Coiste Bodhar",
  637.         head="Flamma Zucchetto +2", body=Val_STP_body,
  638.         back=Ank_STP, neck="Abyssal Bead Necklace +2",
  639.         hands="Sakpata's Gauntlets", waist="Ioskeha Belt +1",
  640.         legs="Ignominy Flanchard +3", feet=Val_STP_feet,
  641.         ring1="Niqmaddu Ring", ring2="Hetairoi Ring",
  642.         ear1="Telos Earring", ear2="Cessance Earring"}
  643.     --1246acc 33stp 53da 3qa 28haste = 62 extra hits per 100 swings.
  644.     -- recheck these stats
  645.     sets.engaged.GreatSword.MidAcc = {
  646.         ammo="Coiste Bodhar",
  647.         head=Arg_HQ_head, body="Sakpata's Breastplate",
  648.         back=Ank_DA_TP, neck="Abyssal Bead Necklace +2",
  649.         hands="Sakpata's Gauntlets", waist="Ioskeha Belt +1",
  650.         legs="Ignominy Flanchard +3", feet="Flamma Gambieras +2",
  651.         ring1="Niqmaddu Ring", ring2="Regal Ring",
  652.         ear1="Telos Earring", ear2="Cessance Earring"}
  653.     --1319acc 28stp 29da 26haste
  654.     sets.engaged.GreatSword.HighAcc = {
  655.         ammo="Seething Bomblet +1",
  656.         head="Ignominy Burgeonet +3", body="Ignominy Cuirass +3",
  657.         back=Ank_DA_TP, neck="Abyssal Bead Necklace +2",
  658.         hands="Ignominy Gauntlets +3", waist="Ioskeha Belt +1",
  659.         legs="Ignominy Flanchard +3", feet="Flamma Gambieras +2",
  660.         ring1="Moonlight Ring", ring2="Regal ring",
  661.         ear1="Mache Earring +1", ear2="Mache Earring +1"}
  662.     -- Greatsword capped delay.
  663.     sets.engaged.Haste.GreatSword = set_combine(sets.engaged.GreatSword, {waist="Windbuffet Belt +1"})
  664.     sets.engaged.Haste.GreatSword.LowAcc = set_combine(sets.engaged.GreatSword.LowAcc, {waist="Windbuffet Belt +1"})
  665.     sets.engaged.Haste.GreatSword.MidAcc = set_combine(sets.engaged.GreatSword.MidAcc, {waist="Ioskeha Belt +1"})
  666.     sets.engaged.Haste.GreatSword.HighAcc = set_combine(sets.engaged.GreatSword.HighAcc, {waist="Ioskeha Belt +1"})
  667.  
  668.     --1176acc 29stp 40da 9ta 9qa 26haste
  669.     sets.engaged.GreatSword.SamRoll = {
  670.         ammo="Coiste Bodhar",
  671.         head="Flamma Zucchetto +2", body=Val_QA_body,
  672.         back=Ank_DA_TP, neck="Abyssal Bead Necklace +2",
  673.         hands=Val_QA_hands, waist="Sailfi Belt +1",
  674.         legs="Ignominy Flanchard +3", feet="Flamma Gambieras +2",
  675.         ring1="Niqmaddu Ring", ring2="Hetairoi Ring",
  676.         ear1="Cessance Earring", ear2="Brutal Earring"}
  677.     sets.engaged.GreatSword.LowAcc.SamRoll = {
  678.         ammo="Coiste Bodhar",
  679.         head="Flamma Zucchetto +2", body=Val_QA_body,
  680.         back=Ank_DA_TP, neck="Abyssal Bead Necklace +2",
  681.         hands=Val_QA_hands, waist="Ioskeha Belt +1",
  682.         legs="Ignominy Flanchard +3", feet="Flamma Gambieras +2",
  683.         ring1="Niqmaddu Ring", ring2="Hetairoi Ring",
  684.         ear1="Cessance Earring", ear2="Brutal Earring"}
  685.     sets.engaged.GreatSword.MidAcc.SamRoll = sets.engaged.GreatSword.MidAcc
  686.     sets.engaged.GreatSword.HighAcc.SamRoll = sets.engaged.GreatSword.HighAcc
  687.  
  688.     sets.engaged.Haste.GreatSword.SamRoll = set_combine(sets.engaged.GreatSword.SamRoll, {waist="Windbuffet Belt +1"})
  689.     sets.engaged.Haste.GreatSword.LowAcc.SamRoll = set_combine(sets.engaged.GreatSword.LowAcc.SamRoll, {waist="Windbuffet Belt +1"})
  690.     sets.engaged.Haste.GreatSword.MidAcc.SamRoll = set_combine(sets.engaged.GreatSword.MidAcc.SamRoll, {waist="Ioskeha Belt +1"})
  691.     sets.engaged.Haste.GreatSword.HighAcc.SamRoll = set_combine(sets.engaged.GreatSword.HighAcc.SamRoll, {waist="Ioskeha Belt +1"})
  692.  
  693. -- DamageTaken
  694.     sets.engaged.DamageTaken = {
  695.         ammo="Coiste Bodhar",
  696.         head="Hjarrandi Helm", body="Sakpata's Breastplate",
  697.         back=Ank_STP, neck="Abyssal Bead Necklace +2",
  698.         hands="Sakpata's Gauntlets", waist="Tempus Fugit +1",
  699.         legs="Sakpata's Cuisses", feet="Sakpata's Leggings",
  700.         ring1="Niqmaddu Ring", ring2="Moonlight Ring",
  701.         ear1="Telos Earring", ear2="Dignitary's Earring"}
  702.     sets.engaged.LowAcc.DamageTaken = set_combine(sets.engaged.DamageTaken, {})
  703.     sets.engaged.MidAcc.DamageTaken = set_combine(sets.engaged.DamageTaken, {})
  704.     sets.engaged.HighAcc.DamageTaken = set_combine(sets.engaged.DamageTaken, {})   
  705.     -- With capped delay.
  706.     sets.engaged.Haste.DamageTaken = set_combine(sets.engaged.DamageTaken, {waist="Ioskeha Belt +1"})
  707.     sets.engaged.Haste.LowAcc.DamageTaken = set_combine(sets.engaged.LowAcc.DamageTaken, {waist="Ioskeha Belt +1"})
  708.     sets.engaged.Haste.MidAcc.DamageTaken = set_combine(sets.engaged.MidAcc.DamageTaken, {waist="Ioskeha Belt +1"})
  709.     sets.engaged.Haste.HighAcc.DamageTaken = set_combine(sets.engaged.HighAcc.DamageTaken, {waist="Ioskeha Belt +1"})
  710.  
  711. -- Liberator DamageTaken
  712.     sets.engaged.Liberator.DamageTaken = {
  713.         ammo="Coiste Bodhar",
  714.         head="Hjarrandi Helm", body="Hjarrandi Breastplate",
  715.         back=Ank_STP, neck="Abyssal Bead Necklace +2",
  716.         hands="Sakpata's Gauntlets", waist="Tempus Fugit +1",
  717.         legs="Sakpata's Cuisses", feet="Sakpata's Leggings",
  718.         ring1="Niqmaddu Ring", ring2="Moonlight Ring",
  719.         ear1="Telos Earring", ear2="Dignitary's Earring"}
  720.     sets.engaged.Liberator.LowAcc.DamageTaken = set_combine(sets.engaged.Liberator.DamageTaken, {})
  721.     sets.engaged.Liberator.MidAcc.DamageTaken = set_combine(sets.engaged.Liberator.DamageTaken, {})
  722.     sets.engaged.Liberator.HighAcc.DamageTaken = set_combine(sets.engaged.Liberator.DamageTaken, {})
  723.     -- Liberator AM3
  724.     sets.engaged.Liberator.DamageTaken.AM3 = sets.engaged.Liberator.DamageTaken
  725.     sets.engaged.Liberator.LowAcc.DamageTaken.AM3 = sets.engaged.Liberator.LowAcc.DamageTaken
  726.     sets.engaged.Liberator.MidAcc.DamageTaken.AM3 = sets.engaged.Liberator.MidAcc.DamageTaken
  727.     sets.engaged.Liberator.HighAcc.DamageTaken.AM3 = sets.engaged.Liberator.HighAcc.DamageTaken
  728.     -- With capped delay.
  729.     sets.engaged.Haste.Liberator.DamageTaken = sets.engaged.Haste.DamageTaken
  730.     sets.engaged.Haste.Liberator.LowAcc.DamageTaken = sets.engaged.Haste.LowAcc.DamageTaken
  731.     sets.engaged.Haste.Liberator.MidAcc.DamageTaken = sets.engaged.Haste.MidAcc.DamageTaken
  732.     sets.engaged.Haste.Liberator.HighAcc.DamageTaken = sets.engaged.Haste.HighAcc.DamageTaken
  733.     -- Liberator AM3 with capped delay.
  734.     sets.engaged.Haste.Liberator.DamageTaken.AM3 = sets.engaged.Haste.DamageTaken
  735.     sets.engaged.Haste.Liberator.LowAcc.DamageTaken.AM3 = sets.engaged.Haste.LowAcc.DamageTaken
  736.     sets.engaged.Haste.Liberator.MidAcc.DamageTaken.AM3 = sets.engaged.Haste.MidAcc.DamageTaken
  737.     sets.engaged.Haste.Liberator.HighAcc.DamageTaken.AM3 = sets.engaged.Haste.HighAcc.DamageTaken
  738.  
  739. -- Anguta DamageTaken
  740.     sets.engaged.Anguta.DamageTaken = sets.engaged.DamageTaken
  741.     sets.engaged.Anguta.LowAcc.DamageTaken = sets.engaged.LowAcc.DamageTaken
  742.     sets.engaged.Anguta.MidAcc.DamageTaken = sets.engaged.MidAcc.DamageTaken
  743.     sets.engaged.Anguta.HighAcc.DamageTaken = sets.engaged.HighAcc.DamageTaken
  744.     -- With capped delay.
  745.     sets.engaged.Haste.Anguta.DamageTaken = sets.engaged.Haste.DamageTaken
  746.     sets.engaged.Haste.Anguta.LowAcc.DamageTaken = sets.engaged.Haste.LowAcc.DamageTaken
  747.     sets.engaged.Haste.Anguta.MidAcc.DamageTaken = sets.engaged.Haste.MidAcc.DamageTaken
  748.     sets.engaged.Haste.Anguta.HighAcc.DamageTaken = sets.engaged.Haste.HighAcc.DamageTaken
  749.  
  750. -- Apocalypse DamageTaken
  751.     sets.engaged.Apocalypse.DamageTaken = sets.engaged.DamageTaken
  752.     sets.engaged.Apocalypse.LowAcc.DamageTaken = sets.engaged.LowAcc.DamageTaken
  753.     sets.engaged.Apocalypse.MidAcc.DamageTaken = sets.engaged.MidAcc.DamageTaken
  754.     sets.engaged.Apocalypse.HighAcc.DamageTaken = sets.engaged.HighAcc.DamageTaken
  755.     -- Apocalypse AM
  756.     sets.engaged.Apocalypse.DamageTaken.AM = sets.engaged.DamageTaken
  757.     sets.engaged.Apocalypse.LowAcc.DamageTaken.AM = sets.engaged.LowAcc.DamageTaken
  758.     sets.engaged.Apocalypse.MidAcc.DamageTaken.AM = sets.engaged.MidAcc.DamageTaken
  759.     sets.engaged.Apocalypse.HighAcc.DamageTaken.AM = sets.engaged.HighAcc.DamageTaken
  760.     -- With capped delay.
  761.     sets.engaged.Haste.Apocalypse.DamageTaken = sets.engaged.Haste.DamageTaken
  762.     sets.engaged.Haste.Apocalypse.LowAcc.DamageTaken = sets.engaged.Haste.LowAcc.DamageTaken
  763.     sets.engaged.Haste.Apocalypse.MidAcc.DamageTaken = sets.engaged.Haste.MidAcc.DamageTaken
  764.     sets.engaged.Haste.Apocalypse.HighAcc.DamageTaken = sets.engaged.Haste.HighAcc.DamageTaken 
  765.     -- Apocalypse AM with capped delay.
  766.     sets.engaged.Haste.Apocalypse.DamageTaken.AM = sets.engaged.Haste.DamageTaken
  767.     sets.engaged.Haste.Apocalypse.LowAcc.DamageTaken.AM = sets.engaged.Haste.LowAcc.DamageTaken
  768.     sets.engaged.Haste.Apocalypse.MidAcc.DamageTaken.AM = sets.engaged.Haste.MidAcc.DamageTaken
  769.     sets.engaged.Haste.Apocalypse.HighAcc.DamageTaken.AM = sets.engaged.Haste.HighAcc.DamageTaken
  770.  
  771. -- GreatSword DamageTaken
  772.     sets.engaged.GreatSword.DamageTaken =sets.engaged.DamageTaken
  773.     sets.engaged.GreatSword.LowAcc.DamageTaken = sets.engaged.LowAcc.DamageTaken
  774.     sets.engaged.GreatSword.MidAcc.DamageTaken = sets.engaged.MidAcc.DamageTaken
  775.     sets.engaged.GreatSword.HighAcc.DamageTaken = sets.engaged.HighAcc.DamageTaken
  776.     -- With capped delay.
  777.     sets.engaged.Haste.GreatSword.DamageTaken = sets.engaged.Haste.DamageTaken
  778.     sets.engaged.Haste.GreatSword.LowAcc.DamageTaken = sets.engaged.Haste.LowAcc.DamageTaken
  779.     sets.engaged.Haste.GreatSword.MidAcc.DamageTaken = sets.engaged.Haste.MidAcc.DamageTaken
  780.     sets.engaged.Haste.GreatSword.HighAcc.DamageTaken = sets.engaged.Haste.HighAcc.DamageTaken
  781.  
  782. -- str 46, dex 29, vit 39, acc 50, atk 48, wsd 10       - AF3 Body
  783. -- str 35, dex 24, vit 35, acc 40, atk 55, wsd 10, da 3 - Nyame
  784. -- Weaponskill sets
  785.     sets.precast.WS = {
  786.         ammo="Coiste Bodhar",
  787.         head="Nyame Helm", body="Ignominy Cuirass +3",
  788.         back=Ank_DA_STR, neck="Abyssal Beads +2",
  789.         hands="Nyame Gauntlets", waist="Sailfi Belt +1",
  790.         legs="Fallen's Flanchard +3", feet="Nyame Sollerets",
  791.         ring1="Karieyh Ring +1", ring2="Regal Ring",
  792.         ear1="Brutal Earring", ear2="Moonshade Earring"}
  793.     sets.precast.WS.Attack = set_combine(sets.precast.WS, {
  794.         ammo="Crepuscular Pebble",
  795.         head="Sakpata's Helm", body="Sakpata's Breastplate",
  796.         hands="Sakpata's Gauntlets",
  797.         legs="Sakpata's Cuisses", feet="Sakpata's Leggings"})
  798.    
  799.     -- WSD SET
  800.     sets.precast.WS.WSD = {
  801.         ammo="Knobkierrie",
  802.         head="Nyame Helm", body="Ignominy Cuirass +3",
  803.         back=Ank_WSdmg_STR, neck="Abyssal Beads +2",
  804.         hands="Nyame Gauntlets", waist="Sailfi Belt +1",
  805.         legs="Fallen's Flanchard +3", feet="Nyame Sollerets",
  806.         ring1="Karieyh Ring +1", ring2="Epaminondas's Ring",
  807.         ear1="Thrud Earring", ear2="Moonshade Earring"}
  808.     sets.precast.WS.WSD.Attack = set_combine(sets.precast.WS.WSD, {
  809.         ammo="Crepuscular Pebble",
  810.         head="Sakpata's Helm", body="Sakpata's Breastplate",
  811.         hands="Sakpata's Gauntlets",
  812.         legs="Sakpata's Cuisses", feet="Sakpata's Leggings"})
  813.    
  814.     -- SCYTHE WSD
  815.     sets.precast.WS.WSD.Scythe = {
  816.         ammo="Knobkierrie",
  817.         head="Nyame Helm", body="Ignominy Cuirass +3",
  818.         back=Ank_WSdmg_STR, neck="Abyssal Beads +2",
  819.         hands="Nyame Gauntlets", waist="Sailfi Belt +1",
  820.         legs="Ratri Cuisses +1", feet="Nyame Sollerets",
  821.         ring1="Karieyh Ring +1", ring2="Epaminondas's Ring",
  822.         ear1="Brutal Earring", ear2="Moonshade Earring"}
  823.     sets.precast.WS.WSD.Scythe.Attack = set_combine(sets.precast.WS.WSD.Scythe, {
  824.         ammo="Crepuscular Pebble", legs="Fallen's Flanchard +3"})
  825.  
  826.     -- MultiHit
  827.     sets.precast.WS.MultiHit = {
  828.         ammo="Coiste Bodhar",
  829.         head="Sakpata's Helm", body="Sakpata's Breastplate",
  830.         back=Ank_DA_STR, neck="Abyssal Beads +2",
  831.         hands="Sakpata's Gauntlets", waist="Sailfi Belt +1",
  832.         legs="Sakpata's Cuisses", feet="Sakpata's Leggings",
  833.         ring1="Niqmaddu Ring", ring2="Regal Ring",
  834.         ear1="Brutal Earring", ear2="Moonshade Earring"}
  835.     sets.precast.WS.MultiHit.Attack = set_combine(sets.precast.WS.MultiHit, {
  836.         ammo="Crepuscular Pebble",
  837.         head="Sakpata's Helm", body="Sakpata's Breastplate",
  838.         hands="Sakpata's Gauntlets",
  839.         legs="Sakpata's Cuisses", feet="Sakpata's Leggings"})
  840.  
  841.     -- Crit WS
  842.     sets.precast.WS.Crit = {
  843.         ammo="Coiste Bodhar",
  844.         head="Nyame Helm", body="Hjarrandi Breastplate",
  845.         back=Ank_WSdmg_STR, neck="Abyssal Beads +2",
  846.         hands="Nyame Gauntlets", waist="Sailfi Belt +1",
  847.         legs="Nyame Flanchard", feet="Nyame Sollerets",
  848.         ring1="Karieyh Ring +1", ring2="Regal Ring",
  849.         ear1="Thrud Earring", ear2="Moonshade Earring"}
  850.     sets.precast.WS.Crit.Attack = set_combine(sets.precast.WS.Crit, {
  851.         ammo="Crepuscular Pebble",
  852.         head="Sakpata's Helm", body="Sakpata's Breastplate",
  853.         hands="Sakpata's Gauntlets",
  854.         legs="Sakpata's Cuisses", feet="Sakpata's Leggings"})
  855.  
  856. -- FTP WS's to use fotia on = Resolution, Entropy, CDC, Requiescat, Vorpal Blade, all HTH, Decimation, Rampage, and Ruinator
  857.  
  858. -- Insurgency, 4 hit - FTP 0.5, 3.25, 6 - STR/INT 20% -- Fusion/Compression
  859.     sets.precast.WS['Insurgency'] = set_combine(sets.precast.WS.MultiHit, {
  860.         back=Ank_DA_INT,})
  861.     sets.precast.WS['Insurgency'].Attack = set_combine(sets.precast.WS.MultiHit.Attack, {
  862.         back=Ank_DA_INT,})
  863.  
  864. -- Entropy, 4 hit - FTP 0.75, 1.25, 2, - INT 85% - Dark/Gravitation/Reverberation
  865.     --FTP transfers, can use gorget.
  866.     sets.precast.WS['Entropy'] = set_combine(sets.precast.WS.MultiHit, {
  867.         back=Ank_DA_INT, waist="Fotia Belt"})
  868.     sets.precast.WS['Entropy'].Attack = set_combine(sets.precast.WS.MultiHit.Attack, {
  869.         back=Ank_DA_INT, waist="Fotia Belt"})
  870.  
  871. -- Catastrophe, 1 hit - FTP 2.75 - STR/INT 40% - Darkness/Gravitation
  872.     sets.precast.WS['Catastrophe'] = set_combine(sets.precast.WS.WSD.Scythe, {
  873.         ear2="Brutal Earring"})
  874.     sets.precast.WS['Catastrophe'].Attack = set_combine(sets.precast.WS.WSD.Scythe.Attack, {
  875.         ear2="Brutal Earring"})
  876.  
  877. -- Cross Reaper, 2 hit - FTP 2, 4, 7 - STR/INT 60% - Distortion
  878.     sets.precast.WS['Cross Reaper'] = set_combine(sets.precast.WS.WSD.Scythe, {})
  879.     sets.precast.WS['Cross Reaper'].Attack = set_combine(sets.precast.WS.WSD.Scythe.Attack, {})
  880.  
  881. -- Quietus, 1 hit - FTP 3.0, - STR/MMD 60% - Darkness/Distortion
  882.     sets.precast.WS['Quietus'] = set_combine(sets.precast.WS.WSD.Scythe, {})
  883.     sets.precast.WS['Quietus'].Attack = set_combine(sets.precast.WS.WSD.Scythe.Attack, {})
  884.  
  885. -- Resolution, 5 hit - FTP .71, 1.5, 2.25, - STR 85% - Frag/Scission
  886.     --FTP transfers, can use gorget.
  887.     sets.precast.WS['Resolution'] = set_combine(sets.precast.WS.MultiHit, {})
  888.     sets.precast.WS['Resolution'].Attack = set_combine(sets.precast.WS.MultiHit.Attack, {})
  889.  
  890. -- Torcleaver - FTP 4.75, 7.5, 10, - VIT 80% -- Light/Distortion
  891.     sets.precast.WS['Torcleaver'] = set_combine(sets.precast.WS.WSD, {
  892.         back=Ank_Wsdmg_VIT})
  893.     sets.precast.WS['Torcleaver'].Attack = set_combine(sets.precast.WS.WSD.Attack, {
  894.         back=Ank_Wsdmg_VIT})
  895.  
  896. -- Scourge, 1 hit - FTP 3.0, - STR/VIT 40% - Light/Fusion
  897.     sets.precast.WS['Scourge'] = sets.precast.WS['Torcleaver']
  898.     sets.precast.WS['Scourge'].Attack = sets.precast.WS['Torcleaver'].Attack
  899.  
  900. -- Savage Blade - 50% STR/MND 2 hit, use WSD.
  901.     sets.precast.WS['Savage Blade'] = set_combine(sets.precast.WS.WSD, {})
  902.     sets.precast.WS['Savage Blade'].Attack = set_combine(sets.precast.WS.WSD.Attack, {})
  903.  
  904. -- Judgment, 1 hit - FTP 3.5, 8.75, 12.01 - STR/MND 50% - Impaction
  905.     sets.precast.WS['Judgment'] = set_combine(sets.precast.WS.WSD, {})
  906.     sets.precast.WS['Judgment'].Acc = set_combine(sets.precast.WS.WSD.Attack, {})
  907.  
  908. -- Sanguine Blade
  909.     sets.precast.WS['Sanguine Blade'] = {
  910.         ammo="Knobkierrie",
  911.         head="Pixie Hairpin +1", body="Nyame Mail",
  912.         back=Ank_WSdmg_STR, neck="Abyssal Beads +2",
  913.         hands="Nyame Gauntlets", waist="Eschan Stone",
  914.         legs="Nyame Flanchard", feet="Nyame Sollerets",
  915.         ring1="Karieyh Ring +1", ring2="Regal Ring",
  916.         ear1="Thrud Earring", ear2="Moonshade Earring"}
  917.     sets.precast.WS['Sanguine Blade'].Attack = set_combine(sets.precast.WS['Sanguine Blade'], {
  918.         ammo="Crepuscular Pebble"})
  919.  
  920. end
  921.  
  922. function job_pretarget(spell, action, spellMap, eventArgs)
  923.     if spell.type:endswith('Magic') and buffactive.silence then
  924.         eventArgs.cancel = true
  925.         send_command('input /item "Echo Drops" <me>')
  926.     end
  927. end
  928.  
  929. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  930. -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
  931. function job_precast(spell, action, spellMap, eventArgs)
  932.     get_combat_weapon()
  933.     aw_custom_aftermath_timers_precast(spell)
  934. end
  935.  
  936. function job_post_precast(spell, action, spellMap, eventArgs)
  937.     local recast = windower.ffxi.get_ability_recasts()
  938.     -- Make sure abilities using head gear don't swap
  939.     if spell.type:lower() == 'weaponskill' then
  940.         if player.tp > 2999 then
  941.             equip(sets.BrutalLugra)
  942.         else -- use Lugra + moonshade
  943.         if world.time >= (17*60) or world.time <= (7*60) then
  944.             equip(sets.Lugra)
  945.         else
  946.             -- do nothing.
  947.         end
  948.         end
  949.     end
  950. end
  951.  
  952.  
  953. -- Is this function even needed?
  954. function select_earring()
  955.     if world.time >= (17*60) or world.time <= (7*60) then
  956.         return sets.Lugra
  957.     else
  958.         -- do nothing
  959.     end
  960. end
  961.  
  962. -- Job-specific hooks for standard casting events.
  963. function job_midcast(spell, action, spellMap, eventArgs)
  964.  
  965. end
  966.  
  967. -- Run after the default midcast() is done.
  968. -- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
  969. function job_post_midcast(spell, action, spellMap, eventArgs)
  970.     if buffactive['Dark Seal'] and S{"Drain III"}:contains(spell.english)then
  971.         equip({head="Fallen's Burgeonet +3"})
  972.     end
  973. -- Weather Rules
  974.     if spell.skill == 'Elemental Magic' then
  975.         if spell.element == world.day_element or spell.element == world.weather_element then
  976.             equip({waist="Hachirin-No-Obi"})
  977.         end
  978.     end
  979.     if spell.skill == 'Dark Magic' then
  980.         if spell.element == world.day_element or spell.element == world.weather_element then
  981.             equip({waist="Hachirin-No-Obi"})
  982.         end
  983.     end
  984. end
  985.  
  986. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  987. function job_aftercast(spell, action, spellMap, eventArgs)
  988.     aw_custom_aftermath_timers_aftercast(spell)
  989.     if state.Buff[spell.english] ~= nil then
  990.         state.Buff[spell.english] = not spell.interrupted or buffactive[spell.english]
  991.     end
  992. end
  993.  
  994. function job_post_aftercast(spell, action, spellMap, eventArgs)
  995.  
  996. end
  997.  
  998. ---------------------------------------------------------------------
  999. -- Customization hooks for idle and melee sets, after they've been automatically constructed.
  1000. ---------------------------------------------------------------------
  1001.  
  1002. -- Called before the Include starts constructing melee/idle/resting sets.
  1003. -- Can customize state or custom melee class values at this point.
  1004. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  1005. function job_handle_equipping_gear(status, eventArgs)
  1006.  
  1007. end
  1008.  
  1009. -- Modify the default idle set after it was constructed.
  1010. function customize_idle_set(idleSet)
  1011.     --if buffactive['Doom'] or state.Buff.Curse then
  1012.     --    idleSet = set_combine(idleSet, sets.Doom)
  1013.     --  send_command('@input /p Doomed.')
  1014.     --end
  1015.     return idleSet
  1016. end
  1017.  
  1018. -- Modify the default melee set after it was constructed.
  1019. function customize_melee_set(meleeSet)
  1020.     if state.Buff.Souleater then
  1021.         meleeSet = set_combine(meleeSet, sets.Souleater)
  1022.     end
  1023.     --if buffactive['Doom'] or state.Buff.Curse then
  1024.     --  meleeSet = set_combine(meleeSet, sets.Doom)
  1025.     --  send_command('@input /p Doomed.')
  1026.     --end
  1027.     return meleeSet
  1028. end
  1029.  
  1030. ---------------------------------------------------------------------
  1031. -- General hooks for other events.
  1032. ---------------------------------------------------------------------
  1033.  
  1034. -- Called when the player's status changes.
  1035. function job_status_change(newStatus, oldStatus, eventArgs)
  1036.     if newStatus == "Engaged" then
  1037.         if Apoc_weapons:contains(player.equipment.main) then
  1038.             state.CombatWeapon:set('Apocalypse')
  1039.         elseif Anguta_weapons:contains(player.equipment.main) then
  1040.             state.CombatWeapon:set('Anguta')
  1041.         elseif GS_weapons:contains(player.equipment.main) then
  1042.             state.CombatWeapon:set('GreatSword')
  1043.         elseif Lib_weapons:contains(player.equipment.main) then
  1044.             state.CombatWeapon:set('Liberator')
  1045.         else
  1046.             state.CombatWeapon:reset()
  1047.         end
  1048.     end
  1049. end
  1050.  
  1051. -- Called when a player gains or loses a buff.
  1052. -- buff == buff gained or lost
  1053. -- gain == true if the buff was gained, false if it was lost.
  1054. function job_buff_change(buff, gain)
  1055.     handle_equipping_gear(player.status)
  1056.    
  1057.     if state.Buff[buff] ~= nil then
  1058.         handle_equipping_gear(player.status)
  1059.     end
  1060.  
  1061.     if buff == "Souleater" then
  1062.         handle_equipping_gear(player.status)
  1063.     end
  1064.  
  1065.     if S{'haste','march','embrava','honor march', 'haste II', 'geo-haste', 'indi-haste', 'Last Resort'}:contains(buff:lower()) then
  1066.         if (buffactive['Last Resort']) then
  1067.             if (buffactive.embrava or buffactive.haste) and buffactive.march then
  1068.                 state.CombatForm:set("Haste")
  1069.                 if not midaction() then
  1070.                     handle_equipping_gear(player.status)
  1071.                 end
  1072.             end
  1073.         end
  1074.     end
  1075.  
  1076.     if  buff == "Samurai Roll" then
  1077.         --classes.CustomMeleeGroups:clear()
  1078.         if (buff == "Samurai Roll" and gain) or buffactive['Samurai Roll'] then
  1079.             classes.CustomMeleeGroups:append('SamRoll')
  1080.         end
  1081.     end
  1082.  
  1083.     if buff == "Last Resort" then
  1084.         if gain then
  1085.             send_command('@wait 1.0;cancel hasso')
  1086.         else
  1087.             if not midaction() then
  1088.                 send_command('@wait 1.0;input /ja "Hasso" <me>')
  1089.             end
  1090.         end
  1091.     end
  1092.  
  1093. -- AM custom groups
  1094.     if buff:startswith('Aftermath') then
  1095.         if player.equipment.main == 'Liberator' then
  1096.             classes.CustomMeleeGroups:clear()
  1097.  
  1098.             if (buff == "Aftermath: Lv.3" and gain) or buffactive['Aftermath: Lv.3'] then
  1099.                 classes.CustomMeleeGroups:append('AM3')
  1100.                 add_to_chat(8, '-------------Mythic AM3 UP-------------')
  1101.             elseif (buff == "Aftermath: Lv.3" and not gain) then
  1102.                 add_to_chat(8, '-------------Mythic AM3 DOWN-------------')
  1103.             end
  1104.  
  1105.             if not midaction() then
  1106.                 handle_equipping_gear(player.status)
  1107.             end
  1108.         else
  1109.             classes.CustomMeleeGroups:clear()
  1110.  
  1111.             if buff == "Aftermath" and gain or buffactive.Aftermath then
  1112.                 classes.CustomMeleeGroups:append('AM')
  1113.             end
  1114.  
  1115.             if not midaction() then
  1116.                 handle_equipping_gear(player.status)
  1117.             end
  1118.         end
  1119.     end
  1120.  
  1121. end
  1122.  
  1123. ----------------------------------------------------------------------
  1124. -- User code that supplements self-commands.
  1125. -----------------------------------------------------------------------
  1126.  
  1127. -- Called by the 'update' self-command, for common needs.
  1128. -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
  1129. function job_update(cmdParams, eventArgs)
  1130.    
  1131.     war_sj = player.sub_job == 'WAR' or false
  1132.     get_combat_form()
  1133.     get_combat_weapon()
  1134.     update_melee_groups()
  1135.     --select_default_macro_book()
  1136. end
  1137.  
  1138. -- State buff checks that will equip buff gear and mark the event as handled.
  1139. function check_buff(buff_name, eventArgs)
  1140.     if state.Buff[buff_name] then
  1141.         equip(sets.buff[buff_name] or {})
  1142.         eventArgs.handled = true
  1143.     end
  1144. end
  1145.  
  1146. ----------------------------------------------------------------------
  1147. -- Utility functions specific to this job.
  1148. -----------------------------------------------------------------------
  1149. function get_combat_form()
  1150.    
  1151.     if buffactive['Last Resort'] then
  1152.         if (buffactive.embrava or buffactive.haste) and buffactive.march then
  1153.             add_to_chat(8, '-------------Delay Capped-------------')
  1154.             state.CombatForm:set("Haste")
  1155.         else
  1156.             state.CombatForm:reset()
  1157.         end
  1158.     end
  1159.  
  1160.     -- Check Weapontype
  1161.     --if  Apoc_weapons:contains(player.equipment.main) then
  1162. --      state.CombatForm:set('Apocalypse')
  1163. --  elseif Anguta_weapons:contains(player.equipment.main) then
  1164. --      state.CombatForm:set('Anguta')
  1165. --  elseif GS_weapons:contains(player.equipment.main) then
  1166. --      state.CombatForm:set('GreatSword')
  1167. --  elseif Lib_weapons:contains(player.equipment.main) then
  1168. --      state.CombatForm:set('Liberator')
  1169. --  else
  1170. --      state.CombatForm:reset()
  1171. --   end
  1172. end
  1173.  
  1174. function get_combat_weapon()
  1175.     state.CombatWeapon:reset()
  1176.     if  Apoc_weapons:contains(player.equipment.main) then
  1177.         state.CombatWeapon:set('Apocalypse')
  1178.     elseif Anguta_weapons:contains(player.equipment.main) then
  1179.         state.CombatWeapon:set('Anguta')
  1180.     elseif GS_weapons:contains(player.equipment.main) then
  1181.         state.CombatWeapon:set('GreatSword')
  1182.     elseif Lib_weapons:contains(player.equipment.main) then
  1183.         state.CombatWeapon:set('Liberator')
  1184.     end
  1185.  
  1186.     --else -- Use regular set.
  1187.     --  state.CombatWeapon:reset()
  1188.     --end
  1189. end
  1190.  
  1191. function aw_custom_aftermath_timers_precast(spell)
  1192.     if spell.type == 'WeaponSkill' then
  1193.         info.aftermath = {}
  1194.  
  1195.         local mythic_ws = "Insurgency"
  1196.  
  1197.         info.aftermath.weaponskill = mythic_ws
  1198.         info.aftermath.duration = 0
  1199.  
  1200.         info.aftermath.level = math.floor(player.tp / 1000)
  1201.         if info.aftermath.level == 0 then
  1202.             info.aftermath.level = 1
  1203.         end
  1204.  
  1205.         if spell.english == mythic_ws and player.equipment.main == 'Liberator' then
  1206.             -- nothing can overwrite lvl 3
  1207.             if buffactive['Aftermath: Lv.3'] then
  1208.                 return
  1209.             end
  1210.             -- only lvl 3 can overwrite lvl 2
  1211.             if info.aftermath.level ~= 3 and buffactive['Aftermath: Lv.2'] then
  1212.                 return
  1213.             end
  1214.  
  1215.             if info.aftermath.level == 1 then
  1216.                 info.aftermath.duration = 90
  1217.             elseif info.aftermath.level == 2 then
  1218.                 info.aftermath.duration = 120
  1219.             else
  1220.                 info.aftermath.duration = 180
  1221.             end
  1222.         end
  1223.     end
  1224. end
  1225.  
  1226. -- Call from job_aftercast() to create the custom aftermath timer.
  1227. function aw_custom_aftermath_timers_aftercast(spell)
  1228.     if not spell.interrupted and spell.type == 'WeaponSkill' and
  1229.         info.aftermath and info.aftermath.weaponskill == spell.english and info.aftermath.duration > 0 then
  1230.  
  1231.         local aftermath_name = 'Aftermath: Lv.'..tostring(info.aftermath.level)
  1232.         send_command('timers d "Aftermath: Lv.1"')
  1233.         send_command('timers d "Aftermath: Lv.2"')
  1234.         send_command('timers d "Aftermath: Lv.3"')
  1235.         send_command('timers c "'..aftermath_name..'" '..tostring(info.aftermath.duration)..' down abilities/aftermath'..tostring(info.aftermath.level)..'.png')
  1236.  
  1237.         info.aftermath = {}
  1238.     end
  1239. end
  1240.  
  1241. function display_current_job_state(eventArgs)
  1242.     local msg = ''
  1243.     msg = msg .. 'Offense: '..state.OffenseMode.current
  1244.     msg = msg .. ', Hybrid: '..state.HybridMode.current
  1245.  
  1246.     if state.CombatForm.current ~= '' then
  1247.         msg = msg .. ', Form: ' .. state.CombatForm.current
  1248.     end
  1249.     if state.CombatWeapon.current ~= '' then
  1250.         msg = msg .. ', Weapon: ' .. state.CombatWeapon.current
  1251.     end
  1252.     --if state.SouleaterMode.value then
  1253.     --    msg = msg .. ', SE Cancel, '
  1254.     --end
  1255.  
  1256.     add_to_chat(123, msg)
  1257.     eventArgs.handled = true
  1258. end
  1259.  
  1260. -- Set eventArgs.handled to true if we don't want the automatic display to be run.
  1261. -- Handle notifications of general user state change.
  1262. function job_state_change(stateField, newValue, oldValue)
  1263.  
  1264. end
  1265.  
  1266. -- Custom spell mapping.
  1267. function job_get_spell_map(spell, default_spell_map)
  1268.     if spell.skill == 'Dark Magic' and Absorbs:contains(spell.english) then
  1269.         return 'Absorb'
  1270.     end
  1271.  
  1272.     if spell.skill == 'Elemental Magic' then
  1273.         if LowTierNuke:contains(spell.english) then
  1274.             return 'LowTierNuke'
  1275.         else
  1276.             return 'HighTierNuke'
  1277.         end
  1278.     end
  1279. end
  1280.  
  1281. function update_melee_groups()
  1282.     classes.CustomMeleeGroups:clear()
  1283.         -- mythic AM
  1284.     if player.equipment.main == 'Liberator' then
  1285.         if buffactive['Aftermath: Lv.3'] then
  1286.             classes.CustomMeleeGroups:append('AM3')
  1287.         end
  1288.     else
  1289.         -- relic AM
  1290.         if buffactive['Aftermath'] then
  1291.             classes.CustomMeleeGroups:append('AM')
  1292.         end
  1293.     end
  1294.         -- Sam Roll
  1295.     if buffactive['Samurai Roll'] then
  1296.         classes.CustomMeleeGroups:append('SamRoll')
  1297.     end
  1298. end
  1299.  
  1300. -- Select default macro book on initial load or subjob change.
  1301. function select_default_macro_book()
  1302.     -- Default macro set/book
  1303.     if player.sub_job == 'WAR' then
  1304.         set_macro_page(1, 2)
  1305.     elseif player.sub_job == 'RDM' then
  1306.         set_macro_page(2, 2)
  1307.     elseif player.sub_job == 'NIN' then
  1308.         set_macro_page(3, 2)
  1309.     elseif player.sub_job == 'THF' then
  1310.         set_macro_page(4, 2)
  1311.     else
  1312.         set_macro_page(1, 2)
  1313.     end
  1314. end
Add Comment
Please, Sign In to add comment