Commit Graph
1245 Commits
Author SHA1 Message Date
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
Matan Shukry 0c73895826 Scripts/Spells: corrections to Death Knight spell Blood Mastery (#26082) 2021-03-15 22:53:30 +01:00
Shauren 6585666e6e Core/Spells: Define all spell modifier types and implement ProcCooldown mod and PeriodicHealingAndDamage for melee periodic damage 2021-03-15 21:03:06 +01:00
ariel- 33fbd7c773 Core/Scripts: fix drink auras
(cherry picked from commit 5fc4d36a1fd8214a0b52ba571b2e1b9c6afef79a)
2021-03-15 20:17:31 +01:00
ariel- 794a3e4388 Core/Auras: fixed off by one error in counting SPELL_ATTR5_START_PERIODIC_AT_APPLY ticks
- Made SpellInfo::GetMaxTicks and AuraEffect::GetTotalTicks return the same number without mods (dumped arbitrary default return value of 6 and arbitrary 30 sec limit)
- They should be streamlined whenever SPELL_AURA_48 is implemented

(cherry picked from commit 7dff0e3246f68c39e122e6ccb93b18c29f6df130)
2021-03-15 20:17:31 +01:00
ariel- 8eb3e6c243 Core/Scripts: more travis
(cherry picked from commit 2d07d4f7b350035be50ccc39aba1ffdad09ad0b2)
2021-03-15 20:17:31 +01:00
ariel- 6042126916 Core/Scripts: travis fixes
(cherry picked from commit ea0224e3bd8a4b081725c1eae5c597f8c7d74d7f)
2021-03-15 20:17:31 +01:00
ariel- 44c8ccadd7 Core/Auras: periodics refactor part 5: ported periodic trigger spell auras to scripts
(cherry picked from commit a36e804ae4639be40be17282e6c79fad9a769517)
2021-03-15 20:17:31 +01:00
ariel- 97e869e8b3 Core/Auras: periodics refactor part 3: move more switch hacks to scripts
- Incidentally fixed some spells which were supposed to be removed by proc instead of healing to full

(cherry picked from commit 16e20711d277bc43ae3ac350208df73827306ea6)
2021-03-15 20:17:31 +01:00
ariel- fd786c03a3 Core/Auras: periodics refactor part 2: Move UpdatePeriodic to AuraScripts
(cherry picked from commit 0510bf7afe9fa5ded572cda00f5a5a989a887146)
2021-03-15 20:17:31 +01:00
ariel- 5f9e0d92d5 Core/Auras: periodics refactor part 1:
- Don't skip ticks if diff is greater than amplitude
- Fixed spells without ampltude in DBC

(cherry picked from commit 5d91beb1dbc795382a12ec05f6e72c76b195b141)
2021-03-15 20:17:31 +01:00
Shauren b94851b824 Scripts/Spells: Fixed Fingers of Frost proc passive
Closes #19589
2021-03-13 01:02:48 +01:00
Shauren efdca47aff Core/Auras: Remove m_effIndex member of AuraEffect and always take it from SpellEffectInfo 2021-03-11 10:32:03 +01:00
Shauren c1a5672944 Scripts/Spells: Minor travel form corrections
* Added missing visuals when changing forms
* Prevent entering flight forms when in combat
2021-03-08 23:58:40 +01:00
Matan Shukry 183f719f4e Scripts/Spells: Added druid's guardian spell scripts (#26111)
* Incapacitating Roar
* Stampeding Roar
* Thrash
* Berserk
* Brambles
* Bristling Fur
* Tiger Dash
* Galactic Guardian
* Earthwarden
* Guardian Of The Elune
* Tooth and Claw
2021-03-08 23:01:31 +01:00
Matan Shukry c0f3452286 Scripts/Spells Refactored dh & dh spells to use the new macros (#26200) 2021-03-05 22:23:56 +01:00
Matan Shukry 898f97781c Scripts/Spells: Improve druid travel form script 2021-03-05 00:28:07 +01:00
Matan Shukry 1086007f98 Scripts/Spells: Fixed various paladin spell scripts and removed outdated ones 2021-03-04 22:46:44 +01:00
Shauren 624881bef5 Core/Spells: Refactor Player::ApplySpellMod to take SpellInfo argument instead of just spell id 2021-03-02 21:32:48 +01:00
Matan Shukry e972f84e7b Scripts/Spells: Removed unused warrior spell scripts (#26160) 2021-02-27 20:40:38 +01:00
Matan Shukry 8665323876 Scripts/Spells: Removed unused dk spell scripts (#26154) 2021-02-27 20:23:37 +01:00
Matan Shukry 1fa33b1dc8 Scripts/Spells: Removed unused warlock spell scripts (#26159) 2021-02-27 13:56:41 +01:00
Matan Shukry 18a82d9801 Scripts/Spells: Removed unused shaman spell scripts (#26158) 2021-02-27 13:51:37 +01:00
Matan Shukry 6b9ff7442e Scripts/Spells: Removed unused rogue spell scriptss (#26157) 2021-02-27 13:50:05 +01:00
Matan Shukry a681309d58 Scripts/Spells: Removed unused hunter spell scripts (#26155) 2021-02-27 13:28:42 +01:00