Commit Graph
2235 Commits
Author SHA1 Message Date
Shauren fe7e42b0b8 Core/WorldStates: Migrate Tol Barad worldstates to new system 2022-10-09 13:11:33 +02:00
Ovahlord 9f85a104d7 Core/Spells: fixed a typo that was causing all charmed units to now have any spells despite being defined as such 2022-10-09 12:47:04 +02:00
Shauren 10823f8fcc Core/WorldStates: Add area requirements to world states 2022-10-09 01:34:37 +02:00
Shauren 8a98cc0205 Core/WorldStates: Migrate Wintergrasp worldstates to new system 2022-10-09 01:15:02 +02:00
Carbenium 0ef220fca0 Battlefields: Move BF scripts out of game
This commit introduces the usual script interface
for battlefields.
2022-10-09 00:35:07 +02:00
Carbenium d5f7d7b754 Core/Misc: Move WorldState enum to SharedDefines
Move WG battlefield world states to the global enum
2022-10-09 00:03:42 +02:00
Carbenium 45e1e8c282 Core/Misc: Create new enum for AreaIds
Move Wintergrasp BF related values there
2022-10-08 23:59:21 +02:00
Shauren 0461bdc730 Core/WorldStates: Migrate conditions and criteria to new worldstate api 2022-10-08 23:18:03 +02:00
Ovahlord 2521489e2b Core/World: adapted Master branch version of world state handling 2022-10-08 23:13:06 +02:00
Ovahlord a13f955a82 Core/Loot: fixed a cherrypick mistake that was causing all creatures to drop pickpocket loot only 2022-10-08 10:03:31 +02:00
Shauren 0ba58aeb6e Core/Maps: Move terrain data handling out of Map class
Partial port of cmangos/mangos-wotlk@ff5232c648
2022-10-08 00:25:32 +02:00
Shauren 21e9854686 Core/Maps & Extractors: Move copypasted map file headers into a single shared file and replace #defines with enums 2022-10-07 22:16:46 +02:00
Shauren 0ca955897f Core/Spells: Remove all hardcoded restrictions for pick pocket spell effect and rely only on presence of pickpocket loot in db 2022-10-04 12:42:10 +02:00
Shauren c3b52fd29f Core/Auras: Improve aura interactions with immunities on spell effect level
* Effects that target is immune to will be suppressed instead of completely removed
2022-09-30 12:49:31 +02:00
Shauren 6900a904cb Core/Spells: Implemented SPELL_ATTR6_DO_NOT_RESET_COOLDOWN_IN_ARENA 2022-09-30 10:53:09 +02:00
tisk a7ad67bb63 Core/Spells: Implemented SPELL_ATTR6_ALLOW_EQUIP_WHILE_CASTING 2022-09-30 10:52:24 +02:00
Shauren 4cfd439d34 Core/Spells: Implemented SPELL_ATTR5_NOT_AVAILABLE_WHILE_CHARMED 2022-09-30 02:08:33 +02:00
Shauren 75906f3d06 Core/Auras: Added support for SPELL_ATTR5_LIMIT_N limit to other number than just 1 2022-09-30 01:57:52 +02:00
Shauren d1700ba5fa Core/Spells: Rename SpellAttr5 to use official attribute names
* Implemented SPELL_ATTR8_HASTE_AFFECTS_DURATION
2022-09-30 01:30:14 +02:00
Shauren a7dc339a6a SHA-1: 8d16a79dea4c0100d36e13b068c42499a3a48154
* Core/Spells: Rename SpellAttr4 to use official attribute names

* Corrected implementation of SPELL_ATTR4_CLASS_TRIGGER_ONLY_ON_TARGET
* Implemented SPELL_ATTR4_NO_HELPFUL_THREAT
* Implemented SPELL_ATTR4_NO_PARTIAL_IMMUNITY
* Implemented SPELL_ATTR4_ALLOW_PROC_WHILE_SITTING
* Implemented SPELL_ATTR4_USE_FACING_FROM_SPELL
* Implemented SPELL_ATTR4_BOUNCY_CHAIN_MISSILES
* Implemented SPELL_ATTR4_AURA_NEVER_BOUNCES
* Implemented SPELL_ATTR4_AURA_BOUNCE_FAILS_SPELL
* Implemented SPELL_ATTR4_AURA_IS_BUFF
* Implemented SPELL_ATTR5_MELEE_CHAIN_TARGETING

* Implemented SpellEffectAttributes::ChainFromInitialTarget
2022-09-30 01:16:39 +02:00
Ovahlord ef3632109d Core/Spells: ported SpellModOp definitions from master branch 2022-09-17 11:56:54 +02:00
Shauren ea4bc6c02a Core/Spells: Rename SpellAttr2 to use official attribute names
* Corrected implementation of SPELL_ATTR1_ALLOW_WHILE_STEALTHED
* Implemented SPELL_ATTR2_RETAIN_ITEM_CAST
* Implemented SPELL_ATTR2_ALLOW_WHILE_INVISIBLE
* Implemented SPELL_ATTR0_PROC_FAILURE_BURNS_CHARGE
* Implemented SPELL_ATTR2_PROC_COOLDOWN_ON_FAILURE
* Implemented SPELL_ATTR2_NO_TARGET_PER_SECOND_COSTS
* Implemented SPELL_ATTR2_DO_NOT_REPORT_SPELL_FAILURE
* Implemented SPELL_ATTR1_REQUIRE_ALL_TARGETS
* Implemented SPELL_ATTR2_CHAIN_FROM_CASTER
* Implemented SPELL_ATTR2_NO_ACTIVE_PETS
* Implemented SPELL_ATTR2_ENCHANT_OWN_ITEM_ONLY
2022-09-13 14:36:32 +02:00
Ovahlord 6d89d242a7 Core/Loot: no longer restrict need before greed rules to lfg parties only and no longer allow players to roll on mounts and companions they already have 2022-09-12 09:15:35 +02:00
Ovahlord bd2850cc08 Core/Players: fixed an oversight in spellmod sending that caused pct spellmods to appear clientside as flat bonus 2022-09-12 09:15:33 +02:00
Ovahlord 7e72ee241f Core/Players: removed an unused spellmod helper 2022-09-12 09:15:32 +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
Wyrserth 2f5fd3f227 Core/Spells: don't allow spells with SPELL_EFFECT_CREATE_ITEM_2 to be cast if there isn't enough space in inventory 2022-09-12 09:15:24 +02:00
Shauren 96c4a1b1f9 Core/Spells: Fixed unapplying rockbiter weapon 2022-09-12 09:15:21 +02:00
Shauren dc8bf301bb Core/Auras: Fixed saving auras with same spell id but different item source 2022-09-12 09:15:21 +02:00
ariel- b1adc269fb Core/Player: partial revert of m_items handling as it's cause of a exploit 2022-09-12 09:15:20 +02:00
ariel- 58e418574e Core/Player: properly clear m_items array when unequipping items from the bag
- Also cleanup weapon damage ap mult when direct destroying a equipped weapon
2022-09-12 09:15:18 +02:00
Ovahlord f75fdfef6f warning fix 2022-09-12 09:15:18 +02:00
ariel- 082121cb38 Core/Entities: cleanup of weapon damage
- ScalingStatDistribution/Value (ie heirlooms): apply bonuses in all cases, some calls used nullptr (like after disarm) and item wasn't regaining them
- AP multiplier wasn't correctly reflected after unequipping a weapon
- Correctly set base damages at unequip
2022-09-12 09:15:18 +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
ariel- 3fbbea61bd Core/Spells: rework part 3: spells only handle at most one UnitAura and one DynObjAura during its lifetime
# Conflicts:
#	src/server/game/Spells/Auras/SpellAuras.h
2022-09-12 09:15:13 +02:00
ariel- 80ab03a8af Core/Player: only call _ApplyWeaponDamage for actual weapons 2022-09-12 09:15:09 +02:00
ariel- 29fddba8fd Core/Entities: Port some refactors from f1986c6aafdf2457902a7a4cc7acc903cbbdc7bb 2022-09-12 09:15:06 +02:00
ariel- a804af7219 Core/Spell: SpellValueOverrides encapsulation
- No sense to let scripts use SpellValueOverrides, we already have modifiers in CastSpellExtraArgs struct
2022-09-12 09:15:04 +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
Shauren d448ea4370 Core/Spells: Rename SpellAttr0 to use official attribute names 2022-09-12 09:15:04 +02:00
Ovahlord fd27f0020d Core/Units: defined all faction template flags and properly implemented FactionTemplateFlags::HatesAllExceptFriends
*refactored FactionTemplateEntry helpers to use pointers instead of references since we use datastore pointers in all cases so there is no need to create references
2022-08-10 20:28:47 +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 8312130d34 Core/Transports: corrected a few more mistakes when reverting and porting transport changes 2022-06-18 22:06:44 +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
Ovahlord 74c60fa456 Core/Spells: ported SPELLMOD_PCT calculation fixups from master branch 2022-06-18 13:18:48 +02:00
Mikhail Redko c0a1bc8c8d * Core/Misc: Improvement item durability repair logic
* Move item repair cost calculation logic from Player::DurabilityRepair to Item::CalculateDurabilityRepairCost
* Make item repair cost calculation more congruent with client logic (std::round)
* Do not repair items if player does not have enough money to pay for the repair of all items at once
* Withdrawing money from guild bank only once to avoid spam in the guild bank log and reduce number of transactions in the database
2022-06-15 14:24:35 +02:00
Intel ce79689c96 Core/Player: Prevent updating visibility if player is not in world. Closes #13659
(cherry picked from commit 3ec88b7086953685617c2ccd79207a388d20e129)

Closes #27914
2022-05-18 13:52:36 +02:00
Ovahlord a82fe54bb7 Core/Skills: assign loaded skills that have been marked as forbidden to a proper skill position to avoid interfering with legit skills
closes #332
2022-03-25 11:37:52 +01:00