* fix(DB/Core): Anchorite Truuen
Anchorote Truuen is escorted in quest Tomb of the Lightbringer, but he's
too fast and doesn't aggro on anything.
* Updated using suggestions from @pklloveyou
Co-authored-by: Zoidwaffle <zoidwaffle@gmail.com>
Npc positioning
Implemented slope check to avoid unwanted climbing for some kind of movements (backwards, repositioning etc.)
Implemented backwards movement
Re-implemented circle repositioning algorithm (smartest than retail, but with the same feeling)
Fixed random position of summoned minions
Improved pet following movement. Also, they attack NPC from behind now. Thanks to @Footman
Swimming creatures
Fixed max_z coordinate for swimming creatures. Now only part of their body is allowed to be out of the water level
Fixed pathfinder for swimming creatures creating shortcuts for specific segments, now they swim underwater to reach the seashore instead of flying above the water level.
Creatures with water InhabitType but no swimming flag now, when not in combat, will walk on water depth instead of swimming. Thanks @jackpoz for the original code
UNIT_FLAG_SWIMMING in UpdateEnvironmentIfNeeded to show the swimming animation correctly when underwater
Implemented HasEnoughWater check to avoid swimming creatures to go where the water level is too low but also to properly enable swimming animation only when a creature has enough water to swim.
Walking creatures
Extended the DetourNavMeshQuery adding area cost based on walkability (slope angle + source height) to find better paths at runtime instead of completely remove them from mmaps
improve Z height in certain conditions (see #4205, #4203, #4247 )
Flying creatures
Rewriting of the hover system
Removed hacks and improved the UpdateEnvironmentIfNeeded. Now creatures can properly switch from flying to walk etc.
Spells
LOS on spell effect must be calculated on CollisionHeight and HitSpherePoint instead of position coords.
Improved position for object/creature spawned via spells
Improved checks for Fleeing movements (fear spells)
Other improvements
Implemented method to calculate the CollisionWidth from dbc (used by repositioning algorithm etc.)
Improved raycast and collision checks
Co-authored-by: Footman <p.alexej@freenet.de>
Co-authored-by: Helias <stefanoborzi32@gmail.com>
Co-authored-by: Francesco Borzì <borzifrancesco@gmail.com>
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
* [Core/Scripts] BWL - Make Razorgore talk, script blackwing mage, make his spell break eggs
* more to vaelastrasz
* accidentally removed some of the waypoints, fuck me
* Broodlord Lashlayer overhaul + supressors
* Formations, waypoints for Ebonroc and roaming Flamegor (might be non-blizzlike)
* complete overhaul for the basic scripts, merge with TC
* last for today, door cleanup and nefarian refactor (from TC)
* Doors are now working, hooraay!
* Fix the boss gossip that we broke... non-intentionally lolz
* Vaelstraz intro - done
* small corrections to the timers, they are not blizzlike since we got no sniffs.. :^)
* nefarian checked, everything seems to be fine... let the cleanup begin now
* SQL seems fine as well, let's gooo
* Partially Revert "SQL seems fine as well, let's gooo"
This partially reverts commit b1750da58d169e9ed916eb6a6a95da93caeb0ff8.
* idk why mine's called wander_distance
* wtb new eyes
* lost an override @ flamegor
* more junk to fix the compile
* anything else? whining shit..
* SpellScript header..
* how about now?
* hopefully this does the trick, the condition in general works just fine, the spell is targeting the boss
* Update 0000_00_00_00.sql
fuck. you.
* Cleanup SQL, temp comment out code for creature relations so they don't pull several rooms at once
* Move the file with proper revision and location
* Remove the creature_relations *fix* until there's a proper core-side fix for it.
* spawndist > wander_distance
* compile fix
* lost a bracket in the merge
* *sigh*
* add new line at the end
* Nefarian's whitespaces
* Vael's whitespaces
* Razorgore good to go as well
* Header as well
* finale
* NULL to nullptr
* NULL to nullptr
* NULL to nullptr
* NULL to nullptr
* NULL to nullptr
Co-authored-by: Francesco Borzì <borzifrancesco@gmail.com>
Co-authored-by: Stefano Borzì <stefanoborzi32@gmail.com>
- Cast the buffs from Thrall and Wrynn on themselves instead of the player. This prevents interrupting spellcasting of the player during battle.
- Override "EnterEvadeMode" for Thrall and Wrynn AI in order to prevent removing their auras on evade.
- Remove the spell script "spell_undercity_buffs" as it is not needed anymore (the players only get the aura when near Thrall or Wrynn)
* fix(DB/Core): Play "Lament of the Highborne" as music instead of sound
* Update ScriptedCreature.cpp
* Update rev_1559456042362460279.sql
* Update rev_1559456042362460279.sql
* Update rev_1559456042362460279.sql
* Update rev_1559456042362460279.sql
* Boss re-order
* Revert "Boss re-order"
This reverts commit 03289cb064ae51c38e3efebba11f3e3882ae350a.
* Reworking Ambassador flamelash
- Removed timers
- Scripting the boss properly, missing event and talk emote
* Update boss_ambassador_flamelash.cpp
* Update boss_ambassador_flamelash.cpp
* Ambassador Flamelash reworked
- Burning spirits spawn at the correct places
- When they get close to the boss they die, thus buffing the boss with a stackable buff
- When encounter begins the runes start burning
- Burning Spirits chase the boss around the room
* Missing aggro emote and cleanup
* travis
* Cleaner code
Changed the enum usage to a Vector and iterated over every gameobject entry to make them active or ready.
* Cleanup
Removed not used enum
* types
* Update boss_ambassador_flamelash.cpp
* Added dynamic spawning algorithm
Before this commit, Spirits could be summoned on the same rune.
After this commit Spirits will not be summoned on the same position.
* bad null conversion
* declaration and initialization inside function
changed randomPosition to an Int inside the getValidRandomPosition().
* wrong type declaration
variable needs to be declared outside of while cycle.
* useless variable
* Bugfixing
- New fireblast
- When burning spirits die killed by the player, new event to summon new ones
- Make them aggro the player and attack them
* miss typed ;
* Trying to fix mentioned issues
- If spirits are in combat, keep summoning new ones
- If spirits are in combat, then the boss can't kill them if they get close to them
* IsInCombat typo
* Exploit fixing
* Summoning massive waves fix
* Fixing last issue hopefully
* Boss re-order
1st attacker is Anger'rel ID 9035
2nd attacker is Seeth'rel ID 9038
3rd Attacker is Dope'rel ID 9040
4th Attacker is Gloom'rel ID 9037
5th attacker is Vile'rel ID 9036
6th attacker is Hate'rel ID 9034
7th attacker is Doom'rel after his death spawnt the chest and the doors go back to ID 9039
* Domrel eventmap
swapped timers to events
* Update boss_tomb_of_seven.cpp
* Update boss_tomb_of_seven.cpp
* Update boss_tomb_of_seven.cpp
* Update boss_tomb_of_seven.cpp
* Update boss_tomb_of_seven.cpp
* Doomrel ain't the first boss
* Don't ignore first boss
* Gossip option
* Gossip done