2023-07-08 08:44:17 +02:00
|
|
|
-----------------------------------
|
|
|
|
|
-- Tables defining diferent elemental caracteristics.
|
|
|
|
|
-- Ordered by element ID.
|
|
|
|
|
-----------------------------------
|
|
|
|
|
xi = xi or {}
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data = xi.data or {}
|
|
|
|
|
xi.data.element = xi.data.element or {}
|
2023-07-08 08:44:17 +02:00
|
|
|
-----------------------------------
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
local column =
|
|
|
|
|
{
|
|
|
|
|
ELEMENT_OPPOSED = 1,
|
2025-01-14 14:02:03 +01:00
|
|
|
DAY_ASSOCIATED = 2,
|
|
|
|
|
WEATHER_SINGLE = 3,
|
|
|
|
|
WEATHER_DOUBLE = 4,
|
|
|
|
|
MOD_ELEMENT_SDT = 5,
|
|
|
|
|
MOD_ELEMENT_RES_RANK = 6,
|
|
|
|
|
MOD_ELEMENT_NULL = 7,
|
|
|
|
|
MOD_ELEMENT_ABSORB = 8,
|
2025-04-18 05:29:54 +02:00
|
|
|
MOD_ELEMENT_MAB = 9,
|
|
|
|
|
MOD_ELEMENT_MACC = 10,
|
|
|
|
|
MOD_ELEMENT_MEVA = 11,
|
2025-04-27 19:40:16 +02:00
|
|
|
MOD_ELEMENT_FTP_BONUS = 12,
|
|
|
|
|
MOD_STAFF_BONUS = 13,
|
|
|
|
|
MOD_FORCE_DW_BONUS = 14,
|
|
|
|
|
EFFECT_BARSPELL = 15,
|
|
|
|
|
MERIT_ELEMENT_POTENCY = 16,
|
|
|
|
|
MERIT_ELEMENT_MACC = 17,
|
2025-01-13 02:20:53 +01:00
|
|
|
}
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.dataTable =
|
2025-01-13 02:20:53 +01:00
|
|
|
{
|
2025-04-27 19:40:16 +02:00
|
|
|
[xi.element.FIRE ] = { xi.element.WATER, xi.day.FIRESDAY, xi.weather.HOT_SPELL, xi.weather.HEAT_WAVE, xi.mod.FIRE_SDT, xi.mod.FIRE_RES_RANK, xi.mod.FIRE_NULL, xi.mod.FIRE_ABSORB, xi.mod.FIRE_MAB, xi.mod.FIRE_MACC, xi.mod.FIRE_MEVA, xi.mod.FIRE_FTP_BONUS, xi.mod.FIRE_STAFF_BONUS, xi.mod.FORCE_FIRE_DWBONUS, xi.effect.BARFIRE, xi.merit.FIRE_MAGIC_POTENCY, xi.merit.FIRE_MAGIC_ACCURACY },
|
|
|
|
|
[xi.element.ICE ] = { xi.element.FIRE, xi.day.ICEDAY, xi.weather.SNOW, xi.weather.BLIZZARDS, xi.mod.ICE_SDT, xi.mod.ICE_RES_RANK, xi.mod.ICE_NULL, xi.mod.ICE_ABSORB, xi.mod.ICE_MAB, xi.mod.ICE_MACC, xi.mod.ICE_MEVA, xi.mod.ICE_FTP_BONUS, xi.mod.ICE_STAFF_BONUS, xi.mod.FORCE_ICE_DWBONUS, xi.effect.BARBLIZZARD, xi.merit.ICE_MAGIC_POTENCY, xi.merit.ICE_MAGIC_ACCURACY },
|
|
|
|
|
[xi.element.WIND ] = { xi.element.ICE, xi.day.WINDSDAY, xi.weather.WIND, xi.weather.GALES, xi.mod.WIND_SDT, xi.mod.WIND_RES_RANK, xi.mod.WIND_NULL, xi.mod.WIND_ABSORB, xi.mod.WIND_MAB, xi.mod.WIND_MACC, xi.mod.WIND_MEVA, xi.mod.WIND_FTP_BONUS, xi.mod.WIND_STAFF_BONUS, xi.mod.FORCE_WIND_DWBONUS, xi.effect.BARAERO, xi.merit.WIND_MAGIC_POTENCY, xi.merit.WIND_MAGIC_ACCURACY },
|
|
|
|
|
[xi.element.EARTH ] = { xi.element.WIND, xi.day.EARTHSDAY, xi.weather.DUST_STORM, xi.weather.SAND_STORM, xi.mod.EARTH_SDT, xi.mod.EARTH_RES_RANK, xi.mod.EARTH_NULL, xi.mod.EARTH_ABSORB, xi.mod.EARTH_MAB, xi.mod.EARTH_MACC, xi.mod.EARTH_MEVA, xi.mod.EARTH_FTP_BONUS, xi.mod.EARTH_STAFF_BONUS, xi.mod.FORCE_EARTH_DWBONUS, xi.effect.BARSTONE, xi.merit.EARTH_MAGIC_POTENCY, xi.merit.EARTH_MAGIC_ACCURACY },
|
|
|
|
|
[xi.element.THUNDER] = { xi.element.EARTH, xi.day.LIGHTNINGDAY, xi.weather.THUNDER, xi.weather.THUNDERSTORMS, xi.mod.THUNDER_SDT, xi.mod.THUNDER_RES_RANK, xi.mod.LTNG_NULL, xi.mod.LTNG_ABSORB, xi.mod.THUNDER_MAB, xi.mod.THUNDER_MACC, xi.mod.THUNDER_MEVA, xi.mod.THUNDER_FTP_BONUS, xi.mod.THUNDER_STAFF_BONUS, xi.mod.FORCE_LIGHTNING_DWBONUS, xi.effect.BARTHUNDER, xi.merit.LIGHTNING_MAGIC_POTENCY, xi.merit.LIGHTNING_MAGIC_ACCURACY },
|
|
|
|
|
[xi.element.WATER ] = { xi.element.THUNDER, xi.day.WATERSDAY, xi.weather.RAIN, xi.weather.SQUALL, xi.mod.WATER_SDT, xi.mod.WATER_RES_RANK, xi.mod.WATER_NULL, xi.mod.WATER_ABSORB, xi.mod.WATER_MAB, xi.mod.WATER_MACC, xi.mod.WATER_MEVA, xi.mod.WATER_FTP_BONUS, xi.mod.WATER_STAFF_BONUS, xi.mod.FORCE_WATER_DWBONUS, xi.effect.BARWATER, xi.merit.WATER_MAGIC_POTENCY, xi.merit.WATER_MAGIC_ACCURACY },
|
|
|
|
|
[xi.element.LIGHT ] = { xi.element.DARK, xi.day.LIGHTSDAY, xi.weather.AURORAS, xi.weather.STELLAR_GLARE, xi.mod.LIGHT_SDT, xi.mod.LIGHT_RES_RANK, xi.mod.LIGHT_NULL, xi.mod.LIGHT_ABSORB, xi.mod.LIGHT_MAB, xi.mod.LIGHT_MACC, xi.mod.LIGHT_MEVA, xi.mod.LIGHT_FTP_BONUS, xi.mod.LIGHT_STAFF_BONUS, xi.mod.FORCE_LIGHT_DWBONUS, 0, 0, 0 },
|
|
|
|
|
[xi.element.DARK ] = { xi.element.LIGHT, xi.day.DARKSDAY, xi.weather.GLOOM, xi.weather.DARKNESS, xi.mod.DARK_SDT, xi.mod.DARK_RES_RANK, xi.mod.DARK_NULL, xi.mod.DARK_ABSORB, xi.mod.DARK_MAB, xi.mod.DARK_MACC, xi.mod.DARK_MEVA, xi.mod.DARK_FTP_BONUS, xi.mod.DARK_STAFF_BONUS, xi.mod.FORCE_DARK_DWBONUS, 0, 0, 0 },
|
2025-01-13 02:20:53 +01:00
|
|
|
}
|
|
|
|
|
|
2025-05-24 16:39:00 +02:00
|
|
|
-- Get element to which the element being checked is weak against.
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getElementWeakness = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.DARK then
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.ELEMENT_OPPOSED]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
2025-05-24 16:39:00 +02:00
|
|
|
-- Get element to which the element being checked is strong against.
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getElementStrength = function(element)
|
2025-05-24 16:39:00 +02:00
|
|
|
-- Validate fed value.
|
|
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
|
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.DARK then
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- Get element.
|
|
|
|
|
for i = xi.element.FIRE, xi.element.DARK do
|
2025-09-19 13:37:44 +02:00
|
|
|
local opositeElement = xi.data.element.dataTable[i][column.ELEMENT_OPPOSED]
|
2025-05-24 16:39:00 +02:00
|
|
|
if opositeElement == elementToCheck then
|
|
|
|
|
return i
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2025-01-13 02:20:53 +01:00
|
|
|
-----------------------------------
|
|
|
|
|
-- Day-related functions
|
|
|
|
|
-----------------------------------
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getAssociatedDay = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.DARK then
|
|
|
|
|
return -1
|
|
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.DAY_ASSOCIATED]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getOppositeDay = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.DARK then
|
|
|
|
|
return -1
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- Fetch opposite element.
|
2025-09-19 13:37:44 +02:00
|
|
|
elementToCheck = xi.data.element.dataTable[elementToCheck][column.ELEMENT_OPPOSED]
|
2025-01-13 02:20:53 +01:00
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.DAY_ASSOCIATED]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getDayElement = function(day)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local dayToCheck = utils.defaultIfNil(day, -1)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
2025-01-14 14:02:03 +01:00
|
|
|
for elementToCheck = xi.element.FIRE, xi.element.DARK do
|
2025-09-19 13:37:44 +02:00
|
|
|
if dayToCheck == xi.data.element.dataTable[elementToCheck][column.DAY_ASSOCIATED] then
|
2025-01-14 14:02:03 +01:00
|
|
|
return elementToCheck
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return xi.element.NONE
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
2023-07-08 08:44:17 +02:00
|
|
|
-----------------------------------
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Weather-related functions
|
2023-07-08 08:44:17 +02:00
|
|
|
-----------------------------------
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getAssociatedSingleWeather = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2023-07-08 08:44:17 +02:00
|
|
|
|
2025-01-13 02:20:53 +01:00
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.DARK then
|
2025-02-14 13:46:23 +01:00
|
|
|
return -1
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
2023-07-08 08:44:17 +02:00
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.WEATHER_SINGLE]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getOppositeSingleWeather = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.DARK then
|
2025-02-14 13:46:23 +01:00
|
|
|
return -1
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- Fetch opposite element.
|
2025-09-19 13:37:44 +02:00
|
|
|
elementToCheck = xi.data.element.dataTable[elementToCheck][column.ELEMENT_OPPOSED]
|
2025-01-13 02:20:53 +01:00
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.WEATHER_SINGLE]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getAssociatedDoubleWeather = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.DARK then
|
2025-02-14 13:46:23 +01:00
|
|
|
return -1
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.WEATHER_DOUBLE]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getOppositeDoubleWeather = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.DARK then
|
2025-02-14 13:46:23 +01:00
|
|
|
return -1
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- Fetch opposite element.
|
2025-09-19 13:37:44 +02:00
|
|
|
elementToCheck = xi.data.element.dataTable[elementToCheck][column.ELEMENT_OPPOSED]
|
2025-01-13 02:20:53 +01:00
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.WEATHER_DOUBLE]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getWeatherElement = function(weather)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local weatherToCheck = utils.defaultIfNil(weather, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
for elementChecked = xi.element.FIRE, xi.element.DARK do
|
2025-09-19 13:37:44 +02:00
|
|
|
local elementalSingle = xi.data.element.dataTable[elementChecked][column.WEATHER_SINGLE]
|
|
|
|
|
local elementalDouble = xi.data.element.dataTable[elementChecked][column.WEATHER_DOUBLE]
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if weatherToCheck == elementalSingle or weatherToCheck == elementalDouble then
|
|
|
|
|
return elementChecked
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return xi.element.NONE
|
|
|
|
|
end
|
2023-07-08 08:44:17 +02:00
|
|
|
|
|
|
|
|
-----------------------------------
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Modifier-related functions
|
2023-07-08 08:44:17 +02:00
|
|
|
-----------------------------------
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getElementalSDTModifier = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.DARK then
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.MOD_ELEMENT_SDT]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getElementalResistanceRankModifier = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.DARK then
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.MOD_ELEMENT_RES_RANK]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getElementalNullificationModifier = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.DARK then
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.MOD_ELEMENT_NULL]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getElementalAbsorptionModifier = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.DARK then
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.MOD_ELEMENT_ABSORB]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getElementalMABModifier = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.DARK then
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.MOD_ELEMENT_MAB]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getElementalMACCModifier = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.DARK then
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.MOD_ELEMENT_MACC]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getElementalMEVAModifier = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.DARK then
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.MOD_ELEMENT_MEVA]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getElementalFTPModifier = function(element)
|
2025-04-27 19:40:16 +02:00
|
|
|
-- Validate fed value.
|
|
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
|
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.DARK then
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.MOD_ELEMENT_FTP_BONUS]
|
2025-04-27 19:40:16 +02:00
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getElementalStaffModifier = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.DARK then
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.MOD_STAFF_BONUS]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getForcedDayOrWeatherBonusModifier = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.DARK then
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.MOD_FORCE_DW_BONUS]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-----------------------------------
|
|
|
|
|
-- Effect-related functions
|
|
|
|
|
-----------------------------------
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getAssociatedBarspellEffect = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.WATER then
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.EFFECT_BARSPELL]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-----------------------------------
|
|
|
|
|
-- Merit-related functions
|
|
|
|
|
-----------------------------------
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getElementalPotencyMerit = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.WATER then
|
|
|
|
|
return 0
|
|
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.MERIT_ELEMENT_POTENCY]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|
|
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
xi.data.element.getElementalAccuracyMerit = function(element)
|
2025-01-13 02:20:53 +01:00
|
|
|
-- Validate fed value.
|
2025-02-19 16:18:45 +01:00
|
|
|
local elementToCheck = utils.defaultIfNil(element, 0)
|
2025-01-13 02:20:53 +01:00
|
|
|
|
|
|
|
|
if elementToCheck < xi.element.FIRE or elementToCheck > xi.element.WATER then
|
|
|
|
|
return 0
|
|
|
|
|
end
|
2023-07-08 08:44:17 +02:00
|
|
|
|
2025-09-19 13:37:44 +02:00
|
|
|
return xi.data.element.dataTable[elementToCheck][column.MERIT_ELEMENT_MACC]
|
2025-01-13 02:20:53 +01:00
|
|
|
end
|