Commit Graph
292 Commits
Author SHA1 Message Date
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 25465699f7 Core/GameObjects: Transport (type 11) improvements
* Fully synchronize serverside animation progress with client
* Implemented updating passenger positions on elevators
* Removed visibility hack for elevators that always forced CreateObject packet to be sent to client
2022-06-18 21:36:17 +02:00
Shauren 43c1876970 Core/Transports: Store information about continent transports 2022-06-18 18:53:25 +02:00
Ovahlord 6e9ec1a4bf Core/Transports: undo all custom transport changes as preparation for cherry picks 2022-06-18 18:37:14 +02:00
Ovahlord 6446541738 Core/Skills: ported master branch handling for learning skills on levelup 2021-05-14 14:52:52 +02:00
Treeston f7a79750c9 Core/Maps: All RespawnInfo* handed to outside code are now RespawnInfo const*, to signify that outside code has zero business changing these. 2021-01-03 09:44:08 +01:00
Roc13x 5360da31a2 Core/Items: Fix some cases where items could be created without random properties (#166) 2020-08-04 10:19:24 +02:00
Roc13x 31b6b77200 Core/Players: Several gold handling improvements (#155)
* Updated the following systems to support large (64bit) gold numbers:
- Auction House
- Mail
- Commands
- Guild bank withdraw limits
- Guild Bank eventlog
- Vendor

* Fixed some vendor checks for when BuyCount > 1
* Tweaked some checks for available gold space
2020-08-03 17:24:32 +02:00
Treeston 942c3a77da Core: Combat/threat system rewrite (PR #19930)
- PvE combat is now always mutual. UNIT_FLAG_IN_COMBAT is backed by actual references to the units we're in combat with.
- PvP combat is now also tracked, and almost always mutual; spells like Vanish and Feign Death can break this rule. That means we can easily determine a list of players we're fighting.
- By extension, IsInCombatWith now has sensible behavior when invoked on nonplayers.
- Threat and combat systems are no longer the same.
  - They still have an enforced relationship (threat implies combat - clearing combat clears threat)...
  - ...but we can have combat without threat. A creature (with threat list) isn't considered to be engaged until it has an entry on its threat list...
  - ...which means we can now faithfully replicate retail engage behavior. Combat on projectile launch - engagement start on projectile impact. Yay for progress!
- AI method refactor, as already ported in 6113b9d - `JustEngagedWith`, `JustEnteredCombat` and `JustExitedCombat`.
- Vehicle threat is now properly pooled on the main vehicle body (fixes #16542).
- Various edge case bug fixes for threat redirects (Misdirection "cancelling" Vigilance and similar).
- Target re-selection is now significantly faster.
- Fixed a ton of other smaller edge case bugs, probably.

Closes #7951 and #19998.
2020-07-22 16:49:37 +02:00
Ovah b09d6e2330 Core/Movement: reimplement follow movement (#124) 2020-06-26 21:22:21 +02:00
Shauren 40f80fc0ed Core/Maps: Improvements to terrain swap handling
* Fixed memory leak when unloading grids
* Handle child maps being entered
* Allow chaining more child maps (Draenor -> Tanaan Jungle -> Tanaan Jungle - No Hubs Phase)
2020-06-11 01:35:27 +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 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 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 fcb79fee07 Core/Datastores: updated DBC structure names to generated member format 2020-01-25 12:36:32 +01:00
jackpoz 131986d1c2 Core/Misc: Replace time(nullptr) with GameTime::GetGameTime() 2020-01-11 03:30:41 +01:00
Aokromes d6d3f06f06 New year 2020-01-04 18:32:38 +01:00
funjoker 6c56916b29 Misc: Update copyright information
Happy new year
2020-01-01 18:47:28 +01:00
Treeston 90540d684b Core/Misc: Various dynspawn cleanup and refactors split off from pooling rewrite:
- Map::RemoveRespawnTime(SpawnObjectType, LowType, doRespawn) split into Map::Respawn and Map::RemoveRespawnTime, without the extra boolean
- Map::RemoveRespawnTime(RespawnInfo*) merged into Map::DeleteRespawnInfo(RespawnInfo*) and is now private
- Map::DeleteRespawnInfo(void) renamed to Map::UnloadAllRespawnInfos to properly describe what it does
- Map::ProcessRespawns now actually saves the delayed respawn time to DB if the respawn was delayed
- Map::AddRespawnInfo now takes const reference, and returns success as a boolean
- Map::AddRespawnInfo no longer offers an unused "replace" parameter
- Map::DeleteRespawnInfo no longer offers a variety of unused private overloads
- Map::SaveRespawnTime no longer offers a tantalizing writeDB parameter. Parameter is now called "startup" to properly describe what it does.
- Map::SaveRespawnInfoDB now takes RespawnInfo reference instead of all the various fields. Still public because compatibility mode. QQ.
- Map::GetWorldObjectBySpawnId sanitized
- Map::GetXRespawnTime methods sanitized to all go through Map::GetRespawnTime

----------

Core/DB: Unify `creature_respawn` and `gameobject_respawn` into a single `respawn` table
2019-08-18 12:47:10 +02:00
Treeston f9184f026b Entities/Unit: Nuke Map::ForceRespawn from orbit, with the following implications:
- .npc respawn no longer causes stupid things to happen (Fixes #23014)
- ::DeleteFromDB methods on Creature and GameObject rewritten to be as sensible as such a colossally stupid method can ever be. They're static now.
- .npc delete and .gobj delete ported to new argument handling, and rewritten as per above. They can no longer crash the server when used in instances, too. Yay for that.
- Adjusted various dusty cobwebbed hacks around the core (why does waypoint visualization use permanent spawns *shudder*) to still work too.
2019-08-18 12:12:09 +02:00
Shauren 0b8ab68eb3 Core/Map: Kill zoneId from RespawnInfo, all it did was significantly slow down startup to make one gm command faster 2019-08-18 11:51:09 +02:00
Ovahlord c074c3a9c6 Revert "Core/Misc: Replace time(NULL) with GameTime::GetGameTime()"
This reverts commit 5fe3a1f7f9.
2019-07-08 15:56:29 +02:00
Ovahlord 5fe3a1f7f9 Core/Misc: Replace time(NULL) with GameTime::GetGameTime()
(ported commit: 12701cb0c6c45eb105ad449eb9a56e76d84d691e)
2019-07-08 12:19:19 +02:00
Ovahlord fda1f556af Core/DataStores: use generated member names for AreaTable.dbc
*load all fields of AreaTable.dbc
2019-02-24 00:51:54 +01:00
Ovahlord 1e4cc2293a Core/Datastores: use generated member names for MapEntry fields
* load all dbc fields of MapEntry
2019-02-24 00:14:44 +01:00
Ovahlord 50a91bd590 Core/Movement: merged Collision height handling from 335 branch to reduce the probability that creatures are falling under the map 2019-02-17 23:40:24 +01:00
Ovahlord 7edabcbd88 Core/Movement: ported and merged Follow and Chase movement generator rewrite 2019-02-07 23:51:45 +01:00
Ovahlord 9377ce2528 Scripts/Commands: fixed returning height values in gps command when the target is not on transport 2019-01-21 11:08:08 +01:00
Ovahlord 5229a734dd Core/Transports: ported transport refactoring
* this implements full support for stoppable transports as well as serverside transport position tracking
* fixed several vehicle related issues
* fixed gameobject passengers not being displayed as transport passengers
* pets, dynamic objects and other summons are not added as transport passengers and will now properly be displayed
Todo:
- Deeprun Tram visual issues needs to be resolved
- Lady Deathwhisper's elevator needs some additional research
2018-11-21 12:04:26 +01:00
Ovahlord 5e380763aa Merge branch '4.3.4' of https://gitlab.com/trinitycore/TrinityCore_434 into 4.3.4
# Conflicts:
#	src/server/game/DungeonFinding/LFGMgr.h
#	src/server/game/Maps/Map.h
#	src/server/scripts/EasternKingdoms/zone_arathi_highlands.cpp
2018-08-28 04:41:18 +02:00
Shauren 5a7a83f520 Core/Commands: Fixed .damage command to work with spell schools caused by bad strtok usage
Closes #22280
2018-08-20 04:45:08 +02:00
Ovahlord 3f53afd39e Core/Maps: fixed several issues with liquids by merging some 335 branch commits that are taking mopg flags into account 2018-08-07 12:35:02 +02:00
Ovahlord 78e0328356 Core/Movement: fixed waypoint movement commits up to 2ce9a0a094a3d86a86a9323693c93ed6a2bbcaaf 2018-08-02 16:20:02 +02:00
Ovahlord 6320bb6a46 Revert "fix warnings" and fix warning properly 2018-07-23 15:59:32 +02:00
Ovahlord cd60e908c0 Revert "fix warnings" and fix warning properly 2018-07-23 15:58:39 +02:00
Ovahlord a0e288e761 Merge branch '4.3.4' of https://gitlab.com/trinitycore/TrinityCore_434 into 4.3.4 2018-07-23 15:57:10 +02:00
Aokromes 3167005650 fix warnings 2018-07-23 11:34:08 +02:00
Ovahlord 59d169e8e4 Merge branch 'dynamicSpawnMerge' of https://gitlab.com/trinitycore/TrinityCore_434 into 4.3.4
# Conflicts:
#	src/server/game/Entities/Creature/Creature.cpp
#	src/server/game/Entities/Object/Object.cpp
#	src/server/game/Maps/Map.cpp
#	src/server/game/Maps/Map.h
2018-07-21 23:13:55 +02:00
Ovahlord b976bc1187 Core/Spawns: merged Dynamic Spawning 2018-07-21 20:44:41 +02:00
Ovahlord 0d46b893fc Core/Objects:
*merged 3.3.5 renaming of GetObjectSize() to GetCombatReach()
*made GetBoundaryRadius virtual and use it to determine the actual spell radius distance with it instead of using CombatReach
2018-07-13 14:50:10 +02:00
Ovahlord bb66c16e12 Merge branch '4.3.4' of https://gitlab.com/trinitycore/TrinityCore_434 into 4.3.4 2018-06-26 21:59:08 +02:00
Shauren 3ecf82f1a0 Common: Replace ip2nation by ip2location. (#21957)
Replace ip2nation by ip2location.

Download: https://lite.ip2location.com/database/ip-country

Core/Misc: Improved ip2location code and set it to disabled by default
2018-06-23 21:45:51 +02:00
Aokromes 0c6fe1941f rename files 2018-06-23 02:21:59 +02:00
Ovahlord cbadcab773 Core/Spells: merged DBC spell coefficient reading (commit: 1826437c094966ae339a154844df8587b2122888) 2018-04-23 21:22:21 +02:00
Ovahlord 2cfdd3cbe0 Merge branch '4.3.4' of https://gitlab.com/trinitycore/TrinityCore_434 into 4.3.4
# Conflicts:
#	src/server/game/AI/CoreAI/PetAI.cpp
#	src/server/game/Battlegrounds/Battleground.cpp
#	src/server/game/Battlegrounds/Zones/BattlegroundTP.cpp
#	src/server/game/DungeonFinding/LFGMgr.h
#	src/server/game/DungeonFinding/LFGQueue.h
#	src/server/game/Entities/Creature/Creature.h
#	src/server/game/Entities/Pet/Pet.cpp
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Entities/Player/Player.h
#	src/server/game/Entities/Unit/Unit.h
#	src/server/game/Globals/ObjectMgr.h
#	src/server/game/Groups/Group.cpp
#	src/server/game/Groups/Group.h
#	src/server/game/Guilds/Guild.cpp
#	src/server/game/Guilds/Guild.h
#	src/server/game/Handlers/GuildHandler.cpp
#	src/server/game/Handlers/LFGHandler.cpp
#	src/server/game/Handlers/MiscHandler.cpp
#	src/server/game/Handlers/NPCHandler.cpp
#	src/server/game/Instances/InstanceScript.cpp
#	src/server/game/Maps/Map.cpp
#	src/server/game/Maps/Map.h
#	src/server/game/Maps/ZoneScript.cpp
#	src/server/game/Server/WorldSession.cpp
#	src/server/game/Spells/SpellEffects.cpp
#	src/server/game/Weather/Weather.cpp
#	src/server/game/Weather/WeatherMgr.cpp
#	src/server/scripts/Commands/cs_reload.cpp
#	src/server/scripts/EasternKingdoms/Deadmines/boss_mr_smite.cpp
#	src/server/scripts/EasternKingdoms/Deadmines/deadmines.h
#	src/server/scripts/EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
#	src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp
#	src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.h
#	src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp
#	src/server/scripts/Kalimdor/VortexPinnacle/vortex_pinnacle.h
#	src/server/scripts/Spells/spell_dk.cpp
#	src/server/scripts/Spells/spell_druid.cpp
#	src/server/scripts/Spells/spell_generic.cpp
#	src/server/scripts/Spells/spell_hunter.cpp
#	src/server/scripts/Spells/spell_mage.cpp
#	src/server/scripts/Spells/spell_pet.cpp
#	src/server/scripts/Spells/spell_shaman.cpp
#	src/server/scripts/Spells/spell_warrior.cpp
2018-03-28 12:35:52 +02:00
ariel- 5ff847159c Core: header cleanup, split realmlist, boost compatibility, cotire, remove stormlib/zlib and stormlib/bzip2 and instead use dep sources 2018-03-28 04:41:59 -03:00
Ovahlord b837812ff9 Merge branch '4.3.4' of https://gitlab.com/trinitycore/TrinityCore_434 into 4.3.4 2018-03-17 21:05:34 +01:00
Aokromes 8d38ec47fb Core/Misc: Graveyards can now use conditions, SourceType = 27, SourceEntry = graveyard_zone.ID 2018-03-17 09:56:43 +01:00