Commit Graph

1401 Commits

Author SHA1 Message Date
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
ariel-
c69a7d1223 Core/Auras: reworked multiplicative AuraEffects calculation
- Splitted containers for flat modifiers and pct modifiers, as they now have different handling
- Amount is now multiplied only on apply; on unapply, iterate through auras and reset the counter
- Fixes many cases of rounding error due to applying/unapplying of small factors
- Allows amounts to be zeroed (ie with an AuraEffect of amount -100)
- Do a partial revert of 6dc37a9add, auras should update amounts only for items allowed (ie no more giving crit to a sword while having an axe in the other hand and being Poleaxe spec'd)
- SPELL_AURA_MOD_SCALE now scales additively, rather than multiplicatively (checked in sniffs)

Closes #18687
2017-02-27 14:24:20 -03:00
Gustavo
4224259d83 Core/Unit: Correct speed calculus when affected by SPELL_AURA_MOD_MINIMUM_SPEED (#18136) 2017-02-24 12:20:20 +01:00
Gustavo
3a67c8e361 Core/Misc Remove Tabs and Whitespaces (#19179) 2017-02-21 18:37:34 +01:00
xinef1
4eae29d421 Properly stop attacking after player leaves ffa area (like Gurubashi Arena) (#18952) 2017-02-20 15:03:11 -03:00
xinef1
2412886ef6 Core/Misc: Fixed player corpse looting, added player corpse loot and some more (#19122)
* Fixed corpse looting in wintergrasp
Added corpse loot for wintergrasp quests and To the Looter Go the Spoils (1166) achievement
Don't generate money for loot if no loot mode is available
Simplified few things
2017-02-13 20:42:06 +01:00
xinef1
14dfc377b4 Core/Misc: Various crash fixes (#19059)
* Replaced some FindPlayer calls with GetPlayer
Fixed some more crashes

* Correction
2017-02-05 23:42:31 +01:00
xinef1
59ce3d6c9b Core/Misc: Moved CharacterInfo out of world to separate class
Closes #19030
2017-02-05 23:14:19 +01:00
xinef1
3c605ba614 Core/Spells: Added SPELL_FAILED_NOTHING_TO_STEAL error (#19036)
Corrected Dispel check in sanctuary area
Added root check for SPELL_EFFECT_JUMP and SPELL_EFFECT_JUMP_DEST
2017-02-05 22:29:23 +01:00
xinef1
78a729b6a4 Corrected immunity checking after recent changes (#19049)
- Shouldn't compare immunity to spells without schoolmask
2017-02-05 12:36:42 -03:00
xinef1
e1f14215d8 Core/Creatures: Various fixes for creatures, regarding combat conditions, despawning, and few others (#18998)
* Made some changes to kiting mechanics, simplified code and made taunt auras prolong combat no matter the distance from the spawn
Unified some creature despawning code, removed some brutal direct calls in scripts
Don't play death anim on forced despawn
Removed some redundant visibility changes on creature despawn
Fixed possible problem with pet initializing template info from difficulty greater than normal
Properly keep UNIT_FLAG_IN_COMBAT on UpdateEntry call
Moved RegenerateMana function to general Regenerate(Power) function
Fixed increased health regeneration from polymorph for pets
Implemented CREATURE_TYPE_FLAG_GHOST_VISIBLE, those creatures will be properly seen when player is dead also
Removed hackfix from Gaeriyan and Franclorn Forgewright, fixed properly
Simplified ForcedRespawnTime code in ForcedDespawn
Do not allow to assist unit while evading or when enemy is evading
Do not allow to attack other units when evading or when the unit is evading
Corrected distance checking code before creature is allowed to evade, should fix some common problems
Properly return summon position for summoned creatures as their respawn position
Properly stop all moving units on gossip hello, no matter their npc flags
2017-02-05 15:39:22 +01:00
xinef1
93746e8c4a Implemented binary resistances and some more (#18933)
- Fixed possible exploit with tamed pets having template immunities
- Implemented binary resistances
- Corrected resistances calculations
- Pets properly inherit players spell penetration
- Fixed doubled block calculation for damaging melee spells
- Auras removing snare effects will only remove the snaring component
- Shapeshifting will properly remove movement impairing auras only and not crowd control (dragon's breath)
- Immunities are properly checked versus all schools appearing in spell, unit is immune only if immune to all schools
- Spells with melee and magic school mask should compare armor reduction with resistances and select smaller reduction
- Demonic Circle: Teleport no longer removes root effects
2017-02-04 19:50:32 -03:00
xinef1
86da1a19bb Core/Misc: Fix various crashes, also related to multithreading (#19012)
* When iterating groups we have to either do it not in multithreaded context (map updates) or start with checking maps (they are guaranteed to change in single thread update).
* Properly clear ComboPoint references on player remove 
* remove some possible references item may have when it is deleted during save. 
* Also clear all hostile references when unit is removed from map.
2017-02-04 22:37:16 +01:00