- change event type to On Quest Taken (19) instead of Finished (20)
- modify comment to reflect the event type used
- also modify comment to show the quest name instead of number
justStopped was always set true, but when transports spawn and remain stationary timer, _currentFrame->ArriveTime and _currentFrame->DepartureTime are set to 0, making justStopped always remain true and triggering incorrect calls.
Handle correctly move allowed channels: IsChannelActive checks if channel phase has started (after cast if any)
Must skip the other checks since all channels focus target.
ref #19532
- 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)
- set correct gossip_menu.text_id for Jangdor Swiftstrider
- add missing text for Terl Arakor and Griniblix the Spectator
* Thanks to MaNGOS Zero / billy1arm for providing the right clues.
Updates #19527
- Duplicated logic never used, sometimes only ScriptMgr version was called, sometimes only AI
- They only encourage bad scripting practices
- You can still use OnSpellHit or a SpellScript
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)
- Implemented manager for petitions to perform all petition related tasks and synchronize data with database.
- This kills ugly synchronous querys on packet handlers
* Neither 308 nor 403 are typical "quests in a quest"
for which a negative PrevQuestID would be required.
The whole thing is controlled by conditions now,
rather than simple quest chaining - and this is blizzlike.
Closes#10626