diff --git a/gamedata/assets/crate/broke.png b/gamedata/assets/crate/broke.png new file mode 100644 index 0000000..0e47239 Binary files /dev/null and b/gamedata/assets/crate/broke.png differ diff --git a/gamedata/assets/crate/crate.png b/gamedata/assets/crate/crate.png new file mode 100644 index 0000000..aa63dd0 Binary files /dev/null and b/gamedata/assets/crate/crate.png differ diff --git a/gamedata/maps/TulipFields/map.json b/gamedata/maps/TulipFields/map.json index c61aad5..abe5fb3 100644 --- a/gamedata/maps/TulipFields/map.json +++ b/gamedata/maps/TulipFields/map.json @@ -2480,7 +2480,11 @@ {"x": 496, "y": 160}, {"x": 576, "y": 160} ] - } + }, + {"name": "Crate", "id": 4, "_eid": "16023910", "x": 832, "y": 240, "originX": 0, "originY": 0}, + {"name": "Crate", "id": 6, "_eid": "16023910", "x": 896, "y": 240, "originX": 0, "originY": 0}, + {"name": "Crate", "id": 7, "_eid": "16023910", "x": 864, "y": 240, "originX": 0, "originY": 0}, + {"name": "Crate", "id": 8, "_eid": "16023910", "x": 672, "y": 144, "originX": 0, "originY": 0} ] } ] diff --git a/gamedata/objects/combat/ennemies/crate.py b/gamedata/objects/combat/ennemies/crate.py new file mode 100644 index 0000000..67622ec --- /dev/null +++ b/gamedata/objects/combat/ennemies/crate.py @@ -0,0 +1,19 @@ +from gamedata.objects.combat.ennemies.ennemy import Ennemy + +class Crate(Ennemy): + + def __init__(self,x,y,game,nodes=None): + + super().__init__(x,y,game,nodes) + + self.sprite = game.sprite_lib["crate/crate.png"] + self.deadsprite = game.sprite_lib["crate/broke.png"] + + self.rect[2],self.rect[3] = self.sprite.get_size() + + def step(self): + super().step() + + def draw(self): + if not self.dead: + self.game.window.blit(self.sprite,[self.rect[0]-self.game.globals["camerax"],self.rect[1]-self.game.globals["cameray"]]) diff --git a/gamedata/objects/combat/ennemies/ennemy.py b/gamedata/objects/combat/ennemies/ennemy.py index e585fe7..9a6f3d4 100644 --- a/gamedata/objects/combat/ennemies/ennemy.py +++ b/gamedata/objects/combat/ennemies/ennemy.py @@ -13,6 +13,9 @@ class Ennemy(Movable): self.respawn = True self.dead = False + self.particleoffsetx = 0 + self.particleoffsety = 0 + self.dustparticles = game.getSpriteDir("particles/dust/") def step(self): @@ -28,8 +31,8 @@ class Ennemy(Movable): # Die self.dead = True # Add particles - self.game.addParticle(self.dustparticles,self.rect.center[0],self.rect.center[1]) # Dust - self.game.addParticle([self.deadsprite],self.rect.center[0],self.rect.center[1],fps=0.6,vely=-1.5,modvely=0.15) # Die sprite + self.game.addParticle(self.dustparticles,self.rect.center[0]+self.particleoffsetx,self.rect.center[1]+self.particleoffsety) # Dust + self.game.addParticle([self.deadsprite],self.rect.center[0]+self.particleoffsetx,self.rect.center[1]+self.particleoffsety,fps=0.6,vely=-1.5,modvely=0.15) # Die sprite # Boost the player vertically if not self.player.fastfall: if self.player.rect[1]>self.rect[1]: diff --git a/gamedata/objects/combat/tileset.py b/gamedata/objects/combat/tileset.py index d56d0be..ec632a0 100644 --- a/gamedata/objects/combat/tileset.py +++ b/gamedata/objects/combat/tileset.py @@ -1,5 +1,6 @@ from gamedata.objects.base import BaseObject from gamedata.objects.combat.ennemies.robot import Robot +from gamedata.objects.combat.ennemies.crate import Crate class TilesetRenderer(BaseObject): @@ -37,7 +38,7 @@ class TilesetRenderer(BaseObject): self.layers = [] self.spawns = [] spawnlists = {"Spawns":self.spawns} - ennemies = {"Robot":Robot} + ennemies = {"Robot":Robot,"Crate":Crate} self.queue = [] # For spawning ennemies after beeing initialized if "layers" in json.keys() and type(json["layers"]).__name__=="list": solidlayer = False