diff --git a/gamedata/assets/lemmings/monster/Left/0.png b/gamedata/assets/lemmings/monster/Left/0.png new file mode 100644 index 0000000..5f1978a Binary files /dev/null and b/gamedata/assets/lemmings/monster/Left/0.png differ diff --git a/gamedata/assets/lemmings/monster/Left/1.png b/gamedata/assets/lemmings/monster/Left/1.png new file mode 100644 index 0000000..6b56ca1 Binary files /dev/null and b/gamedata/assets/lemmings/monster/Left/1.png differ diff --git a/gamedata/assets/lemmings/monster/Left/2.png b/gamedata/assets/lemmings/monster/Left/2.png new file mode 100644 index 0000000..6b8d2d4 Binary files /dev/null and b/gamedata/assets/lemmings/monster/Left/2.png differ diff --git a/gamedata/assets/lemmings/monster/Left/3.png b/gamedata/assets/lemmings/monster/Left/3.png new file mode 100644 index 0000000..2aa95e5 Binary files /dev/null and b/gamedata/assets/lemmings/monster/Left/3.png differ diff --git a/gamedata/assets/lemmings/monster/Right/0.png b/gamedata/assets/lemmings/monster/Right/0.png new file mode 100644 index 0000000..8a685f1 Binary files /dev/null and b/gamedata/assets/lemmings/monster/Right/0.png differ diff --git a/gamedata/assets/lemmings/monster/Right/1.png b/gamedata/assets/lemmings/monster/Right/1.png new file mode 100644 index 0000000..b9644b9 Binary files /dev/null and b/gamedata/assets/lemmings/monster/Right/1.png differ diff --git a/gamedata/assets/lemmings/monster/Right/2.png b/gamedata/assets/lemmings/monster/Right/2.png new file mode 100644 index 0000000..adfd0f0 Binary files /dev/null and b/gamedata/assets/lemmings/monster/Right/2.png differ diff --git a/gamedata/assets/lemmings/monster/Right/3.png b/gamedata/assets/lemmings/monster/Right/3.png new file mode 100644 index 0000000..7f2e276 Binary files /dev/null and b/gamedata/assets/lemmings/monster/Right/3.png differ diff --git a/gamedata/assets/lemmings/monster/falling.png b/gamedata/assets/lemmings/monster/falling.png new file mode 100644 index 0000000..1556c0e Binary files /dev/null and b/gamedata/assets/lemmings/monster/falling.png differ diff --git a/gamedata/assets/lemmings/platinum/Left/0.png b/gamedata/assets/lemmings/platinum/Left/0.png new file mode 100644 index 0000000..b90650b Binary files /dev/null and b/gamedata/assets/lemmings/platinum/Left/0.png differ diff --git a/gamedata/assets/lemmings/platinum/Left/1.png b/gamedata/assets/lemmings/platinum/Left/1.png new file mode 100644 index 0000000..e253eb5 Binary files /dev/null and b/gamedata/assets/lemmings/platinum/Left/1.png differ diff --git a/gamedata/assets/lemmings/platinum/Left/2.png b/gamedata/assets/lemmings/platinum/Left/2.png new file mode 100644 index 0000000..6a06055 Binary files /dev/null and b/gamedata/assets/lemmings/platinum/Left/2.png differ diff --git a/gamedata/assets/lemmings/platinum/Left/3.png b/gamedata/assets/lemmings/platinum/Left/3.png new file mode 100644 index 0000000..e3f751a Binary files /dev/null and b/gamedata/assets/lemmings/platinum/Left/3.png differ diff --git a/gamedata/assets/lemmings/platinum/Right/0.png b/gamedata/assets/lemmings/platinum/Right/0.png new file mode 100644 index 0000000..1b915b1 Binary files /dev/null and b/gamedata/assets/lemmings/platinum/Right/0.png differ diff --git a/gamedata/assets/lemmings/platinum/Right/1.png b/gamedata/assets/lemmings/platinum/Right/1.png new file mode 100644 index 0000000..3b3c0b7 Binary files /dev/null and b/gamedata/assets/lemmings/platinum/Right/1.png differ diff --git a/gamedata/assets/lemmings/platinum/Right/2.png b/gamedata/assets/lemmings/platinum/Right/2.png new file mode 100644 index 0000000..bf45ddb Binary files /dev/null and b/gamedata/assets/lemmings/platinum/Right/2.png differ diff --git a/gamedata/assets/lemmings/platinum/Right/3.png b/gamedata/assets/lemmings/platinum/Right/3.png new file mode 100644 index 0000000..10d4ea0 Binary files /dev/null and b/gamedata/assets/lemmings/platinum/Right/3.png differ diff --git a/gamedata/assets/lemmings/platinum/falling.png b/gamedata/assets/lemmings/platinum/falling.png new file mode 100644 index 0000000..5a9543e Binary files /dev/null and b/gamedata/assets/lemmings/platinum/falling.png differ diff --git a/gamedata/definitions.py b/gamedata/definitions.py index d1291dd..6af63d7 100644 --- a/gamedata/definitions.py +++ b/gamedata/definitions.py @@ -136,6 +136,10 @@ def getunlocks(highscore): unlocks["normal"].append("green") if highscore>=250: unlocks["normal"].append("blue") - if highscore>=500: + if highscore>=400: unlocks["specials"].append("gold") + if highscore>=500: + unlocks["specials"].append("monster") + if highscore>=750: + unlocks["specials"].append("platinum") return unlocks diff --git a/gamedata/game.py b/gamedata/game.py index 99315d0..622c0a6 100644 --- a/gamedata/game.py +++ b/gamedata/game.py @@ -58,6 +58,7 @@ class Game(): self.globals["scameray"] = 0 self.globals["debug"] = False self.globals["highscore"] = highscore + self.globals["pause"] = False self.scaleCamera() self.globals["bgmvolume"] = bgm diff --git a/gamedata/objects/base.py b/gamedata/objects/base.py index 40c79bf..e4b8de9 100644 --- a/gamedata/objects/base.py +++ b/gamedata/objects/base.py @@ -7,6 +7,7 @@ class BaseObject(): self.game = game self.sprite = game.sprite_lib["icon.png"] self.spriteoffset = 0,0 + self.handlepause = False self.depth = 1 # Sa "profondeur", déterminera l'odre d'affichage des objets def step(self): diff --git a/gamedata/objects/gameloop.py b/gamedata/objects/gameloop.py index 211e70a..cf24e03 100644 --- a/gamedata/objects/gameloop.py +++ b/gamedata/objects/gameloop.py @@ -40,7 +40,8 @@ class GameLoop(): objs = list(self.objects.values()) for i in objs: - i.step() + if i.handlepause and not game.globals["pause"] or not i.handlepause: + i.step() def draw(self,game): #Je secoue ma caméra diff --git a/gamedata/objects/ingame/clouds.py b/gamedata/objects/ingame/clouds.py index 2ebfb9e..811ce03 100644 --- a/gamedata/objects/ingame/clouds.py +++ b/gamedata/objects/ingame/clouds.py @@ -11,6 +11,8 @@ class Clouds(BaseObject): self.depth = -2 self.horoffset = 0 + self.handlepause = True + def step(self): self.horoffset+=self.game.dt*self.speed diff --git a/gamedata/objects/ingame/lemmings.py b/gamedata/objects/ingame/lemmings.py index 67749f5..df0f9e5 100644 --- a/gamedata/objects/ingame/lemmings.py +++ b/gamedata/objects/ingame/lemmings.py @@ -13,10 +13,15 @@ class Lemming(BaseObject): self.normalspeed = self.basespeed # Speed "objective" self.speed = 0 # Current speed, leaning towards objective speed - self.scoreratio = 0.2 + self.handlepause = True + + self.scoreratio = 0.3 if skin=="gold": self.basespeed*=1.2 self.scoreratio*=3 + if skin=="platinum": + self.basespeed*=1.3 + self.scoreratio*=5 self.skin = skin diff --git a/gamedata/objects/ingame/manager.py b/gamedata/objects/ingame/manager.py index 63d35ae..baaf84d 100644 --- a/gamedata/objects/ingame/manager.py +++ b/gamedata/objects/ingame/manager.py @@ -52,8 +52,12 @@ class Manager(BaseObject): lemmings = self.game.gameloop.findname("Lemming") nblemmings = len(lemmings) + len(self.game.gameloop.findname("Spawner")) # Updating score - for lemming in lemmings: - self.score+=lemming.scoreratio*self.game.dt + if not self.game.globals["pause"]: + for lemming in lemmings: + self.score+=lemming.scoreratio*self.game.dt + # Pausing the game + if self.game.inputs["keys"]["escape"]["timer"]==1: + self.game.globals["pause"] = not self.game.globals["pause"] # Spawning more lemmings if (self.lives>0 and nblemmings>0): if self.spawntimer.tick(self.game.dt): @@ -65,6 +69,7 @@ class Manager(BaseObject): if self.endtimer.tick(self.game.dt): self.game.globals["score"] = int(self.score) self.game.scene = self.game.scenes.gameover + self.game.globals["pause"] = False if self.invincible: if self.deathtimer.tick(self.game.dt): @@ -105,9 +110,8 @@ class Manager(BaseObject): self.game.realwindow.blit(txtsurfacelives,[20,20*2+txtsurfacescore.get_height()]) self.endrect.set_alpha((1-self.endtimer.getratio())*255) + if self.game.globals["pause"]: + self.endrect.set_alpha(100) if self.endtimer.getloops()>=1: self.endrect.set_alpha(255) self.game.realwindow.blit(self.endrect,[0,0]) - - - diff --git a/gamedata/objects/ingame/skies.py b/gamedata/objects/ingame/skies.py index cb6a69a..ecb21b6 100644 --- a/gamedata/objects/ingame/skies.py +++ b/gamedata/objects/ingame/skies.py @@ -21,6 +21,8 @@ class Skies(BaseObject): self.blackrectalpha = 0.5 + self.handlepause = True + def step(self): self.timeelapsed+=self.game.dt diff --git a/gamedata/objects/ingame/spawner.py b/gamedata/objects/ingame/spawner.py index dda041e..288c4bd 100644 --- a/gamedata/objects/ingame/spawner.py +++ b/gamedata/objects/ingame/spawner.py @@ -12,6 +12,8 @@ class Spawner(BaseObject): self.distance = game.DISPLAY_HEIGHT self.timer = game.lib.Timer(2.5+random.random()) # Seconds of telegraph before spawning the lemming + self.handlepause = True + # Skin choosing self.skin = random.choice(skins["normal"]) if random.randint(1,10)==1: # 1/10 chance to have a special