Mercurial > wow > breuesk
diff Lists.lua @ 1:21c58930f74e
Refactoring
author | John@Yosemite-PC |
---|---|
date | Fri, 02 Mar 2012 22:32:12 -0500 |
parents | 47fac96968e1 |
children | 00286ba3b9c4 |
line wrap: on
line diff
--- a/Lists.lua Fri Mar 02 00:15:09 2012 -0500 +++ b/Lists.lua Fri Mar 02 22:32:12 2012 -0500 @@ -38,6 +38,16 @@ return setmetatable(u, getmetatable(t)) end +-- Debugging {{{ +function bsk:PrintLists() + bsk:PrintTable(bsk.lists) +end +function bsk:PrintChanges() + bsk:PrintTable(bsk.db.profile.changes) +end +function bsk:PrintPlayers() + bsk:PrintTable(bsk.players) +end function bsk:PrintTable(table, depth) depth = depth or "" if not table then return end @@ -57,16 +67,6 @@ end end --- Debugging {{{ -function bsk:PrintLists() - bsk:PrintTable(bsk.lists) -end -function bsk:PrintChanges() - bsk:PrintTable(bsk.db.profile.changes) -end -function bsk:PrintPlayers() - bsk:PrintTable(bsk.players) -end --}}} function bsk:CreateWorkingStateFromChanges() @@ -159,7 +159,7 @@ end end - +-- Action and DoAction defs {{{ -- -- The actual actions for changes start here -- @@ -214,10 +214,6 @@ end end -function bsk:CreateFakeLists() - -- testing only -end - function bsk:DoCreateList(change) -- TODO: this segment will probably be useful as bsk:SearchForListByName local lists = bsk.lists @@ -276,27 +272,6 @@ -- from both players and lists end -function bsk:GetSuicideList(name,list) - --self:Print("Calculating changeset for "..name.." from list -") - --self:PrintTable(list) - local t = {} - local ret = {} - local pushing = false - for i = 1, #list do - if list[i] == name then - pushing = true - end - if pushing and (RaidList[list[i]] or ReserveList[list[i]]) then - tinsert(ret,list[i]) - end - end - return ret -end - -function bsk:GetActiveList() - return bsk.lists[1] -- todo! -end - function bsk:DoSuicidePlayer(change) local listIndex = change.arg.listIndex local list = bsk.lists[listIndex] @@ -324,16 +299,52 @@ function bsk:SuicidePlayer(name,list) -- require admin - local l=bsk:GetActiveList() bsk:PopulateRaidList() - local slist=bsk:GetSuicideList(name,l) local listIndex = bsk:GetListIndex(list) + local slist=bsk:GetSuicideList(name,bsk.lists[listIndex]) local change = {action="SuicidePlayer",arg={names=names,list=slist,listIndex=listIndex}} bsk:StartChange(change) if bsk:DoSuicidePlayer(change) then bsk:CommitChange(change) end end +--}}} +-- Higher order actions (ie calls other Doers){{{ +function bsk:AddMissingPlayers() + bsk:PopulateRaidList() + local t = {} + for i,v in pairs(bsk.players) do + t[v] = true + end + for i,v in pairs(RaidList) do + if t[v] == nil then + bsk:Print(sformat("Player % is missing from the players list - adding",v)) + bsk:AddPlayer(v) + end + end + -- TODO: batch into a single op - no need to spam 25 messages in a row +end +--}}} + +-- "Soft" actions- ie things that cause nonpermanent state {{{ + +-- reserves +function bsk:AddReserve(name) + ReserveList[name]=true + -- TODO: communicate to others. don't store this in any way. +end + +function bsk:RemoveReserve(name) + ReserveList[name]=false + -- TODO: communicate to others. don't store this in any way. +end + + +--function bsk:GetActiveList() +-- return bsk.lists[1] -- todo! +--end + +--}}} -- The following code is from Xinhuan (wowace forum member) -- Pre-create the unitID strings we will use @@ -375,25 +386,23 @@ -- prevent proper undo, such as add/delete player or add/delete list - - --- reserves -function bsk:AddReserve(name) - ReserveList[name]=true - -- TODO: communicate to others. don't store this in any way. +function bsk:GetSuicideList(name,list) + --self:Print("Calculating changeset for "..name.." from list -") + --self:PrintTable(list) + local t = {} + local ret = {} + local pushing = false + for i = 1, #list do + if list[i] == name then + pushing = true + end + if pushing and (RaidList[list[i]] or ReserveList[list[i]]) then + tinsert(ret,list[i]) + end + end + return ret end -function bsk:RemoveReserve(name) - ReserveList[name]=false - -- TODO: communicate to others. don't store this in any way. -end - - - - - - - -- Support functions @@ -406,3 +415,4 @@ end assert(false) end +