Tombe de Sargeras : module complet 9/9 boss porte depuis DestinyCoreNew (mudyx)
AVANT : 4 boss etaient des coquilles vides de 28-33 lignes (Hote affige, Jeune fille de vigilance, Sassz ine, KIL JAEDEN le boss final) et AUCUN boss n etait binde en DB (ScriptName vides sauf Goroth) -> le raid entier etait decoratif malgre 978 spawns. APRES : module lignee uwow complet (12 161 lignes, 12 fichiers) transcrit vers nos APIs en 7 passes de compatibilite (~880 erreurs de compilation resorbees) : instance script complet (portes, frames, graveyards), 9 encounters scriptes, trash/evenements, 74 bindings de sorts, ~60 ScriptName de creatures, ATs. Ajouts CORE reutilisables (compat DestinyCoreNew, prepareront le futur port Antorus) : - UnitAI : DoCastTopAggro, GetObjectData, hooks no-op (SpellFinishCast, OnApplyOrRemoveAura, OnRemoveAuraTarget, OnAreaTriggerDespawn/Cast, OnInterruptCast, IsDisableGenerateLoot, GetModifyedData) - CreatureAI : Talk(guid), Talk(liste aleatoire), ZoneTalk - ScriptedAI : CheckHomeDistToEvade + alias IsHeroicRaid/IsMythicRaid/IsLfrRaid/ IsNormalRaid/IsHeroicPlusRaid ; SummonList::GetCreature - Unit : GetAnyOwner, CastSpellDelay x2 ; Creature : SetReactState(delay), StopAttack - Map : ApplyOnEveryPlayer, IsHeroicPlusRaid ; GameObject : AddDelayedEvent (m_Events) - Position : SimplePosXYRelocationByAngle, GenerateNonDuplicatePoints, IsLinesCross (reecrit sans G3D::LineSegment2D, absent de notre g3dlite) - MotionMaster : MoveSmoothFlyPath x2 ; AreaTrigger : GetRadius/SetSphereScale(no-op)/ isMoving/Despawn/GetProgressCompat ; AreaTriggerAI : IsValidTarget/CalculateSpline Degradations douces assumees (documentees en commentaire dans le code) : filtrage de cibles des ATs (IsValidTarget jamais appele par notre moteur), scale dynamique des zones de Kil jaeden, conversations cinematiques, distribution de loot personnelle, hooks d interruption/notification d aura, quelques approximations de roles (SoloQ->ROLE_TANK) et de type de degats. SQL : sql/sylvania/tomb_of_sargeras_bindings.sql (applique en DB). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -942,3 +942,28 @@ void MotionMaster::DelayedDelete(MovementGenerator* curr)
|
||||
_expireList = new ExpireList();
|
||||
_expireList->push_back(curr);
|
||||
}
|
||||
|
||||
void MotionMaster::MoveSmoothFlyPath(uint32 pointId, G3D::Vector3 const* pathPoints, size_t pathSize)
|
||||
{
|
||||
Movement::MoveSplineInit init(_owner);
|
||||
init.SetSmooth();
|
||||
init.SetFly();
|
||||
init.SetUncompressed();
|
||||
Movement::PointsArray path(pathPoints, pathPoints + pathSize);
|
||||
init.MovebyPath(path);
|
||||
init.Launch();
|
||||
Mutate(new EffectMovementGenerator(pointId), MOTION_SLOT_ACTIVE);
|
||||
}
|
||||
|
||||
void MotionMaster::MoveSmoothFlyPath(uint32 pointId, Position const position, float flightSpeed /*= 0.0f*/)
|
||||
{
|
||||
Movement::MoveSplineInit init(_owner);
|
||||
init.SetSmooth();
|
||||
init.SetFly();
|
||||
init.SetUncompressed();
|
||||
init.MoveTo(position.m_positionX, position.m_positionY, position.m_positionZ, false, false);
|
||||
if (flightSpeed > 0.0f)
|
||||
init.SetVelocity(flightSpeed);
|
||||
init.Launch();
|
||||
Mutate(new EffectMovementGenerator(pointId), MOTION_SLOT_ACTIVE);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user