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', 'MidAcc', 'Acc', 'Mod'}
- options.DefenseModes = {'Normal', 'PDT', 'Counter'}
- options.WeaponskillModes = {'Normal', 'MidAcc', 'Acc', 'Mod'}
- options.IdleModes = {'Normal'}
- options.RestingModes = {'Normal'}
- options.PhysicalDefenseModes = {'PDT', 'HP'}
- 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"}
- sets.precast.JA['Counterstance'] = {feet="Hesychast's Gaiters"}
- sets.precast.JA['Chi Blast'] = {
- head="Melee Crown +2",
- body="Otronif Harness +1",hands="Hesychast's Gloves +1",
- back="Tuilha Cape",legs="Hesychast's Hose +1",feet="Anchorite's Gaiters +1"}
- sets.precast.JA['Footwork'] = {feet="Tantra Gaiters +2"}
- sets.precast.JA['Formless Strikes'] = {body="Hesychast's Cyclas"}
- sets.precast.JA['Mantra'] = {feet="Hesychast's Gaiters"}
- sets.precast.JA['Chakra'] = {ammo="Tantra Tathlum",
- head="Felistris Mask",
- body="Otronif harness +1",hands="Hesychast's gloves",ring1="Spiral Ring",
- back="Iximulew Cape",waist="Caudata Belt",legs="Ighwa trousers",feet="Thurandaut Boots"}
- -- Waltz set (chr and vit)
- sets.precast.Waltz = {ammo="Tantra Tathlum",
- head="Felistris Mask",
- body="Otronif Harness +1",hands="Otronif Gloves +1",ring1="Spiral Ring",
- back="Iximulew Cape",waist="Caudata Belt",legs="Ighwa trousers",feet="Qaaxo Leggings"}
- -- Don't need any special gear for Healing Waltz.
- sets.precast.Waltz['Healing Waltz'] = {}
- -- Fast cast sets for spells
- sets.precast.FC = {ammo="Impatiens",head="Haruspex hat",ear2="Loquacious Earring",hands="Thaumas Gloves"}
- 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="Thew Bomblet",
- head="Uk'uxkaj Cap",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Manibozho Jerkin",hands="Otronif Gloves +1",ring1="Rajas Ring",ring2="Epona's Ring",
- back="Atheling Mantle",waist="Caudata Belt",legs="Manibozho Brais",feet="Manibozho Boots"}
- sets.precast.WS.MidAcc = set_combine(sets.precast.WS, {ammo="Honed Tathlum",body="Manibozho Jerkin",back="Letalis Mantle",feet="Qaaxo Leggings"})
- sets.precast.WS.Acc = set_combine(sets.precast.WS, {ammo="Honed Tathlum",body="Manibozho Jerkin",back="Anchoret's Mantle",feet="Qaaxo Leggings"})
- sets.precast.WS.Mod = set_combine(sets.precast.WS, {head="Felistris Mask",legs="Hesychast's Hose +1",feet="Qaaxo Leggings"})
- -- 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, {ammo= "Tantra Tathlum",neck="Rancor Collar",ear1="Brutal Earring",ear2="Moonshade Earring"})
- sets.precast.WS["Victory Smite"].MidAcc = set_combine(sets.precast.WS.Acc, {ammo= "Tantra Tathlum",neck="Rancor Collar",ear1="Brutal Earring",ear2="Moonshade Earring"})
- sets.precast.WS["Victory Smite"].Acc = set_combine(sets.precast.WS.Acc, {neck="Rancor Collar",ear1="Brutal Earring",ear2="Moonshade Earring",back="Anchoret's Mantle"})
- sets.precast.WS["Victory Smite"].Mod = set_combine(sets.precast.WS["Victory Smite"], {waist=gear.ElementalBelt,back="Anchoret's Mantle"})
- sets.precast.WS['Shijin Spiral'] = set_combine(sets.precast.WS, {ammo="Jukukik Feather",neck=gear.ElementalGorget,feet="Qaaxo Leggings"})
- sets.precast.WS['Shijin Spiral'].MidAcc = set_combine(sets.precast.WS.Acc, {ammo="Jukukik Feather",neck=gear.ElementalGorget})
- sets.precast.WS['Shijin Spiral'].Acc = set_combine(sets.precast.WS.Acc, {ammo="Jukukik Feather",neck=gear.ElementalGorget,back="Anchoret's Mantle"})
- sets.precast.WS['Shijin Spiral'].Mod = set_combine(sets.precast.WS['Shijin Spiral'], {head="Felistris Mask",waist=gear.ElementalBelt,legs="Hesychast's Hose +1"})
- sets.precast.WS['Asuran Fists'] = set_combine(sets.precast.WS, {neck=gear.ElementalGorget,waist="Anguinus Belt",ring2="Spiral Ring"})
- sets.precast.WS['Asuran Fists'].MidAcc = set_combine(sets.precast.WS.Acc, {neck=gear.ElementalGorget,waist="Anguinus Belt",ring2="Spiral Ring"})
- sets.precast.WS['Asuran Fists'].Acc = set_combine(sets.precast.WS.Acc, {neck=gear.ElementalGorget,waist="Anguinus Belt",ring2="Spiral Ring",back="Anchoret's Mantle"})
- sets.precast.WS['Asuran Fists'].Mod = set_combine(sets.precast.WS['Asuran Fists'], {waist=gear.ElementalBelt,feet="Manibozho Boots"})
- sets.precast.WS["Ascetic's Fury"] = set_combine(sets.precast.WS, {neck="Rancor Collar",ear1="Brutal Earring",ear2="Moonshade Earring",ring1="Spiral Ring"})
- sets.precast.WS["Ascetic's Fury"].Acc = set_combine(sets.precast.WS.Acc, {neck="Rancor Collar",ear1="Brutal Earring",ear2="Moonshade Earring",ring1="Spiral Ring"})
- sets.precast.WS["Ascetic's Fury"].Acc = set_combine(sets.precast.WS.Acc, {neck="Rancor Collar",ear1="Brutal Earring",ear2="Moonshade Earring",ring1="Spiral Ring",back="Anchoret's Mantle"})
- sets.precast.WS["Ascetic's Fury"].Mod = set_combine(sets.precast.WS["Ascetic's Fury"], {waist=gear.ElementalBelt})
- sets.precast.WS['Cataclysm'] = {
- head="Thaumas Hat",neck="Stoicheion Medal",ear1="Novio Earring",ear2="Hecate's Earring",
- body="Otronif Harness +1",hands="Otronif Gloves +1",ring1="Rajas Ring",ring2="Demon's Ring",
- back="Toro Cape",waist="Thunder Belt",feet="Qaaxo Leggings"}
- -- Midcast Sets
- sets.midcast.FastRecast = {
- head="Whirlpool Mask",ear2="Loquacious Earring",
- body="Otronif Harness +1",hands="Thaumas Gloves",
- waist="Black Belt",feet="Otronif Boots +1"}
- -- Specific spells
- sets.midcast.Utsusemi = {
- head="Whirlpool Mask",ear2="Loquacious Earring",
- body="Otronif Harness +1",hands="Thaumas Gloves",
- waist="Black Belt",legs="Otronif brais +1",feet="Otronif Boots +1"}
- -- Sets to return to when not performing an action.
- -- Resting sets
- sets.resting = {head="Ocelomeh Headpiece +1",neck="Wiglen Gorget",
- body="Hesychast's Cyclas",ring1="Sheltered Ring",ring2="Paguroidea Ring"}
- -- Idle sets
- sets.idle = {main="Tinhaspa",ammo="Tantra Tathlum",
- head="Ocelomeh Headpiece +1",neck="Wiglen Gorget",ear1="Merman's Earring",ear2="Sanare Earring",
- body="Hesychast's Cyclas",hands="Otronif gloves +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Iximulew Cape",waist="Black Belt",legs="Otronif brais +1",feet="Hermes' Sandals"}
- sets.idle.Town = {main="Tinhaspa",ammo="Tantra Tathlum",
- head="Ocelomeh Headpiece +1",neck="Wiglen Gorget",ear1="Merman's Earring",ear2="Sanare Earring",
- body="Hesychast's Cyclas",hands="Otronif gloves +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Iximulew Cape",waist="Black Belt",legs="Otronif brais +1",feet="Hermes' Sandals"}
- sets.idle.Weak = {main="Tinhaspa",ammo="Tantra Tathlum",
- head="Ocelomeh Headpiece +1",neck="Wiglen Gorget",ear1="Merman's Earring",ear2="Sanare Earring",
- body="Hesychast's Cyclas",hands="Otronif gloves +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Iximulew Cape",waist="Black Belt",legs="Otronif brais +1",feet="Hermes' Sandals"}
- -- Defense sets
- sets.defense.PDT = {ammo="Tantra Tathlum",
- head="Whirlpool Mask",neck="Twilight Torque",
- body="Otronif Harness +1",hands="Otronif Gloves +1",ring1="Dark Ring",ring2="Dark Ring",
- back="Shadow Mantle",waist="Black Belt",legs="Otronif brais +1",feet="Otronif Boots +1"}
- sets.defense.HP = {ammo="Tantra Tathlum",
- head="Whirlpool Mask",neck="Inquisitor bead necklace",
- body="Otronif Harness +1",hands="Otronif gloves +1",ring1="K'ayres Ring",ring2="Rajas Ring",
- back="Anchoret's Mantle",waist="Black Belt",legs="Otronif brais +1",feet="Otronif boots +1"}
- sets.defense.MDT = {ammo="Demonry Stone",
- head="Whirlpool Mask",neck="Twilight Torque",ear1="Merman's Earring",ear2="Sanare Earring",
- body="Otronif Harness +1",hands="Otronif Gloves +1",ring1="Shadow Ring",ring2="Dark Ring",
- back="Engulfer Cape",waist="Black Belt",legs="Otronif brais +1",feet="Otronif Boots +1"}
- sets.Kiting = {feet="Hermes' sandals"}
- -- 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 sets
- sets.engaged = {ammo="Hagneia stone",
- head="Felistris Mask",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Thaumas Coat",hands="Otronif Gloves +1",ring1="Rajas Ring",ring2="Epona's Ring",
- back="Atheling Mantle",waist="Windbuffet Belt",legs="Quiahuiz trousers",feet="Manibozho boots"}
- sets.engaged.MidAcc = {ammo="Honed Tathlum",
- head="Felistris Mask",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Thaumas Coat",hands="Hesychast's gloves",ring1="Rajas Ring",ring2="Epona's Ring",
- back="Letalis Mantle",waist="Windbuffet Belt",legs="Manibozho Brais",feet="Manibozho boots"}
- sets.engaged.Acc = {ammo="Honed Tathlum",
- head="Whirlpool Mask",neck="Ancient Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Manibozho jerkin",hands="Hesychast's gloves",ring1="Mars's Ring",ring2="Epona's Ring",
- back="Anchoret's Mantle",waist="Anguinus Belt",legs="Manibozho Brais",feet="Manibozho boots"}
- sets.engaged.Mod = {ammo="Thew Bomblet",
- head="Felistris Mask",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Qaaxo Harness",hands="Anchorite's Gloves +1",ring1="Rajas Ring",ring2="Epona's Ring",
- back="Anchoret's Mantle",waist="Windbuffet Belt",legs="Hesychast's Hose +1",feet="Anchorite's Gaiters +1"}
- -- Defensive melee hybrid sets
- sets.engaged.PDT = {ammo="Tantra Tathlum",
- head="Felistris Mask",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Otronif Harness +1",hands="Otronif Gloves +1",ring1="Patricius Ring",ring2="Epona's Ring",
- back="Iximulew Cape",waist="Windbuffet Belt",legs="Otronif brais +1",feet="Otronif Boots +1"}
- sets.engaged.MidAcc.PDT = {ammo="Tantra Tathlum",
- head="Whirlpool Mask",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Otronif Harness +1",hands="Otronif Gloves +1",ring1="Rajas Ring",ring2="Epona's Ring",
- back="Letalis Mantle",waist="Anguinus Belt",legs="Ighwa Trousers",feet="Qaaxo Leggings"}
- sets.engaged.Acc.PDT = {ammo="Honed Tathlum",
- head="Whirlpool Mask",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Otronif Harness",hands="Buremte Gloves +1",ring1="Mars's Ring",ring2="Epona's Ring",
- back="Letalis Mantle",waist="Anguinus Belt",legs="Ighwa Trousers",feet="Qaaxo Leggings"}
- sets.engaged.Counter = {ammo="Tantra Tathlum",
- head="Whirlpool Mask",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Otronif Harness +1",hands="Otronif Gloves +1",ring1="K'ayres Ring",ring2="Epona's Ring",
- back="Atheling Mantle",waist="Windbuffet Belt",legs="Anchorite's Hose",feet="Otronif Boots +1"}
- sets.engaged.Acc.Counter = {ammo="Honed Tathlum",
- head="Whirlpool Mask",neck="Ancient Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Otronif Harness +1",hands="Otronif Gloves +1",ring1="Mars's Ring",ring2="Epona's Ring",
- back="Letalis Mantle",waist="Anguinus Belt",legs="Ighwa Trousers",feet="Manibozho boots"}
- -- Hundred Fists/Impetus melee set mods
- sets.engaged.HF = set_combine(sets.engaged)
- sets.engaged.HF.Impetus = set_combine(sets.engaged, {body="Tantra Cyclas +2"})
- sets.engaged.Acc.HF = set_combine(sets.engaged.Acc)
- sets.engaged.Acc.HF.Impetus = set_combine(sets.engaged.Acc, {body="Tantra Cyclas +2"})
- sets.engaged.Counter.HF = set_combine(sets.engaged.Counter)
- sets.engaged.Counter.HF.Impetus = set_combine(sets.engaged.Counter, {body="Tantra Cyclas +2"})
- sets.engaged.Acc.Counter.HF = set_combine(sets.engaged.Acc.Counter)
- sets.engaged.Acc.Counter.HF.Impetus = set_combine(sets.engaged.Acc.Counter, {body="Tantra Cyclas +2"})
- -- Footwork combat form
- sets.engaged.Footwork = {ammo="Thew Bomblet",
- head="Felistris Mask",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Qaaxo Harness",hands="Hesychast's Gloves +1",ring1="Rajas Ring",ring2="Epona's Ring",
- back="Atheling Mantle",waist="Windbuffet Belt",legs="Hesychast's Hose +1",feet="Anchorite's Gaiters +1"}
- sets.engaged.Footwork.Acc = {ammo="Honed Tathlum",
- head="Whirlpool Mask",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
- body="Otronif Harness +1",hands="Hesychast's Gloves +1",ring1="Rajas Ring",ring2="Epona's Ring",
- back="Letalis Mantle",waist="Anguinus Belt",legs="Hesychast's Hose +1",feet="Anchorite's Gaiters +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
- -- 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 '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, 7)
- elseif player.sub_job == 'NIN' then
- set_macro_page(4, 7)
- elseif player.sub_job == 'THF' then
- set_macro_page(4, 7)
- elseif player.sub_job == 'RUN' then
- set_macro_page(1, 7)
- elseif player.sub_job == 'DNC' then
- set_macro_page(3, 7)
- else
- set_macro_page(2, 7)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement