-
Notifications
You must be signed in to change notification settings - Fork 13
/
GEO.lua
372 lines (282 loc) · 14 KB
/
GEO.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
--[[
Custom commands:
Toggle Function:
gs c toggle melee Toggle Melee mode on / off and locking of weapons
gs c toggle mb Toggles Magic Burst Mode on / off.
gs c toggle runspeed Toggles locking on / off Herald's Gaiters
gs c toggle idlemode Toggles between Refresh and DT idle mode. Activating Sublimation JA will auto replace refresh set for sublimation set. DT set will superceed both.
gs c toggle regenmode Toggles between Hybrid, Duration and Potency mode for regen set
gs c toggle nukemode Toggles between Normal and Accuracy mode for midcast Nuking sets (MB included)
gs c toggle matchsc Toggles auto swapping element to match the last SC that just happenned.
Casting functions:
these are to set fewer macros (2 cycle, 5 cast) to save macro space when playing lazily with controler
gs c nuke cycle Cycles element type for nuking & SC
gs c nuke cycledown Cycles element type for nuking & SC in reverse order
gs c nuke t1 Cast tier 1 nuke of saved element
gs c nuke t2 Cast tier 2 nuke of saved element
gs c nuke t3 Cast tier 3 nuke of saved element
gs c nuke t4 Cast tier 4 nuke of saved element
gs c nuke t5 Cast tier 5 nuke of saved element
gs c nuke ra1 Cast tier 1 -ra nuke of saved element
gs c nuke ra2 Cast tier 2 -ra nuke of saved element
gs c nuke ra3 Cast tier 3 -ra nuke of saved element
gs c geo geocycle Cycles Geomancy Spell
gs c geo geocycledown Cycles Geomancy Spell in reverse order
gs c geo indicycle Cycles IndiColure Spell
gs c geo indicycledown Cycles IndiColure Spell in reverse order
gs c geo geo Cast saved Geo Spell
gs c geo indi Cast saved Indi Spell
HUD Functions:
gs c hud hide Toggles the Hud entirely on or off
gs c hud hidemode Toggles the Modes section of the HUD on or off
gs c hud hidejob Toggles the job section of the HUD on or off
gs c hud hidebattle Toggles the Battle section of the HUD on or off
gs c hud lite Toggles the HUD in lightweight style for less screen estate usage. Also on ALT-END
gs c hud keybinds Toggles Display of the HUD keybindings (my defaults) You can change just under the binds in the Gearsets file.
// OPTIONAL IF YOU WANT / NEED to skip the cycles...
gs c nuke Ice Set Element Type to Ice DO NOTE the Element needs a Capital letter.
gs c nuke Air Set Element Type to Air DO NOTE the Element needs a Capital letter.
gs c nuke Dark Set Element Type to Dark DO NOTE the Element needs a Capital letter.
gs c nuke Light Set Element Type to Light DO NOTE the Element needs a Capital letter.
gs c nuke Earth Set Element Type to Earth DO NOTE the Element needs a Capital letter.
gs c nuke Lightning Set Element Type to Lightning DO NOTE the Element needs a Capital letter.
gs c nuke Water Set Element Type to Water DO NOTE the Element needs a Capital letter.
gs c nuke Fire Set Element Type to Fire DO NOTE the Element needs a Capital letter.
--]]
include('organizer-lib') -- Remove if you dont use Organizer
--------------------------------------------------------------------------------------------------------------
res = require('resources') -- leave this as is
texts = require('texts') -- leave this as is
include('Modes.lua') -- leave this as is
--------------------------------------------------------------------------------------------------------------
-- Define your modes:
-- You can add or remove modes in the table below, they will get picked up in the cycle automatically.
-- to define sets for idle if you add more modes, name them: sets.me.idle.mymode and add 'mymode' in the group.
-- to define sets for regen if you add more modes, name them: sets.midcast.regen.mymode and add 'mymode' in the group.
-- Same idea for nuke modes.
idleModes = M('normal', 'dt', 'mdt')
-- To add a new mode to nuking, you need to define both sets: sets.midcast.nuking.mynewmode as well as sets.midcast.MB.mynewmode
nukeModes = M('normal', 'acc')
-- Setting this to true will stop the text spam, and instead display modes in a UI.
-- Currently in construction.
use_UI = true
hud_x_pos = 1400 --important to update these if you have a smaller screen
hud_y_pos = 200 --important to update these if you have a smaller screen
hud_draggable = true
hud_font_size = 10
hud_transparency = 200 -- a value of 0 (invisible) to 255 (no transparency at all)
hud_font = 'Impact'
-- Setup your Key Bindings here:
windower.send_command('bind insert gs c nuke cycle') -- insert Cycles Nuke element
windower.send_command('bind delete gs c nuke cycledown') -- delete Cycles Nuke element in reverse order
windower.send_command('bind home gs c geo geocycle') -- home Cycles Geomancy Spell
windower.send_command('bind PAGEUP gs c geo geocycledown') -- end Cycles Geomancy Spell in reverse order
windower.send_command('bind PAGEDOWN gs c geo indicycle') -- PgUP Cycles IndiColure Spell
windower.send_command('bind end gs c geo indicycledown') -- PgDown Cycles IndiColure Spell in reverse order
windower.send_command('bind !f9 gs c toggle runspeed') -- Alt-F9 toggles locking on / off Herald's Gaiters
windower.send_command('bind f10 gs c toggle mb') -- F10 toggles Magic Burst Mode on / off.
windower.send_command('bind !f10 gs c toggle nukemode') -- Alt-F10 to change Nuking Mode
windower.send_command('bind ^F10 gs c toggle matchsc') -- CTRL-F10 to change Match SC Mode
windower.send_command('bind f12 gs c toggle melee') -- F12 Toggle Melee mode on / off and locking of weapons
windower.send_command('bind f9 gs c toggle idlemode') -- F9 Toggles between MasterRefresh or MasterDT when no luopan is out
--[[
This gets passed in when the Keybinds is turned on.
Each one matches to a given variable within the text object
IF you changed the Default Keybind above, Edit the ones below so it can be reflected in the hud using "//gs c hud keybinds" command
]] -- or between Full Pet Regen+DT or Hybrid PetDT and MasterDT when a Luopan is out
keybinds_on = {}
keybinds_on['key_bind_idle'] = '(F9)'
keybinds_on['key_bind_regen'] = '(END)'
keybinds_on['key_bind_casting'] = '(ALT-F10)'
keybinds_on['key_bind_mburst'] = '(F10)'
keybinds_on['key_bind_matchsc'] = '(CTRL-F10)'
keybinds_on['key_bind_element_cycle'] = '(INS + DEL)'
keybinds_on['key_bind_geo_cycle'] = '(HOME + PgUP)'
keybinds_on['key_bind_indi_cycle'] = '(End + PgDOWN)'
keybinds_on['key_bind_lock_weapon'] = '(F12)'
keybinds_on['key_bind_movespeed_lock'] = '(ALT-F9)'
-- Remember to unbind your keybinds on job change.
function user_unload()
send_command('unbind insert')
send_command('unbind delete')
send_command('unbind home')
send_command('unbind PAGEUP')
send_command('unbind PAGEDOWN')
send_command('unbind end')
send_command('unbind f10')
send_command('unbind f12')
send_command('unbind f9')
send_command('unbind !f9')
end
--------------------------------------------------------------------------------------------------------------
include('GEO_Lib.lua') -- leave this as is
--------------------------------------------------------------------------------------------------------------
geomancy:set('Geo-Frailty') -- Geo Spell Default (when you first load lua / change jobs the saved spells is this one)
indicolure:set('Indi-Haste') -- Indi Spell Default (when you first load lua / change jobs the saved spells is this one)
validateTextInformation()
-- Optional. Swap to your geo macro sheet / book
set_macros(1,5) -- Sheet, Book
-- Setup your Gear Sets below:
function get_sets()
-- My formatting is very easy to follow. All sets that pertain to my character doing things are under 'me'.
-- All sets that are equipped to faciliate my.pan's behaviour or abilities are under .pan', eg, Perpetuation, Blood Pacts, etc
sets.me = {} -- leave this empty
sets.pan = {} -- leave this empty
sets.me.idle = {} -- leave this empty
sets.pan.idle = {} -- leave this empty
-- sets starting with sets.me means you DONT have a luopan currently out.
-- sets starting with sets.pan means you DO have a luopan currently out.
-- Your idle set when you DON'T have a luopan out
sets.me.idle.normal = {
}
-- This or herald gaiters or +1 +2 +3...
sets.me.movespeed = {feet="Geomancy Sandals"}
-- Your idle MasterDT set (Notice the sets.me, means no Luopan is out)
sets.me.idle.dt = set_combine(sets.me.idle.normal,{
})
sets.me.idle.mdt = set_combine(sets.me.idle.normal,{
})
-- Your MP Recovered Whilst Resting Set
sets.me.resting = {
}
sets.me.latent_refresh = {waist="Fucho-no-obi"}
-----------------------
-- Luopan Perpetuation
-----------------------
-- Luopan's Out -- notice sets.pan
-- This is the base for all perpetuation scenarios, as seen below
sets.pan.idle.normal = {
}
-- This is when you have a Luopan out but want to sacrifice some slot for master DT, put those slots in.
sets.pan.idle.dt = set_combine(sets.pan.idle.normal,{
})
sets.pan.idle.mdt = set_combine(sets.pan.idle.normal,{
})
-- Combat Related Sets
-- Melee
-- Anything you equip here will overwrite the perpetuation/refresh in that slot.
-- No Luopan out
-- they end in [idleMode] so it will derive from either the normal or the dt set depending in which mode you are then add the pieces filled in below.
sets.me.melee = set_combine(sets.me.idle[idleMode],{
})
-- Luopan is out
sets.pan.melee = set_combine(sets.pan.idle[idleMode],{
})
-- Weapon Skill sets
-- Example:
sets.me["Flash Nova"] = {
}
sets.me["Realmrazer"] = {
}
sets.me["Exudation"] = {
}
-- Feel free to add new weapon skills, make sure you spell it the same as in game.
---------------
-- Casting Sets
---------------
sets.precast = {} -- leave this empty
sets.midcast = {} -- leave this empty
sets.aftercast = {} -- leave this empty
sets.midcast.nuking = {} -- leave this empty
sets.midcast.MB = {} -- leave this empty
----------
-- Precast
----------
-- Generic Casting Set that all others take off of. Here you should add all your fast cast
sets.precast.casting = {
}
sets.precast.geomancy = set_combine(sets.precast.casting,{
})
-- Enhancing Magic, eg. Siegal Sash, etc
sets.precast.enhancing = set_combine(sets.precast.casting,{
})
-- Stoneskin casting time -, works off of enhancing -
sets.precast.stoneskin = set_combine(sets.precast.enhancing,{
})
-- Curing Precast, Cure Spell Casting time -
sets.precast.cure = set_combine(sets.precast.casting,{
})
sets.precast.regen = set_combine(sets.precast.casting,{
})
---------------------
-- Ability Precasting
---------------------
-- Fill up with your JSE!
sets.precast["Life Cycle"] = {
body = "Geomancy Tunic +1",
}
sets.precast["Bolster"] = {
body = "Bagua Tunic +1",
}
sets.precast["Primeval Zeal"] = {
head = "Bagua Galero +1",
}
sets.precast["Cardinal Chant"] = {
head = "Geomancy Galero",
}
sets.precast["Full Circle"] = {
head = "Azimuth Hood +1",
}
sets.precast["Curative Recantation"] = {
hands = "Bagua Mitaines +1",
}
sets.precast["Mending Halation"] = {
legs = "Bagua Pants +1",
}
sets.precast["Radial Arcana"] = {
feet = "Bagua Sandals +1",
}
----------
-- Midcast
----------
-- Whatever you want to equip mid-cast as a catch all for all spells, and we'll overwrite later for individual spells
sets.midcast.casting = {
}
-- For Geo spells /
sets.midcast.geo = set_combine(sets.midcast.casting,{
})
-- For Indi Spells
sets.midcast.indi = set_combine(sets.midcast.geo,{
})
sets.midcast.Obi = {
waist="Hachirin-no-Obi",
}
-- Nuking
sets.midcast.nuking.normal = set_combine(sets.midcast.casting,{
})
sets.midcast.MB.normal = set_combine(sets.midcast.nuking.normal, {
})
sets.midcast.nuking.acc = set_combine(sets.midcast.nuking.normal,{
})
sets.midcast.MB.acc = set_combine(sets.midcast.MB.normal, {
})
-- Enfeebling
sets.midcast.IntEnfeebling = set_combine(sets.midcast.casting,{
})
sets.midcast.MndEnfeebling = set_combine(sets.midcast.casting,{
})
-- Enhancing
sets.midcast.enhancing = set_combine(sets.midcast.casting,{
})
-- Stoneskin
sets.midcast.stoneskin = set_combine(sets.midcast.enhancing,{
})
sets.midcast.refresh = set_combine(sets.midcast.enhancing,{
})
sets.midcast.aquaveil = sets.midcast.refresh
sets.midcast["Drain"] = set_combine(sets.midcast.IntEnfeebling, {
})
sets.midcast["Aspir"] = sets.midcast["Drain"]
sets.midcast.cure = {} -- Leave This Empty
-- Cure Potency
sets.midcast.cure.normal = set_combine(sets.midcast.casting,{
})
sets.midcast.cure.weather = set_combine(sets.midcast.cure.normal,{
})
sets.midcast.regen = set_combine(sets.midcast.enhancing,{
})
------------
-- Aftercast
------------
-- I don't use aftercast sets, as we handle what to equip later depending on conditions using a function, eg, do we have a Luopan pan out?
end