Commit Graph
2505 Commits
Author SHA1 Message Date
Ovahlord 3d62f2b44c Scripts/HoL: modernized Loken's script 2022-09-23 14:12:32 +02:00
Ovahlord 0899376714 Scripts/HoL: handle Volkhan's slay texts 2022-09-23 12:41:39 +02:00
Ovahlord 03715278bc Scripts/HoL: sync code with 335 PR 2022-09-23 12:17:25 +02:00
Ovahlord 26b5ec2770 build fix 2022-09-23 10:01:11 +02:00
Ovahlord 581b293164 Scripts/HoL: modernized object accessor data 2022-09-22 22:24:00 +02:00
Ovahlord 58a7357996 buildfix 2022-09-22 21:52:00 +02:00
Ovahlord 147a5e88d9 Scripts/HoL: reworked Volkhan encounter
* handle missing visuals
* modernized code
2022-09-22 21:47:00 +02:00
Ovahlord c6711adf8b Core/AI: ported SpellHit and SpellHitTarget refactor from 335 branch 2022-09-22 10:33:13 +02:00
Ovahlord e3e4b2cf16 Core/Spells: dropped old dot clipping implementation and restored TC period and duration calculations in preparation of re-implementing it 2022-09-12 09:15:35 +02:00
Shauren ca7d36873f Core/Spells: Rename SpellAttr1 to use official attribute names
* Implemented SPELL_ATTR1_NO_SKILL_INCREASE, SPELL_ATTR1_AURA_STAYS_AFTER_COMBAT, SPELL_ATTR1_DISPEL_ALL_STACKS
2022-09-12 09:15:31 +02:00
ariel- b6fac86b71 Core/Spells: rework part 5: GameObject casting 2022-09-12 09:15:14 +02:00
ariel- 4bb8c93df8 Core/Spells: rework part 4: iterate over effects first
Implement far spell queue processing

# Conflicts:
#	src/server/game/Spells/Spell.cpp
2022-09-12 09:15:13 +02:00
Ovahlord 2b9d976ed1 fixed build 2022-09-12 09:15:09 +02:00
ariel- 276d6e49f1 Core/Entities: killed Creature::SetInCombatWithZone and replaced with AI version
Closes #12108 (again)

(cherry picked from commit 7c9722a4ae08b5f283f6a085a411e37604a7da9f)

# Conflicts:
#	src/server/game/AI/SmartScripts/SmartScript.cpp
#	src/server/game/Entities/Creature/Creature.cpp
#	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp
#	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
#	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp
#	src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
#	src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
#	src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
#	src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
#	src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
#	src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
2022-09-12 09:15:09 +02:00
ariel- c9e732b0bf This hook modifies damage AFTER it has been reduced by target auras/armor/resistances etc, it's useful if you want to scale damage by a factor, but not to add flat bonuses.
We're fixing those by moving calculation to Launch phase, where target taken bonuses haven't been used yet.

- Bronjahm: Magic's Bane
- BPC: Shadow Prison
- Oculus: Shock Lance
- Ymiron: Dark Slash (extra fix, it was wrongly damaging half of total health, it's supposed to be half of CURRENT health!)
- DK: Raise Ally Thrash spell (also extra fix: corrected formula)
- Warrior: Bloodthirst (shouldn't matter much as it's damage class none and those don't get bonuses by default)
- Warrior: Concussion Blow
- Warlock: extra fix for Haunt, healing part shouldn't scale with spell power
2022-09-12 09:15:08 +02:00
Ovahlord b4f9844ce0 Scripts/Misc: added a few more nullptr checks in DamageTaken hooks 2022-09-12 09:15:07 +02:00
ariel- 51045c3b50 Core/Scripts: added nullptr checks to DamageTaken hooks
Since cb9e72e521d3cc415dd15bf6912c87f89e41b92a attacker may not be in world when hook is called

(cherry picked from commit 0db5c2df3fe56f42293865e87ec781cd4d41598b)

# Conflicts:
#	src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
#	src/server/scripts/World/npcs_special.cpp
2022-09-12 09:15:07 +02:00
ariel- 1d3fbff332 Core/Auras: removed caster dependency from core
- Decoupled Unit logic: split of spell critical chance into done (caster bonuses) and taken (target bonuses), this allows to precalculate caster bonuses on aura apply and then check victim's auras on damage/healing calc
- Made static a bunch of methods (they no longer have this pointer because they are now called from periodic handlers which may or may not have an active caster in world)
- Simplified all AuraEffect bonuses into AuraEffect::_amount, no more duplicated code
- Critical chance and whether or not caster is player owned unit (for resilience calcs) is now saved one level upper, on Aura itself (it's impossible as of 3.3.5 to have different effects with different critical chances)
- Minor cleanup of SPELL_DAMAGE_CLASS_NONE and Arcane Potency (#18813) crit handling
2022-09-12 09:15:04 +02:00
Jeremy c5f81dc58f Core/ZoneScript: Add "invoker" param to ProcessEvent 2022-06-19 18:36:41 +02:00
Shauren 786131a162 Core/Transports: Localized transport objects within each map
Transports no longer move between maps, each map gets a separate copy of the transport object and players are moved between them when transferring to another map
This means they can no longer be globally looked up in HashMapHolder
2022-06-19 18:11:20 +02:00
Ovahlord aa0b4ab7f5 Core/Misc: resolved more cherrypick mistakes 2022-06-19 00:38:26 +02:00
Shauren 25465699f7 Core/GameObjects: Transport (type 11) improvements
* Fully synchronize serverside animation progress with client
* Implemented updating passenger positions on elevators
* Removed visibility hack for elevators that always forced CreateObject packet to be sent to client
2022-06-18 21:36:17 +02:00
Ovahlord 6e9ec1a4bf Core/Transports: undo all custom transport changes as preparation for cherry picks 2022-06-18 18:37:14 +02:00
xinef1 f431459063 Core/Creatures: Various fixes for creatures, regarding combat conditions, despawning, and few others (#18998)
* Made some changes to kiting mechanics, simplified code and made taunt auras prolong combat no matter the distance from the spawn
Unified some creature despawning code, removed some brutal direct calls in scripts
Don't play death anim on forced despawn
Removed some redundant visibility changes on creature despawn
Fixed possible problem with pet initializing template info from difficulty greater than normal
Properly keep UNIT_FLAG_IN_COMBAT on UpdateEntry call
Moved RegenerateMana function to general Regenerate(Power) function
Fixed increased health regeneration from polymorph for pets
Implemented CREATURE_TYPE_FLAG_GHOST_VISIBLE, those creatures will be properly seen when player is dead also
Removed hackfix from Gaeriyan and Franclorn Forgewright, fixed properly
Simplified ForcedRespawnTime code in ForcedDespawn
Do not allow to assist unit while evading or when enemy is evading
Do not allow to attack other units when evading or when the unit is evading
Corrected distance checking code before creature is allowed to evade, should fix some common problems
Properly return summon position for summoned creatures as their respawn position
Properly stop all moving units on gossip hello, no matter their npc flags

(cherry picked from commit e1f14215d86fc9f0cd041f0e87bf0a689c086329)
2022-02-16 04:49:24 +01:00
Xinef 62a7c88ef6 Core/Achievements: Optimized resetting achievement criteria by condition and changed the functionality to properly reset all possible criteria with given condition
Closes #18905

(cherry picked from commit 7c7b877c3fc0292f33f54f4e8b514be3bf8514a6)
2022-01-28 22:32:59 +01:00
ariel- af98e8516c Core/Auras: reworked multiplicative AuraEffects calculation 2021-11-28 12:14:05 +01:00
Ovahlord 373a296b8d Core/Units: removed deprecated fake attacker state update from the core 2021-11-17 17:18:05 +01:00
Ovahlord 949f92e0a1 Core/AI: ported charm updates from 335 2021-09-16 16:48:07 +02:00
Ovahlord c2be4c4a86 Misc: fixed issues discovered by static analysis
closes #290
2021-09-10 09:56:49 +02:00
Ovahlord 8ac7e71690 Core/Spells: implement summon properties parameter types based on the leaked enumerated strings values
Summon spells can now be commanded to interpret their basepoints depending on the parameter type that has been assigned to the summon properties dbc record Id

* implemented SummonCreatureExtraArgs to reduce the amount of arguments in Map::SummonCreature
2021-08-15 10:35:02 +02:00
Ovahlord b875d77dc8 Core/SAI: refactored SMART_EVENT_FRIENDLY_HEALTH_PCT to reflect the behavior of SMART_EVENT_FRIENDLY_HEALTH
* added radius event parameter to limit the search range of the executing creature
* moved the pct check to a macro and corrected the selection logic to support all target types
2021-02-25 15:40:05 +01:00
Giacomo Pozzoni 5e3b57bae7 Core/Unit: Fix movement hiccups in water
* Core/Unit: Allow to define Units which can enter water but cannot swim

Allow to define Units which can enter water but cannot swim, i.e. crabs walking at the bottom of a sea.

* Add UNIT_FLAG_SWIMMING to creatures when entering combat

* Fix charmed creatures not entering water

* Always allow Creatures controlled by players to enter water

* Add swimming flag when possessing a unit and remove it properly at the end, even if the creature engaged combat before and after.
When adding/removing UNIT_FLAG_SWIMMING manually calling Creature::RefreshSwimmingFlag(true) might be required.
2021-01-11 12:33:54 +01:00
Ovahlord 4f50bafd03 Scripts/Ulduar: apply stalker feedback
:)
2021-01-06 15:59:33 +01:00
Ovahlord 4bc9b50a76 Scripts/Ulduar:
* initialize Assembly of Iron's boss state on instance creation
* corrected the spell id usage for Steelbreaker's Static Disruption
* moved the Lightning Elemental Passive aura to the AI script instead of setting it in template addon
* Static Disruption will no longer target non-player targets to reflect its spell attributes
* apply the Shield of Runes buff only when the aura has been removed by breaking the absorb aura instead of when it has expired
* apply script naming consistency to Molgeim's Shield of Runes script name
* removed wrong instance bind extra flags from Assembly of Iron bosses
* corrected credit type for Assembly of Iron's instance encounter entry
* registered a missing spell script function
2021-01-06 15:32:33 +01:00
Ovahlord 754c138f89 Core/Spells: ported CastSpell unclusterfucking from 3.3.5 branch 2020-11-04 22:37:11 +01:00
Ovahlord 561cb13ceb Scripts/Ulduar: some codestyle improvements for Assembly of Iron 2020-10-22 11:51:12 +02:00
Ovahlord 90e5e85afd Core/Misc: updated a bunch of packets to packet class 2020-10-21 12:04:13 +02:00
Ovahlord 321a9d2b0a Scripts/Ulduar: added more cleanup mechanics to Runemaster Molgeim 2020-10-01 21:00:45 +02:00
Ovahlord 82a5ba527e Scripts/Ulduar: restored boundary functionality for Assembly of Iron encounter 2020-10-01 20:45:51 +02:00
Ovahlord af164c8ace Scripts/Ulduar: minor cleanup 2020-10-01 20:28:56 +02:00
Ovahlord d753df4ae9 Core/Spells: improved spell finish reason enum naming for finished channeled spells 2020-10-01 20:24:03 +02:00
Ovahlord e04389e539 Scripts/Ulduar: reworked Assembly of Iron encounter 2020-10-01 16:59:18 +02:00
Ovahlord c9afa1a6ed Core/Units: renamed SetInFront to SetOrientationTowards to clarify its actual functionality and added comments to SetOrientationTowards, SetFacingTo and SetFacingToObject 2020-09-23 20:48:44 +02:00
Wyrserth d2b27bc43c Core/Misc: don't allow players to use/activate/loot non-allowed gameobjects while under the effect of a damage immunity aura (#23319)
* Core/Misc: don't allow players to use/activate/loot non-allowed gameobjects while under the effect of a damage immunity aura.

* Forgot to change this in last-second rename.

* Apply suggested changes, thanks Shauren!

# Conflicts:
#	src/server/game/Entities/GameObject/GameObject.cpp
#	src/server/game/Entities/Unit/UnitDefines.h
#	src/server/game/Entities/Unit/enuminfo_UnitDefines.cpp
#	src/server/scripts/Outland/CoilfangReservoir/TheSlavePens/boss_ahune.cpp
2020-09-11 15:06:15 +02:00
Ovahlord b85168975f fixed a warning 2020-08-29 11:43:24 +02:00
kvipka e6e20bd574 Scripts/InstanceScript: Fix an issue where LoadAllGrids would load creatures before TeamInInstance was properly set (PR #25340)
# Conflicts:
#	src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
2020-08-29 00:48:20 +02:00
Warpten 2b2fc5fb8a Core/Spells: remove PrepareSpellScript and PrepareAuraScript macros and make Hooklist use emplace behaivior (#174) 2020-08-28 15:40:26 +02:00
Shauren 44e0d6c0f9 Scripts/Spells: Replace RegisterAuraScript with RegisterSpellScript and remove it 2020-08-23 17:44:48 +02:00
Ovahlord 52287e1f07 Core/SAI: ported set speed, weather and override light smart actions from 335 2020-08-22 18:16:03 +02:00
Ovahlord e1a678e529 Scripts/Naxxramas: cleaned up 'Frogger' event and use sniffed values for intervals, movement speeds and overall despawn behaivior 2020-08-06 17:38:19 +02:00