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 7, 2024
1 parent ca22204 commit 92e483c
Show file tree
Hide file tree
Showing 34 changed files with 683 additions and 343 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,7 @@ end
content.groups =
{
{
mobIds =
{
{ cloisterOfFrostID.mob.SHIVA_PRIME + 21 },
{ cloisterOfFrostID.mob.SHIVA_PRIME + 22 },
{ cloisterOfFrostID.mob.SHIVA_PRIME + 23 },
},

mobs = { 'Shiva_Prime_TSTBI' },
allDeath = function(battlefield, mob)
battlefield:setStatus(xi.battlefield.status.WON)
end,
Expand Down
10 changes: 1 addition & 9 deletions scripts/battlefields/Cloister_of_Frost/trial_by_ice.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
-- Area: Cloister of Frost
-- BCNM: Trial by Ice
-----------------------------------
local cloisterOfFrostID = zones[xi.zone.CLOISTER_OF_FROST]
-----------------------------------

local content = BattlefieldQuest:new({
zoneId = xi.zone.CLOISTER_OF_FROST,
Expand All @@ -28,13 +26,7 @@ end
content.groups =
{
{
mobIds =
{
{ cloisterOfFrostID.mob.SHIVA_PRIME },
{ cloisterOfFrostID.mob.SHIVA_PRIME + 1 },
{ cloisterOfFrostID.mob.SHIVA_PRIME + 2 },
},

mobs = { 'Shiva_Prime_TBI' },
allDeath = function(battlefield, mob)
battlefield:setStatus(xi.battlefield.status.WON)
end,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,7 @@ end
content.groups =
{
{
mobIds =
{
{ cloisterOfGalesID.mob.GARUDA_PRIME + 6 },
{ cloisterOfGalesID.mob.GARUDA_PRIME + 7 },
{ cloisterOfGalesID.mob.GARUDA_PRIME + 8 },
},

mobs = { 'Garuda_Prime_TSTBW' },
allDeath = function(battlefield, mob)
battlefield:setStatus(xi.battlefield.status.WON)
end,
Expand Down
10 changes: 1 addition & 9 deletions scripts/battlefields/Cloister_of_Gales/trial_by_wind.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
-- Area: Cloister of Gales
-- BCNM: Trial by Wind
-----------------------------------
local cloisterOfGalesID = zones[xi.zone.CLOISTER_OF_GALES]
-----------------------------------

local content = BattlefieldQuest:new({
zoneId = xi.zone.CLOISTER_OF_GALES,
Expand All @@ -28,13 +26,7 @@ end
content.groups =
{
{
mobIds =
{
{ cloisterOfGalesID.mob.GARUDA_PRIME },
{ cloisterOfGalesID.mob.GARUDA_PRIME + 1 },
{ cloisterOfGalesID.mob.GARUDA_PRIME + 2 },
},

mobs = { 'Garuda_Prime_TBW' },
allDeath = function(battlefield, mob)
battlefield:setStatus(xi.battlefield.status.WON)
end,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,7 @@ end
content.groups =
{
{
mobIds =
{
{ cloisterOfStormsID.mob.RAMUH_PRIME + 9 },
{ cloisterOfStormsID.mob.RAMUH_PRIME + 10 },
{ cloisterOfStormsID.mob.RAMUH_PRIME + 11 },
},

mobs = { 'Ramuh_Prime_TSTBL' },
allDeath = function(battlefield, mob)
battlefield:setStatus(xi.battlefield.status.WON)
end,
Expand Down
10 changes: 1 addition & 9 deletions scripts/battlefields/Cloister_of_Storms/trial_by_lightning.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
-- Area: Cloister of Storms
-- BCNM: Trial by Lightning
-----------------------------------
local cloisterOfStormsID = zones[xi.zone.CLOISTER_OF_STORMS]
-----------------------------------

local content = BattlefieldQuest:new({
zoneId = xi.zone.CLOISTER_OF_STORMS,
Expand All @@ -28,13 +26,7 @@ end
content.groups =
{
{
mobIds =
{
{ cloisterOfStormsID.mob.RAMUH_PRIME },
{ cloisterOfStormsID.mob.RAMUH_PRIME + 1 },
{ cloisterOfStormsID.mob.RAMUH_PRIME + 2 },
},

mobs = { 'Ramuh_Prime_TBL' },
allDeath = function(battlefield, mob)
battlefield:setStatus(xi.battlefield.status.WON)
end,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,7 @@ end
content.groups =
{
{
mobIds =
{
{ cloisterOfTidesID.mob.LEVIATHAN_PRIME + 3 },
{ cloisterOfTidesID.mob.LEVIATHAN_PRIME + 4 },
{ cloisterOfTidesID.mob.LEVIATHAN_PRIME + 5 },
},

mobs = { 'Leviathan_Prime_TSTBW' },
allDeath = function(battlefield, mob)
battlefield:setStatus(xi.battlefield.status.WON)
end,
Expand Down
10 changes: 1 addition & 9 deletions scripts/battlefields/Cloister_of_Tides/trial_by_water.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
-- Area: Cloister of Tides
-- BCNM: Trial by Water
-----------------------------------
local cloisterOfTidesID = zones[xi.zone.CLOISTER_OF_TIDES]
-----------------------------------

local content = BattlefieldQuest:new({
zoneId = xi.zone.CLOISTER_OF_TIDES,
Expand All @@ -28,13 +26,7 @@ end
content.groups =
{
{
mobIds =
{
{ cloisterOfTidesID.mob.LEVIATHAN_PRIME },
{ cloisterOfTidesID.mob.LEVIATHAN_PRIME + 1 },
{ cloisterOfTidesID.mob.LEVIATHAN_PRIME + 2 },
},

mobs = { 'Leviathan_Prime_TBW' },
allDeath = function(battlefield, mob)
battlefield:setStatus(xi.battlefield.status.WON)
end,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,7 @@ end
content.groups =
{
{
mobIds =
{
{ cloisterOfTremorsID.mob.TITAN_PRIME + 6 },
{ cloisterOfTremorsID.mob.TITAN_PRIME + 7 },
{ cloisterOfTremorsID.mob.TITAN_PRIME + 8 },
},

mobs = { 'Titan_Prime_TSTBE' },
allDeath = function(battlefield, mob)
battlefield:setStatus(xi.battlefield.status.WON)
end,
Expand Down
10 changes: 1 addition & 9 deletions scripts/battlefields/Cloister_of_Tremors/trial_by_earth.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
-- Area: Cloister of Tremors
-- BCNM: Trial by Earth
-----------------------------------
local cloisterOfTremorsID = zones[xi.zone.CLOISTER_OF_TREMORS]
-----------------------------------

local content = BattlefieldQuest:new({
zoneId = xi.zone.CLOISTER_OF_TREMORS,
Expand All @@ -23,13 +21,7 @@ local content = BattlefieldQuest:new({
content.groups =
{
{
mobIds =
{
{ cloisterOfTremorsID.mob.TITAN_PRIME },
{ cloisterOfTremorsID.mob.TITAN_PRIME + 1 },
{ cloisterOfTremorsID.mob.TITAN_PRIME + 2 },
},

mobs = { 'Titan_Prime_TBE' },
allDeath = function(battlefield, mob)
battlefield:setStatus(xi.battlefield.status.WON)
end,
Expand Down
5 changes: 2 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,8 @@ 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_ASA = GetFirstID('Shiva_Prime_ASA')
},
npc =
{
Expand Down
50 changes: 50 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,50 @@
-----------------------------------
-- Area: Cloister of Frost
-- Mob: Shiva Prime
-- Involved in Quest: Trial by Ice
-----------------------------------
mixins = { require('scripts/mixins/job_special') }
-----------------------------------
---@type TMobEntity
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
58 changes: 58 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,58 @@
-----------------------------------
-- Area: Cloister of Frost
-- Mob: Shiva Prime
-- Involved in Quest: Trial Size Trial by Ice
-----------------------------------
mixins = { require('scripts/mixins/job_special') }
-----------------------------------
---@type TMobEntity
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.

5 changes: 2 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,8 @@ 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_ASA = GetFirstID('Garuda_Prime_ASA'),
OGMIOS = GetFirstID('Ogmios'),
},
npc =
{
Expand Down
Loading

0 comments on commit 92e483c

Please sign in to comment.