Advertisement
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')
- end
- -- Setup vars that are user-independent.
- function job_setup()
- state.CombatForm = get_combat_form()
- update_melee_groups()
- 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', 'PDT'}
- options.WeaponskillModes = {'Normal', 'Acc'}
- options.IdleModes = {'Normal'}
- options.RestingModes = {'Normal'}
- options.PhysicalDefenseModes = {'PDT'}
- 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 on use
- sets.precast.JA['Hundred Fists'] = {legs="Hesychast's Hose +1"}
- sets.precast.JA['Boost'] = {hands="Anchorite's Gloves +1"}
- sets.precast.JA['Dodge'] = {feet="Anchorite's Gaiters +1"}
- sets.precast.JA['Focus'] = {head="Anchorite's Crown +1"}
- sets.precast.JA['Counterstance'] = {feet="Hesychast's Gaiters +1"}
- sets.precast.JA['Chi Blast'] = {feet="Thurandaut Boots +1"}
- sets.precast.JA['Impetus']={body="tantra cyclas +2"}
- sets.precast.JA['Formless Strikes'] = {body="Hesychast's Cyclas +1"}
- sets.precast.JA['Mantra'] = {feet="Hesychast's Gaiters +1"}
- sets.precast.JA['Chakra'] = {ammo="Brigantia Pebble",
- head="Lithelimb Cap",neck="Tjukurrpa Medal",ear1="Terra's Pearl",ear2="Terra's Pearl",
- body="Anchorite's Cyclas +1",hands="Hesychast's Gloves +1",ring1="Titan Ring",ring2="Titan Ring",
- back="Iximulew Cape",waist="Caudata Belt",legs="nahtirah Trousers",feet="Thurandaut Boots +1"}
- -- Waltz set (chr and vit)
- sets.precast.Waltz = {ammo="Brigantia Pebble",
- head="Lithelimb Cap",neck="Tjukurrpa Medal",ear1="Terra's Pearl",ear2="Terra's Pearl",
- body="Anchorite's Cyclas +1",hands="Hesychast's Gloves +1",ring1="Titan Ring",ring2="Titan Ring",
- back="Iximulew Cape",waist="Caudata Belt",legs="Kaabnax Trousers",feet="Thurandaut Boots +1"}
- -- Don't need any special gear for Healing Waltz.
- sets.precast.Waltz['Healing Waltz'] = {}
- -- Fast cast sets for spells
- sets.precast.FC = {ammo="Impatiens",body="Dread Jupon",ring2="Veneficium Ring",head="Haruspex hat +1",
- ear2="Loquacious Earring",hands="Thaumas Gloves",ring1="Prolix Ring"}
- sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads"})
- -- Weaponskill sets
- -- Default set for any weaponskill that isn't any more specifically defined
- sets.precast.WS = {ammo="Ginsen",
- head="Whirlpool Mask",neck="Nefarious collar +1",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="mekosuchinae harness",hands="Hes. Gloves +1",ring1="Rajas ring",ring2="Epona's Ring",
- back="anchoret's mantle",waist="Caudata Belt",legs="ighwa trousers",feet="Qaxxo leggings"}
- sets.precast.WS.Acc = set_combine(sets.precast.WS, {ammo="Honed Tathlum", back="Anchoret's Mantle"})
- -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
- sets.precast.WS["Victory Smite"] = set_combine(sets.precast.WS, {ear1="Brutal Earring",ear2="trux earring"})
- sets.precast.WS["Victory Smite"].Acc = set_combine(sets.precast.WS.Acc, {ear1="Brutal Earring",ear2="Moonshade Earring"})
- sets.precast.WS['Final Heaven'] = set_combine(sets.precast.WS, {head="lithelimb cap",neck=gear.ElementalGorget,feet="Thurandaut Boots +1",body="Anchorite's Cyclas +1",ammo="Ginsen"})
- sets.precast.WS['Final Heaven'].Acc = set_combine(sets.precast.WS.Acc, {head="lithelimb cap",neck=gear.ElementalGorget,feet="Thurandaut Boots +1",body="Anchorite's Cyclas +1",ammo="Ginsen"})
- sets.precast.WS['Asuran Fists'] = set_combine(sets.precast.WS, {neck=gear.ElementalGorget})
- sets.precast.WS['Asuran Fists'].Acc = set_combine(sets.precast.WS.Acc, {neck=gear.ElementalGorget})
- sets.precast.WS["Ascetic's Fury"] = set_combine(sets.precast.WS, {neck="Rancor Collar",ear1="Brutal Earring",ear2="Moonshade Earring"})
- sets.precast.WS["Ascetic's Fury"].Acc = set_combine(sets.precast.WS.Acc, {neck="Rancor Collar",ear1="Brutal Earring",ear2="Moonshade Earring"})
- -- Midcast Sets
- sets.midcast.FastRecast = {
- head="Whirlpool Mask",neck="",ear1="",ear2="Loquacious Earring",
- body="Otronif Harness +1",hands="Thaumas Gloves",ring1="Prolix Ring",ring2="",
- back="",waist="Black Belt",legs="",feet="Otronif Boots +1"}
- -- Specific spells
- sets.midcast.Utsusemi = {ammo="Impatiens",
- head="Whirlpool Mask",neck="",ear1="",ear2="Loquacious Earring",
- body="Otronif Harness +1",hands="Thaumas Gloves",ring1="",ring2="",
- back="",waist="Black Belt",legs="Kaabnax Trousers",feet="Otronif Boots +1"}
- -- Sets to return to when not performing an action.
- -- Resting sets
- sets.resting = {ammo="Brigantia Pebble",
- head="Ocelomeh Headpiece +1",neck="Wiglen Gorget",ear1="Merman's Earring",ear2="Merman's Earring",
- body="Hesychast's Cyclas +1",hands="Hesychast's Gloves +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Shadow Mantle",waist="Black Belt",legs="Hesychast's Hose +1",feet="Hesychast's Gaiters +1"}
- -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
- sets.idle = {main="Spharai",ammo="Brigantia Pebble",
- head="Ocelomeh Headpiece +1",neck="Wiglen Gorget",ear1="Merman's Earring",ear2="Merman's Earring",
- body="Hesychast's Cyclas +1",hands="Hesychast's Gloves +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Shadow Mantle",waist="Black Belt",legs="Hesychast's Hose +1",feet="Hesychast's Gaiters +1"}
- sets.idle.Town = {main="Spharai",ammo="Brigantia Pebble",
- head="Ocelomeh Headpiece +1",neck="Wiglen Gorget",ear1="Merman's Earring",ear2="Merman's Earring",
- body="Hesychast's Cyclas +1",hands="Hesychast's Gloves +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Shadow Mantle",waist="Black Belt",legs="Hesychast's Hose +1",feet="Hesychast's Gaiters +1"}
- -- Defense sets
- sets.defense.PDT = {ammo="Brigantia Pebble",
- head="Lithelimb Cap",neck="Twilight Torque",ear1="Merman's Earring",ear2="Merman's Earring",
- body="Otronif Harness +1",hands="Otronif Gloves +1",ring1="Jelly ring",ring2="Patricius Ring",
- back="Shadow Mantle",waist="Black Belt",legs="Otronif Brais +1",feet="Otronif Boots +1"}
- sets.defense.MDT = {ammo="Brigantia Pebble",
- head="Lithelimb Cap",neck="Twilight Torque",ear1="Merman's Earring",ear2="Merman's Earring",
- body="Otronif Harness +1",hands="Otronif Gloves +1",ring1="Defending Ring",ring2="Shadow Ring",
- back="Engulfer Cape",waist="Black Belt",legs="Otronif Brais +1",feet="Otronif Boots +1"}
- sets.Kiting = {feet=""}
- -- 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.
- -- Normal melee sets
- sets.engaged = {ammo="Ginsen",
- head="Felistris Mask",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body={ name="Qaaxo Harness", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}},hands="Hes. Gloves +1",ring1="Rajas Ring",ring2="Epona's Ring",
- back="Atheling Mantle",waist="Windbuffet Belt +1",legs="Hesychast's Hose +1",feet="soku. Sune-Ate"}
- sets.engaged.Acc = {ammo="Honed Tathlum",
- head="Whirlpool Mask",neck="Iqabi Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="mekosuchinae harness",hands="Hesychast's Gloves +1",ring1="Rajas Ring",ring2="Mars's Ring",
- back="Anchoret's Mantle",waist="Hurch'lan Sash",legs="Qaaxo Tights",feet="Qaaxo Leggings"}
- sets.engaged.PDT = {ammo="Brigantia Pebble",
- head="Lithelimb Cap",neck="Twilight Torque",ear1="Merman's Earring",ear2="Merman's Earring",
- body="Otronif Harness +1",hands="Otronif Gloves +1",ring1="Jelly ring",ring2="Patricius Ring",
- back="Mollusca Mantle",waist="Black Belt",legs="Otronif Brais +1",feet="Otronif Boots +1"}
- sets.engaged.Acc.PDT = {ammo="Honed Tathlum",
- head="Lithelimb Cap",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Otronif Harness +1",hands="Otronif Gloves +1",ring1="Rajas Ring",ring2="Patricius Ring",
- back="Mollusca Mantle",waist="Black Belt",legs="Otronif Brais +1",feet="Otronif Boots +1"}
- 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)
- -- Don't gearswap for weaponskills when Defense is on.
- if spell.type:lower() == 'weaponskill' and state.Defense.Active then
- eventArgs.handled = true
- elseif spell.type == 'Waltz' then
- refine_waltz(spell, action, spellMap, eventArgs)
- end
- end
- -- Run after the general precast() is done.
- function job_post_precast(spell, action, spellMap, eventArgs)
- if spell.type:lower() == 'weaponskill' and not state.Defense.Active then
- if buffactive.impetus and (spell.english == "Ascetic's Fury" or spell.english == "Victory Smite") then
- equip({body="Tantra Cyclas +2"})
- elseif buffactive.footwork and (spell.english == "Dragon's Kick" or spell.english == "Tornado Kick") then
- equip({feet="Anchorite's Gaiters +1"})
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- General hooks for other game 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)
- -- Set Footwork as combat form any time it's active and Hundred Fists is not.
- if buff == 'Footwork' and gain and not buffactive['hundred fists'] then
- state.CombatForm = 'Footwork'
- elseif buff == "Hundred Fists" and not gain and buffactive.footwork then
- state.CombatForm = 'Footwork'
- else
- state.CombatForm = nil
- end
- -- Hundred Fists and Impetus modify the custom melee groups
- if buff == "Hundred Fists" or buff == "Impetus" then
- classes.CustomMeleeGroups:clear()
- if (buff == "Hundred Fists" and gain) or buffactive['hundred fists'] then
- classes.CustomMeleeGroups:append('HF')
- end
- if (buff == "Impetus" and gain) or buffactive.impetus then
- classes.CustomMeleeGroups:append('Impetus')
- end
- end
- -- Update gear if any of the above changed
- if buff == "Hundred Fists" or buff == "Impetus" or buff == "Footwork" then
- handle_equipping_gear(player.status)
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User code that supplements self-commands.
- -------------------------------------------------------------------------------------------------------------------
- -- Called by the 'update' self-command.
- function job_update(cmdParams, eventArgs)
- state.CombatForm = get_combat_form()
- update_melee_groups()
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- function get_combat_form()
- if buffactive.footwork and not buffactive['hundred fists'] then
- return 'Footwork'
- end
- end
- function update_melee_groups()
- classes.CustomMeleeGroups:clear()
- if buffactive['hundred fists'] then
- classes.CustomMeleeGroups:append('HF')
- end
- if buffactive.impetus then
- classes.CustomMeleeGroups:append('Impetus')
- 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(2, 1)
- elseif player.sub_job == 'NIN' then
- set_macro_page(3, 1)
- else
- set_macro_page(1, 1)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement