Commit graph

124 commits

Author SHA1 Message Date
x3n
d35be7f4c1 [11023] Implement support for threat multiplier and AP based threat bonus for spells.
* Higher ranks are now automatically filled when not listed in spell_threat
* Added some loading checks to detect inconsistent data

Signed-off-by: Lynx3d <lynx3d@some-imaginary-isp.org>
2011-01-17 12:55:24 +01:00
VladimirMangos
8d62e9dbf7 [11004] Fixed not apply spell for current form at learning.
Some non-passive spells autocasted at shapeshift but without fix
in case already active form at like spell learning it not has been casted
in different from passive similar spells.

This is fix apply dodge chance part of spell 17002 for described case.
2011-01-14 03:59:22 +03:00
VladimirMangos
bf0ecf6e71 [10947] Update copyright notice for 2011 year. 2011-01-01 20:33:43 +03:00
VladimirMangos
d38df50a7e [10932] Imporvments gameevent creature morphing.
* Table `game_event_model_equip` renamed to `game_event_creature_data`
* Table allow now store same creatures for different events, BUT
  expected that related events no active in same time.
* Added possibility switch entry at gameevent time.
  This let have diff factions/loot and etc for creatures.
* Added possibility cast spells at gameevent start/end.
  Exist some spells that expected casted to creature at gameevent start
  for model replace, and for animation in other cases.

Note: `game_event_creature_data`.`modelid` field posisble will removed soon in fowor related spell use.
      Ofc, when spells will implemented in core.
2010-12-29 01:38:49 +03:00
NoFantasy
7751579303 [10855] Add TARGET_AREAEFFECT_GO_AROUND_DEST(52) (renamed from TARGET_AREAEFFECT_CUSTOM_2)
Target selects all gameobject around destination, limited by adding spell with a corresponding gameobject entry in database table spell_script_target.

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-12-11 10:34:46 +01:00
VladimirMangos
b6ea36192e [10829] Update SpellFamily check functions.
* Move SPELLFAMILY_* to DBCEnums.h and name it as SpellFamily
* Use enum in Unit::GetAura, move family mask code to new SpellEntry helper function.
* Avoid all auras scan in search of triggred spell for 20243.
2010-12-06 08:40:39 +03:00
VladimirMangos
80712b928a [10825] Move specific SQLStorage defines to game dir
This let have in shared dir only generic declarations of class SQLStorage
Not game specific details.
2010-12-05 03:29:11 +03:00
QAston
f27741460f [10742] Add spell_bonus_data.spell_bonus_data field and support for RAP bonuses use for spells damage from table.
Thanks to insider42 for prepering patch for mangos repo.

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

Also added loading check for redundant ap/ap_dot data in table.
2010-11-19 05:23:29 +03:00
tomrus88
76dfdd336f Backports from 400 branch. 2010-11-15 18:01:45 +03:00
VladimirMangos
691412d05c [10636] Implement server side check combo points req. for spell cast.
Thanks to nos4r2zod for problem research.
2010-10-21 15:00:56 +04:00
zerg
2fa5fa43bd [10594] Use equal_range instead of lower_bound/upper_bound pairs
(based on zergtmn's repo commit 0499169)

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-10-09 01:37:57 +04:00
Laise
daf7041231 [10522] Fix periodic procs - spells that require periodic healing to proc need to be defined in spell_proc_event with procEx PROC_EX_PERIODIC_POSITIVE, by default all procs without it are negative 2010-09-23 14:27:26 +02:00
VladimirMangos
acd0716297 [10432] Rename ASSERT -> MANGOS_ASSERT and related fixes
ASSERT hard use in predictable way because diff. 3rd party libs code
redefine it inf different ways and hard make sure that used in end
of mangos define version. This is real detected problem make some
expected assert checks ignored and so bugs not detected as expected from code.

In addition made related changes:
* Common.h header expected to be first include in any src/game/header except most simple cases.
* Related FILE.h header expected to be first include in FILE.cpp
* Fixed some absent includes and type forwards for safe build without PCH enabled.
* Avoid using MANGOS_ASSERT in src/framework code
2010-09-02 05:13:16 +04:00
VladimirMangos
acdaac3587 [10370] Rename UnorderedMap.h -> UnorderedMapSet.h 2010-08-18 04:54:25 +04:00
VladimirMangos
6244d992ef [10274] Make gcc happy after last commits. Restore Unix build. 2010-07-26 21:12:56 +04:00
VladimirMangos
6a4cae890e [10273] Avoid some redundent and recursive calls to SpellMgr singleton. 2010-07-26 16:51:52 +04: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
zerg
3dbb8385b5 [10130] Proper stacking 30108/348 anr ranks from 3.2.x
(based on zergtmn's repo commit 7588ca9)

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-06-30 22:34:59 +04:00
VladimirMangos
81851074ad [10075] Attempt use more expected by result buffs downranking algo.
* In small rate more fast
* Not affect non-buff ranked spells like 10909
2010-06-18 04:21:34 +04:00
VladimirMangos
07a931e141 [10074] Add IsPassive(SpellEntry*) function and use in cases wjern entry already known.
Some other small code cleanups
2010-06-18 02:17:51 +04:00
VladimirMangos
0a24a170d1 [10016] Remove unused RewardSinglePlayerAtKill result. 2010-06-01 05:17:12 +04:00
VladimirMangos
59cf9c1dbd [10010] Use schoolmask enum in struct SpellNonMeleeDamage, some indents fix. 2010-05-31 08:09:03 +04:00
VladimirMangos
de454d6ff8 [9955] Prevent negetive proc events from possitive effects of negative spells.
Some negative spells have positive effects with targets not affected by negative effects of spell.
For example spell 45524 cast negative effecst to target and possitive effect to caster self.
For like possitive only target of negetive spell will not triggered negative proc events.
In last cases will avoid triggering glyph 43537 at caster at spell 43537 cast.
2010-05-22 16:18:03 +04:00
nos4r2zod
e880e7d236 [9895] Move DotFactor+GetSpellCastTimeForBonus call to CalculateDefaultCoefficient
* This coeff used if not spell_bonus_data provided for spell
* Continue prev. commit line expected that creature casts not affected by DotFactor

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-05-15 11:16:02 +04:00
nos4r2zod
4951f846dd [9894] Move GetCastingTimeForBonus and some other code to GetSpellCastTimeForBonus.
Important changes:

* Chaged way caluclation "-5% of total per any additional effect" to percent
  apply instead use raw value that correct only for 3500 cast time spells.
* GetSpellCastTimeForBonus result now alwasy not applied to creature casted spells
  Before it not applied only to instant spells. Please test if this ok in all cases.
* Leech effect modify spell casting time move into GetCastingTimeForBonus and then called
  also for melee spells. But only creature spells exist with melee class damage and its
  not affected by GetCastingTimeForBonus anyway now.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-05-15 11:15:05 +04:00
nos4r2zod
34a1cc31d0 [9893] Fixed some spelling typos in function/structure names.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-05-15 11:14:03 +04:00
Laise
51546e1ff9 [9789] Implement spell selection, for creatures in instances, based on map difficulty 2010-04-24 20:08:18 +03:00
Laise
10b65dcf8f [9784] Move damage and crit calculation for certain effects of spells with delayed hit to spell launch 2010-04-23 19:53:51 +03:00
VladimirMangos
61255a1a8f Update IsExplicitDiscoverySpell/IsLootCraftingSpell and related code. 2010-04-06 20:00:37 +04:00
tomrus88
b99f51a984 Fixed bug with professions in trainer list not being marked as known until trainer list re-opened. 2010-03-27 19:41:15 +03:00
VladimirMangos
84080aaf60 [9411] More SpellEffectIndex using in apropriate cases 2010-02-19 06:45:11 +03:00
VladimirMangos
ff8d494ed4 [9408] Add MAX_EFFECT_INDEX to enum SpellEffectIndex and use it. 2010-02-18 23:33:16 +03:00
NoFantasy
7c555add76 [9403] Replace number with enum name where explicitly used in array/other checks
Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-02-17 19:07:00 +01:00
VladimirMangos
a21affbd68 [9160] Implement and use PROC_EX_FULL_BLOCK
It used for spell 31245 and ranks new proc flags.

Original patch provided by dardennf.
2010-01-12 12:07:58 +03:00
VladimirMangos
51cb5b356a [9131] Use more generic check for IsLootCraftingSpell
This include spell 69412 to autoloot generation spells.
2010-01-09 18:31:29 +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
NoFantasy
1ec90288fb [9101] Correct target mode 48, and rename to something more meaningful
Also adjust target 49/50 angles to be really left/right.

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-01-02 14:50:39 +01: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
9e18fc5745 [9035] Attempt make more fast and less hackish spell target checks
* Enable server side recheck clear negative to friend or positive to enemy casts that already checks at client side
* Use more fast way check in similar cases for non-players, and fall back to old way in unclear (for while at least)

Please report if some spell stop propertly casted at friends/enemies.
2009-12-20 03:29:36 +03:00
XTZGZoReX
0734adb746 [8789] Rename several singleton macros to use more consistent names.
* objmgr -> sObjectMgr
 * spellmgr -> sSpellMgr
 * WaypointMgr -> sWaypointMgr
 * poolhandler -> sPoolMgr
 * objaccessor -> sObjectAccessor
 * mapmgr -> sMapMgr
 * sInstanceSaveManager -> sInstanceSaveMgr
 * ticketmgr -> sTicketMgr
 * CreatureEAI_Mgr -> sEventAIMgr
 * auctionmgr -> sAuctionMgr
 * achievementmgr -> sAchievementMgr
2009-11-08 12:11:34 +01:00
balrok
a2ff999fd3 [8676] implemented dead-visible creature flags_extra
with this flag you can specify a creature to be only
visible for dead players - this removes all hacks from
spiritguides/spirithealers from code and allows some other
special creatures

i decided to not implement an extra deathstate cause
actualy those creatures are almost equal to living ones
2009-10-18 21:28:36 +02:00
VladimirMangos
a4d61a6988 [8649] Implement SPELL_AURA_MECHANIC_IMMUNITY_MASK (147) and related cleanups.
* Always use machanic masks in form (1 << (mech-1)), fix all cases.
* Imppement SPELL_AURA_MECHANIC_IMMUNITY_MASK (mostly boss/elite spells).

Note: db stored mechannic masks already stored in proper format so not affected.
2009-10-15 20:53:01 +04:00
pasdVn
c47cf7bd61 [8635] Rewrote bonus damage claculation
* calculation depends on the damageClass now
  ->SPELL_DAMAGE_CLASS_RANGED & SPELL_DAMAGE_CLASS_MELEE use MeleeDamageBonus()
  ->SPELL_DAMAGE_CLASS_MAGIC & SPELL_DAMAGE_CLASS_RANGED use SpellDamageBonus()
* changes/improvements in MeleeDamageBonus:
  -> improved criterions to apply bonuses
  -> implemented scaling of FLAT damage Bonus for non weapon damage based spells
  -> support of DOT's
  -> added pet's bonus damage for non weapon based spells
* general cleanup in CalculateSpellDamage() and MeleeDamageBonus()
* implemented global helper functions GetWeaponAttackType() and GetAuraTicks() in SpellMgr

Signed-off-by: ApoC <apoc@nymfe.net>
2009-10-14 00:33:24 +02:00
balrok
f4081b2c6a [8624] fixed typo introduced in 8552
(it was commit e294da6bbf)

through that pickpocketing didn't work right
2009-10-11 13:55:04 +02:00
balrok
2da82a8c68 [8552] implemented spells which can be casted while dead
i added a function IsDeathOnlySpell() which returns true
if this spell can ONLY be casted while dead, so i haven't
implemented all spells which could be cast while dead..
2009-09-28 16:44:49 +02:00
VladimirMangos
b8843ec4d6 [8503] Avoid classidy of seal triggred effects at targets as seal spells.
This fix problem with lost target seal buff at getting enamy seal debuff.
2009-09-16 11:55:12 +04:00
KAPATEJIb
e0c319ef33 [8490] Fix typo in constant name.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-09-12 04:06:08 +04:00
balrok
bd30769dec [8475] fixed some gcc-warnings
all warnings from Wunused
and some from Wall

cause unused may be most interesting for some:
they were in following files:
src/game/Level2.cpp
src/game/Map.cpp
src/game/SpellAuras.cpp
src/game/Unit.cpp
src/mangosd/Master.cpp
but i guess mostly someone just fogot to remove this code

for some unsigned vs signed warnings i used:
ack "for.*int .*size\(\)" | ack -v uint

also note for coding:
if you do something like
    if( a && b || c)
just place parentheses around (a && b) && always will have
precedence over || but without parentheses this could be overseen
quite fast (at least that's my guess why gcc will warn for this)

Signed-off-by: balrok <der-coole-carl@gmx.net>
2009-09-05 13:47:47 +02:00
VladimirMangos
5d50bb16b8 [8426] Use upper/lower iterator pairs as result instead 2 function calls. 2009-08-27 10:56:20 +04:00
VladimirMangos
9f01551210 [8414] Re-implement [8406] in more clear and working way.
* Rename IsSingleFromSpellSpecificPerCaster to IsSingleFromSpellSpecificPerTargetPerCaster for clear meaning.
* Rename IsSingleFromSpellSpecificRanksPerTarget to IsSingleFromSpellSpecificSpellRanksPerTarget for clear meaning.
* Add new IsSingleFromSpellSpecificPerTarget for case single spell specific aura allowed to be at target from any caster and use it.
  Move some spell psecific checks (mostly sellf casted) from IsSingleFromSpellSpecificPerCaster to new function.
2009-08-24 06:44:15 +04:00