From 030c4be957802c4b2b7344fda0993ff5f434c075 Mon Sep 17 00:00:00 2001 From: "theo@manjaro" Date: Wed, 17 Nov 2021 16:14:29 +0100 Subject: [PATCH] Added crates --- gamedata/assets/crate/broke.png | Bin 0 -> 726 bytes gamedata/assets/crate/crate.png | Bin 0 -> 735 bytes gamedata/maps/TulipFields/map.json | 6 +++++- gamedata/objects/combat/ennemies/crate.py | 19 +++++++++++++++++++ gamedata/objects/combat/ennemies/ennemy.py | 7 +++++-- gamedata/objects/combat/tileset.py | 3 ++- 6 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 gamedata/assets/crate/broke.png create mode 100644 gamedata/assets/crate/crate.png create mode 100644 gamedata/objects/combat/ennemies/crate.py diff --git a/gamedata/assets/crate/broke.png b/gamedata/assets/crate/broke.png new file mode 100644 index 0000000000000000000000000000000000000000..0e47239614d1b813e24380b1762613331a06b16a GIT binary patch literal 726 zcmV;{0xA88P)EX>4Tx04R}tkv&MmKpe$iQ>CI65j%)DWT;LSq>4Cd6^c+H)C#RSm|XfHG-*gu zTpR`0f`cE6RRFEMr!ZQt%yL_XzOyF2=L`&;2=i)x5=kfJi*U4AUlFC!X50 z4bJ<-5mu5_;&b9LlP*a7$aTfzH_kL;k>@Q#C4j(NMZqtkRU=q6&onSMvPXS6botEPx$zUT)#vvg;V+0880*#vEd>=bb;{*sk16O*>U#SDrpQP7X zTJ#9$+XgPKTbi;5TVGd000McNlirueSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{006E@L_t(I%VS`m5HP|Rc8ccz(IpSvKgmc)js;n8W|bS9 zo!+*KffzX^m<`AZ4xc!U;Z$U?nN@CZS21BzxMbgZxD#Q{U9#^zR)d+aX~qSx8G;c= z$TnjGq^KPtfRR}L5%jyAqWS-?Z+HFw`gYg<>$7YBBWtizH2;5nb}d{USq>v1UBCDn zXF|Gu@i#_7LP^Sx)*WUzha)XO#3nOv-!;Xb4)DbEX>4Tx04R}tkv&MmKpe$iQ>CI65j%)DWT;LSq>4Cd6^c+H)C#RSm|XfHG-*gu zTpR`0f`cE6RRFEMr!ZQt%yL_XzOyF2=L`&;2=i)x5=kfJi*U4AUlFC!X50 z4bJ<-5mu5_;&b9LlP*a7$aTfzH_kL;k>@Q#C4j(NMZqtkRU=q6&onSMvPXS6botEPx$zUT)#vvg;V+0880*#vEd>=bb;{*sk16O*>U#SDrpQP7X zTJ#9$+XgPKTbi;5TVGd000McNlirueSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{006g1L_t(I%VV@tH2=>)0bpTZU|^V8<%S_47i5dVf3)r} zhMM%YT?|YN6au&bhfkbFp-DEt*1{BpW?*1oxPI|B@dluSN9ztVaNj*a&>$8Dc;n7_@VSp|98bNJ^fpa*LI3uOm830cpLk7Up R-=F{h002ovPDHLkV1nReF7^Nb literal 0 HcmV?d00001 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