Commit Graph

238 Commits

Author SHA1 Message Date
Seyden
79c6054369 Core/Objects: Use player as summoner for personal clones (#27716)
* This allows clones to properly inherit phases
2022-02-08 00:03:02 +01:00
Treeston
013c9b2cb7 Core/ChatCommands: make ExactSequence more readable
(cherry picked from commit feaaa595ca)
2022-02-05 21:29:53 +01:00
Peter Keresztes Schmidt
26f3c25dae Scripts/Commands: Convert remaining debug commands (PR #25429)
(cherry picked from commit 062c55f1ab)
2022-02-05 20:50:33 +01:00
Treeston
45e9e94311 Core/ChatCommands: C++17 cleanup (again) (PR #25323)
(cherry picked from commit 2f7d2ef3e9)
2022-02-04 21:21:17 +01:00
Peter Keresztes Schmidt
3c82863c52 Core/ChatCommands: Check whether a passed numeric enum value is valid (#25285)
(cherry picked from commit 4286e7aa02)
2022-02-03 00:18:48 +01:00
Treeston
eaa3c7e5a0 Core/Warden: Add .debug warden force, allowing you to force specific warden checks to be sent
(cherry picked from commit f04f4e91ff)
2022-02-02 22:47:55 +01:00
Peter Keresztes Schmidt
ec26736e30 Scripts/Commands: Convert argument parsing of most debug commands to new system (PR #25260)
(cherry picked from commit 76f309b4e8)
2022-02-02 22:13:50 +01:00
Treeston
e0ddc676d6 Scripts/Commands: Move .debug asan command bodies inside #ifdef ASAN
(cherry picked from commit e18f7aaa4d)
(cherry picked from commit 0b13fc1926)
(cherry picked from commit 5ecbe93f7d)
2022-02-02 21:27:52 +01:00
Treeston
673521bc87 Core/ChatCommands: Move Trinity::ChatCommands::Variant from boost::variant to std::variant (for real this time)
(cherry picked from commit ffc3e355fe)
2022-02-02 20:49:42 +01:00
Shauren
7044204130 Core/Objects: Cleanup SmoothPhasing code - move to separate files and better integrate it with visibility system 2022-01-29 20:35:25 +01:00
Peter Keresztes Schmidt
ec44c8296d Scripts/Commands: Use enum type arg for HandleDebugAnimCommand (PR #25256)
* Core/Shared: Make Emote enum smart
* Scripts/Commands: Use enum type arg for HandleDebugAnimCommand

(cherry picked from commit 86dc58974a)
2022-01-26 22:16:05 +01:00
Peter Keresztes Schmidt
2e3c612c80 Core/Unit: Make HandleEmoteCommand typesafe (#25249)
* Scripts/ScarletMonastery: Fix wrong emote during Headless Horseman encounter

* Scripts/HoR: Fix wrong emote during escape event

* Core/Unit: Make improve type safety of HandleEmoteCommand

Change argument type to the expected enum type Emote

* Scripts/CoS: Use SetUInt32Value to set UNIT_NPC_EMOTESTATE

UNIT_NPC_EMOTESTATE is no flag field

(cherry picked from commit 6c7837f947)
2022-01-26 21:46:51 +01:00
Giacomo Pozzoni
ffd85f9139 Scripts/Comamnds: Improve ".debug objectcount" command (#25208)
* Scripts/Comamnds: Improve ".debug objectcount" command

Include the top 5 most common creatures in the map

* Use C++ features to copy data

* Fix build warnings

* Update src/server/scripts/Commands/cs_debug.cpp

Co-authored-by: Shauren <shauren.trinity@gmail.com>

* Update src/server/scripts/Commands/cs_debug.cpp

Co-authored-by: Shauren <shauren.trinity@gmail.com>

* Update src/server/scripts/Commands/cs_debug.cpp

Co-authored-by: Shauren <shauren.trinity@gmail.com>

* Move CreatureCountWorker out of function and use template for unhandled cases

* Code cleanup

Co-authored-by: Shauren <shauren.trinity@gmail.com>
(cherry picked from commit bd5e832a64)
2022-01-26 16:22:00 +01:00
Carbenium
310f996b1d Core/WorldObject: Partially std::chrono-ify SummonCreature overloads
TempSummon* SummonCreature(uint32 entry, float x, float y, float z, float o = 0, TempSummonType despawnType = TEMPSUMMON_MANUAL_DESPAWN, uint32 despawnTime = 0);
to
TempSummon* SummonCreature(uint32 entry, float x, float y, float z, float o = 0, TempSummonType despawnType = TEMPSUMMON_MANUAL_DESPAWN, Milliseconds despawnTime = 0s);

(cherry picked from commit 1131229ee9)
2022-01-24 11:55:32 +01:00
Shauren
596bf2b772 Core/Misc: Replace boost::optional with std::optional part 2 2022-01-23 20:31:52 +01:00
Peter Keresztes Schmidt
770fbcca0c Core/Misc: Replace boost::optional with std::optional (#25047)
C++17 is already mandatory, so it's a safe thing to do

(cherry picked from commit 202fd41389)
2022-01-23 18:05:59 +01:00
Peter Keresztes Schmidt
1e1679a1f7 Core/DataStores: Port refactors from Update DBC field names to generated ones (#24999)
(cherry picked from commit c92950b3e1)
2022-01-23 00:06:16 +01:00
jackpoz
5886bf7484 Scripts/Commands: Add .debug objectcount <optional map id> chat command
Add .debug objectcount <optional map id> chat command to show the number of Creatures and GameObjects

(cherry picked from commit cd37a17103)
2022-01-06 20:49:28 +01:00
Matan Shukry
8fabe5a3aa Core/Phasing: Implemented db spawns in personal phases (#26345)
Co-authored-by: Shauren <shauren.trinity@gmail.com>
2021-12-28 13:24:10 +01:00
Matan Shukry
b821a72973 Core/Player: Initial War Mode support (#25926)
* Enable PvP talents
* War Mode buff aura
* Forced PvP flagging

Co-authored-by: Shauren <shauren.trinity@gmail.com>
2021-12-26 19:14:46 +01:00
Treeston
51fbda4223 Core/Pooling: Quest pooling rewrite: (PR#23627)
- Split quest pooling from PoolMgr (into QuestPoolMgr)
- Proper saving/restoring on server restart
- No more hacking into sObjectMgr to insert/remove available quests

(cherry picked from commit a5e73e41c0)
2021-12-18 15:28:45 +01:00
Treeston
c13d83796f 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.
(cherry picked from commit 0e7c66cb4c)
2021-12-17 00:23:33 +01:00
Treeston
6f6cf975e4 Scripts/Commands: Add .debug questreset to force daily/weekly/monthly quest reset.
(cherry picked from commit 293ba08d21)
2021-12-16 21:20:38 +01:00
jackpoz
e7b94603f2 Core/Commands: Add .debug guidlimits <optional map id> chat command
Add .debug guidlimits <optional map id> chat command to show the highest low guid counter for Creature and GameObject, useful when reaching Respawn.GuidWarnLevel

(cherry picked from commit 7421ccaf7e)
2021-12-16 00:53:58 +01:00
ForesterDev
61cc88731c Scripts/Commands: update .wp commands to use orientation field from DB (PR #23566)
Closes #23330

(cherry picked from commit e71773140c)
2021-12-15 00:17:13 +01:00
Treeston
35e55f1089 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.
(cherry picked from commit dbe3bbefe7)
2021-12-12 00:31:15 +01:00
jackpoz
c73fd0e6e3 Scripts/Commands: Add .debug asan commands
Add ".debug asan memoryleak" and ".debug asan outofbounds" commands to trigger Address Sanitizer warnings at runtime (or other dynamic analysis tools)

(cherry picked from commit 71d15ea25b)
2021-12-02 00:39:20 +01:00
Treeston
5ed891a0f0 Scripts/Commands: Add .debug dummy. It does nothing, which means you can make it do anything.
(cherry picked from commit 97ade1321b)
2021-11-08 23:18:32 +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
Shauren
3fe9b0a296 Core/Conversations: Replace _participants with generic personal object implementation 2021-10-09 13:30:47 +02:00
Shauren
2d7af28e9f Core/Transports: Store information about continent transports 2021-10-02 19:59:56 +02:00
Treeston
9f06cb63d2 Core/Threat: My dictionary informs me that "fixtate" is not, in fact, a word. Corrected to "fixate".
fd33b1c follow-up

(cherry picked from commit 1d27f83bda)
2021-09-26 16:13:15 +02:00
Treeston
16eb5032ad Core/Threat: Re-add fixtate system. I am being told Netherspite needs it.
(cherry picked from commit fd33b1cd02)
2021-09-26 16:12:33 +02:00
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