Commit Graph
4988 Commits
Author SHA1 Message Date
Ovahlord e67167e8cf Core/Creatures: uncontrolled minions such as Army of the Dead and totem elementals will now be stored in the player's controlled list as well to trigger aggro mechanics 2020-04-22 00:40:48 +02:00
Ovahlord c00858d969 Core/Creatures: removed hacks from SetMinion helper 2020-04-22 00:21:50 +02:00
Ovahlord d30c811d9e Core/Creatures: reworked tempoary summon creation
* all stats and values will now be set before summons are getting added to map
* cleaned up summon spell effect handler to reduce duplicade code
* summoner guids will no longer be set for every minion and correctly handle assigning creator guids instead. These values will serve as fallback guid if there is no summoner guid
* friendly tempsummons will now inherit the guild data of their player and pass them on to further allied summons. This fixes guild specific visuals for creatures such as Guild Battle Standards and Guild Heralds.

Todo: check for regressions
2020-04-22 00:20:18 +02:00
Ovahlord 29aac17e2c Core/Packets: removed unused field from attacker state update field 2020-04-20 22:03:23 +02:00
Ovahlord 4daf6d5f23 Core/Packets: converted SMSG_ATTACKER_STATE_UPDATE to packet class 2020-04-20 19:09:29 +02:00
Ovahlord 937df192f6 Core/Packets: converted threat packets to packet class and fixed threat amount sent in them 2020-04-20 10:45:49 +02:00
Ovahlord 206cd7d6d7 Core/Units: std::floor for rounding rage gains 2020-04-19 23:19:59 +02:00
Ovahlord c537a2658a Core/Units: reworked power regeneration for players
* use a reversed client function to get the power regeneration rate for all types of powers
* unified all player based regeneration updates into a single statsystem helper
* cleaned up unnecessary regeneration timers
* implement power regeneration for alternative powers
* corrected rage gain numbers based on simulationcraft formulas
2020-04-19 22:53:29 +02:00
Ovahlord 0ea2200879 Core/Pets: use default pet follow angle when loading pets from database 2020-04-19 15:08:21 +02:00
Shauren ec6d64b9c6 Core/Player: Wait for correct transaction on character creation 2020-04-15 21:58:02 +02:00
Shauren ca881f7e3f Core/DBLayer: Implement async transaction completion callbacks 2020-04-15 21:41:14 +02:00
Shauren 40c3c785a2 Core/DBLayer: Prevent mixing databases with query holders
# Conflicts:
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Entities/Player/Player.h
#	src/server/game/Server/WorldSession.cpp
#	src/server/game/Server/WorldSession.h
2020-04-15 21:30:10 +02:00
Shauren 47acc59f49 Core/DBLayer: Prevent committing transactions started on a different database 2020-04-15 21:02:26 +02:00
Shauren d003ebd8e4 Core/DBLayer: Prevent using prepared statements on wrong database 2020-04-15 19:18:58 +02:00
Ovahlord a91424185b Core/Packets: convert SMSG_INIT_WORLD_STATES to packet class 2020-04-08 17:15:22 +02:00
Shauren cb6ce1302b Core/Misc: Defined new summon properties titles 2020-04-07 18:33:13 +02:00
Ovahlord b5bdf61e5f Core/Packets: converted SMSG_DURABILITY_DAMAGE_DEATH, SMSG_PLAY_ONE_SHOT_ANIM_KIT, SMSG_SET_AI_ANIM_KIT, SMSG_SET_MOVEMENT_ANIM_KIT and SMSG_SET_MELEE_ANIM_KIT to packet class 2020-04-07 16:29:30 +02:00
Ovahlord 113202ea48 Core/Packets: converted SMSG_PLAY_MUSIC to packet class and corrected packet structure 2020-04-07 15:59:33 +02:00
Ovahlord d31f19265d Core/Objects:
* store liquid status lookups from UpdatePositionData in a member and draw liquid status information from it instead of doing extra vmap lookups. This also fixes collision height based liquid status states which was leading to false positive movement speed selection for creatures
* remove redundant IsUnderWater helper override from player class as our object based liquid status also considers collision height
2020-04-05 20:41:15 +02:00
Ovahlord 9bf01799f0 Core/Packets: converted SMSG_PLAY_SOUND and SMSG_PLAY_OBJECT_SOUND to packet class and corrected packet structure of
SMSG_PLAY_OBJECT_SOUND
2020-04-05 19:28:49 +02:00
Ovahlord c7f5732571 Core/Units: corrected a warning fix for gcc build 2020-04-05 00:10:53 +02:00
Ovahlord 03f20765b8 Core/Players: fixed a typo in initial world state preparation 2020-04-04 20:27:28 +02:00
Ovahlord 77cf10ee5f Core/Misc: fixed gcc warnings 2020-04-04 20:20:41 +02:00
Ovahlord c2a676b774 Core/Movement: rewrite formation movement
* formation members will now draw their speeds from their formation leader and increase them based on how far they are behind their leader
* added sniffed periodic movement interval which additionally helps keeping up with formation leaders
* the formation movement generator will now persist permanently instead of being a one shot type and handles everything on its own once applied
2020-04-01 01:32:24 +02:00
Ovahlord fe4ff01e30 Core/Movement: converted SMSG_MOVE_KNOCK_BACK to packet class 2020-03-29 19:12:32 +02:00
NoName b2af17eb4a Core/Spell: Proper SPELL_EFFECT_PULL_TOWARDS_DEST implementation for players
* Core/Spell: SPELL_EFFECT_PULL_TOWARDS correction
2020-03-29 16:23:47 +02:00
Ovahlord 9bfe43a88a Core/Entities: remove PhaseMask
* database fields and values will remain until they have been converted to their according phase IDs
2020-03-29 04:05:43 +02:00
Ovahlord c9961e6a94 Core/Movement: rewrite follow movement 2020-03-27 18:59:16 +01:00
Ovahlord 5e5ec5c70f Core/Spells: SPELL_AURA_OVERRIDE_AUTOATTACK_WITH_MELEE_SPELL will now pull its spell ids for off-attacks from basepoints instead of misc values since there is only one case that uses it in Baleroc's encounter 2020-03-20 11:31:38 +01:00
Shauren 9ad9398f04 Core/PacketIO: Fixed SMSG_UPDATE_OBJECT packets going missing for new items
Closes #16906
2020-03-19 20:45:57 +01:00
Ovahlord f1f00c3ec3 Core/Datastores: refactor DBC storage helpers to use a class and fixed no pch build 2020-03-18 15:24:25 +01:00
Ovahlord 478fbe9fc1 Core/Spells: implement SPELL_AURA_OVERRIDE_AUTOATTACK_WITH_MELEE_SPELL (#23467) 2020-03-16 20:25:57 +01:00
Ovahlord dd990856c0 Core/Vehicles: implement db side seat attachment offset values as tempoary solution until m2 bone handling is supported
* this is a duc-tape fix until @warpten gets his shit together
2020-03-15 21:40:46 +01:00
Ovahlord 2a9fc25269 Core/Misc: fixed more no pch errors 2020-03-11 13:42:42 +01:00
Ovahlord 6531ae0ca4 Core/Transport: removed always visible hack from transports and destructible buildings and give them infinite aoi range instead 2020-03-10 19:06:48 +01:00
Ovahlord 091e337574 Core/Spells: SPELL_AURA_MOD_PACIFY will no longer block victim updates and return false in Attack method 2020-02-23 22:29:32 +01:00
Ovahlord e47b9c8599 Core/Movement: converted SMSG_MOVE_SET_COLLISION_HEIGHT to packet class and handle reason bits to match sniff behaivior 2020-02-23 10:59:57 +01:00
Ovahlord d01d7152a6 Core/Items: fixed a typo in generating item stats from random properties 2020-02-23 10:54:38 +01:00
Ovahlord 73ce49cb78 Core/Datastore: updated db2 field names and types to reflect client magic names
*fixed string length for sending names in item_sparse length
2020-02-23 02:20:38 +01:00
Ovahlord d9b854ad59 Core/Datastores: backported hotfix system implementation 2020-02-21 23:13:38 +01:00
Ovahlord 4bc9c07407 Core/Objects: MovePositionToFirstCollision will now always use detour raycasts to get the first collision point 2020-02-20 21:49:18 +01:00
Ovahlord 59120fbd38 Core/Quests: ported breadcrumb quest handlings and cleaned up quest template loading handlings 2020-02-20 05:08:09 +01:00
ariel- 0fcc0ebca2 Core/Player: don't check quest requirements against RewardNextQuest
- This field is only used to propose a new quest to player after completion, shouldn't be used to condition current quest

Closes #19515
2020-02-20 02:20:08 +01:00
xinef1 c72ee80eb7 Core/Quests: Display quest objective explore completion message
- Game client should show an on-screen message for explored quest objectives
  (AreaExploredOrEventHappens) when the objective has been completed.
2020-02-20 02:15:00 +01:00
ariel- d28be94e4a Core/Quests: implemented MSG_QUEST_PUSH_RESULT notifications
- Allow to share already completed (but not rewarded) quests, restriction was unblizzlike

thanks Cannix for the heads up
2020-02-20 01:55:48 +01:00
xinef1 d6e7cc52a8 Various quest system fixes (seasonal quests, timed quests and more) (#18940)
- Unify quest status checking function, use dedicated function instead of direct map checks
- Fixed seasonal quest chains and ability to complete the same quests rewarded in past
- Update area dependent auras on quest status change (they often requires specific quest status)
- Send all not stored quest rewards by mail
- When casting quest reward spell, check if it is not self casted, if so - use player to cast this spell
- Perform full db save on quest reward to prevent data desynchronization
- Don't allow to fail completed timed quests, except for quests which are completed right from the start
- Don't allow to share pooled quests, if they are not available in the current pool (eg sharing easy dalaran weeklies, stored at alt character)
- Remove seasonal quest if rewarded quest is removed
- Don't complete whole quest on AreaExplore event, check if there are no more requirements that should be fulfilled
- Quests with flag QUEST_SPECIAL_FLAGS_PLAYER_KILL can be only credited in quest zone

Closes #18913
Closes #11187
Closes #15279
2020-02-20 01:51:14 +01:00
ariel- 08e174549e Core/Quest: fix RewardNextQuest being used to condition previous quests in chain 2020-02-20 01:42:01 +01:00
ariel- a7484837a8 Core/Quests: fixed exclusivegroup interaction with prevquestId and nextQuestId.
- They should work as documented by wiki now.
- Add some consts to Player methods
- Fixed negative PrevQuestID to mean only active quest (ie not rewarded/complete, as those quests are required to complete another)

Closes #19300
2020-02-20 01:39:08 +01:00
ariel- 330f399de3 Core/Globals: some changes in quest loading
- Made load/reload associated quest tables data-driven, so removed a bunch of similar looking code from ObjectMgr (yay!)
- Codestyle and encapsulation for ExclusiveQuestGroups
2020-02-20 01:31:29 +01:00
ariel- ef6f5abf75 Core/Globals: Fix Quest codestyle and member variable initialization 2020-02-20 01:24:47 +01:00