share/hedgewars/Data/Scripts/Tracker.lua
changeset 14231 74bf2d906097
parent 14230 8edbdd3a1fe7
equal deleted inserted replaced
14230:8edbdd3a1fe7 14231:74bf2d906097
    30             table.remove(gears, k)
    30             table.remove(gears, k)
    31             break
    31             break
    32         end
    32         end
    33     end
    33     end
    34     if trackingTeams and GetGearType(gear) == gtHedgehog then
    34     if trackingTeams and GetGearType(gear) == gtHedgehog then
    35     	hogs = teams[GetHogTeamName(gear)]
    35         local hogs = teams[GetHogTeamName(gear)]
    36         if hogs ~= nil then
       
    37             if #hogs == 1 then
       
    38                 hogs = nil
       
    39             else
       
    40 				for k, hog in ipairs(hogs) do
       
    41                     if hog == gear then
       
    42                         table.remove(hogs, k)
       
    43                         break
       
    44                     end
       
    45                 end
       
    46             end
       
    47         end
       
    48     elseif resurrecting and GetGearType(gear) == gtResurrector then
       
    49         for k, gear in ipairs(resurrectedHogs) do
       
    50             team = GetHogTeamName(gear)
       
    51             if teams[team] == nil then
       
    52                 teams[team] = {}
       
    53             end
       
    54             table.insert(teams[team], gear)
       
    55         end
       
    56         resurrecting = false
       
    57         resurrectedHogs = {}
       
    58     end
       
    59 end
       
    60 
       
    61 -- Start to keep track of teams
       
    62 function trackTeams()
       
    63     if not trackingTeams then
       
    64         trackingTeams = true
       
    65         for k, gear in ipairs(gears) do
       
    66             if GetGearType(gear) == gtHedgehog then
       
    67                 team = GetHogTeamName(gear)
       
    68                 if teams[team] == nil then
       
    69                     teams[team] = { gear }
       
    70                     clans[team] = GetHogClan(gear)
       
    71                 else
       
    72                     table.insert(teams[team], gear)
       
    73                 end
       
    74             end
       
    75         end
       
    76     end
       
    77 end
       
    78 
       
    79 -- Registers when a hog is hidden
       
    80 function trackHiding(gear)
       
    81     for k, g in ipairs(gears) do
       
    82         if g == gear then
       
    83             table.remove(gears, k)
       
    84             break
       
    85         end
       
    86     end
       
    87 	
       
    88     if trackingTeams then
       
    89     	hogs = teams[GetHogTeamName(gear)]
       
    90     	
       
    91         if hogs ~= nil then
    36         if hogs ~= nil then
    92             if #hogs == 1 then
    37             if #hogs == 1 then
    93                 hogs = nil
    38                 hogs = nil
    94             else
    39             else
    95                 for k, hog in ipairs(hogs) do
    40                 for k, hog in ipairs(hogs) do
    98                         break
    43                         break
    99                     end
    44                     end
   100                 end
    45                 end
   101             end
    46             end
   102         end
    47         end
       
    48     elseif resurrecting and GetGearType(gear) == gtResurrector then
       
    49         for k, gear in ipairs(resurrectedHogs) do
       
    50             local team = GetHogTeamName(gear)
       
    51             if teams[team] == nil then
       
    52                 teams[team] = {}
       
    53             end
       
    54             table.insert(teams[team], gear)
       
    55         end
       
    56         resurrecting = false
       
    57         resurrectedHogs = {}
       
    58     end
       
    59 end
       
    60 
       
    61 -- Start to keep track of teams
       
    62 function trackTeams()
       
    63     if not trackingTeams then
       
    64         trackingTeams = true
       
    65         for k, gear in ipairs(gears) do
       
    66             if GetGearType(gear) == gtHedgehog then
       
    67                 local team = GetHogTeamName(gear)
       
    68                 if teams[team] == nil then
       
    69                     teams[team] = { gear }
       
    70                     clans[team] = GetHogClan(gear)
       
    71                 else
       
    72                     table.insert(teams[team], gear)
       
    73                 end
       
    74             end
       
    75         end
       
    76     end
       
    77 end
       
    78 
       
    79 -- Registers when a hog is hidden
       
    80 function trackHiding(gear)
       
    81     for k, g in ipairs(gears) do
       
    82         if g == gear then
       
    83             table.remove(gears, k)
       
    84             break
       
    85         end
       
    86     end
       
    87 
       
    88     if trackingTeams then
       
    89         local hogs = teams[GetHogTeamName(gear)]
       
    90 
       
    91         if hogs ~= nil then
       
    92             if #hogs == 1 then
       
    93                 hogs = nil
       
    94             else
       
    95                 for k, hog in ipairs(hogs) do
       
    96                     if hog == gear then
       
    97                         table.remove(hogs, k)
       
    98                         break
       
    99                     end
       
   100                 end
       
   101             end
       
   102         end
   103     end
   103     end
   104 end
   104 end
   105 
   105 
   106 -- Registers when a hog is restored
   106 -- Registers when a hog is restored
   107 function trackRestoring(gear)
   107 function trackRestoring(gear)
   108 	table.insert(gears, gear)
   108     table.insert(gears, gear)
   109 
   109 
   110     if trackingTeams then
   110     if trackingTeams then
   111         team = GetHogTeamName(gear)
   111         local team = GetHogTeamName(gear)
   112         if teams[team] == nil then
   112         if teams[team] == nil then
   113             teams[team] = {}
   113             teams[team] = {}
   114         end
   114         end
   115         table.insert(teams[team], gear)
   115         table.insert(teams[team], gear)
   116     end
   116     end
   124     return nil
   124     return nil
   125 end
   125 end
   126 
   126 
   127 -- Set a value for a specific gear
   127 -- Set a value for a specific gear
   128 function setGearValue(gear, key, value)
   128 function setGearValue(gear, key, value)
   129     found = false
   129     local found = false
   130     for id, values in pairs(gearValues) do
   130     for id, values in pairs(gearValues) do
   131         if id == gear then
   131         if id == gear then
   132             values[key] = value
   132             values[key] = value
   133             found = true
   133             found = true
   134         end
   134         end
   164     return nil
   164     return nil
   165 end
   165 end
   166 
   166 
   167 -- Set a value for a specific team
   167 -- Set a value for a specific team
   168 function setTeamValue(team, key, value)
   168 function setTeamValue(team, key, value)
   169     found = false
   169     local found = false
   170     for name, values in pairs(teamValues) do
   170     for name, values in pairs(teamValues) do
   171         if name == team then
   171         if name == team then
   172             values[key] = value
   172             values[key] = value
   173             found = true
   173             found = true
   174         end
   174         end
   204     return nil
   204     return nil
   205 end
   205 end
   206 
   206 
   207 -- Set a value for a specific clan
   207 -- Set a value for a specific clan
   208 function setClanValue(clan, key, value)
   208 function setClanValue(clan, key, value)
   209     found = false
   209     local found = false
   210     for num, values in ipairs(clanValues) do
   210     for num, values in ipairs(clanValues) do
   211         if num == clan then
   211         if num == clan then
   212             values[key] = value
   212             values[key] = value
   213             found = true
   213             found = true
   214         end
   214         end