LandSandBoat / server

:sailboat: LandSandBoat - a server emulator for Final Fantasy XI
https://landsandboat.github.io/server/
GNU General Public License v3.0
302 stars 608 forks source link

[Lua+Core] Fix 24 hour respawn RoTZ NMs (including bodyguarding) #6405

Open TracentEden2 opened 2 weeks ago

TracentEden2 commented 2 weeks ago

I affirm:

What does this pull request do?

This PR unifies and fixes behavior for a related group of RoTZ NMs that all have bodyguard mobs and long respawn windows (21-24 hours). These NMs include Centurio XII-I, Meteormauler Zhagtegg, Coo Keja the Unseen, Meww the Turtlerider, Bo'Who Warmonger, and Bright-handed Kunberry.

All the NMs have two bodyguard mobs that spawn with and follow the NM if the region the NM spawns in is beastmen controlled. This bodyguard behavior is centralized in a new mixin rotz_bodyguarded_nm.lua that all of the six NM now include. The bodyguards link normally with the NM (but do not superlink and thus are not in a party with the NM). The bodyguards despawn if they disengage (and roam) at any time while the bodyguarded NM is dead, but they will not despawn if they are still engaged. Also bodyguards do not despawn even if dragged with the NM far away from home (they path back home just following the NM).

Also all of the NMs have a 50% damage taken reduction mod (which is implemented as the 4 UDMG mods because of the 50% cap on the DMG mod. Also the incorrect mob pool mod (DMG: -50 ) of these NMs has been removed.

Also related issues with the NMs has been fixed such as their bodyguards spawning as normal respawn mobs or not having spawn coordinates at all. And Centurio_XII has had it's HP corrected.

The behavior of these NMs and bodyguards was validated in several captures and additional retail testing by Siknoz and myself including captures found here, here, here, and an additional capture still to be uploaded.

Steps to test these changes

Spawn any of these NMs with beastmen in control of the region and a player nation in control of the region. Also can test the bodyguard despawn behavior after the NM is killed and then doing !goto playerName.