Commit Graph

2030 Commits

Author SHA1 Message Date
ariel-
acdc2d6d63 Core/Unit: partial cherry picked from commit b6a8045adc 2018-01-13 15:38:38 +01:00
joschiwald
78ba1d76dd Core/Spells: Removed obsolete spell fixes 2018-01-03 18:10:47 +01:00
Mihapro
8199eef81c Core/Misc: Added helper function Unit::SetFullPower
* Also renamed Unit::getPowerType and Unit::setPowerType to follow style guidelines

Ref #20981
2018-01-03 16:39:32 +01:00
Shauren
ea6de0b565 Core/BattlePets: Misc fixes
* Fixed caged pet item chat message
* BattlePetMgr optimizations: removed copying data all over the place
* Fixed gaining two pets when learned from item for the first time
* Fixed dismiss button
2018-01-02 14:04:09 +01:00
vincent-michael
7d00ae4045 Update copyright note for 2018
auto happy = new year(2018);
2018-01-01 00:40:17 +01:00
ariel-
5bcf14cdb8 Core/Unit: damage immune improvements (9f5df023b7 follow up)
- Handling checked in sniffs: Spell 63710 Void Barrier vs 49143 Frost Strike
  * Send spell miss immune only if spell consists of damage effects
- Checked with 348 Immolate:
  * No packets sent if damage immune, aura is applied normally

Also... who the fuck uses 0 to compare against pointers

(cherry picked from commit ca1c4525c7)

Core/Unit: fix build

Ctrl-S failure
(cherry picked from commit f3bdd705c0)
2017-12-30 22:56:48 +01:00
joschiwald
a6594c3831 Core/Spells: Fixed SPELL_AURA_MOD_INCREASE_ENERGY_PERCENT
Closes #20504
Closes #21061

(cherry picked from commit 790a253893)
2017-12-30 16:42:50 +01:00
Shauren
90834606a2 Core/Entities: Update updatefields to 7.3.2.25383 2017-12-29 12:57:56 +01:00
Shauren
965f4de083 Core/Units: Encapsulate UNIT_CHANNEL_* fields 2017-12-29 12:57:55 +01:00
ariel-
2eb9791fc9 Core/Unit: consider creatures with same faction to be on the same party/raid for the purposes of spell/aura targets
Ref #18233

(cherry picked from commit 699e22cb4c)
2017-12-26 20:30:55 +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
Treeston
2a08556273 Core/Unit: For convenience, explicitly redirect CastSpell with nullptr as first argument to the Unit* overloads. No more ->CastSpell((Unit*)nullptr, ...) all over the place!
(cherry picked from commits c7896f3102 and 40c78cac4c)
2017-12-26 01:10:26 +01:00
Shauren
e86a2c439a Core/Auras: Implemented using all aura interrupt flag fields 2017-12-17 16:45:50 +01:00
Shauren
55350b1f4e Core/Auras: Updated mount capability check and implemented SPELL_AURA_MOUNT_RESTRICTIONS 2017-12-12 23:53:15 +01:00
joschiwald
2362abbce0 Fixed build 2017-12-10 20:26:05 +01:00
ariel-
54d0b31c40 Core/Spell: reimplemented TRIGGERED_DISALLOW_PROC_EVENTS trigger flag
Triggered spells shouldn't chain-trigger other spells

Closes #18217

(cherry picked from commit bb8763534e)
2017-12-10 18:42:40 +01:00
ariel-
4b1165af45 Core/Entities: add yet another utility overload to CastSpell, fixes AppVeyor build
Ninja NULL->nullptr cleanup

(cherry picked from commit 44ea63e34d)
2017-12-10 18:40:18 +01:00
ariel-
70a89debfe Core/Spell: make a distinction between triggered flags with debugging purposes, and don't use them when casting triggered spells
Fixes #9721 (also other spells affected, example Threat of Thassarian, Stormstrike)

(cherry picked from commit 85143f305d)
2017-12-10 18:37:00 +01:00
ariel-
eb2b0151a4 Core/Spells: do not add PROC_HIT_NORMAL/PROC_HIT_CRITICAL flags if damage is fully nullified
- Aka: full absorbs/full resists/full blocks/immune

(cherry picked from commit 2e457b3be4)
2017-12-10 18:25:47 +01:00
DantestyleXD
3846d7a51d Core/Creature: Define battle pet npcflag (#20986) 2017-11-28 21:01:46 +01:00
Hadifaren
cc7c3f8d7d Core/Spells: Implemented SPELL_AURA_MOD_MAX_POWER 2017-11-22 12:35:00 +01:00
joschiwald
f9067f2aab Core/Auras: don't save auras casted by items
* Core/Auras: don't save auras casted by items

- This type of auras (like Water Bucket, Precious Ribbon, etc) will be recasted on login anyways.

This reverts commit 16cfd59f5b

(partial cherry picked from commit e84dfff4ce)

Core/Auras: fix elixir aura saving

(cherry picked from commit 697147a596)
2017-11-19 16:25:30 +01:00
Shauren
331c70e695 Core/Players: Fixed DK runes and runic power
Closes #19595
2017-11-12 02:42:06 +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-
d56f65eb34 Core/Unit: send original caster in heal packet log
(cherry picked from commit a9921a5dd7)
2017-11-11 20:49:26 +01:00
ariel-
4c5815600f Core/Unit: allow pets and totems to drop mod charges in owner auras.
Needed for Cobra Strikes (re)implementation

(cherry picked from commit 51e4983422)
2017-11-05 12:49:05 +01:00
ariel-
e4bb4842b5 Core/Unit: fix logic error in DamageInfo::ModifyDamage.
Previous code did not protect against m_damage underflow, rather only allow up to duplicate damage.
It now should work as intended.

Closes #18154
(cherry picked from commit 7ced76bab2)

Core/Unit: fix warning reported by VS2015

C4146: unary minus operator applied to unsigned type, result still unsigned
(cherry picked from commit 7b1a0c3698)

Core/Unit: consistency fix
(cherry picked from commit 042023877a)
2017-11-05 11:30:58 +01:00
ariel-
3447b2790d Core/Unit: CalculateMeleeDamage should use unmodified damage to compute HitInfo
d3a71a8338 follow-up

(cherry picked from commit 8da43fb7c7)
2017-10-15 17:28:02 +02:00
ariel-
fe2e3b67a8 Core/Spells: use DamageInfo struct to calc spell absorbs and resists, and use calculated proc hitMask on aura ticks
Closes #18135

(cherry picked from commit d3a71a8338)

# 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/SpellEffects.cpp
#	src/server/scripts/Commands/cs_misc.cpp
2017-10-15 16:59:56 +02:00
ariel-
175bc752e8 Core/Unit: fix chain cc's not being diminished properly
Logic fail in 9b0fa51022 (now diminishing info is always initialized)

(cherry picked from commit 2f03d502f3)
2017-10-15 16:59:55 +02:00
ariel-
dc6eef8027 Core/Unit: prematurely abort GetFactionTemplateEntry instead of returning a null pointer
Factions should never be invalid for players/spawned creatures anyways

Ref #18113

(cherry picked from commit 5f580c9d3d)
2017-10-15 16:16:06 +02:00
Ovah
020825902c Core/AI: implemented AI hook for interrupting spells (#20610) 2017-10-13 22:17:04 +02:00
joschiwald
e6f8821bd0 Dropped obsolete code added in 2d75d8071b 2017-10-03 22:15:41 +02:00
ariel-
88ae5f6068 Core/Unit: Change aura proc pair container to vector
(cherry picked from commit 34f734c890)
2017-10-03 21:14:28 +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
Keader
ff90a3f3c4 Core/Unit: Remove incorrect check that dont allow units attack your vehicle/passenger (#17932)
(cherry picked from commit f0cd28be3d)
2017-10-03 15:31:22 +02:00
ariel-
6ea0095817 Core/Unit: disallow parry for totems
(cherry picked from commit b1777979c3)
2017-09-06 13:36:06 +02:00
ariel-
0b4088fdb8 Core/Spell: Fix 2 more off by one probability calc and duplicated logic in spell hit roll
(cherry picked from commit 4cdbc1a09b)
2017-09-05 12:14:01 +02:00
Shauren
c072cfed79 Core/Spells: Removed old Spirit of Redemption code 2017-08-29 23:27:52 +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
ariel-
2e0d3d25ff Core/Unit: implemented crit suppression
Thanks Riztazz for the infos :P

(cherry picked from commit 8a82a3ba81)

# Conflicts:
#	src/server/game/Entities/Unit/Unit.cpp
2017-08-21 21:11:05 +02:00
joschiwald
6ff75a0345 Core/Misc: Removed obsolete comments 2017-08-19 19:08:43 +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
Shauren
43d268d75c Core/PacketIO: Renamed "movementInfo" to "Status" in movement packets in effort to preserve original naming (and to follow codestyle for naming public data members) 2017-08-16 23:22:41 +02:00
joschiwald
f5ef48d188 Core/Spells: Defined SPELL_AURA_PREVENT_INTERRUPT and SPELL_AURA_PREVENT_CORPSE_RELEASE 2017-08-14 21:03:32 +02:00
ariel-
f17cb00ee3 Core/Unit: fix weapon skill up.
Closes #18044

(cherry picked from commit 5b7078c30a)
2017-08-13 15:24:53 +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
43c3a78079 Core/LFG: Fixed role check cancel time 2017-07-30 14:58:42 +02:00
joschiwald
6f8b60101f Core/Misc: Fixed armor mitigation after 5675902485
* Also fixes gcc build with -Werror enabled
2017-07-30 13:11:43 +02:00