Commit Graph

669 Commits

Author SHA1 Message Date
ariel-
2d0fb356de Core/Spell: clear auras of channeled spells if channeling is cancelled due to invalid targets (dead or w/e)
Closes #14859
Closes #15186
2016-10-17 04:33:36 -03:00
ariel-
9b0fa51022 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
2016-10-17 01:52:40 -03:00
Shauren
1c7f099297 Core/Items: Defined all item flags
(cherry picked from commit ef29f32965)
2016-10-11 19:46:29 -03:00
ariel-
4cdbc1a09b Core/Spell: Fix 2 more off by one probability calc and duplicated logic in spell hit roll 2016-10-09 20:18:07 -03:00
ariel-
d078029124 Revert "Core/Unit: prevent m_extraAttacks underflow. Fixes a freeze with SPELL_EFFECT_ADD_EXTRA_ATTACKS"
This reverts commit f09e7cbbfe.
2016-10-07 12:50:08 -03:00
ariel-
f09e7cbbfe Core/Unit: prevent m_extraAttacks underflow. Fixes a freeze with SPELL_EFFECT_ADD_EXTRA_ATTACKS 2016-10-05 22:46:26 -03:00
ariel-
b5e8e0a5db Core/Auras: reset periodic aura timers by default. Except when aura comes from triggered spell
Closes #17961
2016-10-05 03:10:05 -03:00
ariel-
d9e4c8e04f Core/Spells: add Target Processing (SMSG_SPELLLOGEXECUTE) to LAUNCH_TARGET phase.
Move EffectInterruptCast to LAUNCH_TARGET Phase.

Closes #3718
Closes #6042
2016-10-04 23:35:50 -03:00
ariel-
e641d0c7d7 Core/Spells: Implementation of QAston proc system
- Move checks from Unit::IsTriggeredAtSpellProcEvent (old system) to Aura::IsProcTriggeredOnEvent (new system)
- Templatize SpellModOp param of Player::ApplySpellMod, also 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
2016-10-04 20:21:55 -03:00
joschiwald
625ca6ec1c Core/Spells: fixed SPELL_ATTR5_USABLE_WHILE_STUNNED 2016-10-02 23:32:14 +02:00
ariel-
03e21d2fad Core/Spells: Implemented SPELL_ATTR6_NOT_RESET_SWING_IF_INSTANT.
Closes #1765
2016-10-02 00:24:47 -03:00
joschiwald
8024ae4d26 Core/Spells: use spellinfo helper methods
(cherry picked from commit 12a52595ed)
2016-10-02 00:25:21 +02:00
ariel-
08e0390d95 Core/Spell: do not cast interrupt effect if the spell did not hit 2016-09-12 12:41:02 -03:00
ariel-
746b838870 Core/Spells / Scripts: Fix Lock and Load. Closes #16731 2016-09-04 04:21:04 -03:00
ariel-
4829cca9fb Core/Spell: no need to bloat existing parameter lists. (f81754a306 follow up) 2016-09-02 03:59:14 -03:00
ariel-
f81754a306 Core/Spells: register SPELLMOD_CRITICAL_CHANCE in casting spell modifiers. 2016-09-01 01:34:17 -03:00
ariel-
3aa145cbe1 Core/Spells: Remove spellmods from SpellMod owner instead of caster (needed so pet casts properly remove aura charges) 2016-09-01 01:14:02 -03:00
ariel-
11f6801a5c Core/Spells: fix Bullheaded immunities
Closes #421
2016-08-31 23:12:57 -03:00
Shauren
39311e0ce8 Typo fix 2016-08-21 18:40:06 +02:00
mik1893
6d07fbf07c Core/Spells: Fixed spells like Shadowform, Tricks of the Trade, Misdirection getting stuck in unusable state clientside if they failed earlier because of GCD
Closes #657
Closes #12913
Closes #17376
2016-08-21 11:32:42 +02:00
Treeston
6f85422f0b Core/Spells: Fix orientation- and targeting-related issues if the creature isn't currently engaged in combat. (#17120)
Also disable spell focus system for vehicle control auras.

Closes #16572
Closes #17016
2016-08-21 11:07:38 +02:00
Treeston
8deda7ed7f Entities/Unit: Cleanup refactor. Changes: (#17819)
+ Unit::m_movedPlayer -> Unit::m_playerMovingMe
+ Player::m_mover -> Player::m_unitMovedByMe
+ Unit::GetMover() -> Unit::GetUnitBeingMoved()
+ Unit::GetPlayerMover() -> Unit::GetPlayerBeingMoved()
+ NEW: Unit::GetClientControllingPlayer()
2016-08-20 12:43:04 +02:00
Chaouki Dhib
333a3e05f6 Core/Spells: Fixed extended spell range while moving Closes #17818 (#17824)
Cherry pick of 10e0f4ff8f
Closes https://github.com/TrinityCore/TrinityCore/issues/17818
2016-08-20 00:25:30 +01:00
Chaouki Dhib
d7600f1126 Core/Units: Fixed melee range check (#17693)
* Split Spell::CheckRange() into 2 methods since that method had more than one responsibility.
* Moved melee range logic into its own function
* Moved melee range logic method GetMeleeRange from Spell to Unit class. Unit::IsWithinMeleeRange() and Spell::GetMinMaxRange() both use that method.
2016-08-15 18:17:07 +02:00
treeston
837caa0534 Merge remote-tracking branch 'Treeston/3.3.5-spellcastresult' into 3.3.5 (PR #17112) 2016-08-03 10:52:11 +02:00
treeston
03bef35500 Core/Spell: Quick readability change. Functionality not altered. 2016-07-20 15:23:14 +02:00
Aokromes
a832865ce2 Core/Misc: Coding standard (#17521) 2016-07-06 10:54:36 +02:00
Aokromes
fda9f1a136 Core/Mmaps: Charge ignoring z position of target (#17516)
* Core/Mmaps: Charge ignoring z position of target

By cemak closes #15011
2016-07-06 10:23:12 +02:00
Shauren
ba63361d7c Core/Spells: Fixed spell dest range check failing on 0 distance max range requirement even if standing directly on top of destination 2016-07-05 16:59:37 +02:00
SnapperRy
b20912c8f6 Core/Spell: allow use of ground mounts while swimming (#17488) 2016-07-05 03:11:21 +02:00
Shauren
e6a52d4aae Core/Spells: Fixed spell range check
Closes #17060
2016-07-01 20:26:49 +02:00
mik1893
fd88a67182 Core/Spells: Implement SPELL_ATTR7_INTERRUPT_ONLY_NONPLAYER (#17160)
* Core/Spells: Implement SPELL_ATTR7_INTERRUPT_ONLY_NONPLAYER
Closes #14972
2016-06-14 20:06:00 +01:00
Shauren
f765e8eb73 Core/Spells: Fixed all cases of spells that crash the client when pressing ESC after being cast 2016-06-13 22:02:44 +02:00
treeston & Keader
25c5570f47 AI/PlayerAI: Finally implement cast logic for controlled players. 2016-05-31 15:05:35 +02:00
Shauren
9246189b98 Core/Spells: Implemented SPELL_ATTR1_DISMISS_PET
Closes #7372
2016-05-26 16:04:16 +02:00
ForesterDev
fb0881398a Core: updated creature type flags enum (#17128)
Core/Misc: Update CreatureTypeFlags enum according to TrinityCoreWiki
2016-05-26 10:56:50 +02:00
Alan Deutscher
e7a12edb83 Core/Spells Make certain spells (e.g. Mind Control) properly flag the caster for PvP (#17145)
* This issue was caused by PvP-flagging being done calculated after the target's flag was turned off by becoming a pet.
2016-05-18 11:06:24 +02:00
Treeston
2ae85d86d3 Merge pull request #17037 from Keader/TargetedMovementGeneratorFix
Core/Movement: Fix issues where creatures cancel spell casts chasing target and Implement SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING
2016-05-13 23:20:47 +02:00
Nawuko
bf2cee8cce Core/Movement: Fix issues where creatures cancel spell casts chasing target and Implement SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING 2016-05-11 20:54:50 -03:00
treeston
4b15369378 Core/Spells: Check TRIGGERED_DONT_REPORT_CAST_ERROR flag in SendCastResult rather than CheckCast.
Fixes and closes #16836.
2016-05-11 18:33:43 +02:00
Kittnz
190c75c566 Merge pull request #16476 from Eliminationzx/FixWrongTotemPlacement
[3.3.5][6.x] Core/Spells: Fix wrong totem placement
2016-05-09 20:16:37 +02:00
Incorrect
1aa30d3cce Core/Spells: Fixed overwriting summon requests
Closes #17049
2016-05-01 12:31:55 +02:00
joschiwald
25da16ba44 Core/SpellScripts: allow to modify target destination of all target type 2016-04-23 16:13:12 +02:00
Shauren
a9b4375bb7 Core/Spells: Don't report spell errors to client when spell was triggered and failed some internal condition 2016-04-09 15:31:26 +02:00
treeston
f37682b7ed Merge branch '3.3.5-naxxcleanup' into 3.3.5. (PR #16524) 2016-03-23 20:17:17 +01:00
treeston
f8a6ab8ac5 No, Travis, I do not intend to handle SPELL_GROUP_STACK_RULE_MAX. It is not a value that should ever be actually used. Go away. 2016-03-23 18:13:02 +01:00
treeston
21cfacfba7 Entities/Pet: Finally fix pets spamming Blood Pact/Fel Intelligence in some scenarios. Your eardrums will thank me. 2016-03-23 18:09:33 +01:00
Vincent-Michael
5e74c2223b Core: Remove whitespaces 2016-03-16 21:40:15 +01:00
treeston
f4f7e6324d Scripts/Naxxramas: Clean-up and bug-fix megacommit. Read the full commit message if you care.
- Maexxna:
  - No longer packages pets and returns them to sender. Web Wrap now only targets players.
- Heigan the Unclean: Ripped its guts out.
  - Instance script hacks are gone.
  - GO spawns (done using the time-honored TC tradition of "eh, this'll work") are gone. You could say I evacuated the dance floor.
  - Sniffed spawns for all segments of the room. Because if you don't dance - well, you're no friends of mine.
- Loatheb:
  - First spore now spawns properly after 18 seconds on 10-man (down from 36 seconds). Time between subsequent spawns is unchanged.
- Thaddius:
  - Instance script hacks are gone. Again. Feels good man.
  - Players no longer drop out of combat during the phase transition. Put your snacks away, this is supposed to be a tense situation!
  - Thaddius will no longer savagely punish the main tank for stepping out of melee range for a fraction of a second by turning around and ball lightning-ing someone in the face. Typically a healer. He hates healers.
  - Thaddius will instead take out his frustration on another melee range target if available by smacking them in the face with his fists. It hurts, but a Ball Lightning would've hurt more. Blame the tank.
  - Feugen and Stalagg have been re-educated to improve their patience when a new target is flying towards them. They will no longer move while Magnetic Pull targets are mid-air, which should prevent them from running off their platform while the warrior helplessly flails trying to get them back.
- Instructor Razuvious:
  - Razuvious has been informed that Rubik's Cubes become noticably easier to solve if you buy six-colored ones. Thus, he will no longer take out his frustration out on raid groups by throwing unsolved two-colored variants at them. Fixes and closes #14966.
  - Death Knight Understudies will now realize that their situation is Hopeless even if they're currently mind controlled by a player. Apparently, if your situation is hopeless you take 5000% extra damage. No, that is supposed to be three zeroes.
- Gothik the Harvester:
  - Gothik has been schooled in proper Shadow Bolt spamming etiquette and will now take a brief pause to catch a breath and recompose himself between bolts.
- The Four Horsemen:
  - Will no longer stop and stare at the group sometimes when engaged instead of starting the encounter.
  - Horsemen can no longer be affected by stun, snare and shackle (heh, yeah, you could totally shackle Baron Rivendare) effects. It's called "Four Horsemen" after all, not "Three Horsemen that never attack because their friend can't move".
- Sapphiron:
  - When attempting to FREEZE THE BLOOD IN YOUR VEINS... Wait, no. Wrong boss. I was thinking of #16634.
  - Anyways, when freezing people into an Ice Block, Sapphiron now takes care to actually place the block on top of the frozen player, even if they were moving or jumping when the bolt hit them. Yay for positioning clarity!
  - Sapphiron has been sent to take multiple mandatory courses in "How to treat raid parties fairly while attempting to murder them" and will thus...
    - ...now properly pause after taking off to allow players to get into position before smacking them with ice bolts
    - ...no longer deal damage to players inside an Ice Block while they cannot fight back.
  - Being forced to attend the courses mentioned above has led to a large amount of pent-up frustration, which Sapphiron relieves by quite forcefully flapping his wings during take-off. Players immediately below him are now properly knocked back.
  - In addition, Kel'thuzad was sick of Sapphiron's continous pouting and allowed him to make Blizzard more malicious in exchange. Blizzard will now properly spawn near players and chase them down instead of pathing randomly.
- Also, tons of code style cleanups and hack removal that wasn't mentioned above. Read the diff if you really care.
2016-03-08 13:36:57 +01:00
joschiwald
b4b43d03b3 Core/Spells: spells with SPELL_ATTR1_NO_THREAT also causes no initial aggro 2016-02-10 22:35:23 +01:00