-- Chapter 28 example: a list of objects, each acting on its own data. local Critter = {} Critter.__index = Critter function Critter.new(name, energy) return setmetatable({ name = name, energy = energy }, Critter) end function Critter:play() self.energy = self.energy - 1 print(self.name .. " plays. Energy: " .. self.energy) end local critters = { Critter.new("Spark", 3), Critter.new("Bolt", 2), Critter.new("Nova", 1), } for _, c in ipairs(critters) do c:play() end -- Try: add a second loop below that makes each critter play again.