aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Player/Player.cpp2
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp10
-rw-r--r--src/server/game/Entities/Unit/Unit.h5
-rw-r--r--src/server/game/Handlers/ArenaTeamHandler.cpp4
-rw-r--r--src/server/game/Handlers/VoidStorageHandler.cpp1
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp4
-rw-r--r--src/server/game/Spells/SpellInfo.cpp20
7 files changed, 20 insertions, 26 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index ee4fe9057bd..47b902072bd 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -7415,8 +7415,8 @@ void Player::SendPvpRewards() const
packet << GetCurrencyWeekCap(CURRENCY_TYPE_CONQUEST_POINTS, true);
packet << GetCurrencyOnWeek(CURRENCY_TYPE_CONQUEST_POINTS, true);
packet << GetCurrencyWeekCap(CURRENCY_TYPE_CONQUEST_META_ARENA, true);
- packet << GetCurrencyOnWeek(CURRENCY_TYPE_CONQUEST_META_ARENA, true);
packet << GetCurrencyOnWeek(CURRENCY_TYPE_CONQUEST_META_RBG, true);
+ packet << GetCurrencyOnWeek(CURRENCY_TYPE_CONQUEST_META_ARENA, true);
packet << GetCurrencyWeekCap(CURRENCY_TYPE_CONQUEST_POINTS, true);
packet << GetCurrencyWeekCap(CURRENCY_TYPE_CONQUEST_META_RBG, true);
GetSession()->SendPacket(&packet);
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 9bfb5035802..a1745d4473d 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -1018,7 +1018,7 @@ void Unit::CalculateSpellDamageTaken(SpellNonMeleeDamage* damageInfo, int32 dama
damage -= damageInfo->blocked;
}
- ApplyResilience(victim, &damage, crit);
+ ApplyResilience(victim, &damage);
break;
}
// Magical Attacks
@@ -1032,7 +1032,7 @@ void Unit::CalculateSpellDamageTaken(SpellNonMeleeDamage* damageInfo, int32 dama
damage = SpellCriticalDamageBonus(spellInfo, damage, victim);
}
- ApplyResilience(victim, &damage, crit);
+ ApplyResilience(victim, &damage);
break;
}
default:
@@ -1244,7 +1244,7 @@ void Unit::CalculateMeleeDamage(Unit* victim, uint32 damage, CalcDamageInfo* dam
damageInfo->HitInfo |= HITINFO_AFFECTS_VICTIM;
int32 resilienceReduction = damageInfo->damage;
- ApplyResilience(victim, &resilienceReduction, damageInfo->hitOutCome == MELEE_HIT_CRIT);
+ ApplyResilience(victim, &resilienceReduction);
resilienceReduction = damageInfo->damage - resilienceReduction;
damageInfo->damage -= resilienceReduction;
damageInfo->cleanDamage += resilienceReduction;
@@ -14435,7 +14435,7 @@ void Unit::SendPlaySpellVisualKit(uint32 id, uint32 unkParam)
SendMessageToSet(&data, true);
}
-void Unit::ApplyResilience(Unit const* victim, int32* damage, bool isCrit) const
+void Unit::ApplyResilience(Unit const* victim, int32* damage) const
{
// player mounted on multi-passenger mount is also classified as vehicle
if (IsVehicle() || (victim->IsVehicle() && victim->GetTypeId() != TYPEID_PLAYER))
@@ -14454,8 +14454,6 @@ void Unit::ApplyResilience(Unit const* victim, int32* damage, bool isCrit) const
if (!target)
return;
- if (isCrit)
- *damage -= target->GetCritDamageReduction(*damage);
*damage -= target->GetDamageReduction(*damage);
}
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index abc1d6f6d23..2913712d2b8 100644
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -1473,10 +1473,9 @@ class Unit : public WorldObject
void DealSpellDamage(SpellNonMeleeDamage* damageInfo, bool durabilityLoss);
// player or player's pet resilience (-1%)
- uint32 GetCritDamageReduction(uint32 damage) const { return GetCombatRatingDamageReduction(CR_RESILIENCE_CRIT_TAKEN, 2.2f, 33.0f, damage); }
- uint32 GetDamageReduction(uint32 damage) const { return GetCombatRatingDamageReduction(CR_RESILIENCE_PLAYER_DAMAGE_TAKEN, 2.0f, 100.0f, damage); }
+ uint32 GetDamageReduction(uint32 damage) const { return GetCombatRatingDamageReduction(CR_RESILIENCE_PLAYER_DAMAGE_TAKEN, 1.0f, 100.0f, damage); }
- void ApplyResilience(Unit const* victim, int32 * damage, bool isCrit) const;
+ void ApplyResilience(Unit const* victim, int32* damage) const;
float MeleeSpellMissChance(Unit const* victim, WeaponAttackType attType, uint32 spellId) const;
SpellMissInfo MeleeSpellHitResult(Unit* victim, SpellInfo const* spellInfo);
diff --git a/src/server/game/Handlers/ArenaTeamHandler.cpp b/src/server/game/Handlers/ArenaTeamHandler.cpp
index 1ae185f7e42..2f27abc4814 100644
--- a/src/server/game/Handlers/ArenaTeamHandler.cpp
+++ b/src/server/game/Handlers/ArenaTeamHandler.cpp
@@ -85,9 +85,9 @@ void WorldSession::HandleArenaTeamCreateOpcode(WorldPacket & recvData)
recvData >> slot;
recvData >> iconcolor;
recvData >> bordercolor;
- recvData >> icon;
- recvData >> background;
recvData >> border;
+ recvData >> background;
+ recvData >> icon;
name = recvData.ReadString(recvData.ReadBits(8));
uint8 type = ArenaTeam::GetTypeBySlot(slot);
diff --git a/src/server/game/Handlers/VoidStorageHandler.cpp b/src/server/game/Handlers/VoidStorageHandler.cpp
index 24b677b94f4..cf117762801 100644
--- a/src/server/game/Handlers/VoidStorageHandler.cpp
+++ b/src/server/game/Handlers/VoidStorageHandler.cpp
@@ -161,6 +161,7 @@ void WorldSession::HandleVoidStorageQuery(WorldPacket& recvData)
itemData.WriteByteSeq(itemId[0]);
itemData.WriteByteSeq(itemId[6]);
itemData.WriteByteSeq(creatorGuid[0]);
+ itemData.WriteByteSeq(creatorGuid[1]);
itemData << uint32(item->ItemRandomPropertyId);
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index 8eabf4d148a..3357b856a56 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -5835,7 +5835,7 @@ void AuraEffect::HandlePeriodicDamageAurasTick(Unit* target, Unit* caster) const
damage = caster->SpellCriticalDamageBonus(m_spellInfo, damage, target);
int32 dmg = damage;
- caster->ApplyResilience(target, &dmg, crit);
+ caster->ApplyResilience(target, &dmg);
damage = dmg;
caster->CalcAbsorbResist(target, GetSpellInfo()->GetSchoolMask(), DOT, damage, &absorb, &resist, GetSpellInfo());
@@ -5902,7 +5902,7 @@ void AuraEffect::HandlePeriodicHealthLeechAuraTick(Unit* target, Unit* caster) c
}
int32 dmg = damage;
- caster->ApplyResilience(target, &dmg, crit);
+ caster->ApplyResilience(target, &dmg);
damage = dmg;
caster->CalcAbsorbResist(target, GetSpellInfo()->GetSchoolMask(), DOT, damage, &absorb, &resist, m_spellInfo);
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index a094bf0603d..334f0cd80d5 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -613,22 +613,18 @@ bool SpellEffectInfo::HasMaxRadius() const
float SpellEffectInfo::CalcRadius(Unit* caster, Spell* spell) const
{
- if (!HasRadius())
- {
- if (HasMaxRadius())
- {
- //! Still not sure which to pick. Anyway at the current time (Patch 4.3.4) most of the spell effects
- //! have no radius mod per level, and RadiusMin is equal to RadiusMax.
- return MaxRadiusEntry->RadiusMin;
- }
+ const SpellRadiusEntry* entry = RadiusEntry;
+ if (!HasRadius() && HasMaxRadius())
+ entry = MaxRadiusEntry;
+
+ if (!entry)
return 0.0f;
- }
- float radius = RadiusEntry->RadiusMin;
+ float radius = entry->RadiusMin;
if (caster)
{
- radius += RadiusEntry->RadiusPerLevel * caster->getLevel();
- radius = std::min(radius, RadiusEntry->RadiusMax);
+ radius += entry->RadiusPerLevel * caster->getLevel();
+ radius = std::min(radius, entry->RadiusMax);
if (Player* modOwner = caster->GetSpellModOwner())
modOwner->ApplySpellMod(_spellInfo->Id, SPELLMOD_RADIUS, radius, spell);
}