Advertisement
Guest User

Geo.lua

a guest
Jul 28th, 2016
505
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 24.39 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.     include('organizer-lib')
  12. end
  13.  
  14. -- Setup vars that are user-independent.  state.Buff vars initialized here will automatically be tracked.
  15. function job_setup()
  16.     indi_timer = ''
  17.     indi_duration = 180
  18.     state.CapacityMode = M(false, 'Capacity Point Mantle')
  19. end
  20.  
  21. -------------------------------------------------------------------------------------------------------------------
  22. -- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
  23. -------------------------------------------------------------------------------------------------------------------
  24.  
  25. -- Setup vars that are user-dependent.  Can override this function in a sidecar file.
  26. function user_setup()
  27.     state.Buff.Poison = buffactive['Poison'] or false
  28.  
  29.     state.OffenseMode:options('None', 'Normal', 'Melee','Skillup')
  30.     state.CastingMode:options('Normal','MagicBurst', 'Resistant')
  31.     state.IdleMode:options('Normal', 'PDT', 'Melee')
  32.  
  33.     gear.default.weaponskill_waist = "Windbuffet Belt +1"
  34.  
  35.     geo_sub_weapons = S{"Nehushtan", "Bolelabunga"}
  36.  
  37.     select_default_macro_book()
  38.     send_command('bind != gs c toggle CapacityMode')
  39.    
  40. end
  41.  
  42. function file_unload()
  43.     send_command('unbind !=')
  44. end
  45.  
  46. -- Define sets and vars used by this job file.
  47. function init_gear_sets()
  48.  
  49.     lowTierNukes = S{'Stone', 'Water', 'Aero', 'Fire', 'Blizzard', 'Thunder',
  50.         'Stone II', 'Water II', 'Aero II', 'Fire II', 'Blizzard II', 'Thunder II',
  51.         'Stone III', 'Water III', 'Aero III', 'Fire III', 'Blizzard III', 'Thunder III',
  52.         'Stonega', 'Waterga', 'Aeroga', 'Firaga', 'Blizzaga', 'Thundaga',
  53.         'Stonera', 'Watera', 'Aerora', 'Fira', 'Blizzara', 'Thundara',
  54.         'Stonega II', 'Waterga II', 'Aeroga II', 'Firaga II', 'Blizzaga II', 'Thundaga II'}
  55.     --------------------------------------
  56.     -- Precast sets
  57.     --------------------------------------
  58.    
  59.     gear.macc_hagondes = {name="Hagondes Cuffs", augments={'Mag. Acc.+23','Phys. dmg. taken -3%'}}
  60.     gear.fc_hagondes = {name="Hagondes Cuffs", augments={'"Fast Cast"+3','Phys. dmg. taken -3%'}}
  61.     gear.wr_refresh = {name="Witching Robe", augments={'MP+5','"Refresh"+1'}}
  62.     gear.wr_nuking = {name="Witching Robe", augments={'MP+25','"Mag. Atk. Bns."+7'}}
  63.     gear.Nanto_Nuking = {name="Nantosuelta's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Mag.Atk.Bns."+10',}}
  64.     gear.Nanto_Regen = {name="Nantosuelta's Cape", augments={'MP+60','Eva.+20 /Mag. Eva.+20','Pet: "Regen"+10',}}
  65.    
  66.     -- Precast sets to enhance JAs
  67.     sets.precast.JA.Bolster = {body="Bagua Tunic +1"}
  68.     sets.precast.JA['Life Cycle'] = {head="Azimuth Hood +1",body="Geomancy Tunic",back="Nantosuelta's Cape"}
  69.     sets.precast.JA['Full Circle'] = {hands="Bagua Mitaines +1"}
  70.     sets.precast.JA['Radial Arcana'] = {feet="Bagua Sandals +1"}
  71.  
  72.     sets.CapacityMantle  = { back="Aptitude Mantle" }
  73.  
  74.     sets.Organizer = {
  75.         main="Nehushtan",
  76.     }
  77.  
  78.     -- Fast cast sets for spells
  79.  
  80.     sets.precast.FC = {
  81.         main="Mindmelter",
  82.         sub="Clerisy Strap", -- 2%
  83.         head="Amalric Coif", -- 10%
  84.         --neck="Jeweled collar", -- 2%
  85.         ear2="Loquacious Earring", -- 2%
  86.         hands="Repartie Gloves",  -- 2%
  87.         --hands=gear.fc_hagondes, -- 3%
  88.         body="Anhur Robe", -- 10%
  89.         ring1="Prolix Ring", -- 2%
  90.         back="Lifestream Cape", -- 7%
  91.         waist="Witful Belt", -- 3%
  92.         legs="Geomancy Pants", -- 10%
  93.         feet="Regal Pumps +1" -- 7%
  94.     }
  95.  
  96.     sets.precast.FC.Cure = set_combine(sets.precast.FC, {
  97.         --main="Serenity",
  98.         sub="Sors Shield",
  99.         body="Nefer Kalasiris",
  100.         --back="Pahtli Cape"
  101.     })
  102.  
  103.     sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {
  104.         neck="Stoicheion Medal",
  105.         hands="Bagua Mitaines +1",
  106.     })
  107.    
  108.     sets.precast.FC.Impact = set_combine(sets.precast.FC['Elemental Magic'], {head=empty,body="Twilight Cloak"})
  109.  
  110.     sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {
  111.         waist="Siegel Sash"
  112.     })
  113.     sets.precast.FC.Stoneskin = set_combine(sets.precast.FC['Enhancing Magic'], {
  114.         head="Umuthi Hat",
  115.         hands="Carapacho Cuffs"
  116.     })
  117.     -- Weaponskill sets
  118.     -- Default set for any weaponskill that isn't any more specifically defined
  119.     sets.precast.WS = {
  120.         head="Merlinic Hood",
  121.         neck="Asperity Necklace",
  122.         ear1="Bladeborn Earring",
  123.         ear2="Steelflash Earring",
  124.         body="Ischemia Chasuble",
  125.         hands="Amalric Gages",
  126.         ring1="Rajas Ring",
  127.         ring2="Apate Ring",
  128.         back="Buquwik Cape",
  129.         waist="Windbuffet Belt +1",
  130.         legs="Psycloth Lappas",
  131.         feet="Battlecast Gaiters"
  132.     }
  133.  
  134.     sets.precast.WS['Exudation'] = {
  135.         head="Merlinic Hood",
  136.         neck="Asperity Necklace",
  137.         ear1="Bladeborn Earring",
  138.         ear2="Steelflash Earring",
  139.         body="Ischemia Chasuble",
  140.         hands="Amalric Gages",
  141.         ring1="Shiva Ring +1",
  142.         ring2="Apate Ring",
  143.         back="Buquwik Cape",
  144.         waist="Windbuffet Belt +1",
  145.         legs="Merlinic Shalwar",
  146.         feet="Battlecast Gaiters"
  147.     }
  148.     sets.precast.WS['Flash Nova'] = {
  149.         --sub=""Willpower Grip"",
  150.         ammo="Dosis Tathlum",
  151.         head="Merlinic Hood",
  152.         neck="Sanctity Necklace",
  153.         ear1="Hecate's Earring",
  154.         ear2="Friomisi Earring",
  155.         body="Count's Garb",
  156.         hands="Amalric Gages",
  157.         ring1="Acumen Ring",
  158.         ring2="Shiva Ring +1",
  159.         back="Nantosuelta's Cape",
  160.         waist="Eschan Stone",
  161.         legs="Merlinic Shalwar",
  162.         feet="Merlinic Crackows"
  163.     }
  164.    
  165.     sets.precast.WS['Shattersoul'] = {
  166.         ammo="Dosis Tathlum",
  167.         head="Merlinic Hood",
  168.         neck="Eddy Necklace",
  169.         ear1="Hecate's Earring",
  170.         ear2="Friomisi Earring",
  171.         body="Artsieq Jubbah",
  172.         hands="Amalric Gages",
  173.         ring1="Acumen Ring",
  174.         ring2="Shiva Ring +1",
  175.         back="Nantosuelta's Cape",
  176.         waist="Channeler's Stone",
  177.         legs="Merlinic Shalwar",
  178.         feet="Merlinic Crackows"
  179.        
  180.     }
  181.  
  182.     sets.precast.WS['Cataclysm'] = sets.precast.WS['Flash Nova']
  183.    
  184.     sets.precast.WS['Starlight'] = {ear2="Moonshade Earring"}
  185.  
  186.     sets.precast.WS['Moonlight'] = {ear2="Moonshade Earring"}
  187.  
  188.  
  189.     --------------------------------------
  190.     -- Midcast sets
  191.     --------------------------------------
  192.  
  193.     -- Base fast recast for spells
  194.     sets.midcast.FastRecast = {
  195.         range="Dunna",
  196.         --ammo="Clarus Stone", --Conserve MP+3
  197.         head="Amalric Coif", -- 6%
  198.         ear2="Calamitous Earring",
  199.         --ear2="Loquacious Earring",
  200.         --neck="Jeweled collar",
  201.         --body="Azimuth Coat +1", -- 3%
  202.         body="Artsieq Jubbah", -- 3%
  203.         hands="Bagua Mitaines +1", -- 3%
  204.         ring1="Prolix Ring",
  205.         back="Fi Follet Cape +1",
  206.         waist="Cetl Belt", -- 5%
  207.         legs="Psycloth Lappas", -- 5%
  208.         feet="Merlinic Crackows" -- 3%
  209.     }
  210.     sets.midcast.Trust =  {
  211.         head="Nahtirah Hat", -- 5%
  212.         --ear2="Loquacious Earring",
  213.         --neck="Jeweled collar",
  214.         --body="Azimuth Coat +1", -- 3%
  215.         body="Artsieq Jubbah", -- 3%
  216.         hands="Bagua Mitaines +1", -- 3%
  217.         ring1="Prolix Ring",
  218.         back="Lifestream Cape",
  219.         waist="Witful Belt", -- 4%
  220.         legs="Psycloth Lappas", -- 5%
  221.         feet="Merlinic Crackows" -- 3%
  222.     }
  223.      sets.midcast["Apururu (UC)"] = set_combine(sets.midcast.Trust, {
  224.          --body="Apururu Unity shirt",
  225.      })
  226.  
  227.     sets.midcast.Geomancy = {
  228.         --main="Bolelabunga",
  229.         --main="Serenity",
  230.         --sub="Giuoco Grip",
  231.         range="Dunna",
  232.         ear2="Calamitous Earring",
  233.         head="Azimuth Hood +1", -- 15
  234.         --neck="Incanter's Torque", -- 10
  235.         --ear1="Gwati Earring",
  236.         hands="Geomancy Mitaines +1", -- 15
  237.         body="Bagua Tunic +1", -- 10
  238.         back="Lifestream Cape", -- 14
  239.         legs="Azimuth Tights",
  240.         feet="Azimuth Gaiters"
  241.     }
  242.  
  243.     sets.midcast.Geomancy.Indi = set_combine(sets.midcast.Geomancy, {
  244.         range="Dunna",
  245.         --back="Nantosuelta's Cape",
  246.         legs="Bagua Pants",
  247.         feet="Azimuth Gaiters"
  248.     })
  249.  
  250.     sets.midcast.Cure = set_combine(sets.midcast.FastRecast, {
  251.         --ammo="Clarus Stone",
  252.         main="Nibiru Cudgel",
  253.         sub="Sors Shield",
  254.         head="Vanya Hood",
  255.         neck="Nodens Gorget",
  256.         ear1="Mendicant's earring",
  257.         ear2="Calamitous Earring",
  258.         body="Nefer Kalasiris",
  259.         hands="Bokwus Gloves",
  260.         ring1="Sirona's Ring",
  261.         ring2="Haoma's Ring",
  262.         back="Tempered Cape +1",
  263.         waist="Cetl Belt",
  264.         legs="Psycloth Lappas",
  265.         feet="Regal Pumps +1"
  266.     })
  267.    
  268.     sets.midcast.Curaga = set_combine(sets.midcast.Cure, {
  269.         waist="Austerity Belt"
  270.     })
  271.  
  272.     sets.midcast.Protectra = {ring1="Sheltered Ring"}
  273.  
  274.     sets.midcast.Shellra = {ring1="Sheltered Ring"}
  275.  
  276.     sets.midcast.Cursna = {head="Vanya Hood",neck="Malison Medallion",ring1="Haoma's Ring",ring2="Ephedra Ring",back="Tempered cape +1"}
  277.  
  278.     sets.midcast['Healing Magic'] = {
  279.         head="Vanya Hood",
  280.         back="Tempered cape +1",
  281.         ring1="Haoma's Ring",
  282.         ring2="Ephedra Ring"
  283.     }
  284.    
  285.     sets.midcast.HighTierNuke = {
  286.         main="Mindmelter",
  287.         sub="Niobid Strap",
  288.         ammo="Dosis Tathlum",
  289.         head="Merlinic Hood",
  290.         neck="Sanctity Necklace",
  291.         ear1="Hecate's Earring",
  292.         ear2="Friomisi Earring",
  293.         body="Wretched Coat",
  294.         hands="Amalric Gages",
  295.         ring1="Shiva Ring +1",
  296.         ring2="Shiva Ring +1",
  297.         back=gear.Nanto_Nuking,
  298.         waist="Eschan Stone",
  299.         legs="Merlinic Shalwar",
  300.         feet="Merlinic Crackows"
  301.     }
  302.    
  303.     sets.midcast.HighTierNuke.MagicBurst = set_combine(sets.midcast.HighTierNuke, {
  304.         neck="Mizukage-no-Kubikazari",
  305.         ring1="Locus Ring",
  306.         ring2="Mujin Band",
  307.         back="Seshaw Cape"
  308.    
  309.     })
  310.    
  311.     sets.midcast.HighTierNuke.Resistant = set_combine(sets.midcast.HighTierNuke, {
  312.         --head="Welkin Crown",
  313.         neck="Sanctity Necklace",
  314.         ear1="Hecate's Earring",
  315.         --ear2="Gwati Earring",
  316.         --body="Artsieq Jubbah",
  317.         back=gear.Nanto_Nuking,
  318.         --legs="Psycloth Lappas",
  319.         feet="Merlinic Crackows"
  320.         --feet="Bokwus Boots"
  321.     })
  322.    
  323.     sets.midcast.Impact = {
  324.         main="Mindmelter",
  325.         sub="Niobid Strap",
  326.         ammo="Dosis Tathlum",
  327.         head=empty,
  328.         neck="Eddy Necklace",
  329.         ear1="Hecate's Earring",
  330.         ear2="Crematio Earring",
  331.         body="Twilight Cloak",
  332.         hands="Amalric Gages",
  333.         ring1="Archon Ring",
  334.         ring2="Strendu Ring",
  335.         back=gear.Nanto_Nuking,
  336.         waist="Aswang Sash",
  337.         legs="Hagondes Pants",
  338.         feet="Merlinic Crackows"
  339.     }
  340.     --sets.midcast['Elemental Magic'].Mindmelter = set_combine(sets.midcast.HighTierNuke, {
  341.     --    main="Mindmelter"
  342.     --})
  343.  
  344.     sets.precast.JA['Concentric Pulse'] = sets.midcast.HightTierNuke
  345.  
  346.     sets.midcast.LowTierNuke = set_combine(sets.midcast.HighTierNuke, {
  347.         sub="Zuuxowu Grip",
  348.         --ear2="Crematio Earring",
  349.         --body=gear.wr_nuking,
  350.         --hands="Amalric Gages",
  351.         waist="Sekhmet Corset",
  352.         feet="Amalric Nails"
  353.     })
  354.    
  355.     sets.midcast.LowTierNuke.Resistant = set_combine(sets.midcast.LowTierNuke, {
  356.         --head="Amalric Coif",
  357.         ear1="Hecate's Earring",
  358.         neck="Sanctity Necklace",
  359.         --ear2="Gwati Earring",
  360.         --legs="Merlinic SHalwar",
  361.         ring1="Sangoma Ring",
  362.         --ring2="Fenrir Ring",
  363.         back=gear.Nanto_Nuking,
  364.         waist="Sekhmet Corset",
  365.         feet="Merlinic Crackows"
  366.     })
  367.  
  368.     sets.midcast.Macc = {
  369.         main="Mindmelter",
  370.         sub="Mephitis Grip",
  371.         ammo="Plumose Sachet",
  372.         head="Merlinic Hood",
  373.         neck="Sanctity Necklace",
  374.         ear1="Lifestorm Earring",
  375.         ear2="Psystorm Earring",
  376.         body="Vanya Robe",
  377.         hands="Hagondes Cuffs",
  378.         ring1="Arvina Ringlet +1",
  379.         ring2="Perception Ring",
  380.         back=gear.Nanto_Nuking,
  381.         waist="Eschan Stone",
  382.         legs="Merlinic Shalwar",
  383.         feet="Merlinic Crackows"
  384.     }
  385.    
  386.     sets.midcast.Aspir = set_combine(sets.midcast.Macc, {
  387.         head="Bagua Galero +1",
  388.         --neck="Dark Torque",
  389.         waist="Fucho-no-obi",
  390.         --ear1="Gwati Earring",
  391.         --ear2="Hirudinea Earring",
  392.         --ring1="Evanescence Ring",
  393.         --ring2="Excelsis Ring",
  394.         body="Geomancy Tunic",
  395.         legs="Azimuth Tights",
  396.         feet="Merlinic Crackows"
  397.     })
  398.     sets.midcast.Drain = sets.midcast.Aspir
  399.     sets.midcast.Stun = sets.midcast.Macc
  400.    
  401.    
  402.     sets.midcast['Enfeebling Magic'] = set_combine(sets.midcast.Macc, {
  403.         neck="Weike Torque",
  404.         body="Vanya Robe",
  405.         waist="Eschan Stone",
  406.         back="Lifestream Cape",
  407.         ring1="Globidonta Ring",
  408.         feet="Bagua Sandals +1"
  409.     })
  410.     sets.midcast.ElementalEnfeeble = set_combine(sets.midcast.Macc, {
  411.         --waist="Casso Sash",
  412.         neck="Imbodla Necklace",
  413.         hands="Azimuth Gloves",
  414.         body="Vanya Robe",
  415.         back=gear.Nanto_Nuking,
  416.         waist="Channeler's Stone",
  417.         ring1="Icesoul Ring",
  418.         ring2="Vertigo Ring",
  419.         feet="Merlinic Crackows"
  420.     })
  421.     sets.midcast['Enhancing Magic'] = set_combine(sets.midcast.FastRecast, {
  422.         head="Umuthi Hat",
  423.         --sub="Fulcio Grip",
  424.         --neck="Colossus's Torque",
  425.         body="Anhur Robe",
  426.         --hands="Ayao's Gloves",
  427.         back="Fi Follet Cape +1",
  428.         waist="Olympus Sash",
  429.         legs="Portent Pants"
  430.     })
  431.  
  432.     sets.midcast.Refresh = set_combine(sets.midcast['Enhancing Magic'],{head="Amalric Coif",back="Grapevine Cape"})
  433.    
  434.     sets.midcast.Aquaveil = set_combine(sets.midcast['Enhancing Magic'],{head="Amalric Coif"})
  435.    
  436.     sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'],{head="Umuthi Hat",neck="Nodens Gorget",waist="Siegel Sash"})
  437.  
  438.     sets.midcast.regen = {main="Bolelabunga"}
  439.     --------------------------------------
  440.     -- Idle/resting/defense/etc sets
  441.     --------------------------------------
  442.  
  443.     -- Resting sets
  444.     sets.resting = {
  445.         ammo="Clarus Stone",
  446.         main="Boonwell Staff",
  447.         head=empty,
  448.         neck="Wiglen Gorget",
  449.         ear1="Infused Earring",
  450.         body="Respite Cloak",
  451.         hands="Bagua Mitaines +1",
  452.         ring1="Sheltered Ring",
  453.         ring2="Paguroidea Ring",
  454.         waist="Austerity Belt",
  455.         back=gear.Nanto_Regen,
  456.         legs="Assiduity Pants +1",
  457.         feet="Chelona Boots"
  458.     }
  459.  
  460.  
  461.     -- Idle sets
  462.     sets.idle = {
  463.         main="Bolelabunga",
  464.         sub="Sors Shield",
  465.         range="Dunna",
  466.         head=empty,
  467.         neck="Sanctity Necklace",
  468.         ear1="Infused Earring",
  469.         ear2="Handler's Earring +1",
  470.         body="Respite Cloak",
  471.         hands="Bagua Mitaines +1",
  472.         ring1="Sheltered Ring",
  473.         ring2="Paguroidea Ring",
  474.         --back="Solemnity Cape",
  475.         --back="Nantosuelta's Cape",
  476.         back=gear.Nanto_Regen,
  477.         waist="Fucho-no-obi",
  478.         legs="Assiduity Pants +1",
  479.         feet="Geomancy Sandals"
  480.     }
  481.     sets.idle.PDT = set_combine(sets.idle, {
  482.         head="Hagondes Hat",
  483.         neck="Wiglen Gorget",
  484.         hands=gear.fc_hagondes,
  485.         --back="Solemnity Cape",
  486.         feet="Hagondes Sabots"
  487.     })
  488.  
  489.     -- .Pet sets are for when Luopan is present.
  490.     sets.idle.Pet = set_combine(sets.idle, {
  491.         range="Dunna",
  492.         main="Bolelabunga",
  493.         --sub="Genbu's Shield",
  494.         head="Azimuth Hood +1",
  495.         body="Ischemia Chasuble",
  496.         ear1="Handler's Earring",
  497.         ear2="Handler's Earring +1",
  498.         hands="Geomancy Mitaines +1",
  499.         back=gear.Nanto_Regen,
  500.         legs="Psycloth Lappas",
  501.         feet="Bagua Sandals +1"
  502.     })
  503.  
  504.     sets.idle.PDT.Pet = set_combine(sets.idle.Pet, {
  505.         range="Dunna",
  506.         ring1="Defending Ring",
  507.         ring2="Vocane Ring",
  508.     })
  509.  
  510.     sets.idle.Melee = set_combine(sets.idle, {
  511.         range="Dunna"
  512.         --main="Malevolence",
  513.         --sub="Bolelabunga"
  514.     })
  515.  
  516.     sets.idle.Town = set_combine(sets.idle, {
  517.         main="Bolelabunga",
  518.         sub="Sors Shield",
  519.         head="Merlinic Hood",
  520.         body="Bagua Tunic +1",
  521.         ear1="Infused Earring",
  522.         ear2="Handler's Earring +1",
  523.         hands="Amalric Gages",
  524.         back=gear.Nanto_Regen,
  525.         waist="Channeler's Stone",
  526.         legs="Merlinic Shalwar",
  527.         feet="Merlinic Crackows"
  528.     })
  529.  
  530.     sets.idle.Weak = sets.idle
  531.  
  532.     -- Defense sets
  533.  
  534.     sets.defense.PDT = {
  535.         main="Bolelabunga",
  536.         sub="Genbu's Shield",  
  537.         range="Dunna",
  538.         head="Merlinic Hood",
  539.         neck="Wiglen Gorget",
  540.         ear1="Ethereal Earring",
  541.         ear2="Sanare Earring",
  542.         body="Artsieq Jubbah",
  543.         hands="Bagua Mitaines +1",
  544.         ring1="Sheltered Ring",
  545.         ring2="Paguroidea Ring",
  546.         back="Repulse Mantle",
  547.         waist="Fucho-no-obi",
  548.         legs="Merlinic Shalwar",
  549.         feet="Merlinic Crackows"
  550.     }
  551.  
  552.     sets.defense.MDT = {
  553.         main="Bolelabunga",
  554.         sub="Genbu's Shield",  
  555.         range="Dunna",
  556.         head="Amalric Coif",
  557.         neck="Wiglen Gorget",
  558.         ear1="Ethereal Earring",
  559.         ear2="Sanare Earring",
  560.         body="Artsieq Jubbah",
  561.         hands="Bagua Mitaines +1",
  562.         ring1="Sheltered Ring",
  563.         ring2="Paguroidea Ring",
  564.         back="Repulse Mantle",
  565.         waist="Fucho-no-obi",
  566.         legs="Psycloth Lappas",
  567.         feet="Merlinic Crackows"
  568.     }
  569.  
  570.     sets.Kiting = {feet="Geomancy Sandals"}
  571.  
  572.     sets.latent_refresh = {waist="Fucho-no-obi"}
  573.  
  574.  
  575.     --------------------------------------
  576.     -- Engaged sets
  577.     --------------------------------------
  578.  
  579.     -- Variations for TP weapon and (optional) offense/defense modes.  Code will fall back on previous
  580.     -- sets if more refined versions aren't defined.
  581.     -- If you create a set with both offense and defense modes, the offense mode should be first.
  582.     -- EG: sets.engaged.Dagger.Accuracy.Evasion
  583.  
  584.     -- Normal melee group
  585.     sets.engaged = {
  586.         --range="Dunna",
  587.         ammo="Amar Cluster",
  588.         head="Nahtirah Hat",
  589.         neck="Clotharius Torque",
  590.         ear1="Dudgeon Earring",
  591.         ear2="Heartseeker Earring",
  592.         --body="Azimuth Coat +1",
  593.         --body="Vanir Cotehardie",
  594.         body="Ischemia Chasuble",
  595.         hands="Bagua Mitaines +1",
  596.         ring1="Rajas Ring",
  597.         ring2="Apate Ring",
  598.         back=gear.Nanto_Regen,
  599.         waist="Cetl Belt",
  600.         legs="Assiduity Pants +1",
  601.         feet="Battlecast Gaiters"
  602.     }
  603.     sets.engaged.Melee = set_combine(sets.engaged, {
  604.         --main="Mindmelter",
  605.     })
  606.     sets.engaged.Skillup = set_combine(sets.engaged, {
  607.         head="Temachtiani Headband",
  608.         body="Temachtiani Shirt",
  609.         hands="Temachtiani Gloves",
  610.         legs="Temachtiani Pants",
  611.         feet="Temachtiani Boots"
  612.     }) 
  613.     --------------------------------------
  614.     -- Custom buff sets
  615.     --------------------------------------
  616.  
  617. end
  618.  
  619. -------------------------------------------------------------------------------------------------------------------
  620. -- Job-specific hooks for standard casting events.
  621. -------------------------------------------------------------------------------------------------------------------
  622. function job_precast(spell, action, spellMap, eventArgs)
  623.     --if state.Buff.Poison then
  624.     --    classes.CustomClass = 'Mindmelter'
  625.     --end
  626. end
  627.  
  628. function job_post_precast(spell, action, spellMap, eventArgs)
  629.     -- Make sure abilities using head gear don't swap
  630.     if spell.type:lower() == 'weaponskill' then
  631.         -- CP mantle must be worn when a mob dies, so make sure it's equipped for WS.
  632.         if state.CapacityMode.value then
  633.             equip(sets.CapacityMantle)
  634.         end
  635.     end
  636. end
  637.  
  638. function job_aftercast(spell, action, spellMap, eventArgs)
  639.     if not spell.interrupted then
  640.         if spell.english:startswith('Indi') then
  641.             if not classes.CustomIdleGroups:contains('Indi') then
  642.                 classes.CustomIdleGroups:append('Indi')
  643.             end
  644.             send_command('@timers d "'..indi_timer..'"')
  645.             indi_timer = spell.english
  646.             send_command('@timers c "'..indi_timer..'" '..indi_duration..' down spells/00136.png')
  647.         elseif spell.english == 'Sleep' or spell.english == 'Sleepga' then
  648.             send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 60 down spells/00220.png')
  649.         elseif spell.english == 'Sleep II' or spell.english == 'Sleepga II' then
  650.             send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 90 down spells/00220.png')
  651.         end
  652.     elseif not player.indi then
  653.         classes.CustomIdleGroups:clear()
  654.     end
  655. end
  656.  
  657.  
  658. -------------------------------------------------------------------------------------------------------------------
  659. -- Job-specific hooks for non-casting events.
  660. -------------------------------------------------------------------------------------------------------------------
  661. --function job_status_change(newStatus, oldStatus, eventArgs)
  662. --    if newStatus == 'Engaged' then
  663. --        -- nothing yet
  664. --        elseif newStatus == 'Idle' then
  665. --            determine_idle_group()
  666. --    end
  667. --end
  668.  
  669. -- Called when a player gains or loses a buff.
  670. -- buff == buff gained or lost
  671. -- gain == true if the buff was gained, false if it was lost.
  672. function job_buff_change(buff, gain)
  673.     if player.indi and not classes.CustomIdleGroups:contains('Indi')then
  674.         classes.CustomIdleGroups:append('Indi')
  675.         handle_equipping_gear(player.status)
  676.     elseif classes.CustomIdleGroups:contains('Indi') and not player.indi then
  677.         classes.CustomIdleGroups:clear()
  678.         handle_equipping_gear(player.status)
  679.     end
  680. end
  681.  
  682. function job_state_change(stateField, newValue, oldValue)
  683.     if stateField == 'Offense Mode' then
  684.         if newValue == 'Melee' then
  685.             disable('main','sub')
  686.         else
  687.             enable('main','sub')
  688.         end
  689.     end
  690. end
  691.  
  692. -------------------------------------------------------------------------------------------------------------------
  693. -- User code that supplements standard library decisions.
  694. -------------------------------------------------------------------------------------------------------------------
  695.  
  696. function job_get_spell_map(spell, default_spell_map)
  697.     if spell.action_type == 'Magic' then
  698.         if spell.skill == 'Enfeebling Magic' then
  699.             if spell.type == 'WhiteMagic' then
  700.                 return 'MndEnfeebles'
  701.             else
  702.                 return 'IntEnfeebles'
  703.             end
  704.         elseif spell.skill == 'Geomancy' then
  705.             if spell.english:startswith('Indi') then
  706.                 return 'Indi'
  707.             end
  708.         elseif spell.skill == 'Elemental Magic' and default_spell_map ~= 'ElementalEnfeeble' then
  709.             if lowTierNukes:contains(spell.english) then
  710.                 return 'LowTierNuke'
  711.             else
  712.                 return 'HighTierNuke'
  713.             end
  714.         elseif spell.type == 'Trust' then
  715.             return 'Trust'
  716.  
  717.         end
  718.     end
  719. end
  720.  
  721. function customize_idle_set(idleSet)
  722.     if player.mpp < 51 then
  723.         idleSet = set_combine(idleSet, sets.latent_refresh)
  724.     end
  725.     if state.CapacityMode.value then
  726.         idleSet = set_combine(idleSet, sets.CapacityMantle)
  727.     end
  728.     if state.OffenseMode.value == 'Melee' then
  729.         idleSet = set_combine(sets.idle, sets.idle.Melee)
  730.     end
  731.     return idleSet
  732. end
  733.  
  734. -- Modify the default melee set after it was constructed.
  735. function customize_melee_set(meleeSet)
  736.     if state.CapacityMode.value then
  737.         meleeSet = set_combine(meleeSet, sets.CapacityMantle)
  738.     end
  739.     return meleeSet
  740. end
  741. -- Called by the 'update' self-command.
  742. function job_update(cmdParams, eventArgs)
  743.     classes.CustomIdleGroups:clear()
  744.     if player.indi then
  745.         classes.CustomIdleGroups:append('Indi')
  746.     end
  747. end
  748.  
  749. -- Function to display the current relevant user state when doing an update.
  750. function display_current_job_state(eventArgs)
  751.     display_current_caster_state()
  752.     eventArgs.handled = true
  753. end
  754.  
  755. -------------------------------------------------------------------------------------------------------------------
  756. -- Utility functions specific to this job.
  757. -------------------------------------------------------------------------------------------------------------------
  758.  
  759. -- Select default macro book on initial load or subjob change.
  760. function select_default_macro_book()
  761.     set_macro_page(10, 1)
  762. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement