Commit Graph

1413 Commits

Author SHA1 Message Date
jackpoz
9cf4dd7345 Core/Misc: Fix static analysis issues 2017-07-16 18:20:29 +02:00
treeston
74af880217 Hi, I'm Treeston, and welcome to Combat PR Prep Refactors.
Today, we're moving UNIT_FLAG_IMMUNE_TO_PC and UNIT_FLAG_IMMUNE_TO_NPC to higher-level abstraction so combat manager can react to it.
New methods on Unit:
- void SetImmuneTo<All/PC/NPC>(apply, keepCombat = false);
- bool IsImmuneTo<All/PC/NPC>() const;
2017-07-09 02:07:29 +02:00
Treeston
e2a1ccd118 [3.3.5] Combat/Threat rewrite - prep & refactor (#19966)
* Combat/Threat rewrite (PR #19930) prep work. Mostly refactors, and a compatibility layer on ThreatManager/HostileReference that allows scripts to be changed already.
2017-07-01 20:18:02 +02:00
Treeston
489478b74d Core/Entities: Extend combo point system to all Units and fix numerous quirks with rogue CP and vehicles (Malygos P3) (#19914)
- Implement Wolverine Bite (fixes #752)
- General combo point system cleanup
2017-06-24 22:41:16 -03:00
ariel-
30f9426b5b Core/Movement: New names for a few spline flags
(cherry picked from commit c7cd51e8f5)
2017-06-24 17:19:32 -03:00
ariel-
85a7d5ce9a Core: ported headers cleanup from master branch 2017-06-19 23:20:06 -03:00
treeston
052fc24315 Fix an overly strict check that was causing guardians to evade loop. Also make players properly enter combat when their pets are engaged by a creature. 2017-06-20 00:58:32 +02:00
Shauren
d6201e5dbb Core/Grids: Ported cmangos/mangos-wotlk@ea99457e50
(cherry picked from commit 9299e9bde0)
2017-06-19 13:16:13 -03:00
Gustavo
23f2646adf Core/Entities Allow DynamicObjects with UNIT_FLAG_IMMUNE_TO_PC to select targets (#19168) 2017-06-14 14:31:46 +02:00
Treeston
f6c849729b [3.3.5] Get zone/area IDs from vmap data in the liquid update (#19840)
* Add new method Map::getFullVMapDataForPosition to get area info and liquid info in a single vmap lookup
* Use this lookup in Map:: relocation methods to update m_areaId and m_zoneId fields on WorldObject
* Adjust GetZoneId/GetAreaId on WorldObject to always return these cached fields
* Clean up liquid state handling on Unit and Player
* Hand floor's Z coord up through GetFullTerrainStatusForPosition, use it to update a new field in WorldObject, and use that to feed a new GetFloorZ call on WorldObject.

Closes #16489
2017-06-08 00:25:06 +02:00
Treeston
1660bb7d27 Pet/Guardian AI hook re-organizing (#19824)
* Pet/Guardian AI hook re-organizing:
- Adjust OwnerAttacked/OwnerAttackedBy hooks on CreatureAI to fire for all owned units, not just player pets. This should allow guardians to more reliably recognize valid targets.
- Kill off the AttackedBy hook. While it was defined in CreatureAI.h as virtual, it was only ever invoked for player pets in specific situations. This makes it classic developer bait.
  - Adjust PetAI to use DamageTaken instead of AttackedBy.
  - Adjust behavior of AttackStart on PetAI to compensate.
2017-06-07 02:33:47 +02:00
Shauren
47d54bf5e2 Core/Movement: Fixed fall damage when teleporting together with transport
Closes #14672
2017-06-06 22:30:04 +02:00
Treeston
69fd6245dc Partial revert of 15a207f, which was causing issues (ref #4943 and #19768). Instead, fix the underlying issue from 15a207f one level further down - Unit::getAttackerForHelper() shouldn't return units that we aren't in combat with (victim can be such a unit for players/player pets, which can startattack from a distance without entering combat). (#19814)
Fixes the following issues:
- Player pets would aggro neutral mobs as soon as they start autocasting (Imp's Firebolt) if they're in react range (due to victim != null, autocast counts as autoattack and sets victim)
- Neutral mobs would randomly evade when aggro switched between targets.

Closes #19768, #19485 and #10921.

(from PR #19814)
2017-05-29 16:39:20 +02:00
Treeston
1945874f96 Fix evade issues when a spell hits the target just before evading. (#19815)
- Creatures should no longer get stuck in evade mode following a target if a spell hits the creature just as it's entering evade mode.
- Fixes and closes #4943. Finally.
2017-05-28 17:18:22 -03:00
ariel-
e27c385b48 Core/Spell: fixed some problems with per caster aura states
- Update clients whenever target has more than one application of an aura that applies such aurastate
- Update again when one application gets removed
- Fixed Fire and Brimstone computing damage if any warlock applied the Immolate (should only count for own)

Closes #19790
2017-05-27 03:16:47 -03:00
ariel-
05b42eef7e Core/Unit: don't clear low health aura states on death
- Confirmed with sniffs, healthless states aren't cleared
- Prevents some procs from happening

Closes #19754
2017-05-14 06:11:49 -03:00
ariel-
97e608b053 Core/Entities: allow guardian pets to inherit spellmods 2017-05-05 19:27:28 -03:00
Shauren
011b8847d1 Core/Movement: Ported teleport packet fixes from master branch to get rid of ugly relocations 2017-05-03 17:48:42 +02:00
ccrs
b6274578b1 Core/Unit: revert recent changes
master cherry pick incomming :D
2017-05-03 15:14:41 +02:00
ccrs
d92132f1dc Core/Unit: 6fe4d37f8d followup 2017-05-03 14:14:37 +02:00
ccrs
6fe4d37f8d Core/Unit: SendTeleportPacket corrections 2017-05-02 14:57:10 +02:00
ariel-
231ec8331b Core/Entities: moved PetAura handling to Player where it belongs 2017-04-28 19:12:48 -03:00
ariel-
4c4dca6d69 Core/Misc: camelize GetFaction/SetFaction properly 2017-04-28 18:37:38 -03:00
ccrs
5a2f0ce29e Core/Unit: revert 3ea46e57af
After discussion we realized, ariel and me, that Creature and Unit IsMovementPreventedByCasting() have not the same checks (order matters)
2017-04-27 19:40:23 +02:00
ariel-
3ea46e57af Core/Unit: 229444b74a follow-up
- IsFocusing is made virtual again, so there's no need to keep a duplicated function

This reverts commit 5043639c56.
2017-04-27 11:00:01 -03:00
ccrs
229444b74a Core/Misc: cleanup SetInFront uses
Set in front modifies only the serverside orientation, use with care.
Also check for current focus to prevent things like incorrect damage on casting creatures (ie dragon breath direction change in your face because of some taunt missclick)
2017-04-27 15:34:01 +02:00
ccrs
c7a57e2a09 Core/Unit: 2170541a51 followup
use true as default value since pretty much all the script calls will expect that
2017-04-27 14:55:06 +02:00
ccrs
5043639c56 Core/Misc: 522f537048 followup 2017-04-27 13:53:18 +02:00
xinef1
e30e11d4c7 Core/Spells: Corrected aura SPELL_AURA_MOD_CASTING_SPEED_NOT_STACK handling for auras with very high values (#19054) 2017-04-27 03:34:43 -03:00
ariel-
522f537048 Core/Movement: allow focused spells to not break movement if it's movement allowed spell
- Core/Unit: made IsFocusing virtual

Thanks to ccrs for suggestion
2017-04-23 21:48:07 -03:00
ariel-
66ac1509ae Core/Unit: fix SPELL_AURA_MOD_DAMAGE_DONE damage calculation on non-melee schools
for Keader :P
2017-04-20 02:12:15 -03:00
ariel-
2a04599ed8 Core/Unit: implement miss chance reduction for low level mobs
Source: http://wow.gamepedia.com/index.php?title=Miss&oldid=1980141

> Level is not a factor except when attacking a mob level 9 or lower.
Miss chance against a low-level mob is a percentage of normal equal to the mob’s level divided by 10.
2017-04-14 23:38:54 -03:00
ariel-
abaa9d635a Core/Spell: fix nopch build x2 2017-04-14 04:45:12 -03:00
ariel-
9900899dd9 Core/Spell: fixed SPELL_GROUP_STACK_RULE_EXCLUSIVE_SAME_EFFECT to actually check effects
- This commit enables stack rule 3 to be properly used to fix auras that should be active but only one providing effects, even if the spell has multiple auras

Closes #19454
2017-04-14 03:47:23 -03:00
ariel-
232e631390 Core/Spell: check aura positivity per effect on spell hit
- Fixes applying DR to positive effects, and changing duration of whole aura

Closes #19447
2017-04-13 03:18:20 -03:00
ariel-
83177e771a Core/Spell: fix SPELL_ATTR3_IGNORE_HIT_RESULT bypassing reflects
Closes #19440
2017-04-12 02:53:25 -03:00
ariel-
4c593f12ca Core/Instance: stop updating the instance resettimes based on creature respawns
- Rather update normal instance reset time to 2 hours after last creature kill
- This fixes yet another integer overflow due to the possibility of having time_t max showing up
- Also change respawntime and resettime fields to bigint on respawn/instance related tables
- Start using prepared statements on the InstanceSaveMgr
2017-04-12 02:19:55 -03:00
ariel-
0b50ea072e Core/Unit: fix crash on magic school autoattacks
Closes #19436
2017-04-10 12:17:08 -03:00
ariel-
e565b34f6d Core/Unit: cleanup and minor fixes of miss and resist calculations
- Removed Unit::GetUnitMeleeSkill as it was basically a copy of GetMaxSkillValueForLevel
- Removed static from GetEffectiveResistChance, as this was passed anyways, changed name to CalculateAverageResistReduction, which better reflects what it does
- Fix melee miss chances calculated from attacker maxskill instead of victim maxskill
- Do actual checks if spell can be resisted/missed in MagicSpellHitResult (ie chances > 0)
- Fixed SPELLMOD_RESIST_MISS_CHANCE calculation in MeleeSpellMissChance
- Minor codestyle and cleanup of diminishing returns calcs
2017-04-10 04:50:09 -03:00
ariel-
e478434146 Core/Misc: fix static analysis issues
CID 1373466
CID 1373481
CID 1373482
2017-04-09 19:18:22 -03:00
ccrs
21b8c4997a [3.3.5] Core/Movement: MotionMaster & MovementGenerators cleaning (#19361) 2017-04-07 21:35:23 +02:00
Chaouki Dhib
a1f2f30c14 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.
2017-03-23 00:43:04 +01:00
S.V
eea16ce356 Core/Creatures: Fixed GMs being considered in party/raid with nearby creatures without CREATURE_TYPE_FLAG_TREAT_AS_RAID_UNIT
Ref #19340
2017-03-21 17:27:14 +01:00
ariel-
4096b02a56 Core/Spell: fix an issue with vehicle spells changing orientation of base vehicle
Closes #17234
2017-03-20 12:35:09 -03:00
ariel-
b53d0530cd Core/Entities: don't finalize movesplines before deleting.
- The whole MotionMaster will be destroyed along with the unit, freeing the allocated memory.

Closes #19324
2017-03-19 18:19:14 -03:00
ariel-
7a38eaa5a1 Core/Unit: properly reset displayIds when having a shapeshift aura active
Closes #19309
2017-03-17 12:35:10 -03:00
ariel-
21d95a1d76 Core/Entities: virtualize CheckAttackFitToAuraRequirement
- Should've been like this to begin with
2017-03-12 17:48:07 -03:00
ariel-
9d639c55b1 Core/Auras: tidy up one little hack 2017-03-08 11:55:09 -03:00
Shauren
a1b622e9cc Core/Unit: reduce differences between branches
Very partial cherry pick of:

Core/Units: Updated melee/spell hit chance calculation
(cherry picked from commit 61c7161a10)
2017-03-06 21:37:46 -03:00
xinef1
7567cafec8 Ensure that all actions are compared to fixed point in time (ie. world update start) (#18910)
- Actions will not be dependent on processing moment
- Increased GameObjects cooldown resolution to milliseconds, fixes arming time of traps to be exactly one second and not something from range (1000, 1999)
- Created GameTime namespace and UpdateTime class and moved there some code out of world
2017-03-01 22:19:25 -03:00