diff --git a/src/game.py b/src/game.py index d6fa44f..d3cdcad 100644 --- a/src/game.py +++ b/src/game.py @@ -25,6 +25,8 @@ sprites ={'assiette': (0, 2, 20, 17, 'gg00000000000ggg0ccc0ccc0ccc0g0ccc0ccccc0ccc00ccc0ccccc0ccc00ccc0ccccc0ccc0g0ccc0ccc0ccc0ggg000000cc000gggg0ccccccccc0gggg00000000000ggggg044444440gggggg044444440ggggggg0000000ggggggg0ccccccc0ggggg0ccccccccc0gggg0c0ccccc0c0gggg0c0ccccc0c0gggg000ccccc000gggggg0ccccc0gggggggg0000000ggggggggg00g00ggggg'), 'poele': (0, 0, 19, 19, 'gggggg00000000gggggggg000eeeeeeee000gggg0eeeffffffffeee0gg0eeffeeeeeeeeffee0g0efeeeeeeeeeeeefe0g0efeeeeeeeeeeeefe0g0eeeeeeeeeeeeeeee0g00eeeeeeeeeeeeee00g0b0000eeeeee0000f0g000fff000000ffff00g00fffffffffff000f0g0ff0000000000baf0g0ff0fabfffbafffba0g0f0ffbff2f3b3ffff0gg0fff0ffffffff0fff0g0fff0000000000fff0g0fff0gggggggg0fff0g0ff0gggggggggg0ff0gg00gggggggggggg00g'), + 'poubelle': (0, 0, 20, 20, + 'ggggg0000000000ggggggggg0ffffffffff0ggggggg0fffffffffffe0ggggg0ffffffffffffef0ggg0fffefffffffffeff0g0ffffefff66f6ffffff00ffffeff6ff66ffefff00ffffeffff666ffffff00ffffef6fffffffffff00ffffe666ff6f6fefff00ffffef6ff666ffefff00ffffeff6ff6fffefff00ffffefffffffffefff00ffffffffffffffffff00ffffeeeeeeeeeeffff00fffeffffffffffefff00ffefff000000fffeff00fefff00000000fffef0g0fff0000000000fffeggg0000000000000000gg'), 'salade': (1, 4, 18, 13, 'gggggggggggg0gggggggggg0000g0070gggggggg07777077570ggggg00755567567570ggg077567777777570gg07657765655767770g077776556556755770000076556556767070ggg075556555670g00ggg075556555670gggggg07665655670gggggggg077777770gggggggggg0000000gggggg'), 'salade_cuite': (2, 7, 15, 9, @@ -36,7 +38,7 @@ sprites ={'assiette': (0, 2, 20, 17, key_pressed = [False]*5 -maps = [[[2, 2, 2, 3, 3, 2, 2, 2], [2, 1, 1, 1, 1, 1, 1, 4], [6, 0, 0, 4, 9, 0, 0, 5], [7, 0, 0, 2, 8, 0, 0, 2], [1, 0, 0, 1, 1, 0, 0, 1]]] +maps = [[[2, 2, 2, 3, 3, 2, 11, 2], [2, 1, 1, 1, 1, 1, 1, 4], [6, 0, 0, 4, 9, 0, 0, 5], [7, 0, 0, 2, 8, 0, 0, 2], [1, 0, 0, 1, 1, 0, 0, 1]]] class Ingredient: def __init__(self, i_nom): @@ -73,10 +75,7 @@ class Player: elif dir=="left": el,elx,ely=self.game.map[self.y][self.x-1],self.x-1,self.y else: el,elx,ely=self.game.map[self.y][self.x+1],self.x+1,self.y if self.holding != None: - el = (el,self.holding.i_nom) - self.game.map[ely][elx]=el - game.draw_element(el, elx, ely) - self.holding = None + self.holding = self.game.poser_ingredient(elx,ely,self.holding) self.draw_player() else: self.holding = self.game.recup_ingredient(elx,ely) @@ -154,6 +153,9 @@ class Game: fill_rect(x*40, y*40+40, 40, 40, colors[4]) game.draw_sprite("caisse", x*40, y*40+40, 2) game.draw_sprite("pain", x*40, y*40+40, 2) + elif el==11: + fill_rect(x*40, y*40+40, 40, 40, colors[4]) + game.draw_sprite("poubelle", x*40, y*40+40, 2) if type(element)==tuple: game.draw_sprite(element[1], x*40, y*40+40, 2) @@ -174,6 +176,24 @@ class Game: curx += 1 curx=0 cury+=1 + def poser_ingredient(self, elx:int,ely:int,holding:Ingredient)->Ingredient: + old_el=self.map[ely][elx] + if type(old_el) == tuple: return holding + result = None + if old_el==11: + return None + elif old_el==2: + pass + elif old_el==3 and holding.i_nom=='steak': + pass + elif old_el==4 and(holding.i_nom=='oignon' or holding.i_nom=='salade'): + pass + else: + return holding + el = (old_el,holding.i_nom) + self.map[ely][elx]=el + game.draw_element(el, elx, ely) + return result def recup_ingredient(self, elx:int,ely:int)->Ingredient: el=self.map[ely][elx] if type(el)!=tuple: diff --git a/src/maps/_mapgenerator.py b/src/maps/_mapgenerator.py index b21938b..4bc8f32 100644 --- a/src/maps/_mapgenerator.py +++ b/src/maps/_mapgenerator.py @@ -12,7 +12,8 @@ colors_value = {(86,108,134): (0, "sol"), (93,39,93): (6, "oignons"), (167,240,112): (7, "salade"), (177,62,83): (8, "viande"), - (37,113,121): (9, "pain") + (37,113,121): (9, "pain"), + (26,28,44): (11,"poubelle") } def get_color_id(r, g, b, a): diff --git a/src/maps/generated_maps.txt b/src/maps/generated_maps.txt index 1011cfb..4273f15 100644 --- a/src/maps/generated_maps.txt +++ b/src/maps/generated_maps.txt @@ -1,4 +1,4 @@ map_0.png -{'map_0': [[2, 2, 2, 3, 3, 2, 2, 2], [2, 1, 1, 1, 1, 1, 1, 4], +{'map_0': [[2, 2, 2, 3, 3, 2, 11, 2], [2, 1, 1, 1, 1, 1, 1, 4], [6, 0, 0, 4, 9, 0, 0, 5], [7, 0, 0, 2, 8, 0, 0, 2], [1, 0, 0, 1, 1, 0, 0, 1]]} diff --git a/src/maps/map_0.png b/src/maps/map_0.png index f054294..99523bb 100644 Binary files a/src/maps/map_0.png and b/src/maps/map_0.png differ diff --git a/src/sprites/poubelle.png b/src/sprites/poubelle.png new file mode 100644 index 0000000..1ce7859 Binary files /dev/null and b/src/sprites/poubelle.png differ diff --git a/src/sprites/sprites_converted.txt b/src/sprites/sprites_converted.txt index dff40e7..21cd77a 100644 --- a/src/sprites/sprites_converted.txt +++ b/src/sprites/sprites_converted.txt @@ -21,6 +21,8 @@ _converter.py 'gg00000000000ggg0ccc0ccc0ccc0g0ccc0ccccc0ccc00ccc0ccccc0ccc00ccc0ccccc0ccc0g0ccc0ccc0ccc0ggg000000cc000gggg0ccccccccc0gggg00000000000ggggg044444440gggggg044444440ggggggg0000000ggggggg0ccccccc0ggggg0ccccccccc0gggg0c0ccccc0c0gggg0c0ccccc0c0gggg000ccccc000gggggg0ccccc0gggggggg0000000ggggggggg00g00ggggg'), 'poele': (0, 0, 19, 19, 'gggggg00000000gggggggg000eeeeeeee000gggg0eeeffffffffeee0gg0eeffeeeeeeeeffee0g0efeeeeeeeeeeeefe0g0efeeeeeeeeeeeefe0g0eeeeeeeeeeeeeeee0g00eeeeeeeeeeeeee00g0b0000eeeeee0000f0g000fff000000ffff00g00fffffffffff000f0g0ff0000000000baf0g0ff0fabfffbafffba0g0f0ffbff2f3b3ffff0gg0fff0ffffffff0fff0g0fff0000000000fff0g0fff0gggggggg0fff0g0ff0gggggggggg0ff0gg00gggggggggggg00g'), + 'poubelle': (0, 0, 20, 20, + 'ggggg0000000000ggggggggg0ffffffffff0ggggggg0fffffffffffe0ggggg0ffffffffffffef0ggg0fffefffffffffeff0g0ffffefff66f6ffffff00ffffeff6ff66ffefff00ffffeffff666ffffff00ffffef6fffffffffff00ffffe666ff6f6fefff00ffffef6ff666ffefff00ffffeff6ff6fffefff00ffffefffffffffefff00ffffffffffffffffff00ffffeeeeeeeeeeffff00fffeffffffffffefff00ffefff000000fffeff00fefff00000000fffef0g0fff0000000000fffeggg0000000000000000gg'), 'salade': (1, 4, 18, 13, 'gggggggggggg0gggggggggg0000g0070gggggggg07777077570ggggg00755567567570ggg077567777777570gg07657765655767770g077776556556755770000076556556767070ggg075556555670g00ggg075556555670gggggg07665655670gggggggg077777770gggggggggg0000000gggggg'), 'salade_cuite': (2, 7, 15, 9,