Skip to content

Commit

Permalink
Make remaining TB and TSTB fight retail accurate
Browse files Browse the repository at this point in the history
  • Loading branch information
TracentEden committed Sep 3, 2024
1 parent ca22204 commit 0145164
Show file tree
Hide file tree
Showing 34 changed files with 703 additions and 293 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ content.groups =
{
mobIds =
{
{ cloisterOfFrostID.mob.SHIVA_PRIME + 21 },
{ cloisterOfFrostID.mob.SHIVA_PRIME + 22 },
{ cloisterOfFrostID.mob.SHIVA_PRIME + 23 },
{ cloisterOfFrostID.mob.SHIVA_PRIME_TSTBI },
{ cloisterOfFrostID.mob.SHIVA_PRIME_TSTBI + 1 },
{ cloisterOfFrostID.mob.SHIVA_PRIME_TSTBI + 2 },
},

allDeath = function(battlefield, mob)
Expand Down
6 changes: 3 additions & 3 deletions scripts/battlefields/Cloister_of_Frost/trial_by_ice.lua
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ content.groups =
{
mobIds =
{
{ cloisterOfFrostID.mob.SHIVA_PRIME },
{ cloisterOfFrostID.mob.SHIVA_PRIME + 1 },
{ cloisterOfFrostID.mob.SHIVA_PRIME + 2 },
{ cloisterOfFrostID.mob.SHIVA_PRIME_TBI },
{ cloisterOfFrostID.mob.SHIVA_PRIME_TBI + 1 },
{ cloisterOfFrostID.mob.SHIVA_PRIME_TBI + 2 },
},

allDeath = function(battlefield, mob)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ content.groups =
{
mobIds =
{
{ cloisterOfGalesID.mob.GARUDA_PRIME + 6 },
{ cloisterOfGalesID.mob.GARUDA_PRIME + 7 },
{ cloisterOfGalesID.mob.GARUDA_PRIME + 8 },
{ cloisterOfGalesID.mob.GARUDA_PRIME_TSTBW },
{ cloisterOfGalesID.mob.GARUDA_PRIME_TSTBW + 1 },
{ cloisterOfGalesID.mob.GARUDA_PRIME_TSTBW + 2 },
},

allDeath = function(battlefield, mob)
Expand Down
6 changes: 3 additions & 3 deletions scripts/battlefields/Cloister_of_Gales/trial_by_wind.lua
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ content.groups =
{
mobIds =
{
{ cloisterOfGalesID.mob.GARUDA_PRIME },
{ cloisterOfGalesID.mob.GARUDA_PRIME + 1 },
{ cloisterOfGalesID.mob.GARUDA_PRIME + 2 },
{ cloisterOfGalesID.mob.GARUDA_PRIME_TBW },
{ cloisterOfGalesID.mob.GARUDA_PRIME_TBW + 1 },
{ cloisterOfGalesID.mob.GARUDA_PRIME_TBW + 2 },
},

allDeath = function(battlefield, mob)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ content.groups =
{
mobIds =
{
{ cloisterOfStormsID.mob.RAMUH_PRIME + 9 },
{ cloisterOfStormsID.mob.RAMUH_PRIME + 10 },
{ cloisterOfStormsID.mob.RAMUH_PRIME + 11 },
{ cloisterOfStormsID.mob.RAMUH_PRIME_TSTBL },
{ cloisterOfStormsID.mob.RAMUH_PRIME_TSTBL + 1 },
{ cloisterOfStormsID.mob.RAMUH_PRIME_TSTBL + 2 },
},

allDeath = function(battlefield, mob)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ content.groups =
{
mobIds =
{
{ cloisterOfStormsID.mob.RAMUH_PRIME },
{ cloisterOfStormsID.mob.RAMUH_PRIME + 1 },
{ cloisterOfStormsID.mob.RAMUH_PRIME + 2 },
{ cloisterOfStormsID.mob.RAMUH_PRIME_TBL },
{ cloisterOfStormsID.mob.RAMUH_PRIME_TBL + 1 },
{ cloisterOfStormsID.mob.RAMUH_PRIME_TBL + 2 },
},

allDeath = function(battlefield, mob)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ content.groups =
{
mobIds =
{
{ cloisterOfTidesID.mob.LEVIATHAN_PRIME + 3 },
{ cloisterOfTidesID.mob.LEVIATHAN_PRIME + 4 },
{ cloisterOfTidesID.mob.LEVIATHAN_PRIME + 5 },
{ cloisterOfTidesID.mob.LEVIATHAN_PRIME_TSTBW },
{ cloisterOfTidesID.mob.LEVIATHAN_PRIME_TSTBW + 1 },
{ cloisterOfTidesID.mob.LEVIATHAN_PRIME_TSTBW + 2 },
},

allDeath = function(battlefield, mob)
Expand Down
6 changes: 3 additions & 3 deletions scripts/battlefields/Cloister_of_Tides/trial_by_water.lua
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ content.groups =
{
mobIds =
{
{ cloisterOfTidesID.mob.LEVIATHAN_PRIME },
{ cloisterOfTidesID.mob.LEVIATHAN_PRIME + 1 },
{ cloisterOfTidesID.mob.LEVIATHAN_PRIME + 2 },
{ cloisterOfTidesID.mob.LEVIATHAN_PRIME_TBW },
{ cloisterOfTidesID.mob.LEVIATHAN_PRIME_TBW + 1 },
{ cloisterOfTidesID.mob.LEVIATHAN_PRIME_TBW + 2 },
},

allDeath = function(battlefield, mob)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ content.groups =
{
mobIds =
{
{ cloisterOfTremorsID.mob.TITAN_PRIME + 6 },
{ cloisterOfTremorsID.mob.TITAN_PRIME + 7 },
{ cloisterOfTremorsID.mob.TITAN_PRIME + 8 },
{ cloisterOfTremorsID.mob.TITAN_PRIME_TSTBE },
{ cloisterOfTremorsID.mob.TITAN_PRIME_TSTBE + 1 },
{ cloisterOfTremorsID.mob.TITAN_PRIME_TSTBE + 2 },
},

allDeath = function(battlefield, mob)
Expand Down
6 changes: 3 additions & 3 deletions scripts/battlefields/Cloister_of_Tremors/trial_by_earth.lua
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ content.groups =
{
mobIds =
{
{ cloisterOfTremorsID.mob.TITAN_PRIME },
{ cloisterOfTremorsID.mob.TITAN_PRIME + 1 },
{ cloisterOfTremorsID.mob.TITAN_PRIME + 2 },
{ cloisterOfTremorsID.mob.TITAN_PRIME_TBE },
{ cloisterOfTremorsID.mob.TITAN_PRIME_TBE + 1 },
{ cloisterOfTremorsID.mob.TITAN_PRIME_TBE + 2 },
},

allDeath = function(battlefield, mob)
Expand Down
7 changes: 4 additions & 3 deletions scripts/zones/Cloister_of_Frost/IDs.lua
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,10 @@ zones[xi.zone.CLOISTER_OF_FROST] =
},
mob =
{
DRYAD = GetFirstID('Dryad'),
SHIVA_PRIME = GetFirstID('Shiva_Prime_Trial'),
SHIVA_PRIME_ASA = GetFirstID('Shiva_Prime_ASA'),
DRYAD = GetFirstID('Dryad'),
SHIVA_PRIME_TSTBI = GetFirstID('Shiva_Prime_TSTBI'),
SHIVA_PRIME_TBI = GetFirstID('Shiva_Prime_TBI'),
SHIVA_PRIME_ASA = GetFirstID('Shiva_Prime_ASA')
},
npc =
{
Expand Down
49 changes: 49 additions & 0 deletions scripts/zones/Cloister_of_Frost/mobs/Shiva_Prime_TBI.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
-----------------------------------
-- Area: Cloister of Frost
-- Mob: Shiva Prime
-- Involved in Quest: Trial by Ice
-----------------------------------
mixins = { require('scripts/mixins/job_special') }
-----------------------------------
local entity = {}

entity.onMobSpawn = function(mob)
xi.mix.jobSpecial.config(mob, {
specials =
{
{ id = 884, hpp = math.random(30, 55) }, -- uses Diamond Dust once while near 50% HPP.
},
})

mob:setMobMod(xi.mobMod.NO_STANDBACK, 1)
mob:setMobMod(xi.mobMod.SIGHT_RANGE, 20)
mob:setMobMod(xi.mobMod.MAGIC_RANGE, 40)
mob:setMobMod(xi.mobMod.ADD_EFFECT, 1)
mob:setMod(xi.mod.ICE_ABSORB, 100)
-- res rank for mob that absorbs is always lowest value
mob:setMod(xi.mod.ICE_RES_RANK, -3)
mob:setMod(xi.mod.UDMGPHYS, -6000)
mob:setMod(xi.mod.UDMGRANGE, -6000)

mob:addImmunity(xi.immunity.BLIND)
mob:addImmunity(xi.immunity.SLOW)
mob:addImmunity(xi.immunity.PARALYZE)
mob:addImmunity(xi.immunity.GRAVITY)
mob:addImmunity(xi.immunity.BIND)
mob:addImmunity(xi.immunity.SILENCE)
mob:addImmunity(xi.immunity.LIGHT_SLEEP)
mob:addImmunity(xi.immunity.DARK_SLEEP)
mob:addImmunity(xi.immunity.TERROR)
end

entity.onAdditionalEffect = function(mob, target, damage)
return xi.mob.onAddEffect(mob, target, damage, xi.mob.ae.ENBLIZZARD, { chance = 100, power = math.random(20, 40) })
end

entity.onMobFight = function(mob, target)
end

entity.onMobDeath = function(mob, player, optParams)
end

return entity
57 changes: 57 additions & 0 deletions scripts/zones/Cloister_of_Frost/mobs/Shiva_Prime_TSTBI.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
-----------------------------------
-- Area: Cloister of Frost
-- Mob: Shiva Prime
-- Involved in Quest: Trial Size Trial by Ice
-----------------------------------
mixins = { require('scripts/mixins/job_special') }
-----------------------------------
local entity = {}

entity.onMobSpawn = function(mob)
xi.mix.jobSpecial.config(mob, {
specials =
{
{ id = 884, hpp = math.random(30, 55) }, -- uses Diamond Dust once while near 50% HPP.
},
})

mob:setMobMod(xi.mobMod.NO_STANDBACK, 1)
mob:setMobMod(xi.mobMod.SIGHT_RANGE, 20)
mob:setMobMod(xi.mobMod.MAGIC_RANGE, 40)
mob:setMobMod(xi.mobMod.ADD_EFFECT, 1)
mob:setMod(xi.mod.ICE_ABSORB, 100)
-- res rank for mob that absorbs is always lowest value
mob:setMod(xi.mod.ICE_RES_RANK, -3)
mob:setMod(xi.mod.UDMGPHYS, -6000)
mob:setMod(xi.mod.UDMGRANGE, -6000)
-- online videos show that 24/27 SL were unresisted on retail
-- this reduction in MEVA roughly gives roughly the correct resist rate
mob:addMod(xi.mod.LIGHT_MEVA, -35)

mob:addImmunity(xi.immunity.BLIND)
mob:addImmunity(xi.immunity.SLOW)
mob:addImmunity(xi.immunity.PARALYZE)
mob:addImmunity(xi.immunity.GRAVITY)
mob:addImmunity(xi.immunity.BIND)
mob:addImmunity(xi.immunity.SILENCE)
mob:addImmunity(xi.immunity.LIGHT_SLEEP)
mob:addImmunity(xi.immunity.DARK_SLEEP)
mob:addImmunity(xi.immunity.TERROR)
end

entity.onAdditionalEffect = function(mob, target, damage)
return xi.mob.onAddEffect(mob, target, damage, xi.mob.ae.ENBLIZZARD, { chance = 100, power = math.random(15, 25) })
end

entity.onMobEngage = function(mob, target)
-- always uses a tp move when first engaged
mob:setTP(3000)
end

entity.onMobFight = function(mob, target)
end

entity.onMobDeath = function(mob, player, optParams)
end

return entity
26 changes: 0 additions & 26 deletions scripts/zones/Cloister_of_Frost/mobs/Shiva_Prime_Trial.lua

This file was deleted.

7 changes: 4 additions & 3 deletions scripts/zones/Cloister_of_Gales/IDs.lua
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,10 @@ zones[xi.zone.CLOISTER_OF_GALES] =
},
mob =
{
GARUDA_PRIME = GetFirstID('Garuda_Prime_Trial'),
GARUDA_PRIME_ASA = GetFirstID('Garuda_Prime_ASA'),
OGMIOS = GetFirstID('Ogmios'),
GARUDA_PRIME_TSTBW = GetFirstID('Garuda_Prime_TSTBW'),
GARUDA_PRIME_TBW = GetFirstID('Garuda_Prime_TBW'),
GARUDA_PRIME_ASA = GetFirstID('Garuda_Prime_ASA'),
OGMIOS = GetFirstID('Ogmios'),
},
npc =
{
Expand Down
49 changes: 49 additions & 0 deletions scripts/zones/Cloister_of_Gales/mobs/Garuda_Prime_TBW.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
-----------------------------------
-- Area: Cloister of Gales
-- Mob: Garuda Prime
-- Involved in Quest: Trial by Wind
-----------------------------------
mixins = { require('scripts/mixins/job_special') }
-----------------------------------
local entity = {}

entity.onMobSpawn = function(mob)
xi.mix.jobSpecial.config(mob, {
specials =
{
{ id = 875, hpp = math.random(30, 55) }, -- uses Aerial Blast once while near 50% HPP.
},
})

mob:setMobMod(xi.mobMod.NO_STANDBACK, 1)
mob:setMobMod(xi.mobMod.SIGHT_RANGE, 20)
mob:setMobMod(xi.mobMod.MAGIC_RANGE, 40)
mob:setMobMod(xi.mobMod.ADD_EFFECT, 1)
mob:setMod(xi.mod.WIND_ABSORB, 100)
-- res rank for mob that absorbs is always lowest value
mob:setMod(xi.mod.WIND_RES_RANK, -3)
mob:setMod(xi.mod.UDMGPHYS, -6000)
mob:setMod(xi.mod.UDMGRANGE, -6000)

mob:addImmunity(xi.immunity.BLIND)
mob:addImmunity(xi.immunity.SLOW)
mob:addImmunity(xi.immunity.PARALYZE)
mob:addImmunity(xi.immunity.GRAVITY)
mob:addImmunity(xi.immunity.BIND)
mob:addImmunity(xi.immunity.SILENCE)
mob:addImmunity(xi.immunity.LIGHT_SLEEP)
mob:addImmunity(xi.immunity.DARK_SLEEP)
mob:addImmunity(xi.immunity.TERROR)
end

entity.onAdditionalEffect = function(mob, target, damage)
return xi.mob.onAddEffect(mob, target, damage, xi.mob.ae.ENAERO, { chance = 100, power = math.random(20, 40) })
end

entity.onMobFight = function(mob, target)
end

entity.onMobDeath = function(mob, player, optParams)
end

return entity
Loading

0 comments on commit 0145164

Please sign in to comment.