Commit Graph

795 Commits

Author SHA1 Message Date
ccrs
fc6dc06513 Build: fix error
/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)
2021-12-13 00:42:18 +01:00
ccrs
cadbf42ea4 Misc: some corrections after recent merges
(cherry picked from commit 626a24822b)
2021-12-13 00:42:18 +01:00
jackpoz
841630fcc3 Core/Misc: Fix static analysis issues reported by Coverity Scan
(cherry picked from commit de88691e25)
2021-12-13 00:42:18 +01:00
Wyrserth
902a6f17dc Script/CoS: fix DB error and remove wrong on-death text for Chrono-Lord Epoch.
(cherry picked from commit 22b222b44e)
2021-12-13 00:42:17 +01:00
ccrs
eda6e5c316 Script/CoS: full instance rewrite (#23388)
(cherry picked from commit ca62280675)
2021-12-13 00:42:16 +01:00
Treeston
38d7c1530a Combat/Threat: Split ThreatManager::NotifyDisengaged off from ThreatManager::ClearAllThreat. NotifyDisengaged signifies intent to clear the engagement flag, and should only be called from AI. Fixes #23490.
(cherry picked from commit 1158f267df)
2021-12-12 02:09:15 +01:00
Wyrserth
9d865f7536 Core/Misc: don't allow players to use/activate/loot non-allowed gameobjects while under the effect of a damage immunity aura (#23319)
* 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)
2021-12-09 00:13:59 +01:00
Killyana
229d35adba DB/Creature: Dark Portal Dummy 1.30
(cherry picked from commit fdec429f18)
2021-12-08 20:31:38 +01:00
Giacomo Pozzoni
5f545f5402 3.3.5 gameobject summoner (#23289)
* 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)
2021-12-07 00:02:03 +01:00
Giacomo Pozzoni
46170fdf01 Scripts/Spells: Fix implementation of #22332 (#23228)
Change the way #22332 moved spell damage calculations from SpellEffectDMG to scripts, using OnEffectLaunchTarget and SetEffectValue instead

(cherry picked from commit 20772dbf5d)
2021-12-02 23:46:00 +01:00
jackpoz
43a41caafb Core/Misc: Fix GCC 8 warnings
(cherry picked from commit 1d04a3b216)
2021-11-24 23:40:15 +01:00
Trond B. Krokli
bc628572fe Scripts/Wailing Caverns: make Disciple of Naralex say Mutanus, not $n (#23122)
* 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)
2021-11-24 22:39:18 +01:00
Shauren
2be8a1f189 Core/Misc: PORT CURSED REFACTORS FROM e69570dd76
WHO ON EARTH THOUGHT IT WAS A GOOD IDEA TO ADD REFACTORS TO A CHERRY-PICK COMMIT???
2021-11-24 20:35:18 +01:00
Keader
5c48cac6f9 Scripts/Temple of Ahn Qiraj: Scripted doors of AQ40
Doors added in 1ba09572b5

(cherry picked from commit 06078e30c6)
2021-11-23 00:39:17 +01:00
Killyana
7fe844a1e8 Quest/Script: Kodo Roundup
Fix faction issue and handle the gossip correctly via the script

(cherry picked from commit 5e73647c84)
2021-11-18 22:58:52 +01:00
DanVS
3b1ed434ae Core/Scripts: Move some spells to scripts (#22332)
(cherry picked from commit 8051ff13df)
2021-11-18 22:41:57 +01:00
Aokromes
a560800f9d Script/Misc: Change some placeholders to proper texts
(cherry picked from commit 3ea3ed348a)
2021-11-15 17:51:05 +01:00
Shauren
f2456ff319 Scripts/Areatriggers: Fixed all areatrigger scripts triggering both on enter and exit instead of only on enter 2021-11-10 00:01:50 +01:00
Sarah Alexander
938c7e518c Scripts/TempleOfAhnQiraj: Despawn Skeram's images on death and fix an edge case where images would not spawn if he was casting during transition (#22474)
(cherry picked from commit 72f061f083)
2021-11-09 23:42:31 +01:00
Sarah Alexander
ed1bde7031 Scripts/TempleOfAhnQiraj: Implement Battleguard Sartura's skip-preven… (#22475)
* 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)
2021-11-09 23:42:31 +01:00
DanVS
28cb2af1c5 Core/Scripts: Unify Chrono Literals (#22420)
* Unify Chrono Literals

* Retire IN_MILLISECONDS

* Build fix

* Build fix (sequel)

* Retire urand()

* Edge cases

* Build

* Whitespaces

* More edge cases

* Additional cases

(cherry picked from commit 5b0f4009df)
2021-11-09 00:26:59 +01:00
Treeston
e4e8c1c59c Core/AI: Clean up charm AI handling, we now have two unique_ptr instead of a crapton of booleans
(cherry picked from commit 042f5515e4)
2021-10-22 23:47:51 +02:00
Treeston
5d48e8db7d Core/AI: Remove unnecessary parameter from DoZoneInCombat after eb1972f
(cherry picked from commit c00a2efb21)
2021-10-22 13:29:34 +02:00
ZenoX92
c16164f68d DB/Quest: The Missing Diplomat (Part 16)
Closes #22261

(cherry picked from commit cbacc72d93)
2021-10-21 00:05:14 +02:00
ZenoX92
20224aef17 DB/Quest: Cleansing Witch Hill
Closes #22262

(cherry picked from commit 25d7b7c819)
2021-10-20 00:30:28 +02:00
Shauren
cbf1f2883a Core/Spells: Reduce number of CastSpell overloads to 1 2021-10-03 19:58:03 +02:00
Meji
5c287929b2 Core/Gossip: Update GossipOptionIcon enum (#26906) 2021-10-03 16:24:07 +02:00
Shauren
3af9be830d Core/Spells: Removed CastSpellExtraArgs constructors accepting ObjectGuid, they would become ambiguous with future changes 2021-10-03 14:58:35 +02:00
ccrs
426f9f2f92 Core/Movement: MotionMaster reimplementation (#21888)
Internal structure and handling changes, nothing behavioural (or thats the intention at least).

(cherry picked from commit 982643cd96)
2021-09-28 00:15:13 +02:00
Treeston
f1ac141f25 Core/Unit: UNIT_FLAG renames
[UNIT_FLAG_PLAYER_CONTROLLED -> UNIT_FLAG_POSSESSED]
[UNIT_FLAG_PVP_ATTACKABLE -> UNIT_FLAG_PLAYER_CONTROLLED]
Signed off by: Shauren, Warlockbugs.

(cherry picked from commit 081eab3cf5)
2021-09-26 16:07:09 +02:00
Treeston
1493920495 Core/Movement: Replace old TargetedMovementGenerator into ChaseMovementGenerator and FollowMovementGenerator, full rewrite for both.
- 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)
2021-09-24 23:37:43 +02:00
Treeston
f69d12504c Core/Object: Bump hover delta handling on nearpoints downstack into GetNearPoint2D (from movement generators); functionality should be unchanged
(cherry picked from commit ebc96af6bb)
2021-09-23 22:28:06 +02:00
Treeston
bc89e1cdb0 Core/Position: Refactor GetAngle -> GetAbsoluteAngle because code clarity is good.
(cherry picked from commit 4692e10ca2)
2021-09-23 22:21:29 +02:00
Shauren
8a4e1119ac Core/Spells: Unify spell effect access api in both branches 2021-09-04 15:13:15 +02:00
ariel-
a1a00f823e Core/Entities: kill unused return value from Unit::HandleSpellClick
- 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)
2021-08-08 21:21:34 +02:00
Wyreth
8713a62328 Core/Entities: remove grid-wide visibility from setActive and implement another method for it (#20725)
(cherry picked from commit 56874b44f0)
2021-08-08 21:21:34 +02:00
Keader
cb8ea03175 Core/Scripts: Fixed some delayed enrage
Closes #15367

(cherry picked from commit 63c436f5fb)
2021-06-21 00:06:41 +02:00
Treeston
83c4aa88ec Scripts/TheBarrens: Fix "The Escape" (863) - I don't think this one ever worked, honestly.
(cherry picked from commit 0e401c7d96)
2021-06-20 21:42:35 +02:00
Keader
9b7f3bff9f Core/Scripts: Fixed tabs issues introduced in 5bef3e426a
(cherry picked from commit 31ad6358fb)
2021-06-19 23:33:24 +02:00
Keader
ad5b0fa9cd Core/Scripts: Fixed possible crashs related with JustDied
(cherry picked from commit 5bef3e426a)
2021-06-19 23:33:24 +02:00
Killyana
2d43b8aaa3 Quest/script: Freedom to Ruul
Follows 4dc91429dd

(cherry picked from commit 52fc5a572b)
2021-06-19 01:35:38 +02:00
Killyana
30feaa06e8 DB/Quest: Freedom to Ruul
Closes #7262

(cherry picked from commit 4dc91429dd)
2021-06-19 00:14:06 +02:00
ariel-
c77925da4a Core/Entities: killed Creature::SetInCombatWithZone and replaced with AI version
Closes #12108 (again)

(cherry picked from commit 7c9722a4ae)
2021-06-16 21:03:06 +02:00
ariel-
62c571076e Core/Scripts: added nullptr checks to DamageTaken hooks
Since cb9e72e521 attacker may not be in world when hook is called

(cherry picked from commit 0db5c2df3f)
2021-06-16 12:02:14 +02:00
ariel-
5fbddef85f Core/Spell: SpellValueOverrides encapsulation
- No sense to let scripts use SpellValueOverrides, we already have modifiers in CastSpellExtraArgs struct

(cherry picked from commit 3b01cccd7e)
2021-06-14 00:19:50 +02:00
ariel-
fccf1a8c62 Core/Auras: removed caster dependency from core
- 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)
2021-06-13 00:59:13 +02:00
Shauren
0b2087ae41 Core/Criteria: Add all values of CriteriaStartEvent 2021-06-01 21:16:41 +02:00
Treeston
34c7810fe5 Core: Combat/threat system rewrite (PR #19930)
- 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)
2021-05-16 21:56:01 +02:00
Treeston
bce43de7f3 Core/AI: Some more refactoring prep for #19930. CreatureAI::EnterCombat is now called CreatureAI::JustEngagedWith. There's also two new methods on UnitAI, though they're never invoked right now.
(cherry picked from commit 6113b9dec2)
2021-04-16 20:22:13 +02:00
Treeston
9b141207d1 [3.3.5] CastSpell unclusterfucking (that's a word now) (#21123)
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)
2021-04-16 15:22:42 +02:00