Ovahlord
5d22ddd499
Core/Misc: rename Powers to PowerType
2026-06-09 08:19:48 +02:00
Ovahlord
e8588fd5ba
Core/Objects: ported Heartbeat implementation fron master branch
2025-03-09 02:40:05 +01:00
Ovahlord
0927c5af40
Core/Misc: backported most boost changes from master branch
2025-02-27 23:47:52 +01:00
Ovahlord
5c13baf230
Core/Misc: removed unused includes and removed unit include from vehicle.h
2023-10-10 03:01:05 +02:00
Ovahlord
b49f95e1e9
Build: added support for unity builds in most projects except for StormLib, ZLib and Scripts
2023-10-09 21:40:38 +02:00
Ovahlord
0840143137
Core/Movement: reworked chase movement
...
* the destination prediction is now much more reliable
* the movement generator will now more frequently check for valid positions to match retail behavior
* the catch-up mechanic will now adapt its speed to the target's one when being close enough to hit it
* temporarily disabled backwards movement when being too close to a target to avoid some edge cases that need additional research
* fixed the pathfinding reaching behavior so that they no longer follow you to unreachable obstacles and return home when they can't reach you anymore
closes #345
closes #260
2023-08-24 20:16:41 +02:00
Ovahlord
b489a905e1
Core/Misc: fixed another bunch of GCC warnings
2023-07-08 21:33:08 +02:00
Ovahlord
e0f8b85e0d
Core/Gossips: allow setting gossip menu ids in scripted gossips that load menu items from database
2022-12-18 14:04:29 +01:00
Shauren
36aacc7f2a
Core/Gossip: Fixed gossip menu options not performing their default actions when added by script using db data
2022-12-18 13:47:54 +01:00
ariel-
b6fac86b71
Core/Spells: rework part 5: GameObject casting
2022-09-12 09:15:14 +02:00
Ovahlord
949f92e0a1
Core/AI: ported charm updates from 335
2021-09-16 16:48:07 +02:00
Ovahlord
c41fe84b8c
Core/AI: reduce differences in ScriptedEscortAI between 4.x and 335
2021-04-12 10:32:44 +02:00
Ovahlord
b875d77dc8
Core/SAI: refactored SMART_EVENT_FRIENDLY_HEALTH_PCT to reflect the behavior of SMART_EVENT_FRIENDLY_HEALTH
...
* added radius event parameter to limit the search range of the executing creature
* moved the pct check to a macro and corrected the selection logic to support all target types
2021-02-25 15:40:05 +01:00
Ovahlord
754c138f89
Core/Spells: ported CastSpell unclusterfucking from 3.3.5 branch
2020-11-04 22:37:11 +01:00
Ovahlord
361ac2292b
Core/Movement: add velocity field to waypoint_data to allow specifying custom speed value for waypoints and cyclic splines
...
* standartized member naming in WaypointNode and WaypointPath struct
2020-09-24 14:30:48 +02:00
Ovahlord
35041c9d47
Scripts/BRC: corrected run state setting for Raz the Crazed and reverted escort ai changes
2020-07-27 13:32:00 +02:00
Ovahlord
287fdc542f
Core/AI: allow manually added escort waypoints to have run states specified
...
*turn waypoints of Raz the Crazed into run mode
2020-07-27 00:34:28 +02:00
Shauren
07099840db
Scripts: Fix rbac permission for skipping default boss sequencing check
...
# Conflicts:
# src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp
# src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp
# src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp
# src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp
# src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp
# src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp
# src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp
# src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp
# src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp
# src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp
# src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp
# src/server/scripts/EasternKingdoms/ScarletMonastery/boss_azshir_the_sleepless.cpp
# src/server/scripts/EasternKingdoms/ScarletMonastery/boss_bloodmage_thalnos.cpp
# src/server/scripts/EasternKingdoms/ScarletMonastery/boss_herod.cpp
# src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp
# src/server/scripts/EasternKingdoms/ScarletMonastery/boss_houndmaster_loksey.cpp
# src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp
# src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp
# src/server/scripts/EasternKingdoms/ScarletMonastery/boss_scorn.cpp
# src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp
# src/server/scripts/EasternKingdoms/Scholomance/boss_doctor_theolen_krastinov.cpp
# src/server/scripts/EasternKingdoms/Scholomance/boss_illucia_barov.cpp
# src/server/scripts/EasternKingdoms/Scholomance/boss_instructor_malicia.cpp
# src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp
# src/server/scripts/EasternKingdoms/Scholomance/boss_lord_alexei_barov.cpp
# src/server/scripts/EasternKingdoms/Scholomance/boss_lorekeeper_polkelt.cpp
# src/server/scripts/EasternKingdoms/Scholomance/boss_the_ravenian.cpp
# src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp
# src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp
# src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp
# src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp
# src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp
# src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp
# src/server/scripts/EasternKingdoms/ZulAman/boss_zuljin.cpp
# src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
# src/server/scripts/EasternKingdoms/ZulGurub/boss_gahzranka.cpp
# src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp
# src/server/scripts/EasternKingdoms/ZulGurub/boss_hakkar.cpp
# src/server/scripts/EasternKingdoms/ZulGurub/boss_hazzarah.cpp
# src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp
# src/server/scripts/EasternKingdoms/ZulGurub/boss_jindo.cpp
# src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
# src/server/scripts/EasternKingdoms/ZulGurub/boss_marli.cpp
# src/server/scripts/EasternKingdoms/ZulGurub/boss_renataki.cpp
# src/server/scripts/EasternKingdoms/ZulGurub/boss_thekal.cpp
# src/server/scripts/EasternKingdoms/ZulGurub/boss_venoxis.cpp
# src/server/scripts/EasternKingdoms/ZulGurub/boss_wushoolay.cpp
# src/server/scripts/Kalimdor/BlackfathomDeeps/boss_aku_mai.cpp
# src/server/scripts/Kalimdor/BlackfathomDeeps/boss_gelihast.cpp
# src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
# src/server/scripts/Kalimdor/RazorfenDowns/boss_amnennar_the_coldbringer.cpp
# src/server/scripts/Kalimdor/RazorfenDowns/boss_tuten_kash.cpp
# src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_ouro.cpp
# src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp
# src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
# src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_amanitar.cpp
# src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp
# src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
# src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
# src/server/scripts/Northrend/Gundrak/boss_eck.cpp
# src/server/scripts/Northrend/IcecrownCitadel/boss_sister_svalna.cpp
# src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp
# src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp
# src/server/scripts/Northrend/Naxxramas/boss_loatheb.cpp
# src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp
# src/server/scripts/Northrend/Nexus/Oculus/boss_urom.cpp
# src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp
# src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
# src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
# src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp
# src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
# src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp
# src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp
# src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp
# src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp
# src/server/scripts/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp
# src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
# src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp
# src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp
# src/server/scripts/Outland/BlackTemple/boss_supremus.cpp
# src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp
# src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp
# src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp
# src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_mennu_the_betrayer.cpp
# src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_rokmar_the_crackler.cpp
# src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp
# src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_gyrokill.cpp
# src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp
# src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp
# src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp
# src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp
2020-07-24 13:08:04 +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
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
Treeston
607069de36
Core/AI: Remove unnecessary parameter from DoZoneInCombat after eb1972f
2020-07-22 17:38:11 +02:00
Treeston
942c3a77da
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 .
2020-07-22 16:49:37 +02:00
treeston
a09db6b4ba
Hi, I'm Treeston, and welcome to Combat PR Prep Refactors.
...
Today, we're moving UNIT_FLAG_IMMUNE_TO_PC and UNIT_FLAG_IMMUNE_TO_NPC to higher-level abstraction so combat manager can react to it.
New methods on Unit:
- void SetImmuneTo<All/PC/NPC>(apply, keepCombat = false);
- bool IsImmuneTo<All/PC/NPC>() const;
# Conflicts:
# src/server/game/AI/ScriptedAI/ScriptedEscortAI.cpp
# src/server/game/Entities/Unit/Unit.cpp
# src/server/game/Spells/SpellEffects.cpp
# src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp
# src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
# src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
# src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
# src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp
# src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp
# src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp
# src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp
# src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
# src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
# src/server/scripts/Kalimdor/zone_stonetalon_mountains.cpp
# src/server/scripts/Kalimdor/zone_tanaris.cpp
# src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
# src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
# src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
# src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp
2020-07-22 14:35:53 +02:00
Treeston
ec04d3b2cd
[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.
2020-07-22 13:43:23 +02:00
Ovah
b09d6e2330
Core/Movement: reimplement follow movement ( #124 )
2020-06-26 21:22:21 +02:00
Ovahlord
c9961e6a94
Core/Movement: rewrite follow movement
2020-03-27 18:59:16 +01:00
Ovahlord
1aaf004064
Core/AI: followup fixes
2020-01-31 07:34:12 +01:00
Treeston
e156f8d571
Scripts/FollowerAI: Some cleanup:
...
- FollowerAI properly resumes follow after evading.
- Removed duplicated getters from CreatureAI (IsEscorted vs IsEscortNPC), they were used to do the same thing
- FollowerAI properly assists in combat.
- FollowerAI properly despawns if quest is abandoned.
- FollowerAI now supports dynamic respawning for escort NPCs.
2020-01-31 07:34:11 +01:00
Ovahlord
42f2042279
Core/AI: removed a completely useless and braindead enum
2020-01-21 19:46:25 +01:00
Aokromes
d6d3f06f06
New year
2020-01-04 18:32:38 +01:00
funjoker
6c56916b29
Misc: Update copyright information
...
Happy new year
2020-01-01 18:47:28 +01:00
Treeston
90540d684b
Core/Misc: Various dynspawn cleanup and refactors split off from pooling rewrite:
...
- Map::RemoveRespawnTime(SpawnObjectType, LowType, doRespawn) split into Map::Respawn and Map::RemoveRespawnTime, without the extra boolean
- Map::RemoveRespawnTime(RespawnInfo*) merged into Map::DeleteRespawnInfo(RespawnInfo*) and is now private
- Map::DeleteRespawnInfo(void) renamed to Map::UnloadAllRespawnInfos to properly describe what it does
- Map::ProcessRespawns now actually saves the delayed respawn time to DB if the respawn was delayed
- Map::AddRespawnInfo now takes const reference, and returns success as a boolean
- Map::AddRespawnInfo no longer offers an unused "replace" parameter
- Map::DeleteRespawnInfo no longer offers a variety of unused private overloads
- Map::SaveRespawnTime no longer offers a tantalizing writeDB parameter. Parameter is now called "startup" to properly describe what it does.
- Map::SaveRespawnInfoDB now takes RespawnInfo reference instead of all the various fields. Still public because compatibility mode. QQ.
- Map::GetWorldObjectBySpawnId sanitized
- Map::GetXRespawnTime methods sanitized to all go through Map::GetRespawnTime
----------
Core/DB: Unify `creature_respawn` and `gameobject_respawn` into a single `respawn` table
2019-08-18 12:47:10 +02:00
Killyana
22e34861bd
Core: Restore reset in EscortAI::InitializeAI ( #23197 )
...
Closes #23008
2019-04-26 18:59:11 +02:00
Treeston
7c025ee803
Core/AI: EscortAI init logic moved from JustAppeared to InitializeAI. There are no escort NPCs using compatibility mode anymore, so this is equivalent.
...
As a result, inheriting scripts calling Start in on-create hooks (like JustSummoned) will now work properly again.
Tagging #20310 .
# Conflicts:
# src/server/game/AI/ScriptedAI/ScriptedEscortAI.h
2019-04-26 18:49:47 +02:00
Ovahlord
52da459a83
Core/AI: fixed filling database waypoints with correct movement type for escortAI
2018-09-10 22:23:08 +02:00
Ovahlord
c4ce03f525
Core/AI: merged walk / run fix for EscortAI
2018-08-20 02:53:42 +02:00
Ovahlord
c808b981f7
Core/Movement: merged smooth waypoint movement. Followup commits will be merged soon (tm)
2018-08-02 15:38:35 +02:00
Ovahlord
b976bc1187
Core/Spawns: merged Dynamic Spawning
2018-07-21 20:44:41 +02:00
ariel-
5ff847159c
Core: header cleanup, split realmlist, boost compatibility, cotire, remove stormlib/zlib and stormlib/bzip2 and instead use dep sources
2018-03-28 04:41:59 -03:00
Aokromes
46366373ab
Core/AI: Some more refactoring prep for #19930 . CreatureAI::EnterCombat is now called CreatureAI::JustEngagedWith. There's also two new methods on UnitAI, though they're never invoked right now.
2018-01-01 16:02:22 +01:00
Aokromes
4bd0525edd
Update copyright note for 2018
2018-01-01 01:06:19 +01:00
Aokromes
1a5c0f5c3b
Core/Grids: Ported cmangos/mangos-wotlk@ea99457
...
(cherry picked from commit 9299e9b)
2017-06-19 20:20:26 +02:00
Aokromes
ac3dbcb880
Core/Utilities: Rename RandomResizeList->RandomResize as it is no longer restricted to a list
2017-06-07 09:53:04 +02:00
treeston
a83b77485a
Add another helper to ScriptedGossip.h for resolving listId -> action.
2017-05-31 16:09:56 +02:00
Aokromes
c015a5cf10
Core/Misc: camelize GetFaction/SetFaction properly
2017-05-02 02:02:31 +02:00
xinef1
2c05a59815
Core/Misc: Fix various crashes, also related to multithreading ( #19012 )
...
* When iterating groups we have to either do it not in multithreaded context (map updates) or start with checking maps (they are guaranteed to change in single thread update).
* Properly clear ComboPoint references on player remove
* remove some possible references item may have when it is deleted during save.
* Also clear all hostile references when unit is removed from map.
2017-02-05 01:58:11 +01:00
ariel-
f5822c589b
Core/EscortAI: fix invalid iterator dereference
2017-02-01 01:18:17 +01:00
Aokromes
1cf9bdd6c7
build fix
2017-01-20 16:59:17 +01:00
Aokromes
31484029a0
Revert "[3.3.5][master] Core/Movement: Smooth movement
2017-01-20 16:26:38 +01:00
ccrs
047673175b
cb634e6fba followup
...
updates #18401
2017-01-07 07:36:00 +01:00