-------------------------------------------------------------------------------------------------------------------
-- 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. state.Buff vars initialized here will automatically be tracked.
function job_setup()
end
-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job. Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------
-- Setup vars that are user-dependent. Can override this function in a sidecar file.
function user_setup()
state.OffenseMode:options('Normal', 'SavageBlade', 'SanguineBlade', 'DTME', 'TH')
state.CastingMode:options('Normal', 'TH')
state.IdleMode:options('Normal', 'IdleSupport', 'IdleDTME')
send_command('bind f10 gs c cycle IdleMode')
send_command('bind f11 gs c cycle CastingMode')
select_default_macro_book()
end
function file_unload()
if binds_on_unload then
binds_on_unload()
end
-- Unbinds the Jug Pet, Reward, Correlation, Treasure, PetMode, MDEF Mode hotkeys.
send_command('unbind !=')
send_command('unbind ^=')
send_command('unbind !f8')
send_command('unbind ^f8')
send_command('unbind @f8')
send_command('unbind f10')
send_command('unbind ^f11')
end
-- Define sets and vars used by this job file.
function init_gear_sets()
idle = {
ammo="Homiliary",
head={ name="Viti. Chapeau +3", augments={'Enfeebling Magic duration','Magic Accuracy',}},
body="Atrophy Tabard +3",
hands="Malignance gloves",
legs="Malignance Tights",
feet="Malignance Boots",
neck="Loricate Torque +1",
waist="Flume Belt",
left_ear="Ethereal Earring",
right_ear="Etiolation Earring",
left_ring="Gelatinous Ring +1",
right_ring="Defending Ring",
back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10','Phys. dmg. taken-10%',}},
}
idle_support = set_combine(idle, {
main="Daybreak",
sub="Ammurapi Shield",
})
dtme_idle = set_combine(idle, {
head="Malignance Chapeau",
body="Malignance Tabard",
hands="Malignance gloves",
legs="Malignance Tights",
feet="Malignance Boots",
neck="Loricate Torque +1",
left_ring="Gelatinous Ring +1",
right_ring="Defending Ring",
})
fast_cast = {
head={ name="Merlinic Hood", augments={'Mag. Acc.+26','"Fast Cast"+6','INT+10',}},
body={ name="Viti. Tabard +3", augments={'Enhances "Chainspell" effect',}},
neck="Voltsurge Torque",
waist="Embla Sash",
left_ear="Malignance Earring",
right_ear="Enchntr. Earring +1",
left_ring="Kishar Ring",
back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','"Fast Cast"+10',}},
}
elemental = {
main="Daybreak",
sub="Ammurapi Shield",
ammo="Pemphredo Tathlum",
head= "Ea hat",
body= "Ea houppelande",
hands={ name="Amalric Gages +1", augments={'INT+12','Mag. Acc.+20','"Mag.Atk.Bns."+20',}},
legs= "Ea Slops",
feet="Jhakri Pigaches +2",
neck="Mizu. Kubikazari",
waist="Sacro Cord",
left_ear="Friomisi Earring",
right_ear="Malignance Earring",
left_ring="Freke Ring",
right_ring="Mujin Band",
back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
}
maccu = {
main="Daybreak",
sub="Ammurapi Shield",
ammo="",
range="Kaja Bow",
head={ name="Viti. Chapeau +3", augments={'Enfeebling Magic duration','Magic Accuracy',}},
body="Atrophy Tabard +3",
hands={ name="Kaykaus Cuffs +1", augments={'MP+80','MND+12','Mag. Acc.+20',}},
legs={ name="Chironic Hose", augments={'Mag. Acc.+28','Spell interruption rate down -7%','MND+14',}},
feet={ name="Vitiation Boots +3", augments={'Immunobreak Chance',}},
neck="Dls. Torque +2",
waist={ name="Acuity Belt +1", augments={'Path: A',}},
left_ear="Snotra Earring",
right_ear="Malignance Earring",
left_ring="Stikini Ring",
right_ring="Kishar Ring",
back={ name="Aurist's Cape +1", augments={'Path: A',}},
}
maccu_white = maccu
maccu_black = maccu
maccu_mind_potency = set_combine(maccu,{
waist="luminary sash"
})
maccu_skill_potency = set_combine(maccu,{
waist="luminary sash"
})
dark_magic = set_combine(maccu_black, {
main={ name="Rubicundity", augments={'Mag. Acc.+5','"Mag.Atk.Bns."+5','"Conserve MP"+4',}},
ammo="Pemphredo Tathlum",
head="Pixie Hairpin +1",
legs={ name="Merlinic Shalwar", augments={'Mag. Acc.+25','"Drain" and "Aspir" potency +10','"Mag.Atk.Bns."+2',}},
feet={ name="Merlinic Crackows", augments={'Mag. Acc.+22','"Drain" and "Aspir" potency +10','INT+2','"Mag.Atk.Bns."+1',}},
neck="Erra Pendant",
left_ring="Evanescence Ring",
right_ring="Archon Ring",
})
enhancing_duration = {
main="Pukulatmuj +1",
sub="Ammurapi Shield",
head={ name="Telchine Cap", augments={'Enh. Mag. eff. dur. +10',}},
body={ name="Viti. Tabard +3", augments={'Enhances "Chainspell" effect',}},
hands="Atrophy Gloves +3",
legs={ name="Telchine Braconi", augments={'Enh. Mag. eff. dur. +10',}},
feet="Leth. Houseaux +1",
neck="Dls. Torque +2",
waist="Embla Sash",
left_ear="Andoaa Earring",
right_ear="Mimir Earring",
left_ring="Stikini Ring",
right_ring="Stikini Ring",
back={ name="Ghostfyre Cape", augments={'Enfb.mag. skill +8','Enha.mag. skill +8','Mag. Acc.+4','Enh. Mag. eff. dur. +20',}},
}
enhancing_duration_others = set_combine(enhancing_duration, {
head="Leth. Chappel +1",
legs="Leth. Fuseau +1",
})
enhancing_skill_potency = set_combine(enhancing_duration, {
main="Pukulatmuj +1",
sub="Secespita",
head="Befouled Crown",
hands={ name="Viti. Gloves +3", augments={'Enhancing Magic duration',}},
legs="Atrophy Tights +3",
neck="Melic Torque",
waist="Olympus Sash",
})
barelemental = set_combine(enhancing_duration, {
legs="Shedir Seraweels",
})
stoneskin = set_combine(enhancing_duration,{
legs="Shedir Seraweels",
})
gain_spells = set_combine(enhancing_duration,{
hands={ name="Viti. Gloves +3", augments={'Enhancing Magic duration',}},
})
protect_shell = set_combine(enhancing_duration, {
left_ring="Sheltered Ring",
})
aquaveil = set_combine(enhancing_duration,{
legs="Shedir Seraweels",
waist="Emphatikos Rope",
})
refresh = set_combine(enhancing_duration, {
body="Atrophy Tabard +3",
legs="Leth. Fuseau +1",
back="Grapevine Cape",
})
enspells = enhancing_skill_potency
cure_po = {
head={ name="Vanya Hood", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
body={ name="Chironic Doublet", augments={'Mag. Acc.+22 "Mag.Atk.Bns."+22','Enmity-1','CHR+7','Mag. Acc.+13','"Mag.Atk.Bns."+13',}},
hands={ name="Kaykaus Cuffs +1", augments={'MP+80','MND+12','Mag. Acc.+20',}},
legs="Atrophy Tights +3",
feet={ name="Kaykaus Boots", augments={'MP+60','"Cure" spellcasting time -5%','Enmity-5',}},
neck="Nuna Gorget +1",
left_ring="Haoma's Ring",
right_ring="Sirona's Ring",
back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','"Fast Cast"+10',}},
}
cure_po_aurora = set_combine(cure_po, {
main="Chatoyant Staff",
sub="Enki Strap",
waist="Hachirin-no-Obi",
back="Twilight Cape",
})
cursna = {
head={ name="Vanya Hood", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
feet="Gende. Galosh. +1",
neck="Malison Medallion",
left_ring="Haoma's Ring",
right_ring="Haoma's Ring",
}
chainspell = {
body={ name="Viti. Tabard +3", augments={'Enhances "Chainspell" effect',}},
}
TH = set_combine(idle, {
head="Wh. Rarab Cap +1",
waist="Chaac Belt",
legs={ name="Merlinic Shalwar", augments={'STR+10','Magic burst dmg.+3%','"Treasure Hunter"+2','Accuracy+7 Attack+7','Mag. Acc.+13 "Mag.Atk.Bns."+13',}},
})
ws_magic = set_combine(elemental, {})
tp = {
sub="Ammurapi Shield",
ammo="Ginsen",
head="Malignance Chapeau",
body="Malignance Tabard",
hands="Malignance gloves",
legs="Malignance Tights",
feet="Malignance Boots",
neck="Anu Torque",
waist="Windbuffet Belt +1",
left_ear="Cessance Earring",
right_ear="Sherida Earring",
left_ring="Chirich Ring",
right_ring="Petrov Ring",
back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10','Phys. dmg. taken-10%',}},
}
tp_single = set_combine(tp, {
main="crocea mors",
sub="Ammurapi Shield",
})
tp_savage_blade = set_combine(tp, {
main="naegling",
sub={ name="Ternion Dagger +1", augments={'Path: A',}},
})
tp_sanguine_blade = set_combine(tp, {
main="crocea mors",
sub="daybreak"
})
tp_aeolian_edge = set_combine(tp, {
sub={ name="Ternion Dagger +1", augments={'Path: A',}},
sub="daybreak"
})
tp_ae = set_combine(tp, {
main="Ceremonial Dagger",
sub="Ceremonial Dagger",
})
dtme_tp = set_combine(tp, {
head="Malignance Chapeau",
body="Malignance Tabard",
hands="Malignance gloves",
legs="Malignance Tights",
feet="Malignance Boots",
neck="Loricate Torque +1",
left_ring="Gelatinous Ring +1",
right_ring="Defending Ring",
})
base_physical_ws = {
ammo="Voluspa Tathlum",
head={ name="Viti. Chapeau +3", augments={'Enfeebling Magic duration','Magic Accuracy',}},
body={ name="Viti. Tabard +3", augments={'Enhances "Chainspell" effect',}},
hands="Atrophy Gloves +3",
legs="Jhakri Slops +2",
feet="Jhakri Pigaches +2",
neck="Fotia Gorget",
waist="Fotia Belt",
left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
right_ear="Sherida Earring",
left_ring="Epaminondas's Ring",
right_ring="Ilabrat Ring",
back={ name="Sucellos's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
}
savage_blade = set_combine(base_physical_ws, {
neck="Nuna Gorget +1",
waist={ name="Sailfi Belt +1", augments={'Path: A',}},
right_ear="Ishvara Earring",
right_ring="Rufescent Ring",
})
black_halo = savage_blade
base_elemental_ws = {
ammo="Pemphredo Tathlum",
head="Jhakri coronal +2",
body={ name="Chironic Doublet", augments={'Mag. Acc.+22 "Mag.Atk.Bns."+22','Enmity-1','CHR+7','Mag. Acc.+13','"Mag.Atk.Bns."+13',}},
hands="Jhakri Cuffs +2",
legs="Jhakri Slops +2",
feet={ name="Vitiation Boots +3", augments={'Immunobreak Chance',}},
neck="Fotia Gorget",
waist="Orpheus's Sash",
left_ear="Malignance Earring",
right_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
left_ring="freke ring",
right_ring="Epaminondas's Ring",
back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','Weapon skill damage +10%',}},
}
sanguine_blade = set_combine(base_elemental_ws, {
head="Pixie Hairpin +1",
neck="Sanctity Necklace",
right_ear="friomisi earring",
left_ring="Archon Ring",
})
--------------------------------------
-- Precast sets
--------------------------------------
-- Precast sets to enhance JAs
sets.precast.JA['Chainspell'] = chainspell
-- Fast cast sets for spells
sets.precast.FC = fast_cast
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = base_physical_ws
--for specifc ws
sets.precast.WS['Seraph Blade'] = base_elemental_ws
sets.precast.WS['Shining Blade'] = base_elemental_ws
sets.precast.WS['Aeolian Edge'] = base_elemental_ws
sets.precast.WS['Red Lotus Blade'] = base_elemental_ws
sets.precast.WS['Sanguine Blade'] = sanguine_blade
sets.precast.WS['Savage Blade'] = savage_blade
sets.precast.WS['Black Halo'] = black_halo
--------------------------------------
-- Midcast sets
--------------------------------------
-- Base fast recast for spells
sets.midcast.FastRecast = idle
sets.midcast['Elemental Magic'] = elemental
sets.midcast['Elemental Magic'].Helix = helix
--------------------------------------
-- enfeebling --
--------------------------------------
sets.midcast['Enfeebling Magic'] = maccu_white
sets.midcast.Silence = maccu_white
sets.midcast.Dia = maccu_white
sets.midcast.Dia.TH = set_combine(Dia, TH)
sets.midcast.Inundation = maccu_white
sets.midcast.Sleep = maccu_black
sets.midcast.Gravity = maccu_black
sets.midcast.Dispel = maccu_black
sets.midcast.Bind = maccu_black
sets.midcast.Break = maccu_black
sets.midcast.Slow = maccu_mind_potency
sets.midcast["Slow II"]= maccu_mind_potency
sets.midcast.Paralyze = maccu_mind_potency
sets.midcast["Paralyze II"] = maccu_mind_potency
sets.midcast.Blind = maccu_mind_potency
sets.midcast["Blind II"]= maccu_mind_potency
sets.midcast.Distract = maccu_skill_potency
sets.midcast["Distract II"] = maccu_skill_potency
sets.midcast["Distract III"] = maccu_skill_potency
sets.midcast.Frazzle = maccu_skill_potency
sets.midcast["Frazzle II"] = maccu_skill_potency
sets.midcast["Frazzle III"] = maccu_skill_potency
sets.midcast.Addle = maccu_skill_potency
sets.midcast["Addle II"] = maccu_skill_potency
--------------------------------------
-- enhancing --
--------------------------------------
sets.midcast.enhancing_duration_others = enhancing_duration_others
sets.midcast['Enhancing Magic'] = enhancing_duration
-- handle some bugged spells here, need to specifically assign them
sets.midcast.Haste = enhancing_duration
sets.midcast.Regen = enhancing_duration
sets.midcast.Temper = enhancing_skill_potency
sets.midcast.Stoneskin = stoneskin
sets.midcast.Protect = protect_shell
sets.midcast.Shell = protect_shell
sets.midcast.Aquaveil = aquaveil
sets.midcast.Refresh = refresh
sets.midcast.Enfire = enspells
sets.midcast.Enblizzard = enspells
sets.midcast.Enaero = enspells
sets.midcast.Enstone = enspells
sets.midcast.Enthunder = enspells
sets.midcast.Enwater = enspells
sets.midcast['Gain-STR'] = gain_spells
sets.midcast['Gain-DEX'] = gain_spells
sets.midcast['Gain-VIT'] = gain_spells
sets.midcast['Gain-AGI'] = gain_spells
sets.midcast['Gain-INT'] = gain_spells
sets.midcast['Gain-MND'] = gain_spells
sets.midcast['Gain-CHR'] = gain_spells
sets.midcast.Barstone = barelemental
sets.midcast.Barwater = barelemental
sets.midcast.Baraero = barelemental
sets.midcast.Barfire = barelemental
sets.midcast.Barblizzard = barelemental
sets.midcast.Barthunder = barelemental
sets.midcast.Barstonra = barelemental
sets.midcast.Barwatera = barelemental
sets.midcast.Baraera = barelemental
sets.midcast.Barfira = barelemental
sets.midcast.Barblizzara = barelemental
sets.midcast.Barthundra = barelemental
--------------------------------------
-- dark magic --
--------------------------------------
sets.midcast['Dark Magic'] = dark_magic
sets.midcast['Dark Magic'].TH = set_combine(dark_magic, TH)
--------------------------------------
-- cure related --
--------------------------------------
sets.midcast.Cure = cure_po
sets.midcast.Curaga = cure_po
sets.midcast.cure_po_aurora = cure_po_aurora
sets.midcast.Cursna = cursna
--------------------------------------
-- Idle/resting/defense/etc sets
--------------------------------------
-- Resting sets
sets.resting = idle
-- Idle sets
sets.idle = idle
sets.idle.IdleSupport = idle_support
sets.idle.IdleDTME = dtme_idle
--------------------------------------
-- Engaged sets
--------------------------------------
-- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
-- sets if more refined versions aren't defined.
-- If you create a set with both offense and defense modes, the offense mode should be first.
-- EG: sets.engaged.Dagger.Accuracy.Evasion
-- Normal melee group
sets.engaged = tp_single
sets.engaged.SavageBlade = tp_savage_blade
sets.engaged.SanguineBlade = tp_sanguine_blade
sets.engaged.AeolianEdge = tp_aeolian_edge
sets.engaged.AEOnly = tp_ae
sets.engaged.DTME = dtme_tp
sets.engaged.TH = TH
--------------------------------------
-- Custom buff sets
--------------------------------------
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
function job_aftercast(spell, action, spellMap, eventArgs)
end
-- 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 composure is up and buffing other players, use specific set
if spell.skill == 'Enhancing Magic' and buffactive.composure and spell.target.type == 'PLAYER' then
equip(sets.midcast.enhancing_duration_others)
-- if curing and aurorastorm is up, use aurorastorm set
elseif spell.skill == 'Healing Magic' and buffactive.Aurorastorm then
if spell.english == 'Cure' or spell.english == 'Cure II' or spell.english == 'Cure III' or spell.english == 'Cure IV' or spell.english == 'Curaga' or spell.english == 'Curaga II' then
equip(sets.midcast.cure_po_aurora)
end
end
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for non-casting events.
-------------------------------------------------------------------------------------------------------------------
-- Called when a player gains or loses a buff.
-- buff == buff gained or lost
-- gain == true if the buff was gained, false if it was lost.
function job_buff_change(buff, gain)
end
function job_state_change(stateField, newValue, oldValue)
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------
function job_get_spell_map(spell, default_spell_map)
end
-- Called by the 'update' self-command.
function job_update(cmdParams, eventArgs)
classes.CustomIdleGroups:clear()
end
-- Function to display the current relevant user state when doing an update.
function display_current_job_state(eventArgs)
display_current_caster_state()
eventArgs.handled = true
end
-------------------------------------------------------------------------------------------------------------------
-- Utility functions specific to this job.
-------------------------------------------------------------------------------------------------------------------
-- Select default macro book on initial load or subjob change.
function select_default_macro_book()
set_macro_page(1, 16)
end