* Core/Pets: Pet management refactoring
* Preload basic pet data on character login with async query
* Load additional pet data (declined names/auras/spells/cooldowns) using async query after we are sure pet loading will succeed
* Remove all select queries related to pet stable/unstable
* Remove all silent pet deletions except explicit UI-triggered abandons
* Fixed displaying stable master content when current pet is not summoned
* Allow to stable/swap unsummoned current pet
Closes#3610Closes#21266
Check if integral/floating point type arguments were parsed successfully.
std::stoull will happily parse floating point strings until the decimal separator and return the value.
Make sure for all parsing methods that we actually parsed the whole token.
This allows to use handler arguments like Variant<uint32, float> which will be populated with the right type
depending on the token value (e.g "10" vs "10.0").
* Core/SAI: Spell casts that cannot be executed because the unit is currently casting another spell will be retried asap with priority over other events
* Core/SAI: Re-sort the events only when needed
* Fix some priority reset and wrong mEventSortingRequired handling
* Code cleanup.
Sort only events loaded from db (not stored events, not timed action list).
* Code cleanup.
Raise priority of failed casts so they are retried before other spells
* Keep priority of the action fails and is rescheduled on next update
* Don't try recasting a spell in SMART_ACTION_CAST if there are multiple targets and at least 1 was successful
The check above is what I use to actually get a real result for LUA_STR_CHECK, which when I used variables that would have a string to them it actually fails the check. When checking for items like a function if it exists of course it won't work... In addition, fixing the Unk2 to Unk3 causes people to be able to adjust the address of the check to the address 0x00419210 to make warden perform the FrameScript__Execute to run lua on the client. This seems to be the big request like in https://github.com/TrinityCore/TrinityCore/issues/23035
* Scripts/ScarletMonastery: Fix wrong emote during Headless Horseman encounter
* Scripts/HoR: Fix wrong emote during escape event
* Core/Unit: Make improve type safety of HandleEmoteCommand
Change argument type to the expected enum type Emote
* Scripts/CoS: Use SetUInt32Value to set UNIT_NPC_EMOTESTATE
UNIT_NPC_EMOTESTATE is no flag field
* Core/AI: Remove code that removed UNIT_DYNFLAG_LOOTABLE from possessed units
* Update PassiveAI.cpp
Restored logic that removes loot flag while being possessed
* Restored logic that removes loot flag while being possessed
* Core/SAI: Fix creatures casting with flag SMARTCAST_COMBAT_MOVE not switching to melee when the school of the spell they are trying to cast gets silenced (and other cases of spell failure)
* Core/SAI: Retry casting after 500ms if a cast failed
Fixes#24914
* Core/Units: add new functionality for units to block or enable combat entirely via helper to reflect what CREATURE_DIFFICULTYFLAGS_IGNORE_COMBAT and client AI functions imply
* yeah...
* Nuke Creature::IsCombatDisallowed helper as its unused by now
* no combat extra flag may now be changed on transforms if the transformed entry does not have the flag
* Scripts/Comamnds: Improve ".debug objectcount" command
Include the top 5 most common creatures in the map
* Use C++ features to copy data
* Fix build warnings
* Update src/server/scripts/Commands/cs_debug.cpp
Co-authored-by: Shauren <shauren.trinity@gmail.com>
* Update src/server/scripts/Commands/cs_debug.cpp
Co-authored-by: Shauren <shauren.trinity@gmail.com>
* Update src/server/scripts/Commands/cs_debug.cpp
Co-authored-by: Shauren <shauren.trinity@gmail.com>
* Move CreatureCountWorker out of function and use template for unhandled cases
* Code cleanup
Co-authored-by: Shauren <shauren.trinity@gmail.com>
* Scripts/Naxxramas: Frogger event improvements
* Prevent Living Poison accumulation
* Now Living Poison cast Explode
* check for a nearby player
* move event to the frogger trigger's AI
* Initialize and removing unnecessary things
* applying suggestions
* remove unnecessary header
* Rename 9999_99_99_99_world.sql to 2020_08_05_00_world.sql
Cast damage spell in AfterEffectApply instead OnEffectHitTarget. This avoids the scenario where we try to apply an aura to a potential dead target.
Ref #21856