PinmikPanik/gamedata/objects/ingame/manager.py

51 lines
1.7 KiB
Python
Raw Normal View History

2021-09-11 14:33:20 +02:00
from gamedata.objects.base import BaseObject
2021-09-13 10:34:34 +02:00
from gamedata.objects.ingame.spawner import Spawner
2021-09-11 15:12:53 +02:00
from gamedata.objects.ingame.tiles import Tiles
2021-09-11 14:33:20 +02:00
class Manager(BaseObject):
def __init__(self,game):
super().__init__(0,0,game)
self.score = 0
2021-09-11 15:12:53 +02:00
self.lives = 5
self.basetime = 10
self.steptime = 2
2021-09-13 10:46:09 +02:00
self.speedmargin = 6
self.stepmargin = 0.4
2021-09-11 15:12:53 +02:00
self.spawntimer = game.lib.Timer(self.basetime) # Time elapsing each lemming spawn
2021-09-13 11:14:58 +02:00
self.deathtimer = game.lib.Timer(1) # Time betwin each life loss
self.invincible = False
2021-09-11 15:12:53 +02:00
self.scoreratio = 0.4 # Points earned per seconds and per lemming
# Summon the tiles
self.tiles = Tiles(50,50,game)
game.gameloop.summon(self.tiles)
2021-09-11 14:33:20 +02:00
2021-09-13 10:34:34 +02:00
# Spawn the first one
self.game.gameloop.summon(Spawner(self.game,self.tiles))
2021-09-11 14:33:20 +02:00
def step(self):
2021-09-13 11:14:58 +02:00
nblemmings = len(self.game.gameloop.findname("Lemming"))
# Updating score
for i in range(nblemmings):
2021-09-11 14:33:20 +02:00
self.score+=self.scoreratio*self.game.dt
2021-09-13 11:14:58 +02:00
# Spawning more lemmings
if self.lives>0 and nblemmings>0 and self.spawntimer.tick(self.game.dt):
2021-09-13 10:46:09 +02:00
self.game.gameloop.summon(Spawner(self.game,self.tiles,speedmargin=int(self.speedmargin+0.5)))
2021-09-11 15:12:53 +02:00
self.basetime+=self.steptime
self.spawntimer = self.game.lib.Timer(self.basetime)
2021-09-13 10:46:09 +02:00
self.speedmargin+=self.stepmargin
2021-09-11 14:33:20 +02:00
2021-09-13 11:14:58 +02:00
if self.invincible:
if self.deathtimer.tick(self.game.dt):
self.invincible = False
print(self.lives)
def death(self):
if not self.invincible:
self.lives-=1
self.invincible = True
2021-09-11 14:33:20 +02:00
def draw(self):
pass