From a41753f47c36ac21f76c75be38d62047bf0609cd Mon Sep 17 00:00:00 2001 From: RobertB4 Date: Sun, 5 Dec 2021 12:35:34 +0100 Subject: [PATCH 1/3] added count per partner to trade tracking --- Hardcore.lua | 36 +++++++++++++++++++++++++++++++----- utils.lua | 12 ++++++++++++ 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/Hardcore.lua b/Hardcore.lua index 94ef10e5..95310016 100644 --- a/Hardcore.lua +++ b/Hardcore.lua @@ -53,8 +53,11 @@ Hardcore_Character = { deaths = {}, bubble_hearth_incidents = {}, played_time_gap_warnings = {}, - trade_partners = {}, + trade = {}, grief_warning_conditions = GRIEF_WARNING_BOTH_FACTIONS, + is_valid_run = false, + -- deprecated + trade_partners = {}, } --[[ Local variables ]]-- @@ -345,8 +348,11 @@ local saved_variable_meta = { { key = "deaths", initial_data = {} }, { key = "bubble_hearth_incidents", initial_data = {} }, { key = "played_time_gap_warnings", initial_data = {} }, + { key = "trades", initial_data = {} }, + { key = "grief_warning_conditions", initial_data = GRIEF_WARNING_BOTH_FACTIONS }, + { key = "is_valid_run", initial_data = false }, + -- deprecated { key = "trade_partners", initial_data = {} }, - { key = "grief_warning_conditions", initial_data = GRIEF_WARNING_BOTH_FACTIONS } } function Hardcore:InitializeSavedVariables() @@ -370,8 +376,25 @@ end --[[ Override default WoW UI ]]-- TradeFrameTradeButton:SetScript("OnClick", function() + local trade = Hardcore_FindInTable(Hardcore_Characters.trades, function (trade) + return trade.partner == TradeFrameRecipientNameText:GetText() + end) + if trade ~= nil then + table.insert(Hardcore_Character.trades, { + partner = trade.partner, + count = trade.count + 1 + }) + else + table.insert(Hardcore_Character.trades, { + partner = TradeFrameRecipientNameText:GetText(), + count = 1 + }) + end + + -- legacy handling table.insert(Hardcore_Character.trade_partners, TradeFrameRecipientNameText:GetText()) Hardcore_Character.trade_partners = Hardcore_FilterUnique(Hardcore_Character.trade_partners) + AcceptTrade() end) @@ -1444,8 +1467,8 @@ function Hardcore:GenerateVerificationString() local realm = GetRealmName() local level = UnitLevel("player") - local tradePartners = Hardcore_join(Hardcore_Character.trade_partners, ",") - local baseVerificationData = {Hardcore_Character.guid, realm, race, class, name, level, + local trades = Hardcore_tableToUnicode(Hardcore_Character.trades) + local baseVerificationData = {tostring(Hardcore_Character.is_valid_run), Hardcore_Character.guid, realm, race, class, name, level, Hardcore_Character.time_played, Hardcore_Character.time_tracked, #Hardcore_Character.deaths, tradePartners} local baseVerificationString = Hardcore_join(Hardcore_map(baseVerificationData, Hardcore_stringOrNumberToUnicode), @@ -1453,8 +1476,11 @@ function Hardcore:GenerateVerificationString() local bubbleHearthIncidentsVerificationString = Hardcore_tableToUnicode(Hardcore_Character.bubble_hearth_incidents) local playedtimeGapsVerificationString = Hardcore_tableToUnicode(Hardcore_Character.played_time_gap_warnings) + -- legacy handling + local tradePartners = Hardcore_join(Hardcore_Character.trade_partners, ",") + return Hardcore_join({baseVerificationString, bubbleHearthIncidentsVerificationString, - playedtimeGapsVerificationString}, ATTRIBUTE_SEPARATOR) + playedtimeGapsVerificationString, trades}, ATTRIBUTE_SEPARATOR) end --[[ Timers ]]-- diff --git a/utils.lua b/utils.lua index 2759bfe3..413efdfa 100644 --- a/utils.lua +++ b/utils.lua @@ -158,4 +158,16 @@ function Hardcore_FilterUnique(tbl) end return res +end + +function Hardcore_FindInTable(tbl, cb) + print(tbl) + for i, v in ipairs(tbl) do + print(i, v) + local result = cb(v) + if result == true then + return v + end + end + return nil end \ No newline at end of file From 7618f90c9fa4385ab9cfff8ba66ab21a5327bd05 Mon Sep 17 00:00:00 2001 From: RobertB4 Date: Sun, 5 Dec 2021 12:39:52 +0100 Subject: [PATCH 2/3] removed unneeded print statement --- Hardcore.lua | 4 ++-- utils.lua | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Hardcore.lua b/Hardcore.lua index 95310016..72672531 100644 --- a/Hardcore.lua +++ b/Hardcore.lua @@ -1468,7 +1468,7 @@ function Hardcore:GenerateVerificationString() local level = UnitLevel("player") local trades = Hardcore_tableToUnicode(Hardcore_Character.trades) - local baseVerificationData = {tostring(Hardcore_Character.is_valid_run), Hardcore_Character.guid, realm, race, class, name, level, + local baseVerificationData = Hardcore_Character.guid, realm, race, class, name, level, Hardcore_Character.time_played, Hardcore_Character.time_tracked, #Hardcore_Character.deaths, tradePartners} local baseVerificationString = Hardcore_join(Hardcore_map(baseVerificationData, Hardcore_stringOrNumberToUnicode), @@ -1480,7 +1480,7 @@ function Hardcore:GenerateVerificationString() local tradePartners = Hardcore_join(Hardcore_Character.trade_partners, ",") return Hardcore_join({baseVerificationString, bubbleHearthIncidentsVerificationString, - playedtimeGapsVerificationString, trades}, ATTRIBUTE_SEPARATOR) + playedtimeGapsVerificationString, trades, tostring(Hardcore_Character.is_valid_run)}, ATTRIBUTE_SEPARATOR) end --[[ Timers ]]-- diff --git a/utils.lua b/utils.lua index 413efdfa..294e5ece 100644 --- a/utils.lua +++ b/utils.lua @@ -161,7 +161,6 @@ function Hardcore_FilterUnique(tbl) end function Hardcore_FindInTable(tbl, cb) - print(tbl) for i, v in ipairs(tbl) do print(i, v) local result = cb(v) From faadc5171ba7b9667bfa68a95c1731109085347b Mon Sep 17 00:00:00 2001 From: RobertB4 Date: Sun, 5 Dec 2021 12:40:25 +0100 Subject: [PATCH 3/3] removed another print --- utils.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/utils.lua b/utils.lua index 294e5ece..a191f430 100644 --- a/utils.lua +++ b/utils.lua @@ -162,7 +162,6 @@ end function Hardcore_FindInTable(tbl, cb) for i, v in ipairs(tbl) do - print(i, v) local result = cb(v) if result == true then return v