From fbe4e4bc6d123b1ffee8872dfbbacfb745997377 Mon Sep 17 00:00:00 2001 From: JustArchi Date: Fri, 6 May 2016 23:31:00 +0200 Subject: [PATCH] Allow STM overpaying --- ArchiSteamFarm/JSON/Steam.cs | 10 ++-------- ArchiSteamFarm/Trading.cs | 8 ++++---- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/ArchiSteamFarm/JSON/Steam.cs b/ArchiSteamFarm/JSON/Steam.cs index 0a3519c37..e9b5f9fd2 100644 --- a/ArchiSteamFarm/JSON/Steam.cs +++ b/ArchiSteamFarm/JSON/Steam.cs @@ -249,23 +249,17 @@ namespace ArchiSteamFarm { } } - internal bool IsSteamCardsOnlyTrade() { + internal bool IsSteamCardsOnlyTradeForUs() { foreach (Item item in ItemsToGive) { if (item.AppID != Item.SteamAppID || item.ContextID != Item.SteamContextID || (item.Type != Item.EType.FoilTradingCard && item.Type != Item.EType.TradingCard)) { return false; } } - foreach (Item item in ItemsToReceive) { - if (item.AppID != Item.SteamAppID || item.ContextID != Item.SteamContextID || (item.Type != Item.EType.FoilTradingCard && item.Type != Item.EType.TradingCard)) { - return false; - } - } - return true; } - internal bool IsPotentiallyDupesTrade() { + internal bool IsPotentiallyDupesTradeForUs() { Dictionary> ItemsToGivePerGame = new Dictionary>(); foreach (Item item in ItemsToGive) { Dictionary ItemsPerType; diff --git a/ArchiSteamFarm/Trading.cs b/ArchiSteamFarm/Trading.cs index 431771979..31ef9295a 100644 --- a/ArchiSteamFarm/Trading.cs +++ b/ArchiSteamFarm/Trading.cs @@ -119,13 +119,13 @@ namespace ArchiSteamFarm { return false; } - // Rule 1 - We always trade the same amount of items - if (tradeOffer.ItemsToGive.Count != tradeOffer.ItemsToReceive.Count) { + // Decline trade if we're giving more count-wise + if (tradeOffer.ItemsToGive.Count > tradeOffer.ItemsToReceive.Count) { return false; } - // Rule 2 - We always trade steam cards and only for the same set - if (!tradeOffer.IsSteamCardsOnlyTrade() || !tradeOffer.IsPotentiallyDupesTrade()) { + // Decline trade if we're losing anything but steam cards, or if it's non-dupes trade + if (!tradeOffer.IsSteamCardsOnlyTradeForUs() || !tradeOffer.IsPotentiallyDupesTradeForUs()) { return false; }