Commit graph

90 commits

Author SHA1 Message Date
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
VladimirMangos
f3930cb06f [8406] Detect/check stacking of food/drink/elental shileds as spell specifics.
Food/Drink checks base at nos4r2zod's patch code.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-08-23 03:33:01 +04:00
nos4r2zod
e07a0d9652 [8399] Prevent stacking well fed buffs.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-08-21 06:00:08 +04:00
VladimirMangos
8d30f01a73 [8369] Some step back in triggered effect caster selection.
This must fix some broken after [8360] spells.
2009-08-14 04:10:02 +04:00
VladimirMangos
e01e1b4fb4 [8350] Implement (partly) 78-85 target modes.
Thanks to Astellar for original reseach related target modes.
2009-08-11 19:53:56 +04:00
KAPATEJIb
fc66d2729b [8309] Fixed paladin judgement selection code in some places.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-08-05 00:52:40 +04:00
VladimirMangos
bb273d51ad [8306] Implement single-per-caster limitation for paladin "hand of" spells. 2009-08-04 20:01:34 +04:00
nos4r2zod
39eca7d43a [8298] Use new Aura::HandleSpellSpecificBoosts for apply/remove dependent auras.
This provided more clear place where dependent auras can be applied/removed,
if expected manual apply _with_ aura remove at parent aura expire.
This can be used for more cases.

In current state it implement additional effects for
29836 and ranks, 61846 and ranks, 31869, 53379 and ranks, 20254 and ranks,
20138 an ranks, 48263, and 48265.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-08-03 02:27:30 +04:00
VladimirMangos
c7f8c9b52b Avoid target requirement checks for spells with caster base target selection (self,pet,around).
This fix cast fail for some spells, mostly triggered or scripted with unexpected prowided explicit tatrget different from caster.
2009-07-31 17:08:47 +04:00
Lutik
48eb01666d [8264] Implement target mode 104 (forward 30 degries cone)
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-07-28 14:14:05 +04:00
VladimirMangos
7ac4dc6f13 [8251] Store in some DB tables only data for first rank.
* Allow add to DB data only for first rank in table `mangos_spell_bonus_data` and `mangos_spell_proc_event`.
* Copy data for other ranks for speedup use at loading for this data and data from `spell_proc_item_enchant`.
2009-07-26 10:46:36 +04:00
nos4r2zod
fd2eb3cfee [8250] Cleanup code and data for spell_threat
* Load table data to std::map instead SQLStorage and add check loaded spell existance.
* Drop from table not existed spells.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-07-26 05:49:17 +04:00
nos4r2zod
13b709a10b [8249] Implement support spell_proc_item_enchant table for ppm item enchantments triggering at hit.
* Added a new SQL table, spell_proc_item_enchant, for "custom" ppmRates on Item Enchants that do not use auras.
  With table data this must fix ppm for effect from 8033 and ranks enchanting, and item 6947/10918 and ranks enchanting.

* Implemented SPELLMOD_FREQUENCY_OF_SUCCESS (26).
  That must fix work talent 14113, spell 32645 with ranks, glyph 41094 and item set effect 64917 in frequency part.

Thanks to MaS0n as author alternative patch that partly used in this patch.
Thanks to Thenecromancer as author alternative patch that ideas inspire MaS0n's patch writing and then this patch also.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-07-26 04:58:46 +04:00
VladimirMangos
ae2f25ce64 [8234] Implement support for explcit discovery spell 64323. Also better checks at loading. 2009-07-23 17:14:31 +04:00
VladimirMangos
b7389d2a20 [8224] Small uint64 defines cleanup. 2009-07-21 01:37:35 +04:00
XTZGZoReX
a538fa621c [8191] Drop code related to use long time empty spell_affect table.
After switch to 3.x.x all data get explcitly from ClassMask fields in spell.dbc
and no need in custom values.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-07-17 04:29:33 +04:00
VladimirMangos
888e6f04f3 [8188] Cleanups in #includes for SpellMgr.h 2009-07-17 00:45:47 +04:00
ApoC
9759a2279c [8174] Fixed typo in IsSpellHaveAura
* Correct cast DBC data to AuraType instead of SpellEffect.

Signed-off-by: ApoC <apoc@nymfe.net>
2009-07-13 15:14:10 +02:00
VladimirMangos
f99f477fe8 [8169] Implement new optional table spell_check and console command .debug spellcheck
* Table expected to be store data mirror same data in code:
  - explicit spell ids with related expected spell properties like effects, spell family or auras
  - implicit requirements for select some spell sets like spell family masks, icons or visual values
* For check can be used .debug spellcheck _console_ only command.
* Main purpose table and related command check code parts for outdated data at client switch.
  It also can be used for check data in patch writing time to be sure code correctness.
2009-07-12 22:15:56 +04:00
VladimirMangos
1baec77845 [8098] Support uint32 spell ids in code.
* Propertly work with uint32 spell ids in player action bar
* Fix in same time bug with not save equipment set button with id==0
* Merge misc field in character_action and playercreateinfo_action to action field as 3 byte
* Propertly load uint32 spell ids from character_spell
* Fixed types for some pet/creature related structure for spell id storing.
2009-06-30 11:25:32 +04:00
Lightguard
df064ebd9f [8082] Update Diminishing Returns.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-06-27 11:32:52 +04:00
VladimirMangos
7175007aba [8070] Restore spell casting loot items and recipes.
* SPELL_EFFECT_OPEN_LOCK_ITEM (59) effect removed in 3.1.3
* It replaced by SPELL_EFFECT_CREATE_RANDOM_ITEM (59), random item without template replace spells like clam loot spells)
  Used by spells that use before SPELL_EFFECT_CREATE_ITEM_2 (157) with itemtype==0

Note: required DB support in `spell_loot_termplate`
2009-06-23 03:46:27 +04:00
hunuza
7448aaa37e [8060] Fix 56314 and ranks.
Signed-off-by: hunuza <hunuza@gmail.com>
2009-06-21 12:33:52 +02:00
NoFantasy
6a1b4e5729 [7980] Implement item use target requirements store and check (new table item_required_target).
Signed-off-by: VladimirMangos <vladimir@getmangos.com>

* Also implement this table reload
* Static Spell::SendCastResult function for call not from spell code.
  Can be also used in scripts where need send explicitly spell cast error to client.
2009-06-09 00:26:36 +04:00
pasdVn
eaad24d8d5 [7954] Added support for spellranges at friendly targets.
Signed-off-by: ApoC <apoc@nymfe.net>
2009-06-04 21:10:01 +02:00
VladimirMangos
2a27a44e2a [7918] Improve portability in work with uint64 string format specifiers and in code literals.
* Replace platform seelction MaNGOS code for select format descriptor for uint64 by using ACE define.
  I64FMTD renamed to UI64FMTD for more clear name.
* Add new define UI64LIT (base at ACE seelction) for build portables uint64 literals.
  Please always use UI64LIT(0x00001) instead less portable 0x00001LL
2009-05-30 22:44:20 +04:00
VladimirMangos
8171bb57dd [7886] Drop use table petcreateinfo_spell
This is first commit in chain for remove oudated and not used pet functionality.

* Use instead dropped table CreatureSpellData.dbc if creature_template.PetSpellDataId set (mostly hunter pets)
* Use creature_template.spellN if not set creature_template.PetSpellDataId (mostly different summon creatures)
* Fixed bug with not removing from action bar spell icon for not ranked unlearned spells.

Note: summoned controllable creatures without PetSpellDataId must have expected spells in spellN feilds for creature_template.
2009-05-24 06:39:29 +04:00
VladimirMangos
5616ef173b [7881] More types with random generated item at recipe casting. Cleanups code.
Real resulting items creating required DB support (helper error message outputed at loading)
2009-05-23 18:51:39 +04:00
VladimirMangos
a1f4549862 [7833] Implement levelup spells for non-hunter pets.
* Use less hacky way to prepare data in SpellMgr::LoadPetLevelupSpellMap.
* Fill data for all pet families including not hunter pets.
* Fixed bug with lost/unexpected learned spells for some hunter pet families.

Use less hackky way for
2009-05-15 06:26:19 +04:00
AlexDereka
c9d51a6dc7 [7716] Fixed some typos and possible crashes. 2009-04-26 18:49:07 +04:00
VladimirMangos
09c32b5429 [7678] Implement spell target mode 7 and cleanup target mode 17. 2009-04-17 13:41:36 +04:00
VladimirMangos
c4d4bb5620 [7552] Move client version dependend DBC code to src/game. 2009-03-27 01:59:26 +03:00
Lightguard
610a040240 [7500] Not allow stacking some auras at target from different casters.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-03-20 00:14:59 +03:00
VladimirMangos
c1b0e7d57a [7466] Use SpellCastResult in SpellMgr.* functions 2009-03-16 11:21:28 +03:00
VladimirMangos
9def5df2d7 [7463] Make basic preparations for replace 0 as ok spell cast value by more correct value.
Currently 0 used ast OK value for spell cast checks BUT 0 = SPELL_FAILED_AFFECTING_COMBAT
So another values need used. This required lot code changes. This is first step.
2009-03-15 23:57:57 +03:00