Commit Graph

761 Commits

Author SHA1 Message Date
Ovalord
c868e10d9b Core/Skills: implement Archaeology 2017-11-09 03:58:28 +01:00
Gildor
9be24a5d95 Core/Spells: EffectSanctuary should stop attack (#20492) 2017-10-06 18:02:36 +02:00
Keader
6020c66fbf Core/Spells: Fixed Cloak of Shadows dispel (removed old hack)
Closes #8758
Serverside spell (35729) already handle with it
2017-09-25 16:40:17 +02:00
Gustavo
da40bace9e Core/Scripts: More fixes in boss Lich King (#20147)
* Core/Scripts: More fixes in boss Lich King

Fix Valkyr charge spell, they will no longer ignore Z position and become unreachable.
Correct height of Spirit Bomb and added the 3 seconds delay on his explosion.
Set the Trigger inside frostmourne room as active, to avoid problems with reseting the room, e.g: Spirit Bombs not despawning and Wicked Spirits stuck in evade.
Use correct InhabitType for Wicked and Vile Spirits, this avoid a situation where they could spawn falling.
2017-08-20 07:08:48 +02:00
Aokromes
1a5c0f5c3b Core/Grids: Ported cmangos/mangos-wotlk@ea99457
(cherry picked from commit 9299e9b)
2017-06-19 20:20:26 +02:00
Gustavo
288aca3d15 Core/Spells Allow bosses to receive KnockBack under certain conditions (#19312)
Conditions: Not player, not controlled by player and not hunter's pet
2017-06-15 07:28:59 +02:00
Keader
4292ac7039 Core/Spells: Removed duplicated check again followup 3a0417f712
to send some info to client
2017-06-01 14:05:32 +02:00
Keader
52551be039 Core/Spells: Removed duplicated check
unitTarget was checked twice in Spell::EffectTaunt
2017-06-01 14:05:14 +02:00
Gerhood
0e1cc63055 Core/Spells: implement Mad/Crazy Alchemist's potions 2017-05-04 04:17:24 +01:00
ariel-
62f9b5a0a1 Core/Misc: readd some codestyle changes inadvertently reverted 2017-05-04 03:42:24 +01:00
ariel-
a6c7f2b98c Core/Spell: Fixed irregular handling of SPELLMOD_DOT 2017-05-04 02:15:54 +01:00
ariel-
3d9c4fd3fc Core/Spells: use DamageInfo struct to calc spell absorbs and resists, and use calculated proc hitMask on aura ticks 2017-05-04 01:07:05 +01:00
ariel-
51f26dfe51 Core/Spells: Implementation of QAston proc system 2017-05-03 20:08:08 +01:00
Chaouki Dhib
4565c2f8c2 Core/Spells: change to the way the spell effect SPELL_EFFECT_JUMP work 2017-05-03 06:01:08 +02:00
Aokromes
897a3b0633 typo fixes 2017-05-02 02:47:59 +02:00
Aokromes
acd63b4259 Core/Entities: moved PetAura handling to Player where it belongs 2017-05-02 02:10:32 +02:00
ariel-
f3246f835c Core/Scripts: remove OnDummyEffect hook/sOnDummyEffect ai hook
- Duplicated logic never used, sometimes only ScriptMgr version was called, sometimes only AI
- They only encourage bad scripting practices
- You can still use OnSpellHit or a SpellScript
2017-05-02 02:04:45 +02:00
Aokromes
c015a5cf10 Core/Misc: camelize GetFaction/SetFaction properly 2017-05-02 02:02:31 +02:00
ccrs
a17849bcfe Core/Unit: 2170541a51 followup
use true as default value since pretty much all the script calls will expect that
2017-04-28 12:57:38 +02:00
Aokromes
adae2fec26 Ensure that all actions are compared to fixed point in time (ie. world update start) 2017-04-14 15:02:49 +02:00
ccrs
5d79ac9275 Core/Unit: cleanup UnitState enum 2017-03-26 06:15:09 +02:00
ariel-
3ceeffde86 Core/Movement: Corrected all speed checks after 23b6991273
Ref issue #19210
2017-03-03 01:30:15 +01:00
xinef1
62111a8c4a Core/SmartAI: Various fixes and extensions for smart scripts: (#18673)
- Possible crashes fixed
- Memory leak fixed
- Implemented checking of vehicle conditions
- Extended eventphasemask to 12 bits (sql required to change DB field type)
- SMART_EVENT_GOSSIP_HELLO - added possibility to detect for gameobject reportUse call
- Renamed action SMART_ACTION_SET_FLY to SMART_ACTION_SET_DISABLE_GRAVITY (to reflect actual functionality)
- Added targetsLimit to action SMART_ACTION_CAST and SMART_ACTION_INVOKER_CAST to limit max amount of targets (selected randomly)
- Action SMART_ACTION_TALK corrected to always work as intended
- Properly call GroupEventHappens in action SMART_ACTION_CALL_GROUPEVENTHAPPENS if invoker was charmed or owned by the player
- Properly utilize followAngle in action SMART_ACTION_FOLLOW (db orientation should be in degrees), but keep backward compatibility
- Added action SMART_ACTION_SET_CAN_FLY (119) 0/1
- Added action SMART_ACTION_REMOVE_AURAS_BY_TYPE (120) AuraType, can be used to exit vehicle for example
- Added action SMART_ACTION_SET_SIGHT_DIST (121) sightDist
- Added action SMART_ACTION_FLEE (122) fleeTime
- Added action SMART_ACTION_ADD_THREAT (123) +threat, -threat
- Added action SMART_ACTION_LOAD_EQUIPMENT (124) equipmentId
- Added action SMART_ACTION_TRIGGER_RANDOM_TIMED_EVENT (125) minId, maxId
- Added action SMART_ACTION_REMOVE_ALL_GAMEOBJECTS (126), removes all owned gameobjects
- Added action SMART_ACTION_STOP_MOTION (127), stopMoving, movementExpired
- Extended target SMART_TARGET_HOSTILE_SECOND_AGGRO with following parameters maxdist, playerOnly, powerType + 1
- Extended target SMART_TARGET_HOSTILE_LAST_AGGRO with following parameters maxdist, playerOnly, powerType + 1
- Extended target SMART_TARGET_HOSTILE_RANDOM with following parameters maxdist, playerOnly, powerType + 1
- Extended target SMART_TARGET_HOSTILE_RANDOM_NOT_TOP with following parameters maxdist, playerOnly, powerType + 1
- Extended target SMART_TARGET_THREAT_LIST with maxdist
- Extended target SMART_TARGET_OWNER_OR_SUMMONER to be able to get charmer/owner of current owner
- Added new target SMART_TARGET_FARTHEST with maxDist, playerOnly, isInLos restrictions
- Added SpellHit hook to GameObjectAI and extended SmartGameObjectAI to call SMART_EVENT_SPELLHIT when gameobject is hit by spell
- Call GameObjectAI Reset hook on gameobject respawn (for ex. to reset one time events in smart scripts)
- Fixed some logic errors in code
- SmartAI Escorts properly despawn escortee if no players are in range
- Disable Evading while charming creature with SmartAI
- Don't call SMART_EVENT_RESPAWN for dead units before they actually respawn
- Don't call SMART_EVENT_RESPAWN for not spawned gameobjects
- Properly call SMART_EVENT_RESPAWN for gameobject respawn
- Allow action SMART_ACTION_SET_IN_COMBAT_WITH_ZONE to utilize targetlist
- Allow action SMART_ACTION_CALL_FOR_HELP to utilize targetList
- Allow action SMART_ACTION_SET_INVINCIBILITY_HP_LEVEL to utilize targetList
- Allow action SMART_ACTION_SET_VISIBILITY to utilize targetList
- Allow action SMART_ACTION_SET_ACTIVE to utilize targetList
- Allow action SMART_ACTION_ATTACK_START to select random attack target instead of first on the list
- Allow gameobjects to summon gameobjects with action SMART_ACTION_SUMMON_GO
- Properly store action invokers for action SMART_ACTION_WP_START, if no player invokers are found, distance despawn check won't be used
- Allow action SMART_ACTION_WP_RESUME to compensate for the state the unit actually is in (eg. combat)
- Allow action SMART_ACTION_MOVE_TO_POS to select random of the avaiable targets, not only the first one.
- Allow action SMART_ACTION_MOVE_TO_POS to utilize x, y, z parameters as an offset to calculated coordinates
- Action SMART_ACTION_RESPAWN_TARGET should never modify respawntime of already spawned gameobjects, use dedicated function
- Properly delete ontime events created by SMART_ACTION_CREATE_TIMED_EVENT
- If action could not be started because conditions were not satisfied, do not recalculate the waittime to action repeattime, use smaller value to recheck more frequently
- Allow target SMART_TARGET_CLOSEST_PLAYER to be used by gameobjects
- Allow target SMART_TARGET_OWNER_OR_SUMMONER to be used by gameobjects
- Fixed SMART_EVENT_COUNTER_SET to be only called for the id that was incremented
- Changed the way counters work
- Protect PhaseInc from surpassing maximum phase
- Added loading checks for missing NON_REPEATABLE flag if no repeatmin, repeatmax is set
- Added spell validation for SMART_ACTION_CROSS_CAST
2017-02-19 09:10:29 +01:00
Aokromes
0748e7f820 Added some missing SetFallInformation calls
Fixed HP drop bug on zeppelins
Fixed possible packet relocation problems on huge transports
2017-02-17 09:39:09 +01:00
xinef1
6832ce8c32 Core/Spells: Corrected summon category SUMMON_CATEGORY_VEHICLE (#19052) 2017-02-10 05:21:58 +01:00
xinef1
a76da51e7f Core/Spells: Fixed spell effect 93 (SPELL_EFFECT_FORCE_DESELECT) (#19001) 2017-02-05 01:57:59 +01:00
Aokromes
8a63c4919e Core/Packets: updated some contactlist packets
(cherry picked from commit e01bb91)
2017-02-01 02:11:56 +01:00
Aokromes
1d2eeebc63 tabs to space 2017-01-26 17:52:45 +01:00
Aokromes
4a3d10502b Some fixes 2017-01-26 17:39:24 +01:00
Aokromes
c1c8b6098a missing include 2017-01-25 12:56:33 +01:00
Aokromes
4c4c03a074 more missing part 2017-01-24 12:35:47 +01:00
Aokromes
efce128b66 Core/Party: Implement Raid Marker
By ArkCORE
2017-01-24 00:02:29 +01:00
Aokromes
b7432bc39a Compile fix try 2017-01-18 15:09:57 +01:00
Aokromes
719a317a67 Update copyright note for 2017 2017-01-02 07:26:38 +01:00
Aokromes
949ce2d576 Core/Units: Cleanup hardcoded magic numbers for byte field offsets
(cherry picked from commit ac1dc75)
2016-12-16 19:54:22 +01:00
ariel-
eb3a90a4e8 Core/Spell: implemented dispel reflection
Closes #18323
2016-12-16 19:24:01 +01:00
Aokromes
c0ba6c2dfe Core/Auras: Rewritten conditionally applying SPELL_AURA_MOD_WEAPON_CR…
…IT_PERCENT, SPELL_AURA_MOD_DAMAGE_DONE and SPELL_AURA_MOD_DAMAGE_PERCENT_DONE auras

* Now the entire aura is removed when changing equipment
* All aura types can now depend on equipped items
2016-11-27 03:09:29 +01:00
ariel-
bc25bbcd42 Core/Spell: register items received through SPELL_EFFECT_SUMMON_CHANGE_ITEM for quest credit
- Also sends proper SMSG_ITEM_PUSH_RESULT packet

Closes #3505
2016-11-27 01:42:18 +01:00
Aokromes
1659ea03cf Core/GameObject: spawn linked traps at gameobject creation instead of…
… using DB spawns.
2016-11-02 04:01:09 +01:00
Aokromes
065b6fdc2c Core/GameObjects: Handle despawning and respawning of nearby linked t…
…raps on gameobject despawn and respawn
2016-11-02 03:27:25 +01:00
SnapperRy
f28c778788 Core/Spell: allow SPELL_EFFECT_QUEST_COMPLETE to set a quest to rewarded only if that quest is used as internal flag by the server (has flag 1024 - QUEST_FLAGS_TRACKING). 2016-10-24 13:55:33 +02:00
Aokromes
2057e6de4a Core/Items: Defined all item flags
(cherry picked from commit ef29f32)
2016-10-24 13:01:00 +02:00
Krudor
2a607f6ce1 Core/Spells: Effect leap back fix (#18057)
* Fixed unintentional typo?

Seemed to fix the issues related to the effect for the spells I tried.
Sometimes the caster triggers leapback onto targets, and with the old
code, it instead made the caster leap back instead of its targets

(cherry picked from commit 08aab73c7f)
2016-10-24 11:03:23 +02:00
Aokromes
686a9eeef9 Core/Spells: add Target Processing (SMSG_SPELLLOGEXECUTE) to LAUNCH_T…
…ARGET phase.

Move EffectInterruptCast to LAUNCH_TARGET Phase.
2016-10-21 08:23:40 +02:00
Aokromes
57d0a5d16d Revert "Core/Spells: Implementation of QAston proc system"
This reverts commit a70e4e26b3.
2016-10-21 07:27:04 +02:00
Aokromes
a70e4e26b3 Core/Spells: Implementation of QAston proc system
- Move checks from Unit::IsTriggeredAtSpellProcEvent (old system) to Aura::IsProcTriggeredOnEvent (new system)
- Templatize SpellModOp param of Player::ApplySpellMod, also killed charge counter from SpellModifier and Player system for handling charges... no point in having 3 different systems doing the same thing
- Automatically add default entries to spellProcMap, based on spellinfo (else auras won't proc without an entry) Based on old Unit::ProcDamageAndSpellFor
- Old Unit::ProcDamageAndSpellFor renamed to Unit::ProcSkillsAndReactives and made private, will no longer handle auras.
- Start making use of HealInfo::AbsorbHeal in unit calculations, add effective healing info to HealInfo struct
- Changes in spell reflection system, emulates old behaviour, delaying aura drop
- Removed old charge count hacks in SpellMgr::LoadSpellInfoCorrections
- Removed bogus error log when procChance is 0: Some auras have initial 0 procChance but modified by SPELLMOD_CHANCE_OF_SUCCESS
- Fixed TriggerAurasProcOnEvent logic that tried to trigger twice from actor.
- Allow non damaging spells with DamageClass Melee or Ranged to proc character enchants. Ref issue #17034:

  * http://web.archive.org/web/20110309092008/http://elitistjerks.com/f47/t49865-paladin_retribution_pve/
  * When an auto-attack lands (does not dodge/parry/miss) that can proc a seal the of the following things happen independently of each other (see 2 roll system).

  * 1) A "hidden strike" which uses melee combat mechanics occurs. If it lands it refreshes/stacks SoV DoT. Only white swings can trigger a refresh or stack. (This hidden strike mechanic can also proc things like berserking..)
  * 2) A weapon damage based proc will occur if you used a special (CS/DS/judge) or if you have a 5 stack (from auto attacks). This attack can not be avoided.

  * Holy Vengeance is the "hidden strike" it has an apply aura effect and damage class melee.
- Fixed Blood Tap interaction with Death Runes (btw, don't know what was going on with those MiscValueB, spell 45529 doesn't have any MiscValueB in SPELL_EFFECT_ACTIVATE_RUNE)
- Ported some AuraEffect checks from old Unit.cpp function. added new AuraScript hook to check procs of an specific effect
- Allow only AuraEffects that passed the check to proc, this won't block whole aura from proccing (and lose charges) if at least one of the effects procs, though
- Changes in spell mod system (for SPELLMOD_CASTING_TIME). fixes #17558.
- Added an exception for SPELLMOD_CRITICAL_CHANCE too, fixes #15193
2016-10-05 13:19:51 +02:00
Aokromes
d9ae70396b Core/Player: Implemented Titan's Grip damage reduction 2016-10-03 14:51:20 +02:00
joschiwald
4ed2cd9500 Core/Spells: use spellinfo helper methods
(cherry picked from commit 12a52595ed)
2016-10-03 14:42:37 +02:00
SnapperRy
83dafd5886 Core/Spell: set quest to rewarded instead of complete when targeted by SPELL_EFFECT_QUEST_COMPLETE. (#18021)
Prevents people from ending up with strange quests in their quest logs.
2016-10-01 16:47:49 +02:00
Rochet2
19ed813f6b Core/Scripts: Enhance quest status hook by making it catch more status changes (#17865) 2016-09-10 14:25:57 +02:00