Commit Graph

774 Commits

Author SHA1 Message Date
Shauren a5df77a9d6 Core/Transports: Force transport passengers into legacy spawn group
Ref #21641
2018-04-19 23:37:41 +02:00
ccrs f9914caefc Core/Misc: movement header cleanup 2018-04-19 13:31:39 +02:00
Treeston 2a84562dc8 Core/Movement: Replace old TargetedMovementGenerator into ChaseMovementGenerator and FollowMovementGenerator, full rewrite for both.
- Chase to angle is now functional. Pets use this to chase behind the target. Closes #19925.
- Chase to arbitrary range interval works. Not used anywhere, but you can technically make hunter-like mobs.
- Pets now follow the hunter cleanly and without stutter stepping. Also fix some other things. Closes #8924.
2018-04-06 18:09:55 +02:00
ariel- bcc7427fbc Core/Misc: whitespace/tab cleanup 2018-04-02 20:37:44 -03:00
Treeston 4692e10ca2 Core/Position: Refactor GetAngle -> GetAbsoluteAngle because code clarity is good. 2018-04-01 13:52:36 +02:00
Mikhail Redko 7c5b69d18b Core/Creatures: implement CREATURE_FLAG_EXTRA_NO_SELL_VENDOR (#21642)
* Add CREATURE_FLAG_EXTRA_NO_SELL_VENDOR and use it for a single no-sell vendor in game (there are more of them in later expansions)
2018-03-21 10:05:17 +01:00
ariel- e8d5aa56cc Core/Spells: rework part 3: spells only handle at most one UnitAura and one DynObjAura during its lifetime
Closes #15088
2018-03-09 14:41:28 -03:00
Shauren 592516ae69 Core/Creatures: Reworked setting move types in database
* Each move type has its own field instead of trying to combine everything in InhabitType
* Allow overriding movement separately for each spawn
2018-03-08 23:13:51 +01:00
ariel- 68dde9f8c5 Scripts/Command: build fix for horrible outdated boost version used by travis 2018-03-07 00:56:22 -03:00
ariel- 180a0269ed Scripts/Commands: Make Shauren happy 2018-03-06 19:12:16 -03:00
ariel- d18f8b94b0 Scripts/Commands: implemented command .server debug
- Shows detailed information about server setup, useful when reporting a bug:
 * rev. hash
 * versions of mysql, openssl, boost, cmake
 * info about autoupdater
 * info about ports (realmlist and current)
 * vmap/map/mmap status and folder sizes
 * available DBC locales
 * TDB version

Closes #19957
2018-03-06 18:48:57 -03:00
Treeston e79c595b69 Core/VMap: Add outdoor state to Map::GetFullTerrainStatusForPosition. Add WorldObject::IsOutdoors, basic member access.
Ref #21479.
2018-02-26 17:40:40 +01:00
ariel- 34967e9c32 Core/GameObject: implemented gameobject_overrides table to change faction and flags values on a per-spawn basis
Updates #20957
Closes #20958
2018-02-24 20:57:55 -03:00
Gooyeth 42a11e97d5 Scripts/Commands: add AI/ScriptName to .gobject info (PR #21419) 2018-02-15 16:11:28 +01:00
ariel- 1826437c09 Core/Spells: implemented bonus SP coefficient from DBC
Ref #21415
2018-02-14 05:58:56 -03:00
Treeston 4cb13af4fa Core/Threat: Custom ThreatListIterator that transparently iterates over the backing map (instead of using heap iterators) when working with the unsorted threat list. This greatly reduces the range of actions that can cause iterator invalidation.
Also some minor adjustments to .debug threat, which no longer hides certain invalid states from view.
2018-02-05 01:33:41 +01:00
Treeston 8f52664a37 nopch fix 2018-02-04 15:10:31 +01:00
Treeston 51e28ae76a DB/SpawnGroup: Instance spawn group data for Tempest Keep: The Eye and Hellfire Citadel: Ramparts.
(also some minor adjustments to command output for convenience)
2018-01-25 13:45:11 +01:00
Treeston 6c3c200cc5 Misc: assert -> ASSERT 2018-01-25 12:39:19 +01:00
Treeston 6ce078d8e8 Scripts/Commands: new command '.debug instancespawn' 2018-01-24 22:52:42 +01:00
ariel- c099174ff7 Core/Misc: fix some /W4 warnings and some reported by GCC 6.3 2018-01-22 23:55:33 -03:00
ariel- 73cc613dc8 Core/Formations: update codestyle and fix crash
Closes #21288
2018-01-22 02:43:34 -03:00
ariel- b75ff7d4bf Core/Globals: revert back to unordered_map for templates
Partial revert of commit b64c504314
See discussion on https://github.com/TrinityCore/TrinityCore/commit/b64c5043140dc7b7908e259e441de16cc0261320
2018-01-18 01:07:29 -03:00
ariel- b64c504314 Core/Globals: throw some RAII into ObjectMgr, and load templates into vectors
Ref #14274
2018-01-17 02:17:49 -03:00
ariel- f1986c6aaf Core/Entities: implement secondary damage for some weapons and removal of old voodoo
- Fixed correct Retaliation damage spell according to sniffs is 20240
- CalcArmorReducedDamage insisted on dealing a minimum of 1 damage even if damage was 0
- CalculateDamage was zero-phobic too: it defaulted to arbitrary max 5 damage

Closes #19081
2018-01-14 09:23:34 -03:00
ariel- cb9e72e521 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

Closes #19876
2018-01-13 06:45:21 -03:00
ariel- f50a333418 Core/Misc: kill whitespace 2018-01-12 00:07:29 -03:00
Treeston 45168f9612 nopch fix 2018-01-09 22:04:35 +01:00
Treeston d283f96f70 missing return 2018-01-09 18:23:50 +01:00
Treeston f45c211987 Scripts/Commands: New command: .debug threatinfo 2018-01-09 18:09:24 +01:00
Treeston 3bb33e3108 Core/Map: New Map::ForceRespawn to override objections and force a respawn (equivalent to force = true). Use this to fix various GM commands.
Scripts/Valithria: Fix an issue that could get the encounter stuck in an unloaded state.
2018-01-07 19:53:39 +01:00
Treeston cbf5535b74 Revert "Scripts/Commands: Allow to use .tele in combat only to GMs"
This reverts commit 3ae5b72075 - see discussion on commit.
2018-01-06 13:32:11 +01:00
Shauren b2b4f9d1e4 Core/Misc: Added compatibility layer for boost 1.66 and future std:: networking stuff
* Based on work done by @dimiandre in PR #21173

Closes #21171
Closes #21173

(cherry picked from commit dfd2660a85)
2018-01-06 12:30:28 +01:00
jackpoz 3ae5b72075 Scripts/Commands: Allow to use .tele in combat only to GMs
Allow to use .tele in combat only to players who can be GMs (even if they have .gm off)
2018-01-06 10:34:54 +01:00
Treeston fdacf12739 Core/Combat: Some more sanity check asserts to try and track down #21187.
Also, some anti-annoyance treatment for dot tele.
2018-01-06 01:40:31 +01:00
Treeston e0b609a178 Core/Map: Fix a crash that could happen if a player moved very far away from a creature they were in combat with. Closes #21177. 2018-01-04 15:19:37 +01:00
Treeston 9f9507e6a1 Core/Misc: A variety of clean-up changes, mostly following up on 532ab1c to fix legacy bugs exposed by it:
- Triggers can no longer have a threat list (this may expose some ugliness in old legacy scripts)
- Threat entries are forced to OFFLINE if the AI refuses to attack the target
- Clean up passive creature evade behavior to be more consistent
- Fix a months old issue in spawn group management that would cause "Inactive" to incorrectly show in .list respawns for system groups outside of map 0
- Valithria script cleanups, remove old hacks and make it work with the new system. Closes #21174.
- Some strings cleanup
2018-01-04 04:46:41 +01:00
Treeston 532ab1c7f8 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.
2018-01-03 20:04:19 +01:00
tkrokli f6b6f57a6d Update copyright note for 2018
Best wishes for the new year.
2018-01-01 01:55:29 +01:00
jackpoz 513e153a13 Core/Misc: Removed unneeded checks 2017-12-31 14:41:31 +01:00
Treeston d507a7e338 [3.3.5] CastSpell unclusterfucking (that's a word now) (#21123)
Core/Spell: The giant CastSpell unclusterfucking (that's a word now) of this generation.

- CastSpell now always takes three arguments - target, spellId, and a struct containing extra arguments
- This struct (CastSpellExtraArgs, see SpellDefines.h) serves as a conglomerate of every previous combination of the 20 billion different CastSpell overloads, all merged into one
  - It has some great utility constructors - check them out! All of these can be used to implicitly construct the ExtraArgs object.
- A gajillion refactors to make everything behave the way it always has
2017-12-30 20:28:41 +01:00
Jeremy e42903ec16 Core/Entities: Fix some weird movement due to los issues (#21125)
* Core/Entities: Fix some weird movement due to los issues
- Made LoS check use collisionHeight instead of midsection. Value was too low.
- Gnomes will now have a breath bar more quickly than for example a tauren.
- Changes have been made to checking for ground z as well, some tweeking might be needed but removed most of the scattered +2.0f/+0.5f/we
* Add 0.05f to isInAir check in Creature::UpdateMovementFlags
2017-12-29 22:32:07 +01:00
ariel- e2a97ba7e7 Core/Scripts: fix codestyle 2017-12-29 18:08:19 -03:00
Rochet2 4d9fa4ea5f Core/Commands: Fix .modify mount (#21137) 2017-12-29 21:47:53 +01:00
jackpoz 12701cb0c6 Core/Misc: Replace time(NULL) with GameTime::GetGameTime() 2017-12-24 22:50:59 +01:00
Gogs fbb2b1650f Core/Accounts: prevent existing account ban from being updated
Signed-off-by: jackpoz <giacomopoz@gmail.com>
2017-12-17 19:11:06 +01:00
Andrew Letson 1cedcf0bf3 Scripts/Commands: Add failure state for quest remove (#20611)
Add more verbose messaging to the .quest remove command
2017-12-17 15:51:11 +01:00
ForesterDev 661dfee80e Scripts/Commands: modify command .dismount to target any selected player (#19788)
- change security lvl for command .dismount to 2 (gamemasters). For players there is /dismount command

Closes #19788
2017-12-17 04:36:59 +01:00
ariel- 78a1c687a2 Core/Misc: minor typo and codestyle fixes
- Replace NULL uses in new code with nullptr
- Fix wrong (accumulated) load time log when loading calendar invites
- Make Creature::CanRegenerateHealth const as its just a getter
- Mark OnlyOnceAreaTriggerScript::OnTrigger as final in case someone wants to override that (you are supposed to use protected _OnTrigger hook)
2017-12-13 14:43:12 -03:00
Ovah 869affa893 Core/Creatures: Implemented extra flag to use offhand attacks (#21008)
* Fixed initial offhand attack timer so the main and offhand attacks will now act blizzlike instead of getting executed at the same time

Note: since some creature equipment items cannot be identified as weapon since they are only visual items there is no way to detect this automaticly
2017-12-07 17:41:11 +01:00