* updated script to new model
* use Helix as spawning handler instead of the Lumbering Oaf
* added missing visuals when throwing Helix
* corrected several timers and get rid of some jerky code
* added missing spawn event for Helix' 2nd crew when Lumbering Oaf dies
* increased Helix melee damage to get closer to sniff values
The number of edge cases in which weirdness is seen on "effect movements" will be kinda reduced, plus consistency, plus movementInform on custom movement spline initalizations.
Core/Movement: use helpers for validation
Core/Movement: crashfix workaround
* update script to new model
* use sniffed spline points and velocity for Glubtok's firewall platter
* corrected several timers
* re-order death sequence to reflect sniff data perfectly
* optimized several condition handlings
* increased Glubtok's melee damage
* added missing instance bind flag to Glubtok
* updated Temple Guardian Anhuur's script to new model
* fixed achievement 'I hate that Song'
* corrected Beacon of Light handling to blizzlike standards
* Cave In Stalker will now get despawned alongside Beacons of Light
* scripted trash packs prior to Temple Guardian Anhuur
Todo:
* add encounter related creatures to instance spawn groups
- Map::RemoveRespawnTime(SpawnObjectType, LowType, doRespawn) split into Map::Respawn and Map::RemoveRespawnTime, without the extra boolean
- Map::RemoveRespawnTime(RespawnInfo*) merged into Map::DeleteRespawnInfo(RespawnInfo*) and is now private
- Map::DeleteRespawnInfo(void) renamed to Map::UnloadAllRespawnInfos to properly describe what it does
- Map::ProcessRespawns now actually saves the delayed respawn time to DB if the respawn was delayed
- Map::AddRespawnInfo now takes const reference, and returns success as a boolean
- Map::AddRespawnInfo no longer offers an unused "replace" parameter
- Map::DeleteRespawnInfo no longer offers a variety of unused private overloads
- Map::SaveRespawnTime no longer offers a tantalizing writeDB parameter. Parameter is now called "startup" to properly describe what it does.
- Map::SaveRespawnInfoDB now takes RespawnInfo reference instead of all the various fields. Still public because compatibility mode. QQ.
- Map::GetWorldObjectBySpawnId sanitized
- Map::GetXRespawnTime methods sanitized to all go through Map::GetRespawnTime
----------
Core/DB: Unify `creature_respawn` and `gameobject_respawn` into a single `respawn` table
- .npc respawn no longer causes stupid things to happen (Fixes#23014)
- ::DeleteFromDB methods on Creature and GameObject rewritten to be as sensible as such a colossally stupid method can ever be. They're static now.
- .npc delete and .gobj delete ported to new argument handling, and rewritten as per above. They can no longer crash the server when used in instances, too. Yay for that.
- Adjusted various dusty cobwebbed hacks around the core (why does waypoint visualization use permanent spawns *shudder*) to still work too.
* reworked slipstream system. Use database spawned slipstreams to avoid grid unload issues and link them to dynamic spawn groups so we have full control over them now
* scripted shortcut cases for the remaining slipstreams
* spawn Zephyrs only if their grid is loaded