Commit Graph

2133 Commits

Author SHA1 Message Date
Gustavo
10c915dd34 Core/Units: Only update height in SetHover if unit is bellow HoverHeight (#23061)
(cherry picked from commit 2dfea54533)
2021-11-23 23:18:58 +01:00
jackpoz
ef04a26bf4 Core/Pet: Add assert
Add additional assert to check if it's possible for a Pet not to have an active AI when the Player owner kills an enemy.
Ref #23036

(cherry picked from commit 43dec9e4d0)
2021-11-23 23:10:45 +01:00
Aokromes
2682bf0fca Core/Misc: Add categories to 3 logs
(cherry picked from commit 2d22c027fe)
2021-11-23 22:29:21 +01:00
jackpoz
e475cac631 Core/Spells: Fix assert triggered
Fix assert triggered when a spell would trigger another spell in OnEffectHitTarget that would kill the aura owner, then processing the main spell effects. The triggered spell can kill the aura owner, changing its death state to CORPSE and removing auras created.

Fix #21856
Ref 518e6299ca

(cherry picked from commit 46c7446bd4)
2021-11-23 20:47:31 +01:00
jackpoz
36468203dd Core/Spells: Fix assert triggered
Fix assert triggered when a spell would trigger another spell in OnEffectHitTarget that would kill the target, then processing the main spell effects. The triggered spell can kill the target, changing its death state to CORPSE and removing auras created.
Fix #22306

(cherry picked from commit 518e6299ca)
2021-11-21 21:09:36 +01:00
ccrs
a8ec1ba9bc Core/Unit: rename & cleanup GetCreatePowers
it hurted my eyes too much

(cherry picked from commit 954fd2639a)
2021-11-21 19:28:17 +01:00
Shauren
de8e1a4820 Core/Units: Fixed crash with charm/possess
Closes #27168
Closes #27247
2021-11-21 18:49:55 +01:00
Giacomo Pozzoni
ed88435494 3.3.5 UnitAI (#22911)
* Core/AI: Revamp how UnitAI changes are applied

Revamp how UnitAI changes are applied by storing current AI in a variable and all previous AIs plus current in a stack.
The callers can push/pop AIs on the stack that will take effect only in next Unit::Update() call.
The current AI will be a valid object for the whole duration of Unit::Update() and until next Unit::Update() call.

* Core/AI: Apply new AI change code

* Core/AI: Fix build

* Core/AI: Fix crash on Creature::AIM_Create()

* Core/AI: Fix crash

* Core/AI: Restore ASSERT

* Core/AI: Fix UnitAI not being popped properly when restoring a charmed AI

(cherry picked from commit 8f9654d817)
2021-11-21 15:36:57 +01:00
Meji
8614690e27 Core/BattlePets: Implemented battle pet name query packet (#27294)
Co-authored-by: Shauren <shauren.trinity@gmail.com>
2021-11-20 19:06:14 +01:00
Seyden
e4630c5354 Core/Movement: Temporarily disable "no state change" checks in Unit::SetFeatherFall and Unit::SetCanTurnWhileFalling
Co-authored-by: Shauren <shauren.trinity@gmail.com>
2021-11-20 15:51:02 +01:00
acidmanifesto
d4d47b52e3 Core/Misc: Corrected function name in log message (#27288) 2021-11-19 20:07:07 +01:00
Shauren
ba2586c92f Core/Spells: Fixed unapplying rockbiter weapon
Closes #22528

(cherry picked from commit f93a23adc5)
2021-11-18 22:41:57 +01:00
Shauren
f3c1b27c26 Core/Units: Fixed crash happening when charm was removed by its own charmed AI during update
(cherry picked from commit c7445669e8)
2021-11-16 20:40:05 +01:00
Giacomo Pozzoni
d5c41d23e6 Core/Misc: Log more information in asserts (#22783)
* Core/Misc: Log more information in asserts

Add a new function GetDebugInfos() to types that could trigger an ASSERT() to easily include more useful information in crashlogs.
This is an initial commit that requires many more commits to implement the new GetDebugInfos() function in all required types.
If the type doesn't have the function, the global default one is picked which doesn't log anything.

* Core/Misc: Fix dynamic build

Add missing attribute for dynamic build

* Core/Misc: Fix gcc/clang build

* Core/Misc: Rename GetDebugInfos() to GetDebugInfo()

* Core/Misc: Fix FormatAssertionMessage() adding an extra '\0'

* Core/Misc: Add GetDebugInfo support to Unit

* Core/Misc: Add GetDebugInfo support to Creature

* Core/Misc: Add more info to GetDebugInfo for Creature

* Core/Misc: Add GetDebugInfo support to GameObject

* Core/Misc: Add GetDebugInfo support to Player

* Core/Misc: Add more GetDebugInfo info

* Core/Misc: Add GetDebugInfo support to Item

* Core/Misc: Add GetDebugInfo support to Bag

* Core/Misc: Add GetDebugInfo support to Transport

* Core/Misc: Add GetDebugInfo support to TempSummon, Minion, Guardian, Pet

* Core/Misc: Add GetDebugInfo support to Map, InstanceMap

* Core/Misc: Add GetDebugInfo support to Spell

* Core/Misc: Fix build warning

* Core/Misc: Add GetDebugInfo support to Aura

* Core/Misc: Add GetDebugInfo support to UnitAI

(cherry picked from commit 9a924fb9d5)
2021-11-16 20:36:58 +01:00
Treeston
1015f30704 Core/AI: Add some checks to catch if the AI changes mid-update for players. Tag #22731 #22629.
(cherry picked from commit d8fee3c46b)
2021-11-15 22:20:17 +01:00
PolarCookie
1232f1d06e Core/Creatures: Changed creatures to become tagged by player doing any action that causes creature aggro (apart from distance) (#22759)
* This was introduced in patch 3.0.8

(cherry picked from commit f2df802c50)
2021-11-15 22:16:04 +01:00
Treeston
7c062db94b Core/Player: Clean up duel related code. Fix a check for abusive client behavior, sanitize pointer usage, code style. Closes #22374.
(cherry picked from commit 003cc56d70)
2021-11-08 23:49:15 +01:00
Seyden
107f5ce0a4 Core/Auras: Implement SpellAuraInterruptFlags2::Ground and SpellAuraInterruptFlags2::Swimming (#27193) 2021-11-08 10:16:55 +01:00
Shauren
732a8ee261 Core/Movement: Corrected values sent in knockback packet when speedXY < 0
Co-authored-by: Seyden <saiifii@live.de>
2021-11-06 23:17:43 +01:00
ModoX
3010f2ca5d Core/Auras: Mount speed auras are now properly selected when teleporting (dungeon enter/exit, regular teleport, ...) (#27159)
* Update mount speed when learning new riding skill level
* Update mount speed on SPELL_AURA_MOUNT_RESTRICTIONS

Co-authored-by: Ovah <dreadkiller@gmx.de>
Co-authored-by: Shauren <shauren.trinity@gmail.com>
2021-11-06 22:02:35 +01:00
Treeston
c8b11f7e3d Core/Unit: Successfully (?) prevented the zombie apocalypse. Corpses can no longer gain HP. Closes #22409.
(cherry picked from commit f50a8e5926)
2021-10-27 00:08:14 +02:00
Treeston
00b9c23e28 Core/Entities: Fixed an issue where creatures would not properly assist formation members in certain scenarios. Tagging #21967.
(cherry picked from commit a001bc63b1)
2021-10-23 14:45:40 +02:00
Treeston
34f9666f20 Core/Unit: Some charm fixes:
* Properly restore react state after possession expires. Closes #20769.
* Possessed creatures now don't override player control with random/waypoint motion
* SmartAI creatures now properly re-aggress charmer after charm expires

(cherry picked from commit da21ca80fc)
2021-10-23 14:44:05 +02:00
Treeston
05119fd909 Core/Unit: Random code style/naming adjustments
(cherry picked from commit 710488ea20)
2021-10-23 02:14:04 +02:00
Treeston
392a644dc8 Core/Threat: Threat system adjustments:
* Online states are now re-evaluated before victim update instead of continuously. Closes #22226. Tagging #21501.
* Victim update now happens every 1s as opposed to every server tick unless current target goes away.
* Suppressed threat is no longer re-established until the victim gains additional threat (by hitting the target, for instance).
* Assistance threat is now split between non-controlled units threatened by target, as opposed to all units threatened by target.

(cherry picked from commit 5cea572a9a)
2021-10-23 02:14:04 +02:00
Treeston
395f58d651 Core/Unit: Inline some unnecessary helpers.
(cherry picked from commit ce06767ef5)
2021-10-23 02:14:04 +02:00
Treeston
a5989dcee9 Core/Unit: Store charmer and charmed pointers on Unit directly, no more map lookups for Unit::GetCharmer and Unit::GetCharmed
(cherry picked from commit d4ef2529e9)
2021-10-23 00:11:44 +02:00
Treeston
070bbb6707 Core/Unit: Acquire GetControllingPlayer. Use to fix duel bugs.
(cherry picked from commit d2d9f470c3)
2021-10-22 23:51:36 +02: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
Seyden
8f097e4425 Core/Scripts: Implement script name reloading
* Authored by Seyden
* Co-authored by Naios
* We thank Shauren for your helpful feedback
2021-10-22 12:52:37 +02:00
Shauren
3e81db7b93 Core/Auras: Implemented SPELL_AURA_CAST_WHILE_WALKING_BY_SPELL_LABEL and SPELL_AURA_CAST_WHILE_WALKING_ALL 2021-10-16 18:44:59 +02:00
Meji
11cc5c0d3b Core/BattlePets: Misc fixes (#27057)
* Rename WorldPackets::BattlePet::BattlePet::CollarID to WorldPackets::BattlePet::BattlePet::DisplayID
* Use the DisplayID field to store the model of the battle pet. If the species has BattlePetSpeciesFlags::RandomDisplay, nothing is stored. Otherwise a random model is chosen from those available
* Stored DisplayID in ITEM_MODIFIER_BATTLE_PET_DISPLAY_ID when caging the battle pet (previously the CreatureID was being stored)
* Modified SendPlaySpellVisual function to allow sending Target and TargetPosition at the same time
* Added SpellVisual when uncaging
2021-10-16 12:15:03 +02:00
ModoX
4a6308f5f0 Core/Units: Added possibility to send emotes to single players (#27054) 2021-10-13 15:01:10 +02:00
Treeston
2642fb1a48 Core/AI: Add a new LeavingWorld AI hook
(cherry picked from commit c0a7274ff1)
2021-10-07 21:20:40 +02:00
Meji
0cfd14d2a0 Core/BattlePets: Misc fixes (#26990)
* Define BattlePetBreedQuality enum class.
* Check the quality of the battle pet species in battle_pet_quality table to avoid invalid values.
* Set CurrentBattlePetBreedQuality and WildBattlePetLevel update fields with the data of the summoned battle pet.
* Added function to calculate the WildBattlePetLevel of wild battle pets according to their spawn zone.
2021-10-03 21:20:45 +02:00
Shauren
555b2d40ec Core/Spells: Send OriginalCastId in SMSG_SPELL_START and SMSG_SPELL_GO for triggered spells in 'game' project 2021-10-03 16:36:39 +02:00
ModoX
a0c4a3071c Core/Auras: Implemented new aura type 487 (SPELL_AURA_COSMETIC_MOUNTED) (#26988) 2021-10-02 21:59:22 +02:00
Shauren
2d7af28e9f Core/Transports: Store information about continent transports 2021-10-02 19:59:56 +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
ccrs
ab740026b3 Core/Movement: crashfix workaround
untested
ref #18471

(cherry picked from commit 76667e45a9)
2021-09-26 16:16:16 +02:00
Treeston
c926e2fc94 1b7ec4b follow-up
(cherry picked from commit 7fe59c95d8)
2021-09-26 16:11:59 +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
ccrs
0b6049fe0b Core/Movement: use helpers for validation
(cherry picked from commit 7118806231)
2021-09-26 14:21:14 +02:00
ccrs
d59a6af9c6 Core/Movement: move MoveSplineInit (#21857)
The number of edge cases in which weirdness is seen on "effect movements" will be kinda reduced, plus consistency, plus movementInform on custom movement spline initalizations.

(cherry picked from commit 2a45418032)
2021-09-26 14:19:36 +02:00
ccrs
4793b073ee Core/Misc: movement header cleanup
(cherry picked from commit f9914caefc)
2021-09-26 01:22:17 +02:00
Treeston
3d9d6fbcb8 Core/Movement: Fix a potential crash on newly created pets. Closes #21791.
(cherry picked from commit 74defba5a7)
2021-09-24 23:43:30 +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
ariel-
3ea88f814a Core/Spells: all bleed effects should ignore armor
Closes #21759

(cherry picked from commit 5dec0e491b)
2021-09-23 23:37:11 +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
Meji
0a83f74876 Core/Achievements: Update CriteriaType enum (#26856) 2021-09-08 22:07:01 +02:00