159 lines
3.7 KiB
Lua
159 lines
3.7 KiB
Lua
-----------------------------------
|
|
-- Garrison Placeholder Data
|
|
--
|
|
-- Sets placeholder NPCs and mob data for Garrison for use in lieu of captures.
|
|
-- This is a temporary work around. Please contribute capture data!
|
|
-- The correct data should be added to: globals/garrison_data.lua
|
|
-----------------------------------
|
|
require('modules/module_utils')
|
|
-----------------------------------
|
|
local m = Module:new('garrison_placeholder_data')
|
|
|
|
local additionalAllyLooks =
|
|
{
|
|
[20] =
|
|
{
|
|
[xi.nation.SANDORIA] =
|
|
{
|
|
'0x010004041C106E20833080406850836083700000', -- Fouagine
|
|
'0x01000A041C103C206C306C406C503C6000700000', -- Ferchinne
|
|
},
|
|
|
|
[xi.nation.BASTOK] =
|
|
{
|
|
--
|
|
},
|
|
|
|
[xi.nation.WINDURST] =
|
|
{
|
|
'0x0100030601100120013001400150016001700000', -- Harara_WW
|
|
},
|
|
},
|
|
[30] =
|
|
{
|
|
[xi.nation.SANDORIA] =
|
|
{
|
|
--
|
|
},
|
|
|
|
[xi.nation.BASTOK] =
|
|
{
|
|
'0x01000E020F100720003003400750006000700000', -- Suzel
|
|
},
|
|
|
|
[xi.nation.WINDURST] =
|
|
{
|
|
--
|
|
},
|
|
},
|
|
[40] =
|
|
{
|
|
[xi.nation.SANDORIA] =
|
|
{
|
|
'0x01000D0323108A20803088408050056100700000', -- Parelbriaux
|
|
'0x01000101141019200C3002400250056000700000', -- Petva
|
|
},
|
|
|
|
[xi.nation.BASTOK] =
|
|
{
|
|
--
|
|
},
|
|
|
|
[xi.nation.WINDURST] =
|
|
{
|
|
'0x0100000500100220023002400250006000700000', -- Taraihi-Perunhi
|
|
'0x01000306461118205230B8408550006000700000', -- Wetata
|
|
},
|
|
},
|
|
[50] =
|
|
{
|
|
[xi.nation.SANDORIA] =
|
|
{
|
|
--
|
|
},
|
|
|
|
[xi.nation.BASTOK] =
|
|
{
|
|
'0x01000D0801101620053019400C505C6000700000', -- Iron Eater (17748016)
|
|
'0x0100010814102720173015401550006000700000', -- Ferocious_Artisan
|
|
},
|
|
|
|
[xi.nation.WINDURST] =
|
|
{
|
|
'0x0100020700100220023002400250006000700000', -- Naih_Arihmepp
|
|
},
|
|
},
|
|
[99] =
|
|
{
|
|
[xi.nation.SANDORIA] =
|
|
{
|
|
--
|
|
},
|
|
|
|
[xi.nation.BASTOK] =
|
|
{
|
|
--
|
|
'0x010008021C106A20733073406850006000700000', -- Merol
|
|
},
|
|
|
|
[xi.nation.WINDURST] =
|
|
{
|
|
--
|
|
},
|
|
},
|
|
}
|
|
|
|
-- This is used to replace blank weapons in ally looks.
|
|
-- TODO: Use proper npc looks for all models or at least find the right range
|
|
-- so we can purely generate these
|
|
local allyArsenal =
|
|
{
|
|
'08',
|
|
'83',
|
|
'B8',
|
|
'73',
|
|
'62',
|
|
'01',
|
|
'19',
|
|
'6B',
|
|
'B5',
|
|
'75',
|
|
'6F',
|
|
'BB',
|
|
'3C',
|
|
'56',
|
|
'4E',
|
|
'19',
|
|
'5C',
|
|
'61',
|
|
'E6',
|
|
}
|
|
|
|
-- Adds a random weapon if the given look does not contain one.
|
|
-- Weapons are on the byte found in digits 31-32 (including 0x prefix)
|
|
local function addWeaponIfNecessary(look)
|
|
-- Weapon already set. Don't change it.
|
|
if string.sub(look, 31, 32) ~= '00' then
|
|
return look
|
|
end
|
|
|
|
local weapon = utils.randomEntry(allyArsenal)
|
|
|
|
return string.sub(look, 1, 30) .. weapon .. string.sub(look, 33, string.len(look))
|
|
end
|
|
|
|
m:addOverride('xi.garrison.getAllyInfo', function(zoneID, zoneData, nationID)
|
|
-- Get the original allyInfo table (getAllyInfo() returns a temporary, so it's safe to
|
|
-- modify it in-flight)
|
|
local allyInfoTable = super(zoneID, zoneData, nationID)
|
|
|
|
-- Augment it with additional looks from additionalAllyLooks and addWeaponIfNecessary()
|
|
for _, lookCode in pairs(additionalAllyLooks[zoneData.levelCap][nationID]) do
|
|
local updatedLookCode = addWeaponIfNecessary(lookCode)
|
|
table.insert(allyInfoTable.looks, updatedLookCode)
|
|
end
|
|
|
|
return allyInfoTable
|
|
end)
|
|
|
|
return m
|