Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 31 additions & 5 deletions Hardcore.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Copy link
Collaborator Author

@RobertB4 RobertB4 Dec 5, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sneaked this in as well. Tbh I am unsure about this, I foresee hundreds of people freaking out in discord because of this.

-- deprecated
trade_partners = {},
}

--[[ Local variables ]]--
Expand Down Expand Up @@ -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()
Expand All @@ -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)

Expand Down Expand Up @@ -1444,17 +1467,20 @@ 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 = 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),
ATTRIBUTE_SEPARATOR)
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, tostring(Hardcore_Character.is_valid_run)}, ATTRIBUTE_SEPARATOR)
end

--[[ Timers ]]--
Expand Down
10 changes: 10 additions & 0 deletions utils.lua
Original file line number Diff line number Diff line change
Expand Up @@ -158,4 +158,14 @@ function Hardcore_FilterUnique(tbl)
end

return res
end

function Hardcore_FindInTable(tbl, cb)
for i, v in ipairs(tbl) do
local result = cb(v)
if result == true then
return v
end
end
return nil
end