-- NOTE: I do not play run, so this will not be maintained for 'active' use.
-- It is added to the repository to allow people to have a baseline to build from,
-- and make sure it is up-to-date with the library API.
-------------------------------------------------------------------------------------------------------------------
-- Setup functions for this job. Generally should not be modified.
-------------------------------------------------------------------------------------------------------------------
-- Initialization function for this job file.
function get_sets()
mote_include_version = 2
-- Load and initialize the include file.
include('Mote-Include.lua')
end
-- Setup vars that are user-independent.
function job_setup()
-- Table of entries
rune_timers = T{}
-- entry = rune, index, expires
if player.main_job_level >= 65 then
max_runes = 3
elseif player.main_job_level >= 35 then
max_runes = 2
elseif player.main_job_level >= 5 then
max_runes = 1
else
max_runes = 0
end
end
-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job. Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------
function user_setup()
state.OffenseMode:options('Normal', 'Acc', 'Hybrid', 'DT')
state.WeaponskillMode:options('Normal', 'Acc')
state.PhysicalDefenseMode:options('PDT')
state.IdleMode:options('Standard','PDT','MoveDT')
select_default_macro_book()
end
function init_gear_sets()
sets.enmity = {
ammo="Aqreqaq Bomblet",
head="Halitus Helm",
body="Emet Harness +1",
hands="Kurys Gloves",
legs="Eri. Leg Guards +1",
feet="Erilaz Greaves +1",
neck="Moonbeam Necklace",
waist="Kasiri Belt",
left_ear="Friomisi Earring",
right_ear="Cryptic Earring",
left_ring="Eihwaz Ring",
right_ring="Supershear Ring",
back={ name="Ogma's cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Mag. Evasion+15',}},
}
--------------------------------------
-- Precast sets
--------------------------------------
-- Precast sets to enhance JAs
sets.precast.JA['Footwork'] = {
feet="Anch. Gaiters +3"
}
sets.precast.JA['Vallation'] = {
ammo="Iron Gobbet",
head="Erilaz Galea +1",
body="Runeist Coat +3",
hands="Kurys Gloves",
legs={ name="Futhark Trousers +1", augments={'Enhances "Inspire" effect',}},
feet="Erilaz Greaves +1",
neck="Moonbeam Necklace",
waist="Sulla Belt",
right_ear="Odnowa Earring +1",
left_ear="Cryptic Earring",
left_ring="Begrudging Ring",
right_ring="Supershear Ring",
back={ name="Ogma's cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Mag. Evasion+15',}},
}
sets.precast.JA['Valiance'] = sets.precast.JA['Vallation']
sets.precast.JA['Pflug'] = {
ammo="Iron Gobbet",
head="Erilaz Galea +1",
body="Emet Harness +1",
hands="Kurys Gloves",
legs="Eri. Leg Guards +1",
feet="Runeist Bottes +2",
neck="Moonbeam Necklace",
waist="Sulla Belt",
right_ear="Odnowa Earring +1",
left_ear="Cryptic Earring",
left_ring="Begrudging Ring",
right_ring="Supershear Ring",
back={ name="Ogma's cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Mag. Evasion+15',}},
}
sets.precast.JA['Battuta'] = {
ammo="Iron Gobbet",
head={ name="Fu. Bandeau +3", augments={'Enhances "Battuta" effect',}},
body="Emet Harness +1",
hands="Kurys Gloves",
legs="Eri. Leg Guards +1",
feet="Erilaz Greaves +1",
neck="Moonbeam Necklace",
waist="Sulla Belt",
right_ear="Odnowa Earring +1",
left_ear="Cryptic Earring",
left_ring="Begrudging Ring",
right_ring="Supershear Ring",
back={ name="Ogma's cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Mag. Evasion+15',}},
}
sets.precast.JA['Liement'] = {body="Futhark Coat +2"}
sets.precast.JA['Lunge'] = {
ammo="Seething Bomblet",
head={ name="Herculean Helm", augments={'"Mag.Atk.Bns."+23','"Counter"+2','Mag. Acc.+16 "Mag.Atk.Bns."+16',}},
body={ name="Samnuha Coat", augments={'Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+5','"Dual Wield"+5',}},
hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
legs={ name="Herculean Trousers", augments={'Mag. Acc.+11 "Mag.Atk.Bns."+11','STR+6','Mag. Acc.+14','"Mag.Atk.Bns."+12',}},
feet={ name="Herculean Boots", augments={'Mag. Acc.+18 "Mag.Atk.Bns."+18','"Store TP"+1','Mag. Acc.+7','"Mag.Atk.Bns."+14',}},
neck="Baetyl Pendant",
waist="Eschan Stone",
left_ear="Friomisi Earring",
right_ear="Hecate's Earring",
left_ring="Niqmaddu Ring",
right_ring="Acumen Ring",
back="Izdubar Mantle",
}
sets.precast.JA['Swipe'] = sets.precast.JA['Lunge']
sets.precast.JA['Gambit'] = {hands="Runeist Mitons +2"}
sets.precast.JA['Rayke'] = {feet="Futhark Bottes +1"}
sets.precast.JA['Elemental Sforzo'] = {body="Futhark Coat 2"}
sets.precast.JA['Swordplay'] = {hands="Futhark Mitons +1"}
sets.precast.JA['Embolden'] = {back="Evasionist's Cape"}
sets.precast.JA['Vivacious Pulse'] = {head="Erilaz Galea +1"}
sets.precast.JA['Dodge'] = {
ammo="Staunch Tathlum +1",
head="Malignance Chapeau",
body="Malignance Tabard",
hands="Malignance Gloves",
legs="Malignance Tights",
feet="Anch. Gaiters +2",
neck={ name="Unmoving Collar +1", augments={'Path: A',}},
waist="Moonbow Belt +1",
left_ear="Tuisto Earring",
right_ear="Odnowa Earring +1",
left_ring="Defending Ring",
right_ring="Gelatinous Ring +1",
back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Store TP"+10','Damage taken-5%',}},
}
sets.precast.JA['Focus'] = {
ammo="Staunch Tathlum +1",
head="Anch. Crown +2",
body="Malignance Tabard",
hands="Malignance Gloves",
legs="Malignance Tights",
feet="Malignance Boots",
neck={ name="Unmoving Collar +1", augments={'Path: A',}},
waist="Moonbow Belt +1",
left_ear="Tuisto Earring",
right_ear="Odnowa Earring +1",
left_ring="Defending Ring",
right_ring="Gelatinous Ring +1",
back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Store TP"+10','Damage taken-5%',}},
}
sets.precast.JA['Chi Blast'] = {
ammo="Staunch Tathlum +1",
head={ name="Hes. Crown +1", augments={'Enhances "Penance" effect',}},
body="Malignance Tabard",
hands="Malignance Gloves",
legs="Malignance Tights",
feet="Malignance Boots",
neck={ name="Unmoving Collar +1", augments={'Path: A',}},
waist="Moonbow Belt +1",
left_ear="Tuisto Earring",
right_ear="Odnowa Earring +1",
left_ring="Defending Ring",
right_ring="Gelatinous Ring +1",
back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Store TP"+10','Damage taken-5%',}},
}
sets.precast.JA['Chakra'] = {
ammo="Staunch Tathlum +1",
head="Volte Cap",
body="Anch. Cyclas +3",
hands={ name="Hes. Gloves +1", augments={'Enhances "Invigorate" effect',}},
legs="Malignance Tights",
feet="Malignance Boots",
neck={ name="Unmoving Collar +1", augments={'Path: A',}},
waist="Moonbow Belt +1",
left_ear="Tuisto Earring",
right_ear="Odnowa Earring +1",
left_ring="Niqmaddu Ring",
right_ring="Regal Ring",
back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Store TP"+10','Damage taken-5%',}},
}
sets.precast.JA['One for All'] = {
ammo="Iron Gobbet",
head="Erilaz Galea +1",
body="Emet Harness +1",
hands="Kurys Gloves",
legs="Eri. Leg Guards +1",
feet="Erilaz Greaves +1",
neck="Moonbeam Necklace",
waist="Sulla Belt",
right_ear="Odnowa Earring +1",
left_ear="Cryptic Earring",
left_ring="Begrudging Ring",
right_ring="Supershear Ring",
back={ name="Ogma's cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Mag. Evasion+15',}},
}
sets.precast.JA['Provoke'] = sets.enmity
-- Fast cast sets for spells
sets.precast.FC = {
main="Epeolatry",
sub="Utu Grip",
ammo="Sapience Orb",
head="Herculean Helm",
body="Dread Jupon",
hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
legs="Aya. Cosciales +2",
feet={ name="Carmine Greaves +1", augments={'HP+80','MP+80','Phys. dmg. taken -4',}},
neck="Orunmila's Torque",
waist="Kasiri Belt",
left_ear="Loquac. Earring",
right_ear="Etiolation Earring",
left_ring="Kishar Ring",
right_ring="Prolix Ring",
back={ name="Ogma's cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+20','"Fast Cast"+10','Spell interruption rate down-10%',}},
}
sets.precast.FC['Stoneskin'] = {
main="Epeolatry",
sub="Utu Grip",
ammo="Sapience Orb",
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
body="Dread Jupon",
hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
legs="Doyen Pants",
feet={ name="Carmine Greaves +1", augments={'HP+80','MP+80','Phys. dmg. taken -4',}},
neck="Orunmila's Torque",
waist="Siegel Sash",
left_ear="Loquac. Earring",
right_ear="Etiolation Earring",
left_ring="Kishar Ring",
right_ring="Prolix Ring",
back={ name="Ogma's cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+20','"Fast Cast"+10','Spell interruption rate down-10%',}},
}
sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash", legs="Futhark Trousers +1",
hands="Runeist Mitons +2"})
sets.precast.FC['Utsusemi: Ichi'] = set_combine(sets.precast.FC, {neck='Magoraga beads', back="Mujin Mantle"})
sets.precast.FC['Utsusemi: Ni'] = set_combine(sets.precast.FC['Utsusemi: Ichi'], {})
-- Weaponskill sets
sets.precast.WS['Final Heaven'] = {
ammo="Knobkierrie",
head={ name="Lustratio Cap +1", augments={'Attack+20','STR+8','"Dbl.Atk."+3',}},
body={ name="Lustr. Harness +1", augments={'Attack+20','STR+8','"Dbl.Atk."+3',}},
hands="Meg. Gloves +2",
legs={ name="Samnuha Tights", augments={'STR+10','DEX+10','"Dbl.Atk."+3','"Triple Atk."+3',}},
feet={ name="Lustra. Leggings +1", augments={'Attack+20','STR+8','"Dbl.Atk."+3',}},
neck="Fotia Gorget",
waist="Fotia Belt",
right_ear="Sherida Earring",
left_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
left_ring="Niqmaddu Ring",
right_ring="Regal Ring",
back={ name="Ogma's cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%',}},
}
sets.precast.WS['Victory Smite'] = {
ammo="Knobkierrie",
head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
body="Anch. Cyclas +3",
hands={ name="Ryuo Tekko +1", augments={'STR+12','DEX+12','Accuracy+20',}},
legs="Hiza. Hizayoroi +2",
feet={ name="Herculean Boots", augments={'Attack+19','Weapon skill damage +4%','STR+10','Accuracy+11',}},
neck="Fotia Gorget",
waist="Moonbow Belt +1",
left_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
right_ear="Sherida Earring",
right_ring="Regal Ring",
left_ring="Niqmaddu Ring",
back={ name="Segomo's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Damage taken-5%',}},
}
sets.precast.WS['Shijin Spiral'] = {
ammo="Knobkierrie",
head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
body={ name="Adhemar Jacket +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
hands={ name="Adhemar Wrist. +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
legs={ name="Samnuha Tights", augments={'STR+10','DEX+10','"Dbl.Atk."+3','"Triple Atk."+3',}},
feet={ name="Herculean Boots", augments={'Attack+19','Weapon skill damage +4%','STR+10','Accuracy+11',}},
neck="Fotia Gorget",
waist="Moonbow Belt +1",
left_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
right_ear="Sherida Earring",
right_ring="Regal Ring",
left_ring="Ilabrat Ring",
back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Store TP"+10','Damage taken-5%',}},
}
sets.precast.WS['Raging Fists'] = {
ammo="Knobkierrie",
head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
body="Hiza. Haramaki +2",
hands={ name="Ryuo Tekko +1", augments={'STR+12','DEX+12','Accuracy+20',}},
legs="Hiza. Hizayoroi +2",
feet={ name="Herculean Boots", augments={'Attack+19','Weapon skill damage +4%','STR+10','Accuracy+11',}},
neck="Fotia Gorget",
waist="Moonbow Belt +1",
left_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
right_ear="Sherida Earring",
right_ring="Regal Ring",
left_ring="Niqmaddu Ring",
back={ name="Segomo's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Damage taken-5%',}},
}
--------------------------------------
-- Midcast sets
--------------------------------------
sets.midcast.FastRecast = {}
sets.midcast.Interrupt = {
ammo="Staunch Tathlum +1",
head={ name="Taeon Chapeau", augments={'DEF+20','Spell interruption rate down -5%',}},
body={ name="Taeon Tabard", augments={'Evasion+5','Spell interruption rate down -3%','Phalanx +3',}},
hands="Rawhide Gloves",
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet="Karasutengu",
neck="Moonbeam Necklace",
waist="Rumination Sash",
left_ear="Halasz Earring",
right_ear="Magnetic Earring",
left_ring="Defending Ring",
right_ring="Evanescence Ring",
back="Shadow Mantle",
}
sets.midcast['Enhancing Magic'] = {
head="Carmine Mask +1",
neck="Incanter's Torque",
ear1="Andoaa Earring",
hands="Runeist's Mitons +2",
waist="Olympus Sash",
back="Merciful Cape",
legs="Futhark Trousers +1"
}
sets.midcast['Phalanx'] = {
ammo="Staunch Tathlum +1",
head={ name="Fu. Bandeau +3", augments={'Enhances "Battuta" effect',}},
body={ name="Taeon Tabard", augments={'Evasion+5','Spell interruption rate down -3%','Phalanx +3',}},
hands={ name="Taeon Gloves", augments={'Evasion+22','Spell interruption rate down -9%','Phalanx +2',}},
legs={ name="Taeon Tights", augments={'Evasion+20','Spell interruption rate down -10%','Phalanx +3',}},
feet={ name="Taeon Boots", augments={'Evasion+20','Spell interruption rate down -2%','Phalanx +3',}},
neck="Incanter's Torque",
waist="Olympus Sash",
left_ear="Andoaa Earring",
right_ear="Magnetic Earring",
left_ring="Defending Ring",
right_ring="Gelatinous Ring +1",
back="Merciful Cape",
}
sets.midcast['Aquaveil'] = {
main="Epeolatry",
sub="Utu Grip",
ammo="Homiliary",
head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
body="Runeist's Coat +3",
hands="Runeist's Mitons +2",
legs={ name="Futhark Trousers +1", augments={'Enhances "Inspire" effect',}},
feet="Turms Leggings +1",
neck="Incanter's Torque",
waist="Olympus Sash",
left_ear="Andoaa Earring",
right_ear="Odnowa Earring +1",
left_ring="Defending Ring",
right_ring="Gelatinous Ring +1",
back="Merciful Cape",
}
sets.midcast['Refresh'] = {
head="Erilaz Galea +1"
}
sets.midcast['Regen'] = {
ammo="Staunch Tathlum +1",
head="Rune. Bandeau +2",
body={ name="Futhark Coat +2", augments={'Enhances "Elemental Sforzo" effect',}},
hands="Rawhide Gloves",
legs={ name="Futhark Trousers +1", augments={'Enhances "Inspire" effect',}},
feet="Karasutengu",
neck="Sacro Gorget",
waist="Rumination Sash",
left_ear="Halasz Earring",
right_ear="Magnetic Earring",
left_ring="Defending Ring",
right_ring="Evanescence Ring",
back="Shadow Mantle",
}
sets.midcast['Stoneskin'] = {
ammo="Staunch Tathlum +1",
head={ name="Taeon Chapeau", augments={'DEF+20','Spell interruption rate down -5%',}},
body={ name="Futhark Coat +2", augments={'Enhances "Elemental Sforzo" effect',}},
hands="Rawhide Gloves",
legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
feet="Karasutengu",
neck="Moonbeam Necklace",
waist="Rumination Sash",
left_ear="Halasz Earring",
right_ear="Magnetic Earring",
left_ring="Defending Ring",
right_ring="Evanescence Ring",
back="Shadow Mantle",
}
sets.midcast.Cure = {neck="Colossus's Torque", hands="Buremte Gloves", ring1="Ephedra Ring", feet="Futhark Boots +1"}
sets.midcast['Flash'] = {
ammo="Iron Gobbet",
head="Halitus Helm",
body="Emet Harness +1",
hands="Kurys Gloves",
legs="Eri. Leg Guards +1",
feet="Erilaz Greaves +1",
neck="Moonbeam Necklace",
waist="Sulla Belt",
left_ear="Friomisi Earring",
right_ear="Cryptic Earring",
left_ring="Begrudging Ring",
right_ring="Supershear Ring",
back={ name="Ogma's cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Mag. Evasion+15',}},
}
sets.midcast['Blue Magic'] = {
ammo="Aqreqaq Bomblet",
head="Halitus Helm",
body="Emet Harness +1",
hands="Kurys Gloves",
legs="Eri. Leg Guards +1",
feet="Erilaz Greaves +1",
neck="Moonbeam Necklace",
waist="Kasiri Belt",
left_ear="Friomisi Earring",
right_ear="Cryptic Earring",
left_ring="Eihwaz Ring",
right_ring="Supershear Ring",
back={ name="Ogma's cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Mag. Evasion+15',}},
}
sets.midcast['Stun'] = {
ammo="Iron Gobbet",
head="Halitus Helm",
body="Emet Harness +1",
hands="Kurys Gloves",
legs="Eri. Leg Guards +1",
feet="Erilaz Greaves +1",
neck="Moonbeam Necklace",
waist="Sulla Belt",
left_ear="Friomisi Earring",
right_ear="Cryptic Earring",
left_ring="Begrudging Ring",
right_ring="Supershear Ring",
back={ name="Ogma's cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Mag. Evasion+15',}},
}
sets.midcast['Poisonga'] = {
ammo="Iron Gobbet",
head="Halitus Helm",
body="Emet Harness +1",
hands="Kurys Gloves",
legs="Eri. Leg Guards +1",
feet="Erilaz Greaves +1",
neck="Moonbeam Necklace",
waist="Sulla Belt",
left_ear="Friomisi Earring",
right_ear="Cryptic Earring",
left_ring="Begrudging Ring",
right_ring="Supershear Ring",
back={ name="Ogma's cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Mag. Evasion+15',}},
}
sets.midcast['Poison'] = {
ammo="Iron Gobbet",
head="Halitus Helm",
body="Emet Harness +1",
hands="Kurys Gloves",
legs="Eri. Leg Guards +1",
feet="Erilaz Greaves +1",
neck="Moonbeam Necklace",
waist="Sulla Belt",
left_ear="Friomisi Earring",
right_ear="Cryptic Earring",
left_ring="Begrudging Ring",
right_ring="Supershear Ring",
back={ name="Ogma's cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Mag. Evasion+15',}},
}
sets.midcast['Wild Carrot'] = {
ammo="Staunch Tathlum +1",
head="Halitus Helm",
body={ name="Despair Mail", augments={'HP+50','VIT+10','Potency of "Cure" effect received +5%',}},
hands="Kurys Gloves",
legs={ name="Futhark Trousers +1", augments={'Enhances "Inspire" effect',}},
feet="Erilaz Greaves +1",
neck="Phalaina Locket",
waist="Gishdubar Sash",
left_ear="Cryptic Earring",
right_ear="Mendi. Earring",
left_ring="Begrudging Ring",
right_ring="Defending Ring",
back={ name="Ogma's cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Mag. Evasion+15',}},
}
--------------------------------------
-- Idle/resting/defense/etc sets
--------------------------------------
sets.idle.Standard = {
ammo="Staunch Tathlum +1",
head={ name="Rawhide Mask", augments={'HP+50','Accuracy+15','Evasion+20',}},
body="Hiza. Haramaki +2",
hands="Malignance Gloves",
legs="Malignance Tights",
feet="Herald's Gaiters",
neck="Bathy Choker +1",
waist="Moonbow Belt +1",
left_ear="Infused Earring",
right_ear="Odnowa Earring +1",
left_ring="Defending Ring",
right_ring="Gelatinous Ring +1",
back="Moonlight Cape",
}
sets.idle.PDT = {
ammo="Staunch Tathlum +1",
head="Turms Cap +1",
body={ name="Futhark Coat +2", augments={'Enhances "Elemental Sforzo" effect',}},
hands="Turms Mittens +1",
legs="Eri. Leg Guards +1",
feet="Erilaz Greaves +1",
neck="Loricate Torque +1",
waist="Flume Belt +1",
right_ear="Odnowa Earring +1",
left_ear="Etiolation Earring",
left_ring="Defending Ring",
right_ring="Gelatinous Ring +1",
back="Shadow Mantle",
}
sets.idle.MoveDT = {
ammo="Staunch Tathlum +1",
head="Malignance Chapeau",
body="Malignance Tabard",
hands="Malignance Gloves",
legs="Malignance Tights",
feet="Herald's Gaiters",
neck="Loricate Torque +1",
waist="Moonbow Belt +1",
left_ear="Genmei Earring",
right_ear="Odnowa Earring +1",
left_ring="Defending Ring",
right_ring="Gelatinous Ring +1",
back="Shadow Mantle",
}
--------------------------------------
-- Engaged sets
--------------------------------------
sets.engaged.Normal = {
ammo="Ginsen",
head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
body={ name="Adhemar Jacket +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
hands={ name="Adhemar Wrist. +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
legs={ name="Samnuha Tights", augments={'STR+10','DEX+10','"Dbl.Atk."+3','"Triple Atk."+3',}},
feet={ name="Herculean Boots", augments={'Accuracy+17 Attack+17','"Triple Atk."+4','Attack+14',}},
neck="Anu Torque",
waist="Moonbow Belt +1",
left_ear="Cessance Earring",
right_ear="Dedition Earring",
right_ring="Gere Ring",
left_ring="Niqmaddu Ring",
back="Segomo's Mantle",
}
sets.engaged.Acc = {
ammo="Yamarang",
head={ name="Adhemar Bonnet +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
body={ name="Adhemar Jacket +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
hands={ name="Adhemar Wrist. +1", augments={'DEX+12','AGI+12','Accuracy+20',}},
legs="Meg. Chausses +2",
feet="Aya. Gambieras +2",
neck="Sanctity Necklace",
waist="Kentarch Belt +1",
left_ear="Digni. Earring",
right_ear="Cessance Earring",
left_ring="Cacoethic Ring +1",
right_ring="Ayanmo Ring",
back={ name="Ogma's cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+5','"Store TP"+10',}},
}
sets.engaged.Hybrid = {
ammo="Staunch Tathlum +1",
head="Malignance Chapeau",
body="Bhikku Cyclas +1",
hands="Malignance Gloves",
legs="Malignance Tights",
feet="Anch. Gaiters +3",
neck="Mnk. Nodowa +2",
waist="Moonbow Belt +1",
left_ear="Telos Earring",
right_ear="Sherida Earring",
right_ring="Gelatinous Ring +1",
left_ring="Niqmaddu Ring",
back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Store TP"+10','Damage taken-5%',}},
}
sets.engaged.DT = {
ammo="Staunch Tathlum +1",
head="Malignance Chapeau",
body="Malignance Tabard",
hands="Malignance Gloves",
legs="Malignance Tights",
feet="Malignance Boots",
neck={ name="Unmoving Collar +1", augments={'Path: A',}},
waist="Moonbow Belt +1",
right_ear="Odnowa Earring +1",
left_ear="Tuisto Earring",
right_ring="Gelatinous Ring +1",
left_ring="Niqmaddu Ring",
back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Store TP"+10','Damage taken-5%',}},
}
sets.engaged.TH = {
main={ name="Godhands", augments={'Path: A',}},
ammo="Staunch Tathlum +1",
head="Malignance Chapeau",
body="Malignance Tabard",
hands={ name="Herculean Gloves", augments={'CHR+2','Mag. Acc.+2','"Treasure Hunter"+2','Mag. Acc.+14 "Mag.Atk.Bns."+14',}},
legs="Malignance Tights",
feet={ name="Herculean Boots", augments={'STR+2','Pet: Haste+1','"Treasure Hunter"+2','Accuracy+20 Attack+20',}},
neck={ name="Unmoving Collar +1", augments={'Path: A',}},
waist="Moonbow Belt +1",
left_ear="Tuisto Earring",
right_ear="Odnowa Earring +1",
left_ring="Niqmaddu Ring",
right_ring={ name="Gelatinous Ring +1", augments={'Path: A',}},
back={ name="Segomo's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Store TP"+10','Damage taken-5%',}},
}
sets.engaged.repulse = {back="Repulse Mantle"}
end
------------------------------------------------------------------
-- Action events
------------------------------------------------------------------
-- Run after the default midcast() is done.
-- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
function job_post_midcast(spell, action, spellMap, eventArgs)
if spell.english == 'Lunge' or spell.english == 'Swipe' then
local obi = get_obi(get_rune_obi_element())
if obi then
equip({waist=obi})
end
end
end
function job_aftercast(spell)
if not spell.interrupted then
if spell.type == 'Rune' then
update_timers(spell)
elseif spell.name == "Lunge" or spell.name == "Gambit" or spell.name == 'Rayke' then
reset_timers()
elseif spell.name == "Swipe" then
send_command(trim(1))
end
end
end
-------------------------------------------------------------------------------------------------------------------
-- Customization hooks for idle and melee sets, after they've been automatically constructed.
-------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
-- General hooks for other events.
-------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements self-commands.
-------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
-- Default macro set/book
if player.sub_job == 'WAR' then
set_macro_page(1, 2)
elseif player.sub_job == 'NIN' then
set_macro_page(1, 2)
elseif player.sub_job == 'SAM' then
set_macro_page(1, 2)
else
set_macro_page(1, 2)
end
end
function get_rune_obi_element()
weather_rune = buffactive[elements.rune_of[world.weather_element] or '']
day_rune = buffactive[elements.rune_of[world.day_element] or '']
local found_rune_element
if weather_rune and day_rune then
if weather_rune > day_rune then
found_rune_element = world.weather_element
else
found_rune_element = world.day_element
end
elseif weather_rune then
found_rune_element = world.weather_element
elseif day_rune then
found_rune_element = world.day_element
end
return found_rune_element
end
function get_obi(element)
if element and elements.obi_of[element] then
return (player.inventory[elements.obi_of[element]] or player.wardrobe[elements.obi_of[element]]) and elements.obi_of[element]
end
end
------------------------------------------------------------------
-- Timer manipulation
------------------------------------------------------------------
-- Add a new run to the custom timers, and update index values for existing timers.
function update_timers(spell)
local expires_time = os.time() + 300
local entry_index = rune_count(spell.name) + 1
local entry = {rune=spell.name, index=entry_index, expires=expires_time}
rune_timers:append(entry)
local cmd_queue = create_timer(entry).. ';wait 0.05;'
cmd_queue = cmd_queue .. trim()
add_to_chat(123,'cmd_queue='..cmd_queue)
send_command(cmd_queue)
end
-- Get the command string to create a custom timer for the provided entry.
function create_timer(entry)
local timer_name = '"Rune: ' .. entry.rune .. '-' .. tostring(entry.index) .. '"'
local duration = entry.expires - os.time()
return 'timers c ' .. timer_name .. ' ' .. tostring(duration) .. ' down'
end
-- Get the command string to delete a custom timer for the provided entry.
function delete_timer(entry)
local timer_name = '"Rune: ' .. entry.rune .. '-' .. tostring(entry.index) .. '"'
return 'timers d ' .. timer_name .. ''
end
-- Reset all timers
function reset_timers()
local cmd_queue = ''
for index,entry in pairs(rune_timers) do
cmd_queue = cmd_queue .. delete_timer(entry) .. ';wait 0.05;'
end
rune_timers:clear()
send_command(cmd_queue)
end
-- Get a count of the number of runes of a given type
function rune_count(rune)
local count = 0
local current_time = os.time()
for _,entry in pairs(rune_timers) do
if entry.rune == rune and entry.expires > current_time then
count = count + 1
end
end
return count
end
-- Remove the oldest rune(s) from the table, until we're below the max_runes limit.
-- If given a value n, remove n runes from the table.
function trim(n)
local cmd_queue = ''
local to_remove = n or (rune_timers:length() - max_runes)
while to_remove > 0 and rune_timers:length() > 0 do
local oldest
for index,entry in pairs(rune_timers) do
if oldest == nil or entry.expires < rune_timers[oldest].expires then
oldest = index
end
end
cmd_queue = cmd_queue .. prune(rune_timers[oldest].rune)
to_remove = to_remove - 1
end
return cmd_queue
end
-- Drop the index of all runes of a given type.
-- If the index drops to 0, it is removed from the table.
function prune(rune)
local cmd_queue = ''
for index,entry in pairs(rune_timers) do
if entry.rune == rune then
cmd_queue = cmd_queue .. delete_timer(entry) .. ';wait 0.05;'
entry.index = entry.index - 1
end
end
for index,entry in pairs(rune_timers) do
if entry.rune == rune then
if entry.index == 0 then
rune_timers[index] = nil
else
cmd_queue = cmd_queue .. create_timer(entry) .. ';wait 0.05;'
end
end
end
return cmd_queue
end
------------------------------------------------------------------
-- Reset events
------------------------------------------------------------------
windower.raw_register_event('zone change',reset_timers)
windower.raw_register_event('logout',reset_timers)
windower.raw_register_event('status change',function(new, old)
if gearswap.res.statuses[new].english == 'Dead' then
reset_timers()
end
end)
[/spoiler]