/var/lib/jenkins/jobs/tc_335_release_clang40_boost_1.63.0_nopch/workspace/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp:583:132: warning: format specifies type 'unsigned int' but the argument has type 'float' [-Wformat]
TC_LOG_TRACE("scripts.cos", "npc_arthas_stratholmeAI::AdvanceToState: has snapback for this state, distance = %u", target.SnapbackPosition->GetExactDist(me));
~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%f
/var/lib/jenkins/jobs/tc_335_release_clang40_boost_1.63.0_nopch/workspace/src/common/Logging/Log.h:176:56: note: expanded from macro 'TC_LOG_TRACE'
TC_LOG_MESSAGE_BODY(filterType__, LOG_LEVEL_TRACE, __VA_ARGS__)
^~~~~~~~~~~
/var/lib/jenkins/jobs/tc_335_release_clang40_boost_1.63.0_nopch/workspace/src/common/Logging/Log.h:159:32: note: expanded from macro 'TC_LOG_MESSAGE_BODY'
check_args(__VA_ARGS__); \
^~~~~~~~~~~
(cherry picked from commit 303811399f)
* Core/Misc: don't allow players to use/activate/loot non-allowed gameobjects while under the effect of a damage immunity aura.
* Forgot to change this in last-second rename.
* Apply suggested changes, thanks Shauren!
(cherry picked from commit 8bc5451864)
* Scripts/Misc: Change IsSummonedBy(Unit*) to IsSummonedBy(WorldObject*)
* Scripts/Misc: Fix build
* Core/TempSummons: Rename GetSummoner() to GetSummonerUnit()
* Core/TempSummons: Add support to TempSummons::GetSummoner() to return GameObject too
* Fix build
* Core/TempSummons: Allow GameObject to be owner of TempSummon
* Core/TempSummons: Add support to SAI for GameObject owner of TempSummon
* Scripts/Misc: Fix no-pch build
* Core/TempSummons: Implement PR comments
(cherry picked from commit 797fba98e9)
Change the way #22332 moved spell damage calculations from SpellEffectDMG to scripts, using OnEffectLaunchTarget and SetEffectValue instead
(cherry picked from commit 20772dbf5d)
* Scripts/Wailing Caverns: make Disciple of Naralex say Mutanus the Devourer
Disciple of Naralex should say
"This Mutanus the Devourer is a minion from Naralex's nightmare no doubt!"
instead of using $n caused by a missing target in the Talk() script command.
(cherry picked from commit a040d48443)
* Scripts/TempleOfAhnQiraj: Implement Battleguard Sartura's skip-prevention area trigger
* Sartura engages players if they try to skip her by walking past down the tunnel
* Clean up the instance script a bit
(cherry picked from commit c8f830ff2b)
- Chase to angle is now functional. Pets use this to chase behind the target. Closes#19925.
- Chase to arbitrary range interval works. Not used anywhere, but you can technically make hunter-like mobs.
- Pets now follow the hunter cleanly and without stutter stepping. Also fix some other things. Closes#8924.
(cherry picked from commit 2a84562dc8)
- AI hook will now receive the result by copy, as modifying it had no effect
- Some renaming: result->spellClickHandled, clickPair is actually clickBounds, the clickPair is the pair <creatureID, SpellClickInfo>
(cherry picked from commit 98d6258efd)
- Decoupled Unit logic: split of spell critical chance into done (caster bonuses) and taken (target bonuses), this allows to precalculate caster bonuses on aura apply and then check victim's auras on damage/healing calc
- Made static a bunch of methods (they no longer have this pointer because they are now called from periodic handlers which may or may not have an active caster in world)
- Simplified all AuraEffect bonuses into AuraEffect::_amount, no more duplicated code
- Critical chance and whether or not caster is player owned unit (for resilience calcs) is now saved one level upper, on Aura itself (it's impossible as of 3.3.5 to have different effects with different critical chances)
- Minor cleanup of SPELL_DAMAGE_CLASS_NONE and Arcane Potency (#18813) crit handling
Closes#19876
(cherry picked from commit cb9e72e521)
- PvE combat is now always mutual. UNIT_FLAG_IN_COMBAT is backed by actual references to the units we're in combat with.
- PvP combat is now also tracked, and almost always mutual; spells like Vanish and Feign Death can break this rule. That means we can easily determine a list of players we're fighting.
- By extension, IsInCombatWith now has sensible behavior when invoked on nonplayers.
- Threat and combat systems are no longer the same.
- They still have an enforced relationship (threat implies combat - clearing combat clears threat)...
- ...but we can have combat without threat. A creature (with threat list) isn't considered to be engaged until it has an entry on its threat list...
- ...which means we can now faithfully replicate retail engage behavior. Combat on projectile launch - engagement start on projectile impact. Yay for progress!
- AI method refactor, as already ported in 6113b9d - `JustEngagedWith`, `JustEnteredCombat` and `JustExitedCombat`.
- Vehicle threat is now properly pooled on the main vehicle body (fixes#16542).
- Various edge case bug fixes for threat redirects (Misdirection "cancelling" Vigilance and similar).
- Target re-selection is now significantly faster.
- Fixed a ton of other smaller edge case bugs, probably.
Closes#7951 and #19998.
(cherry picked from commit 532ab1c7f8)
Core/Spell: The giant CastSpell unclusterfucking (that's a word now) of this generation.
- CastSpell now always takes three arguments - target, spellId, and a struct containing extra arguments
- This struct (CastSpellExtraArgs, see SpellDefines.h) serves as a conglomerate of every previous combination of the 20 billion different CastSpell overloads, all merged into one
- It has some great utility constructors - check them out! All of these can be used to implicitly construct the ExtraArgs object.
- A gajillion refactors to make everything behave the way it always has
(cherry picked from commit d507a7e338)