Converted ProfileMeetsTraderLoyaltyLevelToBuyOffer to extension method

This commit is contained in:
Chomp
2025-09-08 12:56:14 +01:00
parent 8177093b16
commit 0b2843cff6
3 changed files with 27 additions and 29 deletions
@@ -138,7 +138,7 @@ public class TradeController(
)
{
// Skip buying items when player doesn't have needed loyalty
if (!PlayerMeetsTraderLoyaltyLevelToBuyOffer(fleaOffer, pmcData))
if (!pmcData.PlayerMeetsTraderLoyaltyLevelToBuyOffer(fleaOffer))
{
var errorMessage =
$"Unable to buy item: {fleaOffer.Items[0].Template} from trader: {fleaOffer.User.Id} as loyalty level too low, skipping";
@@ -219,30 +219,6 @@ public class TradeController(
ragfairServer.ReduceOfferQuantity(fleaOffer.Id, requestOffer.Count ?? 0);
}
/// <summary>
/// Does Player have necessary trader loyalty to purchase flea offer
/// </summary>
/// <param name="fleaOffer">Flea offer being bought</param>
/// <param name="pmcData">Player profile</param>
/// <returns>True if player can buy offer</returns>
protected bool PlayerMeetsTraderLoyaltyLevelToBuyOffer(RagfairOffer fleaOffer, PmcData pmcData)
{
if (fleaOffer.LoyaltyLevel == 0)
{
// No requirement, always passes
return true;
}
if (pmcData.TradersInfo.TryGetValue(fleaOffer.User.Id, out var traderInfo))
{
// Trader exists in profile ,do loyalty level check
return traderInfo.LoyaltyLevel >= fleaOffer.LoyaltyLevel;
}
// No trader data on player profile, fail check
return false;
}
/// <summary>
/// Handle SellAllFromSavage event
/// </summary>