Code:
-------------------------------------------------------------------------------------------------------------------
-- Blue Mage --
-------------------------------------------------------------------------------------------------------------------
function get_sets ()
mote_include_version = 2
include('Mote-Include.lua')
include('organizer-lib')
end
function job_setup ()
state.Buff['Burst Affinity'] = buffactive['Burst Affinity'] or true
state.Buff['Chain Affinity'] = buffactive['Chain Affinity'] or false
state.Buff.Diffusion = buffactive.Diffusion or false
state.Buff.Efflux = buffactive.Efflux or false
state.Buff['Unbridled Learning'] = buffactive['Unbridled Learning'] or false
blue_magic_maps = {}
blue_magic_maps.Physical = S{
'Bilgestorm'
}
-- Spells with heavy accuracy penalties, that need to prioritize accuracy first.
blue_magic_maps.PhysicalAcc = S{
'Heavy Strike',
}
-- Physical spells with Str stat mod
blue_magic_maps.PhysicalStr = S{
'Battle Dance','Bloodrake','Death Scissors','Dimensional Death',
'Empty Thrash','Quadrastrike','Sinker Drill','Spinal Cleave',
'Uppercut','Vertical Cleave'
}
-- Physical spells with Dex stat mod
blue_magic_maps.PhysicalDex = S{
'Amorphic Spikes','Asuran Claws','Barbed Crescent','Claw Cyclone','Disseverment',
'Foot Kick','Frenetic Rip','Goblin Rush','Hysteric Barrage','Paralyzing Triad',
'Seedspray','Sickle Slash','Smite of Rage','Terror Touch','Thrashing Assault',
'Vanity Dive'
}
-- Physical spells with Vit stat mod
blue_magic_maps.PhysicalVit = S{
'Body Slam','Cannonball','Delta Thrust','Glutinous Dart','Grand Slam',
'Power Attack','Quad. Continuum','Sprout Smack','Sub-zero Smash'
}
-- Physical spells with Agi stat mod
blue_magic_maps.PhysicalAgi = S{
'Benthic Typhoon','Feather Storm','Helldive','Hydro Shot','Jet Stream',
'Pinecone Bomb','Spiral Spin','Wild Oats'
}
-- Physical spells with Int stat mod
blue_magic_maps.PhysicalInt = S{
'Mandibular Bite','Queasyshroom'
}
-- Physical spells with Mnd stat mod
blue_magic_maps.PhysicalMnd = S{
'Ram Charge','Screwdriver','Tourbillion'
}
-- Physical spells with Chr stat mod
blue_magic_maps.PhysicalChr = S{
'Bludgeon'
}
-- Physical spells with HP stat mod
blue_magic_maps.PhysicalHP = S{
'Final Sting'
}
-- Magical Spells --
-- Magical spells with the typical Int mod
blue_magic_maps.Magical = S{
'Blastbomb','Blazing Bound','Bomb Toss','Cursed Sphere','Dark Orb','Death Ray',
'Diffusion Ray','Droning Whirlwind','Embalming Earth','Firespit','Foul Waters',
'Ice Break','Leafstorm','Maelstrom','Rail Cannon','Regurgitation','Rending Deluge',
'Retinal Glare','Subduction','Tem. Upheaval','Water Bomb'
}
-- Magical spells with a primary Mnd mod
blue_magic_maps.MagicalMnd = S{
'Acrid Stream','Evryone. Grudge','Magic Hammer','Mind Blast'
}
-- Magical spells with a primary Chr mod
blue_magic_maps.MagicalChr = S{
'Eyes On Me','Mysterious Light'
}
-- Magical spells with a Vit stat mod (on top of Int)
blue_magic_maps.MagicalVit = S{
'Thermal Pulse'
}
-- Magical spells with a Dex stat mod (on top of Int)
blue_magic_maps.MagicalDex = S{
'Charged Whisker','Gates of Hades'
}
-- Magical spells (generally debuffs) that we want to focus on magic accuracy over damage.
-- Add Int for damage where available, though.
blue_magic_maps.MagicAccuracy = S{
'1000 Needles','Absolute Terror','Actinic Burst','Auroral Drape','Awful Eye',
'Blank Gaze','Blistering Roar','Blood Drain','Blood Saber','Chaotic Eye',
'Cimicine Discharge','Cold Wave','Corrosive Ooze','Demoralizing Roar','Digest',
'Dream Flower','Enervation','Feather Tickle','Filamented Hold','Frightful Roar',
'Geist Wall','Hecatomb Wave','Infrasonics','Jettatura','Light of Penance',
'Lowing','Mind Blast','Mortal Ray','MP Drainkiss','Osmosis','Reaving Wind',
'Sandspin','Sandspray','Sheep Song','Soporific','Sound Blast','Stinking Gas',
'Sub-zero Smash','Venom Shell','Voracious Trunk','Yawn'
}
-- Breath-based spells
blue_magic_maps.Breath = S{
'Bad Breath','Flying Hip Press','Frost Breath','Heat Breath',
'Hecatomb Wave','Magnetite Cloud','Poison Breath','Radiant Breath','Self-Destruct',
'Thunder Breath','Vapor Spray','Wind Breath'
}
-- Stun spells
blue_magic_maps.Stun = S{
'Blitzstrahl','Frypan','Head Butt','Sudden Lunge','Tail slap','Temporal Shift',
'Thunderbolt','Whirl of Rage'
}
-- Healing spells
blue_magic_maps.Healing = S{
'Healing Breeze','Magic Fruit','Plenilune Embrace','Pollen','Restoral','White Wind',
'Wild Carrot'
}
-- Buffs that depend on blue magic skill
blue_magic_maps.SkillBasedBuff = S{
'Barrier Tusk','Diamondhide','Magic Barrier','Metallic Body','Plasma Charge',
'Pyric Bulwark','Reactor Cool',
}
-- Other general buffs
blue_magic_maps.Buff = S{
'Amplification','Animating Wail','Battery Charge','Carcharian Verve','Cocoon',
'Erratic Flutter','Exuviation','Fantod','Feather Barrier','Harden Shell',
'Memento Mori','Nat. Meditation','Occultation','Orcish Counterstance','Refueling',
'Regeneration','Saline Coat','Triumphant Roar','Warm-Up','Winds of Promyvion',
'Zephyr Mantle'
}
-- Spells that require Unbridled Learning to cast.
unbridled_spells = S{
'Absolute Terror','Bilgestorm','Blistering Roar','Bloodrake','Carcharian Verve',
'Crashing Thunder','Droning Whirlwind','Gates of Hades','Harden Shell','Polar Roar',
'Pyric Bulwark','Thunderbolt','Tourbillion','Uproot'
}
end
function user_setup()
state.OffenseMode:options('Normal', 'DW', 'Haste', 'Medium', 'High', 'VeryHigh')
state.IdleMode:options('Idle', 'Town', 'PDT')
-- Additional Local Binds --
end
function user_unload()
send_command('unbind f9')
send_command('unbind ^f9')
send_command('unbind !f9')
send_command('unbind f10')
send_command('unbind ^f10')
send_command('unbind !f10')
send_command('unbind f11')
send_command('unbind ^f11')
send_command('unbind !f11')
send_command('unbind f12')
send_command('unbind ^f12')
send_command('unbind !f12')
send_command('unbind ^`')
send_command('unbind !`')
send_command('unbind @`')
end
function init_gear_sets ()
sets.buff['Burst Affinity'] = {feet="Mavi Basmak +2"}
sets.buff['Chain Affinity'] = {head="Mavi Kavuk +2", feet="Assimilator's Charuqs"}
sets.buff.Diffusion = {feet="Luhlaza Charuqs"}
sets.buff.Efflux = {legs="Mavi Tayt +2"}
sets.precast.JA['Azure Lore'] = {}
sets.precast.Waltz = {}
--Precast Sets --
sets.precast.FC = {
head="Haruspex Hat",
eaar1="Enchanter Earring +1",
ear2="Loquacious Earring",
body="Luhlaza Jubbah",
ring1="Prolix Ring",
back="Swith Cape",
waist="Witful Belt",
legs="Orvail Pants +1",
feet="Chelona Boots"}
sets.precast.FC['Blue Magic'] = set_combine(sets.precast.FC, {body="Mavi Mintan +2"})
sets.precast.WS = {
head="Taeon Chapeau",
neck=gear.ElementalGorget,
ear1="Bladeborn Earring",
ear2="Steelflash Earring",
body="Rawhide Vest",
hands={ name="Qaaxo Mitaines", augments={'Attack+15','Evasion+15','"Dbl.Atk."+2',}},
ring1="Rajas Ring",
ring2="Epona's Ring",
back="Letalis Mantle",
waist=gear.ElementalBelt,
legs="Taeon Tights",
feet="Taeon Boots"}
sets.precast.WS['Chant du Cygne'] = {
ammo="Jukukik Feather",
head="Taeon Chapeau",
neck="Asperity Necklace",
ear1="Bladeborn Earring",
ear2="Steelflash Earring",
body="Rawhide Vest",
hands={ name="Qaaxo Mitaines", augments={'Attack+15','Evasion+15','"Dbl.Atk."+2',}},
ring1="Rajas Ring",
ring2="Epona's Ring",
back="Letalis Mantle",
waist="Windbuffet Belt",
legs="Taeon Tights",
feet="Taeon Boots"}
sets.precast.WS['Chant du Cygne'].Acc = set_combine(sets.precast.WS, {})
sets.precast.WS['Sanguine Blade'] = {
head="Pixie Hairpin +1",
neck="Deviant Necklace",
ear1="Friomisi Earring",
ear2="Crematio Earring",
body="Hagondes Coat",
hands="Mavi Bazubands +2",
ring1="Shiva Ring",
ring2="Shiva Ring +1",
back="Cornflower Cape",
legs="Hagondes Pants",
feet="Taeon Boots"}
-- Midcast Sets --
sets.midcast.FastRecast = {
head="Haruspex Hat",
ear1="Enchanter Earring +1",
ear2="Loquacious Earring",
body="Luhlaza Jubbah",
hands="Mavi Bazubands +2",
ring1="Prolix Ring",
back="Swith Cape",
waist="Ninurta's Sash",
legs="Enif Cosciales",
feet="Taeon Boots"}
sets.midcast['Blue Magic']['Physical'] = {
ammo="Mavi Tathlum",
head="Taeon Chapeau",
neck="Iqabi Necklace",
ear1="Heartseeker Earring",
ear2="Steelflash Earring",
body="Rawhide Vest",
hands="Taeon Gloves",
ring1="Rajas Ring",
ring2="Ramuh Ring",
back="Cornflower Cape",
waist="Chuq'aba Belt",
legs="Taeon Tights",
feet="Taeon Boots"}
sets.midcast['Blue Magic'].PhysicalStr = {}
sets.midcast['Blue Magic'].PhysicalDex = {}
sets.midcast['Blue Magic'].PhysicalVit = {}
sets.midcast['Blue Magic'].PhysicalAgi = {}
sets.midcast['Blue Magic'].PhysicalInt = {}
sets.midcast['Blue Magic'].PhysicalMnd = {}
sets.midcast['Blue Magic'].PhysicalChr = {}
sets.midcast['Blue Magic'].PhysicalHP = {}
-- Magical Sets --
sets.midcast['Blue Magic'].Magical = {
ammo="Ghastly Tathlum +1",
head={ name="Helios Band", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','"Conserve MP"+5','INT+7 MND+7',}},
neck="Eddy Necklace",
ear1="Friomisi Earring",
ear2="Crematio Earring",
body="Hagondes Coat",
hands="Helios Gloves",
ring1="Shiva Ring",
ring2="Shiva Ring +1",
back="Cornflower Cape",
waist="Yamabuki-no-Obi",
legs="Hagondes Pants",
feet="Helios Boots"}
sets.midcast['Blue Magic'].MagicAccuracy = {
ammo="Mavi Tathlum",
head="Helios Jacket",
neck="Eddy Necklace",
ear1="Lifestorm Earring",
ear2="Psystorm Earring",
body="Helios Jacket",
hands="Helios Gloves",
ring2="Sangoma Ring",
back="Cornflower Cape",
legs="Hagondes Pants",
feet="Hashi. Basmak"}
sets.midcast['Blue Magic'].Stun = set_combine(sets.midcast['Blue Magic'].MagicAccuracy,
{waist="Chaac Belt"})
sets.midcast['Blue Magic']['White Wind'] = {
head="Telchine Cap",
neck="Phalaina Locket",
ear1="Psystorm Earring",
ear2="Lifestorm Earring",
body="Telchine Chausible",
hands="Telchine Gloves",
ring1="Levia. Ring",
ring2="Levia. Ring",
back="Tempered Cape",
waist="Pythia Sash +1",
legs="Enif Cosciales",
feet=""}
sets.midcast['Blue Magic'].Healing = {
ear1="Lifestorm Earring",
ear2="Psystorm Earring",
body="Telchine Chausible",
hands="Telchine Gloves",
ring1="Leviathan Ring",
ring2="Sirona's Ring",
back="Tempered Cape"}
sets.midcast.self_healing = {
head="Telchine Cap",
neck="Phalaina Locket",
body="Telchine Chausible",
hands="Burmete Gloves",
ring1="Kunaji Ring",
legs="Telchine Braconi",
waist="Chuq'aba Belt",
feet="Telchine Pigaches",
back="Tempered Cape"}
-- Other Sets --
sets.latent_refresh = {waist="Fucho-no-obi"}
sets.idle = {
ammo="Vanir Battery",
head="Lithelimb Cap",
neck="Wiglen Gorget",
ear1="Ethereal Earring",
ear2="Sanare Earring",
body="Emet Harness",
hands="Serpentes Cuffs",
ring1="Sheltered Ring",
ring2="Paguroidea Ring",
back="Umbra Cape",
waist="Flume Belt",
legs="Crimson Cuisses",
feet="Serpentes Sabots"}
sets.idle.Town = {
ammo="Vanir Battery",
head="Whirlpool Mask",
neck="Wiglen Gorget",
ear1="Ethereal Earring",
ear2="Sanare Earring",
body="Emet Harness",
hands="Serpentes Cuffs",
ring1="Sheltered Ring",
ring2="Paguroidea Ring",
back="Umbra Cape",
waist="Flume Belt",
legs="Crimson Cuisses",
feet="Serpentes Sabots"}
sets.defense.PDT = {
main="Earth Staff",
sub="Umbra Strap",
head="Lithelimb Cap",
neck="Twilight Torque",
ear1="Ethereal Earring",
ear2="Novia Earring",
body="Emet Harness",
hands={ name="Qaaxo Mitaines", augments={'Accuracy+15','STR+7','Phys. dmg. taken -3',}},
ring1="Patricius Ring",
ring2="Gelatinous Ring",
back="Umbra Cape",
waist="Flume Belt",
legs="Osmium Cuisses",
feet="Battlecast Gaiters"}
-- Engaged Sets --
sets.engaged = {}
sets.engaged.index = {'Normal', 'DW', 'Haste', 'Medium', 'High', 'VeryHigh'}
-- Normal =1, DW =2, Haste=3, Medium=4, High=5, VeryHigh=6
engaged_ind=1
sets.engaged.Normal = {
ammo="Ginsen",
head="Taeon Chapeau",
neck="Asperity Necklace",
ear1="Bladeborn Earring",
ear2="Steelflash Earring",
body="Thaumas Coat",
hands={ name="Qaaxo Mitaines", augments={'Attack+15','Evasion+15','"Dbl.Atk."+2',}},
ring1="Rajas Ring",
ring2="Epona's Ring",
back="Bleating Mantle",
waist="Windbuffet Belt",
legs="Taeon Tights",
feet="Taeon Boots"}
sets.engaged.DW = {}
sets.engaged.Haste = {}
sets.engaged.Medium = {}
sets.engaged.High = {}
sets.engaged.VeryHigh = {}
end
-------------------------------------------------------------------------------------------------------------------
-- Job-specific hooks for standard casting events.
-------------------------------------------------------------------------------------------------------------------
-- 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)
if spell.action_type == 'Magic' then
equip(sets.precast.FC.Standard)
if spell.skill == 'Blue Magic' then
equip(sets.precast.FC.Blue)
end
end
if spell.english == 'Azure Lore' then
equip(sets.precast.JA['Azure Lore'])
end
if spell.english == 'Chant du Cygne' then
equip(sets.precast.WS['Chant du Cygne'])
end
if spell.english == 'Sanguine Blade' or spell.english == 'Tenebral Crush' then
equip(sets.precast.WS['Sanguine Blade'])
end
if spell.english == 'Realmrazer' then
equip(sets.precast.WS['Realmrazer'])
end
if spell.english == 'Flash Nova' then
equip(sets.precast.WS['FlashNova'])
end
if spellMap == 'Healing' and spell.target.type == 'SELF' and sets.self_healing then
equip(sets.self_healing)
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 spell.skill == 'Blue Magic' then
for buff,active in pairs(state.Buff) do
if active and sets.buff[buff] then
equip(sets.buff[buff])
end
end
if spell.english == 'Bilgestorm' then
equip(sets.midcast['Blue Magic'].Physical)
end
if spell.english == 'Battle Dance' or spell.english == 'Bloodrake' or spell.english == 'Death Scissors' or spell.english == 'Dimensional Death' or spell.english == 'Empty Thrash' or spell.english == 'Quadrastrike' or spell.english == 'Sinker Drill' or spell.english == 'Spinal Cleave' or spell.english == 'Uppercut' or spell.english == 'Vertical Cleave'then
equip(sets.midcast['Blue Magic'].PhysicalStr)
if buffactive['Chain Affinity'] then
equip(sets.JA.ChainAffinity)
end
if buffactive['Efflux'] then
equip(sets.JA.Efflux)
end
end
if spell.english == 'Amorphic Spikes' or spell.english == 'Asuran Claws' or spell.english == 'Barbed Crescent' or spell.english == 'Claw Cyclone' or spell.english =='Disseverment' or spell.english == 'Foot Kick' or spell.english == 'Frenetic Rip' or spell.english == 'Goblin Rush' or spell.english == 'Hysteric Barrage' or spell.english == 'Paralyzing Triad' or spell.english == 'Seedspray' or spell.english == 'Sickle Slash' or spell.english == 'Smite of Rage' or spell.english == 'Terror Touch' or spell.english == 'Thrashing Assault' or spell.english == 'Vanity Dive' then
equip(sets.midcast['Blue Magic'].PhysicalDex)
if buffactive['Chain Affinity'] then
equip(sets.JA.ChainAffinity)
end
if buffactive['Efflux'] then
equip(sets.JA.Efflux)
end
end
if spell.english == 'Body Slam' or spell.english == 'Cannonball' or spell.english == 'Delta Thrust' or spell.english == 'Glutinous Dart' or spell.english == 'Grand Slam' or spell.english == 'Power Attack' or spell.english == 'Quad. Continuum' or spell.english == 'Sprout Smack' or spell.english == 'Sub-zero Smash' then
equip(sets.midcast['Blue Magic'].PhysicalVit)
if buffactive['Chain Affinity'] then
equip(sets.JA.ChainAffinity)
end
if buffactive['Efflux'] then
equip(sets.JA.Efflux)
end
end
end
if spell.english == 'Benthic Typhoon' or spell.english == 'Feather Storm' or spell.english == 'Helldive' or spell.english == 'Hydro Shot' or spell.english == 'Jet Stream' or spell.english == 'Pinecone Bomb' or spell.english == 'Spiral Spin' or spell.english == 'Wild Oats' then
equip(sets.midcast['Blue Magic'].PhysicalAgi)
if buffactive['Chain Affinity'] then
equip(sets.JA.ChainAffinity)
end
if buffactive['Efflux'] then
equip(sets.JA.Efflux)
end
end
if spell.english == 'Mandibular Bite' or spell.english == 'Queasyshroom' then
equip(sets.midcast['Blue Magic'].PhysicalInt)
if buffactive['Chain Affinity'] then
equip(sets.JA.ChainAffinity)
end
if buffactive['Efflux'] then
equip(sets.JA.Efflux)
end
end
if spell.english == 'Blastbomb' or spell.english == 'Blazing Bound' or spell.english == 'Bomb Toss' or spell.english == 'Cursed Sphere' or spell.english == 'Dark Orb' or spell.english == 'Death Ray'
or spell.english == 'Diffusion Ray' or spell.english == 'Droning Whirlwind' or spell.english == 'Embalming Earth' or spell.english == 'Firespit' or spell.english == 'Foul Waters'
or spell.english == 'Ice Break' or spell.english == 'Leafstorm' or spell.english == 'Maelstrom' or spell.english == 'Rail Cannon' or spell.english == 'Regurgitation' or spell.english == 'Rending Deluge'
or spell.english == 'Retinal Glare' or spell.english == 'Subduction' or spell.english == 'Tem. Upheaval' or spell.english == 'Water Bomb'then
equip(sets.midcast['Blue Magic'].Magical)
if buffactive['Burst Affinity'] then
equip(sets.JA.BurstAffinity)
end
end
if spell.english == 'Acrid Stream' or spell.english == 'Evryone. Grudge' or spell.english == 'Magic Hammer' or spell.english == 'Mind Blast' then
equip(sets.midcast['Blue Magic'].MagicalMnd)
end
if spell.english == 'Eyes On Me' or spell.english == 'Mysterious Light' then
equip(sets.midcast['Blue Magic'].MagicalChr)
end
if spell.english == 'Healing Breeze' or spell.english == 'Magic Fruit' or spell.english == 'Plenilune Embrace' or spell.english == 'Pollen' or spell.english == 'Restoral' or spell.english == 'White Wind'
or spell.english == 'Wild Carrot' then
equip(sets.midcast['Blue Magic'].Healing)
if spell.target.name == player.name and string.find(spell.english, 'Magic Fruit') or string.find(spell.english, 'Plenilune Embrace') or string.find(spell.english, 'Wild Carrot') or string.find(spell.english, 'Cure III') or string.find(spell.english, 'Cure IV') then
equip(sets.midcast['Blue Magic'].self_healing)
end
end
if spell.english == 'White Wind' then
equip(sets.midcast['Blue Magic']['WhiteWind'])
end
if spell.english == 'Blitzstrahl' or spell.english == 'Frypan' or spell.english == 'Head Butt' or spell.english == 'Sudden Lunge' or spell.english == 'Tail slap' or spell.english == 'Temporal Shift'
or spell.english == 'Thunderbolt' or spell.english == 'Whirl of Rage' then
equip(sets.midcast['Blue Magic'].Stun)
end
if spell.english == 'Amplification' or spell.english == 'Animating Wail' or spell.english == 'Battery Charge' or spell.english == 'Carcharian Verve' or spell.english == 'Cocoon'
or spell.english == 'Erratic Flutter' or spell.english == 'Exuviation' or spell.english == 'Fantod' or spell.english == 'Feather Barrier' or spell.english == 'Harden Shell'
or spell.english == 'Memento Mori' or spell.english == 'Nat. Meditation' or spell.english == 'Occultation' or spell.english == 'Orcish Counterstance' or spell.english == 'Refueling'
or spell.english == 'Regeneration' or spell.english == 'Saline Coat' or spell.english == 'Triumphant Roar' or spell.english == 'Warm-Up' or spell.english == 'Winds of Promyvion'
or spell.english == 'Zephyr Mantle' then
equip(sets.midcast['Blue Magic'].Buff)
end
if spell.english == '1000 Needles' or spell.english == 'Absolute Terror' or spell.english == 'Actinic Burst' or spell.english == 'Auroral Drape' or spell.english == 'Awful Eye' or spell.english ==
'Blank Gaze' or spell.english == 'Blistering Roar' or spell.english == 'Blood Drain' or spell.english == 'Blood Saber' or spell.english == 'Chaotic Eye' or spell.english ==
'Cimicine Discharge' or spell.english == 'Cold Wave' or spell.english == 'Corrosive Ooze' or spell.english == 'Demoralizing Roar' or spell.english == 'Digest' or spell.english ==
'Dream Flower' or spell.english == 'Enervation' or spell.english == 'Feather Tickle' or spell.english == 'Filamented Hold' or spell.english == 'Frightful Roar' or spell.english ==
'Geist Wall' or spell.english == 'Hecatomb Wave' or spell.english == 'Infrasonics' or spell.english == 'Jettatura' or spell.english == 'Light of Penance' or spell.english ==
'Lowing' or spell.english == 'Mind Blast' or spell.english == 'Mortal Ray' or spell.english == 'MP Drainkiss' or spell.english == 'Osmosis' or spell.english == 'Reaving Wind' or spell.english ==
'Sandspin' or spell.english == 'Sandspray' or spell.english == 'Sheep Song' or spell.english == 'Soporific' or spell.english == 'Sound Blast' or spell.english == 'Stinking Gas' or spell.english ==
'Sub-zero Smash' or spell.english == 'Venom Shell' or spell.english == 'Voracious Trunk' or spell.english == 'Yawn' then
equip(sets.midcast['Blue Magic'].MagicAccuracy)
end
end
function job_aftercast(spell, action, spellMap, eventArgs)
if spell.action_type == 'Weaponskill' then
add_to_chat(158,'TP Return: ['..tostring(player.tp)..']')
end
end
function self_command(command)
if command == 'c1' then
equip(sets.engaged.Normal)
elseif command == 'c2' then
equip(sets.engaged.DW)
elseif command == 'c3' then
equip(sets.engaged.Haste)
elseif command == 'c4' then
equip(sets.engaged.High)
elseif command == 'c5' then
equip(sets.engaged.VeryHigh)
end
end
function job_get_spell_map(spell, default_spell_map)
if spell.skill == 'Blue Magic' then
for category,spell_list in pairs(blue_magic_maps) do
if spell_list:contains(spell.english) then
return category
end
end
end
end
function job_buff_change(buff, gain)
if state.Buff[buff] ~= nil then
state.Buff[buff] = gain
end
end
function select_default_macro_book()
-- Default macro set/book
set_macro_page(1, 13)
end