icewell

geo.lua

Jul 19th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 22.63 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.    
  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 = 245
  18. end
  19.  
  20. -------------------------------------------------------------------------------------------------------------------
  21. -- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
  22. -------------------------------------------------------------------------------------------------------------------
  23.  
  24. -- Setup vars that are user-dependent.  Can override this function in a sidecar file.
  25. function user_setup()
  26.     state.OffenseMode:options('None', 'Normal','Accuracy')
  27.     state.CastingMode:options('Normal', 'Resistant')
  28.     state.IdleMode:options('Normal', 'PDT')
  29.  
  30.     gear.default.weaponskill_waist = "light Belt"
  31.     gear.default.obi_waist = "yamabuki-no-obi"
  32.     gear.default.obi_back = "seshaw Cape"
  33.     gear.default.obi_ring = "Acumen Ring"
  34.    
  35.     --select_default_macro_book()
  36.     -- Additional local binds ^ is for ctrl
  37.     --! is for alt
  38.     --@ is for windows key
  39.    
  40.     send_command('bind != input /map')
  41.     send_command('bind ` input /ja "Full circle" <me>')
  42.     send_command('bind !` input /ja "Lasting emanation" <me>')
  43.     send_command('bind @` input /ja "Ecliptic attrition" <me>')
  44.     send_command('bind ^b input /ja "Blaze of Glory" <me>')
  45.     send_command('bind ^` input /ja "Life cycle" <me>')
  46.     send_command('bind ^e input /ja "Entrust" <me>')
  47.     send_command('bind ^d input /ja "Dematerialize" <me>')
  48.     send_command('bind ^a input /ja "Radial arcana" <me>')
  49.     send_command('bind ^c input /ja "Concentric pulse" <me>')
  50.     send_command('bind !a input /ma "Dia II" <t>')
  51.     send_command('bind !f input /ma "Frazzle" <t>')
  52.     send_command('bind !v input /ma "Cure IV" <stpt>')
  53.     send_command('bind ^o input /ma "Aspir III" <t>')
  54.     send_command('bind ^u input /ma "Dispel" <t>')
  55.     send_command('bind !g input /ma Gravity <t>')
  56.    
  57. end
  58.  
  59. -- Called when this job file is unloaded (eg: job change)
  60. function user_unload()
  61.     send_command('unbind `')
  62.     send_command('unbind !`')
  63.     send_command('unbind @`')
  64.     send_command('unbind ^b')
  65.     send_command('unbind ^`')
  66.     send_command('unbind ^e')
  67.     send_command('unbind ^d')
  68.     send_command('unbind ^a')
  69.     send_command('unbind ^c')
  70.     send_command('unbind !a')
  71.     send_command('unbind !f')
  72.     send_command('unbind !v')
  73.     send_command('unbind ^o')
  74.     send_command('unbind ^u')
  75.     send_command('unbind !g')
  76.    
  77. end
  78.  
  79.  
  80. -- Define sets and vars used by this job file.
  81. function init_gear_sets()
  82.  
  83.     --------------------------------------
  84.     -- Precast sets
  85.     --------------------------------------
  86.  
  87.     -- Precast sets to enhance JAs
  88.     sets.precast.JA.Bolster = {body="Bagua Tunic"}
  89.     sets.precast.JA['Life cycle'] = {body="Geomancy Tunic",back="Nantosuelta's cape"}
  90.     sets.precast.JA['Curative Recantation'] = {hands="Bagua Mitaines"}
  91.     sets.precast.JA['Mending Halation'] = {legs="Bagua pants +1"}
  92.     sets.precast.JA['Radial Arcana'] = {feet="Bagua Sandals +1"}
  93.     sets.precast.JA['Primal Zeal'] = {head="Bagua galero"} 
  94.     sets.precast.JA['Cardinal Chant'] = {head="Geomancy galero"}
  95.  
  96.  
  97.     -- Fast cast sets for spells
  98.  
  99.     sets.precast.FC = {ammo="",
  100.         head="Hyaline Hat",neck="Orunmila's torque",ear1="Etiolation earring",ear2="Loquacious Earring",
  101.         body="Helios jacket",ring1="Prolix Ring",
  102.         back="Lifestream Cape",waist="Channeler's stone",legs="Geomancy pants +1",feet="Amalric nails"}
  103.  
  104.     sets.precast.FC.Cure = set_combine(sets.precast.FC, {
  105.     body="Heka's kalasiris",
  106.     back="Pahtli Cape"})
  107.  
  108.     sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
  109.  
  110.     sets.precast.FC['Enhancing Magic'].Stoneskin = set_combine(sets.precast.FC, {head="Umuthi hat",hands="Carapacho cuffs"})
  111.    
  112.     sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {
  113.     neck="Stoicheion Medal",
  114.     hands="Bagua mitaines"})
  115.  
  116.     sets.precast.FC.Impact = set_combine(sets.precast.FC['Elemental Magic'], {head=empty,body="Twilight Cloak"})
  117.    
  118.    
  119.     -- Weaponskill sets
  120.     -- Default set for any weaponskill that isn't any more specifically defined
  121.     sets.precast.WS = {
  122.         head="Merlinic hood",
  123.         neck="Fotia gorget",
  124.         ear1="Bladeborn Earring",
  125.         ear2="Steelflash Earring",
  126.         body="Helios jacket",
  127.         hands="Telchine Gloves",
  128.         ring1="Rajas Ring",
  129.         ring2="Leviathan Ring",
  130.         waist="Fotia belt",
  131.         legs="Bagua pants +1 +1",
  132.         feet="Battlecast gaiters"}
  133.  
  134.     -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
  135.  
  136.         sets.precast.WS['Hexa Strike'] = {
  137.     range="Dunna",
  138.     head="Befouled crown",
  139.     body="Helios jacket",
  140.     hands="Telchine gloves",
  141.     legs="Merlinic shalwar",
  142.     feet="Bagua Sandals +1",
  143.     neck="Fotia Gorget",
  144.     waist="Fotia Belt",
  145.     left_ear="Tati earring",
  146.     right_ear="Tati earring",
  147.     left_ring="Levia. Ring",
  148.     right_ring="Levia. Ring",
  149.     back="Pahtli Cape",
  150. }
  151.        
  152.         sets.precast.WS['Realmrazer'] = sets.precast.WS['Hexa Strike']
  153.        
  154.         sets.precast.WS['Flash Nova'] = sets.precast.WS['Hexa Strike']
  155.        
  156.         sets.precast.WS['Black Halo'] = sets.precast.WS['Hexa Strike']
  157.        
  158.          sets.precast.WS['Exudation'] = sets.precast.WS['Hexa Strike']
  159.        
  160.        
  161.        
  162.     sets.precast.WS['Starlight'] = {ear2=""}
  163.  
  164.     sets.precast.WS['Moonlight'] = {ear2=""}
  165.  
  166.  
  167.     --------------------------------------
  168.     -- Midcast sets
  169.     --------------------------------------
  170.  
  171.     -- Base fast recast for spells
  172.     sets.midcast.FastRecast = {
  173.     main=""}
  174.    
  175.     sets.midcast.Phalanx = {
  176.     range="Dunna",
  177.     head="Befouled crown",
  178.     neck="Incanter's torque",
  179.     hands="Telchine gloves"}
  180.    
  181.  
  182.  
  183.     sets.midcast.Aquaveil = set_combine(sets.midcast['Enhancing Magic'], {
  184.     waist=""})
  185.  
  186.     sets.midcast.Geomancy ={
  187.     range="Dunna",
  188.     head="Azimuth hood +1",
  189.     neck="Incanter's torque",
  190.     body="Bagua Tunic",
  191.     hands="Geomancy Mitaines +1",
  192.     legs="Bagua pants +1",
  193.     feet="Azimuth gaiters",
  194.     waist="Austerity Belt",
  195.     left_ear="Calamitous Earring",
  196.     right_ear="Gifted Earring",
  197.     back="Lifestream Cape"}
  198.    
  199.     sets.midcast.Geomancy.Indi =set_combine(sets.midcast.Geomancy, {
  200.     back="Nantosuelta's cape",legs="Bagua pants +1",feet="Azimuth gaiters"})
  201.  
  202.  
  203.     sets.midcast.Cure = {main="Serenity",
  204.         head="Vanya hood",neck="Incanter's torque",
  205.         body="Helios Jacket",hands="Telchine Gloves",ring1="Asklepian ring",ring2="Kunaji Ring",
  206.         back="Pahtli Cape",waist="Hachirin-no-obi",legs="Gyve trousers",feet="Arbatel loafers +1"}
  207.  
  208.  
  209.        
  210.         sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {neck="Stone gorget",
  211.     hands="Carapacho cuffs",
  212.     waist="Siegel Sash",legs="Haven hose"})
  213.        
  214.    
  215.     sets.midcast.Curaga = sets.midcast.Cure
  216.  
  217.     sets.midcast.Protectra = {ring1="Sheltered Ring"}
  218.  
  219.     sets.midcast.Shellra = {ring1="Sheltered Ring"}
  220.  
  221.         -- Custom Spell Classes
  222.     sets.midcast['Enfeebling Magic'] = {
  223.     main="Serenity",
  224.     sub="Niobid strap",
  225.     range="Dunna",
  226.     head="Merlinic hood",
  227.     body="Amalric doublet",
  228.     hands="Amalric gages",
  229.     legs="Merlinic shalwar",
  230.     feet="Bagua sandals",
  231.     neck="Sanctity necklace",
  232.     waist="Eschan stone",
  233.     left_ring="Mediator's ring",
  234.     right_ring="Angha ring",
  235.     back="Lifestream Cape",}
  236.  
  237.     sets.midcast.IntEnfeebles = {main="Serenity",sub="Niobid strap",ammo="Hydrocera",
  238.         head="Merlinic hood",neck="Sanctity necklace",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  239.         body="Amalric doublet",hands="Amalric gages",ring1="Mediator's ring",ring2="Angha Ring",
  240.         back="Lifestream cape",waist="Eschan stone",legs="Merlinic shalwar",feet="Amalric nails"}
  241.  
  242.     sets.midcast.ElementalEnfeeble = sets.midcast['Enfeebling Magic']
  243.  
  244.     sets.midcast['Dark Magic'] = {main="Serenity",sub="Niobid strap",ammo="Hydrocera",
  245.         head="Merlinic hood",neck="Mizu. Kubikazari",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  246.         body="Amalric doublet",hands="Hagondes cuffs +1",ring1="Mediator's ring",ring2="Angha Ring",
  247.         waist="Eschan stone",legs="Merlinic shalwar"}
  248.        
  249.         sets.midcast.Drain = {main="Serenity",sub="Niobid strap",ammo="Hydrocera",
  250.         head="Merlinic hood",neck="Mizukage-no-kubikazara",ear1="Psystorm Earring",ear2="Lifestorm Earring",
  251.         body="Amalric doublet",hands="Amalric gages",ring1="Mujin band",ring2="Locus Ring",
  252.         back="Seshaw cape",waist="Eschan stone",legs="Merlinic shalwar"}
  253.    
  254.     sets.midcast.Aspir = sets.midcast.Drain
  255.    
  256.  
  257.     --{ name="", augments={'','','',}}
  258.     sets.midcast.Stun = {
  259.     main="Nodal Wand",
  260.     sub={ name="Genbu's Shield", augments={'"Cure" potency +3%','"Resist Paralyze"+6','"Cure" spellcasting time -5%',}},
  261.     range="Dunna",
  262.     head="Merlinic hood",
  263.     body="Amalric doublet",
  264.     hands="Amalric gages",
  265.     legs="Geo. Pants +1",
  266.     neck="Incanter's torque",
  267.     waist="Eschan stone",
  268.     left_ear="Lifestorm earring",
  269.     right_ear="Psystorm Earring",
  270.     left_ring="Mediator's Ring",
  271.     right_ring="Angha Ring"}   
  272.            
  273.  
  274.         sets.midcast.Bolster = {body="Bagua Tunic"}
  275.         sets.midcast['Life Cycle'] = {body="Geomancy tunic",back="Nantosuelta's cape"}
  276.         sets.midcast['Mending Halation'] = {legs="Bagua pants +1"}
  277.         sets.midcast['Radial Arcana'] = {feet="Bagua Sandals +1"}
  278.         sets.midcast.Bolster.Pet = {body="Bagua Tunic"}
  279.         sets.midcast['Life Cycle'].Pet = {body="Geomancy Tunic",back="Nantosuelta's cape"}
  280.         sets.midcast['Mending Halation'].Pet = {legs="Bagua pants +1"}        sets.midcast.Bolster.Pet.Indi = {body="Bagua Tunic +1"}
  281.         sets.midcast['Life Cycle'].Pet.Indi = {body="Geomancy Tunic",back="Nantosuelta's cape"}
  282.         sets.midcast['Mending Halation'].Pet.Indi = {legs="Bagua pants +1"}
  283.  
  284.           -- Elemental Magic sets
  285.    
  286.     sets.midcast['Elemental Magic'] = {main="Nodal wand",sub="Culminus",ranged="Dunna",
  287.         head="Merlinic hood",neck="Mizu. kubikazari",ear1="Barkarole Earring",ear2="Friomisi earring",
  288.         body="Amalric doublet",hands="Amalric gages",ring1="Locus Ring",ring2="Mujin band",
  289.         back="Seshaw cape",waist="Eschan stone",legs="Merlinic shalwar",feet="Amalric nails"}
  290.  
  291.     sets.midcast['Elemental Magic'].Resistant = set_combine(sets.midcast['Elemental Magic'], {
  292.     head="Merlinic hood",
  293.     body="Amalric doublet",
  294.     legs="Merlinic shalwar"})
  295.  
  296.        
  297.     sets.midcast['Elemental Magic'].HighTierNuke = {main="Nodal wand",sub="Culminus",ranged="Dunna",
  298.         head="Merlinic hood",neck="Mizu. kubikazari",ear1="Barkarole Earring",ear2="Static earring",
  299.         body="Amalric doublet",hands="Amalric gages",ring1="Locus Ring",ring2="Mujin band",
  300.         back="Seshaw cape",waist="Eschan stone",legs="Merlinic shalwar",feet="Amalric nails"}
  301.  
  302.        sets.midcast.Impact = {
  303.     sub="Niobid strap",
  304.     range="Dunna",
  305.     head="Merlinic hood",
  306.     body="Twilight Cloak",
  307.     hands="Amalric gages",
  308.     legs="Merlinic shalwar",
  309.     feet="Amalric nails",
  310.     neck="Mizu. Kubikazari",
  311.     waist="Eschan stone",
  312.     left_ear="Barkarole Earring",
  313.     right_ear="Friomisi Earring",
  314.     left_ring="Acumen Ring",
  315.     right_ring="Angha Ring",
  316.     back="Seshaw Cape",
  317. }  
  318.        
  319.     --------------------------------------
  320.     -- Idle/resting/defense/etc sets
  321.     --------------------------------------
  322.  
  323.     -- Resting sets
  324.     sets.resting = {main="Boonwell staff",
  325.     body="Chelona blazer",waist="Austerity belt",ring2="Angha ring",
  326.     feet = "Chelona boots"}
  327.  
  328.  
  329.     -- Idle sets
  330.  
  331.     sets.idle = {main="Bolelabunga",sub="Culminus",ranged="Dunna",
  332.         head="Befouled crown",neck="Loricate torque",ear1="Etiolation Earring",ear2="",
  333.         body="Amalric doublet",hands="Bagua mitaines",ring1="Locus Ring",ring2="Dark ring",
  334.         back="Aptitude mantle",waist="Slipor sash",legs="Assiduity pants +1",feet="Herald's gaiters"}
  335.  
  336.     sets.idle.PDT = {
  337.     main="Nodal wand",
  338.     sub="Genbu's shield",
  339.     range="Dunna",
  340.         head="Hike khat +1",
  341.         neck="Loricate torque",
  342.         body="Hagondes coat +1",
  343.         ring1="Dark ring",
  344.         back="Lifestream Cape",
  345.         legs="Assiduity pants +1",
  346.         feet="Battlecast gaiters"}
  347.  
  348.     -- .Pet sets are for when Luopan is present.
  349.     sets.idle.Pet = {main="Nodal Wand",sub="Culminus",range="Dunna",
  350.     head="Azimuth hood +1",ear1="Handler's earring +1",
  351.     body="Helios jacket",hands="Geomancy mitaines +1",
  352.     back="Nantosuelta's Cape",waist="Isa Belt",legs="Telchine braconi",feet="Bagua Sandals +1"}
  353.  
  354.     sets.idle.PDT.Pet = set_combine(sets.idle.PDT, {sets.idle.Pet})
  355.  
  356.     -- .Indi sets are for when an Indi-spell is active.
  357.     sets.idle.Indi = set_combine(sets.idle, {})
  358.     sets.idle.Pet.Indi = set_combine(sets.idle.Pet, {})
  359.     sets.idle.PDT.Indi = set_combine(sets.idle.PDT, {})
  360.     sets.idle.PDT.Pet.Indi = set_combine(sets.idle.PDT.Pet, {})
  361.  
  362.     sets.idle.Town = {main="Nodal wand",sub="Culminus",ranged="Dunna",
  363.         head="Befouled Crown",neck="Mizukage-no-Kubikazari",ear1="Friomis earring",ear2="Hecate's earring",
  364.         body="Amalric doublet",hands="Bagua mitaines",ring1="Locus ring",ring2="Mujin band",
  365.         back="Seshaw Cape",waist="Eschan stone",legs="Assiduity pants +1",feet="Herald's gaiters"}
  366.  
  367.     sets.idle.Weak = {
  368.     main="Bolelabunga",
  369.     sub="Genbu's Shield",
  370.     range="Dunna",
  371.     hands={ name="Bagua Mitaines +1", augments={'Enhances "Curative Recantation" effect',}},
  372.     legs="Assid. Pants +1",
  373.     feet="Geo. Sandals +1",
  374.     neck="Sanctity necklace",
  375.     waist="Fucho-no-Obi",
  376.     left_ring="",
  377.     right_ring="Paguroidea Ring"}
  378.  
  379.     -- Defense sets
  380.  
  381.     sets.defense.PDT = {
  382.     main="Earth Staff",
  383.     sub="Niobid strap",
  384.     range="Dunna",
  385.     head="Hagondes Hat +1",
  386.     body="Hagondes Coat +1",
  387.     hands="Geomancy mitaines +1",
  388.     legs="Hagondes Pants +1",
  389.     feet="Battlecast gaiters",
  390.     neck="Loricate torque",
  391.     right_ring="Dark Ring",
  392.     back="Lifestream cape"}
  393.  
  394.     sets.defense.MDT = {
  395.     main="Terra's Staff",
  396.     sub="Wizzan Grip",
  397.     range="Dunna",
  398.     head="Vanya hood",
  399.     body="Helios jacket",
  400.     hands="Geomancy mitaines +1",
  401.     legs="Gyve trousers",    
  402.     neck="Loricate torque",
  403.     waist="Slipor sash",
  404.     left_ear="Etiolation Earring",
  405.     right_ear="Ethereal Earring",
  406.     left_ring="Yacuruna ring",
  407.     right_ring="Yacuruna ring",
  408.     back="Lifestream cape",
  409. }
  410.  
  411.     sets.Kiting = {feet="Geo. Sandals +1"}
  412.  
  413.     sets.latent_refresh = {waist="Fucho-no-obi"}
  414.    
  415.      lowTierNukes = S{'Stone', 'Water', 'Aero', 'Fire', 'Blizzard', 'Thunder',
  416.         'Stone II', 'Water II', 'Aero II', 'Fire II', 'Blizzard II', 'Thunder II',
  417.         'Stone III', 'Water III', 'Aero III', 'Fire III', 'Blizzard III', 'Thunder III',
  418.         'Stonega', 'Waterga', 'Aeroga', 'Firaga', 'Blizzaga', 'Thundaga',
  419.         'Stonega II', 'Waterga II', 'Aeroga II', 'Firaga II', 'Blizzaga II', 'Thundaga II'}
  420.  
  421.  
  422.     --------------------------------------
  423.     -- Engaged sets
  424.     --------------------------------------
  425.  
  426.     -- Variations for TP weapon and (optional) offense/defense modes.  Code will fall back on previous
  427.     -- sets if more refined versions aren't defined.
  428.     -- If you create a set with both offense and defense modes, the offense mode should be first.
  429.     -- EG: sets.engaged.Dagger.Accuracy.Evasion
  430.  
  431.     -- Normal melee group
  432.     sets.engaged = {
  433.     main="",
  434.     sub="Genbu's Shield",
  435.     range="Dunna",
  436.     head="Befouled crown",
  437.     body="Azimuth coat",
  438.     hands="Geomancy mitaines +1",
  439.     legs="Assiduity pants +1",
  440.     feet="Bagua sandals +1",
  441.     neck="Sanctity necklace",
  442.     waist="Eschan stone",
  443.     left_ear="Steelflash Earring",
  444.     right_ear="Bladeborn Earring",
  445.     left_ring="Dark ring",
  446.     right_ring="Rajas Ring",
  447.     back="Kayapa cape"}
  448.  
  449.     sets.engaged.Accuracy = {
  450.     main="Nehushtan",
  451.     sub="Culminus",
  452.     range="Dunna",
  453.     head={ name="Hagondes Hat +1", augments={'Phys. dmg. taken -3%','Magic dmg. taken -4%','Enmity-4',}},
  454.     body="Ischemia Chasu.",
  455.     hands="Espial Bracers",
  456.     legs={ name="Hagondes Pants +1", augments={'Phys. dmg. taken -3%','Magic dmg. taken -2%','"Mag.Atk.Bns."+22',}},
  457.     feet={ name="Hag. Sabots +1", augments={'Phys. dmg. taken -1%','"Mag.Atk.Bns."+11',}},
  458.     neck="Iqabi Necklace",
  459.     waist="Olseni Belt",
  460.     left_ear="Steelflash Earring",
  461.     right_ear="Zennaroi Earring",
  462.     left_ring="Beeline Ring",
  463.     right_ring="Rajas Ring",
  464.     back="Kayapa Cape",
  465. }      
  466.     --------------------------------------
  467.     -- Custom buff sets
  468.     --------------------------------------
  469.  
  470. end
  471.  
  472. -------------------------------------------------------------------------------------------------------------------
  473. -- Job-specific hooks for standard casting events.
  474. -------------------------------------------------------------------------------------------------------------------
  475. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  476. function job_precast(spell, action, spellMap, eventArgs)
  477.     if spellMap == 'Cure' or spellMap == 'Curaga' then
  478.         gear.default.obi_waist = "yamabuki-no-obi"
  479.     elseif spell.skill == 'Elemental Magic' then
  480.         gear.default.obi_waist = "yamabuki-no-obi"
  481.         if state.CastingMode.value == 'Proc' then
  482.             classes.CustomClass = 'Proc'
  483.         end
  484.     end
  485. end
  486.  
  487.  
  488.  
  489. function job_midcast(spell, action, spellMap, eventArgs)
  490.     if spell.action_type == 'Magic' then
  491.         -- Default base equipment layer of fast recast.
  492.         equip(sets.midcast.FastRecast)
  493.     end
  494. end
  495.  
  496. -- Custom spell mapping.
  497. function job_get_spell_map(spell, default_spell_map)
  498.     if spell.skill == 'Elemental Magic' and default_spell_map ~= 'ElementalEnfeeble' then
  499.         if LowTierNukes:contains(spell.english) then
  500.             return 'LowTierNuke'
  501.         else
  502.             return 'HighTierNuke'
  503.         end
  504.     end
  505. end
  506. -- Run after the general midcast() is done.
  507. function job_post_midcast(spell, action, spellMap, eventArgs)
  508.  
  509. end
  510.  
  511. function job_aftercast(spell, action, spellMap, eventArgs)
  512.     if not spell.interrupted then
  513.         if spell.english:startswith('Indi') then
  514.             if not classes.CustomIdleGroups:contains('Indi') then
  515.                 classes.CustomIdleGroups:append('Indi')
  516.             end
  517.             send_command('@timers d "'..indi_timer..'"')
  518.             indi_timer = spell.english
  519.             send_command('@timers c "'..indi_timer..'" '..indi_duration..' down spells/00136.png')
  520.         elseif spell.english == 'Sleep' or spell.english == 'Sleepga' then
  521.             send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 60 down spells/00220.png')
  522.         elseif spell.english == 'Sleep II' or spell.english == 'Sleepga II' then
  523.             send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 90 down spells/00220.png')
  524.         end
  525.     elseif not player.indi then
  526.         classes.CustomIdleGroups:clear()
  527.     end
  528. end
  529.  
  530. -------------------------------------------------------------------------------------------------------------------
  531. -- Job-specific hooks for non-casting events.
  532. -------------------------------------------------------------------------------------------------------------------
  533.  
  534. -- Called when a player gains or loses a buff.
  535. -- buff == buff gained or lost
  536. -- gain == true if the buff was gained, false if it was lost.
  537. function job_buff_change(buff, gain)
  538.     if player.indi and not classes.CustomIdleGroups:contains('Indi')then
  539.         classes.CustomIdleGroups:append('Indi')
  540.         handle_equipping_gear(player.status)
  541.     elseif classes.CustomIdleGroups:contains('Indi') and not player.indi then
  542.         classes.CustomIdleGroups:clear()
  543.         handle_equipping_gear(player.status)
  544.     end
  545. end
  546.  
  547. function job_state_change(stateField, newValue, oldValue)
  548.     if stateField == 'Offense Mode' then
  549.         if newValue == 'Accuracy' then
  550.             disable('main','sub','range')
  551.         else
  552.             enable('main','sub','range')
  553.         end
  554.     end
  555. end
  556.  
  557. -------------------------------------------------------------------------------------------------------------------
  558. -- User code that supplements standard library decisions.
  559. -------------------------------------------------------------------------------------------------------------------
  560.  
  561. function job_get_spell_map(spell, default_spell_map)
  562.     if spell.action_type == 'Magic' then
  563.         if spell.skill == 'Enfeebling Magic' then
  564.             if spell.type == 'WhiteMagic' then
  565.                 return 'MndEnfeebles'
  566.             else
  567.                 return 'IntEnfeebles'
  568.             end
  569.         elseif spell.skill == 'Geomancy' then
  570.             if spell.english:startswith('Indi') then
  571.                 return 'Indi'
  572.             end
  573.         end
  574.     end
  575. end
  576.  
  577. function customize_idle_set(idleSet)
  578.     if player.mpp < 51 then
  579.         idleSet = set_combine(idleSet, sets.latent_refresh)
  580.     end
  581.     return idleSet
  582. end
  583.  
  584. -- Called by the 'update' self-command.
  585. function job_update(cmdParams, eventArgs)
  586.     classes.CustomIdleGroups:clear()
  587.     if player.indi then
  588.         classes.CustomIdleGroups:append('Indi')
  589.     end
  590. end
  591.  
  592. -- Function to display the current relevant user state when doing an update.
  593. function display_current_job_state(eventArgs)
  594.     display_current_caster_state()
  595.     eventArgs.handled = true
  596. end
  597.  
  598. function open_coffer()
  599.     CofferType = "Velkk Coffer"
  600.     NCoffer = player.inventory[CofferType].count
  601.     bag = windower.ffxi.get_bag_info(0).count
  602.     max = windower.ffxi.get_bag_info(0).max
  603.     spots = max-bag
  604.     if spots > 0 then
  605.     add_to_chat(204, '*-*-*-*-*-*-*-*-* [ '..NCoffer..'x '..CofferType..' to open - Inventory('..bag..'/'..max..') ] *-*-*-*-*-*-*-*-*')
  606.     local nextcommand = ""
  607.     for i=1, spots do
  608.         nextcommand = nextcommand .. 'input /item "'..CofferType..'" <me>; wait 2;'
  609.     end
  610.     nextcommand = nextcommand .. 'input //gs c "open"'
  611.     send_command(nextcommand)
  612.     else
  613.         add_to_chat(204, '*-*-*-*-*-*-*-*-* [ Inventory('..bag..'/'..max..') ] *-*-*-*-*-*-*-*-*')
  614.     end
  615. end
  616.  
  617. function self_command(command)
  618.     if command == 'open' then
  619.         open_coffer()
  620.     end
  621. end
  622. -------------------------------------------------------------------------------------------------------------------
  623. -- Utility functions specific to this job.
  624. -------------------------------------------------------------------------------------------------------------------
  625.  
  626. -- Select default macro book on initial load or subjob change.
  627. --function select_default_macro_book()
  628. --    set_macro_page(1, 1)
  629. --end
Add Comment
Please, Sign In to add comment