From 28b85d0f0cdc06acf606df8bd62e52da45273946 Mon Sep 17 00:00:00 2001 From: Road-block Date: Sat, 9 Sep 2017 05:55:39 +0300 Subject: [PATCH] Fix migration to v3 Add some announces. Fix decay option description not updating on the fly. --- migrations.lua | 14 +++++++++----- shootyepgp.lua | 36 +++++++++++++++++++++++------------- shootyepgp.toc | 2 +- standings.lua | 8 ++++---- 4 files changed, 37 insertions(+), 23 deletions(-) diff --git a/migrations.lua b/migrations.lua index c7a2749..ba0beb0 100644 --- a/migrations.lua +++ b/migrations.lua @@ -2,12 +2,16 @@ function sepgp:v2tov3() local count = 0 for i = 1, GetNumGuildMembers(1) do local name, _, _, _, class, _, note, officernote, _, _ = GetGuildRosterInfo(i) - local ep = sepgp:get_ep_v2(name,note) - local gp = sepgp:get_gp_v2(name,officernote) - if ep > 0 and gp >= sepgp.VARS.basegp then + local epv2 = sepgp:get_ep_v2(name,note) + local gpv2 = sepgp:get_gp_v2(name,officernote) + local epv3 = sepgp:get_ep_v3(name,officernote) + local gpv3 = sepgp:get_gp_v3(name,officernote) + if (epv3 and gpv3) then + -- do nothing, we've migrated already + elseif (epv2 and gpv2) and (epv2 > 0 and gpv2 >= sepgp.VARS.basegp) then count = count + 1 - sepgp:update_epgp_v3(ep,gp,i,name,officernote) - --self:debugPrint(string.format("%s{%d:%d}",name,ep,gp)) + -- self:defaultPrint(string.format("epv2:%s,gpv2:%s,i:%s,n:%s,o:%s",epv2,gpv2,i,name,officernote)) + sepgp:update_epgp_v3(epv2,gpv2,i,name,officernote) end end self:defaultPrint(string.format("Updated %d members to v3 storage.",count)) diff --git a/shootyepgp.lua b/shootyepgp.lua index 051074b..b4c7ce7 100644 --- a/shootyepgp.lua +++ b/shootyepgp.lua @@ -303,10 +303,11 @@ function sepgp:init_notes_v3(guild_index,name,officernote) officernote = string.gsub(officernote,"(.*)({%d+:%d+})(.*)",sanitizeNote) end GuildRosterSetOfficerNote(guild_index,officernote,true) + return officernote end function sepgp:update_epgp_v3(ep,gp,guild_index,name,officernote) - self:init_notes_v3(guild_index,name,officernote) + officernote = self:init_notes_v3(guild_index,name,officernote) local newnote if (ep) then ep = math.max(0,ep) @@ -445,18 +446,24 @@ end function sepgp:givename_ep(getname,ep) -- awards ep to a single character if not (admin()) then return end sepgp:debugPrint(string.format("Giving %d ep to %s",ep,getname)) - ep = ep + (sepgp:get_ep_v3(getname) or 0) --TODO: update v3 - sepgp:update_ep_v3(getname,ep) --TODO: update v3 + if ep < 0 then -- inform admins of penalties + local msg = string.format("%s EP Penalty to %s.",ep,getname) + sepgp:adminSay(msg) + self:addToLog(msg) + end + ep = ep + (sepgp:get_ep_v3(getname) or 0) --DONE: update v3 + sepgp:update_ep_v3(getname,ep) --DONE: update v3 end function sepgp:givename_gp(getname,gp) -- assigns gp to a single character if not (admin()) then return end sepgp:debugPrint(string.format("Giving %d gp to %s",gp,getname)) - local oldgp = (sepgp:get_gp_v3(getname) or sepgp.VARS.basegp) --TODO: update v3 + local oldgp = (sepgp:get_gp_v3(getname) or sepgp.VARS.basegp) --DONE: update v3 local newgp = gp + oldgp - sepgp:adminSay(string.format("Awarding %d GP to %s. (Previous: %d, New: %d)",gp,getname,oldgp,newgp)) - self:addToLog(string.format("Awarding %d GP to %s. (Previous: %d, New: %d)",gp,getname,oldgp,newgp)) - sepgp:update_gp_v3(getname,newgp) --TODO: update v3 + local msg = string.format("Awarding %d GP to %s. (Previous: %d, New: %d)",gp,getname,oldgp,math.max(sepgp.VARS.basegp,newgp)) + sepgp:adminSay(msg) + self:addToLog(msg) + sepgp:update_gp_v3(getname,newgp) --DONE: update v3 end function sepgp:decay_epgp_v2() -- decays entire roster's ep and gp @@ -496,7 +503,7 @@ function sepgp:decay_epgp_v3() sepgp:update_epgp_v3(ep,gp,i,name,officernote) end end - local msg = string.format("All EP and GP decayed by %d%%",(1-sepgp_decay)*100) + local msg = string.format("All EP and GP decayed by %s%%",(1-sepgp_decay)*100) sepgp:simpleSay(msg) if not (sepgp_saychannel=="OFFICER") then sepgp:adminSay(msg) end self:addToLog(msg) @@ -739,10 +746,10 @@ function sepgp:buildMenu() options.args["decay"] = { type = "execute", name = "Decay EPGP", - desc = string.format("Decays all EPGP by %d%%",(1-(sepgp_decay or sepgp.VARS.decay))*100), + desc = string.format("Decays all EPGP by %s%%",(1-(sepgp_decay or sepgp.VARS.decay))*100), order = 100, hidden = function() return not (admin()) end, - func = function() sepgp:decay_epgp_v3() end --TODO: update v3 + func = function() sepgp:decay_epgp_v3() end --DONE: update v3 } options.args["set_decay"] = { type = "range", @@ -751,7 +758,10 @@ function sepgp:buildMenu() order = 110, usage = "", get = function() return (1.0-sepgp_decay) end, - set = function(v) sepgp_decay = (1 - v) end, + set = function(v) + sepgp_decay = (1 - v) + options.args["decay"].desc = string.format("Decays all EPGP by %s%%",(1-sepgp_decay)*100) + end, min = 0.01, max = 0.5, step = 0.01, @@ -998,8 +1008,8 @@ function sepgp:captureBid(text, sender) for i = 1, GetNumGuildMembers(1) do local name, _, _, _, class, _, note, officernote, _, _ = GetGuildRosterInfo(i) if name == sender then - local ep = (self:get_ep_v3(name,officernote) or 0) --TODO: update v3 - local gp = (self:get_gp_v3(name,officernote) or sepgp.VARS.basegp) --TODO: update v3 + local ep = (self:get_ep_v3(name,officernote) or 0) --DONE: update v3 + local gp = (self:get_gp_v3(name,officernote) or sepgp.VARS.basegp) --DONE: update v3 if (mskw_found) then bids_blacklist[sender] = true table.insert(sepgp.bids_main,{name,class,ep,gp,ep/gp}) diff --git a/shootyepgp.toc b/shootyepgp.toc index 888ca35..f9fdd0f 100644 --- a/shootyepgp.toc +++ b/shootyepgp.toc @@ -3,7 +3,7 @@ ## Notes: Effort Points/Gear Points Loot System ## Author: Roadblock ## X-Credits: shooty for original version -## Version: 3.0 +## Version: 3.1 ## OptionalDeps: Ace2 ## SavedVariables: sepgp_saychannel,sepgp_groupbyclass,sepgp_raidonly,sepgp_decay,sepgp_reservechannel,sepgp_main,sepgp_progress,sepgp_discount ## SavedVariablesPerCharacter: sepgp_log, sepgp_dbver diff --git a/standings.lua b/standings.lua index 5f4b883..50a1571 100644 --- a/standings.lua +++ b/standings.lua @@ -105,8 +105,8 @@ function sepgp_standings:Export() local t = {} for i = 1, GetNumGuildMembers(1) do local name, _, _, _, class, _, note, officernote, _, _ = GetGuildRosterInfo(i) - local ep = (sepgp:get_ep_v3(name,officernote) or 0) --TODO: update v3 - local gp = (sepgp:get_gp_v3(name,officernote) or sepgp.VARS.basegp) --TODO: update v3 + local ep = (sepgp:get_ep_v3(name,officernote) or 0) --DONE: update v3 + local gp = (sepgp:get_gp_v3(name,officernote) or sepgp.VARS.basegp) --DONE: update v3 if ep > 0 then table.insert(t,{name,ep,gp,ep/gp}) end @@ -176,8 +176,8 @@ function sepgp_standings:BuildStandingsTable() end for i = 1, GetNumGuildMembers(1) do local name, _, _, _, class, _, note, officernote, _, _ = GetGuildRosterInfo(i) - local ep = (sepgp:get_ep_v3(name) or 0) --TODO: update v3 - local gp = (sepgp:get_gp_v3(name) or sepgp.VARS.basegp) --TODO: update v3 + local ep = (sepgp:get_ep_v3(name) or 0) --DONE: update v3 + local gp = (sepgp:get_gp_v3(name) or sepgp.VARS.basegp) --DONE: update v3 if ep > 0 then if (sepgp_raidonly) and next(r) then if r[name] then