From 31ec0ae3dc918618849b41c4df6b064d6a47c69f Mon Sep 17 00:00:00 2001 From: Neil Date: Sat, 5 Mar 2016 19:33:47 +0200 Subject: [PATCH] The endless pointlessness of level progression --- koperkapel/gamelib/level.py | 7 +++++++ koperkapel/gamelib/tiles.py | 6 ++++++ koperkapel/images/fixtures/info.png | Bin 2148 -> 1894 bytes .../images/vehicles/walking/background.png | Bin 4606 -> 4608 bytes koperkapel/images/weapons/crowbar.png | Bin 1491 -> 1494 bytes koperkapel/images/weapons/gun.png | Bin 2937 -> 2853 bytes koperkapel/levels/level1.json | 6 +++++- koperkapel/levels/level2.json | 8 ++++++-- koperkapel/loaders/levelloader.py | 7 +++++-- koperkapel/scenes/base.py | 2 ++ koperkapel/scenes/level.py | 6 +++++- 11 files changed, 36 insertions(+), 6 deletions(-) diff --git a/koperkapel/gamelib/level.py b/koperkapel/gamelib/level.py index eb9e8b2..a754f29 100644 --- a/koperkapel/gamelib/level.py +++ b/koperkapel/gamelib/level.py @@ -14,6 +14,7 @@ class Level(object): self.grates = [] self.tileset = None self.start_pos = (0, 0) + self.exit = None self.enemies = [] self.friends = [] @@ -74,3 +75,9 @@ class Level(object): self.friends.remove(friend) return friend return None + + def is_exit(self, x, y): + return self.exit and (x, y) == tuple(self.exit["pos"]) + + def get_exit_level(self): + return self.exit["next level"] diff --git a/koperkapel/gamelib/tiles.py b/koperkapel/gamelib/tiles.py index fd47252..69ffbe8 100644 --- a/koperkapel/gamelib/tiles.py +++ b/koperkapel/gamelib/tiles.py @@ -64,6 +64,12 @@ class Grate(Tile): IMG = os.path.join('grate', 'grate') TILESET = 'bunker' + +class Exit(Tile): + IMG = os.path.join('exit', 'exit') + TILESET = 'bunker' + + class Tunnel(OrientatedTile): @classmethod diff --git a/koperkapel/images/fixtures/info.png b/koperkapel/images/fixtures/info.png index b59f4d7ebaeec725938aa340224f3362e4d40489..4fa8260b94ccf7cde1621d55eecc5948bb9faa33 100644 GIT binary patch delta 1806 zcmV+p2l4pi5ate$ZGQ&iNkl1YEDg-#1* zP_(kKB_P&Dljw?86lqGNpiK;IRTUwv+65OA(gYgZFsVXQ#@34pLaCNrG-@3xHlT#4 z4Mij|kuxVsVj6$M2HR&BjsleU_4~g50)@Zii`VBo&-p)ppMUe7ug5}4$zn!Pp$QZk zPX#D6fkNY{0EH${XcXtOF(HHzs0HePI*ium0EkT91iW*fF)3vvZ=7;D4GJNO02h{( ztrQtul-Wu#IhJ5qX~eS1Oj%v>2MBv(1V#b`hNFZ$al*b?5)n6nkyC(MN}0$R$6N>? zglNFB>W>s#>VL5}m9u(p1r_VGIq_eITU~xe&(9DG3=kOZlu~|?b*|YIKnUT$M~gf=h=cn7neCkf&Wr>B)}cED0clScb`d6tm+eG#o?a=+}fwRuit=3f5QD zH#*jnz}-XIpnI{16GI3w)eyNk7J*K*^= z4c`BIH=hh9n0(DDi%%o=8y%Y(HaV&Hi>_wjWV%_<#$o2EtI)LiOfW zHoRA^#jbMdESE9K5(LWp`TW~v1cLM+4LJjaf1o7!&wAmXBwXf&!= z=ia@0#4u>~4J3!dj&2(k=Q$z7GSz0P8!*|A;ySrP)!Tjnge?uY-F=F6K6CdGG_BX= zAAf+-8gQLlfysVUt%<5xKnUTWX3OU^eQMK9E;@y?|8@E=euT+ndZaiKiLk!0nVT>E z6ATr)n*reb4}6S&_I))gMs+>F@_+VT%?}y0yufR3zl%9B#xo`Z-vlEBMGfO? z{tBjNGj0Qb%9p_U@Ur27CK7Q@IoEd6X zs-`#ugb+m(Tk3NXJmfBT0E-ifE%kF}5-E{x2)M8}X)R;3|Oi^-AETgv}xFFi6o|9?F7ueSUPkc^=g7+R=UNq{;mt8^~R=V1I!M&?;T zGKM-*2%z*1sKc_-k`q$-L^6iDRK=+UFj}9RKevC9QC3$xe*v=q7X8&&Y5^jXHwk-V zdE}BCguSu3tG5NA)C0T(MglpYlwTxc@TMwGBfzlo5zdo{NaYh@->lMgyYeiMh`8}z&pM~P!GAp&g94NV2#lQKR#(=4Tbrmw-|mCI^UYSiroLY{UmcK9+TmM>iF z@DcK~tEs9=04b%1pyvW(JvqzP${NOc5(GUL)aDVX-wlRF58`gS&Fr{tZaK&7IJnzx z6B<3J)?5J=s5>u6+)bv;B=d$;Cr@cQ@Q_jt2!BJ>0ebhHVEdW$ zIRX=X5Wg>0B9VRsCE_vo-zWFKSW*Jjo70o)-8ae1&;hMUQ<_hFWOV8SVYYAL>f!cu zSt7PCJNV@;E-I`AtUtBjOqEtpD@FUp_90lJia$bE@n^&K7I3^dn9eYr6a+&KK(+CQ>%G w*#0u}B;e`QSfL3N8czi%G=V~6(F^c@^d;e~?Qs3c00000Ne4wvM6N<$g4`HuJ^%m! delta 2062 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 Hu0mjfs;s8R delta 1398 zcmV-+1&R9B3)2gbZhufoL_t(|ob8*>Z`))X#vi+>6FYJ0II$Dcl4`9~ZELrxj7j4# ziS^13yC89b3s*RB;VC9?wFz+hu8*ZkVQ-E))ts$K&zK0L;U#=Oh5WvuDq~zqGXUmZB&x0zjwJfy?Ex zHCvX2bUOVYolbugi^VRFyXefnbhH1c!r}0-&CShQ>+9>6c%Gl@bUL7E8Z=Fh%}^8t zK@cQGQ7%#x#ed~;x$o_KjsVbXHtT{QoK7Z_za$a~tJP}JvMl>3ib6adzq+-x^+_xi z`z({md|4`$es44yJ-^={otc@TTrL+KiA2s>metGUazBk;+rIz&_tfq6dZo3swYNi| zP@sP@kx1OWapT4t0F2SVi4!N@+}POoK$hhNhGAT*tADHSX`1$RDwVo3>~lm9003E* z=Pk=>WipxT$z<}2cs%}jE|>eTR;%fDeofQvnx+|(W%-iF1;<{`~om&zw2)4gl=z>^!(~<;uz7_VKd_Ax@Vf^ z-f%nd00M!)>He`{8212lhuet<;PrY>^^a?{+P%?sq5%Yh!FfRtjsrlq+l8vCw?{oh z1BgT-uZg1Q1%UnieRX?#`@2yO(Ewyw9*qBHvwwLHHm}S?1K>DrF#hZHdfd)KG5{aX z^CyAFwE<1jVs<8C0j#X7T$Cg!1OTe4Rx8uA-0#Fp? z9DlRHOiy?XLj!dOZ}2McV?XornMsjYeOUWqAPrihspo zC6P#cGijCx0Q2+nuk;HbwOTC>pfYKe2mn0K4_<&8jfU+4$T*PzfEr!_(lqVPVdhae z9zZA*+K?n^831%$H}d)X*aE1X91mb|aq&XG08*(`?(4dqnI`Xe0HP=ky8n|E;Hl(z z03MHL0H9PV9X$XpmrDeIdcEG>-GAM+-4K1491oz^>s0{2G)+_2_1$Unjt9`~b}Ild zJ3Gq)@J*X{Jb*`!9_0XlVVGH-=jW!)J03v2UQYr5%d!vzVP)F9;{lXPrKDw9plKSS zC`PBvJ03u>Sp2b4sh9xZ_xqJ;^Nt5lE|+)v8=zR0U6?lScmM!UtyXUWfN$IFUYa&b z1b|d3^{J+5Rkz!H3{(CGMFfCsHv2G>$y^NvgNh_cr=FeoQ;zv*Y69JnW%+f(Ft$}y z{dLk1F#xL7YK5lhUCXl8RaKp6O@K%Vg0T3!@4->}16IBB57W;j!vFvP07*qoM6N<$ Ef|K#5y8r+H diff --git a/koperkapel/images/weapons/gun.png b/koperkapel/images/weapons/gun.png index 70b2e79e3c1467365f37d5d4e63ed8c089654f81..f213c06286a5e4e573f3091c4ea5d9fa65e478dd 100644 GIT binary patch delta 2771 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