Commit Graph
116 Commits
Author SHA1 Message Date
QAston c65aa45bc6 *Tabs to spaces
*Fix a type in CreatureEventAI.cpp from last rev

--HG--
branch : trunk
2010-01-10 02:12:02 +01:00
QAston 8e9d2cdf01 Update aura system:
* Change system logic - unify Auras, AreaAuras and PersistentAreaAuras:
  * Aura has now its owner - which is the WorldObject, which applies aura (creates AuraApplication object) dependant on aura radius, and effect type
  * Owner can be Dynobj (DynObjAura class) for PersistentAreaAuras, or Unit (UnitAura class) for Area and nonArea auras
  * Aura data is shared for all units which have AuraApplication of the Aura
   * Because of that AuraEffect handlers , and periodic tick functions can't modify AuraEffect object (they are const now)
  * Remove spell source and AreaAuraEffect classes
  * Add AuraEffect::UpdatePeriodic function, to allow periodic aura object modification (target independant)
  * Add AuraEffect::CalculateAmount and AuraEffect::CalculateSpellMod function, to allow non-default amount calculation
  * AreaAura updates are done in owner _UpdateSpells cycle
  * Since now you don't need to wait an aura update cycle to get area aura applied on it's correct target list
  * And you can access area aura target list
  * Add basic support for aura amount recalculation
  * Save recalculation state and base amount of auras to db
  * Add AuraEffect::CalculatePeriodic function to determine if aura is periodic, and to set correct tick number after aura is loaded from db
  * Add ChangeAmount function in addition to SetAmount function, to allow easy reapplication of AuraEffect handlers on all targets
  * Sort aura effect handlers in SpellAuras.cpp and .h by their use
  * Add check for already existing aura of that type to some AuraEffect handlers, to prevent incorrect effect removal
  * SPELL_AURA_CONVERT_RUNE and MOD_POWER_REGEN and MOD_REGEN hacky handlers are now implemented correctly
  * Send aura application client update only once per unit update - prevent unnecesary packet spam
 * Fix ByteBuffer::appendPackGUID function - it added additionall 0s at the end of the packet
 * Fix memory leak at player creation (not deleted auras)
 * Updated some naming conventions (too many to mention)
 * Added Unit::GetAuraOfRankedSpell() function
 * Remove procflags on aura remove, use Aura::HandleAuraSpecificMods instead
 * Added functions to maintain owned auras (GetOwnedAuras, GetOwnedAura, RemoveOwnedAura, etc)
 * Implement AURA_INTERRUPT_FLAG_LANDING
 * Implement EffectPlayerNotification (thanks to Spp)
 * Remove wrong aura 304 handler
 * Add better handler for death runes
 * Remove unnecesary variables from DynamicObject class, and cleanup related code, link dynobj duration with aura
 * Add GetAuraEffectTriggerTarget function in CreatureAi for special target selection for periodic trigger auras used in a script
 * Add many assert() procection from idiots using some functions in wrong way
 * I am to lazy to write here anything more
Thanks to Visagalis for testing this patch
PS: Do not make patches like this, please

--HG--
branch : trunk
2010-01-10 01:23:15 +01:00
win32 636018ca7e Implement aura 304.
--HG--
branch : trunk
2009-12-21 15:52:02 +02:00
win32 c92fbc0dfb Cleanup in spell code
--HG--
branch : trunk
2009-12-21 15:45:28 +02:00
n0n4m3 772cf54fb5 Update Spell code for 322a. Part 2
--HG--
branch : trunk
2009-12-17 12:23:01 +01:00
maximius 3f338cc1c3 *Massive cleanup redux.
--HG--
branch : trunk
2009-10-17 16:20:24 -07:00
maximius e585187b24 *Backed out changeset 3be01fb200a5
--HG--
branch : trunk
2009-10-17 15:51:44 -07:00
maximius 26b5e033ff *Massive cleanup (\n\n -> \n, *\n -> \n, cleanup for(...) to for (...), and some other cleanups by hand)
*Fix a possible crash in Spell::DoAllEffectOnTarget

--HG--
branch : trunk
2009-10-17 15:35:07 -07:00
Machiavelli fe5a3e3c43 * Backout a part of the latest Mangos merge, armor penetration related. Please first check whether or not we need the code, then test it, then push to repo, one change per commit.
--HG--
branch : trunk
2009-10-10 18:19:34 +02:00
maximius b4c7a2514d *Blackfathom Deeps - Event: Aku'mai, by Tartalo
*Split Personality Achivement, by Destalker
*Halls of Lightning Fixes, by Destalker
    Volkhan fixes + Achievement
    Ionar Fix - without this he resets each time he is invisible, spamming sparks
    Arcing Burn - should be a debuff (and stackable, stackable part NYI :/)
*Naxxramas - Thaddius - the aura shall affect only the character without the proper aura, by Trazom
*Naxxramas - Kelthuzad - some timer adjustments (may need verification or tweaking) by Cass
*Merges by Stryker, thanks to all authors and testers.
[8458] Re-implement SPELL_AURA_MOD_TARGET_ARMOR_PCT in more porper way for weapon dependent cases. Author: VladimirMangos
[8459] Avoid mutiply apply weapon dependent armor penetration bonus for each weapon. Author: VladimirMangos
[8529] check rune cost only if spell has PowerType == POWER_RUNE. Patch provided by yavi. Author: Ambal
[8532] Fixed situation where some items like 42947 were not giving spell power bonus. By: Ambal
[8533] Not remove timed quest and correctly fail when time runs out. Add function to remove timed quest instead of direct access to set. Author: NoFantasy
[8536] Fixed spell 62776. By: Ambal
[8539] Check pet aura range at area aura update. By: Ambal
[8546] Implement battleground bonusweekends call to arms. Also fix typo in auctionmgr. Author: balrok
[8547] Implemented scriptcall: CorpseRemoved(uint32 & /*respawnDelay*/) it will be called when the corpse of the scripted creature get's removed, it's possible to adjust the next respawn inside the script. Author: balrok
[8561] Replace another auras code call by explicit code
[8566] avoid singleton-lock when accessing BattleGroundMGR::isBGWeekend() Proposed by vladimir. Comitter: balrok

--HG--
branch : trunk
2009-10-09 20:48:55 -07:00
maximius 18995c8785 *Missed changes O_O
--HG--
branch : trunk
2009-10-02 02:45:00 -07:00
maximius a73b03b7ea *New SQL to fix broken data blobs, if any. Must be run manually.
*Cleanup, fix some typos, and fix the final heal of Lifebloom. Thanks ogeraisi.

--HG--
branch : trunk
2009-10-02 02:40:35 -07:00
maximius 140ec674a0 Backed out changeset d3fe2d6d504a (please test your patches thoroughly before getting me to push them ogeraisi)
--HG--
branch : trunk
2009-09-14 16:49:23 -07:00
maximius b37f9b1e55 *Merged MaNGOS [8458], [8475], [8476] by ogeraisi, thanks to all authors :)
--HG--
branch : trunk
2009-09-14 16:02:13 -07:00
QAston b6a9c84aa0 *Update spell_proc_event entry for Bloodsurge.
*Bring back charge drop on magnet spell redirection.

--HG--
branch : trunk
2009-08-28 20:54:58 +02:00
QAston 4d8808879d *Allow SPELL_AURA_ABILITY_PERIODIC_CRIT to make PERIODIC_LEECH auras crit.
--HG--
branch : trunk
2009-08-28 19:46:09 +02:00
megamage 01530fb148 *Fix a crash.
--HG--
branch : trunk
2009-08-25 00:43:31 -05:00
megamage 87270fefc2 *Some update of aura system. Remove unnecessary variables and parameters from auraeffect. Always refer to parent aura when finding target/source/caster.
--HG--
branch : trunk
2009-08-24 22:31:54 -05:00
QAston 97f0f98ec4 *Implement aura type SPELL_AURA_LINKED(284).
--HG--
branch : trunk
2009-08-17 21:06:01 +02:00
QAston b8993423b5 *Implement aura type SPELL_AURA_MOD_CRIT_PCT(290).
--HG--
branch : trunk
2009-08-17 16:30:14 +02:00
megamage 5cd6c7c4f7 *Implement m_AurasUpdateIterator. [8329] Author: VladimirMangos
--HG--
branch : trunk
2009-08-12 21:24:15 -05:00
QAston ba91c78ceb *Update Mana Shield Spell Power Coefficient - by fukifat.
*Add function void AuraEffect::HandleAuraEffectSpecificMods(bool apply, bool Real, bool changeAmount), and aura effect specific stuff to it.
*More correct aura scaling with lvl for area auras.
*Prevent exploits with relog while having auras with modified amount.

--HG--
branch : trunk
2009-08-13 00:52:05 +02:00
megamage 978242da3f *Try to fix a crash caused by single target auras. Thanks to QAston.
--HG--
branch : trunk
2009-08-11 18:26:04 -05:00
megamage feba13e650 *change SPELL_AURA_MOD_ARMOR_PENETRATION_PCT to reduce armor on target and add cap amount of armor reduced by armor penetration rating By thenecromancer
--HG--
branch : trunk
2009-08-10 15:32:08 -05:00
QAston 50ce9f8cfa *Correct implementation and use of dbc data for aura SPELL_AURA_CONVERT_RUNE(249)
*Fix Blood of the North, Reaping - original patch by thenecromancer
*Fix Death Rune Mastery.

--HG--
branch : trunk
2009-08-05 02:36:26 +02:00
QAston 13758fcae1 *Fix per-caster aura state based on [8218] (Author: VladimirMangos;almost nothing left from original patch):
*Fixes all per caster aurastates instead of only conflagrate
*Adds a holder for aura state auras for speedup search
*Save some memory space by removing m_auraStateMask from aura class.

--HG--
branch : trunk
2009-07-30 17:16:56 +02:00
QAston 2ff21d4cef *Implement Aura Type 247 (SPELL_AURA_CLONE_CASTER) and 279 (SPELL_AURA_INITIALIZE_IMAGES)
*Handle CMSG_GET_MIRRORIMAGE_DATA opcode.
*Save Minions follow angle to allow themmoving in a formation
*Improvements in SpellAI: correctly evade and select attack target for creatures without threat list
*Use SpellAI instead of PetAI for not controllable guardians
*Only guardians with SUMMON_TYPE_PET are controllable now
*Add script and template data for Mirror Image.
*Thanks to Drahy for help.

--HG--
branch : trunk
2009-07-22 17:10:30 +02:00
QAston 94992adb64 *Fix DK presences and their improved versions - original patch by thenecromancer
*Port player to homebind if instance cannot be created in WorldSession::HandleMoveWorldportAckOpcode.

--HG--
branch : trunk
2009-07-19 14:02:52 +02:00
QAston 6443bf531c *Update damage calculation of Serpent Sting, Immolation Trap and Deadly Poison.
--HG--
branch : trunk
2009-07-18 18:09:27 +02:00
QAston bf5447b469 *Handle breaking on damage auras by procflags - original patch by thenecromancer
*Implement Glyph of Fear - by thenecromancer

--HG--
branch : trunk
2009-07-11 15:58:19 +02:00
megamage aaec3c8191 [8024] Implement SPELL_AURA_MOD_ATTACK_POWER_OF_ARMOR(285). Author: Beaste
Also drop outdated support code for 61216 and ranks.
    This implement work talents 61216 and 48978 with ranks.

--HG--
branch : trunk
2009-06-16 11:02:37 -05:00
QAston 2e6db5421e *Fix aura type 280.
--HG--
branch : trunk
2009-06-16 15:29:07 +02:00
QAston f7c50a6f01 *Apply 6 second rule for drinking in arenas.
--HG--
branch : trunk
2009-06-12 11:59:58 +02:00
QAston da067afe12 *Fix Improved Spell Reflection
*Fix Glyph of Improved Scorch
*Sword And Board
*Fix Glyph of Devastate - original patch by CRAZyBUg

--HG--
branch : trunk
2009-06-10 23:44:30 +02:00
megamage a328728cb8 *Implement spell aura 177.
--HG--
branch : trunk
2009-06-07 23:32:35 -05:00
QAston aa468c964a *Fix dash bonus not working in some cases.
--HG--
branch : trunk
2009-06-06 13:45:17 +02:00
QAston e6941a4f41 *Remove Arcane Blast on Arcane Missiles and Arcane Barrage cast
*Spell_affect entry for Fingers of frost - by Larva
*use spellaffect entries in every affect check
*Allow spell_affect table to modify affect data for any spell

--HG--
branch : trunk
2009-06-06 12:53:38 +02:00
QAston 39548d6822 *Update spellmod system
*Implement SPELL_ATTR_EX6_IGNORE_CASTER_AURAS
*Fix some bugs with traps proc flags

--HG--
branch : trunk
2009-06-06 08:27:36 +02:00
megamage e861df8795 *Check auraname when auraeffect is constructed
--HG--
branch : trunk
2009-06-03 11:22:00 -05:00
megamage 73770d7354 *Fix the bug that totem only apply one auraeffect on target.
*Fix the bug that players can get aura when out of range of totem.
*Use caster to check enemy/ally state and spell bonus. Use source to check distance.

--HG--
branch : trunk
2009-05-24 00:05:17 -05:00
megamage 946aa87445 *Store aura::source for all types of aura effect.
--HG--
branch : trunk
2009-05-23 22:21:26 -05:00
megamage af1f0fd419 *Rename formalCaster as "source"
--HG--
branch : trunk
2009-05-23 20:50:21 -05:00
QAston 73faabbc49 *Fix a crash.
--HG--
branch : trunk
2009-05-23 11:26:08 +02:00
QAston 2b47f0c0f7 *Fix Demonic Empowerment.
*Some code optimisations.
*Set formalCasterGuid for area auras correctly.

--HG--
branch : trunk
2009-05-19 18:33:49 +02:00
megamage ba727af796 *Fix a crash caused by a typo in SetCantProc. Thanks to Drahy. Do not use rev between 3392 and 3404.
--HG--
branch : trunk
2009-05-18 17:48:03 -05:00
QAston 6c7f2d2b24 *Spell_proc_event entries for Malestorm Weapon - by throneinc
*Fix bug that some spells can't proc
*Add spell_proc_event entries for some items.

--HG--
branch : trunk
2009-05-18 19:00:20 +02:00
QAston 7c6757d7ee *Update proc system.
--HG--
branch : trunk
2009-05-17 18:00:33 +02:00
QAston bb6e0dba89 *Fix lifebloom final heal coefficient - by nesocip
*Fix aura immunity dispel for spells like Resurrection sickness
*Do not proc auras without spellfamilyflags required for totems.
*Allow more auras to be displayed in client.
*Fix some issues with Cut to the Chase.

--HG--
branch : trunk
2009-05-16 20:23:56 +02:00
QAston 14daff6d38 *Change amount of passive auras if mod changed for them (this fixes Glyph of vigor apply/remove and some other spells)
*Backfire damage from unstable affliction is applied to dispeller now
*Correct amount of improved Divine Spirit

--HG--
branch : trunk
2009-05-16 17:59:36 +02:00
megamage 29921b5bea [7798] More Player::ActivateTaxiPathTo use improvements Author: VladimirMangos
* Provide more explicit way about spell that cast taxi flight if any
    * Remove incorrect states instead error reporting in case non-taximaster flight start (cast/script)
    * Remove mount_id arg from ActivateTaxiPathTo and implement support for 0 mount_id case (spell 32474)
    * Implement spell 32474 (except finilize part)
    * Provided Player::ActivateTaxiPathTo(uint32 taxi_path_id) function version for simplify one node to node paths use by id.

--HG--
branch : trunk
2009-05-08 18:52:12 -05:00