Commit Graph

25277 Commits

Author SHA1 Message Date
Treeston
dce39aedc2 Core/Combat: Some more sanity check asserts to try and track down #21187.
Also, some anti-annoyance treatment for dot tele.

(cherry picked from commit fdacf12739)
2021-05-16 21:56:05 +02:00
Treeston
2a7bb9b404 Core/Combat: some more detailed assertions to possibly shed light on #21187.
(cherry picked from commit 5a9fddaa5a)
2021-05-16 21:56:05 +02:00
Treeston
b00d3812ab Core/Map: Fix a crash that could happen if a player moved very far away from a creature they were in combat with. Closes #21177.
(cherry picked from commit e0b609a178)
2021-05-16 21:56:05 +02:00
Moein
673cc20e79 MovementInform should overrides
(cherry picked from commit 18f5eae835)
2021-05-16 21:56:05 +02:00
Treeston
5aee452943 Core/Misc: A variety of clean-up changes, mostly following up on 532ab1c to fix legacy bugs exposed by it:
- Triggers can no longer have a threat list (this may expose some ugliness in old legacy scripts)
- Threat entries are forced to OFFLINE if the AI refuses to attack the target
- Clean up passive creature evade behavior to be more consistent
- Fix a months old issue in spawn group management that would cause "Inactive" to incorrectly show in .list respawns for system groups outside of map 0
- Valithria script cleanups, remove old hacks and make it work with the new system. Closes #21174.
- Some strings cleanup

(cherry picked from commit 9f9507e6a1)
2021-05-16 21:56:05 +02:00
ariel-
83159544b5 Core/Spells: fix casting NO_TARGET event spells
Closes #19978

(cherry picked from commit e245113660)
2021-05-16 21:56:05 +02:00
Treeston
34c7810fe5 Core: Combat/threat system rewrite (PR #19930)
- PvE combat is now always mutual. UNIT_FLAG_IN_COMBAT is backed by actual references to the units we're in combat with.
- PvP combat is now also tracked, and almost always mutual; spells like Vanish and Feign Death can break this rule. That means we can easily determine a list of players we're fighting.
- By extension, IsInCombatWith now has sensible behavior when invoked on nonplayers.
- Threat and combat systems are no longer the same.
  - They still have an enforced relationship (threat implies combat - clearing combat clears threat)...
  - ...but we can have combat without threat. A creature (with threat list) isn't considered to be engaged until it has an entry on its threat list...
  - ...which means we can now faithfully replicate retail engage behavior. Combat on projectile launch - engagement start on projectile impact. Yay for progress!
- AI method refactor, as already ported in 6113b9d - `JustEngagedWith`, `JustEnteredCombat` and `JustExitedCombat`.
- Vehicle threat is now properly pooled on the main vehicle body (fixes #16542).
- Various edge case bug fixes for threat redirects (Misdirection "cancelling" Vigilance and similar).
- Target re-selection is now significantly faster.
- Fixed a ton of other smaller edge case bugs, probably.

Closes #7951 and #19998.

(cherry picked from commit 532ab1c7f8)
2021-05-16 21:56:01 +02:00
Shauren
5158136ee8 Core/Players: Fixed last tick of power regeneration when reaching minimum or maximum value not being visible clientside and not triggering auras on power value change 2021-05-15 17:44:31 +02:00
Shauren
12ed21e690 Scripts/Spells: Clear arcane charge damage/cost/cast time modifier aura when reaching 0 arcane charges (power) 2021-05-15 17:44:31 +02:00
Shauren
331c7ec7c2 Scripts/Spells: Remove manual damage adjustment from Arcane Barrage for scaling with arcane charges and use spell cast for mana energize 2021-05-15 17:44:31 +02:00
Shauren
fd7f854995 Scripts/Spells: Properly utilize all Arcane Explosion energize effects 2021-05-15 17:44:31 +02:00
Matan Shukry
be8cbab4b3 Scripts/Spells: Fixed arcane barrage + explosion 2021-05-15 17:44:31 +02:00
Shauren
e2964dadf4 Fixed nopch build with clang 11 2021-05-15 02:17:08 +02:00
Shauren
b511fac643 Core/Spells: Send actual power gain amount in spell energize log 2021-05-15 02:15:09 +02:00
Shauren
fb6c1dc295 Dep/bzip2: Remove dependency 2021-05-15 02:14:37 +02:00
Shauren
5a9a3b3938 Core/Spells: Load SpellEffectInfo::ChainTargets as signed (there are negative values found in db2) 2021-05-15 02:13:45 +02:00
Ovahlord
a0a4d23fed Core/Units: No longer send PowerUpdate packets when gaining power via energize spell effects 2021-05-13 00:43:11 +02:00
Shauren
1a7779a6e6 Core/Spells: Expose number of targets selected for each spell effect to scripts to allow implementing spells that do something depending on number of targets hit 2021-05-13 00:38:09 +02:00
Shauren
1b39612b33 Fix dynamic windows build 2021-05-12 18:08:53 +02:00
Shauren
2906926173 Core/Scenes: Fix scenes played by package id storing pointers to stack variables 2021-05-12 14:23:21 +02:00
Shauren
f072bc4ca1 Core/Commands: Add ItemContext argument to .additem and .additemset commands 2021-05-11 18:25:22 +02:00
Shauren
8a551d598d Core/Misc: Define new ItemContext values 2021-05-11 18:24:58 +02:00
Shauren
d9d242bea4 Core/Quests: Set quest accept time updatefield 2021-05-11 15:47:58 +02:00
Shauren
2ffedf30a9 Core/Quests: Implemented QUEST_OBJECTIVE_FLAG_KILL_PLAYERS_SAME_FACTION 2021-05-11 12:32:22 +02:00
Shauren
254d5af7c2 Core/Quests: Implement new quest objective types QUEST_OBJECTIVE_LEARNSPELL, QUEST_OBJECTIVE_AREA_TRIGGER_ENTER, QUEST_OBJECTIVE_AREA_TRIGGER_EXIT 2021-05-11 11:45:12 +02:00
Shauren
3ad389efee Core/Quests: Un-deprecate QUEST_SPECIAL_FLAGS_EXPLORATION_OR_EVENT 2021-05-11 00:38:08 +02:00
Shauren
2d7411c9fa Core/Quests: Fix loading quest_template.AreaDescription 2021-05-11 00:37:42 +02:00
Shauren
6352a84bf7 Core/Quests: Unify quest objective updating into one function and replace iterating entire quest log to find objective with direct {type, id} lookup 2021-05-10 22:45:54 +02:00
Shauren
63fa66620e Core/Auras: Use owner instead of caster for same map check in SPELL_EFFECT_APPLY_AREA_AURA_SUMMONS 2021-05-09 20:22:23 +02:00
Shauren
91b91b502f Core/Quests: Quest improvements
* Add quest log slot argument to functions dealing with objective progress
* Implemented QUEST_OBJECTIVE_FLAG_SEQUENCED (prevent progressing hidden objectives)
2021-05-09 20:21:32 +02:00
Shauren
dd8aed421a Core/Quests: Drop unneeded QuestSpecialFlags 2021-05-09 16:01:34 +02:00
ariel-
9bf5a03bc4 Core/Scripts: fix Millhouse Manastorm resetting dialogs after Skyriss encounter
Closes #21159

(cherry picked from commit fd7fff80c9)
2021-05-06 07:06:27 +02:00
ariel-
82fa6ede59 Core/Scripts: cast "Trial of the Naaru: Tenacity" credit spell when criteria is achieved
Closes #21155

(cherry picked from commit 036a05458e)
2021-05-06 07:06:27 +02:00
ariel-
f77bd1e7c9 Core/Scripts: fixed npc immunity flags during Harbinger Skyriss encounter
- Added missing _Reset
- Properly register Skyriss summons in SummonList

Closes #21154

Who ordered up an extra large can of whoop-ass?

(cherry picked from commit f8b148c334)
2021-05-06 07:06:27 +02:00
ariel-
87d5544f05 Core/Scripts: Implemented Shifting Naaru Sliver
(cherry picked from commit a5d4f34c31)
2021-05-06 07:06:27 +02:00
ariel-
5ac40cf9d1 Core/Scripts: fix issues with 'Squeeze' on Yogg-Saron encounter
- Unassigned spell script for 25-man difficulty
- Didn't remove aura on 25-man when tentacle killed

(cherry picked from commit de3fd4d076)
2021-05-06 07:06:27 +02:00
ariel-
b11c1e7141 Core/Player: fix issue with SendLoot when using Disarm Trap at maximum range
(cherry picked from commit a0dcd9c798)
2021-05-06 07:06:27 +02:00
Shauren
73099df047 Core/Misc: Remove incorrect uses of std::unordered_map<T>::rehash and replace them with intended reserve 2021-05-05 22:57:50 +02:00
Shauren
1cf5f6e82e Core/PacketIO: Fixed combat log packets not being sent to self 2021-05-05 22:10:55 +02:00
Shauren
3169695247 Core/Auras: Fixed possible crash on login with SPELL_EFFECT_APPLY_AREA_AURA_SUMMONS 2021-05-05 21:32:15 +02:00
Shauren
6d746a706a Core/Chat: Updated item chat link format to 9.0 2021-05-04 00:00:07 +02:00
Shauren
af5202b528 Core/Auras: Add missing SPELL_AURA_COMPREHEND_LANGUAGE check for serverside chat translations 2021-05-03 23:53:24 +02:00
Shauren
67e16888ac Core/Chat: Chat translation improvements
* Remove hyperlinks from translated chat messages
* Implement case preservation rules depending on receiver client locale
2021-05-03 23:53:24 +02:00
Shauren
14098b28b3 Core/Chat: Allow incorrect spell/skill language assignments to mirror client behavior 2021-05-03 23:53:24 +02:00
Shauren
ede3e415ab Core/Chat: Apply chat translation also to messeges sent to self 2021-05-03 23:53:24 +02:00
Shauren
bd3bb17512 Core/Chat: Only exclude LANG_UNIVERSAL, LANG_ADDON and LANG_ADDON_LOGGED from chat translations instead of all languages that don't have a skill 2021-05-03 23:53:24 +02:00
Shauren
c8e5f78b82 Core/Chat: Apply language translations to creature chat 2021-05-03 23:53:24 +02:00
Matan Shukry
3b578fc6b9 Core/Chat: Load chat language data from db2 and implement serverside chat translations 2021-05-03 23:53:24 +02:00
Shauren
fb66575d38 Core/Grids: Move packet sending functionality out of MessageDistDeliverer and into separate, customizable class and unify LocalizedPacketDo, LocalizedPacketListDo as generic localizable action 2021-05-01 20:16:10 +02:00
Shauren
d6dfb6c54c Dynamic linking build fix 2021-04-30 11:51:44 +02:00