-------------------------------------------------------------------------------------------------------------------
-- 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()
state.Buff.Hasso = buffactive.Hasso or false
state.Buff.Seigan = buffactive.Seigan or false
state.Buff.Sekkanoki = buffactive.Sekkanoki or false
state.Buff.Sengikori = buffactive.Sengikori or false
state.Buff['Meikyo Shisui'] = buffactive['Meikyo Shisui'] or false
end
-------------------------------------------------------------------------------------------------------------------
-- User setup functions for this job. Recommend that these be overridden in a sidecar file.
-------------------------------------------------------------------------------------------------------------------
-- Setup vars that are user-dependent.
function user_setup()
state.OffenseMode
ptions('Normal', 'LowAcc', 'MidAcc', 'MaxAcc')
state.HybridMode
ptions('Normal', 'LightPDT', 'FullPDT')
state.WeaponskillMode
ptions('Normal', 'LowAcc', 'MaxAcc')
state.PhysicalDefenseMode
ptions('PDT', 'Reraise')
update_combat_form()
-- Additional local binds
send_command('bind ^` input /ja "Hasso" <me>')
send_command('bind !` input /ja "Seigan" <me>')
select_default_macro_book()
end
-- Called when this job file is unloaded (eg: job change)
function user_unload()
send_command('unbind ^`')
send_command('unbind !-')
end
-- Define sets and vars used by this job file.
function init_gear_sets()
--------------------------------------
-- Start defining the sets
--------------------------------------
-- Precast Sets
-- Precast sets to enhance JAs
sets.precast.JA.Meditate = {head="Wakido Kabuto",hands="Sakonji Kote +1",back="Smertrios's Mantle"}
sets.precast.JA['Warding Circle'] = {head="Myochin Kabuto"}
sets.precast.JA['Blade Bash'] = {hands="Sakonji Kote +1"}
sets.precast.JA.Hasso = {hands="Wakido Kote +3"}
-- Waltz set (chr and vit)
sets.precast.Waltz = {ammo="Sonia's Plectrum",
head="Yaoyotl Helm",
body="Otronif Harness +1",hands="Buremte Gloves",ring1="Spiral Ring",
back="Iximulew Cape",waist="Caudata Belt",legs="Karieyh Brayettes +1",feet="Otronif Boots +1"}
-- Don't need any special gear for Healing Waltz.
sets.precast.Waltz['Healing Waltz'] = {}
-- Weaponskill sets
-- Default set for any weaponskill that isn't any more specifically defined
sets.precast.WS = {}
sets.precast.WS.LowAcc = {}
sets.precast.WS.MaxAcc = {}
-- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
sets.precast.WS['Savage Blade'] = set_combine(sets.precast.WS, {neck="Fotia Gorget"})
sets.precast.WS['Savage Blade'].LowAcc = set_combine(sets.precast.WS.LowAcc, {neck="Fotia Gorget"})
sets.precast.WS['Savage Blade'].MaxAcc = set_combine(sets.precast.WS.MaxACC, {waist="Fotia Belt"})
-- Midcast Sets
sets.midcast.FastRecast = {
head="Yaoyotl Helm",
body="Otronif Harness +1",hands="Otronif Gloves",
legs="Phorcys Dirs",feet="Otronif Boots +1"}
-- Sets to return to when not performing an action.
-- Resting sets
sets.resting = {neck="Wiglen Gorget",ring1="Sheltered Ring",ring2="Paguroidea Ring"}
-- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
sets.idle.Town = {
ammo="Staunch Tathlum +1",
head="Twilight Helm",
body="Hiza. Haramaki +1",
hands={ name="Sakonji Kote +1", augments={'Enhances "Blade Bash" effect',}},
legs="Arjuna Breeches",
feet="Danzo Sune-Ate",
neck="Sanctity Necklace",
waist="Flume Belt",
left_ear="Odnowa Earring",
right_ear="Odnowa Earring +1",
left_ring="Sheltered Ring",
right_ring="Paguroidea Ring",
back="Shadow Mantle"}
sets.idle.Field = {
ammo="Staunch Tathlum +1",
head="Twilight Helm",
body="Hiza. Haramaki +1",
hands={ name="Sakonji Kote +1", augments={'Enhances "Blade Bash" effect',}},
legs="Arjuna Breeches",
feet="Danzo Sune-Ate",
neck="Sanctity Necklace",
waist="Flume Belt",
left_ear="Odnowa Earring",
right_ear="Odnowa Earring +1",
left_ring="Sheltered Ring",
right_ring="Paguroidea Ring",
back="Shadow Mantle"}
sets.idle.Weak = {
ammo="Staunch Tathlum +1",
head="Twilight Helm",
body="Twilight Mail",
hands={ name="Sakonji Kote +1", augments={'Enhances "Blade Bash" effect',}},
legs="Arjuna Breeches",
feet="Danzo Sune-Ate",
neck="Sanctity Necklace",
waist="Flume Belt",
left_ear="Odnowa Earring",
right_ear="Odnowa Earring +1",
left_ring="Sheltered Ring",
right_ring="Paguroidea Ring",
back="Shadow Mantle"}
-- Defense sets
sets.defense.PDT = {
ammo="Staunch Tathlum +1",
head="Ken. Jinpachi",
body="Wakido Domaru +3",
hands="Sakonji Kote +1",
legs="Ken. Hakama",
feet="Plumb Boots",
neck="Loricate Torque +1",
waist="Flume Belt +1",
left_ear="Cessance Earring",
right_ear="Telos Earring",
left_ring="Defending Ring",
right_ring="Dark Ring",
back="Moonbeam Cape",
}
sets.defense.Reraise = {
head="Twilight Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Twilight Mail",hands="Buremte Gloves",ring1="Defending Ring",ring2="Paguroidea Ring",
back="Shadow Mantle",waist="Flume Belt",legs="Karieyh Brayettes +1",feet="Otronif Boots +1"}
sets.defense.MDT = {ammo="Demonry Stone",
head="Yaoyotl Helm",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
body="Otronif Harness +1",hands="Otronif Gloves",ring1="Defending Ring",ring2="Shadow Ring",
back="Engulfer Cape",waist="Flume Belt",legs="Karieyh Brayettes +1",feet="Otronif Boots +1"}
sets.Kiting = {feet="Danzo Sune-ate"}
sets.Reraise = {head="Twilight Helm",body="Twilight Mail"}
-- 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
-- Delay 450 GK, 25 Save TP => 65 Store TP for a 5-hit (25 Store TP in gear)
sets.engaged = {
ammo="Ginsen",
head="Flam. Zucchetto +2",
body="Kasuga domaru +1",
hands="Wakido kote +3",
legs="Ryuo hakama +1",
feet="Ryuo Sune-Ate +1",
neck="Moonlight nodowa",
waist="Ioskeha Belt",
left_ear="Telos Earring",
right_ear="Dedition Earring",
left_ring="Niqmaddu Ring",
right_ring="Flamma Ring",
back={ name="Smertrios's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}},
}
sets.engaged.LowAcc = {
ammo="Ginsen",
head="Flam. Zucchetto +2",
body="Kendatsuba samue",
hands="Wakido Kote +3",
legs="Kendatsuba hakama",
feet="Flam. gambieras +2",
neck="Moonlight Nodowa",
waist="Ioskeha Belt",
left_ear="Cessance Earring",
right_ear="Telos Earring",
left_ring="Niqmaddu Ring",
right_ring="Flamma Ring",
back={ name="Smertrios's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}},
}
sets.engaged.MidAcc = {
ammo="Ginsen",
head="Flam. Zucchetto +2",
body="Kendatsuba samue",
hands="Wakido Kote +3",
legs="Kendatsuba hakama",
feet="Flam. gambieras +2",
neck="Moonlight Nodowa",
waist="Ioskeha Belt",
left_ear="Cessance Earring",
right_ear="Telos Earring",
left_ring="Niqmaddu Ring",
right_ring="Flamma Ring",
back={ name="Smertrios's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}},
}
sets.engaged.MaxAcc = {
ammo="Ginsen",
head="Flam. Zucchetto +2",
body="Kendatsuba samue",
hands="Wakido Kote +3",
legs="Kendatsuba hakama",
feet="Flam. gambieras +2",
neck="Moonlight Nodowa",
waist="Ioskeha Belt",
left_ear="Cessance Earring",
right_ear="Telos Earring",
left_ring="Niqmaddu Ring",
right_ring="Flamma Ring",
back={ name="Smertrios's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10',}},
}
sets.engaged.PDT = {ammo="Staunch Tathlum +1",
head="Ken. Jinpachi",
body="Wakido Domaru +3",
hands="Wakido Kote +3",
legs="Ken. Hakama",
feet="Ryuo Sune-Ate +1",
neck="Loricate Torque +1",
waist="Ioskeha Belt",
left_ear="Cessance Earring",
right_ear="Telos Earring",
left_ring="Defending Ring",
right_ring={ name="Dark Ring", augments={'Magic dmg. taken -5%','Phys. dmg. taken -5%',}},
back="Moonbeam Cape",
}
sets.engaged.LowAcc.PDT = {ammo="Staunch Tathlum +1",
head="Ken. Jinpachi",
body="Wakido Domaru +3",
hands="Wakido Kote +3",
legs="Ken. Hakama",
feet="Ryuo Sune-Ate +1",
neck="Loricate Torque +1",
waist="Ioskeha Belt",
left_ear="Cessance Earring",
right_ear="Telos Earring",
left_ring="Defending Ring",
right_ring={ name="Dark Ring", augments={'Magic dmg. taken -5%','Phys. dmg. taken -5%',}},
back="Moonbeam Cape",
}
sets.engaged.MidAcc.PDT = {ammo="Staunch Tathlum +1",
head="Ken. Jinpachi",
body="Wakido Domaru +3",
hands="Wakido Kote +3",
legs="Ken. Hakama",
feet="Ryuo Sune-Ate +1",
neck="Loricate Torque +1",
waist="Ioskeha Belt",
left_ear="Cessance Earring",
right_ear="Telos Earring",
left_ring="Defending Ring",
right_ring={ name="Dark Ring", augments={'Magic dmg. taken -5%','Phys. dmg. taken -5%',}},
back="Moonbeam Cape",
}
sets.engaged.MaxAcc.PDT = {ammo="Staunch Tathlum +1",
head="Ken. Jinpachi",
body="Wakido Domaru +3",
hands="Wakido Kote +3",
legs="Ken. Hakama",
feet="Ryuo Sune-Ate +1",
neck="Loricate Torque +1",
waist="Ioskeha Belt",
left_ear="Cessance Earring",
right_ear="Telos Earring",
left_ring="Defending Ring",
right_ring={ name="Dark Ring", augments={'Magic dmg. taken -5%','Phys. dmg. taken -5%',}},
back="Moonbeam Cape",
}
sets.engaged.Reraise = {}
sets.engaged.LowAcc.Reraise = {}
sets.engaged.MidAcc.Reraise = {}
sets.engaged.MaxAcc.Reraise = {}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
-- Set eventArgs.handled to true if we don't want any automatic target handling to be done.
function job_pretarget(spell, action, spellMap, eventArgs)
if spell.type == 'WeaponSkill' then
-- Change any GK weaponskills to polearm weaponskill if we're using a polearm.
if player.equipment.main=='Quint Spear' or player.equipment.main=='Quint Spear' then
if spell.english:startswith("Tachi:") then
send_command('@input /ws "Penta Thrust" '..spell.target.raw)
eventArgs.cancel = true
end
end
end
end
-- Run after the default precast() is done.
-- eventArgs is the same one used in job_precast, in case information needs to be persisted.
function job_post_precast(spell, action, spellMap, eventArgs)
if spell.type:lower() == 'weaponskill' then
if state.Buff.Sekkanoki then
equip(sets.buff.Sekkanoki)
end
if state.Buff.Sengikori then
equip(sets.buff.Sengikori)
end
if state.Buff['Meikyo Shisui'] then
equip(sets.buff['Meikyo Shisui'])
end
end
end
-- 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)
-- Effectively lock these items in place.
if state.HybridMode.value == 'Reraise' or
(state.DefenseMode.value == 'Physical' and state.PhysicalDefenseMode.value == 'Reraise') then
equip(sets.Reraise)
end
end
-------------------------------------------------------------------------------------------------------------------
-- User code that supplements standard library decisions.
-------------------------------------------------------------------------------------------------------------------
-- Called by the 'update' self-command, for common needs.
-- Set eventArgs.handled to true if we don't want automatic equipping of gear.
function job_update(cmdParams, eventArgs)
update_combat_form()
end
-- Set eventArgs.handled to true if we don't want the automatic display to be run.
function display_current_job_state(eventArgs)
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, 1)
end