-- Cage.levelgen registeredPlayers = {} function registerShip(ship) local info = ship:getPlayerInfo() alreadyRegistired = false for index, value in ipairs(registeredPlayers) do if(value == info) then alreadyRegistired = true break end end local playerName = info:getName() -- If not already registered, register! if alreadyRegistired == false then logprint("registering "..playerName) table.insert(registeredPlayers, info) end end function determineVictim() if #registeredPlayers == 0 then return end local randomIndex = math.random(1, #registeredPlayers) local playerInfo = registeredPlayers[randomIndex] if playerInfo == nil then table.remove(registeredPlayers, randomIndex) return end local ship = playerInfo:getShip() local playerName = playerInfo:getName() if ship == nil then logprint(playerName.." lucked out") return end ship:setVel(point.new(0, 0)) if(#registeredPlayers > 0) then Timer:scheduleOnce(determineVictim, math.random(160)) ---Change this number to increase or decrease lag end end function searchAndRemoveFromTable(someTable, valueObject) local localIndexToRemove = -1 for i, v in ipairs(someTable) do if(v == valueObject) then localIndexToRemove = i break end end if localIndexToRemove ~= -1 then table.remove(someTable, localIndexToRemove) end end function onShipEnteredZone(ship, zone, zoneType, zoneId) if(zoneId == 1) then table.insert(registeredPlayers, ship:getPlayerInfo()) Timer:scheduleOnce(determineVictim, math.random(160)) --time before the ships start getting hit end end function onShipLeftZone(ship, zone, zoneType, zoneId) searchAndRemoveFromTable(registeredPlayers, ship:getPlayerInfo()) end function onTick() end -----------------------------------------------------------//Main function main() subscribe(Event.ShipEnteredZone) subscribe(Event.ShipLeftZone) subscribe(Event.Tick) end