feat(Core/Config): Resurrection durability loss percentage (#25715)

Co-authored-by: Ijostrom <skylarburk@mail.com>
This commit is contained in:
Ijostrom
2026-05-10 07:34:15 -07:00
committed by GitHub
parent f4be7b1e2b
commit 7e13d17cc1
4 changed files with 14 additions and 1 deletions

View File

@@ -2606,6 +2606,14 @@ DurabilityLoss.InPvP = 0
DurabilityLoss.OnDeath = 10
#
# DurabilityLoss.OnSpiritResurrect
# Description: Durability loss percentage on spirit healer resurrection. Does not effect PvP
# spirit healers.
# Default: 25
DurabilityLoss.OnSpiritResurrect = 25
#
# DurabilityLossChance.Damage
# Description: Chance to lose durability on one equipped item from damage.

View File

@@ -262,7 +262,9 @@ void WorldSession::SendSpiritResurrect()
{
_player->ResurrectPlayer(0.5f, true);
_player->DurabilityLossAll(0.25f, true);
float durabilityLossOnSpiritResurrect = sWorld->getRate(RATE_DURABILITY_LOSS_ON_SPIRIT_RESURRECT) / 100.0f;
if (durabilityLossOnSpiritResurrect)
_player->DurabilityLossAll(durabilityLossOnSpiritResurrect, true);
// get corpse nearest graveyard
GraveyardStruct const* corpseGrave = nullptr;

View File

@@ -138,6 +138,8 @@ void WorldConfig::BuildConfigCache()
SetConfigValue<float>(RATE_DURABILITY_LOSS_ON_DEATH, "DurabilityLoss.OnDeath", 10.0f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0.0f && value <= 100.0f; }, ">= 0 && <= 100");
SetConfigValue<float>(RATE_DURABILITY_LOSS_ON_SPIRIT_RESURRECT, "DurabilityLoss.OnSpiritResurrect", 25.0f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0.0f && value <= 100.0f; }, ">= 0 && <= 100");
SetConfigValue<float>(RATE_DURABILITY_LOSS_DAMAGE, "DurabilityLossChance.Damage", 0.5f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0.0f; }, ">= 0");
SetConfigValue<float>(RATE_DURABILITY_LOSS_ABSORB, "DurabilityLossChance.Absorb", 0.5f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0.0f; }, ">= 0");
SetConfigValue<float>(RATE_DURABILITY_LOSS_PARRY, "DurabilityLossChance.Parry", 0.05f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0.0f; }, ">= 0");

View File

@@ -480,6 +480,7 @@ enum ServerConfigs
RATE_CORPSE_DECAY_LOOTED,
RATE_INSTANCE_RESET_TIME,
RATE_DURABILITY_LOSS_ON_DEATH,
RATE_DURABILITY_LOSS_ON_SPIRIT_RESURRECT,
RATE_DURABILITY_LOSS_DAMAGE,
RATE_DURABILITY_LOSS_PARRY,
RATE_DURABILITY_LOSS_ABSORB,