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.
* Show race/class specific min level in trainer list (for weapon master for example)
and use it for check spell traing possibility.
* Hide for specific race/class some spells marked by flag ABILITY_SKILL_NONTRAINABLE
This possible in cases when spell available for race/class but learned from talent/etc
and then don't must be show for race/calss pair in trainer list. Single case in 3.3.5a.
* Add to code tables for profession ranks for seelct correct rank related reqlevel
and check DB side data for it. Note: DB reqlevel values redundant for profession rank
spells now.
* Use for reqlevel selection (if DB value not provided) learned spell insteed cast-spell
spellLevel field. This let in more cases select training reqlevel without provided DB value.
For LogFilter_DbStrictedCheck = 0 mode output data about like redundant reqlevel values
in traner tables.
- 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)
* 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>
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.
* 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.
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>
* 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.
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.
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
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.
* 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>
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>