From 7a6cee1846363dd993a73cb7f4665a662b2a5b1d Mon Sep 17 00:00:00 2001 From: TracentEden <92269743+TracentEden@users.noreply.github.com> Date: Sun, 27 Apr 2025 22:47:29 +0300 Subject: [PATCH] Adjust Bahamut from storms of fate Co-Authored-By: CriticalXI Co-Authored-By: siknoz --- .../Riverne_Site_B01/storms_of_fate.lua | 20 ++++++++++ .../zones/Riverne-Site_B01/mobs/Bahamut.lua | 37 ++++++++++++++++--- sql/mob_groups.sql | 2 +- sql/mob_pools.sql | 2 +- 4 files changed, 53 insertions(+), 8 deletions(-) diff --git a/scripts/battlefields/Riverne_Site_B01/storms_of_fate.lua b/scripts/battlefields/Riverne_Site_B01/storms_of_fate.lua index 4c98f360c46..bb4d7ff5557 100644 --- a/scripts/battlefields/Riverne_Site_B01/storms_of_fate.lua +++ b/scripts/battlefields/Riverne_Site_B01/storms_of_fate.lua @@ -24,6 +24,26 @@ local content = BattlefieldQuest:new({ title = xi.title.CONQUEROR_OF_FATE, }) +local function healCharacter(player) + if player:isAlive() then + player:setHP(player:getMaxHP()) + player:setMP(player:getMaxMP()) + player:setTP(0) + + if player:getPet() ~= nil then + local pet = player:getPet() + pet:setHP(pet:getMaxHP()) + pet:setMP(pet:getMaxMP()) + pet:setTP(0) + end + end +end + +-- players on healed on entry to the battlefield +function content:battlefieldEntry(player, battlefield) + healCharacter(player) +end + content.groups = { { diff --git a/scripts/zones/Riverne-Site_B01/mobs/Bahamut.lua b/scripts/zones/Riverne-Site_B01/mobs/Bahamut.lua index 6ae45fea5b6..d34c0726028 100644 --- a/scripts/zones/Riverne-Site_B01/mobs/Bahamut.lua +++ b/scripts/zones/Riverne-Site_B01/mobs/Bahamut.lua @@ -1,21 +1,46 @@ ----------------------------------- -- Area: Riverne - Site B01 (BCNM) --- NM: Bahamut +-- NM: Bahamut +-- !pos -612.800 1.750 693.190 29 ----------------------------------- local ID = zones[xi.zone.RIVERNE_SITE_B01] ----------------------------------- ---@type TMobEntity local entity = {} -entity.onMobInitialize = function(mob) - mob:setMobMod(xi.mobMod.HP_STANDBACK, -1) -end - entity.onMobSpawn = function(mob) + mob:addImmunity(xi.immunity.GRAVITY) + mob:addImmunity(xi.immunity.BIND) + mob:addImmunity(xi.immunity.SILENCE) + mob:addImmunity(xi.immunity.PARALYZE) + mob:addImmunity(xi.immunity.LIGHT_SLEEP) + mob:addImmunity(xi.immunity.DARK_SLEEP) + mob:addImmunity(xi.immunity.TERROR) + mob:setMobMod(xi.mobMod.NO_STANDBACK, 1) + mob:setMobMod(xi.mobMod.SIGHT_RANGE, 20) + mob:setMobMod(xi.mobMod.SOUND_RANGE, 20) + -- should cast a spell every ~30 seconds + mob:setMobMod(xi.mobMod.MAGIC_COOL, 50) + -- base damage scaled down from Bahamut v2 (wyrmking decends) value based on level difference + -- base damage of 136 = (lvl 83 + 2) + 51 + mob:setMobMod(xi.mobMod.WEAPON_BONUS, 51) + -- Note baha has a job trait with fast cast of 15% so 75% total + mob:setMod(xi.mod.UFASTCAST, 60) + -- ATT scaled down from Bahamut v2 (wyrmking decends) value based on level difference + mob:setMod(xi.mod.ATT, 425) + -- should use mob skill every ~60 sec (without TP feed) + mob:addMod(xi.mod.REGAIN, 50) + mob:addMod(xi.mod.REGEN, 50) + -- MDEF bonus scaled down from Bahamut v2 (wyrmking decends) value based on level difference + mob:setMod(xi.mod.MDEF, 55) mob:addStatusEffect(xi.effect.PHALANX, 35, 0, 180) mob:addStatusEffect(xi.effect.STONESKIN, 350, 0, 300) mob:addStatusEffect(xi.effect.PROTECT, 175, 0, 1800) mob:addStatusEffect(xi.effect.SHELL, 24, 0, 1800) + -- set these here to make sure no issues if previously killed during a flare mobskill + mob:setMobAbilityEnabled(true) + mob:setMagicCastingEnabled(true) + mob:setAutoAttackEnabled(true) end local megaflareHPP = @@ -40,7 +65,7 @@ entity.onMobFight = function(mob, target) act == xi.act.MOBABILITY_FINISH or act == xi.act.MAGIC_START or act == xi.act.MAGIC_CASTING or - act == xi.act.MAGIC_START + act == xi.act.MAGIC_FINISH then isBusy = true -- is set to true if Bahamut is in any stage of using a mobskill or casting a spell end diff --git a/sql/mob_groups.sql b/sql/mob_groups.sql index b5581acca97..1ed895eed97 100644 --- a/sql/mob_groups.sql +++ b/sql/mob_groups.sql @@ -1132,7 +1132,7 @@ INSERT INTO `mob_groups` VALUES (13,3725,29,'Spell_Spitter_Spilospok',0,128,0,0, INSERT INTO `mob_groups` VALUES (14,708,29,'Chemical_Cook_Chemachiq',0,128,0,0,0,55,55,0); INSERT INTO `mob_groups` VALUES (15,503,29,'Book_Browser_Bokabraq',0,128,0,0,0,55,55,0); INSERT INTO `mob_groups` VALUES (16,4102,29,'Unstable_Cluster',0,128,2523,10000,0,56,57,0); -INSERT INTO `mob_groups` VALUES (17,325,29,'Bahamut',0,128,0,26000,15000,83,83,0); +INSERT INTO `mob_groups` VALUES (17,325,29,'Bahamut',0,128,0,26000,15000,85,85,0); INSERT INTO `mob_groups` VALUES (18,3070,29,'Ouryu',0,128,0,0,0,75,75,0); INSERT INTO `mob_groups` VALUES (19,3916,29,'Tiamat',0,128,0,0,0,75,75,0); INSERT INTO `mob_groups` VALUES (20,2156,29,'Jormungand',0,128,0,0,0,75,75,0); diff --git a/sql/mob_pools.sql b/sql/mob_pools.sql index 830834bc7c2..60248ae7d33 100644 --- a/sql/mob_pools.sql +++ b/sql/mob_pools.sql @@ -378,7 +378,7 @@ INSERT INTO `mob_pools` VALUES (321,'Badlands_Crab','Badlands_Crab',77,0x0000640 INSERT INTO `mob_pools` VALUES (322,'Badshah','Badshah',242,0x0000340100000000000000000000000000000000,1,1,7,240,100,0,1,0,0,2,0,0,0,3,0,0,0,0,0,242,242); INSERT INTO `mob_pools` VALUES (323,'Baelfyr','Baelfyr',103,0x0000650800000000000000000000000000000000,5,3,11,240,100,0,1,0,0,0,0,0,0,131,0,0,3,0,0,0,103); INSERT INTO `mob_pools` VALUES (324,'Baetyl_Quadav_BS','Baetyl_Quadav_BS',202,0x00001F0400000000000000000000000000000000,3,3,3,265,100,0,1,0,1,0,0,0,1,131,0,0,1,0,0,202,202); -INSERT INTO `mob_pools` VALUES (325,'Bahamut','Bahamut',449,0x00001B0500000000000000000000000000000000,4,5,7,240,100,1024,1,1,0,16,6198,32,100,157,0,0,144,0,0,726,449); +INSERT INTO `mob_pools` VALUES (325,'Bahamut','Bahamut',449,0x00001B0500000000000000000000000000000000,4,5,7,240,100,1024,1,1,0,16,0,32,100,157,0,0,144,0,0,726,449); INSERT INTO `mob_pools` VALUES (326,'Bakka','Bakka',165,0x0000BD0800000000000000000000000000000000,4,4,7,240,100,0,0,0,0,2,0,32,0,151,4,0,167,127,0,789,165); INSERT INTO `mob_pools` VALUES (327,'Bakru','Bakru',178,0x00002C0100000000000000000000000000000000,2,2,1,480,100,0,0,0,0,0,0,0,0,3,0,0,0,0,0,178,178); INSERT INTO `mob_pools` VALUES (328,'Balam-Agab','Balam-Agab',71,0x00006F0100000000000000000000000000000000,3,3,11,240,100,0,1,0,0,2,0,32,7611,157,0,0,1,0,0,71,71);