diff --git a/gamedata/assets/balloon/0.png b/gamedata/assets/balloon/0.png new file mode 100644 index 0000000..41e6f34 Binary files /dev/null and b/gamedata/assets/balloon/0.png differ diff --git a/gamedata/assets/balloon/1.png b/gamedata/assets/balloon/1.png new file mode 100644 index 0000000..6b91698 Binary files /dev/null and b/gamedata/assets/balloon/1.png differ diff --git a/gamedata/assets/balloon/2.png b/gamedata/assets/balloon/2.png new file mode 100644 index 0000000..b473734 Binary files /dev/null and b/gamedata/assets/balloon/2.png differ diff --git a/gamedata/assets/balloon/3.png b/gamedata/assets/balloon/3.png new file mode 100644 index 0000000..74218f7 Binary files /dev/null and b/gamedata/assets/balloon/3.png differ diff --git a/gamedata/assets/balloon/broke.png b/gamedata/assets/balloon/broke.png new file mode 100644 index 0000000..4256280 Binary files /dev/null and b/gamedata/assets/balloon/broke.png differ diff --git a/gamedata/maps/TulipFields/map.json b/gamedata/maps/TulipFields/map.json index bff034b..d07b669 100644 --- a/gamedata/maps/TulipFields/map.json +++ b/gamedata/maps/TulipFields/map.json @@ -1061,11 +1061,11 @@ [-1], [-1], [-1], - [-1], - [-1], - [-1], - [-1], - [-1], + [4, 4], + [5, 4], + [6, 4], + [5, 4], + [6, 4], [-1], [-1], [-1], @@ -1121,7 +1121,7 @@ [1, 0], [1, 0], [1, 0], - [1, 0], + [2, 0], [-1], [-1], [7, 5], @@ -1150,11 +1150,11 @@ [-1], [-1], [-1], - [-1], - [-1], - [-1], - [-1], - [-1], + [4, 5], + [5, 5], + [6, 5], + [5, 5], + [6, 5], [-1], [-1], [-1], @@ -1210,7 +1210,7 @@ [1, 1], [1, 1], [1, 1], - [1, 1], + [2, 1], [7, 4], [8, 4], [7, 4], @@ -1226,6 +1226,10 @@ [-1], [-1], [-1], + [5, 4], + [6, 4], + [5, 4], + [6, 4], [-1], [-1], [-1], @@ -1235,15 +1239,11 @@ [-1], [-1], [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], + [4, 5], + [7, 4], + [8, 4], + [7, 4], + [8, 4], [-1], [-1], [-1], @@ -1299,7 +1299,7 @@ [1, 1], [1, 1], [1, 1], - [1, 1], + [2, 1], [7, 5], [8, 5], [7, 5], @@ -1315,6 +1315,10 @@ [-1], [-1], [-1], + [5, 5], + [6, 5], + [5, 5], + [6, 5], [-1], [-1], [-1], @@ -1324,15 +1328,11 @@ [-1], [-1], [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], + [4, 6], + [7, 5], + [8, 5], + [7, 5], + [8, 5], [-1], [-1], [-1], @@ -1388,7 +1388,7 @@ [1, 1], [1, 1], [1, 1], - [1, 1], + [2, 1], [7, 4], [8, 4], [-1], @@ -1402,6 +1402,12 @@ [-1], [-1], [-1], + [0, 0], + [1, 0], + [1, 0], + [2, 0], + [7, 4], + [8, 4], [-1], [-1], [-1], @@ -1411,17 +1417,11 @@ [-1], [-1], [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], + [4, 6], + [7, 4], + [8, 4], + [7, 4], + [8, 4], [-1], [-1], [-1], @@ -1477,7 +1477,7 @@ [1, 1], [1, 1], [1, 1], - [1, 1], + [2, 1], [7, 5], [8, 5], [-1], @@ -1490,6 +1490,15 @@ [-1], [-1], [-1], + [2, 6], + [0, 2], + [5, 0], + [1, 1], + [3, 2], + [1, 0], + [1, 0], + [6, 0], + [8, 0], [-1], [-1], [-1], @@ -1497,20 +1506,11 @@ [-1], [-1], [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], + [4, 6], + [7, 5], + [8, 5], + [7, 5], + [8, 5], [-1], [-1], [-1], @@ -1566,7 +1566,7 @@ [1, 1], [1, 1], [1, 1], - [1, 1], + [2, 1], [-1], [-1], [-1], @@ -1579,6 +1579,15 @@ [-1], [-1], [-1], + [0, 5], + [1, 5], + [0, 1], + [1, 1], + [1, 1], + [6, 0], + [7, 0], + [11, 2], + [8, 1], [-1], [-1], [-1], @@ -1587,19 +1596,10 @@ [-1], [-1], [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], + [7, 4], + [8, 4], + [0, 5], + [1, 5], [-1], [-1], [-1], @@ -1655,7 +1655,7 @@ [1, 1], [1, 1], [1, 1], - [1, 1], + [2, 1], [-1], [-1], [-1], @@ -1668,6 +1668,15 @@ [-1], [-1], [-1], + [0, 6], + [1, 6], + [0, 2], + [6, 0], + [7, 0], + [11, 2], + [7, 1], + [7, 1], + [8, 1], [-1], [-1], [-1], @@ -1676,19 +1685,10 @@ [-1], [-1], [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], + [7, 5], + [8, 5], + [0, 6], + [1, 6], [-1], [-1], [-1], @@ -1744,7 +1744,7 @@ [1, 1], [1, 1], [1, 1], - [1, 1], + [2, 1], [-1], [-1], [-1], @@ -1757,6 +1757,15 @@ [-1], [-1], [-1], + [0, 5], + [1, 5], + [0, 5], + [6, 2], + [11, 0], + [7, 1], + [7, 1], + [7, 1], + [8, 1], [-1], [-1], [-1], @@ -1765,17 +1774,8 @@ [-1], [-1], [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], + [0, 5], + [1, 5], [-1], [-1], [-1], @@ -1846,6 +1846,15 @@ [7, 0], [7, 0], [7, 0], + [8, 0], + [1, 6], + [0, 6], + [0, 2], + [6, 1], + [7, 1], + [7, 1], + [9, 0], + [8, 2], [-1], [-1], [-1], @@ -1854,17 +1863,8 @@ [-1], [-1], [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], + [0, 6], + [1, 6], [-1], [-1], [-1], @@ -1935,14 +1935,14 @@ [7, 1], [7, 1], [7, 1], + [8, 1], [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], + [0, 5], + [1, 5], + [6, 1], + [7, 1], + [7, 1], + [8, 1], [-1], [-1], [-1], @@ -2002,36 +2002,36 @@ [-1], [-1], [-1], + [6, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [8, 1], [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], + [0, 6], + [1, 6], + [6, 1], + [7, 1], + [7, 1], + [8, 1], [-1], [-1], [-1], @@ -2091,36 +2091,36 @@ [-1], [-1], [-1], + [6, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [8, 1], [-1], [-1], [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], + [6, 1], + [7, 1], + [7, 1], + [8, 1], [-1], [-1], [-1], @@ -2180,36 +2180,36 @@ [-1], [-1], [-1], + [6, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [8, 1], [-1], [-1], [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], + [6, 1], + [7, 1], + [7, 1], + [8, 1], [-1], [-1], [-1], @@ -2269,36 +2269,36 @@ [-1], [-1], [-1], + [6, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [8, 1], [-1], [-1], [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], + [6, 1], + [7, 1], + [7, 1], + [8, 1], [-1], [-1], [-1], @@ -2358,36 +2358,36 @@ [-1], [-1], [-1], + [6, 2], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [7, 1], + [8, 2], [-1], [-1], [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], - [-1], + [6, 1], + [7, 1], + [7, 1], + [8, 1], [-1], [-1], [-1], @@ -2434,15 +2434,22 @@ "gridCellsY": 27, "entities": [ {"name": "Solid", "id": 25, "_eid": "17026310", "x": 16, "y": 224, "width": 208, "height": 80, "originX": 0, "originY": 0}, - {"name": "Solid", "id": 26, "_eid": "17026310", "x": 432, "y": 224, "width": 160, "height": 128, "originX": 0, "originY": 0}, + {"name": "Solid", "id": 26, "_eid": "17026310", "x": 432, "y": 224, "width": 160, "height": 208, "originX": 0, "originY": 0}, {"name": "Solid", "id": 27, "_eid": "17026310", "x": 480, "y": 192, "width": 112, "height": 32, "originX": 0, "originY": 0}, {"name": "SemiSolid", "id": 28, "_eid": "59763689", "x": 384, "y": 224, "width": 48, "height": 16, "originX": 0, "originY": 0}, - {"name": "Solid", "id": 29, "_eid": "17026310", "x": 592, "y": 320, "width": 192, "height": 32, "originX": 0, "originY": 0}, + {"name": "Solid", "id": 29, "_eid": "17026310", "x": 592, "y": 320, "width": 208, "height": 112, "originX": 0, "originY": 0}, {"name": "Solid", "id": 30, "_eid": "17026310", "x": 656, "y": 160, "width": 32, "height": 96, "originX": 0, "originY": 0}, {"name": "Solid", "id": 31, "_eid": "17026310", "x": 592, "y": 96, "width": 16, "height": 16, "originX": 0, "originY": 0}, {"name": "Solid", "id": 32, "_eid": "17026310", "x": 704, "y": 48, "width": 32, "height": 208, "originX": 0, "originY": 0}, {"name": "Solid", "id": 33, "_eid": "17026310", "x": 736, "y": 64, "width": 16, "height": 160, "originX": 0, "originY": 0}, - {"name": "Solid", "id": 34, "_eid": "17026310", "x": 688, "y": 144, "width": 16, "height": 112, "originX": 0, "originY": 0} + {"name": "Solid", "id": 34, "_eid": "17026310", "x": 688, "y": 144, "width": 16, "height": 112, "originX": 0, "originY": 0}, + {"name": "Solid", "id": 35, "_eid": "17026310", "x": 800, "y": 240, "width": 64, "height": 16, "originX": 0, "originY": 0}, + {"name": "Solid", "id": 36, "_eid": "17026310", "x": 800, "y": 256, "width": 128, "height": 16, "originX": 0, "originY": 0}, + {"name": "Solid", "id": 37, "_eid": "17026310", "x": 816, "y": 272, "width": 112, "height": 32, "originX": 0, "originY": 0}, + {"name": "Solid", "id": 38, "_eid": "17026310", "x": 832, "y": 304, "width": 96, "height": 32, "originX": 0, "originY": 0}, + {"name": "Solid", "id": 39, "_eid": "17026310", "x": 848, "y": 336, "width": 64, "height": 96, "originX": 0, "originY": 0}, + {"name": "SemiSolid", "id": 40, "_eid": "59763689", "x": 832, "y": 208, "width": 64, "height": 16, "originX": 0, "originY": 0}, + {"name": "SemiSolid", "id": 42, "_eid": "59763689", "x": 1040, "y": 176, "width": 80, "height": 16, "originX": 0, "originY": 0} ] }, { @@ -2488,7 +2495,10 @@ {"name": "Crate", "id": 13, "_eid": "16023910", "x": 640, "y": 208, "originX": 0, "originY": 0}, {"name": "Crate", "id": 14, "_eid": "16023910", "x": 624, "y": 208, "originX": 0, "originY": 0}, {"name": "Crate", "id": 15, "_eid": "16023910", "x": 608, "y": 208, "originX": 0, "originY": 0}, - {"name": "Crate", "id": 16, "_eid": "16023910", "x": 592, "y": 208, "originX": 0, "originY": 0} + {"name": "Crate", "id": 16, "_eid": "16023910", "x": 592, "y": 208, "originX": 0, "originY": 0}, + {"name": "Balloon", "id": 18, "_eid": "16494694", "x": 912, "y": 160, "originX": 0, "originY": 0}, + {"name": "Balloon", "id": 19, "_eid": "16494694", "x": 976, "y": 144, "originX": 0, "originY": 0}, + {"name": "Balloon", "id": 20, "_eid": "16494694", "x": 816, "y": 144, "originX": 0, "originY": 0} ] } ] diff --git a/gamedata/objects/combat/ennemies/balloon.py b/gamedata/objects/combat/ennemies/balloon.py new file mode 100644 index 0000000..cf1ebfa --- /dev/null +++ b/gamedata/objects/combat/ennemies/balloon.py @@ -0,0 +1,32 @@ +from gamedata.objects.combat.ennemies.ennemy import Ennemy + +class Balloon(Ennemy): + + def __init__(self,x,y,game,nodes=None): + + super().__init__(x,y,game,nodes) + + self.sprites = game.getSpriteDir("balloon/") + self.deadsprite = game.sprite_lib["balloon/broke.png"] + + self.rect[2],self.rect[3] = self.sprites[0].get_size() + + self.spriteindex = 0 + self.animspeed = 2 + + self.flip = False + + self.canhit = False + + def step(self): + super().step() + self.spriteindex+=self.animspeed*self.game.dt + self.sprite = self.sprites[int(self.spriteindex)%len(self.sprites)] + self.flip = self.player.rect.center[0]>self.rect.center[0] + + def draw(self): + if not self.dead: + index = int(self.spriteindex)%len(self.sprites) + veroffset = [0,2,0,-2][index] + sprite = self.game.pygame.transform.flip(self.sprite,self.flip,False) + self.game.window.blit(sprite,[self.rect[0]-self.game.globals["camerax"],self.rect[1]-self.game.globals["cameray"]+veroffset]) diff --git a/gamedata/objects/combat/tileset.py b/gamedata/objects/combat/tileset.py index ec632a0..2629826 100644 --- a/gamedata/objects/combat/tileset.py +++ b/gamedata/objects/combat/tileset.py @@ -1,6 +1,7 @@ from gamedata.objects.base import BaseObject from gamedata.objects.combat.ennemies.robot import Robot from gamedata.objects.combat.ennemies.crate import Crate +from gamedata.objects.combat.ennemies.balloon import Balloon class TilesetRenderer(BaseObject): @@ -38,7 +39,7 @@ class TilesetRenderer(BaseObject): self.layers = [] self.spawns = [] spawnlists = {"Spawns":self.spawns} - ennemies = {"Robot":Robot,"Crate":Crate} + ennemies = {"Robot":Robot,"Crate":Crate,"Balloon":Balloon} self.queue = [] # For spawning ennemies after beeing initialized if "layers" in json.keys() and type(json["layers"]).__name__=="list": solidlayer = False