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 to go with this.
- --[[
- gs c toggle luzaf -- Toggles use of Luzaf Ring on and off
- Offense mode is melee or ranged. Used ranged offense mode if you are engaged
- for ranged weaponskills, but not actually meleeing.
- Acc on offense mode (which is intended for melee) will currently use .Acc weaponskill
- mode for both melee and ranged weaponskills. Need to fix that in core.
- --]]
- -- Initialization function for this job file.
- function get_sets()
- -- Load and initialize the include file.
- include('Mote-Include.lua')
- --Default Macro Set for RNG
- send_command('input /macro book 14;wait .1;input /macro set 8')
- ranged_ws = S{
- "Hot Shot","Split Shot","Sniper Shot","Slug Shot","Blast Shot","Heavy Shot","Detonator",
- "Numbing Shot","Last Stand","Coronach","Trueflight","Wildfire","Flaming Arrow",
- "Piercing Arrow","Dulling Arrow","Sidewinder","Blast Arrow","Arching Arrow",
- "Empyreal Arrow","Refulgent Arrow","Apex Arrow","Namas Arrow","Jishnu's Radiance"}
- end
- -- Called when this job file is unloaded (eg: job change)
- function file_unload()
- if binds_on_unload then
- binds_on_unload()
- end
- windower.send_command('unbind ^`')
- windower.send_command('unbind !`')
- end
- -- Define sets and vars used by this job file.
- function init_gear_sets()
- -- Additional local binds
- -- Cor doesn't use hybrid defense mode; using that for ranged mode adjustments.
- windower.send_command('bind ^f9 gs c cycle RangedMode')
- windower.send_command('bind ^` input /ja "Double-up" <me>')
- windower.send_command('bind !` input /ja "Bolter\'s Roll" <me>')
- -- Options: Override default values
- options.OffenseModes = {'Ranged', 'Melee', 'Acc', 'MAXAcc', 'DW'}
- options.RangedModes = {'Normal', 'Acc', 'MAXAcc'}
- options.WeaponskillModes = {'Normal', 'WAcc', 'Att', 'Mod'}
- options.CastingModes = {'Normal', 'Resistant'}
- options.IdleModes = {'Normal'}
- options.RestingModes = {'Normal'}
- options.PhysicalDefenseModes = {'PDT'}
- options.MagicalDefenseModes = {'MDT'}
- state.Defense.PhysicalMode = 'PDT'
- gear.RAbullet = "Achiyal. Bullet"
- gear.WSbullet = "Achiyal. Bullet"
- gear.MAbullet = "Orichalc. Bullet"
- gear.QDbullet = "Adlivun Bullet"
- state.warned = True
- options.ammo_warning_limit = 10
- --------------------------------------
- -- Start defining the sets
- --------------------------------------
- -- Precast Sets
- -- Precast sets to enhance JAs
- sets.precast.JA['Bounty Shot'] = {head="Arcadian Beret +1",hands="Sylvan Glovelettes +2",waist="Chaac Belt"}
- sets.precast.JA['Scavenge'] = {feet="Orion Socks +1"}
- sets.precast.JA['Shadowbind'] = {head="Arcadian Beret +1",hands="Orion Bracer's +1"}
- sets.precast.JA['Sharpshot'] = {legs="Orion Braccae +1"}
- sets.precast.JA['Camouflage'] = {body="Orion Jerkin +1"}
- sets.precast.JA['Eagle Eye Shot'] = {
- head="Uk'uxkaj Cap",
- body="Orion Jerkin +1",
- hands="Arcadian Bracers +1",
- legs="Arcadian Braccae +1",
- feet="Arcadian Socks +1",
- neck="Nefarious Collar",
- waist="Metalsinger Belt",
- ear1="Sylvan Earring",
- ear2="Sylvan Earring",
- ring1="Ifrit Ring +1",
- ring2="Ifrit Ring +1",
- back="Rancorous Mantle",}
- -- Waltz set (chr and vit)
- sets.precast.Waltz = {
- head="Whirlpool Mask",
- body="Arcadian Jerkin +1",hands="Iuitl Wristbands +1",
- legs="Nahtirah Trousers",feet="Iuitl Gaiters"}
- -- Don't need any special gear for Healing Waltz.
- sets.precast.Waltz['Healing Waltz'] = {}
- -- Fast cast sets for spells
- sets.precast.FC = {ear2="Loquacious Earring",hands="Thaumas Gloves",ring1="Prolix Ring"}
- sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads"})
- -- Snapshot set
- sets.precast.RA = {ammo="Achiyal. Bullet",head="Sylvan Gapette +2",body="Sylvan Caban +2",
- hands="Iuitl Wristbands +1",legs="Nahtirah Trousers",feet="Khepri Gamashes",waist="Impulse Belt"}
- -- Overkill set
- sets.precast.RA.Overkill = {ammo="Achiyal. Bullet",head="Orion Beret +1",body="Arcadian Jerkin +1",
- hands="Iuitl Wristbands +1",legs="Murzim Cosciales",feet="Arcadian Socks +1",waist="Impulse Belt"}
- -- Weaponskill sets
- -- Default set for any weaponskill that isn't any more specifically defined
- sets.precast.WS = {ammo="Adlivun Arrow",
- head="Arcadian Beret +1",body="Khepri Jacket",hands="Arcadian Bracers +1",
- legs="Nahtirah Trousers",feet="Arcadian Socks +1",
- neck=gear.ElementalGorget,waist=gear.ElementalBelt,
- ear1="Sylvan Earring",ear2="Moonshade Earring",
- ring1="Ifrit Ring +1",ring2="Rajas Ring",
- back="Buquwik Cape"}
- sets.precast.WS.WAcc = set_combine(sets.precast.WS, {legs="Arcadian Braccae +1",
- feet="Orion Socks +1",
- ring1="Hajduk Ring +1",
- ring2="Hajduk Ring +1"})
- -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
- sets.precast.WS['Evisceration'] = sets.precast.WS
- sets.precast.WS['Exenterator'] = set_combine(sets.precast.WS, {legs="Nahtirah Trousers"})
- -- ammo="Achiyal. Arrow",
- -- ammo="Adlivun Arrow"
- sets.precast.WS['Jishnu\'s Radiance'] = {ammo="Achiyal. Arrow",
- head="Arcadian Beret +1",body="Orion Jerkin +1",hands="Arcadian Bracers +1",
- legs="Nahtirah Trousers",feet="Arcadian Socks +1",
- neck="Light Gorget",waist="Light Belt",
- ear1="Vulcan's Pearl", ear2="Moonshade Earring",
- ring1="Ifrit Ring +1",ring2="Ramuh Ring +1",
- back="Rancorous Mantle"}
- --"Ramuh Ring +1",
- sets.precast.WS['Jishnu\'s Radiance'].WAcc = set_combine(sets.precast.WS['Jishnu\'s Radiance'], {range={ name="Phaosphaelia", augments={'Accuracy+11','"Store TP"+6',}},ammo="Achiyal. Arrow",
- legs="Arcadian Braccae +1",
- feet="Orion Socks +1",
- ring1="Hajduk Ring +1",
- ring2="Hajduk Ring +1"})
- sets.precast.WS['Coronach'] = {ammo="Achiyal. Bullet",
- head="Arcadian Beret +1",
- body="Orion Jerkin +1",
- hands="Arcadian Bracers +1",
- legs="Nahtirah Trousers",
- feet="Arcadian Socks +1",
- neck="Breeze Gorget",waist="Breeze Belt",
- ear1="Sylvan Earring",ear2="Vulcan's Pearl",
- ring1="Ifrit Ring +1",ring2="Rajas Ring",
- back="Buquwik Cape"}
- sets.precast.WS['Coronach'].WAcc = set_combine(sets.precast.WS['Coronach'], {})
- sets.precast.WS['Last Stand'] = {ammo=gear.WSbullet,
- head="Arcadian Beret +1",
- body="Orion Jerkin +1",
- hands="Orion Bracers +1",
- legs="Nahtirah Trousers",
- feet="Arcadian Socks +1",
- neck="Light Gorget",
- waist="Light Belt",
- ear1="Sylvan Earring",
- ear2="Moonshade Earring",
- ring1="Garuda Ring +1",
- ring2="Garuda Ring +1",
- back="Buquwik Cape"}
- sets.precast.WS['Last Stand'].WAcc = set_combine(sets.precast.WS['Last Stand'], {
- legs="Arcadian Braccae +1",
- feet="Orion Socks +1"})
- sets.precast.WS['Last Stand'].Mod = set_combine(sets.precast.WS['Last Stand'], {body="Dread Jupon",
- legs="Orion Braccae +1",back="Ik cape",feet="Vanir Boots"})
- sets.precast.WS['Wildfire'] = {ammo=gear.MAbullet,
- head="Arcadian Beret +1",
- body="Orion Jerkin +1",
- hands="Seiryu's Kote",
- legs="Shneddick Tights +1",
- feet={ name="Qaaxo Leggings", augments={'Attack+15','"Mag.Atk.Bns."+15','STR+12',}},
- neck="Stoicheion Medal",
- waist="Aquiline Belt",
- ear1="Friomisi Earring",
- ear2="Hecate's Earring",
- ring1="Garuda Ring +1",
- ring2="Garuda Ring +1",
- back="Toro Cape"}
- sets.precast.WS['Wildfire'].Brew = {ammo=gear.MAbullet,
- head="Arcadian Beret +1",
- body="Orion Jerkin +1",
- hands="Orion Bracers +1",
- legs="Shneddick Tights +1",
- feet={ name="Qaaxo Leggings", augments={'Attack+15','"Mag.Atk.Bns."+15','STR+12',}},
- neck="Stoicheion Medal",
- waist="Aquiline Belt",
- ear1="Friomisi Earring",
- ear2="Hecate's Earring",
- ring1="Garuda Ring +1",
- ring2="Garuda Ring +1",
- back="Toro Cape"}
- sets.precast.WS['Leaden Salute'] = sets.precast.WS['Wildfire']
- -- Midcast Sets
- sets.midcast.FastRecast = {
- head="Orion Beret +1",
- body="Orion Jerkin +1",hands="Orion Bracers +1",
- legs="Orion Braccae +1",feet="Orion Socks +1"}
- -- Specific spells
- sets.midcast.Utsusemi = sets.midcast.FastRecast
- sets.midcast.CorsairShot = {ammo=gear.QDbullet,
- head="Blood Mask",body="Laksamana's Frac",hands="Schutzen Mittens",
- legs="Iuitl Tights",feet="Commodore Bottes +2",
- neck="Stoicheion Medal",waist="Aquiline Belt",
- ear1="Friomisi Earring",ear2="Hecate's Earring",
- ring1="Hajduk Ring",ring2="Demon's Ring",
- back="Toro Cape"}
- sets.midcast.CorsairShot.Acc = {ammo=gear.QDbullet,
- head="Laksamana's Hat",body="Laksamana's Frac",hands="Schutzen Mittens",
- legs="Iuitl Tights",feet="Iuitl Gaiters",
- neck="Stoicheion Medal",waist="Aquiline Belt",
- ear1="Lifestorm Earring",ear2="Psystorm Earring",
- ring1="Garuda Ring +1",ring2="Sangoma Ring",
- back="Navarch's Mantle"}
- sets.midcast.CorsairShot['Light Shot'] = {ammo=gear.QDbullet,
- head="Laksamana's Hat",body="Laksamana's Frac",hands="Schutzen Mittens",
- legs="Iuitl Tights",feet="Iuitl Gaiters",
- neck="Stoicheion Medal",waist="Aquiline Belt",
- ear1="Lifestorm Earring",ear2="Psystorm Earring",
- ring1="Garuda Ring +1",ring2="Sangoma Ring",
- back="Navarch's Mantle"}
- sets.midcast.CorsairShot['Dark Shot'] = sets.midcast.CorsairShot['Light Shot']
- -- Ranged gear
- sets.midcast.RA = {main="Atoyac",sub="Legion Scutum",ammo="Achiyal. Bullet",
- --main="Atoyac",sub="Legion Scutum",
- --ammo="Achiyal. Bullet",
- --head={ name="Arcadian Beret +1", augments={'Enhances "Recycle" effect',}},
- --body="Arcadian Jerkin +1",
- --hands="Syl. Glvltte. +2",
- --legs="Sylvan Bragues +2",
- --feet={ name="Qaaxo Leggings", augments={'Attack+15','"Mag.Atk.Bns."+15','STR+12',}},
- --neck="Ocachi Gorget",
- --waist="Patentia Sash",
- --left_ear="Volley Earring",
- --right_ear="Tripudio Earring",
- --left_ring="K'ayres Ring",
- --right_ring="Rajas Ring",
- --back="Sylvan Chlamys"}
- -- OLD SET
- head="Arcadian Beret +1",
- body="Arcadian Jerkin +1",
- hands="Sylvan Glovelettes +2",
- legs="Arcadian Braccae +1",
- feet={ name="Qaaxo Leggings", augments={'Attack+15','"Mag.Atk.Bns."+15','STR+12',}},
- neck="Ocachi Gorget",
- waist="Elanid Belt",
- ear1="Volley Earring",
- ear2="Tripudio Earring",
- ring1="Ifrit Ring +1",
- ring2="Rajas Ring",
- back="Rancorous Mantle"}
- sets.midcast.RA.Acc = {main="Atoyac",sub="Legion Scutum",ammo="Achiyal. Bullet",
- head="Arcadian Beret +1",
- body="Arcadian Jerkin +1",
- hands="Sylvan Glovelettes +2",
- legs="Arcadian Braccae +1",feet={ name="Qaaxo Leggings", augments={'Attack+15','"Mag.Atk.Bns."+15','STR+12',}},
- neck="Ocachi Gorget",waist="Elanid Belt",ear1="Volley Earring",ear2="Tripudio Earring",
- ring1="Hajduk Ring +1",ring2="Rajas Ring",
- back="Lutian Cape"}
- --sets.midcast.RA.MAXAcc = {main="Mekki shakki",sub="Bloodrain Strap",ammo="Achiyal. Bullet",
- --head="Arcadian Beret +1",
- --body="Arcadian Jerkin +1",
- --hands="Sylvan Glovelettes +2",
- --legs="Arcadian Braccae +1",feet="Orion Socks +1",
- --neck="Ej Necklace +1",waist="Elanid Belt",
- --ear1="Volley Earring",ear2="Tripudio Earring",
- --ring1="Hajduk Ring +1",ring2="Hajduk Ring +1",
- --back="Lutian Cape"}
- --sets.midcast.RA.Acc = {main="Mekki Shakki",
- -- sub="Bloodrain Strap",
- -- ammo="Achiyal. Bullet",
- -- head={ name="Arcadian Beret +1", augments={'Enhances "Recycle" effect',}},
- -- body="Kyujutsugi",
- -- hands="Syl. Glvltte. +2",
- -- legs="Sylvan Bragues +2",
- -- feet={ name="Qaaxo Leggings", augments={'Attack+15','"Mag.Atk.Bns."+15','STR+12',}},
- -- neck="Ocachi Gorget",
- -- waist="Patentia Sash",
- -- left_ear="Volley Earring",
- -- right_ear="Tripudio Earring",
- -- left_ring="K'ayres Ring",
- -- right_ring="Rajas Ring",
- --back="Sylvan Chlamys"}
- sets.midcast.RA.MAXAcc = {main="Mekki shakki",sub="Bloodrain Strap",ammo="Achiyal. Bullet",
- head="Arcadian Beret +1",
- body="Arcadian Jerkin +1",
- hands="Sylvan Glovelettes +2",
- legs="Arcadian Braccae +1",feet="Orion Socks +1",
- neck="Ej Necklace +1",waist="Elanid Belt",
- ear1="Volley Earring",ear2="Tripudio Earring",
- ring1="Hajduk Ring +1",ring2="Hajduk Ring +1",
- back="Lutian Cape"}
- -- Barrage Sets
- sets.BarrageMid = {
- head="Uk'uxkaj Cap",
- body="Orion Jerkin +1",
- hands="Orion Bracers +1",
- legs="Desultor Tassets",
- feet="Arcadian Socks +1",
- neck="Nefarious Collar",
- waist="Metalsinger Belt",
- ear1="Vulcan's Pearl",
- ear2="Sylvan Earring",
- ring1="Ifrit Ring +1",
- ring2="Ifrit Ring +1",
- back="Rancorous Mantle"}
- sets.BarrageMid.Acc = {
- head="Uk'uxkaj Cap",
- body="Orion Jerkin +1",
- hands="Orion Bracers +1",
- legs="Desultor Tassets",
- feet="Orion Socks +1",
- neck="Ej Necklace +1",
- waist="Elanid Belt",
- ear1="Volley Earring",
- ear2="Clearview Earring",
- ring1="Hajduk Ring +1",
- ring2="Hajduk Ring +1",
- back="Rancorous Mantle"}
- sets.BarrageMid.MAXAcc = {
- head="Uk'uxkaj Cap",
- body="Orion Jerkin +1",
- hands="Orion Bracers +1",
- legs="Desultor Tassets",
- feet="Orion Socks +1",
- neck="Ej Necklace +1",
- waist="Elanid Belt",
- ear1="Volley Earring",
- ear2="Clearview Earring",
- ring1="Hajduk Ring +1",
- ring2="Hajduk Ring +1",
- back="Lutian Cape"}
- -- Sets to return to when not performing an action.
- -- Resting sets
- sets.resting = {neck="Wiglen Gorget",ring1="Sheltered Ring",ring2="Paguroidea Ring"}
- -- Idle sets
- sets.idle = {head="Iuitl Headgear +1",body="Dread Jupon",hands="Iuitl Wristbands +1",
- legs="Nahtirah Trousers",feet="Fajin Boots",
- neck="Twilight Torque",waist="Flume Belt",
- ear1="Darkness Earring",ear2="Black Earring",
- ring1="Patricius Ring",ring2="Defending Ring",
- back="Shadow Mantle"}
- sets.idle.Town = {ammo="Achiyal. Bullet",
- head="Arcadian Beret +1",
- body="Arcadian Jerkin +1",
- hands="Sylvan Glovelettes +2",
- legs="Nahtirah Trousers",
- feet="Fajin Boots",
- neck="Ocachi Gorget",
- waist="Elanid Belt",
- ear1="Volley Earring",
- ear2="Tripudio Earring",
- ring1="Ifrit Ring +1",
- ring2="Rajas Ring",
- back="Rancorous Mantle"}
- -- Defense sets
- sets.defense.PDT = {
- head="Iuitl Headgear +1",body="Orion Jerkin +1",hands="Iuitl Wristbands +1",
- legs="Nahtirah Trousers",feet="Iuitl Gaiters",
- neck="Twilight Torque",waist="Flume Belt",
- ear1="Darkness Earring",ear2="Black Earring",
- ring1="Dark Ring",ring2="Defending Ring",
- back="Mollusca Mantle"}
- sets.defense.MDT = {
- head="Whirlpool Mask",body="Orion Jerkin +1",hands="Iuitl Wristbands +1",
- legs="Nahtirah Trousers",feet="Iuitl Gaiters",
- neck="Twilight Torque",waist="Flume Belt",
- ring1="Shadow Ring",ring2="Defending Ring",
- back="Engulfer Cape"}
- sets.Kiting = {feet="Fajin Boots"}
- -- 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.Melee = {
- head="Whirlpool Mask",body="Kyujutsugi",hands="Sylvan Glovelettes +2",
- legs="Byakko's Haidate",feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}},
- neck="Ocachi Gorget",waist="Goading Belt",
- ear1="Volley Earring",ear2="Tripudio Earring",
- ring1="K'ayres Ring",ring2="Rajas Ring",
- back="Sylvan Chlamys"}
- sets.engaged.Acc = {
- main="Kraken Club",
- sub="Legion Scutum",
- range={ name="Phaosphaelia", augments={'Accuracy+11','"Store TP"+6',}},
- ammo="Achiyal. Arrow",
- head="Whirlpool Mask",
- body="Shneddick Tabard +1",
- hands={ name="Qaaxo Mitaines", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}},
- legs={ name="Manibozho Brais", augments={'Attack+15','Accuracy+10','STR+10',}},
- feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}},
- neck="Ej necklace +1",
- waist="Hurch'lan Sash",
- left_ear="Steelflash Earring",
- right_ear="Heartseeker Earring",
- left_ring="Mars's Ring",
- right_ring="Ramuh Ring +1",
- back="Kayapa Cape"}
- sets.engaged.MAXAcc = {
- head="Whirlpool Mask",body="Thaumas Coat",hands="Qaaxo Mitaines",
- legs="Manibozho Brais",feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}},
- neck="Ej Necklace +1",
- --waist="Hurch'lan Sash",
- waist="Patentia Sash",
- ear1="Heartseeker Earring",ear2="Dudgeon Earring",
- ring1="Epona's Ring",ring2="Rajas Ring",
- back="Letalis Mantle"}
- sets.engaged.Melee.DW = {
- head="Whirlpool Mask",body="Thaumas Coat",hands="Qaaxo Mitaines",
- legs="Manibozho Brais",feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}},
- neck="Asperity Necklace",waist="Patentia Sash",
- ear1="Heartseeker Earring",ear2="Dudgeon Earring",
- ring1="Epona's Ring",ring2="Rajas Ring",
- back="Atheling Mantle"}
- sets.engaged.Acc.DW = {
- head="Whirlpool Mask",body="Thaumas Coat",hands="Qaaxo Mitaines",
- legs="Manibozho Brais",feet={ name="Qaaxo Leggings", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}},
- neck="Ej Necklace +1",waist="Hurch'lan Sash",
- ear1="Brutal Earring",ear2="Suppanomimi",
- ring1="Epona's Ring",ring2="Rajas Ring",
- back="Letalis Mantle"}
- sets.engaged.Ranged = {
- head="Whirlpool Mask",body="Iuitl Vest",hands="Iuitl Wristbands +1",
- legs="Nahtirah Trousers",feet="Iuitl Gaiters",
- neck="Twilight Torque",waist="Flume Belt",
- ear1="Volley Earring",ear2="Clearview Earring",
- ring1="Dark Ring",ring2="Defending Ring",
- back="Shadow Mantle"}
- define_roll_values()
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks that are called to process player actions at specific points in time.
- -------------------------------------------------------------------------------------------------------------------
- -- function pretarget(spell,action)
- -- if (spell.english == 'Ranged' and spell.target.distance > 21.1) or (player.status == 'Engaged' and ((ranged_ws:contains(spell.english) and spell.target.distance > 16+target_distance) or (spell.type == "WeaponSkill" and not ranged_ws:contains(spell.english) and spell.target.distance > target_distance))) then -- Cancel Ranged Attack or WS If You Are Out Of Range --
- -- cancel_spell()
- -- add_to_chat(123, spell.name..' Canceled: [Out of Range]')
- -- return
- -- end
- -- end
- -- 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)
- -- bullet checks
- --local check_bullet
- -- local check_bullet_count = 1
- --if spell.type == 'WeaponSkill' and bow_gun_weaponskills:contains(spell.english) then
- -- if spell.element == 'None' then
- -- physical weaponskills
- -- check_bullet = gear.WSbullet
- -- else
- -- magical weaponskills
- --check_bullet = gear.MAbullet
- -- end
- --elseif spell.type == 'CorsairShot' then
- --check_bullet = gear.QDbullet
- --elseif spell.action_type == 'Ranged Attack' then
- -- check_bullet = gear.RAbullet
- -- if buffactive['Triple Shot'] then
- -- check_bullet_count = 3
- -- end
- --end
- -- gear sets
- if (spell.type == 'CorsairRoll' or spell.english == "Double-Up") and state.LuzafRing then
- equip(sets.precast.LuzafRing)
- elseif spell.type == 'CorsairShot' and state.CastingMode == 'Resistant' then
- classes.CustomClass = 'Acc'
- elseif spell.type == 'Waltz' then
- refine_waltz(spell, action, spellMap, eventArgs)
- 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 spell.type == 'CorsairRoll' and not spell.interrupted then
- display_roll_info(spell)
- 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)
- if buffactive.Barrage and sets.BarrageMid[state.RangedMode] then
- equip(sets.BarrageMid[state.RangedMode])
- elseif buffactive.Barrage then
- equip(sets.BarrageMid)
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Customization hooks for idle and melee sets, after they've been automatically constructed.
- -------------------------------------------------------------------------------------------------------------------
- -- Return a customized weaponskill mode to use for weaponskill sets.
- -- Don't return anything if you're not overriding the default value.
- function get_custom_wsmode(spell, action, spellMap)
- if buffactive['Transcendancy'] then
- return 'Brew'
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- General hooks for other events.
- -------------------------------------------------------------------------------------------------------------------
- -- Called when the player's status changes.
- function job_status_change(newStatus, oldStatus, eventArgs)
- if newStatus == 'Engaged' and player.equipment.main == 'Chatoyant Staff' then
- state.OffenseMode = 'Ranged'
- end
- end
- -- 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 status == "Camouflage" then
- if gain_or_loss == "gain" then
- send_command('@wait .5;gs disable body')
- else
- enable('body')
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User code that supplements self-commands.
- -------------------------------------------------------------------------------------------------------------------
- -- 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)
- if newStatus == 'Engaged' and player.equipment.main == 'Chatoyant Staff' then
- state.OffenseMode = 'Ranged'
- end
- end
- -- Job-specific toggles.
- function job_toggle(field)
- if field:lower() == 'luzaf' then
- state.LuzafRing = not state.LuzafRing
- return "Use of Luzaf Ring", state.LuzafRing
- end
- end
- -- Set eventArgs.handled to true if we don't want the automatic display to be run.
- function display_current_job_state(eventArgs)
- local defenseString = ''
- if state.Defense.Active then
- local defMode = state.Defense.PhysicalMode
- if state.Defense.Type == 'Magical' then
- defMode = state.Defense.MagicalMode
- end
- defenseString = 'Defense: '..state.Defense.Type..' '..defMode..', '
- end
- local rollsize = 'Small'
- if state.LuzafRing then
- rollsize = 'Large'
- end
- local pcTarget = ''
- if state.PCTargetMode ~= 'default' then
- pcTarget = ', Target PC: '..state.PCTargetMode
- end
- local npcTarget = ''
- if state.SelectNPCTargets then
- pcTarget = ', Target NPCs'
- end
- add_to_chat(122,'Offense: '..state.OffenseMode..', Ranged: '..state.RangedMode..', WS: '..state.WeaponskillMode..
- ', Quick Draw: '..state.CastingMode..', '..defenseString..'Kiting: '..on_off_names[state.Kiting]..
- ', Roll Size: '..rollsize..pcTarget..npcTarget)
- eventArgs.handled = true
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- function define_roll_values()
- rolls = {
- ["Corsair's Roll"] = {lucky=5, unlucky=9, bonus="Experience Points"},
- ["Ninja Roll"] = {lucky=4, unlucky=8, bonus="Evasion"},
- ["Hunter's Roll"] = {lucky=4, unlucky=8, bonus="Accuracy"},
- ["Chaos Roll"] = {lucky=4, unlucky=8, bonus="Attack"},
- ["Magus's Roll"] = {lucky=2, unlucky=6, bonus="Magic Defense"},
- ["Healer's Roll"] = {lucky=3, unlucky=7, bonus="Cure Potency Received"},
- ["Puppet Roll"] = {lucky=4, unlucky=8, bonus="Pet Magic Accuracy/Attack"},
- ["Choral Roll"] = {lucky=2, unlucky=6, bonus="Spell Interruption Rate"},
- ["Monk's Roll"] = {lucky=3, unlucky=7, bonus="Subtle Blow"},
- ["Beast Roll"] = {lucky=4, unlucky=8, bonus="Pet Attack"},
- ["Samurai Roll"] = {lucky=2, unlucky=6, bonus="Store TP"},
- ["Evoker's Roll"] = {lucky=5, unlucky=9, bonus="Refresh"},
- ["Rogue's Roll"] = {lucky=5, unlucky=9, bonus="Critical Hit Rate"},
- ["Warlock's Roll"] = {lucky=4, unlucky=8, bonus="Magic Accuracy"},
- ["Fighter's Roll"] = {lucky=5, unlucky=9, bonus="Double Attack Rate"},
- ["Drachen Roll"] = {lucky=3, unlucky=7, bonus="Pet Accuracy"},
- ["Gallant's Roll"] = {lucky=3, unlucky=7, bonus="Defense"},
- ["Wizard's Roll"] = {lucky=5, unlucky=9, bonus="Magic Attack"},
- ["Dancer's Roll"] = {lucky=3, unlucky=7, bonus="Regen"},
- ["Scholar's Roll"] = {lucky=2, unlucky=6, bonus="Conserve MP"},
- ["Bolter's Roll"] = {lucky=3, unlucky=9, bonus="Movement Speed"},
- ["Caster's Roll"] = {lucky=2, unlucky=7, bonus="Fast Cast"},
- ["Courser's Roll"] = {lucky=3, unlucky=9, bonus="Snapshot"},
- ["Blitzer's Roll"] = {lucky=4, unlucky=9, bonus="Attack Delay"},
- ["Tactician's Roll"] = {lucky=5, unlucky=8, bonus="Regain"},
- ["Allies's Roll"] = {lucky=3, unlucky=10, bonus="Skillchain Damage"},
- ["Miser's Roll"] = {lucky=5, unlucky=7, bonus="Save TP"},
- ["Companion's Roll"] = {lucky=2, unlucky=10, bonus="Pet Regain and Regen"},
- ["Avenger's Roll"] = {lucky=4, unlucky=8, bonus="Counter Rate"},
- }
- end
- function display_roll_info(spell)
- rollinfo = rolls[spell.english]
- local rollsize = 'Small'
- if state.LuzafRing then
- rollsize = 'Large'
- end
- if rollinfo then
- add_to_chat(104, spell.english..' provides a bonus to '..rollinfo.bonus..'. Roll size: '..rollsize)
- add_to_chat(104, 'Lucky roll is '..tostring(rollinfo.lucky)..', Unlucky roll is '..tostring(rollinfo.unlucky)..'.')
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment