diff --git a/gamedata/assets/lemmings/Left/0.png b/gamedata/assets/lemmings/base/Left/0.png similarity index 100% rename from gamedata/assets/lemmings/Left/0.png rename to gamedata/assets/lemmings/base/Left/0.png diff --git a/gamedata/assets/lemmings/Left/1.png b/gamedata/assets/lemmings/base/Left/1.png similarity index 100% rename from gamedata/assets/lemmings/Left/1.png rename to gamedata/assets/lemmings/base/Left/1.png diff --git a/gamedata/assets/lemmings/Left/2.png b/gamedata/assets/lemmings/base/Left/2.png similarity index 100% rename from gamedata/assets/lemmings/Left/2.png rename to gamedata/assets/lemmings/base/Left/2.png diff --git a/gamedata/assets/lemmings/Left/3.png b/gamedata/assets/lemmings/base/Left/3.png similarity index 100% rename from gamedata/assets/lemmings/Left/3.png rename to gamedata/assets/lemmings/base/Left/3.png diff --git a/gamedata/assets/lemmings/Right/0.png b/gamedata/assets/lemmings/base/Right/0.png similarity index 100% rename from gamedata/assets/lemmings/Right/0.png rename to gamedata/assets/lemmings/base/Right/0.png diff --git a/gamedata/assets/lemmings/Right/1.png b/gamedata/assets/lemmings/base/Right/1.png similarity index 100% rename from gamedata/assets/lemmings/Right/1.png rename to gamedata/assets/lemmings/base/Right/1.png diff --git a/gamedata/assets/lemmings/Right/2.png b/gamedata/assets/lemmings/base/Right/2.png similarity index 100% rename from gamedata/assets/lemmings/Right/2.png rename to gamedata/assets/lemmings/base/Right/2.png diff --git a/gamedata/assets/lemmings/Right/3.png b/gamedata/assets/lemmings/base/Right/3.png similarity index 100% rename from gamedata/assets/lemmings/Right/3.png rename to gamedata/assets/lemmings/base/Right/3.png diff --git a/gamedata/assets/lemmings/falling.png b/gamedata/assets/lemmings/base/falling.png similarity index 100% rename from gamedata/assets/lemmings/falling.png rename to gamedata/assets/lemmings/base/falling.png diff --git a/gamedata/assets/lemmings/green/Left/0.png b/gamedata/assets/lemmings/green/Left/0.png new file mode 100644 index 0000000..6277860 Binary files /dev/null and b/gamedata/assets/lemmings/green/Left/0.png differ diff --git a/gamedata/assets/lemmings/green/Left/1.png b/gamedata/assets/lemmings/green/Left/1.png new file mode 100644 index 0000000..f9c5473 Binary files /dev/null and b/gamedata/assets/lemmings/green/Left/1.png differ diff --git a/gamedata/assets/lemmings/green/Left/2.png b/gamedata/assets/lemmings/green/Left/2.png new file mode 100644 index 0000000..f70e529 Binary files /dev/null and b/gamedata/assets/lemmings/green/Left/2.png differ diff --git a/gamedata/assets/lemmings/green/Left/3.png b/gamedata/assets/lemmings/green/Left/3.png new file mode 100644 index 0000000..7451342 Binary files /dev/null and b/gamedata/assets/lemmings/green/Left/3.png differ diff --git a/gamedata/assets/lemmings/green/Right/0.png b/gamedata/assets/lemmings/green/Right/0.png new file mode 100644 index 0000000..c95efcd Binary files /dev/null and b/gamedata/assets/lemmings/green/Right/0.png differ diff --git a/gamedata/assets/lemmings/green/Right/1.png b/gamedata/assets/lemmings/green/Right/1.png new file mode 100644 index 0000000..ef7ae1a Binary files /dev/null and b/gamedata/assets/lemmings/green/Right/1.png differ diff --git a/gamedata/assets/lemmings/green/Right/2.png b/gamedata/assets/lemmings/green/Right/2.png new file mode 100644 index 0000000..a7dc5a0 Binary files /dev/null and b/gamedata/assets/lemmings/green/Right/2.png differ diff --git a/gamedata/assets/lemmings/green/Right/3.png b/gamedata/assets/lemmings/green/Right/3.png new file mode 100644 index 0000000..d100cb9 Binary files /dev/null and b/gamedata/assets/lemmings/green/Right/3.png differ diff --git a/gamedata/assets/lemmings/green/falling.png b/gamedata/assets/lemmings/green/falling.png new file mode 100644 index 0000000..ea42080 Binary files /dev/null and b/gamedata/assets/lemmings/green/falling.png differ diff --git a/gamedata/objects/fallingpinmik.py b/gamedata/objects/fallingpinmik.py index a5d5c3a..8d6101b 100644 --- a/gamedata/objects/fallingpinmik.py +++ b/gamedata/objects/fallingpinmik.py @@ -3,7 +3,7 @@ import random class FallingPinmik(BaseObject): - def __init__(self,game): + def __init__(self,game,skins=["base","green"]): x = random.randint(0,game.DISPLAY_WIDTH) y = -30 @@ -12,7 +12,7 @@ class FallingPinmik(BaseObject): self.cameraratio = random.random()*0.1+0.05 - self.sprite = game.sprite_lib["lemmings/falling.png"] + self.sprite = game.sprite_lib["lemmings/"+random.choice(skins)+"/falling.png"] self.offset = 0 self.speed = 100*(0.30-self.cameraratio)/0.30 diff --git a/gamedata/objects/ingame/lemmings.py b/gamedata/objects/ingame/lemmings.py index 00759e8..6ecc87b 100644 --- a/gamedata/objects/ingame/lemmings.py +++ b/gamedata/objects/ingame/lemmings.py @@ -2,7 +2,7 @@ from gamedata.objects.base import BaseObject import random,math class Lemming(BaseObject): - def __init__(self,x,y,game,speedmargin=5): + def __init__(self,x,y,game,speedmargin=5,skin="base"): super().__init__(x,y,game,w=70,h=70) self.direction = random.randint(0,360) self.holdrect = self.rect.copy() @@ -13,6 +13,8 @@ class Lemming(BaseObject): self.normalspeed = self.basespeed # Speed "objective" self.speed = 0 # Current speed, leaning towards objective speed + self.skin = skin + self.selected = False # If beeing redirected self.anglemargin = 25 @@ -27,7 +29,7 @@ class Lemming(BaseObject): self.orientations = ["Right","Left","Left","Right"] self.sprites = {} for i in self.orientations: - self.sprites[i] = game.getSpriteDir("lemmings/"+i+"/") + self.sprites[i] = game.getSpriteDir("lemmings/"+skin+"/"+i+"/") self.spriteindex = 0 self.animspeed = 0.2 diff --git a/gamedata/objects/ingame/spawner.py b/gamedata/objects/ingame/spawner.py index e398537..a025276 100644 --- a/gamedata/objects/ingame/spawner.py +++ b/gamedata/objects/ingame/spawner.py @@ -4,18 +4,24 @@ from gamedata.objects.ingame.lemmings import Lemming import random class Spawner(BaseObject): - def __init__(self,game,tiles,speedmargin=5): + def __init__(self,game,tiles,speedmargin=5,skins={"normal":["base","green"],"specials":[]}): spawnpoint = random.choice(tiles.spawns) super().__init__(spawnpoint[0],spawnpoint[1],game) self.sprite = game.sprite_lib["lemmings/shadow.png"].copy() self.speedmargin = speedmargin - self.fallsprite = game.sprite_lib["lemmings/falling.png"] self.distance = game.DISPLAY_HEIGHT self.timer = game.lib.Timer(2.5+random.random()) # Seconds of telegraph before spawning the lemming + # Skin choosing + self.skin = random.choice(skins["normal"]) + if random.randint(1,10)==1: # 1/10 chance to have a special + if len(skins["specials"])>0: + self.skin = random.choice(skins["specials"]) + self.fallsprite = game.sprite_lib["lemmings/"+self.skin+"/falling.png"] + def step(self): if self.timer.tick(self.game.dt): - lemming = Lemming(self.rect[0],self.rect[1],self.game,speedmargin=self.speedmargin) + lemming = Lemming(self.rect[0],self.rect[1],self.game,speedmargin=self.speedmargin,skin=self.skin) lemming.move(-lemming.rect[2]/2,-lemming.rect[3]/2) self.game.gameloop.summon(lemming) self.game.gameloop.delid(self.id)