landsandboat/scripts/globals/pankration.lua
2026-05-17 20:58:21 -04:00

93 lines
2.3 KiB
Lua

-----------------------------------
-- Pankration System + Helpers
-----------------------------------
require('scripts/globals/magic')
-----------------------------------
xi = xi or {}
xi.pankration = xi.pankration or {}
-- https://www.bg-wiki.com/ffxi/Category:Pankration#Prohibited_Monsters
-- Uses xi.mobFamily IDs (checked against mob:getFamily())
-- This table looks unused but update with new families anyway.
xi.pankration.prohibitedFamilies =
set{
-- All Beastmen
xi.mobFamily.ANTICA,
xi.mobFamily.BUGBEAR,
xi.mobFamily.GIGAS,
xi.mobFamily.GOBLIN,
xi.mobFamily.LAMIAE,
xi.mobFamily.MAMOOL_JA,
xi.mobFamily.ORC,
xi.mobFamily.ORCISH_WARMACHINE,
xi.mobFamily.POROGGO,
xi.mobFamily.QIQIRN,
xi.mobFamily.QUADAV,
xi.mobFamily.SAHAGIN,
xi.mobFamily.TONBERRY,
xi.mobFamily.TROLL,
xi.mobFamily.YAGUDO,
-- All Empty
xi.mobFamily.CRAVER,
xi.mobFamily.GORGER,
xi.mobFamily.RECEPTACLE,
xi.mobFamily.SEETHER,
xi.mobFamily.THINKER,
xi.mobFamily.WANDERER,
xi.mobFamily.WEEPER,
-- All Luminians
xi.mobFamily.AERN,
xi.mobFamily.EUVHI,
xi.mobFamily.HPEMDE,
xi.mobFamily.PHUABO,
xi.mobFamily.XZOMIT,
xi.mobFamily.YOVRA,
-- All Luminions
xi.mobFamily.GHRAH,
xi.mobFamily.ZDEI,
-- Avatar
xi.mobFamily.AVATAR,
-- Biotechnological Weapons
xi.mobFamily.OMEGA,
xi.mobFamily.ULTIMA,
xi.mobFamily.ADAMANTOISE,
xi.mobFamily.AUTOMATON,
xi.mobFamily.BEHEMOTH,
xi.mobFamily.CARDIAN,
xi.mobFamily.CERBERUS,
xi.mobFamily.DEMON,
xi.mobFamily.DVERGR,
xi.mobFamily.FOMOR,
xi.mobFamily.HIPPOGRYPH,
xi.mobFamily.HYDRA,
-- xi.mobFamily.KHIMAIRA,
xi.mobFamily.WYVERN_PET,
xi.mobFamily.URAGNITE,
xi.mobFamily.VAMPYR,
xi.mobFamily.WYRM,
}
xi.pankration.getRandomFeralSkill = function(mob)
-- TODO: This is made up and definitely not supposed to be THAT random.
local equippable = {}
for id, entry in pairs(xi.data.pankration.feralSkills) do
-- Exclude native skills (0 FP) - they are attributed at reflector creation
-- Exclude uncaptured/undocumented skills (99 FP)
if entry.fp > 0 and entry.fp < 99 then
equippable[id] = entry
end
end
return utils.randomEntryIdx(equippable)
end