Commit Graph

9029 Commits

Author SHA1 Message Date
Gooyeth
42a11e97d5 Scripts/Commands: add AI/ScriptName to .gobject info (PR #21419) 2018-02-15 16:11:28 +01:00
Treeston
4da9321d2b Core/Combat: Unify combat permitted checks between CvC and PvC - only require "not friendly" in all cases. Fixes Yogg-Saron encounter. Closes #21380.
Also some bonus cleanup to Yogg's script to make transition cleaner.
2018-02-15 12:23:05 +01:00
Treeston
cfc77fd843 Scripts/SmartAI: SetData now has an invoker (if the setting is done by something using SmartAI).
Also, some refactors. SMARTAI IS SUCH A FUCKING CLUSTERFUCK I SWEAR.
2018-02-15 11:44:37 +01:00
Gooyeth
b9aec3b4d3 Core/Scripts: Add bossId in state error log. (#21421) 2018-02-15 09:00:48 +01:00
ariel-
f1f6976f91 Core/Auras: make area and dynauras condition compliant by using the spellarea searcher instead of script searchers
Closes #17317
2018-02-15 03:07:41 -03:00
ariel-
a145a14166 Core/Handlers: fix bogus check that skipped CMSG_CAST_SPELL packet under certain conditions, missing a target change
Closes #21390
2018-02-14 23:11:38 -03:00
ariel-
93cbe815cb Core/Spells: fixed server being too overzealous with autoshot
- Interrupting it when casting another spell and switching targets

Ref #21390
2018-02-14 23:10:41 -03:00
ariel-
1edd81f9d5 Core/Scripts: fix Healing Stream Totem coefficient and animation 2018-02-14 22:07:06 -03:00
ariel-
4101bc287d DB/Spell: clear spell_bonus_data of redundant entries, now read from DBCs
Ref #21415
2018-02-14 05:58:56 -03:00
ariel-
1826437c09 Core/Spells: implemented bonus SP coefficient from DBC
Ref #21415
2018-02-14 05:58:56 -03:00
Treeston
264d4e1d30 Entities/GO: Add forceRespawnTimer support to DespawnOrUnsummon. Use it in SAI. 2018-02-14 02:24:13 +01:00
Treeston
f071fa9e93 Entities/GO: GameObjects now support (delayed) despawning in a reasonable manner. Closes #21406. 2018-02-13 22:08:49 +01:00
Treeston
2cd5992f37 oops, now it builds (and a bonus refactor that annoyed me) 2018-02-13 18:42:28 +01:00
Treeston
6fb0bc1038 Scripts/SmartAI: Forward invoker to invoked action list actions. Also JustAppeared -> InitializeAI. 2018-02-13 18:29:38 +01:00
Treeston
482328bddf Scripts/SmartAI: SMART_TARGET_INVOKER cleanup step 1. The core will now log errors on start-up if SMART_TARGET_INVOKER abuse is found, but will continue to load the scripts as deprecated for now.
Note that a lot of these scripts may either not currently work, not work reliably, or may be prone to breaking unexpectedly when core internals change. SMART_TARGET_INVOKER is undefined behavior on any event that doesn't directly specify its invoker.

(We are considering options for allowing INVOKER to make sense in timed action lists in a reliable fashion, so they are exempted at this time.)
2018-02-13 16:59:32 +01:00
ccrs
28c6db0807 Core/Movement: fe1ba18905 followup
ref fe1ba18905 (r27507316)

plus I noticed a logic error on speedchange call
2018-02-12 23:44:18 +01:00
ariel-
59fb0a581c Core/Spells: fix Vampiric touch dispel effect inheriting damage done pct twice 2018-02-12 19:32:59 -03:00
ariel-
c7095375c3 Core/Unit: kill unused parameter from SpellxxxBonusTaken 2018-02-12 18:36:10 -03:00
ariel-
404240fb68 Core/Scripts: remove Tenacity hack, implemented with proper aura 2018-02-12 18:35:06 -03:00
tkrokli
57553ed96a Build fix (unused parameter 'stack' in Unit.cpp)
Ref. commit 4d14f613f3
2018-02-12 22:22:34 +01:00
ariel-
4d14f613f3 Core/Unit: corrected calculation for SPELL_AURA_MOD_DAMAGE_TAKEN/SPELL_AURA_MOD_HEALING auras
- Spell bonus calculation and penalty was done twice, but it's simply flat +SP, which should be taken into account before other bonuses
- Fixed missing code from SpellDamageBonusDone/SpellHealingBonusDone and killed multiplication by stack amount twice for default coefficient spells (already multiplied on level penalty)
2018-02-12 16:52:59 -03:00
ariel-
e73bfe8df8 Core/Spells: implemented SpellPriority field from SpellEntry to cleanup charged mod proc behaviour
- Only one charged mod will be consumed per SpellMod apply, and it'll be compared against other mod priority
- This is proper way of handling Backdraft/Backlash and Deathchill/Killing Machine

Thanks to killerwife for info
2018-02-12 03:09:22 -03:00
ariel-
dfa861593e Core/Spells: add log on load about improper use of attribute PROC_ATTR_REQ_SPELLMOD 2018-02-12 00:21:26 -03:00
ariel-
546a605bd0 Core/Spells: implement SPELLVALUE_CRIT_CHANCE and SPELL_ATTR4_INHERIT_CRIT_FROM_AURA
Closes #18813
2018-02-12 00:21:26 -03:00
ariel-
52873a7072 Core/Spells: calculate crit chance only for spells that do damage/healing
Refs #18813
2018-02-12 00:21:26 -03:00
Treeston
e4e6e2209c Core/AI: EscortAI init logic moved from JustAppeared to InitializeAI. There are no escort NPCs using compatibility mode anymore, so this is equivalent.
As a result, inheriting scripts calling Start in on-create hooks (like JustSummoned) will now work properly again.

Tagging #20310.
2018-02-12 03:25:05 +01:00
Treeston
fe1ba18905 Core/Movement: WaypointMovementGenerator cleanup 2018-02-12 02:57:55 +01:00
Treeston
d02f481d9a Core/Movement: Creatures' idle movement generator can no longer override player mover control.
Tagging #20310, partial fix.
2018-02-12 01:50:36 +01:00
ariel-
9d0e90829c Core/Auras: fix periodic ticks proc after previous commit 2018-02-11 21:09:41 -03:00
ariel-
b42ade918a Core/Spells: require phasemask set for periodic damage procflag
Closes #21379
2018-02-11 20:42:06 -03:00
jackpoz
3576a38f6c Core/Player: Add some asserts
Assert PlayerInfo for race/class pair in a few Player functions
2018-02-11 17:43:12 +01:00
Treeston
b456915f9a Game/AI: InvalidAIException internal cleanup 2018-02-09 18:07:57 +01:00
ariel-
303efcf0e4 Core/Spells: remove 'Vanish Purge' hack, the spell is present on DB and is copy of one in vanilla DBC
Thanks to killerwife for the heads-up
2018-02-08 23:18:45 -03:00
Shauren
713bf944ae Build fix 2018-02-05 21:08:09 +01:00
Shauren
2fd9dc2edb Core/Scripts: Fixed ENSURE_AI assertion failures when used in Reset()/InitializeAI() hooks with hotswap
Updates #20727
2018-02-05 20:52:19 +01:00
ariel-
ed931cfa19 Core/ScriptSystem: AfterHit hook can't modify damage/healing, so log it
- Also added const to getter members
2018-02-05 14:43:11 -03:00
ariel-
650a92dc9f Core/Channel: properly notify client about invalid channel names
Closes #16190
2018-02-05 13:45:52 -03:00
ariel-
65709e1c30 Core/Spells: fix logic error causing near teleports to drop combat for players
Closes #21362
2018-02-04 22:47:53 -03:00
ariel-
e979a58d17 Core/Spells: remove duplicated LowerPlayerDamageReq call on reflected spells
- It is already called at Unit::DealDamage
2018-02-04 22:07:10 -03:00
Treeston
4cb13af4fa Core/Threat: Custom ThreatListIterator that transparently iterates over the backing map (instead of using heap iterators) when working with the unsorted threat list. This greatly reduces the range of actions that can cause iterator invalidation.
Also some minor adjustments to .debug threat, which no longer hides certain invalid states from view.
2018-02-05 01:33:41 +01:00
ariel-
2d2c43f4b9 Core/Spells: fix SPELLMOD_DAMAGE application order for melee spells
Closes #20597
2018-02-04 21:28:15 -03:00
ariel-
9fc732eb97 Core/Spells: kill unused parameter from Spell constructor
Added in 1f2292af79
2018-02-04 20:15:38 -03:00
jackpoz
71feb2149e Core/Misc: Fix no-pch build 2018-02-04 21:54:06 +01:00
jackpoz
95a76a83fc Core/AI: Fix assertion triggered with PetAI derived scripts (#21254)
* Core/AI: Fix assertion triggered with PetAI derived scripts

Fix an assertion triggered when spawning through ".npc add" or from SQL db table a Creature with AI set to a custom AI inheriting from PetAI.
2018-02-04 21:47:45 +01:00
Treeston
6e0df9fce1 AI/SmartAI: Remove a silly incorrect piece of code that was breaking react state swaps on SAI creatures. Fixes #21353. 2018-02-04 15:03:05 +01:00
Killyana
8f71307e56 Spell/Script: Torch 52953 and 58121 must hit only one target 2018-01-30 13:04:25 +01:00
Treeston
1acfefb973 Core/Creature: Adjust SelectVictim behavior: (PR #21324)
- No more automatic combat -> threat promotion. This matches anecdotal retail behavior - spells already in transit will not cause mob to chase you if its primary target vanishes before the spell hits.
- Prevent mobbing by stopping creatures from auto-acquiring a nearby target just because the primary target vanished.
2018-01-29 23:14:46 +01:00
Treeston
2402406228 Combat/Threat: Now set engaged state for all units on offline reference registration (vanished/invis'd units). For non-PASSIVE units, this will immediately cause an evade.
This fixes an exploit where creating the reference as offline (by vanishing while a spell was mid-flight) you could damage a creature further without it ever engaging you.
2018-01-29 03:07:43 +01:00
Treeston
c69584a967 Game/AI: Remove some unused old logic. 2018-01-29 01:57:31 +01:00
Treeston
0ee14845ae typo 2018-01-28 02:41:33 +01:00