Commit Graph

2294 Commits

Author SHA1 Message Date
Keader 3df7e8b9fb Core/Razorscale: Codestyle Updates
* Removing spelldifficulty_dbc to make portable to master
* Updated to new Spell/Aurascript model

(cherry picked from commit 203c5f7058)
2020-08-23 14:39:20 +02:00
Foereaper 07e903a23d Scripts/Naxxramas: Fix Heigan the Unclean eruption event (#20129)
By scheduling the eruption event without cancelling the previously registered eruption events, Heigan's eruption (or dance) would overlap and cause a runaway scenario, where eruptions would not follow a proper timer.

By using Reschedule and not locking the Eruption event to the fighting phase, the dance now works as intended.

(cherry picked from commit 6f4492bc61)
2020-08-23 14:35:07 +02:00
Gustavo e5963fda0e Core/Scripts: More fixes in boss Lich King (#20147)
* Core/Scripts: More fixes in boss Lich King

Fix Valkyr charge spell, they will no longer ignore Z position and become unreachable.
Correct height of Spirit Bomb and added the 3 seconds delay on his explosion.
Set the Trigger inside frostmourne room as active, to avoid problems with reseting the room, e.g: Spirit Bombs not despawning and Wicked Spirits stuck in evade.
Use correct InhabitType for Wicked and Vile Spirits, this avoid a situation where they could spawn falling.

(cherry picked from commit 22a7956069)
2020-08-23 01:20:27 +02:00
ccrs 97585597f0 Core/Movement: waypoint movement (#20121)
Following the work done in #19361 this is the cleanup and improvement of the related logic of waypoint management.

Ref 28050f3 #18020
(taking the good parts and ignoring the incomplete work)

(cherry picked from commit 7fff83d675)
2020-08-23 00:45:46 +02:00
Demonid 6130a775fe Scripts/ICC: Minor Fixes for Lich King (#20120)
- Fixed Shadow Trap and Defile Targets
- Fixed Shadow Trap Summon Delay and Duration
- Fixed Berserk Timer (15 Minutes)
- Fixed Shadow Trap Despawn when Snowstorm starts

(cherry picked from commit 9fa68855d7)
2020-08-22 20:48:06 +02:00
Keader a1342bc9fc Core/Scripts: Razorscale Rewrite (#19828)
(cherry picked from commit d825a06830)
2020-08-22 20:46:26 +02:00
Treeston 129dd7c909 Core/Scripts: dynamic_spawning follow-up, I had forgotten JustRespawned existed.
- Rename JustRespawned to JustAppeared, which better matches its behavior anyway.
- Properly invoke JustAppeared for new (re-)spawns - fixes #20111.
- Fix Thaddius script to work with dynamic_spawning (mostly unrelated to the above) - Feugen/Stalagg should really be a summon group, but I don't have time to fix that right now.
- Fix default value for DynamicEscortNPC to match worldserver.conf.dist.

(cherry picked from commit 184c45cfe0)
2020-08-22 20:10:42 +02:00
r00ty-tc 03b125e6d1 Dynamic Creature/Go spawning:
- True blizzlike creature spawn/respawn behavior - new creature = new object
 - Toggleable spawn groups (with C++/SAI/command options to use them)
 - Custom feature: dynamic spawn rate scaling. Accelerates respawn rate based on players in the zone.
 - Backward compatibility mode (set via group and for summons)
   to support creatures/gos that currently don't work well with this
   (this should be removed once the exceptions are fixed)

Fixes and closes #2858
Tags #8661 as fixable.
Fixes and closes #13787
Fixes #15222.

(cherry picked from commit 59db2eeea0)
2020-08-22 12:59:57 +02:00
Treeston e69b5d8fcc Scripts/IcecrownCitadel: Prevent players from becoming inaccessible when killed by Lord Marrowgar's Impale spell (the initial damage, not the DoT). Also fix the underlying bug in vehicle logic.
(cherry picked from commit 7cbb6c101e)
2020-08-20 00:21:37 +02:00
jackpoz 31654a2295 Core/Misc: Fix static analysis issues
(cherry picked from commit b2a341df6e)
2020-08-18 19:42:54 +02:00
treeston 814f7e45fb Some more script adjustments ported from #19930.
(cherry picked from commit 3f8c0cb446)
2020-08-18 18:53:13 +02:00
treeston 2dfafa69eb 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;

(cherry picked from commit 74af880217)
2020-08-18 18:53:13 +02:00
treeston 2c88d9f162 Some more refactoring prep for combat/threat (#19930).
(cherry picked from commit 2739a5c5f5)
2020-08-18 18:53:13 +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
ariel- 148dc34cb2 Core/Scripts: fix array out of bounds in Pit of Saron doorData
(cherry picked from commit 08d0105396)
2020-07-16 22:00:30 +02:00
ariel- 8abbc097a0 Core/Scripts: fix some /W4 warnings
(cherry picked from commit d6cae113c6)
2020-07-16 22:00:29 +02:00
ariel- ca5cbad6f0 Core/Scripts: remove non-player objects (ie corpses) from Sindragosa's Fury targetlist
(cherry picked from commit b3336cf943)
2020-07-16 22:00:28 +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
jackpoz a3dbf4b088 Core/Scripts: Simplify code
Partially revert 753e7074d8 and 12c680f9b1 to simplify the code and to only remove GMs from the target list.

(cherry picked from commit f9cfc202e9)
2020-07-16 22:00:28 +02:00
ariel- e300d39562 Core/Scripts: filter out corpses from Sindragosa's Fury targetlist
- This would incur in a crash after attempting to convert the Corpse object into Player

Closes #19227
Closes #19862

(cherry picked from commit 753e7074d8)
2020-07-16 22:00:28 +02:00
ariel- 5903a10a83 Core/AI: segregate GameObject ReportUse from normal Use (lock open/normal click)
Closes #19819

(cherry picked from commit 2335b9de1a)
2020-07-16 21:47:28 +02:00
sirikfoll c99963b023 Core/Scripts Properly set Freya's BossState do DONE and avoid some loot exploits
Closes #19823

(cherry picked from commit 1cc0458b11)
2020-06-14 23:49:04 +02:00
treeston 6f73960480 Instances/Ulduar: Fix a super edge case bug where Algalon would evade if his tank successfully tanked a Cosmic Smash and got knocked up. Shadow priests everywhere rejoiced.
(cherry picked from commit b6a4e9f3f9)
2020-06-14 23:49:04 +02:00
ariel- b161447b47 Scripts/VioletHold: fix stack overflow when reflecting 'Splash'
Closes #19514

(cherry picked from commit d9a1c82ab4)
2020-06-14 23:49:03 +02:00
Aokromes ce1dc8b3de Fix build
(cherry picked from commit 195db7c7bb)
2020-06-14 23:49:03 +02:00
ForesterDev c34b83a467 Core/Defines: define faction templates and replace magic numbers from scripts
(cherry picked from commit abea8bf4cb)
2020-06-14 23:49:03 +02:00
ccrs 205d8bf591 Scripts/ICC: add missing cases for Dark Martyrdom difficulty entries
how come nobody noticed this?

(cherry picked from commit 7afe0b7fb0)
2020-06-14 23:49:03 +02:00
ariel- e2bc8c5383 Core/Scripts: improvements on the Thorim script
Improvements done to initial work by joschiwald:

- Fixed stormhammer casting and visuals
- Fixed spell credits
- Implemented removal of Impale when HP is higher than 90%
- Corrected faction templates for the pre combat creatures
- Implemeted Leap on the arena adds (thanks to joschiwald for implementing conditions)
- Scripted lighting charge using AuraScript periodic
- Fixed timings
- Corrections on the hallway encounters (added knockback immunity to minibosses too)
- Fixed multiple blizzards issue
- Lever will now reset properly, should players fail to get inside. This allows the door to be opened more than once during the combat
- Corrections in the outro event
- Implemented paralytic field traps on the hallway.
- Implemented Ancient Gate of the Keepers opening.
- Changed blizzard bunny targetting to conditions entirely.
- Removed obsolete scripts
- Standards: delete spell script names by ScriptName instead of spell_id
- Swapped factions for pre-adds (alliance should get horde trash and vs)
- Fixed Leap setting home position for adds
- Removed a bunch of magic numbers
- Runic Colossus should finish current Runic Explosion before beginning to attack
- Fixed UpdateAI logic to put it in line with other scripts (ie don't stop casts)

Special thanks to:
- chaodhib for the blizzard trigger waypoints and investigation on spell radius
- Malcrom for creating the Conditions Creator :P

Closes #15008
Closes #17072

(cherry picked from commit 4a69f5bda5)
2020-06-14 23:49:01 +02:00
joschiwald d50dccbfce Scripts/Ulduar: Initial implementation of the Thorim Encounter
Closes #7651

Fix logic fail in achievement:
SPELL_LIGHTNING_CHARGE aka 62279 is casted on Thorim itself to buff him, not the damage spell tracked by the achievement.

(cherry picked from commit 5e90c76fd4)
2020-06-14 23:46:44 +02:00
ccrs 55576d20d8 Core/Creature: drop method SetPosition
eeeevil, use UpdatePosition. It was there just for old scripts compatibility.

(cherry picked from commit 17579f8d91)
2020-06-14 20:04:17 +02:00
Shauren c7306439e7 Core/Spells: Implement using different difficulty data from all spell related db2s, not just SpellEffect and SpellPower 2020-06-12 01:29:18 +02:00
Shauren 4d69cc1c56 Core/Misc: GCC build and warning fixes 2020-05-21 22:15:58 +02:00
Shauren d1572327d2 Core/Misc: build fixes
Merges #24550
2020-05-03 14:53:18 +02:00
ariel- 6604849716 Core/Scripts: unified scripted gossip/quest api
- Changed self-accessor on GameObjectAI to "me", like UnitAI
- Moved all related functions to AI, now Unit and GameObject have the same function names with identical behaviour
- Remove "OnUpdate" from CreatureScript/GameObjectScript, was never used and we already have AI Update method
- Quest methods no longer return a bool, the return value was used to call the AI version if the ScriptMgr one returned false
- Implemented GameObjectAI::Destroyed hook (was never called), implemented Damaged method
- Rename OnStateChanged to OnLootStateChanged to reflect when it's really called, and created a new hook OnStateChanged that only gets called on GOState change
- Since the functions are now only getting called from AI, made GetAI methods full virtual. (CanSpawn method is anyways going to be used on creatures with AI)

(cherry picked from commit f913f3bb89)
2020-05-03 03:04:32 +02:00
ariel- 93c19c4194 Core/Misc: camelize GetFaction/SetFaction properly
(cherry picked from commit 4c4dca6d69)
2020-04-29 01:36:41 +02:00
ccrs 104e745edf Core/Misc: cleanup SetInFront uses
Set in front modifies only the serverside orientation, use with care.
Also check for current focus to prevent things like incorrect damage on casting creatures (ie dragon breath direction change in your face because of some taunt missclick)

(cherry picked from commit 229444b74a)
2020-04-28 17:51:25 +02:00
ccrs 2d4549023a Core/Unit: 2170541a51 followup
use true as default value since pretty much all the script calls will expect that

(cherry picked from commit c7a57e2a09)
2020-04-28 17:42:26 +02:00
Keader d1bdb8bdd3 Core/Scripts: Re-hack Boss Loken. Followup 3a0cb90ea9
Loken still need ClearUnitState Hack to DoMeleeAttackifReady work

(cherry picked from commit 4431a1149d)
2020-04-28 14:59:41 +02:00
ccrs 5d411e0b21 Core/CreatureAI: b6b0353bff followup
(cherry picked from commit 5fc366d03b)
2020-04-28 14:55:44 +02:00
ariel- f3a49059ac Core/AI: some tweaks on boundary functionality:
- Moved SetBoundary to public scope to allow for greater flexibility (ie set from external script)
- Extended to allow checking inverted boundaries

(cherry picked from commit 6892404b27)
2020-04-28 14:07:43 +02:00
ariel- dea7159745 Core/Scripts: fix gaseous bloat proc (again)
- UNIT_STATE_CASTING removal not needed for movement now, but it's needed for melee attacking

(cherry picked from commit 85076dd799)
2020-04-28 13:40:56 +02:00
Keader 292c03ec04 Core/Scripts: Fix a typo in Blood Prince Council
Thanks ariel-

(cherry picked from commit 136f1e75aa)
2020-04-28 13:13:49 +02:00
ariel- 5e32e96278 Core/Spell: define channels without movement interrupt flags as allowed move
- Remove script hacks no longer needed

(cherry picked from commit 3a0cb90ea9)
2020-04-28 12:35:16 +02:00
Keader 304eeea570 Core/Scripts: Baltharus the Warborn preincrement _cloneCount
(cherry picked from commit 2921449a33)
2020-04-27 12:25:52 +02:00
Keader f623fea923 Core/Scripts: Baltharus the Warborn make clone count more readable
*Also fixed issue that make Baltharus summons alot of clones when he is casting

(cherry picked from commit 58f2e62098)
2020-04-27 12:25:52 +02:00
Keader 14cf4c0692 Core/Scripts: Fixing Carbonion/Travis
(cherry picked from commit 270a639678)
2020-04-27 12:25:52 +02:00
Keader 287ed04c8b Core/Scripts: Fixed Baltharus the Warborn clones
*Clones not working after wipe
*Changed Clone Action for a event (to check casting)

(cherry picked from commit 6b8c4fb74f)
2020-04-27 12:25:52 +02:00
Keader 410585361a Core/Scripts: Typo in last commit
(cherry picked from commit a2a8ffe723)
2020-04-27 12:25:52 +02:00
Keader fc2872e16c Core/Scripts: Fixed Volatile Ooze/Gas Cloud issues in Professor Putricide
Closes #18925

(cherry picked from commit 8d198cb360)
2020-04-27 12:25:52 +02:00