Commit Graph

205 Commits

Author SHA1 Message Date
Treeston
809c38994a Core/Threat: Custom ThreatListIterator that transparently iterates over the backing map (instead of using heap iterators) when working with the unsorted threat list. This greatly reduces the range of actions that can cause iterator invalidation.
Also some minor adjustments to .debug threat, which no longer hides certain invalid states from view.

(cherry picked from commit 4cb13af4fa)
2021-06-19 23:33:24 +02:00
Treeston
7db3f7ca96 DB/SpawnGroup: Instance spawn group data for Tempest Keep: The Eye and Hellfire Citadel: Ramparts.
(also some minor adjustments to command output for convenience)

(cherry picked from commit 51e28ae76a)
2021-06-16 23:01:48 +02:00
Treeston
7c0ac5b959 Misc: assert -> ASSERT
(cherry picked from commit 6c3c200cc5)
2021-06-16 22:51:16 +02:00
Treeston
386ec58233 Scripts/Commands: new command '.debug instancespawn'
(cherry picked from commit 6ce078d8e8)
2021-06-16 22:50:04 +02:00
Treeston
e090c9a00e Scripts/Commands: New command: .debug threatinfo
(cherry picked from commit f45c211987)
2021-05-16 21:57:35 +02:00
Treeston
5aee452943 Core/Misc: A variety of clean-up changes, mostly following up on 532ab1c to fix legacy bugs exposed by it:
- Triggers can no longer have a threat list (this may expose some ugliness in old legacy scripts)
- Threat entries are forced to OFFLINE if the AI refuses to attack the target
- Clean up passive creature evade behavior to be more consistent
- Fix a months old issue in spawn group management that would cause "Inactive" to incorrectly show in .list respawns for system groups outside of map 0
- Valithria script cleanups, remove old hacks and make it work with the new system. Closes #21174.
- Some strings cleanup

(cherry picked from commit 9f9507e6a1)
2021-05-16 21:56:05 +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
Shauren
d94f0d23b3 Core/Commands: Add optional broadcast text id argument to .debug play sound command 2020-12-30 23:01:37 +01:00
Shauren
b231903932 Core/Misc: Port all the refactors sneaked in master to 3.3.5 include cleanup port 2020-09-04 13:38:24 +02:00
Shauren
1c52d5fff7 Core/Misc: Replace NULL with nullptr 2020-08-14 17:06:03 +02:00
Treeston
8be23fcbbd [3.3.5] Combat/Threat rewrite - prep & refactor (#19966)
* Combat/Threat rewrite (PR #19930) prep work. Mostly refactors, and a compatibility layer on ThreatManager/HostileReference that allows scripts to be changed already.

(cherry picked from commit e2a1ccd118)
2020-08-13 22:46:44 +02:00
treeston
118e53f1b8 Combat/threat rewrite prep - merge RBAC/DB changes.
(cherry picked from commit e35092c6a1)
2020-07-16 22:06:56 +02:00
treeston
f8fa4d734c Correct some missing auth DB changes from b59ca1c.
(cherry picked from commit 41eddd59aa)
2020-07-16 22:00:30 +02:00
treeston
29db04c3c9 Rename .debug uws to .debug worldstate (clarity change).
(cherry picked from commit b59ca1cc81)
2020-07-16 22:00:29 +02:00
treeston
5392212799 So, I came in trying to fix gameobject LoS. So I restructured some stuff.
Then it turned out that gameobject LoS is already fixed. So all this does, really, is restructure some stuff.
And remove the hack from Sapphiron because I could.

(cherry picked from commit d57307f63d)
2020-07-16 22:00:28 +02:00
treeston
4179036bbe Some improvements to .debug raidreset command. Now supports heroic difficulty 5-man dungeons and outputs sensible text, as opposed to silently doing (or not doing) stuff.
(cherry picked from commit a3b198c7e1)
2020-07-16 21:47:15 +02:00
ForesterDev
7211c6e51d Scripts/Command: implement .debug play music command
Closes #19809

(cherry picked from commit dd4ff1fe54)
2020-06-14 23:49:04 +02:00
Chaouki Dhib
5d076cfe29 Core/Spells: fix wrong distance calculations in AoE spells [Needs testing] (#16290)
Core/Spells: Fix wrong distance calculations in AoE spells.
Pull request #16290 by chaodhib.
God bless, finally.

(cherry picked from commit a1f2f30c14)
2020-04-24 17:18:49 +02:00
Shauren
70188c4fe1 nopch fix 2 2020-04-03 18:12:07 +02:00
Shauren
90628b7d29 Core/DataStores: Updated db2 structures to 8.3.0 2020-02-17 23:58:47 +01:00
Aokromes
b0bf1275ee New Year 2020-01-02 06:44:10 +01:00
Shauren
3ac790287a Core/DataStores: Updated db2 structures to 8.2.5 2019-10-27 00:12:45 +02:00
Traesh
548d79bb06 Core/DataStores: Implemented WorldStateExpression 2019-08-24 17:13:17 +02:00
Shauren
455959c606 Core/PacketIO: Rewrite updatefield handling 2019-06-08 17:06:57 +02:00
vincent-michael
5620eb9463 Update copyright note for 2019
auto happy = new year(2019);
2019-01-01 10:14:33 +01:00
Shauren
a6fb448b44 Core/DataStores: Updated hotfix database structure
* Updated handling for removed db2s
2018-09-26 23:08:22 +02:00
joschiwald
56877d2360 Fixed build 2018-08-25 22:47:35 +02:00
joschiwald
5132547ab3 Scripts/Command: Use packet builder in .debug send channelnotify 2018-08-25 20:13:19 +02:00
Shauren
91be2332e2 Core/Entities: Phasing rewrite
* Optimized phase visibility checking
* Handle all phase flags

Closes #16758
Closes #21119
2018-03-25 19:28:36 +03:00
Shauren
5bd61e91bf Core/Misc: Graveyards can now use conditions, SourceType = 27, SourceEntry = graveyard_zone.ID 2018-03-14 23:31:49 +01:00
joschiwald
6226189a16 Core/Entities: Created factory methods to create new areatriggers, creatures and gameobjects 2018-01-27 23:02:46 +01:00
Shauren
bb718b5578 Core/Entities: Remove phasemask 2018-01-10 22:01:40 +01:00
joschiwald
5e3e4182c8 Core/Entities: Extended SpawnMask to 64 bit 2018-01-06 19:56:11 +01:00
vincent-michael
7d00ae4045 Update copyright note for 2018
auto happy = new year(2018);
2018-01-01 00:40:17 +01:00
Traesh
89c91c271b Core/Quests: Implemented player choices
* Implemented SPELL_EFFECT_LAUNCH_QUEST_CHOICE
* Script hook for player choices
2017-12-31 23:22:55 +01:00
Shauren
43d268d75c Core/PacketIO: Renamed "movementInfo" to "Status" in movement packets in effort to preserve original naming (and to follow codestyle for naming public data members) 2017-08-16 23:22:41 +02:00
Rochet2
211b564894 Scripts/Commands: Fix trinity_string usage and enhance commands 2017-07-22 09:22:17 +02:00
Shauren
b453e12423 Core/Game: Include cleanup part 5
* ObjectMgr.h
* Player.h
* Unit.h
* G3D should no longer propagate everywhere from Spline/MotionMaster
2017-06-04 01:00:45 +02:00
Shauren
f2039981e0 Core/Game: Include cleanup, part 3 2017-05-20 00:09:37 +02:00
Shauren
c5d3dd90be Core/Game: Include cleanup
* Mostly aimed at removing Log/DatabaseEnv includes from other headers
* Fix most packet headers including other packet headers - moved common structures such as ItemInstance to their own files
* Moved SAI function definitions to source files (massive or requiring many different dependencies)
2017-05-18 23:53:25 +02:00
Shauren
a12a34b1dc Core/Game: Include cleanup - removed G3D classes from packets
* Use our own Position class instead, with the coords written to packets being part of type
2017-05-16 22:16:21 +02:00
Traesh
c73ce93f4c Core/Entities : Basic Conversation Implementation (#18010) 2017-05-14 11:40:55 +02:00
Shauren
9299e9bde0 Core/Grids: Ported cmangos/mangos-wotlk@ea99457e50 2017-05-13 19:37:33 +02:00
Shauren
0b9548a1cc Core: Updated GameTables to 7.2.0
Tools/Extractors: Updated to 7.2.0
Tools/ConnectionPatcher: Updated patterns to 7.2.0

Supported version is now 7.2.0.23911
2017-04-17 00:03:44 +02:00
r00ty-tc
8a71e4255e [Core/Maps] Activate creatures and objects during opening cinematics and other flyby cameras (sunwell etc).
Requires re-running map extractor to extract camera m2 files from data
files. These are very small.
2017-02-19 14:47:20 +01:00
ariel-
a4baffbf6f Core/Scripts: allow ".debug arena" and ".debug battleground" commands to be issued in the console
(cherry picked from commit 1b44377cda)
2017-02-12 15:32:48 +01:00
vincent-michael
86b98686a9 Update copyright note for 2017
Happy new year
2017-01-01 16:23:13 +01:00
Traesh
d4887311e3 Core/Scenes: Implemented scene system
Closes #17858
Closes #17976
2016-09-25 16:13:12 +02:00
Vincent-Michael
3a860429d3 Core/Commands: Fixed build 2016-09-03 19:44:37 +02:00
xjose93
779d3b2368 Core/Commands: Implement .neargraveyard (find nearest graveyard from dbc). (#17301)
(cherry picked from commit e2c0189927)
2016-09-03 18:04:11 +02:00