Commit Graph
1269 Commits
Author SHA1 Message Date
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 3bd9337d9fe95b78751bf3aa90ee27daf6935872)
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 b9c6bbb51df0ed10f74617482740fedb91ff5366)
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 c2f16579888bb7973c1d32ad9efe6058acafb8d6)
2021-09-23 20:55:30 +02:00
ariel- 6d3a11e1d1 Scripts/Spells: fix Seaforium Blast script crash
Closes #21663

(cherry picked from commit 6eb122792cb1446a35752c6f62dd0febb6387671)
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 e7e46b2a822cd0179b30ba5b0fa7c6fe7cea8774)
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 93eda20d5cf6eeb34e1aee1b81469ba6e8fa7f0c)
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 45c5e1b9d63796d168339a44f63418f220cf2403)
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 e8d5aa56cc48572d81e1898b7b4ff10cfa6d1957)
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 3753ec56476d597b180968eb673cb20776785f31)
2021-08-08 21:21:34 +02:00
ariel- d36f8bb754 Core/Scripts: implemented Fungal Decay & Tail Sting
Refs #18542

(cherry picked from commit 7dc78d8e3f437ad7f3ad40bf1ef6801ac1ed5fc2)
2021-06-22 13:15:11 +02:00
ariel- e9ddf644b0 Core/Scripts: implemented Seed of Corruption scaling damage tolerance
(cherry picked from commit df5afca27859058f725c3dc9964d967aa89ff756)
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 ac8b9be5d67ccaba3f51663eeccca60ae86cea5b)
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 303efcf0e4ee9ce3cfe308a3d6aa2aece1aa39da)
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 e519e14df8d846285f1d29fb7e5aa0b151c6f74e)
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 ab3307fc2373ace51bea93682bc66bc709ca019c)
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 3b01cccd7eafaff9f3b8236a544e4fa46818926c)
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 cb9e72e521d3cc415dd15bf6912c87f89e41b92a)
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 532ab1c7f8653d1a2e48aa1f1f8a9ba1041d4bb7)
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 a5d4f34c3158bbbd65436bd2bd1dd8a9fad1ff52)
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 ShukryandShauren 81eac82656 Core/Spells: Implement priest holy words + modify cooldown for a charge (#26270)
Co-authored-by: Shauren <[email protected]>
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 d507a7e3388382960108b24143da48e5f912b4a7)
2021-04-16 15:22:42 +02:00
Keader 6c2d0d709a Core/Scripts: Val'anyr Hammer of Ancient Kings should proc only with effective heal
(cherry picked from commit 502864e86c0a29ac4e64b20ee0c2e853cecd0401)
2021-04-15 05:53:27 +02:00
jackpoz e17e4e6f07 Core/Misc: Replace time(NULL) with GameTime::GetGameTime()
(cherry picked from commit 12701cb0c6c45eb105ad449eb9a56e76d84d691e)

 Conflicts:
	src/server/game/Achievements/AchievementMgr.cpp
	src/server/game/AuctionHouse/AuctionHouseMgr.cpp
	src/server/game/AuctionHouseBot/AuctionHouseBotBuyer.cpp
	src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp
	src/server/game/Battlefield/Battlefield.cpp
	src/server/game/Battlefield/Zones/BattlefieldWG.cpp
	src/server/game/Battlegrounds/BattlegroundMgr.cpp
	src/server/game/Calendar/CalendarMgr.h
	src/server/game/DungeonFinding/LFGQueue.cpp
	src/server/game/Entities/Corpse/Corpse.cpp
	src/server/game/Entities/Creature/Creature.cpp
	src/server/game/Entities/Item/Item.cpp
	src/server/game/Entities/Pet/Pet.cpp
	src/server/game/Entities/Player/Player.cpp
	src/server/game/Entities/Unit/Unit.cpp
	src/server/game/Globals/ObjectMgr.cpp
	src/server/game/Grids/ObjectGridLoader.cpp
	src/server/game/Guilds/Guild.cpp
	src/server/game/Handlers/AuctionHouseHandler.cpp
	src/server/game/Handlers/BattlefieldHandler.cpp
	src/server/game/Handlers/CalendarHandler.cpp
	src/server/game/Handlers/CharacterHandler.cpp
	src/server/game/Handlers/ChatHandler.cpp
	src/server/game/Handlers/LFGHandler.cpp
	src/server/game/Handlers/MailHandler.cpp
	src/server/game/Handlers/MiscHandler.cpp
	src/server/game/Handlers/MovementHandler.cpp
	src/server/game/Handlers/PetHandler.cpp
	src/server/game/Handlers/QueryHandler.cpp
	src/server/game/Handlers/TicketHandler.cpp
	src/server/game/Instances/InstanceSaveMgr.cpp
	src/server/game/Server/WorldSession.cpp
	src/server/game/Server/WorldSocket.cpp
	src/server/game/Spells/Auras/SpellAuras.cpp
	src/server/game/Tickets/TicketMgr.cpp
	src/server/game/Tickets/TicketMgr.h
	src/server/game/World/World.cpp
	src/server/scripts/Commands/cs_gobject.cpp
	src/server/scripts/Commands/cs_instance.cpp
	src/server/scripts/Commands/cs_list.cpp
	src/server/scripts/Northrend/zone_wintergrasp.cpp
	src/server/scripts/Spells/spell_item.cpp
2021-04-15 05:53:27 +02:00
Keader a5635526ed Scripts/Trial of Crusader: Northrend Beasts Rework (#21031)
* Rewritten Gormok encounter
* Rewritten Snobold Vassal Script
* Rewritten Jormungars encounter
* Rewritten Icehowl encounter
* Added missing texts
* Added missing spells
* Implemented berserk mechanic on heroic diffs.
* Implemented Achievement requirement to make heroic diffs.
* Rewritten Barrett Ramsay scripts
* Added Barrett gossips and ported everything to DB.
* Added right Barrett in each encounter
* Removed a lot of hacks
* Rewritten Tirion Fordring script
* Rewritten Varian Wrynn script
* Rewritten Garrosh script
* Rewritten Wilfred event
* Rewritten Lich King event
* Updated codestyle
* Added missing spawns
* Fixed combat behavior before Gormok
* Fixed some visual stuff

(cherry picked from commit 2362e9c79410c689afc10266b94f7e78c88bbddc)
2021-04-15 05:53:27 +02:00
ariel- 16ec008290 Core/Spells: fix some DB errors
Ref #18542

- Implemented Choking Vines transformation at 5 stacks
- Implemented periodic Aura of Fear ticks
- Fixed Savage Rend passive proccing on anything (raptor pets)

(cherry picked from commit de9f9042699e849af38363430cd9aa390c62d1a2)
(cherry picked from commit 32e2207ab9863b9d79b994afd929730ca04bbce8)
(cherry picked from commit 9934a43e0948b6dfd46bd549e6a1c7028c40e22d)
2021-04-15 05:53:27 +02:00
Shauren 38ad6c2cf0 Scripts/Spells: Removed facing requirements from penance healing component 2021-04-12 22:34:10 +02:00
Matan Shukry d2b70397ab Spells/Scripts: Updated Gift of the Naaru script
Closes #22468
2021-04-12 22:32:53 +02:00
Shauren e858dd16ef Core: Fix linking with gcc 8.3 2021-04-12 12:24:28 +02:00
Matan Shukry cf3ea20825 Core/Spells: Fixed multiple druid's spells (#26223)
* Tooth And Claw proc correctly (was incorrect attribute)
* Tiger Dash will now transform to cat
* Travelform doesn't require learning riding skill
* Aquatic Form only useable if player has the spell (passive at level 17)
* Doesn't allow stag form inside water
* Bristling Fur will generate rage based on max rage
* Now also removing prowl when cat form is removed
2021-04-11 21:16:41 +02:00
Matan Shukry b92e20f6c8 Script/Spells: shaman spell fixes (#26192)
* Flametongue Weapon
* Tremor Totem
* Healing Stream Totem
* Liquid Magma Totem
* Healing Rain
2021-04-11 19:23:19 +02:00
Matan Shukry abaeb12ba3 Scripts/Spells: Implemented druid eclipse system (#26090) 2021-03-24 00:50:28 +01:00
Shauren 69e0b9a985 Core/Auras: Update AuraState enum and implement missing new ones 2021-03-16 20:48:42 +01:00