Skip to content

Commit b71c68c

Browse files
authored
Merge pull request #28 from sabarjp/skillchains
feat: skillchain and mb detection
2 parents 477d3f9 + ebaa58a commit b71c68c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1018
-42
lines changed

defaults.lua

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,21 @@
2929
local defaults = {}
3030

3131

32-
defaults.General = {}
33-
defaults.General.HideEnvironment = false
34-
defaults.General.HideInventoryCount = false
35-
defaults.General.EnableWeaponSwitching = true
36-
defaults.General.HideHotbarNumbers = true
37-
defaults.General.PlayingHorizonXI = false
32+
defaults.General = {}
33+
defaults.General.HideEnvironment = false
34+
defaults.General.HideInventoryCount = false
35+
defaults.General.EnableWeaponSwitching = true
36+
defaults.General.HideHotbarNumbers = true
37+
defaults.General.PlayingHorizonXI = false
3838

39-
defaults.Hotbar = {}
40-
defaults.Hotbar.ShowActionDescription = true
41-
defaults.Hotbar.HideEmptySlots = true
42-
defaults.Hotbar.HideActionName = false
43-
defaults.Hotbar.HideActionCost = false
39+
defaults.Hotbar = {}
40+
defaults.Hotbar.ShowActionDescription = true
41+
defaults.Hotbar.HideEmptySlots = true
42+
defaults.Hotbar.HideActionName = false
43+
defaults.Hotbar.HideActionCost = false
44+
defaults.Hotbar.HighlightMagicBurst = true
45+
defaults.Hotbar.HighlightSkillchain = true
46+
defaults.Hotbar.UseAnimatedHighlights = true
4447

4548
defaults.Hotbar.Offsets = {}
4649
defaults.Hotbar.Offsets.First = { Vertical = false, OffsetX = 675, OffsetY = 1010 }

lib/action_manager.lua

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,20 @@ local function reindex_action_table(actions_table)
280280
actions_table.icon = reindex_table(actions_table.icon)
281281
end
282282

283+
local function shorten_ability_name(name)
284+
local function extractConsonants(word)
285+
return word:sub(2):gsub("[aeiouAEIOU]", "") -- Remove vowels from the rest of the word
286+
end
287+
288+
local shortenedName = name:gsub("(%a)([%a]*)", function(firstLetter, restOfWord)
289+
local consonants = extractConsonants(restOfWord)
290+
return firstLetter:upper() .. consonants
291+
end)
292+
293+
-- Keep the result within 6 characters if needed
294+
return shortenedName:sub(1, 6)
295+
end
296+
283297
local function fill_action_table(file_table, file_key, actions_table)
284298
-- Slot_key is 'battle 1 2' in a job/general file.
285299
-- file_table is each slot that contains a list of string. Example (First Key): file_table = {'battle 1 1', 'ma', 'Cure', 'stpc', 'Cure'}
@@ -291,7 +305,7 @@ local function fill_action_table(file_table, file_key, actions_table)
291305
local ability_name = usable_pet_abilities_name[tonumber(file_table[3])]
292306
file_table[2] = "ja"
293307
file_table[3] = ability_name
294-
file_table[5] = ability_name
308+
file_table[5] = shorten_ability_name(ability_name)
295309
end
296310

297311
actions_table.environment[file_key] = slot_key[1] --environment is either battle or field

lib/bloodpacts.lua

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
-- helps determine is a blood pact can magic burst or not
2+
3+
return {
4+
[513] = { id = 513, en = "Poison Nails", damage = "physical" },
5+
[516] = { id = 516, en = "Meteorite", damage = "magic" },
6+
[518] = { id = 518, en = "Searing Light", damage = "physical" },
7+
[519] = { id = 519, en = "Holy Mist", damage = "magic" },
8+
[521] = { id = 521, en = "Regal Scratch", damage = "physical" },
9+
[524] = { id = 524, en = "Level ? Holy", damage = "magic" },
10+
[528] = { id = 528, en = "Moonlit Charge", damage = "physical" },
11+
[529] = { id = 529, en = "Crescent Fang", damage = "physical" },
12+
[534] = { id = 534, en = "Eclipse Bite", damage = "physical" },
13+
[536] = { id = 536, en = "Howling Moon", damage = "physical" },
14+
[537] = { id = 537, en = "Lunar Bay", damage = "magic" },
15+
[539] = { id = 539, en = "Impact", damage = "magic" },
16+
[544] = { id = 544, en = "Punch", damage = "physical" },
17+
[545] = { id = 545, en = "Fire II", damage = "magic" },
18+
[546] = { id = 546, en = "Burning Strike", damage = "physical" },
19+
[547] = { id = 547, en = "Double Punch", damage = "physical" },
20+
[549] = { id = 549, en = "Fire IV", damage = "magic" },
21+
[550] = { id = 550, en = "Flaming Crush", damage = "physical" },
22+
[551] = { id = 551, en = "Meteor Strike", damage = "magic" },
23+
[552] = { id = 552, en = "Inferno", damage = "physical" },
24+
[554] = { id = 554, en = "Conflag Strike", damage = "magic" },
25+
[560] = { id = 560, en = "Rock Throw", damage = "physical" },
26+
[561] = { id = 561, en = "Stone II", damage = "magic" },
27+
[562] = { id = 562, en = "Rock Buster", damage = "physical" },
28+
[563] = { id = 563, en = "Megalith Throw", damage = "physical" },
29+
[565] = { id = 565, en = "Stone IV", damage = "magic" },
30+
[566] = { id = 566, en = "Mountain Buster", damage = "physical" },
31+
[567] = { id = 567, en = "Geocrush", damage = "magic" },
32+
[568] = { id = 568, en = "Earthen Fury", damage = "physical" },
33+
[570] = { id = 570, en = "Crag Throw", damage = "physical" },
34+
[576] = { id = 576, en = "Barracuda Dive", damage = "physical" },
35+
[577] = { id = 577, en = "Water II", damage = "magic" },
36+
[578] = { id = 578, en = "Tail Whip", damage = "physical" },
37+
[581] = { id = 581, en = "Water IV", damage = "magic" },
38+
[582] = { id = 582, en = "Spinning Dive", damage = "physical" },
39+
[583] = { id = 583, en = "Grand Fall", damage = "magic" },
40+
[584] = { id = 584, en = "Tidal Wave", damage = "physical" },
41+
[592] = { id = 592, en = "Claw", damage = "physical" },
42+
[593] = { id = 593, en = "Aero II", damage = "magic" },
43+
[597] = { id = 597, en = "Aero IV", damage = "magic" },
44+
[598] = { id = 598, en = "Predator Claws", damage = "physical" },
45+
[599] = { id = 599, en = "Wind Blade", damage = "magic" },
46+
[600] = { id = 600, en = "Aerial Blast", damage = "physical" },
47+
[608] = { id = 608, en = "Axe Kick", damage = "physical" },
48+
[609] = { id = 609, en = "Blizzard II", damage = "magic" },
49+
[612] = { id = 612, en = "Double Slap", damage = "physical" },
50+
[613] = { id = 613, en = "Blizzard IV", damage = "magic" },
51+
[614] = { id = 614, en = "Rush", damage = "physical" },
52+
[615] = { id = 615, en = "Heavenly Strike", damage = "magic" },
53+
[616] = { id = 616, en = "Diamond Dust", damage = "physical" },
54+
[624] = { id = 624, en = "Shock Strike", damage = "physical" },
55+
[625] = { id = 625, en = "Thunder II", damage = "magic" },
56+
[627] = { id = 627, en = "Thunderspark", damage = "magic" },
57+
[629] = { id = 629, en = "Thunder IV", damage = "magic" },
58+
[630] = { id = 630, en = "Chaotic Strike", damage = "physical" },
59+
[631] = { id = 631, en = "Thunderstorm", damage = "magic" },
60+
[632] = { id = 632, en = "Judgment Bolt", damage = "physical" },
61+
[634] = { id = 634, en = "Volt Strike", damage = "physical" },
62+
[656] = { id = 656, en = "Camisado", damage = "physical" },
63+
[662] = { id = 662, en = "Nether Blast", damage = "magic" },
64+
[663] = { id = 663, en = "Cacodemonia", damage = "physical" },
65+
[664] = { id = 664, en = "Ruinous Omen", damage = "physical" },
66+
[665] = { id = 665, en = "Night Terror", damage = "magic" },
67+
[667] = { id = 667, en = "Blindside", damage = "physical" },
68+
[668] = { id = 668, en = "Deconstruction", damage = "physical" },
69+
[669] = { id = 669, en = "Chronoshift", damage = "physical" },
70+
[670] = { id = 670, en = "Zantetsuken", damage = "magic" },
71+
[671] = { id = 671, en = "Perfect Defense", damage = "physical" },
72+
[780] = { id = 780, en = "Regal Gash", damage = "physical" },
73+
[960] = { id = 960, en = "Clarsach Call", damage = "physical" },
74+
[961] = { id = 961, en = "Welt", damage = "physical" },
75+
[964] = { id = 964, en = "Roundhouse", damage = "physical" },
76+
[967] = { id = 967, en = "Sonic Buffet", damage = "magic" },
77+
[968] = { id = 968, en = "Tornado II", damage = "magic" },
78+
[970] = { id = 970, en = "Hysteric Assault", damage = "physical" },
79+
}

lib/blue_spells.lua

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
return {
2+
[577] = { id = 577, en = "Foot Kick", skillchain_a = "Detonation", skillchain_b = "", skillchain_c = "" },
3+
[597] = { id = 597, en = "Sprout Smack", skillchain_a = "Reverberation", skillchain_b = "", skillchain_c = "" },
4+
[603] = { id = 603, en = "Wild Oats", skillchain_a = "Transfixion", skillchain_b = "", skillchain_c = "" },
5+
[551] = { id = 551, en = "Power Attack", skillchain_a = "Reverberation", skillchain_b = "", skillchain_c = "" },
6+
[599] = { id = 599, en = "Queasyshroom", skillchain_a = "Compression", skillchain_b = "", skillchain_c = "" },
7+
[620] = { id = 620, en = "Battle Dance", skillchain_a = "Impaction", skillchain_b = "", skillchain_c = "" },
8+
[638] = { id = 638, en = "Feather Storm", skillchain_a = "Transfixion", skillchain_b = "", skillchain_c = "" },
9+
[623] = { id = 623, en = "Head Butt", skillchain_a = "Impaction", skillchain_b = "", skillchain_c = "" },
10+
[567] = { id = 567, en = "Helldive", skillchain_a = "Transfixion", skillchain_b = "", skillchain_c = "" },
11+
[529] = { id = 529, en = "Bludgeon", skillchain_a = "Liquefaction", skillchain_b = "", skillchain_c = "" },
12+
[587] = { id = 587, en = "Claw Cyclone", skillchain_a = "Scission", skillchain_b = "", skillchain_c = "" },
13+
[519] = { id = 519, en = "Screwdriver", skillchain_a = "Transfixion", skillchain_b = "Scission", skillchain_c = "" },
14+
[622] = { id = 622, en = "Grand Slam", skillchain_a = "Induration", skillchain_b = "", skillchain_c = "" },
15+
[527] = { id = 527, en = "Smite of Rage", skillchain_a = "Detonation", skillchain_b = "", skillchain_c = "" },
16+
[596] = { id = 596, en = "Pinecone Bomb", skillchain_a = "Liquefaction", skillchain_b = "", skillchain_c = "" },
17+
[569] = { id = 569, en = "Jet Stream", skillchain_a = "Impaction", skillchain_b = "", skillchain_c = "" },
18+
[594] = { id = 594, en = "Uppercut", skillchain_a = "Liquefaction", skillchain_b = "Impaction", skillchain_c = "" },
19+
[539] = { id = 539, en = "Terror Touch", skillchain_a = "Compression", skillchain_b = "Reverberation", skillchain_c = "" },
20+
[543] = { id = 543, en = "Mandibular Bite", skillchain_a = "Induration", skillchain_b = "", skillchain_c = "" },
21+
[545] = { id = 545, en = "Sickle Slash", skillchain_a = "Compression", skillchain_b = "", skillchain_c = "" },
22+
[589] = { id = 589, en = "Dimensional Death", skillchain_a = "Impaction", skillchain_b = "", skillchain_c = "" },
23+
[652] = { id = 652, en = "Spiral Spin", skillchain_a = "Transfixion", skillchain_b = "", skillchain_c = "" },
24+
[554] = { id = 554, en = "Death Scissors", skillchain_a = "Compression", skillchain_b = "Reverberation", skillchain_c = "" },
25+
[650] = { id = 650, en = "Seedspray", skillchain_a = "Induration", skillchain_b = "Detonation", skillchain_c = "" },
26+
[564] = { id = 564, en = "Body Slam", skillchain_a = "Impaction", skillchain_b = "", skillchain_c = "" },
27+
[631] = { id = 631, en = "Hydro Shot", skillchain_a = "Reverberation", skillchain_b = "", skillchain_c = "" },
28+
[628] = { id = 628, en = "Frypan", skillchain_a = "Impaction", skillchain_b = "", skillchain_c = "" },
29+
[560] = { id = 560, en = "Frenetic Rip", skillchain_a = "Induration", skillchain_b = "", skillchain_c = "" },
30+
[540] = { id = 540, en = "Spinal Cleave", skillchain_a = "Scission", skillchain_b = "Detonation", skillchain_c = "" },
31+
[640] = { id = 640, en = "Tail Slap", skillchain_a = "Reverberation", skillchain_b = "", skillchain_c = "" },
32+
[641] = { id = 641, en = "Hysteric Barrage", skillchain_a = "Detonation", skillchain_b = "", skillchain_c = "" },
33+
[653] = { id = 653, en = "Asuran Claws", skillchain_a = "Liquefaction", skillchain_b = "Impaction", skillchain_c = "" },
34+
[643] = { id = 643, en = "Cannonball", skillchain_a = "Fusion", skillchain_b = "", skillchain_c = "" },
35+
[611] = { id = 611, en = "Disseverment", skillchain_a = "Distortion", skillchain_b = "", skillchain_c = "" },
36+
[654] = { id = 654, en = "Sub-zero Smash", skillchain_a = "Fragmentation", skillchain_b = "", skillchain_c = "" },
37+
[585] = { id = 585, en = "Ram Charge", skillchain_a = "Fragmentation", skillchain_b = "", skillchain_c = "" },
38+
[617] = { id = 617, en = "Vertical Cleave", skillchain_a = "Gravitation", skillchain_b = "", skillchain_c = "" },
39+
[665] = { id = 665, en = "Final Sting", skillchain_a = "Fusion", skillchain_b = "", skillchain_c = "" },
40+
[666] = { id = 666, en = "Goblin Rush", skillchain_a = "Fusion", skillchain_b = "Impaction", skillchain_c = "" },
41+
[667] = { id = 667, en = "Vanity Dive", skillchain_a = "Scission", skillchain_b = "", skillchain_c = "" },
42+
[669] = { id = 669, en = "Whirl of Rage", skillchain_a = "Scission", skillchain_b = "Detonation", skillchain_c = "" },
43+
[670] = { id = 670, en = "Benthic Typhoon", skillchain_a = "Gravitation", skillchain_b = "Transfixion", skillchain_c = "" },
44+
[673] = { id = 673, en = "Quad. Continuum", skillchain_a = "Distortion", skillchain_b = "Scission", skillchain_c = "" },
45+
[677] = { id = 677, en = "Empty Thrash", skillchain_a = "Compression", skillchain_b = "Scission", skillchain_c = "" },
46+
[682] = { id = 682, en = "Delta Thrust", skillchain_a = "Liquefaction", skillchain_b = "Detonation", skillchain_c = "" },
47+
[688] = { id = 688, en = "Heavy Strike", skillchain_a = "Fragmentation", skillchain_b = "Transfixion", skillchain_c = "" },
48+
[692] = { id = 692, en = "Sudden Lunge", skillchain_a = "Detonation", skillchain_b = "", skillchain_c = "" },
49+
[693] = { id = 693, en = "Quadrastrike", skillchain_a = "Liquefaction", skillchain_b = "Scission", skillchain_c = "" },
50+
[740] = { id = 740, en = "Tourbillion", skillchain_a = "Light", skillchain_b = "Fragmentation", skillchain_c = "" },
51+
[697] = { id = 697, en = "Amorphic Spikes", skillchain_a = "Gravitation", skillchain_b = "Transfixion", skillchain_c = "" },
52+
[699] = { id = 699, en = "Barbed Crescent", skillchain_a = "Distortion", skillchain_b = "Liquefaction", skillchain_c = "" },
53+
[742] = { id = 742, en = "Bilgestorm", skillchain_a = "Gravitation", skillchain_b = "", skillchain_c = "" },
54+
[743] = { id = 743, en = "Bloodrake", skillchain_a = "Darkness", skillchain_b = "Distortion", skillchain_c = "" },
55+
[706] = { id = 706, en = "Glutinous Dart", skillchain_a = "Fragmentation", skillchain_b = "", skillchain_c = "" },
56+
[704] = { id = 704, en = "Paralyzing Triad", skillchain_a = "Gravitation", skillchain_b = "", skillchain_c = "" },
57+
[709] = { id = 709, en = "Thrashing Assault", skillchain_a = "Fusion", skillchain_b = "Impaction", skillchain_c = "" },
58+
[714] = { id = 714, en = "Sinker Drill", skillchain_a = "Gravitation", skillchain_b = "Reverberation", skillchain_c = "" },
59+
[723] = { id = 723, en = "Saurian Slide", skillchain_a = "Fragmentation", skillchain_b = "Distortion", skillchain_c = "" },
60+
}

0 commit comments

Comments
 (0)