Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -------------------------------------------------------------------------------------------------------------------
- -- Initialization function that defines sets and variables to be used.
- -------------------------------------------------------------------------------------------------------------------
- -- IMPORTANT: Make sure to also get the Mote-Include.lua file (and its supplementary files) to go with this.
- -- Initialization function for this job file.
- function get_sets()
- -- Load and initialize the include file.
- include('Mote-Include.lua')
- send_command('input /macro book 9;wait .1;input /macro set 2')
- end
- -- Setup vars that are user-independent.
- function job_setup()
- state.Buff.Migawari = buffactive.migawari or false
- state.Buff.Doomed = buffactive.doomed or false
- determine_haste_group()
- end
- -- Setup vars that are user-dependent. Can override this function in a sidecar file.
- function user_setup()
- -- Options: Override default values
- options.OffenseModes = {'Normal', 'Acc'}
- options.DefenseModes = {'Normal', 'Evasion', 'PDT'}
- options.WeaponskillModes = {'Normal', 'Acc', 'Att', 'Mod'}
- options.CastingModes = {'Normal'}
- options.IdleModes = {'Normal'}
- options.RestingModes = {'Normal'}
- options.PhysicalDefenseModes = {'PDT', 'Evasion'}
- options.MagicalDefenseModes = {'MDT'}
- state.Defense.PhysicalMode = 'PDT'
- -- select_default_macro_book()
- end
- -- Called when this job file is unloaded (eg: job change)
- function file_unload()
- if binds_on_unload then
- binds_on_unload()
- end
- 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['Mijin Gakure'] = {legs="Mochizuki Hakama +1"}
- -- Waltz set (chr and vit)
- sets.precast.Waltz = {ammo="Sonia's Plectrum",
- head="Felistris Mask",
- body="Otronif Harness +1",hands="Otronif Gloves +1",
- legs="Nahtirah Trousers",feet="Otronif Boots +1",
- waist="Caudata Belt",back="Iximulew Cape"}
- -- Don't need any special gear for Healing Waltz.
- sets.precast.Waltz['Healing Waltz'] = {}
- -- Set for acc on steps, since Yonin drops acc a fair bit
- sets.precast.Step = {
- head="Whirlpool Mask",
- body="Mochizuki Chainmail +1",hands="Otronif Gloves +1",
- legs="Otronif Brais +1",feet="Otronif Boots +1",
- neck="Ej Necklace +1",waist="Anguinus Belt",ring1="Beeline Ring",
- back="Letalis Mantle"}
- -- Fast cast sets for spells
- sets.precast.FC = {ammo="Impatiens",body="Dread Jupon",hands="Thaumas Gloves",neck="Orunmila's Torque",ear2="Loquacious Earring",feet="Suzaku's Sune-ate",ring1="Prolix Ring",ring2="Veneficium Ring"}
- sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {body="Mochizuki Chainmail +1",neck="Magoraga Beads"})
- -- Weaponskill sets
- -- Default set for any weaponskill that isn't any more specifically defined
- sets.precast.WS = {ammo="Bomb Core",
- head="Felistris Mask",body="Mochizuki Chainmail +1",hands="Otronif Gloves +1",
- legs="Otronif Brais +1",feet="Otronif Boots +1",
- neck=gear.ElementalGorget,waist="Windbuffet Belt",
- ear1="Brutal Earring",ear2="Moonshade Earring",
- ring1="Epona's Ring",ring2="Rajas Ring",
- back="Atheling Mantle"}
- -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
- sets.precast.WS['Blade: Jin'] = set_combine(sets.precast.WS, {ammo="Yetshila +1",head="Uk'uxkaj Cap",back="Rancorous Mantle"})
- sets.precast.WS['Blade: Hi'] = set_combine(sets.precast.WS, {ammo="Yetshila +1",head="Uk'uxkaj Cap",body="Dread Jupon",hands="Seiryu's Kote",legs="Mochizuki Hakama +1",feet="Mochizuki Kyahan +1",
- ring2="Garuda Ring +1",back="Rancorous Mantle"})
- sets.precast.WS['Blade: Hi'].Mod = set_combine(sets.precast.WS['Blade: Hi'], {feet="Vanir Boots"})
- sets.precast.WS['Blade: Shun'] = set_combine(sets.precast.WS, {legs="Mochizuki Hakama +1"})
- sets.precast.WS['Blade: Kamu'] = set_combine(sets.precast.WS, {legs="Mochizuki Hakama +1"})
- sets.precast.WS['Blade: Kamu'].Mod = set_combine(sets.precast.WS['Blade: Kamu'], {legs="Mochizuki Hakama +1"})
- sets.precast.WS['Blade: Ku'] = set_combine(sets.precast.WS, {legs="Mochizuki Hakama +1"})
- sets.precast.WS['Blade: Ku'].Mod = set_combine(sets.precast.WS['Blade: Ku'], {legs="Mochizuki Hakama +1"})
- sets.precast.WS['Aeolian Edge'] = {
- head="Felistris Mask",
- body="Mochizuki Chainmail +1",hands="Otronif Gloves +1",
- legs="Otronif Brais +1",feet="Otronif Boots +1",
- neck="Stoicheion Medal",waist=gear.ElementalBelt,
- ear1="Friomisi Earring",ear2="Hecate's Earring",
- ring1="Epona's Ring",ring2="Rajas Ring",
- back="Toro Cape"}
- -- Midcast Sets
- sets.midcast.FastRecast = {
- head="Felistris Mask",
- body="Dread Jupon",hands="Mocchizuki Tekko +1",
- legs="Otronif Brais +1",feet="Otronif Boots +1",
- neck="Orunmila's Torque",waist="Twilight Belt",
- ear2="Loquacious Earring",back="Mujin Mantle"}
- -- any ninjutsu cast on self
- sets.midcast.SelfNinjutsu = set_combine(sets.midcast.FastRecast, {neck="Torero Torque",body="Mochizuki Chainmail +1",ring1="Beeline Ring",back="Ix Cape"})
- sets.midcast.Utsusemi = set_combine(sets.midcast.SelfNinjutsu, {feet="Iga Kyahan +2"})
- -- any ninjutsu cast on enemies
- sets.midcast.Ninjutsu = {
- head="Lithelimb Cap",
- --head="Hachiya Hatsuburi +1",
- body="Otronif Harness +1",hands="Mocchizuki Tekko +1",
- legs="Spry Tights",feet="Hachiya Kyahan +1",
- neck="Stoicheion Medal",waist="Cetl Belt",
- ear1="Loquacious Earring",
- --ear1="Lifestorm Earring",ear2="Psystorm Earring",
- -- ear1="Friomisi Earring",ear2="Hecate's Earring",
- ring1="Icesoul Ring",
- back="Toro Cape"}
- --sets.midcast.Ninjutsu.Resistant = set_combine(sets.midcast.Ninjutsu, {ear1="Lifestorm Earring",ear2="Psystorm Earring"})
- -- Sets to return to when not performing an action.
- -- Resting sets
- sets.resting = {head="Ocelomeh Headpiece +1",neck="Wiglen Gorget",body="Khepri Jacket",
- 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 = {
- head="Ocelomeh Headpiece +1",body="Khepri Jacket",hands="Otronif Gloves +1",
- legs="Hachiya Hakama +1",feet="Danzo sune-ate",
- neck="Wiglen Gorget",waist="Flume Belt",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Shadow Mantle"}
- sets.idle.Town = {ammo="Yetshila +1",
- head="Ptica Headgear",
- body="Hachiya Chainmail +1",hands="Otronif Gloves +1",
- legs="Mochizuki Hakama +1",feet="Danzo sune-ate",
- neck="Asperity Necklace",waist="Shetal Stone",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",ring1="Epona's Ring",ring2="Oneiros Ring",
- back="Atheling Mantle"}
- sets.idle.Weak = {
- head="Whirlpool Mask",body="Hachiya Chainmail +1",hands="Otronif Gloves",
- legs="Hachiya Hakama",feet="Danzo sune-ate",
- neck="Wiglen Gorget",waist="Shetal Stone",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Shadow Mantle"}
- -- Defense sets
- sets.defense.Evasion = {
- head="Felistris Mask",body="Otronif Harness +1",hands="Otronif Gloves +1",
- legs="Otronif Brais +1",feet="Otronif Boots +1",
- neck="Torero Torque",waist="Flume Belt",
- ring1="Beeline Ring",ring2="Defending Ring",
- back="Ik Cape"}
- sets.defense.PDT = {ammo="Iron Gobbet",
- head="Lithelimb Cap",
- body="Otronif Harness +1",hands="Otronif Gloves +1",
- legs="Otronif Brais +1",feet="Otronif Boots +1",
- neck="Twilight Torque",waist="Flume Belt",
- ring1="Patricius Ring",ring2="Defending Ring",
- back="Mollusca Mantle"}
- sets.defense.MDT = {ammo="Vanir Battery",
- head="Lithelimb Cap",
- body="Otronif Harness +1",hands="Otronif Gloves +1",
- legs="Otronif Brais +1",
- feet={ name="Otronif Boots +1", augments={'Phys. dmg. taken -3%','Magic dmg. taken -3%','Crit.hit rate+2'}},
- neck="Twilight Torque",waist="Cetl Belt",
- ring1="Shadow Ring",ring2="Defending Ring",
- back="Engulfer Cape"}
- sets.DayMovement = {feet="Danzo sune-ate"}
- sets.NightMovement = {feet="Hachiya Kyahan +1"}
- sets.Kiting = select_movement()
- -- 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 (no haste)
- sets.engaged = {ammo="Yetshila +1",
- head="Ptica Headgear",
- body="Hachiya Chainmail +1",hands="Otronif Gloves +1",
- legs="Mochizuki Hakama +1",feet="Otronif Boots +1",
- neck="Asperity Necklace",waist="Shetal Stone",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",ring1="Epona's Ring",ring2="Oneiros Ring",
- back="Atheling Mantle"}
- sets.engaged.Acc = {ammo="Yetshila +1",
- head="Whirlpool Mask",
- body="Hachiya Chainmail +1",hands="Otronif Gloves",
- legs="Hachiya Hakama",feet="Manibozho Boots",
- neck="Asperity Necklace",waist="Hurch'lan Sash",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Epona's Ring",ring2="Oneiros Ring",
- back="Letalis Mantle"}
- sets.engaged.Evasion = {ammo="Yetshila +1",
- head="Felistris Mask",
- body="Hachiya Chainmail +1",hands="Otronif Gloves",
- legs="Hachiya Hakama",feet="Otronif Boots +1",
- neck="Torero Torque",waist="Shetal Stone",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Beeline Ring",ring2="Epona's Ring",
- back="Ik Cape"}
- sets.engaged.Acc.Evasion = {ammo="Yetshila +1",
- head="Whirlpool Mask",body="Otronif Harness",hands="Otronif Gloves",
- legs="Hachiya Hakama",feet="Otronif Boots +1",
- neck="Torero Torque",waist="Hurch'lan Sash",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Beeline Ring",ring2="Epona's Ring",
- back="Letalis Mantle"}
- sets.engaged.PDT = {ammo="Yetshila +1",
- head="Lithelimb Cap",body="Otronif Harness",hands="Otronif Gloves +1",
- legs="Hachiya Hakama",feet="Otronif Boots +1",
- neck="Twilight Torque",waist="Shetal Stone",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Epona's Ring",ring2="Defending Ring",
- back="Iximulew Cape"}
- sets.engaged.Acc.PDT = {ammo="Yetshila +1",
- head="Lithelimb Cap",body="Otronif Harness +1",hands="Otronif Gloves +1",
- legs="Otronif Brais +1",feet="Otronif Boots +1",
- neck="Twilight Torque",waist="Hurch'lan Sash",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Epona's Ring",ring2="Patricius Ring",
- back="Letalis Mantle"}
- -- Custom melee group: High Haste (~20% DW)
- sets.engaged.HighHaste = {ammo="Yetshila +1",
- head="Felistris Mask",body="Thaumas Coat",hands="Otronif Gloves +1",
- legs="Mochizuki Hakama +1",feet="Otronif Boots +1",
- neck="Asperity Necklace",waist="Shetal Stone",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Epona's Ring",ring2="Oneiros Ring",
- back="Atheling Mantle"}
- sets.engaged.Acc.HighHaste = {ammo="Yetshila +1",
- head="Whirlpool Mask",body="Hachiya Chainmail +1",hands="Otronif Gloves +1",
- legs="Hachiya Hakama +1",feet="Otronif Boots +1",
- neck="Asperity Necklace",waist="Hurch'lan Sash",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Epona's Ring",ring2="Oneiros Ring",
- back="Letalis Mantle"}
- sets.engaged.Evasion.HighHaste = {ammo="Yetshila +1",
- head="Whirlpool Mask",body="Hachi. Chain. +1",hands="Otronif Gloves +1",
- legs="Hachi. Hakama +1",feet="Otronif Boots +1",
- neck="Torero Torque",waist="Shetal Stone",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Beeline Ring",ring2="Epona's Ring",
- back="Ik Cape"}
- sets.engaged.Acc.Evasion.HighHaste = {ammo="Yetshila +1",
- head="Whirlpool Mask",body="Otronif Harness +1",hands="Otronif Gloves +1",
- legs="Mochi. Hakama +1",feet="Otronif Boots +1",
- neck="Torero Torque",waist="Hurch'lan Sash",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Epona's Ring",ring2="Beeline Ring",
- back="Letalis Mantle"}
- sets.engaged.PDT.HighHaste = {ammo="Yetshila +1",
- head="Lithelimb Cap",body="Otronif Harness +1",hands="Otronif Gloves +1",
- legs="Mochi. Hakama +1",feet="Otronif Boots +1",
- neck="Twilight Torque",waist="Shetal Stone",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Epona's Ring",ring2="Defending Ring",
- back="Iximulew Cape"}
- sets.engaged.Acc.PDT.HighHaste = {ammo="Yetshila +1",
- head="Lithelimb Cap",body="Otronif Harness +1",hands="Otronif Gloves +1",
- legs="Otronif Brais +1",feet="Otronif Boots +1",
- neck="Twilight Torque",waist="Hurch'lan Sash",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Epona's Ring",ring2="Defedning Ring",
- back="Letalis Mantle"}
- -- Custom melee group: Embrava Haste (7% DW)
- sets.engaged.EmbravaHaste = {ammo="Yetshila +1",
- head="Ptica Headgear",body="Thaumas Coat",hands="Otronif Gloves +1",
- legs="Otronif Brais +1",feet="Otronif Boots +1",
- neck="Asperity Necklace",waist="Windbuffet Belt",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Epona's Ring",ring2="Oneiros Ring",
- back="Atheling Mantle"}
- sets.engaged.Acc.EmbravaHaste = {ammo="Yetshila +1",
- head="Whirlpool Mask",body="Otronif Harness +1",hands="Otronif Gloves +1",
- legs="Otronif Brais +1",feet="Otronif Boots +1",
- neck="Asperity Necklace",waist="Hurch'lan Sash",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Epona's Ring",ring2="Oneiros Ring",
- back="Letalis Mantle"}
- sets.engaged.Evasion.EmbravaHaste = {ammo="Yetshila +1",
- head="Felistris Mask",body="Otronif Harness +1",hands="Otronif Gloves +1",
- legs="Hachiya Hakama +1",feet="Otronif Boots +1",
- neck="Torero Torque",waist="Shetal Stone",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Epona's Ring",ring2="Beeline Ring",
- back="Ik Cape"}
- sets.engaged.Acc.Evasion.EmbravaHaste = {ammo="Yetshila +1",
- head="Lithelimb Cap",body="Otronif Harness +1",hands="Otronif Gloves +1",
- legs="Hachiya Hakama +1",feet="Otronif Boots +1",
- neck="Torero Torque",waist="Hurch'lan Sash",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Epona's Ring",ring2="Beeline Ring",
- back="Letalis Mantle"}
- sets.engaged.PDT.EmbravaHaste = {ammo="Yetshila +1",
- head="Lithelimb Cap",body="Otronif Harness +1",hands="Otronif Gloves +1",
- legs="Otronif Brais +1",feet="Otronif Boots +1",
- neck="Twilight Torque",waist="Shetal Stone",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Epona's Ring",ring2="Defending Ring",
- back="Iximulew Cape"}
- sets.engaged.Acc.PDT.EmbravaHaste = {ammo="Yetshila +1",
- head="Lithelimb Cap",body="Otronif Harness +1",hands="Otronif Gloves +1",
- legs="Otronif Brais +1",feet="Otronif Boots +1",
- neck="Twilight Torque",waist="Hurch'lan Sash",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Epona's Ring",ring2="Patricius Ring",
- back="Letalis Mantle"}
- -- Custom melee group: Max Haste (0% DW)
- sets.engaged.MaxHaste = {ammo="Yetshila +1",
- head="Ptica Headgear",
- --head="Felistris Mask",
- body="Thaumas Coat",hands="Otronif Gloves +1",
- legs="Mochizuki Hakama +1",
- --legs="Otronif Brais +1",
- feet="Otronif Boots +1",
- neck="Asperity Necklace",
- waist="Windbuffet Belt",
- --waist="Shetal Stone",
- --ear1="Brutal Earring",ear2="Tripudio Earring",
- ear1="Dudgeon Earring",ear2="Heartseeker Earring",
- ring1="Epona's Ring",ring2="Oneiros Ring",
- back="Atheling Mantle"}
- -- {ammo="Yetshila +1",
- -- head="Felistris Mask",body="Thaumas Coat",hands="Otronif Gloves +1",
- -- legs="Otronif Brais +1",feet="Otronif Boots +1",
- -- neck="Asperity Necklace",waist="Windbuffet Belt",
- -- ear1="Brutal Earring",ear2="Trux Earring",
- -- ring1="Epona's Ring",ring2="Oneiros Ring",
- -- back="Atheling Mantle"}
- sets.engaged.Acc.MaxHaste = {ammo="Yetshila +1",
- head="Whirlpool Mask",body="Mes. Haubergeon",hands="Otronif Gloves +1",
- legs="Hachi. Hakama +1",feet="Otronif Boots +1",
- neck="Asperity Necklace",waist="Anguinus Belt",
- ear1="Heartseeker Earring",ear2="Steelflash Earring",
- ring1="Epona's Ring",ring2="Oneiros Ring",
- back="Letalis Mantle"}
- sets.engaged.Evasion.MaxHaste = {ammo="Yetshila +1",
- head="Whirlpool Mask",body="Otronif Harness +1",hands="Otronif Gloves +1",
- legs="Hachiya Hakama",feet="Otronif Boots +1",
- neck="Torero Torque",waist="Shetal Stone",
- ear1="Bladeborn Earring",ear2="Steelflash Earring",
- ring1="Epona's Ring",ring2="Beeline Ring",
- back="Ik Cape"}
- sets.engaged.Acc.Evasion.MaxHaste = {ammo="Yetshila +1",
- head="Mochi. Hatsuburi",body="Otronif Harness +1",hands="Otronif Gloves +1",
- legs="Hachiya Hakama +1",feet="Otronif Boots +1",
- neck="Torero Torque",waist="Hurch'lan Sash",
- ear1="Bladeborn Earring",ear2="Steelflash Earring",
- ring1="Epona's Ring",ring2="Beeline Ring",
- back="Letalis Mantle"}
- sets.engaged.PDT.MaxHaste = {ammo="Yetshila +1",
- head="Lithelimb Cap",body="Otronif Harness +1",hands="Otronif Gloves +1",
- legs="Otronif Brais +1",feet="Otronif Boots +1",
- neck="Twilight Torque",waist="Shetal Stone",
- ear1="Bladeborn Earring",ear2="Steelflash Earring",
- ring1="Epona's Ring",ring2="Defending Ring",
- back="Iximulew Cape"}
- sets.engaged.Acc.PDT.MaxHaste = {ammo="Yetshila +1",
- head="Lithelimb Cap",
- body="Otronif Harness +1",hands="Otronif Gloves +1",
- legs="Otronif Brais +1",feet="Otronif Boots +1",
- neck="Twilight Torque",waist="Hurch'lan Sash",
- ear1="Heartseeker Earring",ear2="Steelflash Earring",
- ring1="Epona's Ring",ring2="Patricius",
- back="Letalis Mantle"}
- sets.buff.Migawari = {body="Iga Ningi +2"}
- sets.buff.Doomed = {ring2="Saida Ring"}
- sets.buff.Yonin = {}
- sets.buff.Innin = {}
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks that are called to process player actions at specific points in time.
- -------------------------------------------------------------------------------------------------------------------
- -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
- -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
- function job_precast(spell, action, spellMap, eventArgs)
- refine_waltz(spell, action, spellMap, eventArgs)
- if spell.skill == "Ninjutsu" and spell.target.type:lower() == 'self' and spellMap ~= "Utsusemi" then
- classes.CustomClass = "SelfNinjutsu"
- end
- end
- -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
- function job_midcast(spell, action, spellMap, eventArgs)
- if spell.action_type == 'Magic' then
- -- Default base equipment layer of fast recast.
- equip(sets.midcast.FastRecast)
- end
- end
- -- Run after the general 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 state.Buff.Doomed then
- equip(sets.buff.Doomed)
- end
- end
- -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
- function job_aftercast(spell, action, spellMap, eventArgs)
- if not spell.interrupted and spell.english == "Migawari: Ichi" then
- state.Buff.Migawari = true
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Customization hooks for idle and melee sets, after they've been automatically constructed.
- -------------------------------------------------------------------------------------------------------------------
- -- Called before the Include starts constructing melee/idle/resting sets.
- -- Can customize state or custom melee class values at this point.
- -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
- function job_handle_equipping_gear(status, eventArgs)
- sets.Kiting = select_movement()
- end
- -- Modify the default idle set after it was constructed.
- function customize_idle_set(idleSet)
- idleSet = set_combine(idleSet, select_movement())
- if state.Buff.Migawari then
- idleSet = set_combine(idleSet, sets.buff.Migawari)
- end
- if state.Buff.Doomed then
- idleSet = set_combine(idleSet, sets.buff.Doomed)
- end
- return idleSet
- end
- -- Modify the default melee set after it was constructed.
- function customize_melee_set(meleeSet)
- if state.Buff.Migawari then
- meleeSet = set_combine(meleeSet, sets.buff.Migawari)
- end
- if state.Buff.Doomed then
- meleeSet = set_combine(meleeSet, sets.buff.Doomed)
- end
- return meleeSet
- end
- -------------------------------------------------------------------------------------------------------------------
- -- General hooks for other 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)
- -- If we gain or lose any haste buffs, adjust which gear set we target.
- if S{'haste','march','embrava','haste samba'}:contains(buff:lower()) then
- determine_haste_group()
- handle_equipping_gear(player.status)
- elseif state.Buff[buff] ~= nil then
- state.Buff[buff] = gain
- handle_equipping_gear(player.status)
- end
- end
- -- Called when the player's subjob changes.
- function sub_job_change(newSubjob, oldSubjob)
- select_default_macro_book()
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User code that supplements self-commands.
- -------------------------------------------------------------------------------------------------------------------
- -- Called by the default 'update' self-command.
- function job_update(cmdParams, eventArgs)
- determine_haste_group()
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- function select_movement()
- -- world.time is given in minutes into each day
- -- 7:00 AM would be 420 minutes
- -- 17:00 PM would be 1020 minutes
- if world.time >= (17*60) or world.time <= (7*60) then
- return sets.NightMovement
- else
- return sets.DayMovement
- end
- end
- function determine_haste_group()
- -- We have three groups of DW in gear: Hachiya body/legs, Iga head + Shetal Stone, and DW earrings
- -- Standard gear set reaches near capped delay with just Haste (77%-78%, depending on HQs)
- -- For high haste, we want to be able to drop one of the 10% groups.
- -- Basic gear hits capped delay (roughly) with:
- -- 1 March + Haste
- -- 2 March
- -- Haste + Haste Samba
- -- 1 March + Haste Samba
- -- Embrava
- -- High haste buffs:
- -- 2x Marches + Haste Samba == 19% DW in gear
- -- 1x March + Haste + Haste Samba == 22% DW in gear
- -- Embrava + Haste or 1x March == 7% DW in gear
- -- For max haste (capped magic haste + 25% gear haste), we can drop all DW gear.
- -- Max haste buffs:
- -- Embrava + Haste+March or 2x March
- -- 2x Marches + Haste
- -- So we want four tiers:
- -- Normal DW
- -- 20% DW -- High Haste
- -- 7% DW (earrings) - Embrava Haste (specialized situation with embrava and haste, but no marches)
- -- 0 DW - Max Haste
- classes.CustomMeleeGroups:clear()
- if buffactive.embrava and (buffactive.march == 2 or (buffactive.march and buffactive.haste)) then
- classes.CustomMeleeGroups:append('MaxHaste')
- elseif buffactive.march == 2 and buffactive.haste then
- classes.CustomMeleeGroups:append('MaxHaste')
- elseif buffactive.embrava and (buffactive.haste or buffactive.march) then
- classes.CustomMeleeGroups:append('EmbravaHaste')
- elseif buffactive.march == 1 and buffactive.haste and buffactive['haste samba'] then
- classes.CustomMeleeGroups:append('HighHaste')
- elseif buffactive.march == 2 then
- classes.CustomMeleeGroups:append('HighHaste')
- end
- end
- -- Select default macro book on initial load or subjob change.
- function select_default_macro_book()
- -- Default macro set/book
- if player.sub_job == 'DNC' then
- set_macro_page(4, 3)
- elseif player.sub_job == 'THF' then
- set_macro_page(5, 3)
- else
- set_macro_page(1, 3)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment