Commit Graph
1152 Commits
Author SHA1 Message Date
ariel- 95bc5dcc40 Core/Spells: rework part 1: Improved positive detection logic
# Conflicts:
#	src/server/game/Spells/SpellInfo.cpp
2022-09-12 09:15:12 +02:00
ariel- 64b9b1c28b Core/Spells: kill unused parameter from Spell constructor 2022-09-12 09:15:10 +02:00
ariel- 0d6840ee7f Core/Spell: killed deprecated code which randomly changed powercost for missed spells 2022-09-12 09:15:09 +02:00
ariel- 6fc5bfcd08 Core/Unit: fixed crash 2022-09-12 09:15:05 +02:00
ariel- 1d3fbff332 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
2022-09-12 09:15:04 +02:00
Shauren d448ea4370 Core/Spells: Rename SpellAttr0 to use official attribute names 2022-09-12 09:15:04 +02:00
Ovahlord 67a5f43536 Core/Spells: no longer allow trigger npcs to trigger combat mechanics when launching or hitting spells 2022-07-02 18:15:16 +02:00
Chaouki Dhib a588f62838 Core/Spells: Change the radius of PBAoEs following the feedback received on (#16290)
# Conflicts:
#	src/server/game/Spells/Spell.cpp
2022-06-16 22:44:09 +02:00
Ovahlord c63c81ef6c Core/Packets: enable and implement SMSG_SUMMON_RAID_MEMBER_VALIDATE_FAILED
* refactored target based summoning to not longer store targets in the target map and pull the directly from the caster's target update field in the effect handler
* implement support for party based summoning and use the new opcode to send error messages when a player cannot be summoned. Note: this packet does support sending multiple reasons for multiple members but sniffs show that they are still being sent one by one instead. Just Blizzard things
2022-05-17 20:43:49 +02:00
Ovahlord 82c9e10a2a Core/Spells: restore handling for src_area_x channel target selection 2022-03-28 22:51:41 +02:00
Ovahlord 1534ede45a Core/Spells: updated proc flags for Cataclysm 2022-02-23 21:17:52 +01:00
Ovahlord f641bcb2d1 Core/Spells: resolved a cherrypick error 2022-02-22 21:51:21 +01:00
Shauren c307969695 Core/Spells: Changed channel triggered spells to inherit positive/negative status from main spells 2022-02-22 21:24:49 +01:00
Ovahlord 78896a132f Core/Spells: ported proc flag updates from master branch 2022-02-22 21:19:09 +01:00
Chaouki Dhib 17c4d8f6d9 Core/Spells: fix wrong distance calculations in AoE spells [Needs testing] (#16290)
Core/Spells: Fix wrong distance calculations in AoE spells.
Pull request #16290 by chaodhib.
God bless, finally.

(cherry picked from commit a1f2f30c145f6ad9c4baeffeff32618e71ff537c)
2022-02-16 04:49:24 +01:00
xinef1 df9738aaa9 Core/Misc: Fixed player corpse looting, added player corpse loot and some more (#19122)
* Fixed corpse looting in wintergrasp
Added corpse loot for wintergrasp quests and To the Looter Go the Spoils (1166) achievement
Don't generate money for loot if no loot mode is available
Simplified few things

(cherry picked from commit 2412886ef69d305df1bd6e6422ca3134c0ab1449)
2022-02-16 04:49:24 +01:00
Ovahlord 2bef0ce3f6 Core/Spells: fixed logic for selecting a channel focus target 2022-01-23 12:44:08 +01:00
xinef1 9da4acce08 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

(cherry picked from commit c6060dd0c511ddad3cb1f0423aa9ccf2de7aedec)
2022-01-22 22:29:20 +01:00
Ovahlord 9892d239a8 Core/Spells: renamed SPELL_ATTR5_INCLUDE_MELEE_RANGE to SPELL_ATTR5_TREAT_AS_AREA_EFFECT and handle the attribute in SpellInfo::IsAffectingArea 2022-01-16 11:44:49 +01:00
Ovahlord 319ef144b4 Core/Spells: SPELL_ATTR0_CU_CONE_LINE is no longer taking a target's combatreach into account to avoid being falsely hit when not even inside of the cone 2022-01-14 21:37:08 +01:00
Ovahlord 86d8443732 Core/Spells: further fixups for spell focusing and channel target selection
* SPELL_ATTR1_SELF_CHANNELED is now also considering targets when required
2022-01-14 21:36:13 +01:00
Ovahlord 520b53a5e0 Core/Spells: added a helper to determine whenever a periodic aura should roll over its duration on refresh
* introduce another custom spell attribute to grant full control over when or when not to roll over ticks
2022-01-14 18:46:03 +01:00
Ovahlord 9085526f9a Core/Spells: define and implement SPELL_ATTR8_PERIODIC_CAN_CRIT
* SPELL_ATTR8_DONT_RESET_PERIODIC_TIMER has been moved to a custom attribute (SPELL_ATTR0_CU_DONT_RESET_PERIODIC)
2022-01-12 17:33:34 +01:00
Ovahlord 3ff8840fe2 Core/Items: ported several enchantment flag implementations from master branch 2022-01-09 18:15:38 +01:00
Shauren a322e4eb37 Core/Spells: Implemented target 124 TARGET_UNIT_TARGET_TAP_LIST 2021-12-30 20:16:33 +01:00
Shauren 28f79765ca Core/Spells: Implemented target 62 TARGET_DEST_CASTER_GROUND (the same as target 125) 2021-12-30 20:00:42 +01:00
Shauren 7ef17f416c Core/Spells: Rename TARGET_UNIT_CONE_ENEMY_54 to TARGET_UNIT_CONE_180_DEG_ENEMY and add 180 degree fallback for this target type 2021-12-30 19:57:50 +01:00
Shauren 8e657a9b7c Core/Spells: Implemented target 105 TARGET_UNIT_CASTER_AND_PASSENGERS 2021-12-30 19:55:29 +01:00
Shauren 0ef0498d13 Core/Spells: Rename TARGET_UNIT_CONE_ENEMY_104 to TARGET_UNIT_CONE_CASTER_TO_DEST_ENEMY 2021-12-30 19:46:50 +01:00
Shauren fbf2a2e531 Core/Spells: Allow targeting script hooks to work with TARGET_DEST_DYNOBJ_ENEMY, TARGET_DEST_DYNOBJ_ALLY, TARGET_DEST_DYNOBJ_NONE, TARGET_DEST_DEST
# Conflicts:
#	src/server/game/Spells/Spell.cpp
2021-12-30 19:40:19 +01:00
Ovahlord 47170c11c6 Core/Spells: fixed a typo in 3a2e3452e0 2021-11-17 18:44:40 +01:00
Ovahlord 3a2e3452e0 Core/Spells: implement TARGET_UNIT_CASTER_PASSENGERS (105)
closes #297
2021-11-17 17:47:18 +01:00
Ovahlord edbbeba5a2 Core/Movement: ported client control logic updates from 335 branch 2021-11-06 23:41:34 +01:00
Ovahlord b10f962ba3 Core/Creatures: several cleanups and improvements to spell focusing to reduce edge case issues 2021-10-21 13:18:24 +02:00
Ovahlord 949f92e0a1 Core/AI: ported charm updates from 335 2021-09-16 16:48:07 +02:00
Ovahlord 0dfa919f09 Core/Creatures: optimized sparring checks by handling them via variable instead of map lookups and expose its value to helpers to allow manipulation during runtime 2021-07-26 15:48:16 +02:00
Ovahlord 8011d2de29 Core/Spells: ported resistance and immunity updates from 3.3.5 branch 2021-06-12 14:10:44 +02:00
Ovahlord 2dce3955b2 Core/Spells: defined and implement SPELL_ATTR1_DISCOUNT_POWER_ON_MISS 2021-05-16 19:04:54 +02:00
Ovahlord 4436b46908 fixed build 2021-05-15 20:33:17 +02:00
Ovahlord 16675c0f2f Core/Packets: converted CMSG_CAST_SPELL to packet class 2021-05-15 20:11:33 +02:00
Ovahlord 2bedccd8b0 Core/Spells: added more case-by-case checks to determine auto action resets 2021-05-01 10:02:58 +02:00
Ovahlord fe909f8234 Core/Spells: tempoarily add an additional check to avoid many spells falsely resetting melee swing timers 2021-04-30 10:30:37 +02:00
Ovahlord bf28dfcf0c Core/Spells: corrected a check when retrieving mechanic immunities in cast and channel packets and fixed a typo in SMSG_CHANNEL_START that was overwriting school immunities with mechanic immunities instead 2021-04-27 15:42:50 +02:00
Ovahlord eda56e744c Core/Spells: corrected check of b29d84af98 2021-04-21 20:00:23 +02:00
Ovahlord b29d84af98 Core/Spells: defined and implemented SPELL_ATTR2_INITIATE_COMBAT_POST_CAST 2021-04-21 19:07:15 +02:00
Ovahlord 9ff4bbd085 Core/Spells: ported implementations of SPELL_AURA_DISABLE_CASTING_EXCEPT_ABILITIES and SPELL_AURA_DISABLE_ATTACKING_EXCEPT_ABILITIES from master branch
closes #93
2021-04-21 18:51:34 +02:00
Ovahlord 0ae10d09a2 Core/Packets:
* converted SMSG_SPELL_FAILURE, SMSG_SPELL_FAILED_OTHER and SMSG_SPELL_DELAYED to packet class
* converted SMSG_RESURRECT_REQUEST to packet class and handle SPELL_ATTR3_IGNORE_RESURRECTION_TIMER
2021-04-16 17:53:18 +02:00
Ovahlord 96fe5e76a9 Core/Spells: fixed a typo when checking for SPELL_ATTR3_CANT_TRIGGER_TARGET_PROCS in prepareDataForTriggerSystem 2021-04-09 14:14:04 +02:00
Ovahlord 77158594ff Core/Spells:
* renamed SPELL_ATTR3_CANT_TRIGGER_PROC to SPELL_ATTR3_CANT_TRIGGER_CASTER_PROCS and expanded its implementation
* renamed SPELL_ATTR3_NO_INITIAL_AGGRO to SPELL_ATTR3_CANT_TRIGGER_TARGET_PROCS and implement the attribute
* expanded implementation SPELL_ATTR2_NO_INITIAL_THREAT to cover all remaining spots
2021-03-30 17:50:27 +02:00
Ovahlord e93a66d287 Core/Spells: defined and implemented SPELL_ATTR5_DONT_TARGET_PLAYERS 2021-03-30 10:26:15 +02:00