Guest User

Untitled

a guest
Jan 5th, 2016
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 22.06 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Setup functions for this job.  Generally should not be modified.
  3. -------------------------------------------------------------------------------------------------------------------
  4.  
  5. -- Initialization function for this job file.
  6. function get_sets()
  7.     mote_include_version = 2
  8.  
  9.     -- Load and initialize the include file.
  10.     include('Mote-Include.lua')
  11. end
  12.  
  13. -------------------------------------------------------------------------------------------------------------------
  14. -- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
  15. -------------------------------------------------------------------------------------------------------------------
  16.  
  17. -- Setup vars that are user-dependent.  Can override this function in a sidecar file.
  18. function user_setup()
  19.     state.OffenseMode:options('None', 'Normal')
  20.     state.CastingMode:options('Normal','MB')
  21.     state.IdleMode:options('Normal', 'PDT', 'MDT')
  22.      
  23.     gear.default.obi_waist = ""
  24.     gear.default.obi_back = ""
  25.     gear.default.obi_ring = ""
  26.      
  27.     select_default_macro_book()
  28.      
  29. end
  30.  
  31. lowtier = S{"Fire", "Fire II", "Stone", "Stone II", "Blizzard", "Blizzard II", "Aero", "Aero II", "Water", "Water II", "Thunder", "Thunder II", "Fira", "Blizzara", "Aerora", "Stonera", "Thundara", "Watera"}
  32. hightier = S{"Fire III", "Fire IV", "Stone IV", "Stone III", "Blizzard IV", "Blizzard III", "Aero IV", "Aero III", "Water IV", "Water III", "Thunder IV", "Thunder III", "Fira II", "Blizzara II", "Aerora II", "Stonera II", "Thundara II", "Watera II", "Fira III", "Blizzara III", "Aerora III", "Stonera III", "Thundara III", "Watera III"}
  33.  
  34.  
  35. -- Define sets and vars used by this job file.
  36. function init_gear_sets()
  37.  -- AUGMENTED GEAR
  38.     MAB_head = { name="Helios Band",}
  39.     MAB_body ={ name="Helios Jacket",}
  40.     MAB_hands = { name="Merlinic Dastanas",}
  41.     MAB_legs = {"Merlinic Shalwar",}
  42.     MAB_feet = { name="Merlinic Crackows",}
  43.        
  44.     ENH_head = {"Umuthi Hat"}
  45.     ENH_body = { name="Telchine Chas.",}
  46.     ENH_hands ={ name="Chironic Gloves",}
  47.     ENH_legs ={ name="Artiseq Hose"}
  48.     ENH_feet = {"Kaykaus Boots"}
  49.        
  50.     DRAS_head = "Helios Band"
  51.     DRAS_body={ name="Helios Jacket",}
  52.     DRAS_hands={ name="Merlinic Dastanas",}
  53.     DRAS_legs={ name="Merlinic Shalwar",}
  54.     DRAS_feet={ name="Merlinic Crackows",}
  55.    
  56.    
  57.     --------------------------------------
  58.     -- Precast sets
  59.     --------------------------------------
  60.  
  61.     -- Precast sets to enhance JAs
  62.  
  63.     sets.precast.JA['Tabula Rasa'] = {legs="Pedagogy Pants"}
  64.      
  65.  
  66.     -- Fast cast sets for spells
  67.  
  68.     sets.precast.FC = {
  69.     head="Nahtirah Hat",                        --10--
  70.     body="Helios jacket",            --5--
  71.     hands="Yaoyotl gloves",                              
  72.     legs="Artiseq Hose",                       --11--
  73.     feet="Merlinic Crackows",                      --7--
  74.     neck="Voltsurge torque",            --4--
  75.     waist="Witful Belt",                        --3--
  76.     right_ear="Enchntr. Earring +1",--2--
  77.     left_ear="Loquac. Earring",         --2--
  78.     left_ring="Prolix Ring",            --2--
  79.     right_ring="lebeche Ring",        
  80.     back="Bookworm's Cape",                     --7--
  81. }
  82.  
  83.     sets.precast.FC.Cure = set_combine(sets.precast.FC, {
  84.         left_ear="Mendicant's Earring",
  85.     body="Gendewitha Bliaut",
  86.     neck="Phalaina Locket",
  87.     back="Pahtli Cape",
  88.         feet="Kaykaus Boots",
  89. })
  90.  
  91.     sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {
  92.         waist="siegel sash",
  93.    
  94. })  
  95.  
  96.         sets.precast.FC.Stoneskin = set_combine(sets.precast.FC, {
  97.         head="Umuthi Hat",
  98.     waist="siegel sash",
  99. })  
  100.  
  101.      
  102.     sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {
  103.         right_ear="barkarole Earring",
  104.     hands="Bagua Mitaines",
  105.     neck="Stoicheion Medal",
  106. })
  107.  
  108.  
  109.     sets.precast.FC.Impact = set_combine(sets.precast.FC['Elemental Magic'], {
  110.         head=empty,body="Twilight Cloak"})
  111.        
  112.    
  113.     --------------------------------------
  114.     -- Midcast sets
  115.     --------------------------------------
  116.  
  117.     -- Base fast recast for spells
  118.     sets.midcast.FastRecast =set_combine(sets.precast.fastcast)
  119.  
  120. sets.midcast.Regen = set_combine(sets.midcast.fastcast, {
  121.     body="Telchine Chas."})
  122.      
  123.     sets.midcast['Enhancing Magic']={
  124.     head="Umuthi hat",
  125.     body=ENH_body,
  126.     hands=ENH_hands,
  127.     legs="Kaykaus Tights",
  128.     feet="Helios boots",
  129.     neck="Eddy necklace",
  130.     waist="Witful belt",
  131.     left_ear="Mendicant earring",
  132.     right_ear="Loquac. Earring",
  133.     left_ring="Lebeche Ring",
  134.     right_ring="Prolix Ring",
  135.     back="Merciful cape",
  136. }
  137.      
  138.     sets.midcast.Refresh = set_combine(sets.midcast['Enhancing Magic'], {
  139.     back="grapevine cape",
  140.     feet="Inspirited boots",
  141.         waist="Gishdubar sash",})
  142.  
  143.     sets.midcast.Aquaveil = set_combine(sets.midcast['Enhancing Magic'], {
  144.         waist="Witful belt"})
  145.  
  146.  
  147.     sets.midcast.Cure = {
  148.     head="Kaykaus Mitra",
  149.     body="Gendewitha Bliaut",
  150.     hands="Kaykaus Cuffs",
  151.     legs="Kaykaus Tights",
  152.     feet="Kaykaus Boots",
  153.     neck="Phalaina Locket",
  154.     waist="Witful Belt",
  155.     left_ear="Mendicant's Earring",
  156.     right_ear="Enchntr. Earring +1",
  157.     right_ring="Zodiac ring",
  158.     left_ring="Sirona's Ring",
  159.     back="Pahtli Cape",
  160. }
  161.          
  162.         sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {
  163.     waist="siegel sash",
  164.     right_ear="Earthcry Earring",
  165. })  
  166.              
  167.     sets.midcast.Curaga = sets.midcast.Cure
  168.        
  169.         sets.midcast.CureSelf = set_combine(sets.midcast.Cure, {
  170.         left_ring="Vocane Ring",
  171.         legs=ENH_legs,
  172.         waist="Gishdubar sash",
  173.         })
  174.        
  175.         sets.midcast.Cursna = set_combine(sets.midcast.FastRecast, {
  176.                 neck="Malison Medallion",
  177.                 feet="Gendewitha Galoshes",
  178.         ring1="Purity Ring",
  179.                 ring2="Haoma's Ring",
  180.                 waist="Gishdubar sash",})
  181.        
  182.        
  183.     sets.midcast.Protectra = {ring1="Sheltered Ring"}
  184.  
  185.     sets.midcast.Shellra = {ring1="Sheltered Ring"}
  186.  
  187.         -- Custom Spell Classes
  188.     sets.midcast['Enfeebling Magic'] = {
  189.     head="Nahtirah hat",
  190.     body="Artiseq Jubbah",
  191.     hands="Kaykaus Cuffs",
  192.     legs="Psycloth lappas",
  193.     feet="Helios Boots",
  194.     neck="Incanter's torque",
  195.     waist="Rumination Sash",
  196.     left_ear="Gwati Earring",
  197.     right_ear="barkarole Earring",
  198.     left_ring="Sangoma Ring",
  199.     right_ring="Vertigo Ring",
  200.     back=PET_back,
  201. }
  202.  
  203.     sets.midcast.IntEnfeebles = set_combine(sets.midcast['Enfeebling Magic'], {
  204.      
  205. })  
  206.  
  207.     sets.midcast.ElementalEnfeeble = sets.midcast['Enfeebling Magic']
  208.  
  209.     sets.midcast['Dark Magic'] = {
  210.     head=MAB_head,
  211.     body="Witching Robe",
  212.     hands="Helios Gloves",
  213.     legs="Psycloth Lappas",
  214.     feet=MAB_feet,
  215.     neck="Incanter's Torque",
  216.     waist="Aswang sash",
  217.     left_ear="Gwati Earring",
  218.     right_ear="barkarole Earring",
  219.     left_ring="Shiva Ring",
  220.     right_ring="Shiva Ring",
  221.     back="Bookworm's Cape",
  222. }
  223.          
  224.         sets.midcast.Drain = {
  225.     head=DRAS_head,
  226.     body=DRAS_body,
  227.     hands=DRAS_hands,
  228.     legs=DRAS_legs,
  229.     feet=DRAS_feet,
  230.     neck="Incanter's Torque",
  231.     waist="Aswang sash",
  232.     left_ear="barkarole Earring",
  233.     right_ear="Hirudinea Earring",
  234.     left_ring="Excelsis Ring",
  235.     right_ring="Evanescence Ring",
  236.     back="Bookworm's Cape",
  237. }
  238.      
  239.     sets.midcast.Aspir = sets.midcast.Drain
  240.      
  241.     sets.midcast.Stun = {
  242.     head="Nahtirah Hat",
  243.     body="Helios Jacket",
  244.     hands="Merlinic Dastanas",
  245.     legs="Artsieq hose",
  246.     feet="Merlinic Crackows",
  247.     neck="Voltsurge torque",
  248.     waist="Witful Belt",
  249.     left_ear="barkarole Earring",
  250.     right_ear="Gwati Earring",
  251.     left_ring="Sangoma Ring",
  252.     right_ring="Etana Ring",
  253. }
  254.        
  255.       -- Elemental Magic sets
  256.      
  257.     sets.midcast['Elemental Magic']= {
  258.     head=MAB_head,
  259.     body=MAB_body,
  260.     hands=MAB_hands,
  261.     legs=MAB_legs,
  262.     feet=MAB_feet,
  263.     neck="Eddy Necklace",
  264.     waist="Aswang sash",
  265.     left_ear="Friomisi Earring",
  266.     right_ear="Hecate's Earring",
  267.     left_ring="Shiva Ring",
  268.     right_ring="Shiva Ring",
  269.     back="Bookworm's Cape",
  270. }
  271.  
  272.  
  273. sets.midcast['Elemental Magic']['MB']=set_combine(sets.midcast['Elemental Magic'], {
  274. neck="Mizu. Kubikazari",
  275. left_ear="Static Earring",
  276. right_ring="Locus Ring",
  277. left_ring="Mujin Band",
  278. })
  279.  
  280.     sets.midcast.Impact = {
  281.         head=empty,
  282.     body="Twilight Cloak",
  283.     hands=MAB_hands,
  284.     legs="Merlnic Shalwar",
  285.     feet=MAB_feet,
  286.     neck="Eddy Necklace",
  287.     waist="Refoccilation stone",
  288.     left_ear="Gwati Earring",
  289.     right_ear="barkarole Earring",
  290.     left_ring="Sangoma Ring",
  291.     right_ring="Archon Ring",
  292.     back="Kumbira Cape",
  293. }  
  294.  
  295.     sets.midcast.Meteor = set_combine(sets.midcast['Elemental Magic'],{
  296.         head=empty,
  297.     body="Onca suit",
  298.     hands=empty,
  299.     legs=empty,
  300.     feet=empty,
  301.         })
  302.  
  303.      --------------------------------------
  304.     -- Idle/resting/defense/etc sets
  305.     --------------------------------------
  306.  
  307.     -- Resting sets
  308.     sets.resting = {
  309.         head="Befouled crown",
  310.     body={ name="Hagondes Coat +1",},
  311.     hands="Merlinic Dastanas",
  312.     legs="Lengo Pants",
  313.     feet="Merlinic Crackows",
  314.     neck="Eddy Necklace",
  315.     waist="Gishdubar Sash",
  316.     left_ear="Hearty Earring",
  317.     right_ear="Infused Earring",
  318.     left_ring="Sheltered Ring",
  319.     right_ring="Defending Ring",
  320.     back="Solemnity Cape",
  321. }
  322.  
  323.     -- Idle sets
  324.  
  325.     sets.idle = sets.resting
  326.  
  327.     sets.idle.PDT = {
  328.         head="Hagondes Hat",
  329.         neck="Twilight Torque",
  330.         ear1="Hearty Earring",
  331.         ear2="Infused Earring",
  332.         body="Hagondes Coat +1",
  333.         hands="Merlic Dastanas",
  334.         left_ring="Vertigo ring",
  335.         right_ring="Prolix Ring",
  336.         back="Solemnity Cape",
  337.         waist="Witful belt",
  338.         legs="Merlinic Shalwar",
  339.         feet="Helios Boots",
  340.                 }
  341.          
  342.         sets.idle.MDT = sets.idle.PDT  
  343.        
  344.         sets.idle.Town = {
  345.     head="Kaykaus Mitra",
  346.     body="Hagondes Coat +1",
  347.     hands="Merlinic Dastanas",
  348.     legs="Merlinic Shalwar",
  349.     feet="Merlinic Crackows",
  350.     neck="Twilight Torque",
  351.     waist="Gishdubar sash",
  352.     left_ear="Hearty Earring",
  353.     right_ear="Infused Earring",
  354.     left_ring="Vocane Ring",
  355.     right_ring="Defending Ring",
  356.     back="Lifestream Cape",
  357. }
  358.  
  359.     sets.idle.Weak = sets.resting
  360.  
  361.     -- Defense sets
  362.  
  363.     sets.defense.PDT = sets.idle.PDT
  364.  
  365.     sets.defense.MDT = sets.idle.MDT
  366.  
  367.     sets.Kiting = {
  368.         feet="Geo. Sandals +1"}
  369.  
  370.     sets.latent_refresh = {
  371.         waist="Fucho-no-obi"}
  372.      
  373.        -- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
  374.     sets.buff['Ebullience'] = {head="Savant's Bonnet +1"}
  375.     sets.buff['Rapture'] = {head="Savant's Bonnet +1"}
  376.     sets.buff['Perpetuance'] = {hands="Savant's Bracers +2"}
  377.     sets.buff['Immanence'] = {hands="Savant's Bracers +2"}
  378.     sets.buff['Penury'] = {legs="Savant's Pants +2"}
  379.     sets.buff['Parsimony'] = {legs="Savant's Pants +2"}
  380.     sets.buff['Celerity'] = {feet="Pedagogy Loafers"}
  381.     sets.buff['Alacrity'] = {feet="Pedagogy Loafers"}
  382.  
  383.     sets.buff['Klimaform'] = {feet="Savant's Loafers +2"}
  384.  
  385.     sets.buff.FullSublimation = {head="Academic's Mortarboard",ear1="Savant's Earring",body="Pedagogy Gown"}
  386.     sets.buff.PDTSublimation = {head="Academic's Mortarboard",ear1="Savant's Earring"}
  387.  
  388.     --sets.buff['Sandstorm'] = {feet="Desert Boots"}
  389. end
  390.  
  391. -------------------------------------------------------------------------------------------------------------------
  392. -- Job-specific hooks for standard casting events.
  393. -------------------------------------------------------------------------------------------------------------------
  394.  
  395. -- Run after the general midcast() is done.
  396. function job_post_midcast(spell, action, spellMap, eventArgs)
  397.     if spell.action_type == 'Magic' then
  398.         apply_grimoire_bonuses(spell, action, spellMap, eventArgs)
  399.     end
  400. end
  401.  
  402. -------------------------------------------------------------------------------------------------------------------
  403. -- Job-specific hooks for non-casting events.
  404. -------------------------------------------------------------------------------------------------------------------
  405.  
  406. -- Called when a player gains or loses a buff.
  407. -- buff == buff gained or lost
  408. -- gain == true if the buff was gained, false if it was lost.
  409. function job_buff_change(buff, gain)
  410.     if buff == "Sublimation: Activated" then
  411.         handle_equipping_gear(player.status)
  412.     end
  413. end
  414.  
  415. -- Handle notifications of general user state change.
  416. function job_state_change(stateField, newValue, oldValue)
  417.     if stateField == 'Offense Mode' then
  418.         if newValue == 'Normal' then
  419.             disable('main','sub','range')
  420.         else
  421.             enable('main','sub','range')
  422.         end
  423.     end
  424. end
  425.  
  426. -------------------------------------------------------------------------------------------------------------------
  427. -- User code that supplements standard library decisions.
  428. -------------------------------------------------------------------------------------------------------------------
  429.  
  430. -- Custom spell mapping.
  431. function job_get_spell_map(spell, default_spell_map)
  432.     if spell.action_type == 'Magic' then
  433.         if default_spell_map == 'Cure' or default_spell_map == 'Curaga' then
  434.             if world.weather_element == 'Light' then
  435.                 return 'Cure'
  436.             end
  437.         elseif spell.skill == 'Enfeebling Magic' then
  438.             if spell.type == 'WhiteMagic' then
  439.                 return 'MndEnfeebles'
  440.             else
  441.                 return 'IntEnfeebles'
  442.             end
  443.         elseif spell.skill == 'Elemental Magic' then
  444.             if info.low_nukes:contains(spell.english) then
  445.                 return 'LowTierNuke'
  446.             elseif info.mid_nukes:contains(spell.english) then
  447.                 return 'LowTierNuke'
  448.             elseif info.high_nukes:contains(spell.english) then
  449.                 return 'HighTierNuke'
  450.             end
  451.         end
  452.     end
  453. end
  454.  
  455. function customize_idle_set(idleSet)
  456.     if state.Buff['Sublimation: Activated'] then
  457.         if state.IdleMode.value == 'Normal' then
  458.             idleSet = set_combine(idleSet, sets.buff.FullSublimation)
  459.         elseif state.IdleMode.value == 'PDT' then
  460.             idleSet = set_combine(idleSet, sets.buff.PDTSublimation)
  461.         end
  462.     end
  463.  
  464.     if player.mpp < 51 then
  465.         idleSet = set_combine(idleSet, sets.latent_refresh)
  466.     end
  467.  
  468.     return idleSet
  469. end
  470.  
  471. -- Called by the 'update' self-command.
  472. function job_update(cmdParams, eventArgs)
  473.     if cmdParams[1] == 'user' and not (buffactive['light arts']      or buffactive['dark arts'] or
  474.                        buffactive['addendum: white'] or buffactive['addendum: black']) then
  475.         if state.IdleMode.value == 'Stun' then
  476.             send_command('@input /ja "Dark Arts" <me>')
  477.         else
  478.             send_command('@input /ja "Light Arts" <me>')
  479.         end
  480.     end
  481.  
  482.     update_active_strategems()
  483.     update_sublimation()
  484. end
  485.  
  486. -- Function to display the current relevant user state when doing an update.
  487. -- Return true if display was handled, and you don't want the default info shown.
  488. function display_current_job_state(eventArgs)
  489.     display_current_caster_state()
  490.     eventArgs.handled = true
  491. end
  492.  
  493. -------------------------------------------------------------------------------------------------------------------
  494. -- User code that supplements self-commands.
  495. -------------------------------------------------------------------------------------------------------------------
  496.  
  497. -- Called for direct player commands.
  498. function job_self_command(cmdParams, eventArgs)
  499.     if cmdParams[1]:lower() == 'scholar' then
  500.         handle_strategems(cmdParams)
  501.         eventArgs.handled = true
  502.     end
  503. end
  504.  
  505. -------------------------------------------------------------------------------------------------------------------
  506. -- Utility functions specific to this job.
  507. -------------------------------------------------------------------------------------------------------------------
  508.  
  509. -- Reset the state vars tracking strategems.
  510. function update_active_strategems()
  511.     state.Buff['Ebullience'] = buffactive['Ebullience'] or false
  512.     state.Buff['Rapture'] = buffactive['Rapture'] or false
  513.     state.Buff['Perpetuance'] = buffactive['Perpetuance'] or false
  514.     state.Buff['Immanence'] = buffactive['Immanence'] or false
  515.     state.Buff['Penury'] = buffactive['Penury'] or false
  516.     state.Buff['Parsimony'] = buffactive['Parsimony'] or false
  517.     state.Buff['Celerity'] = buffactive['Celerity'] or false
  518.     state.Buff['Alacrity'] = buffactive['Alacrity'] or false
  519.  
  520.     state.Buff['Klimaform'] = buffactive['Klimaform'] or false
  521. end
  522.  
  523. function update_sublimation()
  524.     state.Buff['Sublimation: Activated'] = buffactive['Sublimation: Activated'] or false
  525. end
  526.  
  527. -- Equip sets appropriate to the active buffs, relative to the spell being cast.
  528. function apply_grimoire_bonuses(spell, action, spellMap)
  529.     if state.Buff.Perpetuance and spell.type =='WhiteMagic' and spell.skill == 'Enhancing Magic' then
  530.         equip(sets.buff['Perpetuance'])
  531.     end
  532.     if state.Buff.Rapture and (spellMap == 'Cure' or spellMap == 'Curaga') then
  533.         equip(sets.buff['Rapture'])
  534.     end
  535.     if spell.skill == 'Elemental Magic' and spellMap ~= 'ElementalEnfeeble' then
  536.         if state.Buff.Ebullience and spell.english ~= 'Impact' then
  537.             equip(sets.buff['Ebullience'])
  538.         end
  539.         if state.Buff.Immanence then
  540.             equip(sets.buff['Immanence'])
  541.         end
  542.         if state.Buff.Klimaform and spell.element == world.weather_element then
  543.             equip(sets.buff['Klimaform'])
  544.         end
  545.     end
  546.  
  547.     if state.Buff.Penury then equip(sets.buff['Penury']) end
  548.     if state.Buff.Parsimony then equip(sets.buff['Parsimony']) end
  549.     if state.Buff.Celerity then equip(sets.buff['Celerity']) end
  550.     if state.Buff.Alacrity then equip(sets.buff['Alacrity']) end
  551. end
  552.  
  553.  
  554. -- General handling of strategems in an Arts-agnostic way.
  555. -- Format: gs c scholar <strategem>
  556. function handle_strategems(cmdParams)
  557.     -- cmdParams[1] == 'scholar'
  558.     -- cmdParams[2] == strategem to use
  559.  
  560.     if not cmdParams[2] then
  561.         add_to_chat(123,'Error: No strategem command given.')
  562.         return
  563.     end
  564.     local strategem = cmdParams[2]:lower()
  565.  
  566.     if strategem == 'light' then
  567.         if buffactive['light arts'] then
  568.             send_command('input /ja "Addendum: White" <me>')
  569.         elseif buffactive['addendum: white'] then
  570.             add_to_chat(122,'Error: Addendum: White is already active.')
  571.         else
  572.             send_command('input /ja "Light Arts" <me>')
  573.         end
  574.     elseif strategem == 'dark' then
  575.         if buffactive['dark arts'] then
  576.             send_command('input /ja "Addendum: Black" <me>')
  577.         elseif buffactive['addendum: black'] then
  578.             add_to_chat(122,'Error: Addendum: Black is already active.')
  579.         else
  580.             send_command('input /ja "Dark Arts" <me>')
  581.         end
  582.     elseif buffactive['light arts'] or buffactive['addendum: white'] then
  583.         if strategem == 'cost' then
  584.             send_command('input /ja Penury <me>')
  585.         elseif strategem == 'speed' then
  586.             send_command('input /ja Celerity <me>')
  587.         elseif strategem == 'aoe' then
  588.             send_command('input /ja Accession <me>')
  589.         elseif strategem == 'power' then
  590.             send_command('input /ja Rapture <me>')
  591.         elseif strategem == 'duration' then
  592.             send_command('input /ja Perpetuance <me>')
  593.         elseif strategem == 'accuracy' then
  594.             send_command('input /ja Altruism <me>')
  595.         elseif strategem == 'enmity' then
  596.             send_command('input /ja Tranquility <me>')
  597.         elseif strategem == 'skillchain' then
  598.             add_to_chat(122,'Error: Light Arts does not have a skillchain strategem.')
  599.         elseif strategem == 'addendum' then
  600.             send_command('input /ja "Addendum: White" <me>')
  601.         else
  602.             add_to_chat(123,'Error: Unknown strategem ['..strategem..']')
  603.         end
  604.     elseif buffactive['dark arts']  or buffactive['addendum: black'] then
  605.         if strategem == 'cost' then
  606.             send_command('input /ja Parsimony <me>')
  607.         elseif strategem == 'speed' then
  608.             send_command('input /ja Alacrity <me>')
  609.         elseif strategem == 'aoe' then
  610.             send_command('input /ja Manifestation <me>')
  611.         elseif strategem == 'power' then
  612.             send_command('input /ja Ebullience <me>')
  613.         elseif strategem == 'duration' then
  614.             add_to_chat(122,'Error: Dark Arts does not have a duration strategem.')
  615.         elseif strategem == 'accuracy' then
  616.             send_command('input /ja Focalization <me>')
  617.         elseif strategem == 'enmity' then
  618.             send_command('input /ja Equanimity <me>')
  619.         elseif strategem == 'skillchain' then
  620.             send_command('input /ja Immanence <me>')
  621.         elseif strategem == 'addendum' then
  622.             send_command('input /ja "Addendum: Black" <me>')
  623.         else
  624.             add_to_chat(123,'Error: Unknown strategem ['..strategem..']')
  625.         end
  626.     else
  627.         add_to_chat(123,'No arts has been activated yet.')
  628.     end
  629. end
  630.  
  631.  
  632. -- Gets the current number of available strategems based on the recast remaining
  633. -- and the level of the sch.
  634. function get_current_strategem_count()
  635.     -- returns recast in seconds.
  636.     local allRecasts = windower.ffxi.get_ability_recasts()
  637.     local stratsRecast = allRecasts[231]
  638.  
  639.     local maxStrategems = (player.main_job_level + 10) / 20
  640.  
  641.     local fullRechargeTime = 4*60
  642.  
  643.     local currentCharges = math.floor(maxStrategems - maxStrategems * stratsRecast / fullRechargeTime)
  644.  
  645.     return currentCharges
  646. end
  647.  
  648.  
  649. -- Select default macro book on initial load or subjob change.
  650. function select_default_macro_book()
  651.     set_macro_page(1,15)
  652. end
Add Comment
Please, Sign In to add comment