Commit Graph

36335 Commits

Author SHA1 Message Date
Ovahlord
bf35a3e2e7 Scripts/World: drop unnecessary GameTime shenanigans from training dummy's script and correct scripting model for current combat / threading model. The dummy will no longer get stuck in a 'engaged' state.
* additionally the combat times will now be updated in realtime instead of a 500ms interval which will lead to pin-point accurate results.
2020-07-23 14:37:59 +02:00
Ovahlord
b60da9ba4c Core/AI: fixed totem target selection 2020-07-23 14:05:56 +02:00
Ovahlord
e677461c5d Core/Combat: more cleanups and converted threat packets back to packet class 2020-07-23 13:33:46 +02:00
Ovahlord
1ab7a9328f Core/Combat: reduce differences between 4.x and 335 2020-07-22 21:37:02 +02:00
Ovahlord
ea8d7093e9 Scripts: fixed build 2020-07-22 19:39:43 +02:00
Kelno
507868a9e1 Fixed PvP Combat timer never getting refreshed (#24058)
* Fixed PvP Combat timer never gets refreshed while meleeing

* Apply Treeston feedback

Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com>
2020-07-22 19:24:19 +02:00
Treeston
eb8c652715 Core/Spell: Reset threat to zero when the hunter use Feign Death
Closes #23874
2020-07-22 19:24:01 +02:00
Treeston
5823afac9f Scripts/ICC: Professor Putricide no longer tries to add threat on units it cannot add threat on because of immunity flags. Instead, its AI manually controls the engagement state. Should close #23727. 2020-07-22 19:22:54 +02:00
Treeston
f41cfa9185 Core/SmartAI: SmartAI creatures no longer process health-based hooks after death. 2020-07-22 19:21:21 +02:00
Treeston
d2df9bdf15 Scripts/Hyjal: Seriously, who calls EnterEvadeMode in a AI constructor???? 2020-07-22 19:21:03 +02:00
Ovahlord
2c88471fe3 Scripts/Misc: more followups 2020-07-22 19:20:54 +02:00
Treeston
1d02149384 Core/Combat: Properly unset engagement flag on death.
# Conflicts:
#	src/server/game/AI/CoreAI/GuardAI.cpp
#	src/server/game/Entities/Creature/Creature.cpp
2020-07-22 19:16:35 +02:00
Treeston
58eab458e2 Core/AI: No longer do strange things when told to enter evade mode while there's no need to do so, typically by terrible legacy code.
# Conflicts:
#	src/common/Utilities/FuzzyFind.h
2020-07-22 19:15:39 +02:00
Treeston
984abde440 Core/Threat: Properly update offline states even if all threat references are offline. Closes #23639. 2020-07-22 19:15:00 +02:00
Treeston
c7c4f267c4 Core/AI: Finally move the "is creature engaged" flag to be a property of the creature AI, where it honestly always belonged. Fixes #17981 and #23602 for real this time. 2020-07-22 19:14:52 +02:00
Ovahlord
82d9fba979 Scripts/Naxxramas: ported several updates for Thaddius 2020-07-22 18:46:55 +02:00
Treeston
49ca6b88b0 AI/TotemAI: Tell Shaman Totems to stay put and stop moving. Closes #23498. 2020-07-22 18:40:07 +02:00
Treeston
db3282e65a 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.
# Conflicts:
#	src/server/game/AI/CreatureAI.cpp
#	src/server/game/AI/ScriptedAI/ScriptedFollowerAI.cpp
#	src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp
#	src/server/scripts/Kalimdor/zone_desolace.cpp
#	src/server/scripts/Northrend/zone_borean_tundra.cpp
2020-07-22 18:38:35 +02:00
Ovahlord
de6a514ec5 Core/Misc: fixed build 2020-07-22 18:35:41 +02:00
Ovahlord
47ef91c23d Core/Misc: more fixups 2020-07-22 18:10:50 +02:00
Treeston
e54f8ca4f7 Core/Misc: Rename Unit::AttackedTarget to Unit::AtTargetAttacked to match naming scheme for these notifiers
# Conflicts:
#	src/server/game/Entities/Unit/Unit.cpp
#	src/server/game/Spells/Spell.cpp
2020-07-22 18:07:24 +02:00
Ovahlord
e07f4f9dc2 Core/Units: dbe3bbefe7 followup 2020-07-22 18:06:24 +02:00
Treeston
a16d691dd8 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.
# Conflicts:
#	src/server/game/Combat/ThreatManager.cpp
#	src/server/game/Entities/Creature/Creature.cpp
#	src/server/game/Entities/Unit/Unit.cpp
#	src/server/game/Entities/Unit/Unit.h
2020-07-22 18:05:06 +02:00
Ovahlord
6350d94f40 Core: more build fixes 2020-07-22 18:03:31 +02:00
Giacomo Pozzoni
509499efbe 3.3.5 threat assert (#23034)
* Core/Creature: Change assert about Threat to log
2020-07-22 18:00:15 +02:00
jackpoz
bad4b80374 Core/Misc: Fix issues reported by dynamic analysis
Closes #23021
2020-07-22 17:59:42 +02:00
Treeston
b6a9647189 Core/Threat: Properly sequence checking offline state _after_ adding the reference to the threat list. This ensures IsEngagedWith reports consistent values for downstack calls in Creature. Closes #22406. 2020-07-22 17:55:32 +02:00
Treeston
8dedfaea4b Core/Creature: Get rid of a few Creature::getAttackerForHelper misuses. That's not what the function does, folks. 2020-07-22 17:55:23 +02:00
Treeston
2eacac1b4d Core/Threat: Suppressed threat is now re-evaluated on taunt state update, and taunting units can no longer be suppressed. 2020-07-22 17:55:03 +02:00
Ovahlord
471efa832c Core/Units: build fixes 2020-07-22 17:54:53 +02:00
Treeston
2f075b11e9 Core/Threat: Fear no longer suppresses threat. All confuse effects now suppress threat, even ones that wouldn't break on damage. 2020-07-22 17:51:44 +02:00
Treeston
b634358967 Core/Entities: Fixed an issue where creatures would not properly assist formation members in certain scenarios. Tagging #21967.
# Conflicts:
#	src/server/game/Combat/ThreatManager.cpp
2020-07-22 17:45:10 +02:00
Treeston
fd599605da Core/Threat: Only send SMSG_THREAT_UPDATE if the threat list actually changed 2020-07-22 17:44:33 +02:00
Treeston
990127590a Core/Threat: Further tweak to assist threat, all CC now prevents assist threat splitting (not just damage-breakable CC) 2020-07-22 17:44:25 +02:00
Treeston
7df7dcca7d 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.

# Conflicts:
#	src/server/game/Combat/ThreatManager.cpp
2020-07-22 17:44:05 +02:00
Treeston
1020d1995f Core/Creature: Fall back to combat list if calling for help without threat list 2020-07-22 17:42:38 +02:00
Ovahlord
5dcc8b1df6 DB: 5706d49e49 followup 2020-07-22 17:42:22 +02:00
Treeston
6867b3b201 Scripts/SmartScripts: _SET_IN_COMBAT_WITH_ZONE and _CALL_FOR_HELP no longer use a target. Because that feature made no sense and was unused.
# Conflicts:
#	sql/old/4.3.4/world/27_2018_03_16/2018_08_22_11_world.sql
#	src/server/game/AI/SmartScripts/SmartScript.cpp
2020-07-22 17:41:25 +02:00
Treeston
6f6b6534bf Core/Creature: Some adjustments to Creature::CallForHelp. Now works even if the Creature hasn't selected a victim yet. 2020-07-22 17:38:22 +02:00
Treeston
607069de36 Core/AI: Remove unnecessary parameter from DoZoneInCombat after eb1972f 2020-07-22 17:38:11 +02:00
Treeston
1d16b98d52 Core/AI: Some cleanup to DoZoneInCombat and Malygos' AI that I found while working out #22226.
# Conflicts:
#	src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
2020-07-22 17:37:49 +02:00
Treeston
d910f8b3cf Scripts/Pets: Some cleanup for Snake Trap. Tagging #21847, though this doesn't address it (yet). 2020-07-22 17:36:52 +02:00
Treeston
66e5c57765 Core/PassiveAI: Fix an incorrect check that was inducing evade spam with critters. Closes #19998, for real this time. 2020-07-22 17:36:01 +02:00
jackpoz
84ee3701d5 Core/Thread: Fix crash added in fd33b1cd02
Fix crash caused by dereferencing uninitialized field.
2020-07-22 17:34:54 +02:00
Ovahlord
03b1c4def6 DB: 1d27f83bda followup 2020-07-22 17:34:44 +02:00
Treeston
31f3cb203b Core/Threat: My dictionary informs me that "fixtate" is not, in fact, a word. Corrected to "fixate".
fd33b1c follow-up
2020-07-22 17:33:27 +02:00
Treeston
93864a29c0 Core/Threat: Re-add fixtate system. I am being told Netherspite needs it. 2020-07-22 17:33:17 +02:00
Treeston
b4d5f46ea4 1b7ec4b follow-up 2020-07-22 17:33:08 +02:00
Treeston
de81a77ef8 Core/Threat: Fix taunt behavior in some edge cases 2020-07-22 17:33:00 +02:00
Treeston
d9e6e82c7d 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.

# Conflicts:
#	src/server/game/Entities/Object/Object.cpp
#	src/server/game/Entities/Pet/Pet.cpp
#	src/server/game/Entities/Unit/UnitDefines.h
#	src/server/game/Spells/Auras/SpellAuraEffects.cpp
#	src/server/game/Spells/Spell.cpp
2020-07-22 17:32:51 +02:00