Commit Graph

660 Commits

Author SHA1 Message Date
xinef1
ca26c33145 Implemented binary resistances and some more (#18933)
- Fixed possible exploit with tamed pets having template immunities
- Implemented binary resistances
- Corrected resistances calculations
- Pets properly inherit players spell penetration
- Fixed doubled block calculation for damaging melee spells
- Auras removing snare effects will only remove the snaring component
- Shapeshifting will properly remove movement impairing auras only and not crowd control (dragon's breath)
- Immunities are properly checked versus all schools appearing in spell, unit is immune only if immune to all schools
- Spells with melee and magic school mask should compare armor reduction with resistances and select smaller reduction
- Demonic Circle: Teleport no longer removes root effects

(cherrypicked from 93746e8c4a)
2019-07-21 21:06:54 +02:00
xinef1
3f7fe6f8a5 Core/Spells: Remade trajectory target selection (#19048)
* Remade trajectory target selection
* Added possibility to apply conditions to trajectory spells
* Properly recalculate delay time if CMSG_UPDATE_PROJECTILE_POSITION is received

(cherrypicked from c6060dd0c5)
2019-06-15 18:41:09 +02:00
vincent-michael
5620eb9463 Update copyright note for 2019
auto happy = new year(2019);
2019-01-01 10:14:33 +01:00
Shauren
f94deace76 Merge branch 'bfa' 2018-12-09 14:45:03 +01:00
ariel-
49cd81a1c9 Core/Spell: modified HitMask for new default procs
(cherry-picked from ad6912f0d5)
2018-12-09 14:18:42 +01:00
ariel-
01691e5d3b Core/Spell: add more aura types to default procs
Ref #18542

(cherry-picked from bff36a81be)
2018-12-09 14:18:42 +01:00
Keader
0b715ffc24 Core/Spell: Fixed range issues with some quest spells
(cherry-picked from 6f7310a259)
2018-12-09 14:18:42 +01:00
Shauren
dd356ea04c Core/Misc: Extended racemasks in db to uint64 2018-09-26 23:08:23 +02:00
Shauren
573dd01c6c Core/Spells: Updated spell effect value calculation 2018-09-17 23:30:58 +02:00
Mihapro
4c348ea5f8 Core/Spells: Fixed travel form 2018-07-22 19:11:34 +02:00
DoctorKraft
8ca6a20e73 Core/Spells: Fix display for Shaman totems (#21848) 2018-04-24 00:44:59 +03:00
Keader
36910585c9 Core/Scripts: Illidari Council Rewrite (#18546)
Thanks to Sirikfoll, Krudor and Offl for all help

(cherry picked from commit 5af1fa2273)
2018-03-18 00:19:49 +01:00
ariel-
395407eb02 Core/Spell: fix one spell range issue
(cherry picked from commit 63a4a94f5a)
2018-03-18 00:19:44 +01:00
Shauren
007b5a68c5 Core/DataStores: Fixed db2 structures after 7.3.5 2018-03-12 23:11:49 +01:00
Keader
f80d80401b Core/Scripts: Fixed Suppresser behavior in Valithria Dreamwalker encounter
Closes #18530
* Fixed range issue
* Fixed weave spawn when Summon Timmer Suppresser(70912) is casted
* Fixed spawn count
(cherry picked from commit dbd567799f)
2018-03-12 16:43:14 +01:00
Keader
4c8f4cb372 Core/Scripts: Rewrite Magtheridons Lair (#18330) 2018-03-12 16:39:32 +01:00
ariel-
301a0e8681 Core/SpellMgr: added a startup error for possibly unhandled procs
(cherry picked from commit 3d5c1b83b1)
2018-03-12 11:17:56 +01:00
Shauren
75603fe1a0 Core/DataStores: Updated db2 structures to 7.3.5.25996 2018-02-18 16:33:50 +01:00
funjoker
c4bf996c7d Core/Spells: Allow skipping automatic removal of auras from spell_area when condition is no longer met (mostly used for cosmetic cutscenes after quest completion) (#21317) 2018-01-28 19:33:33 +01:00
ariel-
8cb118009e Core/Spell: restore old proc system behaviour on auras self proc.
- Use Spell::m_triggeredByAuraSpell and compare against trigger aura, it requires scripts to set triggeredByAura parameter.
- Fixed existing scripts lacking it

DB/Spell: Anger Capacitor (Tiny Abomination in a Jar) proc

Closes #18269

(cherry picked from commit 5b56c94e6d)

# Conflicts:
#	src/server/game/Entities/Unit/Unit.cpp
#	src/server/game/Spells/Auras/SpellAuras.cpp
#	src/server/game/Spells/Spell.cpp
#	src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
#	src/server/scripts/Pet/pet_hunter.cpp
#	src/server/scripts/Spells/spell_dk.cpp
#	src/server/scripts/Spells/spell_druid.cpp
#	src/server/scripts/Spells/spell_hunter.cpp
#	src/server/scripts/Spells/spell_item.cpp
#	src/server/scripts/Spells/spell_mage.cpp
#	src/server/scripts/Spells/spell_paladin.cpp
#	src/server/scripts/Spells/spell_priest.cpp
#	src/server/scripts/Spells/spell_rogue.cpp
#	src/server/scripts/Spells/spell_shaman.cpp
#	src/server/scripts/Spells/spell_warlock.cpp
#	src/server/scripts/Spells/spell_warrior.cpp
2018-01-13 16:38:07 +01:00
vincent-michael
7d00ae4045 Update copyright note for 2018
auto happy = new year(2018);
2018-01-01 00:40:17 +01:00
joschiwald
5465b4f46e Core/Spells: Fixed proc cooldown 2017-12-26 19:52:09 +01:00
ariel-
5a91e1e31b Core/Spell: revamp of immunities system
- Spell attributes research
- Container optimization
- Do not skip damage immunity checks on SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY present
- Added additonal arguments support to SendCastResult / CheckCast, spells can now send proper error messages
- Loads spell immune masks/states/effects at startup.
- This cached info is used whenever a spell cast requires immunities to be known beforehand (to see if an aura could be applied for example)

Closes #16658
Closes #16901
Closes #18114

(cherry picked from commit 50a3ce5703)

Core/Spell: fix warning

(cherry picked from commit 3588ff894b)

Core/Unit: misc codestyle

use typedef for constant reference

(cherry picked from commit 7943150dcb)

Core/Spell: Fixed immunities for some spells (they were broken before rewrite too)

- Warlord's Presence, Uncontrollable Frenzy, Free Friend
- Overload, Lightning Tendrils
- Fervor, Berserk
- Determination

(cherry picked from commit fc6844173f)

Core/Spell: fix typos

(cherry picked from commit f060efbdb4)

Core/Unit: improved handling of some spell attributes

- SPELL_ATTR1_UNAFFECTED_BY_SCHOOL_IMMUNE
- SPELL_ATTR2_UNAFFECTED_BY_AURA_SCHOOL_IMMUNE
- SPELL_ATTR3_IGNORE_HIT_RESULT

(cherry picked from commit 352c84943c)

Core/Spell: fix typo

Closes #18248

(cherry picked from commit 1ad9c7d3fd)

Core/Spell: perform charmer check against player controlling unit. Fixes spellcasts while charmed

(cherry picked from commit 425f6c3c34)

Core/Unit: don't use damage immunity to calculate hit result for the whole spell. Should be used only for damage

(cherry picked from commit 9f5df023b7)

Core/Spell: fix a potential null dereference crash

(cherry picked from commit 64304d8b2b)
2017-12-26 17:11:18 +01:00
ariel-
8aa7b85ed2 Core/SpellMgr: overwrite dbc range for Unleashed Souls
Closes #17968

By sirikfoll

(cherry picked from commit 70a867531d)
2017-12-25 10:23:00 +01:00
Shauren
e86a2c439a Core/Auras: Implemented using all aura interrupt flag fields 2017-12-17 16:45:50 +01:00
ariel-
a1ebc312ec Core/Spell: fix interaction of on taken damage procs with triggered casts
DB/Spell: Seal of Righteousness proc
- Lightining and Water Shield should proc with triggered

Closes #18211

(cherry picked from commit ed49626c22)
2017-12-10 18:39:49 +01:00
joschiwald
906f3e459c Core/Spells: Fixed typo in SpellMgr::LoadSpellInfoCorrections 2017-12-10 18:32:28 +01:00
ariel-
02b4dc5512 Core/Spell: apply SPELLFAMILY_GENERIC mods to all spells by default
Closes #18160

(cherry picked from commit 4f1ef6985e)

# Conflicts:
#	src/server/game/Spells/Auras/SpellAuraEffects.cpp
#	src/server/game/Spells/SpellMgr.cpp
2017-12-10 18:16:47 +01:00
Aokromes
dda7d89445 Core/Spells: Remove one char breaking hotswap 2017-11-23 22:21:36 +01:00
ariel-
52e71c1723 Core/Spells: workaround stealth interaction with Death and Decay and GameObject casts
Closes #10179
Closes #16154

(cherry picked from commit b3a4815067)
2017-11-11 20:59:12 +01:00
ariel-
f895defe99 Core/Spells: require phaseMask set for trap activation procs
(cherry picked from commit 1df8ca7fe3)
2017-11-05 12:58:05 +01:00
ariel-
efaa33b599 Core/SpellMgr: some changes in default proc generation. Fix an issue of stealth breaking with positive and/or healing spells
(cherry picked from commit 531904afff)
2017-10-03 21:14:27 +02:00
ariel-
2d75d8071b Core/Globals: compute aura diminishing return info at startup and cache it
Core/Entities: Save diminish return on an array instead of a linked list

(cherry picked from commit 9b0fa51022)
2017-10-03 20:53:49 +02:00
ariel-
56be2b47ce Core/Spell: do not automatically set proc Family Name if no Family Flags present
Closes #18075

(cherry picked from commit 8167d6d4a0)
2017-09-06 12:57:15 +02:00
ariel-
42656c8fd0 Core/Spells: fix auto repeat spells triggering auras
Auto repeat spells are casted as triggered and didn't register procs properly if the aura can't proc with triggered

(cherry picked from commit aaa1a43204)
2017-09-06 12:45:40 +02:00
Shauren
30ff2620c2 Core/Spells: Add missing SpellFamilyFlags to priest and monk variants of Gift of the Naaru
* Fixes quest Rescue the Survivors

Closes #20240
Closes #20245
2017-09-05 22:05:29 +02:00
joschiwald
db14582918 Core/Spells: Removed obsolete spell fixes 2017-08-27 14:59:18 +02:00
ariel-
c7cd9102d3 Core/Globals: cache SpellSpecific and AuraState information instead of computing them each time they're needed
(cherry picked from commit ce45e1bf95)

# Conflicts:
#	src/server/game/Spells/SpellInfo.cpp
#	src/server/game/Spells/SpellInfo.h
#	src/server/game/Spells/SpellMgr.cpp
#	src/server/game/World/World.cpp
2017-08-26 23:23:32 +02:00
Krudor
28ec50b053 Scripts/Firelands: Baleroc
Closes #17527
2017-08-22 18:28:07 +02:00
joschiwald
921fbc8148 Core/Spells: Renamed SPELL_AURA_ADD_CASTER_HIT_TRIGGER to SPELL_AURA_INTERCEPT_MELEE_RANGED_ATTACKS
* also removed obsolete intercept chance
2017-08-19 18:11:30 +02:00
ariel-
d5c7675bcc Core/Auras: reset periodic aura timers by default. Except when aura comes from triggered spell
Closes #17961

(cherry picked from commit b5e8e0a5db)

# Conflicts:
#	src/server/game/Entities/Unit/Unit.cpp
#	src/server/game/Entities/Unit/Unit.h
#	src/server/game/Spells/Auras/SpellAuraEffects.cpp
#	src/server/game/Spells/Auras/SpellAuraEffects.h
#	src/server/game/Spells/Auras/SpellAuras.cpp
#	src/server/game/Spells/Auras/SpellAuras.h
#	src/server/game/Spells/Spell.cpp
#	src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp
#	src/server/scripts/Spells/spell_priest.cpp
2017-08-13 15:14:21 +02:00
joschiwald
1f8fc55ac9 Core/Spells: Implementation of QAston proc system (#20131)
* Core/Spells: Implementation of QAston proc system

- Move checks from Unit::IsTriggeredAtSpellProcEvent (old system) to Aura::IsProcTriggeredOnEvent (new system)
- killed charge counter from SpellModifier and Player system for handling charges... no point in having 3 different systems doing the same thing
- Automatically add default entries to spellProcMap, based on spellinfo (else auras won't proc without an entry) Based on old Unit::ProcDamageAndSpellFor
- Old Unit::ProcDamageAndSpellFor renamed to Unit::ProcSkillsAndReactives and made private, will no longer handle auras.
- Start making use of HealInfo::AbsorbHeal in unit calculations, add effective healing info to HealInfo struct
- Changes in spell reflection system, emulates old behaviour, delaying aura drop
- Removed old charge count hacks in SpellMgr::LoadSpellInfoCorrections
- Removed bogus error log when procChance is 0: Some auras have initial 0 procChance but modified by SPELLMOD_CHANCE_OF_SUCCESS
- Fixed TriggerAurasProcOnEvent logic that tried to trigger twice from actor.
- Allow non damaging spells with DamageClass Melee or Ranged to proc character enchants. Ref issue #17034:

  * http://web.archive.org/web/20110309092008/http://elitistjerks.com/f47/t49865-paladin_retribution_pve/
  * When an auto-attack lands (does not dodge/parry/miss) that can proc a seal the of the following things happen independently of each other (see 2 roll system).

  * 1) A "hidden strike" which uses melee combat mechanics occurs. If it lands it refreshes/stacks SoV DoT. Only white swings can trigger a refresh or stack. (This hidden strike mechanic can also proc things like berserking..)
  * 2) A weapon damage based proc will occur if you used a special (CS/DS/judge) or if you have a 5 stack (from auto attacks). This attack can not be avoided.

  * Holy Vengeance is the "hidden strike" it has an apply aura effect and damage class melee.
- Fixed Blood Tap interaction with Death Runes (btw, don't know what was going on with those MiscValueB, spell 45529 doesn't have any MiscValueB in SPELL_EFFECT_ACTIVATE_RUNE)
- Ported some AuraEffect checks from old Unit.cpp function. added new AuraScript hook to check procs of an specific effect
- Allow only AuraEffects that passed the check to proc, this won't block whole aura from proccing (and lose charges) if at least one of the effects procs, though
- Changes in spell mod system (for SPELLMOD_CASTING_TIME). fixes #17558.
- Added an exception for SPELLMOD_CRITICAL_CHANCE too, fixes #15193

(cherry picked from commit e641d0c7d7)

# Conflicts:
#	sql/base/auth_database.sql
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Entities/Player/Player.h
#	src/server/game/Entities/Unit/Unit.cpp
#	src/server/game/Entities/Unit/Unit.h
#	src/server/game/Spells/Auras/SpellAuraEffects.cpp
#	src/server/game/Spells/Auras/SpellAuras.cpp
#	src/server/game/Spells/Auras/SpellAuras.h
#	src/server/game/Spells/Spell.cpp
#	src/server/game/Spells/SpellEffects.cpp
#	src/server/game/Spells/SpellInfo.cpp
#	src/server/game/Spells/SpellMgr.cpp
#	src/server/game/Spells/SpellMgr.h
#	src/server/game/Spells/SpellScript.cpp
2017-08-13 12:03:43 +02:00
joschiwald
b9c3608259 Core/Spells: Defined TARGET_GAMEOBJECT_CONE_109
Also removed some wrong SpellInfoCorrections
2017-07-27 16:32:57 +02:00
Shauren
0cd5179726 Core/Creatures: Rewrite trainer handling to properly support multiple trainers on the same creature
* Trainers are now defined as templates (sniffable), assigned by gossip options
2017-07-26 00:53:51 +02:00
joschiwald
ef5c5ed9d9 Core/Spells: Removed SpellInfoCorrections of removed spells 2017-07-22 20:00:42 +02:00
joschiwald
ae070a1b64 Core/Spells: Implemented ConeAngle from DB2 2017-07-18 15:16:32 +02:00
Shauren
b453e12423 Core/Game: Include cleanup part 5
* ObjectMgr.h
* Player.h
* Unit.h
* G3D should no longer propagate everywhere from Spline/MotionMaster
2017-06-04 01:00:45 +02:00
Shauren
c5d3dd90be Core/Game: Include cleanup
* Mostly aimed at removing Log/DatabaseEnv includes from other headers
* Fix most packet headers including other packet headers - moved common structures such as ItemInstance to their own files
* Moved SAI function definitions to source files (massive or requiring many different dependencies)
2017-05-18 23:53:25 +02:00
Shauren
be1a7d36f3 Core/Spells: Refactor setting spell info corrections to report errors about spells that no longer exist 2017-04-20 21:57:25 +02:00
Shauren
adbdb64301 Core/PacketIO: Updated server packet structures to 7.2.0 2017-04-15 12:32:36 +02:00