Commit Graph

1599 Commits

Author SHA1 Message Date
jackpoz
48c5c0d7a2 Core/Misc: Fix Clang 10 build warnings 2020-05-31 15:52:28 +02:00
Giacomo Pozzoni
bd2d60c267 Fixes/3.3.5 aura infinite loop (#24631)
* Core/Auras: Attempt to fix infinite loop with aura 18950 on map unload

* Core/Auras: Log a detailed error and assert when failing to remove all auras after a few tries

* Code cleanup

* Fix build warnings

* Fix more build warnings
2020-05-16 11:06:03 +02:00
HelloKitty
43b595111d Further improve ChrRace DBC handling (#24508)
* Core/DBC: Added ChrRacesAllianceType for ChrRaces.dbc

* Core/Character: Check ChrRace DBC playable in HandleCharCreateOpcode

* Core/DBC: Implement ChrRacesFlags removing literals

Cannot take credit for this enum, derived from documentation in
https://wowdev.wiki/DB/ChrRaces

* Core/Character: Check CHRRACES_FLAGS_NOT_PLAYABLE on creation

* Core/DBC: Fix formatting of ChrRaces enums

* Core/DBC: Use ChrRaces CreatureType instead of hardcoded humanoid assumption

* Address enum style code changes
2020-05-15 20:41:16 +02:00
HelloKitty
772f506a3b Improve Creature DBC Handling (#24509)
* Core/DBC: Add CreatureModelDataFlags to remove hardcoded literals

* Core/DBC: Use CreatureType flags in Creature::CanGiveExperience calculation

* Core/DBC: Fixed CreatureType Flags Misinterpretation

Meaning of this was wrong, wowdev wiki was incorrect. Partially reverts
0d61e653f4841d5c9745639a6bdf7487b4d082fe

* Address enum codestyle

* Update DBCStructure.h

* Update DBCfmt.h

Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com>
2020-05-10 14:30:25 +02:00
Shauren
1fecbc6892 Core/Units: Allow mind controlling non-controllable vehicles (for example players that become vehicle during boss encounters or creatures that only are vehicles to show non standard power type)
Closes #24562
2020-05-06 16:45:03 +02:00
Shauren
829cf38c67 Core/Spells: Relaxed aura exclusivity check to allow casting spells that have other, non-aura effects even if aura will not be applied
Closes #24553
2020-05-03 16:19:19 +02:00
Shauren
50576fa1f5 Core/Auras: Prevent getting negative scale with auras
Closes #24040
2020-04-28 18:03:51 +02:00
Shauren
43d9ffd1bc Core/Spells Fixed scroll stacking check when not targeting self
* Reuse code that removes non-stackable auras at apply to check before casting the spell to keep reagents/cast item
2020-04-28 11:02:27 +02:00
Ovah
f1e4ee21f8 Core/AI: Implemented OnSpellCastInterrupt and OnSuccessfulSpellCast hooks
Ported from: 020825902c and 1aa42e97a8
2020-04-25 16:07:18 -03:00
Gildor
5e15406278 Core/Unit: Improve HitInfo absorb and resist flags logic in Unit::CalculateMeleeDamage (#24460) 2020-04-18 15:21:15 +02:00
ForesterDev
e1a8ebc064 Core/PacketIO: updated SMSG_DURABILITY_DAMAGE_DEATH (#24442)
- use RATE_DURABILITY_LOSS_ON_DEATH for death from falling
- add note, that RATE_DURABILITY_LOSS_ON_DEATH doesn't change log message

(cherry picked from commit a1831e0c1e)

# Conflicts:
#	src/server/game/Entities/GameObject/GameObject.cpp
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Entities/Unit/Unit.cpp
#	src/server/game/Server/Packets/GameObjectPackets.h
#	src/server/game/Server/Protocol/Opcodes.cpp

Co-authored-by: MitchesD <majklprofik@seznam.cz>
2020-04-14 14:00:53 +02:00
jackpoz
eb31ae9b18 Core/Misc: Fix linux build 2020-04-11 11:45:44 +02:00
jackpoz
9c9f4d6d20 Core/Unit: Ceil damage instead of rounding it
a0d5088850 followup, use std::ceil instead of std::round . This ensures at least 1 damage point will be done after applying armor reducing.
2020-04-10 23:24:29 +02:00
jackpoz
a0d5088850 Core/Unit: Round damage instead of truncating it
Round damage instead of truncating it when calculating armor-reduced damage. This fixes some level 1 creatures doing 0 damage (displayed as "Miss" ingame)
2020-04-10 00:11:54 +02:00
Ovah
bea850fb73 Core/Objects: cache current liquid status of objects when updating position data and use it to replace unnecessary vmap lookups (#24399)
* dropped unneeded IsUnderwater override for players since the default position data update considers collision height already so we don't have to rely on that tempfix anymore. This actually fixes breathing bars showing up depending on your characters size (gnomes get their breathing bar earlier, taurens later etc)
2020-04-07 23:28:44 +02:00
Giacomo Pozzoni
3def52c1c4 Core/Logs: Log full guid instead of just low guid, part 2 2020-04-05 19:10:58 +02:00
Giacomo Pozzoni
468ecb7252 Core/Logs: Log full guid instead of just low guid 2020-04-05 19:10:57 +02:00
ForesterDev
af6d207add Core/PacketIO: update some combat packets to new system (#24236) 2020-03-12 17:06:15 +01:00
NoName
6067a99632 Core/Spell: Proper SPELL_EFFECT_PULL_TOWARDS_DEST implementation for players (#24178)
* Core/Spell: Proper SPELL_EFFECT_PULL_TOWARDS_DEST implementation for players
Closes ##23203 and also reverts 9a1282a

thnx to xvwyh

* Make it optional
2020-03-01 20:15:54 +01:00
ForesterDev
f6e6baa293 Core/PacketIO: update SMSG_EMOTE / CMSG_EMOTE packets to new system (#24200)
* Core/PacketIO: update SMSG_EMOTE / CMSG_EMOTE packets to new system

* Change int32 to uint32
2020-02-28 19:29:05 +01:00
Ovah
6cbfda2fce Core/Units: UNIT_FLAG_PACIFIED will no longer block victim updates (#24190)
* Core/Units: UNIT_FLAG_PACIFIED will no longer block victim updates

* pacified units should only have their melee attacks blocked as counterpart to silence mechanics

* Core/Spells: removed unnecessary attack stop call from pacify aura effect handler
2020-02-28 19:22:25 +01:00
NoName
40542f01e3 Core/Movement: Implement MoveSplineFlag::Enter_Cycle (#24049)
by xvwyh
#22448
2020-02-28 19:03:52 +01:00
Ovah
98d6c501d7 Core/Vehicles: implement vehicle seat addon table to specify seat ori… (#24112)
* Core/Vehicles: implement vehicle seat addon table to specify seat orientation offsets and exit positions in form of offsets or absolute positions
* converted Traveler's Tundra Mammoth to seat addon table data

* first follow batch

* whoopsie

* Core/Vehicles: go from local copies to pointers

* Update and rename 2020_99_99_99_world.sql to 2020_02_08_01_world.sql

Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com>
2020-02-08 20:47:46 +01:00
Ovahlord
01584cb0b9 Core/Movement: reset position update interrupt info after the interrupt checks have been executed
* for discussion see: 02daf1bf3a (r36916229)
2020-01-22 20:40:09 +01:00
Ovah
02daf1bf3a Core/Movement: properly fix aura interrupts during movement (#24068)
We want our movement to be fully updated before even thinking about interrupting anything. The old logic was updating positions, interrupting stuff and afterwards updating movement generators. This way we were ending up with false interrupts.

properly fixes #22908
2020-01-22 13:32:38 +01:00
NoName
b3b7f0761d Core/Spells: SPELL_AURA_48 implementation (#24054)
by xvwyh
2020-01-17 16:50:50 +01:00
Kelno
2b024e8fbf Fixed PvP Combat timer never getting refreshed (#24058)
* Fixed PvP Combat timer never gets refreshed while meleeing

* Apply Treeston feedback

Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com>
2020-01-14 21:16:23 +01:00
Aokromes
ed93932537 New year
Say bye bye to every year changing dates
2020-01-02 06:25:50 +01:00
Giacomo Pozzoni
4ccf01de39 Fix fleeing speed to 66% run speed (#24025)
* Core/Movement: Fix fleeing speed to 66% run speed

Fix fleeing speed to 66% run speed until the creature starts returning home

* Fix build

* Don't check speed type

* Don't apply speed reduction twice

* Fix no-pch (1st try)

* Make sure every spell focus is interrupted when seeking assistance
2020-01-01 16:28:33 +01:00
Giacomo Pozzoni
e698c17a26 Core/Movement: Fix wrong orientation set when pausing movement (#23986)
* Core/Movement: Fix wrong orientation set when pausing movement

* Update MoveSpline.h

* Update Unit.cpp
2019-12-29 16:24:53 +01:00
Giacomo Pozzoni
18a4cbee5e Core/Creatures: Fix spell_school_immune_mask being applied against positive spells too (#23999) 2019-12-26 13:58:45 +01:00
ccrs
d033032d33 Core/Movement: delay movement update in MotionMaster until its owner signals AddToWorld
ref #23199
closes #23876
2019-10-21 13:55:23 +02:00
ForesterDev
c03c88d0c0 Core/Defines: define UNIT_FLAG_SWIMMING (#23630) 2019-10-13 17:43:23 +02:00
Gildor
f8d7b26047 Core/Misc: Fix parry-haste mechanic. (#23773)
* Should check victim that do a parry instead of the unit that deal the damage (Wrong implementation of this commit: 4a46fee03e )

Closes #23754
2019-09-07 12:57:02 +02:00
Giacomo Pozzoni
15e85f882f Core/Vehicle: Change vehicle accessories' phase according to the player on the vehicle (#23646)
* Core/Vehicle: Change vehicle accessories' phase according to the player on the vehicle

* Get the root vehicle to set the phase to all accessories.
Attempt to get the accessories to stay mounted on the vehicle.

* Fix the accessories to stay mounted on the vehicle
2019-08-04 11:33:29 +02:00
Wyrserth
0b87dffc35 Core/Spell: honor IsStackableOnOneSlotWithDifferentCasters() when deciding if an aura should stack from different casters or not. (#23579)
Fixes #23387 and #22818.
2019-08-03 09:29:56 +02:00
Ovah
d629bad7a1 Core/Spells: fixed root behaivior of creatures that are being rooted via movement template while getting a root aura removed (#23216)
* Core/Spells: do not allow root auras to bypass the root movement template state when getting removed

* yeah....
2019-08-01 15:40:07 +02:00
Treeston
0b722e23cf Entities/Unit: fix an unrelated check from doing nothing because somebody didn't understand how type-casting works 2019-08-01 01:27:10 +02:00
Treeston
a8b1b9a3c6 Entities/Unit: Add a missing underflow check to prevent really really low damage from underflowing when paired with flat damage modifiers. Closes #23655. 2019-08-01 01:27:10 +02:00
Treeston
9c603ea87f Core/Combat: Properly unset engagement flag on death. 2019-07-31 13:17:32 +02:00
jackpoz
9b292f4369 Core/Spells: Fix infinite loop
Fix an infinite loop caused by a mix of item 25498 and liquid damage
2019-07-28 17:13:48 +02:00
ForesterDev
915f8a9d2c Core/Totems: update select display for shaman totems (#23583)
(cherry picked from commit 8ca6a20e73)

# Conflicts:
#	src/server/game/Entities/Totem/Totem.cpp
#	src/server/game/Entities/Unit/Unit.cpp
#	src/server/game/Entities/Unit/Unit.h
#	src/server/game/Spells/SpellMgr.cpp
#	src/server/game/Spells/SpellMgr.h
#	src/server/game/World/World.cpp
2019-07-24 23:53:31 +02:00
Treeston
0e7c66cb4c Core/AI: Finally move the "is creature engaged" flag to be a property of the creature AI, where it honestly always belonged. Fixes #17981 and #23602 for real this time. 2019-07-21 01:50:52 +02:00
jackpoz
560b7e3397 Core/MovementGenerator: Add more details to asserts
Include movespline in Unit::GetDebugInfo() and the Player owner in FlightPathMovementGenerator::DoEventIfAny() assert
2019-07-18 20:09:00 +02:00
Wyrserth
5f5d2028df Core/Creature: don't set guardian stats in Creature::UpdateEntry(), because stat calculation from guardians is already done in Guardian::InitStatsForLevel.
Closes #281.

Signed-off-by: Wyrserth <wyrserth@protonmail.com>
2019-07-18 02:20:36 +02:00
ccrs
294a3a2789 Core/Unit: movement related corrections prior to getting Charmed 2019-07-12 20:06:27 +02:00
ccrs
4fa3c04b72 Core/Unit: f869c49 followup
Movement Pause/Clear is already handled in Unit::SetCharmedBy and Unit::RemoveCharmedBy, respectively

TODO: missing PAUSE handling in RandomMovementGenerator
2019-07-07 17:41:36 +02:00
Wyrserth
f869c4969e Core/Vehicle: prevent creature vehicles from following their old movement generator when a player enters them in some cases.
Closes #21731 and #22368.
2019-07-07 17:12:22 +02:00
Wyrserth
12e545f7e2 Core/Conditions: allow spellclick conditions to properly work for aura apply/remove (#23527) 2019-07-05 14:11:15 +02:00
ForesterDev
c44fb37f74 Core/Unit: Implement more helper methods (#23555) 2019-07-05 14:07:35 +02:00