Commit Graph
1022 Commits
Author SHA1 Message Date
Ovahlord f70bd515f3 Scripts/HoO: scripted all trash groups in Tomb of the Earthrager 2021-02-22 14:05:07 +01:00
Ovahlord 768704187c Scripts/TotFW: fixed an edge case in which Rohash wouldn't cast his Storm Shield on heroic difficulty when his energy went above 30 between the checks 2021-02-20 23:47:35 +01:00
Ovahlord 1e1ebf16bd Scripts/HoO: scripted Sun-Touched Servants 2021-01-29 21:27:31 +01:00
Ovahlord 0bb7e3a385 Scripts/LCT: reworked Siamat encounter
* Modernized code all across the board
* Wailing Winds are now much closer to retail behavior
* Minions of Siamat are no longer chasing players and properly transform into clouds when possible instead of abruptly interrupting all actions
* Fixed an edge in which Siamat absorbed clouds but did not get his Gathered Storms effect
* Dropped all hacks
2021-01-26 23:19:02 +01:00
Ovahlord 9e50267eae Scripts/LCT: fixed Siamat's availability check 2021-01-26 18:13:11 +01:00
Ovahlord 38b4485e09 Scripts/LCT: reworked High Prophet Barim encounter
* modernized code style
* corrected behaivior of Blaze of the Heaven
* improved Plague of Age's spread reliability so it wont target already infected players
2021-01-18 18:15:41 +01:00
Ovahlord 1edd5e8c12 Scripts/FL:
* corrected Clump Check functionality to reflect retail behaivior
* Leaping Flames will now prefer nontank targets if available
2020-11-25 15:16:09 +01:00
Ovahlord aff2bad534 Scripts/FL: implement Majordomo Staghelm encounter 2020-11-25 10:07:37 +01:00
Ovahlord 7be90a5bc7 Scripts/FL: modernize instance script to latest standards 2020-11-25 10:07:36 +01:00
Ovahlord 754c138f89 Core/Spells: ported CastSpell unclusterfucking from 3.3.5 branch 2020-11-04 22:37:11 +01:00
Ovahlord 90e5e85afd Core/Misc: updated a bunch of packets to packet class 2020-10-21 12:04:13 +02:00
Ovahlord 84760e8a10 Scripts/VP: fixed a warning 2020-09-28 19:39:08 +02:00
Ovahlord df60a4d848 Scripts/VP: minor cleanups and improved Holwing Gale behaivior
* Howling Gale will no longer get stuck in combat when applying periodic damage effects on them
* When damaging a Howling Gale, the target will now stop casting any knockbacks for 10 seconds before slowly starting to build up again
2020-09-28 19:36:22 +02:00
Ovahlord c9afa1a6ed Core/Units: renamed SetInFront to SetOrientationTowards to clarify its actual functionality and added comments to SetOrientationTowards, SetFacingTo and SetFacingToObject 2020-09-23 20:48:44 +02:00
Ovahlord e871d2f0eb Fixed build 2020-09-11 15:23:53 +02:00
Ovahlord d78cfb2843 Scripts/DS: corrected damage reduction formula logic for Elementium Blast 2020-09-10 15:02:31 +02:00
Warpten 2b2fc5fb8a Core/Spells: remove PrepareSpellScript and PrepareAuraScript macros and make Hooklist use emplace behaivior (#174) 2020-08-28 15:40:26 +02:00
Shauren 44e0d6c0f9 Scripts/Spells: Replace RegisterAuraScript with RegisterSpellScript and remove it 2020-08-23 17:44:48 +02:00
Ovahlord 1507ca0179 Fixed build 2020-08-22 18:46:57 +02:00
Ovahlord 12a1f5ce6e Scripts/DS: fixed a oversight in Concentration spell script that was causing Deathwing's focused limbs to get stuck in their flying anim tier state when the Concentration gets removed 2020-08-09 18:56:04 +02:00
Ovahlord e334e60103 fixed warnings 2020-08-04 21:35:59 +02:00
Ovahlord 1fbd50db16 Scripts/ET:
* moved Nozdormu's script to a seperate file
* scripted Moruzond's respawn mechanism
2020-08-04 21:31:11 +02:00
Ovahlord f42d242996 Core/Spells: implement and enable SMSG_MISSILE_CANCEL and use it in Murozond encounter 2020-08-04 16:53:59 +02:00
Ovahlord d099e16acb Scripts/ET: initial work on Murozond encounter 2020-08-04 11:43:53 +02:00
Ovahlord f87eefafbf Scripts/AQ40: fixed a warning 2020-07-25 18:31:30 +02:00
Ovahlord 929c71578f Scripts/AQ40: fixed Skeram's door not opening after defeating him 2020-07-25 18:30:37 +02:00
Ovahlord 6961041d34 Scripts/AQ40: modernize instance script and nuke Ouro's script and scripted spawning sequence for him. This will make him at least attackable killable 2020-07-25 18:10:16 +02:00
Keader b4ecbe3154 Scripts/Temple of Ahn Qiraj: Scripted doors of AQ40
Doors added in https://github.com/TrinityCore/TrinityCore/commit/1ba09572b5a49d5cd247cdca47109d3325ec12f3

# Conflicts:
#	src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_bug_trio.cpp
#	src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
#	src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_fankriss.cpp
#	src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp
#	src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h
2020-07-25 16:44:30 +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 d2df9bdf15 Scripts/Hyjal: Seriously, who calls EnterEvadeMode in a AI constructor???? 2020-07-22 19:21:03 +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
Ovahlord de6a514ec5 Core/Misc: fixed build 2020-07-22 18:35:41 +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
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 f2592116ae Some more refactoring prep for combat/threat (#19930).
# Conflicts:
#	src/server/game/Combat/ThreatManager.h
#	src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_moam.cpp
#	src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp
2020-07-22 13:48:18 +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
Ovahlord e1d74d4dc6 Core/Misc: added more fallthrough attributes and added some missing breaks reported by CI 2020-07-19 12:24:58 +02:00
Peter Keresztes Schmidt cbd6fb2315 Build: Enable -Wimplicit-fallthrough on clang (#25056)
* Misc: Use [[fallthrough]] attribute instead of comment to mark intentional fallthroughs

Related: #25006

* Misc: Add some missing breaks (no-ops) to satisfy clang

Related: #25006
Closes #25055

* Build: Enable -Wimplicit-fallthrough on clang

Closes #25006
# Conflicts:
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Spells/SpellInfo.cpp
#	src/server/scripts/Battlefield/BattlefieldWG.cpp
#	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp
#	src/server/scripts/EasternKingdoms/ScarletMonastery/boss_high_inquisitor_fairbanks.cpp
#	src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
#	src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp
#	src/server/shared/DataStores/DBCDatabaseLoader.cpp
2020-07-18 22:47:52 +02:00
Ovahlord f8091d6aac Core/Movement: made SetDisableGravity and SetHover virtual and handle anim tiers in their new override inside of the Creature class.
* no longer set anim tiers when the target is rooted
2020-07-13 14:07:59 +02:00
Ovahlord fac96b99b5 Scripts/TotFW: removed far visible and setActive calls as the new aoi types now handle this 2020-07-13 12:09:00 +02:00
Ovahlord 0ce8d44288 Scripts/LCT: reworked General Husam encounter
* corrected timer layout
* corrected timers for Bad Intention hurls and Shockwave damage
* corrected movement speed and distance values for the Shockwave dummy npcs
* dropped unneeded creature scripts
* moved encounter related creatures that were scripted in SAI to C++ for consistency
* updated all scripts to modern model
2020-07-09 19:08:26 +02:00
Ovahlord 14f3143f76 Scripts/HoO: simplified GetHallsOfOriginationAI helper to support multiple object types in one method 2020-07-09 14:53:38 +02:00
Ovahlord c0eae1322b Scripts/DS: removed a debug output from Madness of Deathwing script 2020-07-07 14:28:54 +02:00
Ovah b09d6e2330 Core/Movement: reimplement follow movement (#124) 2020-06-26 21:22:21 +02:00
Warpten 0af44ccc01 Core/Spells: implement DoT clipping
* Core/Spells: Implementation of DoT clipping.
* Core/Utilities: Backport "EnumFlags v3.0" from master.
* Core/Spells: Switch AURA_REMOVE_MODE to a flag set.
2020-06-04 18:16:03 +02:00
Ovahlord b8d53951b5 Scripts/VP: rewrite Lurking Tempest mechanics and fixed all scenarios in which players could get stuck in combat with the tempests 2020-06-04 01:52:03 +02:00
Warpten 5cb747620a Core/Movement: Fixed Animation Tier handling (#113) 2020-06-03 00:49:18 +02:00
Ovahlord e64a3bcd90 Scripts/HoO: implement Ammunae encounter 2020-05-04 00:14:06 +02:00