Commit Graph

1246 Commits

Author SHA1 Message Date
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
Keader
6c2d0d709a Core/Scripts: Val'anyr Hammer of Ancient Kings should proc only with effective heal
(cherry picked from commit 502864e86c)
2021-04-15 05:53:27 +02:00
jackpoz
e17e4e6f07 Core/Misc: Replace time(NULL) with GameTime::GetGameTime()
(cherry picked from commit 12701cb0c6)

 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 2362e9c794)
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 de9f904269)
(cherry picked from commit 32e2207ab9)
(cherry picked from commit 9934a43e09)
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 5fc4d36a1f)
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 7dff0e3246)
2021-03-15 20:17:31 +01:00
ariel-
8eb3e6c243 Core/Scripts: more travis
(cherry picked from commit 2d07d4f7b3)
2021-03-15 20:17:31 +01:00
ariel-
6042126916 Core/Scripts: travis fixes
(cherry picked from commit ea0224e3bd)
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 a36e804ae4)
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 16e20711d2)
2021-03-15 20:17:31 +01:00
ariel-
fd786c03a3 Core/Auras: periodics refactor part 2: Move UpdatePeriodic to AuraScripts
(cherry picked from commit 0510bf7afe)
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 5d91beb1db)
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