Improvements done to initial work by joschiwald:
- Fixed stormhammer casting and visuals
- Fixed spell credits
- Implemented removal of Impale when HP is higher than 90%
- Corrected faction templates for the pre combat creatures
- Implemeted Leap on the arena adds (thanks to joschiwald for implementing conditions)
- Scripted lighting charge using AuraScript periodic
- Fixed timings
- Corrections on the hallway encounters (added knockback immunity to minibosses too)
- Fixed multiple blizzards issue
- Lever will now reset properly, should players fail to get inside. This allows the door to be opened more than once during the combat
- Corrections in the outro event
- Implemented paralytic field traps on the hallway.
- Implemented Ancient Gate of the Keepers opening.
- Changed blizzard bunny targetting to conditions entirely.
- Removed obsolete scripts
- Standards: delete spell script names by ScriptName instead of spell_id
- Swapped factions for pre-adds (alliance should get horde trash and vs)
- Fixed Leap setting home position for adds
- Removed a bunch of magic numbers
- Runic Colossus should finish current Runic Explosion before beginning to attack
- Fixed UpdateAI logic to put it in line with other scripts (ie don't stop casts)
Special thanks to:
- chaodhib for the blizzard trigger waypoints and investigation on spell radius
- Malcrom for creating the Conditions Creator :P
Closes#15008Closes#17072
(cherry picked from commit 4a69f5bda5)
Closes#7651
Fix logic fail in achievement:
SPELL_LIGHTNING_CHARGE aka 62279 is casted on Thorim itself to buff him, not the damage spell tracked by the achievement.
(cherry picked from commit 5e90c76fd4)
- Changed self-accessor on GameObjectAI to "me", like UnitAI
- Moved all related functions to AI, now Unit and GameObject have the same function names with identical behaviour
- Remove "OnUpdate" from CreatureScript/GameObjectScript, was never used and we already have AI Update method
- Quest methods no longer return a bool, the return value was used to call the AI version if the ScriptMgr one returned false
- Implemented GameObjectAI::Destroyed hook (was never called), implemented Damaged method
- Rename OnStateChanged to OnLootStateChanged to reflect when it's really called, and created a new hook OnStateChanged that only gets called on GOState change
- Since the functions are now only getting called from AI, made GetAI methods full virtual. (CanSpawn method is anyways going to be used on creatures with AI)
(cherry picked from commit f913f3bb89)
Set in front modifies only the serverside orientation, use with care.
Also check for current focus to prevent things like incorrect damage on casting creatures (ie dragon breath direction change in your face because of some taunt missclick)
(cherry picked from commit 229444b74a)
- Moved SetBoundary to public scope to allow for greater flexibility (ie set from external script)
- Extended to allow checking inverted boundaries
(cherry picked from commit 6892404b27)
* In the existing core script, Willix the Importer in Razorfen Kraul says
"Help! Get this $n off of me!" (showing the $n part in his SAY text)
instead of naming the attacker when using his 'SAY_AGGRO1' creature_text.
* With this commit change, unit target is no longer missing for Talk,
making Willix name the attacking unit when he shouts for help.
(cherry picked from commit 6cc267d909)
* added base script support for the encounter for normal and heroic difficulty
* added instance script for Antorus the Burning Throne
* added sniffed template data for involved gameobjects
* added encounter related spawns to Antorus the Burning Throne
* added instance encounter entry for Garothi Worldbreaker
* Scripts: Minimize duplicated enum names in header files
This reduces the number of cache resets with the Zapcc compiler
- Standard followed is instance/raid TLA + DataTypes/CreaturesIds/etc
- Partial cherry-pick of master commit 7eb4512eee
- Removed unused defines in sunken_temple.h (the core scripts using these have been moved to SAI)
(cherry picked from commit f6f36be004)
- Stop exposing DoublePosition constructor versions, they're only used for internal representation
- Moved IsInBounds function to public scope
(cherry picked from commit 83162fafa4)
- Added an auxiliary function IsInBounds to base CreatureAI
- Changed container to vector. Set had no sense because we're storing new pointers, they have different addresses even if the boundary is the same
(cherry picked from commit 2f99fa09c9)
- Codestyle/indent fixes
- Added ObjectData for some GOs
- Added GetUlduarAI to creatures
- Fixed possible out-of-bounds access in boss_razorscale_controllerAI (boss AI number beyond allocated boss size)
(cherry picked from commit b74cc80859)
- Splitted containers for flat modifiers and pct modifiers, as they now have different handling
- Amount is now multiplied only on apply; on unapply, iterate through auras and reset the counter
- Fixes many cases of rounding error due to applying/unapplying of small factors
- Allows amounts to be zeroed (ie with an AuraEffect of amount -100)
- Do a partial revert of 6dc37a9add, auras should update amounts only for items allowed (ie no more giving crit to a sword while having an axe in the other hand and being Poleaxe spec'd)
- SPELL_AURA_MOD_SCALE now scales additively, rather than multiplicatively (checked in sniffs)
Closes#18687
(cherry picked from commit c69a7d1223)