From 03db91acd018e942831ea1cc2934e69708ca622e Mon Sep 17 00:00:00 2001 From: "theo@manjaro" Date: Thu, 18 Nov 2021 17:58:38 +0100 Subject: [PATCH] Added springs --- gamedata/assets/spring/diagonal/0.png | Bin 0 -> 857 bytes gamedata/assets/spring/diagonal/1.png | Bin 0 -> 852 bytes gamedata/assets/spring/diagonal/2.png | Bin 0 -> 743 bytes gamedata/assets/spring/diagonal/3.png | Bin 0 -> 852 bytes gamedata/assets/spring/normal/0.png | Bin 0 -> 5631 bytes gamedata/assets/spring/normal/1.png | Bin 0 -> 5570 bytes gamedata/assets/spring/normal/2.png | Bin 0 -> 5045 bytes gamedata/assets/spring/normal/3.png | Bin 0 -> 5570 bytes gamedata/assets/spring/side/0.png | Bin 0 -> 6040 bytes gamedata/assets/spring/side/1.png | Bin 0 -> 5998 bytes gamedata/assets/spring/side/2.png | Bin 0 -> 5412 bytes gamedata/assets/spring/side/3.png | Bin 0 -> 5999 bytes gamedata/maps/TulipFields/map.json | 91 ++++++++++---------- gamedata/objects/combat/ennemies/balloon.py | 8 +- gamedata/objects/combat/ennemies/crate.py | 8 +- gamedata/objects/combat/ennemies/ennemy.py | 9 +- gamedata/objects/combat/ennemies/robot.py | 14 +-- gamedata/objects/combat/ennemies/spring.py | 69 +++++++++++++++ gamedata/objects/combat/player.py | 9 ++ gamedata/objects/combat/tileset.py | 10 ++- 20 files changed, 152 insertions(+), 66 deletions(-) create mode 100644 gamedata/assets/spring/diagonal/0.png create mode 100644 gamedata/assets/spring/diagonal/1.png create mode 100644 gamedata/assets/spring/diagonal/2.png create mode 100644 gamedata/assets/spring/diagonal/3.png create mode 100644 gamedata/assets/spring/normal/0.png create mode 100644 gamedata/assets/spring/normal/1.png create mode 100644 gamedata/assets/spring/normal/2.png create mode 100644 gamedata/assets/spring/normal/3.png create mode 100644 gamedata/assets/spring/side/0.png create mode 100644 gamedata/assets/spring/side/1.png create mode 100644 gamedata/assets/spring/side/2.png create mode 100644 gamedata/assets/spring/side/3.png create mode 100644 gamedata/objects/combat/ennemies/spring.py diff --git a/gamedata/assets/spring/diagonal/0.png b/gamedata/assets/spring/diagonal/0.png new file mode 100644 index 0000000000000000000000000000000000000000..837802cc469ab6359e84ea5b1fc624f802b660bb GIT binary patch literal 857 zcmV-f1E&0mP)EX>4Tx04R}tkv&MmKpe$iQ$^7hK|6>zWT;LSN)>U`DionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|=H{g6A|?JWDYS_7;J6>}?mh0_0YbgZG^;BLXu55t z5^*t;T@`y?(T_m{5k*X9mN6$uNpu`v_we!cF2b`qpZjwJ)ttoupGZ8*4AUmwAfDc| z4bJ<-Ay$-C;&b8&lP*a7$aTfzH_io@1)do))2Vsl5V2TjW2KE*(bR~ih{LL;Q@)V# zSmnIMSu0mr^Pc>Lft=bb;{@U#SB#pQP7X zTKEVU*aj}HTbi;5TgFeSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00A*cL_t(I%Z-w;YQr!TMXzj6fqsM+%^eyHEf_+l_7jZ% zqEm(%8V{YiW$h+RzaWN8K}!(z7kJUqHB*Q;qYkcA+p^r=Nj%T=qv z%V}?C(ho|*@7H$*(2zbKj;p~CqQlZb#bKn%D#ydkv*m76EX+Ae8gMCy$$+M<^+qlQ z(dm~}jx1>~?hjlyxRfOg^m+jx=&wsl+n-9EOF_W8I+ub3EX>4Tx04R}tkv&MmKpe$iQ$^7hK|6>zWT;LSN)>U`DionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|=H{g6A|?JWDYS_7;J6>}?mh0_0YbgZG^;BLXu55t z5^*t;T@`y?(T_m{5k*X9mN6$uNpu`v_we!cF2b`qpZjwJ)ttoupGZ8*4AUmwAfDc| z4bJ<-Ay$-C;&b8&lP*a7$aTfzH_io@1)do))2Vsl5V2TjW2KE*(bR~ih{LL;Q@)V# zSmnIMSu0mr^Pc>Lft=bb;{@U#SB#pQP7X zTKEVU*aj}HTbi;5TgFeSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00AsXL_t(I%e7OzO2j}A{_;}=EPRA*Qd>k8P6!-U@eP!` zg_T7_lj2_BT8o1ae1Z$4k~9*`6QoIVZ3;PJWf-enH?mo6oN9O2`R4n+nFanULdGd% zoPK*}EfxFm1OVuA2X)_AO8~YBJ-#|YT6i!qv31>xTL)e4$ea;G)fzHRhwX}<&Ms&i zDhe5=m)A9oLnZH827Wxr4yV@-*u8%u3K9Uo{mqAwiIgBri-H7Yn*jjozOm}Qv7#Ws zTes1I%sfa74{70PrK(I+#;)qP2ti-%RJIwSAdyTLr*Q7yNeN|}$@BB&BgAxOyCIxb z-5!TZ=0e7494b0&SK2AKYG)C`u%D828)=)0^Zik3URq~Yy@=v`f1Ew?;|a()=|EhS e;&(WI{w literal 0 HcmV?d00001 diff --git a/gamedata/assets/spring/diagonal/2.png b/gamedata/assets/spring/diagonal/2.png new file mode 100644 index 0000000000000000000000000000000000000000..ab262baeb4baa5658a7b3b8d34cd93ff41441dcc GIT binary patch literal 743 zcmV?P)EX>4Tx04R}tkv&MmKpe$iQ$^7hK|6>zWT;LSN)>U`DionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|=H{g6A|?JWDYS_7;J6>}?mh0_0YbgZG^;BLXu55t z5^*t;T@`y?(T_m{5k*X9mN6$uNpu`v_we!cF2b`qpZjwJ)ttoupGZ8*4AUmwAfDc| z4bJ<-Ay$-C;&b8&lP*a7$aTfzH_io@1)do))2Vsl5V2TjW2KE*(bR~ih{LL;Q@)V# zSmnIMSu0mr^Pc>Lft=bb;{@U#SB#pQP7X zTKEVU*aj}HTbi;5TgFeSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{006&9L_t(I%k7e}4TCTcMIVL=DMQdO0Vo|k83C~f1r(&n zA{HZ%K3$YdK$9Vm=ps@X9mEn&pX=`I|Nhx`@Q+nw(Q(eA12AZx+w1PR z0F)F0l&1r27vkE9lJ0}{mjhRbl1bZzG{po!8dqGO=Us@Bt#2VNov3ZWIOj>tW4P=> zlypzy%K9AhM>a?xolQvRrkGY!vI1;k0NszoCChYdyAjC5h;=`%E^SBr1;~?nQ}&%# Z`2#?zO#?hHE7kx2002ovPDHLkV1kk%KVbj> literal 0 HcmV?d00001 diff --git a/gamedata/assets/spring/diagonal/3.png b/gamedata/assets/spring/diagonal/3.png new file mode 100644 index 0000000000000000000000000000000000000000..5c6c8a0715eef63d2f2a899dd1c739c5c9cd68e9 GIT binary patch literal 852 zcmV-a1FQUrP)EX>4Tx04R}tkv&MmKpe$iQ$^7hK|6>zWT;LSN)>U`DionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|=H{g6A|?JWDYS_7;J6>}?mh0_0YbgZG^;BLXu55t z5^*t;T@`y?(T_m{5k*X9mN6$uNpu`v_we!cF2b`qpZjwJ)ttoupGZ8*4AUmwAfDc| z4bJ<-Ay$-C;&b8&lP*a7$aTfzH_io@1)do))2Vsl5V2TjW2KE*(bR~ih{LL;Q@)V# zSmnIMSu0mr^Pc>Lft=bb;{@U#SB#pQP7X zTKEVU*aj}HTbi;5TgFeSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00AsXL_t(I%e7OzO2j}A{_;}=EPRA*Qd>k8P6!-U@eP!` zg_T7_lj2_BT8o1ae1Z$4k~9*`6QoIVZ3;PJWf-enH?mo6oN9O2`R4n+nFanULdGd% zoPK*}EfxFm1OVuA2X)_AO8~YBJ-#|YT6i!qv31>xTL)e4$ea;G)fzHRhwX}<&Ms&i zDhe5=m)A9oLnZH827Wxr4yV@-*u8%u3K9Uo{mqAwiIgBri-H7Yn*jjozOm}Qv7#Ws zTes1I%sfa74{70PrK(I+#;)qP2ti-%RJIwSAdyTLr*Q7yNeN|}$@BB&BgAxOyCIxb z-5!TZ=0e7494b0&SK2AKYG)C`u%D828)=)0^Zik3URq~Yy@=v`f1Ew?;|a()=|EhS e;&(WI{w literal 0 HcmV?d00001 diff --git a/gamedata/assets/spring/normal/0.png b/gamedata/assets/spring/normal/0.png new file mode 100644 index 0000000000000000000000000000000000000000..862e8df54b4759e43f3a35931080dbe40f8972f2 GIT binary patch literal 5631 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 literal 0 HcmV?d00001 diff --git a/gamedata/assets/spring/normal/1.png b/gamedata/assets/spring/normal/1.png new file mode 100644 index 0000000000000000000000000000000000000000..4d2cea6faba269af008b55807f09102c70331c8b GIT binary patch literal 5570 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 literal 0 HcmV?d00001 diff --git a/gamedata/assets/spring/normal/2.png b/gamedata/assets/spring/normal/2.png new file mode 100644 index 0000000000000000000000000000000000000000..22d07817498bb7db061b306381ad4036f6501322 GIT binary patch literal 5045 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 literal 0 HcmV?d00001 diff --git a/gamedata/assets/spring/normal/3.png b/gamedata/assets/spring/normal/3.png new file mode 100644 index 0000000000000000000000000000000000000000..4d2cea6faba269af008b55807f09102c70331c8b GIT binary patch literal 5570 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 literal 0 HcmV?d00001 diff --git a/gamedata/assets/spring/side/0.png b/gamedata/assets/spring/side/0.png new file mode 100644 index 0000000000000000000000000000000000000000..08ca431dc32a4a5c8ad9db585f5ba34c9a2cc12e GIT binary patch literal 6040 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 NTtB{VsZU(`zX5TG7y$qP literal 0 HcmV?d00001 diff --git a/gamedata/assets/spring/side/1.png b/gamedata/assets/spring/side/1.png new file mode 100644 index 0000000000000000000000000000000000000000..8a31c28e618fadd8afba55a050453c3f07f76c0e GIT binary patch literal 5998 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 J%e-S!{|iS?32^`b literal 0 HcmV?d00001 diff --git a/gamedata/assets/spring/side/3.png b/gamedata/assets/spring/side/3.png new file mode 100644 index 0000000000000000000000000000000000000000..2cf5260cf47eebb51bfbaebc136725a1f3da4735 GIT binary patch literal 5999 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: self.verspd*=self.gravityway + else: + self.leaptimer = 0 self.canfastfall = False self.fastfall = self.gravityway else: @@ -244,6 +246,13 @@ class Player(Movable): self.combo+=1 self.combotimer = 1 + def yeet(self,hor,ver): + self.verspd = 0 + self.combo = 0 + self.horkb = hor + self.verkb = ver + self.canfastfall = True + def draw(self): flipy = (self.gravityway<0 and not self.leaptimer<0) if self.fastfall: diff --git a/gamedata/objects/combat/tileset.py b/gamedata/objects/combat/tileset.py index 2629826..db476a0 100644 --- a/gamedata/objects/combat/tileset.py +++ b/gamedata/objects/combat/tileset.py @@ -2,6 +2,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 +from gamedata.objects.combat.ennemies.spring import Spring class TilesetRenderer(BaseObject): @@ -23,7 +24,7 @@ class TilesetRenderer(BaseObject): # Spawning ennemies while len(self.queue)>0: props = self.queue.pop() - e = props[0](props[1],props[2],self.game,nodes=props[3]) + e = props[0](props[1],props[2],self.game,props[3],props[4]) self.game.gameloop.summon(e) def draw(self): @@ -39,7 +40,7 @@ class TilesetRenderer(BaseObject): self.layers = [] self.spawns = [] spawnlists = {"Spawns":self.spawns} - ennemies = {"Robot":Robot,"Crate":Crate,"Balloon":Balloon} + ennemies = {"Robot":Robot,"Crate":Crate,"Balloon":Balloon,"Spring":Spring} self.queue = [] # For spawning ennemies after beeing initialized if "layers" in json.keys() and type(json["layers"]).__name__=="list": solidlayer = False @@ -62,9 +63,12 @@ class TilesetRenderer(BaseObject): for entity in layer["entities"]: x,y = entity["x"],entity["y"] nodes = [] + customvalues = {} if "nodes" in entity.keys(): nodes = entity["nodes"] - self.queue.append((ennemies[entity["name"]],x,y,nodes)) + if "values" in entity.keys(): + customvalues = entity["values"] + self.queue.append((ennemies[entity["name"]],x,y,nodes,customvalues)) else: # J'ajoute un layer de tiles