Commit Graph

1280 Commits

Author SHA1 Message Date
ModoX
437fb2aaba Core/CreatureTexts: Added new field SoundPlayType to enable usage of ObjectSounds within creature_text (#27136)
* Also adjusted Vigilant Quoram texts to use ObjectSounds
2021-10-23 13:10:32 +02:00
Treeston
a5989dcee9 Core/Unit: Store charmer and charmed pointers on Unit directly, no more map lookups for Unit::GetCharmer and Unit::GetCharmed
(cherry picked from commit d4ef2529e9)
2021-10-23 00:11:44 +02: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
DanVS
3503e9dc92 Scripts/Pets: Some cleanup for Snake Trap. Tagging #21847, though this doesn't address it (yet).
(cherry picked from commit 15ab24756d)
2021-10-17 01:40:21 +02:00
Shauren
ba4fa060d7 Core/Auras: Implemented SPELL_AURA_ADD_PCT_MODIFIER_BY_SPELL_LABEL and SPELL_AURA_ADD_FLAT_MODIFIER_BY_SPELL_LABEL 2021-10-16 22:05:02 +02:00
ModoX
ece3a8036e Scripts/DK: Fixed Defender of Azeroth quest
* added graveyard in case someone wants to die there
* added serverside spells to handle death gate usage properly (including bind points)
* added SmartAI script to Mograine for Defender of Azeroth quest
2021-10-13 19:33:19 +02:00
Shauren
98aef67c11 Scripts/Spells: Fixed crash in spell_pri_prayer_of_mending 2021-10-07 19:55:25 +02:00
ModoX
45b4910c96 Scripts/Spells: Core/Spells: Fixed Consecration damage, implemented Hammer of the Righteous, partly implemented Consecrated Ground talent (#27005) 2021-10-05 22:50:40 +02:00
ModoX
3080c37952 Scripts/Spells: Implemented Sigil of Silence/Misery/Flame/Chains (#27006) 2021-10-03 21:27:55 +02:00
ModoX
b1c0d069e1 Scripts/Spells: Implemented Wind Rush Totem (#26985) 2021-10-03 20:36:06 +02:00
Shauren
cbf1f2883a Core/Spells: Reduce number of CastSpell overloads to 1 2021-10-03 19:58:03 +02:00
Shauren
555b2d40ec Core/Spells: Send OriginalCastId in SMSG_SPELL_START and SMSG_SPELL_GO for triggered spells in 'game' project 2021-10-03 16:36:39 +02:00
Shauren
3af9be830d Core/Spells: Removed CastSpellExtraArgs constructors accepting ObjectGuid, they would become ambiguous with future changes 2021-10-03 14:58:35 +02:00
ModoX
a0c4a3071c Core/Auras: Implemented new aura type 487 (SPELL_AURA_COSMETIC_MOUNTED) (#26988) 2021-10-02 21:59:22 +02:00
DanVS
71e27f540d Core/Spells: Reset Mangle cooldown in Berserk (#22000)
(cherry picked from commit 3bd9337d9f)
2021-09-28 15:26:42 +02:00
Shauren
453b59de57 Core/Maps: Adjusted logic in GetFullTerrainStatusForPosition to closer match what the client does regarding being inside WMOs
Closes #21625
Closes #21624
Closes #21516

(cherry picked from commit b9c6bbb51d)
2021-09-25 01:04:21 +02:00
DanVS
bc34fd2f65 [3.3.5] Scripts/Spells: handle auras on unequipping scripted items (#21643)
Ref: #20415
(cherry picked from commit c2f1657988)
2021-09-23 20:55:30 +02:00
ariel-
6d3a11e1d1 Scripts/Spells: fix Seaforium Blast script crash
Closes #21663

(cherry picked from commit 6eb122792c)
2021-09-19 22:20:30 +02:00
sirikfoll
7c63a99bab Scripts/Spells: Quest King of the Mountain
Added missing jump jets and battle standard visuals
Added allowed area conditions for the vehicle
Fixed Jumpbot's attack spell (thanks @keader for fixing the proc)

(cherry picked from commit e7e46b2a82)
2021-09-05 22:19:03 +02:00
Shauren
f832a96c4e Warning fix 2021-09-05 16:30:13 +02:00
Shauren
7e09deea3a Scripts/Spells: Fixed mage ice block to not heal without aura 320913 2021-09-05 15:58:30 +02:00
ariel-
9fa95b4b57 Core/Spells: Fix periodic rolling adding bonuses twice
Calculation is now done in CalculateAmount

(cherry picked from commit 93eda20d5c)
2021-09-04 22:52:31 +02:00
Shauren
8a4e1119ac Core/Spells: Unify spell effect access api in both branches 2021-09-04 15:13:15 +02:00
Shauren
3af33b9ff9 Warning fixes 2021-08-28 20:24:21 +02:00
Shauren
3dd75a49b1 Core/Spells: Removed SpellEffIndex effIndex argument from spell effect handlers, it was commented out in almost every handler 2021-08-28 19:51:29 +02:00
ariel-
962f6d7988 Core/Spells: rework part 5: GameObject casting
Closes #21330
Closes #18885
Ref #18752

(cherry picked from commit 45c5e1b9d6)
2021-08-28 15:59:11 +02:00
ariel-
f3548d45d0 Core/Spells: rework part 3: spells only handle at most one UnitAura and one DynObjAura during its lifetime
Closes #15088

(cherry picked from commit e8d5aa56cc)
2021-08-28 15:59:11 +02:00
ariel-
5e7a11f88d Core/Scripts: apply resilience on Vampiric Touch and Unstable Affliction dispel effect
- Spell with SPELL_ATTR4_FIXED_DAMAGE won't do it by itself to avoid applying resilience twice, but because those are triggered from a periodic aura, those apply resilience on tick, not saved to amount.
- This is one of the cases where you have to call Unit::SpellDamageBonusTaken directly

Closes #21393

(cherry picked from commit 3753ec5647)
2021-08-08 21:21:34 +02:00
ariel-
d36f8bb754 Core/Scripts: implemented Fungal Decay & Tail Sting
Refs #18542

(cherry picked from commit 7dc78d8e3f)
2021-06-22 13:15:11 +02:00
ariel-
e9ddf644b0 Core/Scripts: implemented Seed of Corruption scaling damage tolerance
(cherry picked from commit df5afca278)
2021-06-21 00:06:39 +02:00
Treeston
ffce2c1f9a Core/Spell: Properly remove REACT_PASSIVE on permanent feign death unapply. Fixes and closes #21156.
(cherry picked from commit ac8b9be5d6)
2021-06-20 20:22:18 +02:00
ariel-
3485cb38ed Core/Spells: remove 'Vanish Purge' hack, the spell is present on DB and is copy of one in vanilla DBC
Thanks to killerwife for the heads-up

(cherry picked from commit 303efcf0e4)
2021-06-19 23:33:25 +02:00
Moein
6d7288356a Scripts/Spells: quest "That's Abominable" (#21253)
- scripted spell "Burst At The Seams" (59576)
- added Pet Bar

Closes #10876

(cherry picked from commit e519e14df8)
2021-06-16 11:32:25 +02:00
ariel-
bb7869b31f Core/Scripts: fix some spells double dipping from done/taken bonuses
Closes #21007

(cherry picked from commit ab3307fc23)
2021-06-16 11:22:10 +02:00
ariel-
5fbddef85f Core/Spell: SpellValueOverrides encapsulation
- No sense to let scripts use SpellValueOverrides, we already have modifiers in CastSpellExtraArgs struct

(cherry picked from commit 3b01cccd7e)
2021-06-14 00:19:50 +02:00
ariel-
fccf1a8c62 Core/Auras: removed caster dependency from core
- Decoupled Unit logic: split of spell critical chance into done (caster bonuses) and taken (target bonuses), this allows to precalculate caster bonuses on aura apply and then check victim's auras on damage/healing calc
- Made static a bunch of methods (they no longer have this pointer because they are now called from periodic handlers which may or may not have an active caster in world)
- Simplified all AuraEffect bonuses into AuraEffect::_amount, no more duplicated code
- Critical chance and whether or not caster is player owned unit (for resilience calcs) is now saved one level upper, on Aura itself (it's impossible as of 3.3.5 to have different effects with different critical chances)
- Minor cleanup of SPELL_DAMAGE_CLASS_NONE and Arcane Potency (#18813) crit handling

Closes #19876

(cherry picked from commit cb9e72e521)
2021-06-13 00:59:13 +02:00
sueastward
28c075765b Scripts/Spells: Implement mage Alter Time 2021-05-27 12:56:10 +02:00
Shauren
c79e5528e1 Core/Units: Remove Unit::EnergizeBySpell overload taking spellId argument 2021-05-16 21:56:06 +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
12ed21e690 Scripts/Spells: Clear arcane charge damage/cost/cast time modifier aura when reaching 0 arcane charges (power) 2021-05-15 17:44:31 +02:00
Shauren
331c7ec7c2 Scripts/Spells: Remove manual damage adjustment from Arcane Barrage for scaling with arcane charges and use spell cast for mana energize 2021-05-15 17:44:31 +02:00
Shauren
fd7f854995 Scripts/Spells: Properly utilize all Arcane Explosion energize effects 2021-05-15 17:44:31 +02:00
Matan Shukry
be8cbab4b3 Scripts/Spells: Fixed arcane barrage + explosion 2021-05-15 17:44:31 +02:00
ariel-
87d5544f05 Core/Scripts: Implemented Shifting Naaru Sliver
(cherry picked from commit a5d4f34c31)
2021-05-06 07:06:27 +02:00
Matan Shukry
c99f93d53d Scripts/Spells: Implemented monk stagger (#26295) 2021-04-22 22:45:26 +02:00
Shauren
8a452c3d10 Scripts/Spells: Implemented discipline priest PvP talent Trinity 2021-04-21 23:14:02 +02:00
Matan Shukry
dbc082a2b2 Scripts/Spells: Implemented Atonement
* Also renamed spell_priest_spirit_of_redemption to spell_pri_spirit_of_redemption
2021-04-21 23:14:02 +02:00
Matan Shukry
81eac82656 Core/Spells: Implement priest holy words + modify cooldown for a charge (#26270)
Co-authored-by: Shauren <shauren.trinity@gmail.com>
2021-04-19 23:54:13 +02:00
Matan Shukry
530631e0a7 Core/Auras: Implemented SPELL_AURA_SCHOOL_ABSORB_OVERKILL (#26269) 2021-04-17 22:42:34 +02:00
Treeston
9b141207d1 [3.3.5] CastSpell unclusterfucking (that's a word now) (#21123)
Core/Spell: The giant CastSpell unclusterfucking (that's a word now) of this generation.

- CastSpell now always takes three arguments - target, spellId, and a struct containing extra arguments
- This struct (CastSpellExtraArgs, see SpellDefines.h) serves as a conglomerate of every previous combination of the 20 billion different CastSpell overloads, all merged into one
  - It has some great utility constructors - check them out! All of these can be used to implicitly construct the ExtraArgs object.
- A gajillion refactors to make everything behave the way it always has

(cherry picked from commit d507a7e338)
2021-04-16 15:22:42 +02:00