added alt override

cleaned up code
This commit is contained in:
Sheppy 2015-10-15 10:59:37 +02:00
parent 8fe2eb0dc6
commit e383773ad3

View File

@ -2,172 +2,46 @@
local ref_low
--medium (construction)
local ref_medium
local trigger = true
--header
function widget:GetInfo()
return {
name = "Selection Priority",
desc = "Sorts Units by Priority (atackunit>builder/commander>buildings)",
author = "Sheppy",
date = "2015",
license = "PD", -- should be compatible with Spring
license = "GPL",
layer = 0,
enabled = true
}
end
function widget:CommandNotify(cmdID, cmdParams, cmdOptions)
if trigger then
ref_medium = {
--arm
"armcom",
"armaca",
"armca",
"armacv",
"armcv",
"armack",
"armck",
"armcs",
"armacs",
"armacsub",
"armch",
"corch",
--core
"coracs",
"corcom",
"coraca",
"coracv",
"corack",
"corca",
"corck",
"corcv",
"corcs",
"coracsub"
}
ref_low = {
--arm
"armaap",
"armalab",
"armap",
"armadvsol",
"armavp",
"armarad",
"armalab",
"armbrtha",
"armckfus",
"armclaw",
"armestor",
"armfmkr",
"armfus",
"armlab",
"armjam",
"armmakr",
"armmex",
"armmoho",
"armnanotc",
"armrad",
"armsolar",
"armtide",
"armvp",
"armwin",
"aafus",
"amgeo",
"armuwfus",
"armeyes",
"armason",
"armasy",
"armch",
"armhp",
"armmmkr",
"armsy",
"armgeo",
"armuwadves",
"armshltx",
"armuwmex",
"armuwmme",
"armuwmmm",
"cmgeo",
"asubpen",
--core
"coraap",
"coralab",
"corap",
"coradvsol",
"coravp",
"corarad",
"coralab",
"corbrtha",
"corckfus",
"corclaw",
"corestor",
"corfmkr",
"corfus",
"corlab",
"corjam",
"cormakr",
"cormex",
"cormoho",
"cornanotc",
"corrad",
"corsolar",
"cortide",
"corvp",
"corwin",
"aafus",
"amgeo",
"coruwfus",
"coreyes",
"corason",
"corasy",
"corch",
"corhp",
"cormmkr",
"corsy",
"corgeo",
"coruwadves",
"corshltx",
"coruwmex",
"coruwmme",
"coruwmmm",
"cmgeo",
"asubpen",
"armhp",
"armllt",
"armhlt",
"armjamt",
"corhp",
"corllt",
"corhlt",
"corjamt"
}
Spring.Echo("Done.")
trigger = false
end
local selected = Spring.GetSelectedUnits()
local low = {}
local medium = {}
local high = {}
local deselect = 0
--if teamID ~= Spring.GetMyTeamID() then return end
local a = Spring.GetModKeyState() --alt ctrl ? shift , discard all but alt
--do nothing if CTRL is pressed
Spring.Echo(Spring.GetModKeyState())
if a then return end
--iterate Selection
for i=1,200 do
if selected[i] == nil then break end
--get name to match
defID = UnitDefs[Spring.GetUnitDefID(selected[i])].name
--Spring.Echo(selected[i])
--Check what we got in out selection
if inTable(ref_low,defID) then
table.insert(low,selected[i])
--Spring.Echo("reflow")
elseif inTable(ref_medium,defID) then
--Spring.Echo("refmed")
table.insert(medium,selected[i])
if deselect == 0 then deselect = 1 end
else
--Spring.Echo("refhigh")
table.insert(high,selected[i])
if deselect < 2 then deselect = 2 end
end
end
--debug()
--discard selections
if deselect == 1 then
Spring.SelectUnitArray(medium,false)
@ -175,17 +49,16 @@ end
elseif deselect == 2 then
Spring.SelectUnitArray(high,false)
end
--Spring.Echo("Dis was: " .. deselect)
end
function inTable(tbl,item)
for key, value in pairs(tbl) do
--Spring.Echo(key .. "val: " .. value)
if value == item then return true end
end
return false
end
--for debugging purpose only
function debug()
for key, value in pairs(medium) do
Spring.Echo("val_med: " .. value)
@ -198,3 +71,129 @@ function debug()
end
end
--loading unit-names to match against
function widget:Initialize()
ref_medium = {
--arm
"armcom",
"armaca",
"armca",
"armacv",
"armcv",
"armack",
"armck",
"armcs",
"armacs",
"armacsub",
"armch",
"corch",
--core
"coracs",
"corcom",
"coraca",
"coracv",
"corack",
"corca",
"corck",
"corcv",
"corcs",
"coracsub"
}
ref_low = {
--arm
"armaap",
"armalab",
"armap",
"armadvsol",
"armavp",
"armarad",
"armalab",
"armbrtha",
"armckfus",
"armclaw",
"armestor",
"armfmkr",
"armfus",
"armlab",
"armjam",
"armmakr",
"armmex",
"armmoho",
"armnanotc",
"armrad",
"armsolar",
"armtide",
"armvp",
"armwin",
"aafus",
"amgeo",
"armuwfus",
"armeyes",
"armason",
"armasy",
"armch",
"armhp",
"armmmkr",
"armsy",
"armgeo",
"armuwadves",
"armshltx",
"armuwmex",
"armuwmme",
"armuwmmm",
"cmgeo",
"asubpen",
--core
"coraap",
"coralab",
"corap",
"coradvsol",
"coravp",
"corarad",
"coralab",
"corbrtha",
"corckfus",
"corclaw",
"corestor",
"corfmkr",
"corfus",
"corlab",
"corjam",
"cormakr",
"cormex",
"cormoho",
"cornanotc",
"corrad",
"corsolar",
"cortide",
"corvp",
"corwin",
"aafus",
"amgeo",
"coruwfus",
"coreyes",
"corason",
"corasy",
"corch",
"corhp",
"cormmkr",
"corsy",
"corgeo",
"coruwadves",
"corshltx",
"coruwmex",
"coruwmme",
"coruwmmm",
"cmgeo",
"asubpen",
"armhp",
"armllt",
"armhlt",
"armjamt",
"corhp",
"corllt",
"corhlt",
"corjamt"
}
Spring.Echo("Namelist init done.")
end