Commit Graph
1178 Commits
Author SHA1 Message Date
Gildor eab8e4aefb Core/Gameobjects: Improve stealth detection 2022-09-12 09:15:27 +02:00
Shauren eeef100e08 Core/Spells: Fixed checking free inventory space for some spells that have bad dbc data 2022-09-12 09:15:27 +02:00
jackpoz c237b056b3 Core/Spells: Fix missing "Inventory is full" with spells that create more than 1 item 2022-09-12 09:15:26 +02:00
Ovahlord 5724e4c578 Core/Spells: fixed more cherrypick mistakes 2022-09-12 09:15:26 +02:00
Ovahlord ec09a4830a Core/Spells: resolved a couple cherrypick mistakes 2022-09-12 09:15:25 +02:00
Treeston ce662d1ad7 Core/Spells: Spell pushback now only affects players (as it should)
# Conflicts:
#	src/server/game/Spells/Spell.cpp
2022-09-12 09:15:25 +02:00
Wyrserth b5e177edbc Core/Spell: fix some issues with taunt spells 2022-09-12 09:15:25 +02:00
Wyrserth 2f5fd3f227 Core/Spells: don't allow spells with SPELL_EFFECT_CREATE_ITEM_2 to be cast if there isn't enough space in inventory 2022-09-12 09:15:24 +02:00
brotalnia 7cc33f1bb7 Core/Spells: Return CheckCast result from CastSpell (#23236)
* Return CheckCast result from CastSpell

* Return cast result from UnitAI methods too.
2022-09-12 09:15:23 +02:00
PolarCookie 81e5943bd0 Core/Spell: SpellAura Redux (#22794)
* typo and correction

* spell aura no longer shared between targets

_spellAura isolated

* SPELL_AURA_CONTROL_VEHICLE is not strictly single target spell

Steam Tank Control and Wyrmrest Commander

units can reseat themselves again

* Rename 9999_99_99_99_world.sql to 2019_03_08_00_world.sql
2022-09-12 09:15:23 +02:00
Shauren 5ceba73504 Core/Spells: Corrected haste affecting GCDs to match 3.3.5 client logic 2022-09-12 09:15:21 +02:00
Shauren dc8bf301bb Core/Auras: Fixed saving auras with same spell id but different item source 2022-09-12 09:15:21 +02:00
PolarCookie b4b8fffa22 Core/Spells: fix issues with delayed spells and auras 2022-09-12 09:15:20 +02:00
ariel- 80b256795c Core/Spells: always initialize hitinfo aura
Ref 437c5c7b9d2122f7b1f46fd4e0f502c8be1e3091
2022-09-12 09:15:19 +02:00
ariel- 82ffeb587b Core/Spells: fix delayed hit aura crash 2022-09-12 09:15:18 +02:00
ariel- 460c317399 Core/Spells: fix issues with delayed spells and auras
- Was losing info of delayed targets due to remove_if move-assigning targets, it needs to be saved into delayed target vector before returning from lambda
- Delayed auras applying on many targets are now handled gracefully
2022-09-12 09:15:17 +02:00
ariel- 427582b0f7 Core/Spells: only apply aura effects when needed. 2022-09-12 09:15:17 +02:00
ariel- 55577ad85b Core/Spells: Fix some issues with channeled spells and aura duration mods 2022-09-12 09:15:16 +02:00
ariel- b3c8d78fa2 Core/Spell: fix SendSpellMiss requiring caster Unit 2022-09-12 09:15:16 +02:00
ariel- c889b81f2c Core/Spell: fix target checks
- Aura will be applied at last moment possible (after damage) to prevent regressions on #18395
- Partial revert of 9b38a6352c0fe2499de54fd769aa1c721a410bda as it wasnt handling correctly checks without spells
2022-09-12 09:15:15 +02:00
ariel- 1fe5563431 Core/Spells: Fix periodic rolling adding bonuses twice
Calculation is now done in CalculateAmount
2022-09-12 09:15:15 +02:00
ariel- b6fac86b71 Core/Spells: rework part 5: GameObject casting 2022-09-12 09:15:14 +02:00
Ovahlord c901772640 Core/Misc:
* applied character database updates for the caster depenency removal
* corrected implementation of SPELL_ATTR3_SUPPRESS_CASTER_PROCS and SPELL_ATTR3_SUPPRESS_TARGET_PROCS based on master branch
* removed a duplicate SpellAuraInterruptFlags::ActionDelayed removal call
2022-09-12 09:15:14 +02:00
ariel- 4bb8c93df8 Core/Spells: rework part 4: iterate over effects first
Implement far spell queue processing

# Conflicts:
#	src/server/game/Spells/Spell.cpp
2022-09-12 09:15:13 +02:00
ariel- 3fbbea61bd Core/Spells: rework part 3: spells only handle at most one UnitAura and one DynObjAura during its lifetime
# Conflicts:
#	src/server/game/Spells/Auras/SpellAuras.h
2022-09-12 09:15:13 +02:00
ariel- 98a988a77a Core/Spells: rework part 2: Split up target selection logic
Target check only determines what kind of entities we can target, spell positivity determines if that entity is valid for attack/assist
2022-09-12 09:15:13 +02:00
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