Commit Graph

1538 Commits

Author SHA1 Message Date
Treeston
dbe3bbefe7 Core/Entities: Kick engagement logic upstairs to Unit (from ThreatManager), since all Units with AI need it (not just those with threat list). Fixes #17981. 2019-06-23 00:32:13 +02:00
jackpoz
c90f789eac Core/Unit: Ignore On Transport spline movements if the Unit isn't on a transport anymore
On Transport splines use coordinates relative to the transport but if the transport is not found anymore than there is no way to get the absolute coordinates, leading to relative coordinates being used as absolute instead. The result is a Unit being set at position (0, 0, 0) or close by.
2019-06-15 20:49:34 +02:00
ForesterDev
865ab86173 Core/Entities: fix excessive damage of exotic pets and some creatures (#23403)
* Core/Conditions: implement CONDITION_GAMEMASTER

* Core/Entities: fix excessive exotic pet and some creatures damage
2019-06-15 15:09:52 +02:00
Wyrserth
88c6c61b95 Core/Script: add script hook to allow overriding of a vehicle passenger's exit position (#23322)
* Core/Script: add script hook to allow overriding of a vehicle passenger's exit position.

* Allow to change orientation, and fix nopch.

* Keep original orientation, thanks jackpoz!

* Update Unit.cpp

Code cleanup

* Update Unit.cpp
2019-05-30 17:35:18 +02:00
Giacomo Pozzoni
797fba98e9 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
2019-05-23 21:08:29 +02:00
jackpoz
a0bd68cf46 Core/Misc: Fix static analysis issues reported by Coverity 2019-05-18 16:12:23 +02:00
Killyana
fd166025c8 Remove Deprecated code 2019-05-04 16:11:50 +02:00
ccrs
aee26eb467 Core/Misc: standarize a couple logs 2019-04-28 19:41:30 +02:00
jackpoz
f45ebe71b0 Core/Misc: Fix *nix build 2019-04-28 18:53:01 +02:00
jackpoz
70fcdc687d Core/Pet: Change assert to error log
Change assert added in 43dec9e4d0 to error log since charmed creatures lose their AI until next map update
2019-04-28 18:47:19 +02:00
jackpoz
f26f716714 Core/Commands: Fix .cheat god command letting you die
Fix .cheat god command still letting you die with Area Aura like Slime near Thaddius, broken since 777b287dff
2019-04-27 14:40:28 +02:00
Killyana
c52eb49f71 Core: Remove wrong emotes played in combat
Ref #23152
2019-04-04 15:36:29 +02:00
jackpoz
1d04a3b216 Core/Misc: Fix GCC 8 warnings 2019-03-31 17:34:28 +02:00
Shauren
9d34739d69 Core/PacketIO: Fixed wrong opcode being sent for stunned creatures 2019-03-08 19:22:34 +01:00
PolarCookie
ec3cb05d7f Core/Spell: SpellAura Redux (#22794)
* typo and correction

* spell aura no longer shared between targets

_spellAura isolated

* SPELL_AURA_CONTROL_VEHICLE is not strictly single target spell

Steam Tank Control and Wyrmrest Commander

units can reseat themselves again

* Rename 9999_99_99_99_world.sql to 2019_03_08_00_world.sql
2019-03-08 08:34:16 +01:00
Gustavo
2dfea54533 Core/Units: Only update height in SetHover if unit is bellow HoverHeight (#23061) 2019-02-23 11:42:20 +01:00
jackpoz
43dec9e4d0 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
2019-02-16 19:06:56 +01:00
Shauren
8d57b32938 Core/Units: Prevent taking melee damage while dead and removed incorrect extra DealDamage call (including script hooks) for autoattacks done with a weapon that has only one damage type
Closes #23033
2019-02-16 18:58:55 +01:00
Aokromes
2d22c027fe Core/Misc: Add categories to 3 logs 2019-02-08 10:58:33 +01:00
jackpoz
46c7446bd4 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
2019-02-02 21:00:28 +01:00
jackpoz
518e6299ca 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
2019-01-19 17:41:03 +01:00
ccrs
954fd2639a Core/Unit: rename & cleanup GetCreatePowers
it hurted my eyes too much
2019-01-14 07:07:06 +01:00
Giacomo Pozzoni
8f9654d817 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
2019-01-13 20:25:02 +01:00
Shauren
f93a23adc5 Core/Spells: Fixed unapplying rockbiter weapon
Closes #22528
2019-01-05 13:04:21 +01:00
Treeston
fcfcb0eb6f Happy New Year, folks. It's 2019! 2019-01-01 15:45:25 +01:00
Ghaster
bf3ab6d9c4 Core/Creatures: Port trainer changes from master
Closes #20493
2018-12-30 19:51:36 +01:00
Shauren
c7445669e8 Core/Units: Fixed crash happening when charm was removed by its own charmed AI during update 2018-12-17 15:49:32 +01:00
Giacomo Pozzoni
9a924fb9d5 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
2018-12-14 22:01:16 +01:00
Shauren
be47254a4f Core/Auras: Fixed saving auras with same spell id but different item source 2018-11-09 20:51:20 +01:00
Treeston
d8fee3c46b Core/AI: Add some checks to catch if the AI changes mid-update for players. Tag #22731 #22629. 2018-11-05 20:28:42 +01:00
PolarCookie
f2df802c50 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
2018-11-04 21:59:03 +01:00
Treeston
5b99ce2f83 Core/Spell: Fixed an issue with Premeditation removing itself 2018-10-22 19:50:40 +02:00
Treeston
003cc56d70 Core/Player: Clean up duel related code. Fix a check for abusive client behavior, sanitize pointer usage, code style. Closes #22374. 2018-09-17 12:40:42 +02:00
Treeston
f50a8e5926 Core/Unit: Successfully (?) prevented the zombie apocalypse. Corpses can no longer gain HP. Closes #22409. 2018-09-12 14:28:49 +02:00
Shauren
93e87010ed Core/PacketIO: Fixed SMSG_SPELLNONMELEEDAMAGELOG structure 2018-09-09 16:08:49 +02:00
Treeston
a001bc63b1 Core/Entities: Fixed an issue where creatures would not properly assist formation members in certain scenarios. Tagging #21967. 2018-08-28 16:16:37 +02:00
Treeston
da21ca80fc 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
2018-08-28 12:53:13 +02:00
Treeston
710488ea20 Core/Unit: Random code style/naming adjustments 2018-08-27 19:37:29 +02:00
Treeston
5cea572a9a 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.
2018-08-27 19:08:17 +02:00
Treeston
ce06767ef5 Core/Unit: Inline some unnecessary helpers. 2018-08-27 13:37:50 +02:00
Treeston
d4ef2529e9 Core/Unit: Store charmer and charmed pointers on Unit directly, no more map lookups for Unit::GetCharmer and Unit::GetCharmed 2018-08-25 00:44:33 +02:00
Treeston
d2d9f470c3 Core/Unit: Acquire GetControllingPlayer. Use to fix duel bugs. 2018-08-23 23:46:52 +02:00
Treeston
abd3d55668 wops (042f551 follow-up) 2018-08-23 16:54:02 +02:00
Treeston
042f5515e4 Core/AI: Clean up charm AI handling, we now have two unique_ptr instead of a crapton of booleans 2018-08-23 16:34:42 +02:00
Treeston
c0a7274ff1 Core/AI: Add a new LeavingWorld AI hook 2018-06-26 12:15:57 +02:00
Ovah
0dcc318e37 Core/Player: fix periodic eating and drinking emotes (#21280)
Closes: #12567
2018-06-22 20:23:46 -03:00
Killyana
f6333a1f74 Npc/Script: Hide attack button from pet bar for Acherus eye 2018-06-11 20:32:40 +02:00
ccrs
982643cd96 Core/Movement: MotionMaster reimplementation (#21888)
Internal structure and handling changes, nothing behavioural (or thats the intention at least).
2018-06-03 10:06:57 -07:00
ccrs
76667e45a9 Core/Movement: crashfix workaround
untested
ref #18471
2018-05-05 18:53:59 +02:00
Treeston
7fe59c95d8 1b7ec4b follow-up 2018-05-04 13:46:21 +02:00