From 498e754f7725cbf8e19d60a03b1d7b30fdae823e Mon Sep 17 00:00:00 2001 From: Aki Date: Tue, 14 Jun 2016 12:14:41 +0200 Subject: onNautKill and game restart --- world.lua | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) (limited to 'world.lua') diff --git a/world.lua b/world.lua index db0526c..cec9f52 100644 --- a/world.lua +++ b/world.lua @@ -24,7 +24,9 @@ World = { clouds_delay = 5, clouds_initial = nil, -- Map - map = nil + map = nil, + -- Gameplay status + lastNaut = false } -- Constructor of `World` ZA WARUDO! @@ -160,6 +162,42 @@ function World:createEffect(name, x, y) table.insert(self.Effects, Effect:new(name, x, y)) end +-- get Nauts functions +function World:getNautsPlayable() + local nauts = {} + for _,naut in pairs(self.Nauts) do + if naut.lives > -1 then + table.insert(nauts, naut) + end + end + return nauts +end + +function World:getNautsAlive() + local nauts = {} + for _,naut in self.Nauts do + if naut.alive then + table.insert(nauts, naut) + end + end + return nauts +end + +-- Event: when player is killed +function World:onNautKilled(naut) + self.camera:startShake() + local nauts = self:getNautsPlayable() + if self.lastNaut then + local m = Menu:new() + for _,controller in pairs(Controllers) do + m:assignController(controller) + end + changeScene(m) + elseif #nauts < 2 then + self.lastNaut = true + end +end + -- Update ZU WARUDO function World:update(dt) -- Physical world -- cgit v1.1