-- updated 1/20/2014. This is a WIP and subject to frequent changes. It is useable as-is but nowhere near complete. So check back often. function get_sets() -- Precast sets sets.precast = {} sets.precast.Fastcast = { sub="Arbuda Grip", ammo="Hasty Pinion", hands="Gendewitha Gages", legs="Bokwus Slops", feet="Argute Loafers +2", neck="Stoicheion Medal", waist="Goading Belt", left_ear="Loquac. Earring", left_ring="Prolix Ring", back="Swith Cape" } sets.precast.Stun = { main="Apamajas II", sub="Arbuda Grip", ammo="Kalboron Stone", head="Nahtirah Hat", body="Hedera Cotehardie", hands="Gendewitha Gages", legs="Bokwus Slops", feet="Argute Loafers +2", neck="Eddy Necklace", waist="Goading Belt", left_ear="Lifestorm Earring", right_ear="Psystorm Earring", left_ring="Sangoma Ring", right_ring="Maquette Ring", back="Swith Cape" } sets.precast.Impact = { main="Atinian Staff", sub="Mephitis Grip", ammo="Ombre Tathlum", head="Remove", body="Twilight Cloak", hands="Yaoyotl Gloves", legs="Savant's Pants +2", feet="Svnt. Loafers +2", neck="Eddy Necklace", waist="Oneiros Sash", left_ear="Hecate's Earring", right_ear="Strophadic Earring", left_ring="Sangoma Ring", right_ring="Maquette Ring", back="Bookworm's Cape" } sets.precast.Cure = { main="Arka IV", sub="Arbuda Grip", ammo="Aqua Sachet", head="Gende. Caubeen", body="Heka's Kalasiris", hands="Bokwus Gloves", legs="Bokwus Slops", feet="Argute Loafers +2", neck="Savant's Chain", waist="Argute Belt", left_ear="Lifestorm Earring", right_ear="Psystorm Earring", left_ring="Omega Ring", right_ring="Aquasoul Ring", back="Pahtli Cape" } -- Midcast Sets sets.midcast = {} sets.midcast.EnhancingMagic = { main="Kirin's Pole", sub="Fulcio Grip", ammo="Savant's Treatise", head="Svnt. Bonnet +2", body="Hedera Cotehardie", hands="Gendewitha Gages", legs="Orvail Pants", feet="Rubeus Boots", neck="Enhancing Torque", waist="Olympus Sash", left_ear="Loquac. Earring", right_ear="Moonshade Earring", left_ring="Prolix Ring", right_ring="Paguroidea Ring", back="Merciful Cape" } sets.midcast.Embrava = { main="Kirin's Pole", sub="Fulcio Grip", ammo="Savant's Treatise", head="Svnt. Bonnet +2", body="Hedera Cotehardie", hands="Savant's Bracers +2", legs="Orvail Pants", feet="Rubeus Boots", neck="Enhancing Torque", waist="Olympus Sash", left_ear="Loquac. Earring", right_ear="Moonshade Earring", left_ring="Prolix Ring", right_ring="Paguroidea Ring", back="Merciful Cape" } sets.midcast.Storm = {feet="Argute Loafers +2"} sets.midcast.Stoneskin = { main="Kirin's Pole", sub="Fulcio Grip", ammo="Savant's Treatise", head="Svnt. Bonnet +2", body="Hedera Cotehardie", hands="Savant's Bracers +2", legs="Orvail Pants", feet="Rubeus Boots", neck="Enhancing Torque", waist="Olympus Sash", left_ear="Loquac. Earring", right_ear="Moonshade Earring", left_ring="Prolix Ring", right_ring="Paguroidea Ring", back="Merciful Cape" } sets.midcast.HealingMagic = { sub="Arbuda Grip", ammo="Hasty Pinion", head="Nahtirah Hat", body="Hedera Cotehardie", hands="Gendewitha Gages", legs="Bokwus Slops", feet="Argute Loafers +2", neck="Savant's Chain", waist="Argute Belt", left_ear="Lifestorm Earring", right_ear="Psystorm Earring", left_ring="Omega Ring", right_ring="Aquasoul Ring", back="Tempered Cape" } sets.midcast.Cure = { main="Arka IV", sub="Arbuda Grip", ammo="Aqua Sachet", head="Gende. Caubeen", body="Heka's Kalasiris", hands="Bokwus Gloves", legs="Bokwus Slops", feet="Argute Loafers +2", neck="Savant's Chain", waist="Argute Belt", left_ear="Lifestorm Earring", right_ear="Psystorm Earring", left_ring="Omega Ring", right_ring="Aquasoul Ring", back="Pahtli Cape" } sets.midcast.EnfeeblingMagic = { main="Atinian Staff", sub="Mephitis Grip", ammo="Kalboron Stone", head="Nahtirah Hat", body="Hagondes Coat", hands="Yaoyotl Gloves", legs="Bokwus Slops", feet="Rubeus Boots", neck="Eddy Necklace", waist="Demonry Sash", left_ear="Lifestorm Earring", right_ear="Psystorm Earring", left_ring="Sangoma Ring", right_ring="Maquette Ring", back="Refraction Cape" } sets.midcast.ElementalMagic = { main="Atinian Staff", sub="Wizzan Grip", ammo="Ombre Tathlum", head="Hagondes Hat", body="Hagondes Coat", hands="Yaoyotl Gloves", legs="Hagondes Pants", feet="Svnt. Loafers +2", neck="Eddy Necklace", waist="Oneiros Sash", left_ear="Hecate's Earring", right_ear="Strophadic Earring", left_ring="Omega Ring", right_ring="Snow Ring", back="Bookworm's Cape" } sets.midcast.Helix = { main="Atinian Staff", sub="Wizzan Grip", ammo="Ombre Tathlum", head="Hagondes Hat", body="Hagondes Coat", hands="Yaoyotl Gloves", legs="Hagondes Pants", feet="Svnt. Loafers +2", neck="Eddy Necklace", waist="Oneiros Sash", left_ear="Hecate's Earring", right_ear="Strophadic Earring", left_ring="Omega Ring", right_ring="Snow Ring", back="Bookworm's Cape" } sets.midcast.Impact = { main="Atinian Staff", sub="Mephitis Grip", ammo="Ombre Tathlum", head="Remove", body="Twilight Cloak", hands="Yaoyotl Gloves", legs="Savant's Pants +2", feet="Svnt. Loafers +2", neck="Eddy Necklace", waist="Oneiros Sash", left_ear="Hecate's Earring", right_ear="Strophadic Earring", left_ring="Sangoma Ring", right_ring="Maquette Ring", back="Bookworm's Cape" } sets.midcast.DarkMagic = { main="Atinian Staff", sub="Mephitis Grip", ammo="Kalboron Stone", head="Nahtirah Hat", body="Hedera Cotehardie", hands="Gendewitha Gages", legs="Argute Pants +2", feet="Argute Loafers +2", neck="Eddy Necklace", waist="Goading Belt", left_ear="Lifestorm Earring", right_ear="Psystorm Earring", left_ring="Sangoma Ring", right_ring="Maquette Ring", back="Bookworm's Cape" } -- Aftercast sets sets.aftercast = {} -- Status sets sets.idle = {} sets.idle.Base = { main="Chatoyant Staff", -- main="Baqil Staff", sub="Vallus Grip", ammo="Aqua Sachet", head="Nahtirah Hat", body="Hagondes Coat", hands="Yaoyotl Gloves", legs="Hagondes Pants", feet="Hagondes Sabots", neck="Twilight Torque", waist="Slipor Sash", left_ear="Darkness Earring", right_ear="Moonshade Earring", left_ring="Sheltered Ring", right_ring="Paguroidea Ring", back="Cheviot Cape" } sets.idle.Sublimation = { main="Plenitas Virga", sub="Vallus Grip", ammo="Aqua Sachet", head="Svnt. Bonnet +2", body="Hagondes Coat", hands="Yaoyotl Gloves", legs="Hagondes Pants", feet="Hagondes Sabots", neck="Twilight Torque", waist="Slipor Sash", left_ear="Savant's Earring", right_ear="Moonshade Earring", left_ring="Sheltered Ring", right_ring="Paguroidea Ring", back="Cheviot Cape" } sets.idle.Weak = {} sets.idle.Kite = {feet="Desert Boots +1"} -- Defense sets sets.defense = {} sets.Resting = { main="Chatoyant Staff", sub="Ariesian Grip", ammo="Clarus Stone", head="Nahtirah Hat", neck="Eidolon Pendant", ear1="Antivenom Earring", ear2="Moonshade Earring", body="Hagondes Coat", hands="Serpentes Cuffs", ring1="Sheltered Ring", ring2="Paguroidea Ring", back="Shadow Mantle", waist="Austerity Belt", legs="Sagacity Lappas" } sets.Obi = {} -- sets.Obi.Fire = {waist='Karin Obi',back='Twilight Cape'} -- sets.Obi.Earth = {waist='Dorin Obi',back='Twilight Cape'} -- sets.Obi.Water = {waist='Suirin Obi',back='Twilight Cape'} -- sets.Obi.Wind = {waist='Furin Obi',back='Twilight Cape'} sets.Obi.Ice = {waist='Hyorin Obi',back='Twilight Cape'} sets.Obi.Thunder = {waist='Rairin Obi',back='Twilight Cape'} sets.Obi.Light = {waist='Korin Obi',back='Twilight Cape'} sets.Obi.Dark = {waist='Anrin Obi',back='Twilight Cape'} sets.staves = {} sets.staves.damage = {} sets.staves.damage.Thunder = {main="Apamajas I"} sets.staves.damage.Fire = {} sets.staves.accuracy = {} sets.staves.damage.Thunder = {main="Apamajas II"} sets.staves.damage.Ice = {} sets.JA = {} sets.JA['Tabula Rasa'] = {legs="Argute Pants +2"} sets.precast.Arts = {} sets.midcast.Regen = {head="Svnt. Bonnet +2"} sets.Buff = {} sets.Buff['Rapture'] = {head="Svnt. Bonnet +2"} sets.Buff['Ebullience'] = {head="Svnt. Bonnet +2"} sets.Buff['Immanence'] = {hands="Svnt. Bracers +2"} sets.Buff['Perpetuance'] = {hands="Svnt. Bracers +2"} sets.Buff['Penury'] = {legs="Savant's Pants +2"} sets.Buff['Parsimony'] = {legs="Savant's Pants +2"} sets.Buff['Alacrity'] = {feet="Argute Loafers +2"} sets.Buff['Celerity'] = {feet="Argute Loafers +2"} -- Variables and notes to myself sets.aftercast.Idle = sets.idle.Base stuntarg = 'Quixacotl' stunmode = 'false' Return_Spells = T{'Arts','Bar','Raise','Teleport','Tractor','Warp','Warp II'} -- We don't need to blink when casting these spells. send_command('input /macro book 17;wait .1;input /macro set 1') end function precast(spell,action) if Return_Spells:contains(spell.name) or string.find(spell.english,'Teleport') then return end if sets.JA[spell.english] then equip(sets.JA[spell.english]) end if spell.english == 'Stun' then cast_delay(0.1) equip(sets.precast.Stun) if not buffactive.thunderstorm then add_to_chat(8,'--------- Thunderstorm is down ---------') end if not buffactive.klimaform then add_to_chat(8,'----------- Klimaform is down -----------') end if stuntarg ~= 'Shantotto' then send_command('@input /t '..stuntarg..' ---- Quixacotl Stunned --- Your next!!! ---- ') end elseif spell.english == 'Impact' then cast_delay(2) equip(sets.precast.Impact) if not buffactive['elemental seal'] then add_to_chat(8,'--------- Elemental Seal is down ---------') end elseif string.find(spell.english,'Cur') then equip(sets.precast.Cure) elseif spell.skill=='ElementalMagic' and spell.casttime < 3 then cast_delay(0.1) equip(sets.precast.Fastcast) else equip(sets.precast.Fastcast) cast_delay(0.5) end end function midcast(spell,action) if Return_Spells:contains(spell.name) or string.find(spell.english,'Teleport') then return end if spell.type == 'WhiteMagic' or spell.type == 'BlackMagic' then if string.find(spell.english,'Cur') then equip(sets.midcast.Cure) elseif string.find(spell.english,'storm') then equip(sets.midcast.Storm) elseif sets.midcast[spell.english] then equip(sets.midcast[spell.english]) elseif sets.midcast[spell.skill] then equip(sets.midcast[spell.skill]) elseif sets.midcast[spell.type] then equip(sets.midcast[spell.type]) elseif spell.english == 'Impact' then equip(sets.midcast.Impact) else equip(sets.midcast) end end Idle() end function aftercast(spell,action) if Return_Spells:contains(spell.name) or string.find(spell.english,'Teleport') then return end end function status_change(new,action) if new=='Idle' then Idle() elseif new=='Resting' then equip(sets.Resting) end end function buff_change(buff,gain_or_loss) if buff == "Sublimation: Activated" then add_to_chat(8,'--------- Sublimation buff check Passed ---------') -- for debugging Idle() end end function Idle() if buffactive['Sublimation: Activated'] then add_to_chat(8,'--------- Sublimation buff check 2 Passed ---------') -- for debugging equip(sets.idle.Sublimation) else equip(sets.aftercast.Idle) end end function self_command(command) if command == 'idle' then Idle() elseif command == 'stuntarg' then stuntarg = target.name elseif command == 'stunmode' then windower.add_to_chat(8,'--------- Stun Mode ---------') if sets.aftercast.Idle ~= sets.precast.Stun then stunmode = true sets.aftercast.Idle = sets.precast.Stun else stunmode = false sets.aftercast.Idle = sets.idle.Base end Idle() end end -- This function is user defined, but never called by GearSwap itself. It's just a user function that's only called from user functions. I wanted to check the weather and equip a weather-based set for some spells, so it made sense to make a function for it instead of replicating the conditional in multiple places. function weathercheck(spell_element,set) if spell_element == world.weather_element or spell_element == world.day_element then equip(set,sets['Obi_'..spell_element]) else equip(set) end end