Commit graph

87 commits

Author SHA1 Message Date
VladimirMangos
c686697c2d [11623] Implement ClassFamilyMask as wrapper for uint64+uint32 spell family masks
Inspired by patch suggested by darkstalker

Also
* Remove existed enums for family masks as contra-productive for developement.
* Drop one from horrible hack checks in SpellMgr::IsNoStackSpellDueToSpell
  (spells for any fimilies with exactly 0x800 mask) I fail find useful cases
  for current spell data with this check. All cases expected work correct without it.
  If will some problems detected with this please report for fix in less strange way.
2011-06-11 21:20:42 +04:00
Den
10c4da4fef [11594] Implement glyph 45747
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2011-06-04 14:15:06 +04:00
breakwater
ce14b28ba4 [11552] Implement aura SPELL_AURA_STOP_NATURAL_MANA_REGEN (294)
Also partly implement using it spell 62692.

FIXME: Some spells expected to be working for target under spell 62692 effect
       not working. This need additional research and fixes.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2011-05-28 05:24:36 +04:00
VladimirMangos
44f2c26389 [11459] More ObjectGuid using in Aura/SpellAuraHolder code.
Also fix build in PetAI code. Thanks to rsa for fix code.
2011-05-09 23:17:39 +04:00
NoFantasy
4c3b61d4f5 [11443] Implement SPELL_AURA_MIRROR_IMAGE (247) and related receive/reply packets
Inspired by different patches posted in forum, thanks guys for the help it was :D

Signed-off-by: NoFantasy <nofantasy@nf.no>
2011-05-08 18:58:01 +02:00
zergtmn
4687fa8cb4 [11299] Handle aura durations in SpellAuraHolder
- Unit::CalculateSpellDuration split into two functions
    - CalculateSpellDuration taking into account combo points and caster-side spell mods
    - Unit::CalculateAuraDuration taking into account target-side spell mods
- Diminishing is now applied before duration reduction mods
- Implement saving per-effect periodic timers to DB (required for auras affected by haste)
2011-03-30 23:29:01 +06:00
zergtmn
0bc4bc1d75 [11282] Use uint32 datatype for aura charges and stacks
* Some spells have StackAmount > 255, for example 22735, 54314
* In SMSG_AURA_UPDATE maximum stack amount is limited by 255
* Move duplicate code into SpellAuraHolder::BuildUpdatePacket function
* Cleanup some weird type casts in _LoadAuras
2011-03-25 14:40:09 +05:00
Lynx3d
60b2e2c8ba [11192] Make some more use of 'const' in SpellAuraHolder. 2011-02-21 16:56:00 +01:00
darkstalker
3d4caa275b [11144] Prevents abilities that are 'usable while stunned' being usable while in non-stun effects. The usability while stunned is restricted only to stun auras with mechanic stun
Signed-off-by: Ambal <pogrebniak@gala.net>
2011-02-12 15:59:14 +02:00
zergtmn
452b3d9e05 [11041] Tabs to spaces 2011-01-19 03:08:46 +05:00
VladimirMangos
b7f4a41fcd [10998] Re-write work proc of stackable spells with charges in more simple way
Some spells have procCharges > 0 and in same time maxStack > 1. It's support has been implemented more year ago
but current way work with single aura from stack remove at proc always made some spells work wrongly
(7 spells (with ranks) in 3.3.5a). In fact only 3 spell (with ranks) need this "one from stack" way and
all form its have similarity: Its apply max stack from start and decrease stacks at proc hit.
Another prove for correctness this way: in 2.x exist single spell with charges and maxstack that expect full aura stack remove.

So implemented opposition way: normal aura proc remove always full aura holder stack.
Special 3 cases have overwrite code for work with stack in correct for its way.

Fixed work:

* items 31857 and 50259
* recipe 46027 effects.
* talent 63730 and ranks

Affected by code changes talents 51528 and 55166 tested and work.

Spell 34026 use similar decrease stack at hit but req. independent patch for full implemention, so not work.
2011-01-11 05:15:51 +03:00
VladimirMangos
bf0ecf6e71 [10947] Update copyright notice for 2011 year. 2011-01-01 20:33:43 +03:00
michalpolko
4686f905ac [10843] Fix AuraType 138 to not affect ranged haste, and rename to SPELL_AURA_MOD_MELEE_HASTE.
Also type 192 had misleading name, rename to SPELL_AURA_MOD_MELEE_RANGED_HASTE.

Signed-off-by: Lynx3d <lynx3d@some-imaginary-isp.org>
2010-12-09 02:18:53 +01:00
kb_z
1b4210e38c [10840] Implement server side part of SPELL_AURA_ADD_MECHANIC_ABILITIES (293) work.
Also fix stealth/invisibility visual affect flags changed at some 3.x switch.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-12-08 09:12:44 +03:00
Lynx3d
81b6cb2751 [10830] Prevent spell_proc_event entries to proc on any spell cast when SpellFamilyName is zero.
Now only spells that actually deal damage or heal will trigger
when neither SpellFamilyName nor ProcEx & PROC_EX_EX_TRIGGER_ALWAYS are set.
Before, setting a SchoolMask would override this check, causing many bogus procs.
2010-12-06 21:18:25 +01:00
VladimirMangos
3c0b80dada [10814] Convert to ObjectGuid aura cast item guid access function. 2010-12-02 08:12:15 +03:00
VladimirMangos
957c9331a9 [10813] Use ObjectGuid for aura holder cast item guid.
Still exist 7 GUID_LOPART uses in code.
2010-12-02 08:02:22 +03:00
C:/Program Files (x86)/git/dev/rsa
87b8a1d1ce [10745] Use ObjectGuid in spellauraholders instead uint64
(based on rsa's repo commit 06342c1)

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-11-19 16:01:12 +03:00
VladimirMangos
31c9efd219 [10629] Drop function GuidHigh2TypeId
Added ObjectGuid version Aura::GetCasterGuid()

But for prevent big problen with backporting AuraHolder
to mangos-0.12 in most cases still used old uint64 version
Aura::GetCasterGUID.

Recommended use new version where possible in clean way
as done for some cases in commit already.
2010-10-20 09:12:43 +04:00
VladimirMangos
c955941b55 [10627] Use ObjectGuid for player's selection and unit's target 2010-10-20 08:19:48 +04:00
insider42
c2742dccc3 [10532] Aura SPELL_AURA_ALLOW_ONLY_ABILITY not prevent auto-attacks.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-09-25 11:40:05 +04:00
nos4r2zod
19d028d099 [10505] Remove unused stuff
Signed-off-by: Laise <fenrisse@gmail.com>
2010-09-19 08:57:44 +02:00
VladimirMangos
f0956e258c [10484] Use for auraholde/aura GetStackAmount uint32 result.
uint32 result used in most expressions for stack calculation/compare
Alos uint8implicitly casted to int by C++ in expressions that generate unexpected
signed/unsigned warnings in comparisons (uint8 +1) > uint32 and similar.
2010-09-14 21:30:42 +04:00
VladimirMangos
77148f0e60 [10459] Restore update area aura values at caster/around targets.
For example, at related improvement talent learn by caster.
It has been disabled in aura holder code changes.
2010-09-09 16:28:18 +04:00
VladimirMangos
5f44c4da21 [10363] More wide use ObjectGuid in way remove MAKE_NEW_GUID uses.
Also
* Fixed some amount wrong uses low guids as full player guids.
* Add private without body ObjectGuid(uint32 const&) for catch wrong assigns low guids to ObjectGuid.
  In some cases need assign "0" guid, then use ObjectGuid() instead.
* Fixed .pdump commands work.
2010-08-17 08:22:28 +04:00
VladimirMangos
779e40d5ff [10332] Save cast item guid for auras also.
This must fix another way duplicate aura adding to DB error.
It also prevent wrong stacking work for weapon equip bufs
in cases when its allowed for both wepoan indepndently apply.
2010-08-09 06:17:23 +04:00
zergtmn
d31ce2e2a3 [10315] Make AuraHolder::IsDeleted() really work.
In fact it has been broken originally when added in Aura long before move it to AuraHolder.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-08-04 01:36:56 +04:00
VladimirMangos
835efe7f6a [10313] Drop now unused Aura::m_deleted.
Most functionality move to similar flag of AuraHolder.
2010-08-03 14:42:40 +04:00
VladimirMangos
04cb020e86 [10279] Unused function declarations after aura holders. 2010-07-28 01:50:59 +04:00
Laise
3e326311ad [10240] Fix some spells proc from spells that don't deal damage/heal 2010-07-21 08:16:23 +03:00
Ceris
d7b6840634 [10236] Implement SPELL_AURA_OPEN_STABLE (292).
(based on Wowka321's repo commit 213ceb0)

Signed-off-by: VladimirMangos <vladimir@getmangos.com>

Rewrited partly.
2010-07-21 04:59:04 +04:00
Laise
d8c1374fcd [10232] Fix mechanic-related check, thanks to VladimirMangos 2010-07-20 13:20:35 +03:00
Laise
c384650af8 [10218] Restore trinket procs when no specific spell is defined for proc 2010-07-18 18:53:46 +03:00
Laise
a32b3063a2 [10156] Add shared object for auras of same spell and move spell proc code to its own file, also spread procs by auras and effect indexes. 2010-07-07 19:08:26 +03:00
VladimirMangos
f520c9b1e0 [10051] Fixed talent 58426 broken after 3.3.3 switch.
Also cleanup character auras from wrong duration auras.
2010-06-12 04:32:33 +04:00
VladimirMangos
ff3fb9b727 [10027] SPELL_AURA_ADD_TARGET_TRIGGER long time not use spellmod for work.
Drop dead code.
2010-06-03 23:39:13 +04:00
VladimirMangos
7f90b8955e [9759] Comment cleanups related to spell base points use. 2010-04-18 13:08:23 +04:00
VladimirMangos
ee0089826d [9742] Final cleanup in non proper now EffectBasePoints use. 2010-04-13 16:11:16 +04:00
VladimirMangos
3cf9e47110 [9530] Fixed check for SPELL_AURA_ALLOW_ONLY_ABILITY
Also remove public access to SpellAura::m_spellmod for avoid another hacks
with it use. Spellmods only for Player::ApplySpellMod use.
2010-03-06 07:58:09 +03:00
Sarjuuk
0ca87c50a6 [9523] Stacking Auras from dual wild weapons.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-03-05 08:38:27 +03:00
VladimirMangos
dd2f02699e [9412] Add #include DBCEnum.h for headers where SpellEffectIndex used.
This must fix Unix build problem.
2010-02-19 17:20:19 +03:00
VladimirMangos
84080aaf60 [9411] More SpellEffectIndex using in apropriate cases 2010-02-19 06:45:11 +03:00
AlexDereka
4338c9105d [9324] Fix some gcc warnings 2010-02-08 02:27:34 +03:00
VladimirMangos
7bb40630e5 [9279] Move reapply spellmods code in own function. 2010-01-31 22:54:59 +03:00
VladimirMangos
6704929d56 [9186] Templated functions for apply some code to all controlled units.
Also fix some related problems with not updates totems/etc
2010-01-16 04:41:44 +03:00
VladimirMangos
fe6e2e1746 [9122] Updated copyright notice for new year.
Also fix some lost in past cases.
2010-01-08 00:02:21 +03:00
VladimirMangos
e5dfeea31e [9090] Implement tick counting in periodic auras.
This can be used for some tick number dependent aura effects.
Also in some cases impossible claculate tickes count pass,
for example for infinity duration auras.
2009-12-31 17:52:43 +03:00
VladimirMangos
15de428242 [9037] Cleanups in spellmode apply code.
* Add constructores for spellmode creating instead explcit fields init
* Use uint32 for family mask 2 instead unneded uint64

Also drop one from manual applies for uno-existed now spell.
2009-12-20 19:47:14 +03:00
VladimirMangos
181ecdc20d [8982] Prevent infinity recusion at repally auras at sepllmod change.
Passive auras (in different area auras) not affected by another group member spellmods.
In different from owned unit case.
2009-12-13 01:21:22 +03:00
Maxxie
0ec0f34be7 [8956] Implement aura SPELL_AURA_ALLOW_ONLY_ABILITY.
(cherry picked from commit f4d1e05)

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-12-09 16:01:08 +03:00