Commit Graph

1353 Commits

Author SHA1 Message Date
Jelle Meeus
e8af1aaffc fix(Scripts/Spells): warlock seed of corruption (#19322)
* remove seed of corruption handling in unit.cpp

* add generic and warlock aurascript

add warlock  aurascript

add enum

add generic aurascript

add OnRemove

2ff855054f (diff-ea612aafadff90005e88b243eb000369be9e5cb6f8dc85a008d31e42b156e0ec)

detonation threshold scaling added in: df5afca278

Co-authored-by: ariel- <ariel-@users.noreply.github.com>

* add LoS check to generic damage

* refactor 2 scripts to 1 with args

refactor const_cast to GetAura()->GetEffect(

refactor reduce a line

* fix detonation threshold scaling

changed SPELL_DIRECT_DAMAGE to DOT

* remove not needed IsExpired() check

removal upon expiration is notified by AURA_REMOVE_BY_EXPIRE

* update comment

* refactor script with args to single spellscript, fix detonate by evade

* refactor

detonation to Detonate()
rename amount to remainingDamage
remove no tneeded HealthBelowPctDamaged

* refactor to 2 spell scripts again

* rename detonation spell from seed_of_corruption to seed_of_corruption_damage

avoids confusion with seed of corruption (with dot effect)

---------

Co-authored-by: ariel- <ariel-@users.noreply.github.com>
2024-07-17 01:50:38 +02:00
Benjamin Jackson
05f4fa1a35 fix(Core/Unit): Adjust melee attack stop logic. (#19397)
Init.
2024-07-14 12:31:40 -03:00
Jelle Meeus
a69d02e513 fix(Scripts/Spells): warlock demonic pact (#19386)
* add Demonic Pact Aura script

2ff855054f (diff-ea612aafadff90005e88b243eb000369be9e5cb6f8dc85a008d31e42b156e0ec)

Co-authored-by: ariel- <ariel-@users.noreply.github.com>

* spell_warlock aura:spell_warl_demonic_pact_aura

* fixup! spell_warlock aura:spell_warl_demonic_pact_aura

* remove not needed spell correction, flag is already set

* subtract current proc bonus before calculating new bonus

* also increase healing done

* remove Demonic Pact handling in Unit

* refactor indent, remove bonus from spell group effects e.g. totem of wrath

* Revert "refactor indent, remove bonus from spell group effects e.g. totem of wrath"

This reverts commit 104041172d34f542cc934e9f468407c36912cc7f.

* refactor indent

* manually set proc cooldown

---------

Co-authored-by: ariel- <ariel-@users.noreply.github.com>
2024-07-13 12:38:59 -03:00
Benjamin Jackson
70eb920b10 feat(Core/Unit): Implement munching as a configurable option. (#19188)
* Init.

* Correct description.

* Adjust boolean to integer in config.
2024-07-10 12:26:53 -03:00
Kitzunu
793f87fd61 fix(Core/GameObject): Use correct spell at meeting stone (#19311)
* fix(Core/GameObject): Use correct spell at meeting stone

* cleanup
2024-07-09 19:39:58 -03:00
avarishd
7d08758f1f fix(Core/Totem): Totems shouldn't be immune to intervene. (#19372)
* fix(Core/Totem): Totems shouldn't be immune to intervene

* cs is my enemy
2024-07-09 14:39:05 -03:00
Jelle Meeus
ee4d728573 fix(Core/Pets): Correct Pet size for pets 3 (#19319)
* revert

* override maxScale for some families

add more families

sort

* add turtle
2024-07-09 14:16:30 -03:00
Kitzunu
3c50b1a135 fix(Core/Player): Vertical Message distance (#19302)
* cherry-pick commit (297541e9c9)

* Get rid of unused param

* Merge SendMessageToSetInRange_OwnTeam into SendMessageToSetInRange

Co-authored-by: Badgersson <83663557+dekz120@users.noreply.github.com>
2024-07-06 10:05:34 -03:00
Anton Popovichenko
04acfd96a0 fix(Core/Unit): Invalidate update object cache when changing health in the same world update tick. (#19287)
* fix(Core/Unit): Invalidate update object cache when changing health in the same world update tick.

Should fix an issue when the client sees dead NPCs when they are not.

* Fix styling

* Another codestyle fix
2024-07-05 15:42:22 -03:00
Jelle Meeus
37431cd7a6 fix(Core/Pets): Correct Pet size for bigger pets 2 (#18867)
* scale displayInfo, cap scale to maxScale

* prevent scaling with displayInfo if scale is already increasing the size
2024-07-04 16:34:14 -03:00
Kitzunu
bd29e9e1b3 fix(Core/Spell): Implement SPELL_ATTR1_AURA_STAYS_AFTER_COMBAT (#19254)
feat(Core/Spell): Implement SPELL_ATTR1_AURA_STAYS_AFTER_COMBAT

* closes https://github.com/azerothcore/azerothcore-wotlk/issues/19248
2024-07-04 14:30:59 -03:00
Kitzunu
385d7fd515 chore(Core/DBC): define unused unknown dbc fields (#19262)
* chore(Core/DBC): define unused unknown dbc fields

* Name unused unknown dbc fields using WDBX and wowdev.wiki

* rename SpellShapeshiftEntry to SpellShapeshiftFormEntry to properly match the DBC used

* rename sSpellShapeshiftStore to sSpellShapeshiftFormStore to properly match the DBC used

* Comment out unused field for GlyphPropertiesEntry

* Comment out unused field for MapEntry

* forgot one

* SpellShapeshiftfmt to SpellShapeshiftFormfmt

* SpellShapeshiftFormEntryfmt
2024-07-04 14:23:25 -03:00
Jelle Meeus
cf1185551d fix(Core/Pet): prevent LoadPetFromDB to trigger a fake summon spell cast in most cases (#19277)
* add CategoryRecoveryTime check

* add RecoveryTime check
2024-07-04 14:20:24 -03:00
Kitzunu
d5ba5e0168 fix(Core/Quest): typo in RewardQuest makes LFG quests not reward if dead (#19271)
fix(Core/Quest): typo in RewardQuest

* Allow LFG quests to be rewarded even when dead
2024-07-04 09:41:53 -03:00
Kitzunu
e839581649 fix(Core/Player): Allow players to enter the world (#19261) 2024-07-03 12:06:48 +02:00
Kitzunu
0a8175ef03 refactor(Core/ObjectMgr): Handle Profanity & Reserved Names in load (#19259)
* refactor(Core/ObjectMgr): Handle Profanity & Reserved Names in load

* closes https://github.com/azerothcore/azerothcore-wotlk/issues/18556

* Update ObjectMgr.cpp

* Update ObjectMgr.cpp

* I swear I am not drunk

* We already check all of these

* fix build

* Forgot we dont send the responsecode in senderrormessage

* last commit I swear
2024-07-03 00:23:32 +02:00
Kitzunu
f96d4c8670 Revert "Add (core\db): Support for Homebind Orientation (#13389)" (#19257)
* Revert "Add (core\db): Support for Homebind Orientation (#13389)"

This reverts commit 2e6f6e26da.

 Changes to be committed:
	modified:   src/server/database/Database/Implementation/CharacterDatabase.cpp
	modified:   src/server/game/DungeonFinding/LFGScripts.cpp
	modified:   src/server/game/Entities/Player/Player.cpp
	modified:   src/server/game/Entities/Player/Player.h
	modified:   src/server/game/Entities/Player/PlayerStorage.cpp
	modified:   src/server/game/Entities/Player/PlayerUpdates.cpp
	modified:   src/server/game/Handlers/CharacterHandler.cpp
	modified:   src/server/game/Handlers/MiscHandler.cpp
	modified:   src/server/game/Handlers/MovementHandler.cpp
	modified:   src/server/game/Maps/Map.cpp
	modified:   src/server/game/Spells/Spell.cpp
	modified:   src/server/scripts/Commands/cs_misc.cpp
	modified:   src/server/scripts/Commands/cs_tele.cpp
	modified:   src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp

 Untracked files:
	data/sql/updates/pending_db_world/rev_1719945200692175000.sql

* Revert "Add (core\db): Support for Homebind Orientation (#13389)"

* whoops
2024-07-02 22:02:15 +02:00
sudlud
b3f21d909a fix(Core/PlayerQuest): Introduce flag QUEST_SPECIAL_FLAGS_CAN_FAIL_IN… (#19116)
fix(Core/PlayerQuest): Introduce flag QUEST_SPECIAL_FLAGS_CAN_FAIL_IN_ANY_STATE

- this allows flagging quests so that they are allowed to fail in Player::FailQuest()
  independant of their current state
- update quest 853 accordingly as a first use case
2024-06-22 03:04:56 -03:00
Benjamin Jackson
8ea13ca778 fix(Scripts/Spells): Implement damage scaling based off DoT stack count for Seal of Vengeance and Corruption. (#19073)
* Init.

* Whoops.

* Move comment.

Someone should fix this darn CI.

* Logic adjustment.

* Revert logic adjustment.

This reverts commit ee09ee55df47c9a66ecf536be58a4a040f384b72.

* Requested changes?
2024-06-19 00:45:02 +02:00
atrapalis
dea3748629 fix(Core/Quest): Correct XP Display when modified by SPELL_AURA_MOD_XP_QUEST_PCT (#19060)
* fix(Core): Correct Quest XP Display when modified by SPELL_AURA_MOD_XP_QUEST_PCT

The quest XP displayed on the gossip window was not modified for auras that increase quest XP gain (e.g. spell ID 57353). This commit corrects the quest XP display when accepting/returning quests.

* refactor(Entities/Player): Added a `CalculateQuestRewardXP()` function to reduce duplicated code

* cleanup(Entities/Creature): Removed now unused variable `playerLevel`

* Apply suggestions from code review

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>

---------

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
2024-06-19 00:41:39 +02:00
Benjamin Jackson
d6d49a9e45 refactor(Core/ObjectMgr): Implement display probabilities. (#19068)
* Init.

Cherry-picked from TC commits 9d210476e5 and c488fb219a

Co-Authored-By: Traesh <9392905+traesh@users.noreply.github.com>
Co-Authored-By: Shauren <shauren.trinity@gmail.com>

* Add brute data.

Needs validation against what existed before, i.e. Classic change prevention.

* Add validation info for brute data.

* Remove incomplete data queries.

* Requested changes.

* Whitespace.

* Requested change.

Table name.

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>

* Requested change.

Table name.

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>

* Resolve the funny merge conflicts.

I wonder why git blame doesn't work on a file with 20k lines in it that's odd huh champ.

* Remove unused parameter.

* Remove uses of unused parameter.

* Use unused parameter.

Hopefully?

* I will cry.

* Sobbing endlessly.

* Remove comment.

* Adjust table structure query.

Remove length parameters and allow null for build value.

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>

* Adjust column datatype and add check constraint.

---------

Co-authored-by: Traesh <9392905+traesh@users.noreply.github.com>
Co-authored-by: Shauren <shauren.trinity@gmail.com>
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
2024-06-16 18:12:16 +02:00
Jelle Meeus
f846d79478 fix(Core/Pet): Warlock pet handling (#19054)
* dismiss summoned non-hunter pets by removing them

* store createdbyspellid

* Revert "dismiss summoned non-hunter pets by removing them"

This reverts commit eb539e841d882a6c90f743792c91304b0d365a5c.
2024-06-13 10:31:35 -03:00
Kitzunu
744067b389 fix(Core/Player): Delete by group (#19015)
* fix(Core/Player): Delete by group

* closes https://github.com/azerothcore/azerothcore-wotlk/issues/19014

Co-Authored-By: trickerer <onlysuffering@gmail.com>

* Update Player.cpp

* fix build

---------

Co-authored-by: trickerer <onlysuffering@gmail.com>
2024-06-06 20:58:43 +02:00
sudlud
3913618f87 fix(Core/PlayerQuest): make timed quests failable (#18940) 2024-06-04 18:30:10 +02:00
sudlud
1663045da6 fix(Core/Mail): calculate unReadMails and m_nextMailDelivereTime usin… (#18996)
* fix(Core/Mail): calculate unReadMails and m_nextMailDelivereTime using mail cache

- these values were grepped directly from DB before
-> this change was introduced with azerothcore/azerothcore-wotlk#3420

- the whole mailing system relies on the mails beeing cached in the core
-> these get stored in DB regularly or on specific events

- so apparently the DB is not always in sync with the current mail cache state of the core
-> so grepping data directly from DB is not a good idea at this point

* Update PlayerUpdates.cpp
2024-06-02 09:29:54 -03:00
Jelle Meeus
0793a979bb fix(Unit/ProcessTerrainStatusUpdate): prevent removal swimming auras if swimming (#18902)
* do not remove swimming auras if we are swimming

* refactor to isSwimming()

* Update src/server/game/Entities/Unit/Unit.cpp

Co-authored-by: Andrew <47818697+Nyeriah@users.noreply.github.com>

---------

Co-authored-by: Andrew <47818697+Nyeriah@users.noreply.github.com>
2024-05-29 20:17:25 +02:00
Andrew
2a1d23e520 fix(Scripts/Hyjal): Implement Eternal Silence spell when going into t… (#18960)
fix(Scripts/Hyjal): Implement Eternal Silence spell when going into the Well of Eternity
2024-05-28 01:24:10 +02:00
silviu20092
3988e9581d feat(core): add hooks for applying item mods (#18760) 2024-05-18 10:02:57 +02:00
Jelle Meeus
ac203da3d3 fix(Core/Unit): SPELLMOD_RESIST_MISS_CHANCE should decrease miss chance (#18849)
fix: hitchance should decrease misschance
2024-05-11 13:51:17 +01:00
sudlud
0a376bdc76 fix(Core/GameObject): load guid based scripts correctly (#18811)
- m_goData must be assigned before Create() is beeing called
- otherwise GetScriptId() can't load the correct scriptiD
  in Create()
- all in all this is now more in line with how it's beeing
  done in Creature.cpp
2024-04-26 20:56:46 -03:00
Anton Popovichenko
f7f1952f4b fix(Core/Player): Fix memory leak. (#18671) 2024-04-05 07:04:55 -03:00
Anton Popovichenko
1f640c9872 feat(Core/Optimization): Optimize build of units update object by leveraging cache (#18637)
* feat(Core/Optimization): Optimize build of units update object by leveraging cache.

* Remove whitespaces.

* Add alternative hooks to handle transmog and other similar things.

* Fix build on some compilers.

* Fix codestyle

* Fix build again.

* Take into account updateType.
2024-04-05 08:03:11 +02:00
Anton Popovichenko
47f9d66874 feat(Core/Optimization): Create index for sSkillLineAbilityStore to speedup search by skillLine. (#18622)
* feat(Core/Optimization): Create index for sSkillLineAbilityStore to speedup search by skillLine.

* Remove whitespace.
2024-04-01 05:50:12 -03:00
Anton Popovichenko
73340b94e3 feat(Core/Compression): Move packets compression from map to network thread (#18602)
* feat(Code/Compression): Move packets compression from map to network thread.

* Code style fix

* Remove unicode letter
2024-03-28 08:57:29 -03:00
Mykhailo Redko
33f951d742 fix(Core/Spells): Fixed work of sobering spells and other improvements for drunk system (#18390)
* fix(Core/Spells): Fix sobering spells and possible uint8 overflow/underflow in SPELL_EFFECT_INEBRIATE handler.

* fix(Core/Spells): Improvements for SPELL_AURA_MOD_FAKE_INEBRIATE handling
2024-03-20 01:45:01 -03:00
Gultask
b69df485cf fix(DB/BlackTemple): Rework Black Temple (#18569)
* init

* more

* Update rev_1710358311839208100.sql
2024-03-18 22:31:05 +01:00
Elmsroth
ab02c36e67 feat(Scripts/Commands): Implement ".reset items" command (#18393)
Syntax : .reset items equiped|bags|bank|keyring|currency|vendor_buyback|all|allbags #playername
Delete items in the player inventory (equiped, bank, bags etc...) depending on the chosen option.
#playername : Optionnal target player name (if player is online only). If not provided the command will execute on the selected target player.


Update src/server/scripts/Commands/cs_reset.cpp

Accepted

Co-authored-by: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com>
Update data/sql/updates/pending_db_world/rev_1708782048020249700.sql

Accepted

Co-authored-by: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com>
Update data/sql/updates/pending_db_world/rev_1708782048020249700.sql

Accepted

Co-authored-by: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com>
Update src/server/game/Miscellaneous/Language.h

Accepted

Co-authored-by: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com>
fix uint16 vs uint16_t


fix crash and code cleanup

Fix typo

sql fix

Missing typo

selected instead or selecter

AC code style fix

Re-Fix typos

MISSING typos

missing typos
2024-03-15 10:23:31 -03:00
sudlud
307c1ab09d refactor(Core): remove some unused variables (#18538)
- let's get rid of some compiler warnings
2024-03-13 06:52:43 -03:00
Andrew
6df652a8dd fix(Core/Creature): Prevent combat movement disabled creatures from r… (#18428)
* fix(Core/Creature): Prevent combat movement disabled creatures from repositioning if target moves within model boundary

* fixbuild

* Apply suggestions from code review
2024-02-27 10:11:39 -03:00
AnchyDev
1d8c4056b3 feat(Core/Hooks): Add the KillRewarder reference to the OnRewardKillRewarder hook. (#18290)
* Another hackfix attempt at warden payload forcechecks ban fix.

* Revert last commit, interrupt all forcechecks instead of just _dataSent ones.

* Add rewarder parameter to OnRewardKillRewarder hook.

* Undo old warden changes.

* Removed too much!
2024-02-10 21:58:49 +01:00
Nathan Handley
df33a57b78 feat(Core/Unit): New helper IsClass and script hook OnPlayerIsClass (#18243)
* Class Comparison Logic Encapsulation - Parity

* Add Context to IsClass

* Add Unit IsClass script hook

* Replace additional getClass with IsClass

* Update CanUseItem to replace getClass with IsClass

* Add separate context for pet vs ability

* Change Create to Init since not all referenced contexts are creation

* Align spacing in ClassContext

* Drop context on LFGManager max power

* Update IsClass context that wraps around Missle Barrage

* Rename context for swapping weapons

* Be more specific than CLASS_CONTEXT_TALENT

* Remove duplicate context

* Moved IsClass Hook to Player

* Removed unused parameter in virtual base function

* Added maybe_unused to IsClass virtual in order to compile

To match the override signature, the virtual base needs to include the parameter in question, so using [maybe_unused] to signal to the compiler to allow it

* Remove extra blank line

* Add ABILITY_REACTIVE context

* Add context for PET_CHARM

* Remove explicit nullopt check per review

* Code Readability - Change if to if else in pet

Due to the return pattern, this doesn't change functionality in any way

* Add OnPlayer to disambiguate

---------

Co-authored-by: NathanHandley <nathanhandley@protonmail.com>
2024-02-10 12:25:00 -03:00
Nathan Handley
425a490a7b feat(Core/Unit): New helper HasActivePowerType and script hook OnPlayerHasActivePowerType (#18293)
* Create HasActivePower for script intercept

* Replace relevant player-related getPowerType() comparators with HasActivePowerType

* Change OnPlayerHasActivePowerType to regular bool instead of optional

---------

Co-authored-by: NathanHandley <nathanhandley@protonmail.com>
2024-02-09 06:27:02 -03:00
Kalimist
1324f420f2 Fix(Core/CharacterHandler): Incorrect behavior using an equipment set… (#18253)
* Fix(Core/CharacterHandler): Incorrect behavior using an equipment set if it will result in a full inventory.

* Fixing the error message to -Equiment swap failed - inventory is full- like the Blizzlike error message
2024-02-03 14:34:33 +01:00
sudlud
e447351b0f fix(Core/Creature): Remove automated z spawn correction (#18200)
* fix(Core/Creature): Remove automated z spawn correction

* comment out unused parameter

* remove gridLoad parameter from Creature::LoadCreatureFromDB()
2024-01-21 07:33:00 -03:00
Tereneckla
4cfad0ffac fix (Core/Unit) Apply Capacitor cooldown on trigger proc instead of on stack add (#18189)
fix capacitor cooldown
2024-01-20 08:51:49 -03:00
sudlud
1785df7117 fix(Core/Player): Fix Player not starting at full health (#18136)
* fix(Core/Player): Fix Player not starting at full health

* remove first call to UpdateMaxHealth() and SetFullHealth()
2024-01-14 11:07:52 -03:00
sudlud
96d8d1d89a fix(Core/Creature): Reduce z offset for automated spawn correction (#18153)
- this is necessary to correctly spawn creatures within small defines
- 0.42f is as good as 1.0f to detect and correct reasonable z errors
in DB spawn data
2024-01-11 11:15:41 -03:00
Kitzunu
bceb6173c2 fix(Core/Player): Sometimes Player whisper is sent as boss whisper (#18128)
* fix(Core/Player): Sometimes Player emot is sent as boss whisper

* actually change it to whisper as it is boss whisper

* Update Player.cpp
2024-01-07 12:14:20 -03:00
Kitzunu
6202835cff fix(Core/LFG): Hide XP from max players (#18103)
* Cherry-pick Player::IsMaxLevel from TrinityCore
* Correctly hide XP reward for max level players in LFG
* Closes #18101
2024-01-03 19:47:26 +01:00
Andrew
f9f71fff36 fix(Core/Player): Check if the player can summon the warlock pet on B… (#18064)
fix(Core/Player): Check if the player can summon the warlock pet on BG ress
2024-01-01 14:56:32 +01:00