Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -------------------------------------------------------------------------------------------------------------------
- -- 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()
- indi_timer = ''
- indi_duration = 180
- 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('None', 'Normal')
- state.CastingMode:options('Normal', 'Resistant')
- state.IdleMode:options('Normal', 'PDT')
- gear.default.weaponskill_waist = "Windbuffet Belt +1"
- select_default_macro_book()
- end
- -- Define sets and vars used by this job file.
- function init_gear_sets()
- --------------------------------------
- -- Precast sets
- --------------------------------------
- -- Precast sets to enhance JAs-
- sets.precast.JA.Bolster = {body="Bagua Tunic +1"}
- sets.precast.JA['Life cycle'] = {body="Geomancy Tunic +1",back="Nantosuelta's Cape"}
- sets.precast.JA['Full Circle'] = {head="Azimuth Hood +1"}
- sets.precast.JA['Curative Recantation'] = {hands="Bagua Mitaines +1"}
- sets.precast.JA['Mending Halation'] = {legs="Bagua Pants +1"}
- sets.precast.JA['Radial Arcana'] = {feet="Bagua Sandals +1"}
- -- Fast cast sets for spells
- sets.precast.FC = {
- main={ name="Solstice", augments={'Mag. Acc.+20','Pet: Damage taken -4%','"Fast Cast"+5',}},
- sub="Culminus",
- range="Dunna",
- head={ name="Merlinic Hood", augments={'Mag. Acc.+25','"Fast Cast"+5','MND+6',}},
- body="Anhur Robe",
- hands={ name="Merlinic Dastanas", augments={'Mag. Acc.+22','"Fast Cast"+5','"Mag.Atk.Bns."+4',}},
- legs="Geo. Pants +1",
- feet={ name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+18','"Fast Cast"+6',}},
- neck="Voltsurge Torque",
- waist="Witful Belt",
- left_ear={ name="Moonshade Earring", augments={'MP+25','Latent effect: "Refresh"+1',}},
- right_ear="Loquac. Earring",
- left_ring="Stikini Ring",
- right_ring="Stikini Ring",
- back={ name="Lifestream Cape", augments={'Geomancy Skill +10','Indi. eff. dur. +17','Pet: Damage taken -1%','Damage taken-5%',}}
- }
- sets.precast.FC.Cure = set_combine(sets.precast.FC, {main="Solstice",sub="Genbu's Shield",body="Heka's Kalasiris",back="Pahtli Cape",legs="Doyen Pants",feet="Vanya Clogs"})
- sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash",legs="Doyen Pants"})
- sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {neck="Stoicheion Medal",hands="Bagua Mitaines +1",ear1="Barkarole earring"})
- sets.precast.FC.Impact = set_combine(sets.precast.FC, {head=empty,body="Twilight Cloak"})
- -- Weaponskill sets
- -- Default set for any weaponskill that isn't any more specifically defined
- sets.precast.WS = {
- head={ name="Merlinic Hood", augments={'Mag. Acc.+25','"Fast Cast"+5','MND+6',}},
- body="Jhakri Robe +1",
- hands="Jhakri Cuffs +1",
- legs="Azimuth Tights",
- feet="Jhakri Pigaches +1",
- neck="Eddy Necklace",
- waist="Othila Sash",
- left_ear="Friomisi Earring",
- right_ear="Novio Earring",
- left_ring="Shiva Ring",
- right_ring="Shiva Ring",
- back="Toro Cape"}
- -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
- sets.precast.WS['Flash Nova'] = {head={ name="Merlinic Hood", augments={'Mag. Acc.+25','"Fast Cast"+5','MND+6',}},
- body="Jhakri Robe +1",
- hands="Jhakri Cuffs +1",
- legs="Azimuth Tights",
- feet="Jhakri Pigaches +1",
- neck="Eddy Necklace",
- waist="Othila Sash",
- left_ear="Friomisi Earring",
- right_ear="Novio Earring",
- left_ring="Shiva Ring",
- right_ring="Shiva Ring",
- back="Toro Cape"}
- sets.precast.WS['Starlight'] = {ear2="Moonshade Earring"}
- sets.precast.WS['Moonlight'] = {ear2="Moonshade Earring"}
- --------------------------------------
- -- Midcast sets
- --------------------------------------
- -- Base fast recast for spells
- sets.midcast.Geomancy = {main="Solstice",range="Dunna",
- head="Azimuth Hood +1",neck="Incanter's Torque",left_ear="Calamitous Earring",right_ear="Magnetic Earring",
- body="Bagua Tunic +1",hands="Geomancy Mitaines +1",left_ring="Stikini Ring",right_ring="Stikini Ring",
- back={ name="Lifestream Cape", augments={'Geomancy Skill +10','Indi. eff. dur. +20','Pet: Damage taken -4%',}},waist="Witful Belt",legs="Bagua Pants +1",feet="Azimuth Gaiters"}
- sets.midcast['Enhancing Magic'] = {main="Vadose Rod",
- sub="Genbu's Shield",
- ammo="Kalboron Stone",
- head="Umuthi Hat",
- body="Anhur Robe",
- hands={ name="Bagua Mitaines +1", augments={'Enhances "Curative Recantation" effect',}},
- legs="Geo. Pants +1",
- feet={ name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+18','"Fast Cast"+6',}},
- neck="Voltsurge Torque",
- waist="Witful Belt",
- left_ear={ name="Moonshade Earring", augments={'MP+25','Latent effect: "Refresh"+1',}},
- right_ear="Loquac. Earring",
- left_ring="Stikini Ring",
- right_ring="Stikini Ring",
- back={ name="Lifestream Cape", augments={'Geomancy Skill +10','Indi. eff. dur. +20','Pet: Damage taken -4%',}}
- }
- sets.midcast.Haste = sets.midcast['Enhancing Magic']
- sets.midcast.Flurry = sets.midcast['Enhancing Magic']
- sets.midcast.Geomancy.Indi = {main="Solstice",sub="Genbu's Shield",range="Dunna",
- head="Azimuth Hood +1",neck="Deceiver's Torque",left_ear="Calamitous Earring",right_ear="Magnetic Earring",
- body="Bagua Tunic +1",hands="Geomancy Mitaines +1",left_ring="Stikini Ring",right_ring="Stikini Ring",
- back="Lifestream Cape",waist="Austerity Belt +1",legs="Bagua Pants +1",feet="Azimuth Gaiters"}
- sets.midcast.Cure = {main="Vadose Rod",sub="Genbu's Shield",
- head="Vanya Hood",neck="Deceiver's Torque",body="Vanya Robe",hands="Bagua Mitaines +1",ring1="Haoma's Ring",ring2="Sirona's Ring",
- back="Tempered Cape",legs="Assiduity Pants +1",feet="Vanya Clogs"}
- sets.midcast.Curaga = sets.midcast.Cure
- sets.midcast.Protectra = {ring1="Sheltered Ring"}
- sets.midcast.Shellra = {ring1="Sheltered Ring"}
- -- Elemental Magic sets
- sets.midcast['Elemental Magic'] = {main="Arasy Staff",
- sub="Zuuxowu Grip",
- ammo="Dosis Tathlum",
- head={ name="Merlinic Hood", augments={'Mag. Acc.+25','"Fast Cast"+5','MND+6',}},
- body="",
- hands="Jhakri Cuffs +1",
- legs="Azimuth Tights",
- feet="Jhakri Pigaches +1",
- neck="Eddy Necklace",
- waist="Othila Sash",
- left_ear="Friomisi Earring",
- right_ear="Novio Earring",
- left_ring="Shiva Ring",
- right_ring="Shiva Ring",
- back="Toro Cape",
- }
- sets.midcast['Elemental Magic'].Resistant = {main="Arasy Staff",
- sub="Zuuxowu Grip",
- ammo="Dosis Tathlum",
- head={ name="Merlinic Hood", augments={'Mag. Acc.+25','"Fast Cast"+5','MND+6',}},
- body="Jhakri Robe +1",
- hands="Jhakri Cuffs +1",
- legs="Azimuth Tights",
- feet="Jhakri Pigaches +1",
- neck="Eddy Necklace",
- waist="Othila Sash",
- left_ear="Friomisi Earring",
- right_ear="Novio Earring",
- left_ring="Shiva Ring",
- right_ring="Shiva Ring",
- back="Toro Cape",
- }
- sets.midcast['Elemental Magic'].HighTierNuke = set_combine(sets.midcast['Elemental Magic'], {sub="Wizzan Grip"})
- sets.midcast['Elemental Magic'].HighTierNuke.Resistant = set_combine(sets.midcast['Elemental Magic'], {sub="Wizzan Grip"})
- sets.midcast['Dark Magic'] = {main="Staccato Staff",
- sub="Zuuxoxu Grip",
- ammo="Dosis Tathlum",
- head="Bagua Balero +1",
- body="Geomancy Tunic +1",
- hands="Jhakri Cuffs +1",
- legs="Azimuth Tights",
- feet="Jhakri Pigaches +1",
- neck="Aesir Torque",
- waist="Fuchi-no-Obi",
- left_ear="Novio Earring",
- right_ear="Friomisi Earring",
- left_ring="Stikini Ring",
- right_ring="Stikini Ring",
- back="Toro Cape",}
- sets.midcast['Enfeebling Magic'] = {main="Staccato Staff",
- sub="Zuuxoxu Grip",
- ammo="Dosis Tathlum",
- head="Merlinic Hood",
- body="Vanya Robe",
- hands="Azimuth Gloves",
- legs="Psycloth Lappas",
- feet="Jhakri Pigaches +1",
- neck="Voltsurge Torque",
- waist="Ovate Rope",
- left_ear="Psystorm Earring",
- right_ear="Lifestorm Earring",
- left_ring="Stikini Ring",
- right_ring="Stikini Ring",
- back="Refraction Cape",
- }
- sets.midcast.Drain = {main="Chatoyant Staff",
- sub="Zuuxoxu Grip",
- ammo="Dosis Tathlum",
- head="Bagua Balero +1",
- body="Geomancy Tunic +1",
- hands="Jhakri Cuffs +1",
- legs="Azimuth Tights",
- feet="Jhakri Pigaches +1",
- neck="Aesir Torque",
- waist="Fuchi-no-Obi",
- left_ear="Novio Earring",
- right_ear="Friomisi Earring",
- left_ring="Stikini Ring",
- right_ring="Stikini Ring",
- back="Toro Cape",}
- sets.midcast.Aspir = sets.midcast.Drain
- sets.midcast['Aspir III'] = sets.midcast.Drain
- sets.midcast.Impact = { main="Arasy Staff",
- sub="Zuuxoxu Grip",
- ammo="Pemphredo Tathlum",
- body="Twilight Cloak",
- hands="Azimuth Gloves +1",
- legs="Merlinic Shalwar",
- feet="Bagua Sandals +1",
- neck="Sanctity Necklace",
- waist="Yamabuki-no-Obi",
- left_ear="Barkaro. Earring",
- right_ear="Hecate's Earring",
- left_ring="Shiva Ring",
- right_ring="Shiva Ring",
- back="Toro Cape",}
- --------------------------------------
- -- Idle/resting/defense/etc sets
- --------------------------------------
- -- Resting sets
- sets.resting = {main="Bolelabunga",sub="Genbu's Shield",range="Dunna",
- head="Vanya Hood",neck="Wiglen Gorget",ear2="Moonshade Earring",ear1="Magnetic Earring",
- body="Jhakri Robe +1",hands="Bagua Mitaines +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Umbra Cape",waist="Fuchi-no-Obi",legs="Assiduity Pants +1",feet="Geomancy Sandals +1"}
- -- Idle sets
- sets.idle = {main="Bolelabunga",sub="Genbu's Shield",range="Dunna",
- head="Vanya Hood",neck="Wiglen Gorget",ear2="Moonshade Earring",ear1="Magnetic Earring",
- body="Jhakri Robe +1",hands="Bagua Mitaines +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Umbra Cape",waist="Fuchi-no-Obi",legs="Assiduity Pants +1",feet="Geomancy Sandals +1"}
- sets.idle.PDT = {main="Terra's Staff",sub="Oneiros Grip",range="Dunna",
- head="Vanya Hood",neck="Wiglen Gorget",ear1="Moonshade Earring",ear2="Loquacious Earring",
- body="Jhakri Robe +1",hands="Geomancy Mitaines +1",ring1="Defending Ring",ring2="Gelatinous Ring",
- back="Umbra Cape Cape",waist="Slipor Sash",legs="Assiduity Pants +1",feet="Geomancy Sandals +1"}
- -- .Pet sets are for when Luopan is present.
- sets.idle.Pet = {main="Solstice",sub="Genbu's Shield",range="Dunna",
- head="Azimuth Hood +1",neck="Wiglen Gorget",ear1="Handler's Earring",ear2="Ethereal Earring",
- body="Jhakri Robe +1",hands="Geomancy Mitaines +1",ring1="Defending Ring",ring2="Gelatinous Ring",
- back="Lifestream Cape",waist="Isa Belt",legs="Telchine Braconi",feet="Bagua Sandals +1"}
- sets.idle.PDT.Pet = {main="Idris",sub="Genbu's Shield",range="Dunna",
- head="Azimuth Hood +1",neck="Wiglen Gorget",ear1="Handler's Earring",ear2="Ethereal Earring",
- body="Jhakri Robe +1",hands="Geomancy Mitaines +1",ring1="Defending Ring",ring2="Gelatinous Ring",
- back="Lifestream Cape",waist="Fuchi-no-Obi",legs="Psycloth Lappas",feet="Azimuth Gaiters"}
- -- .Indi sets are for when an Indi-spell is active.
- sets.idle.Indi = set_combine(sets.idle, {head="Azimuth Hood +1",legs="Bagua Pants +1",feet="Azimuth Gaiters"})
- sets.idle.Pet.Indi = set_combine(sets.idle.Pet, {main="Bolelabunga",sub="Genbu's Shield",range="Dunna",
- head="Azimuth Hood +1",neck="Wiglen Gorget",ear1="Handler's Earring",ear2="Ethereal Earring",
- body="Jhakri Robe +1",hands="Geomancy Mitaines +1",ring1="Defending Ring",ring2="Gelatinous Ring",
- back={ name="Nantosuelta's Cape", augments={'MND+18','Eva.+18 /Mag. Eva.+18','Pet: "Regen"+10',}},
- waist="Isa Belt",legs="Telchine Braconi",feet="Bagua Sandals +1"})
- sets.idle.PDT.Indi = set_combine(sets.idle.PDT, {head="Azimuth Hood +1",body="Gyve Doublet",back="Lifestream Cape",legs="Bagua Pants +1",feet="Azimuth Gaiters"})
- sets.idle.PDT.Pet.Indi = set_combine(sets.idle.PDT.Pet, {head="Azimuth Hood +1",body="Azimuth Coat",back="Lifestream Cape",legs="Bagua Pants +1",feet="Azimuth Gaiters"})
- sets.idle.Town = {main="Bolelabunga",sub="Genbu's Shield",range="Dunna",
- head="Vanya Hood",neck="Wiglen Gorget",ear2="Moonshade Earring",ear1="Magnetic Earring",
- body="Jhakri Robe +1",hands="Bagua Mitaines +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Umbra Cape",waist="Fuchi-no-Obi",legs="Assiduity Pants +1",feet="Geomancy Sandals +1"}
- sets.idle.Weak = {main="Bolelabunga",sub="Genbu's Shield",range="Dunna",
- head="Vanya Hood",neck="Wiglen Gorget",ear2="Moonshade Earring",ear1="Magnetic Earring",
- body="Jhakri Robe +1",hands="Bagua Mitaines +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
- back="Umbra Cape",waist="Fuchi-no-Obi",legs="Assiduity Pants +1",feet="Geomancy Sandals +1"}
- -- Defense sets
- sets.defense.PDT = {main="Terra's Staff",sub="Oneiros Grip",range="Dunna",
- head="Vanya Hood",neck="Wiglen Gorget",ear1="Moonshade Earring",ear2="Loquacious Earring",
- body="Jhakri Robe +1",hands="Geomancy Mitaines +1",ring1="Defending Ring",ring2="Gelatinous Ring",
- back="Umbra Cape",waist="Slipor Sash",legs="Assiduity Pants +1",feet="Geomancy Sandals +1"}
- sets.defense.MDT = {main="Terra's Staff",sub="Oneiros Grip",range="Dunna",
- head="Vanya Hood",neck="Wiglen Gorget",ear1="Moonshade Earring",ear2="Loquacious Earring",
- body="Jhakri Robe +1",hands="Geomancy Mitaines +1",ring1="Defending Ring",ring2="Gelatinous Ring",
- back="Umbra Cape",waist="Slipor Sash",legs="Assiduity Pants +1",feet="Geomancy Sandals +1"}
- sets.Kiting = {feet="Geomancy Sandals +1"}
- sets.latent_refresh = {waist="Fucho-no-obi"}
- --------------------------------------
- -- 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 = {main={ name="Solstice", augments={'Mag. Acc.+20','Pet: Damage taken -4%','"Fast Cast"+5',}},
- sub="Genbu's Shield",
- range="Dunna",
- head={ name="Merlinic Hood", augments={'Mag. Acc.+25','"Fast Cast"+5','MND+6',}},
- body="Goliard Saio",
- hands="Geo. Mitaines +1",
- legs="Assid. Pants +1",
- feet="Geo. Sandals +1",
- neck="Wiglen Gorget",
- waist="Witful Belt",
- left_ear="Lifestorm Earring",
- right_ear="Psystorm Earring",
- left_ring="Gelatinous Ring",
- right_ring="Jelly Ring",
- back={ name="Lifestream Cape", augments={'Geomancy Skill +10','Indi. eff. dur. +17','Pet: Damage taken -1%','Damage taken-5%',}}}
- --------------------------------------
- -- Custom buff sets
- --------------------------------------
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for standard casting events.
- -------------------------------------------------------------------------------------------------------------------
- function job_aftercast(spell, action, spellMap, eventArgs)
- if not spell.interrupted then
- if spell.english:startswith('Indi') then
- if not classes.CustomIdleGroups:contains('Indi') then
- classes.CustomIdleGroups:append('Indi')
- end
- send_command('@timers d "'..indi_timer..'"')
- indi_timer = spell.english
- send_command('@timers c "'..indi_timer..'" '..indi_duration..' down spells/00136.png')
- elseif spell.english == 'Sleep' or spell.english == 'Sleepga' then
- send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 60 down spells/00220.png')
- elseif spell.english == 'Sleep II' or spell.english == 'Sleepga II' then
- send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 90 down spells/00220.png')
- end
- elseif not player.indi then
- classes.CustomIdleGroups:clear()
- 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)
- if player.indi and not classes.CustomIdleGroups:contains('Indi')then
- classes.CustomIdleGroups:append('Indi')
- handle_equipping_gear(player.status)
- elseif classes.CustomIdleGroups:contains('Indi') and not player.indi then
- classes.CustomIdleGroups:clear()
- handle_equipping_gear(player.status)
- end
- end
- function job_state_change(stateField, newValue, oldValue)
- if stateField == 'Offense Mode' then
- if newValue == 'Normal' then
- disable('main','sub','range')
- else
- enable('main','sub','range')
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User code that supplements standard library decisions.
- -------------------------------------------------------------------------------------------------------------------
- function job_get_spell_map(spell, default_spell_map)
- if spell.action_type == 'Magic' then
- if spell.skill == 'Enfeebling Magic' then
- if spell.type == 'WhiteMagic' then
- return 'MndEnfeebles'
- else
- return 'IntEnfeebles'
- end
- elseif spell.skill == 'Geomancy' then
- if spell.english:startswith('Indi') then
- return 'Indi'
- end
- end
- end
- end
- function customize_idle_set(idleSet)
- if player.mpp < 51 then
- idleSet = set_combine(idleSet, sets.latent_refresh)
- end
- return idleSet
- end
- -- Called by the 'update' self-command.
- function job_update(cmdParams, eventArgs)
- classes.CustomIdleGroups:clear()
- if player.indi then
- classes.CustomIdleGroups:append('Indi')
- end
- 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, 1)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement