aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp3
-rw-r--r--src/server/game/Handlers/ItemHandler.cpp3
-rwxr-xr-xsrc/server/game/Spells/Auras/SpellAuraDefines.h2
3 files changed, 7 insertions, 1 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index eb7208ceb46..3919c6d3bc3 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -21363,6 +21363,9 @@ bool Player::BuyItemFromVendorSlot(uint64 vendorguid, uint32 vendorslot, uint32
// reputation discount
price = uint32(floor(price * GetReputationPriceDiscount(creature)));
+ if (int32 priceMod = GetTotalAuraModifier(SPELL_AURA_MOD_VENDOR_ITEMS_PRICES))
+ price -= CalculatePctN(price, priceMod);
+
if (!HasEnoughMoney(uint64(price)))
{
SendBuyError(BUY_ERR_NOT_ENOUGHT_MONEY, creature, item, 0);
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp
index 3b38db78d94..5b5f83719e3 100644
--- a/src/server/game/Handlers/ItemHandler.cpp
+++ b/src/server/game/Handlers/ItemHandler.cpp
@@ -775,6 +775,9 @@ void WorldSession::SendListInventory(uint64 vendorGuid)
}
int32 price = vendorItem->IsGoldRequired(itemTemplate) ? uint32(floor(itemTemplate->BuyPrice * discountMod)) : 0;
+
+ if (int32 priceMod = _player->GetTotalAuraModifier(SPELL_AURA_MOD_VENDOR_ITEMS_PRICES))
+ price -= CalculatePctN(price, priceMod);
itemsData << uint32(count++ + 1); // client expects counting to start at 1
itemsData << uint32(itemTemplate->MaxDurability);
diff --git a/src/server/game/Spells/Auras/SpellAuraDefines.h b/src/server/game/Spells/Auras/SpellAuraDefines.h
index 1482136f52e..c20397aa960 100755
--- a/src/server/game/Spells/Auras/SpellAuraDefines.h
+++ b/src/server/game/Spells/Auras/SpellAuraDefines.h
@@ -396,7 +396,7 @@ enum AuraType
SPELL_AURA_334 = 334,
SPELL_AURA_335 = 335,
SPELL_AURA_MOD_FLYING_RESTRICTIONS = 336, // NYI
- SPELL_AURA_MOD_VENDOR_ITEMS_PRICES = 337, // NYI
+ SPELL_AURA_MOD_VENDOR_ITEMS_PRICES = 337,
SPELL_AURA_MOD_DURABILITY_LOSS = 338,
SPELL_AURA_INCREASE_SKILL_GAIN_CHANCE = 339, // NYI
SPELL_AURA_340 = 340,