From: Simon Cross Date: Sat, 5 Mar 2016 12:49:52 +0000 (+0200) Subject: Merge branch 'master' of ctpug.org.za:koperkapel X-Git-Url: https://git.ctpug.org.za/?a=commitdiff_plain;h=803254edba328148045841cd2cbdc0e4bd19655b;hp=8792e5a86456400f818a71bbd501a1a5128f0122;p=koperkapel.git Merge branch 'master' of ctpug.org.za:koperkapel --- diff --git a/koperkapel/gamelib/door.py b/koperkapel/gamelib/door.py index 9b6e563..3134e1c 100644 --- a/koperkapel/gamelib/door.py +++ b/koperkapel/gamelib/door.py @@ -19,5 +19,9 @@ class Door(OrientatedSurfActor): self._closed = False self.surf = self._open_surf + def close(self): + self._closed = True + self.surf = self._closed_surf + def is_closed(self): return self._closed diff --git a/koperkapel/gamelib/keypad.py b/koperkapel/gamelib/keypad.py index 4667fcd..b328f39 100644 --- a/koperkapel/gamelib/keypad.py +++ b/koperkapel/gamelib/keypad.py @@ -14,7 +14,10 @@ class Keypad(SurfActor): surf = images.load(os.path.join('fixtures', 'keypad')) super().__init__(surf, anchor=(0, 0)) - def activate(self): + def activate(self, roaches): # FIXME: Check stats for door in self._doors: - door.open() + if door.is_closed(): + door.open() + else: + door.close() diff --git a/koperkapel/gamelib/level.py b/koperkapel/gamelib/level.py index 39e4565..a8fe447 100644 --- a/koperkapel/gamelib/level.py +++ b/koperkapel/gamelib/level.py @@ -11,6 +11,7 @@ class Level(object): self.tiles = [] self.keypads = [] self.doors = [] + self.grates = [] self.tileset = None self.start_pos = (0, 0) @@ -43,8 +44,18 @@ class Level(object): def can_crawl(self, x, y, layer): return 'crawl' in self.tiles[y][x][layer]['behaviour'] - def keypad_at(self, x, y): + def is_keypad(self, x, y): for keypad in self.keypads: if (x, y) == keypad.game_pos: - return keypad - return None + return True + return False + + def is_grate(self, x, y): + if (x, y) in self.grates: + return True + return False + + def press_keypad(self, x, y, roaches): + for keypad in self.keypads: + if (x, y) == keypad.game_pos: + keypad.activate(roaches) diff --git a/koperkapel/images/roach_management/eject_button.png b/koperkapel/images/roach_management/eject_button.png index 39c6af8..766e0cc 100644 Binary files a/koperkapel/images/roach_management/eject_button.png and b/koperkapel/images/roach_management/eject_button.png differ diff --git a/koperkapel/images/roach_management/inventory_pad.png b/koperkapel/images/roach_management/inventory_pad.png index 93ab592..ed524fd 100644 Binary files a/koperkapel/images/roach_management/inventory_pad.png and b/koperkapel/images/roach_management/inventory_pad.png differ diff --git a/koperkapel/images/roach_management/left_button.png b/koperkapel/images/roach_management/left_button.png index 80b86ba..a6123a7 100644 Binary files a/koperkapel/images/roach_management/left_button.png and b/koperkapel/images/roach_management/left_button.png differ diff --git a/koperkapel/images/roach_management/right_button.png b/koperkapel/images/roach_management/right_button.png index 8408526..93fbdd7 100644 Binary files a/koperkapel/images/roach_management/right_button.png and b/koperkapel/images/roach_management/right_button.png differ diff --git a/koperkapel/images/roach_management/roach_pad.png b/koperkapel/images/roach_management/roach_pad.png index b0a58ad..6b02b94 100644 Binary files a/koperkapel/images/roach_management/roach_pad.png and b/koperkapel/images/roach_management/roach_pad.png differ diff --git a/koperkapel/loaders/levelloader.py b/koperkapel/loaders/levelloader.py index 9bb85e4..5247695 100644 --- a/koperkapel/loaders/levelloader.py +++ b/koperkapel/loaders/levelloader.py @@ -55,6 +55,7 @@ class LevelLoader(ResourceLoader): angle = 0 new_door = Door(x, y, angle) self._level.doors.append(new_door) + doors.append(new_door) # Add the keypads for keypad in door_info['keypads']: new_keypad = Keypad(keypad[0], keypad[1], doors) @@ -72,8 +73,8 @@ class LevelLoader(ResourceLoader): TILES[tile[layer]['base']].image(neighbors) # Hack this for now if layer == 'floor' and 'crawl' in tile[layer]['behaviour']: - print('Here') tile['floor image'] = Grate.image(neighbors) + self._level.grates.append((x, y)) levels = LevelLoader('levels') diff --git a/koperkapel/scenes/level.py b/koperkapel/scenes/level.py index 70dd7be..ea37e15 100644 --- a/koperkapel/scenes/level.py +++ b/koperkapel/scenes/level.py @@ -129,17 +129,27 @@ class GameLevelScene(BaseLevelScene): self._set_pos(x + 1, y) offset = (TILE_SIZE, 0) self._set_angle(270) - elif key == keys.S: - if self._level_layer == 'floor' and self._level.can_crawl(x, y, 'floor'): - # We're probably on a grate - if self._level.can_crawl(x, y, 'tunnels'): - self._level_layer = 'tunnels' - self._mode = 'crawl' - elif self._level.can_crawl(x, y, 'floor'): - # Must be in the tunnels already - self._level_layer = 'floor' - self._mode = 'walk' + elif key == keys.C: + # Activate + if self._level.is_grate(x, y): + if self._level_layer == 'floor' and self._level.can_crawl(x, y, 'floor'): + if self._level.can_crawl(x, y, 'tunnels'): + self._level_layer = 'tunnels' + self._mode = 'crawl' + elif self._level.can_crawl(x, y, 'floor'): + # Must be in the tunnels already + self._level_layer = 'floor' + self._mode = 'walk' + elif self._level.is_keypad(x, y): + self._level.press_keypad(x, y, self._roaches) return + elif key == keys.X: + # Fire + print('Boom') + elif key == keys.V: + # Leave vehicle + print('Vehicle key pressed') + if offset: return [MoveViewportEvent(offset)] return super(GameLevelScene, self).on_key_down(key, mod, unicode) diff --git a/sources/images/source.txt b/sources/images/source.txt deleted file mode 100644 index eb9f047..0000000 --- a/sources/images/source.txt +++ /dev/null @@ -1,12 +0,0 @@ -Public domain drawings of cockroaches from "Histoire physique, naturelle, et politique de Madagascar" via Wikimedia Commons. - -https://www.archive.org/stream/histoirephysiquept23pt1gran#page/n277/mode/2up -https://fr.wikipedia.org/wiki/Projet:Biologie/Illustrations/Insectes/Histoire_physique,_naturelle,_et_politique_de_Madagascar - -The placeholder tile images floor.png and cwall.png are from the public domain -roguelike tileset "RLTiles". You can find the original tileset at: -http://rltiles.sf.net - -Wall and floor tiles: -https://commons.wikimedia.org/wiki/File:Concrete_aggregate_grinding.JPG -https://commons.wikimedia.org/wiki/File:Concrete_Casting_Defect_Blowhole.jpg diff --git a/sources/source.txt b/sources/source.txt new file mode 100644 index 0000000..891f9bf --- /dev/null +++ b/sources/source.txt @@ -0,0 +1,15 @@ +Public domain drawings of cockroaches from "Histoire physique, naturelle, et politique de Madagascar" via Wikimedia Commons. + +https://www.archive.org/stream/histoirephysiquept23pt1gran#page/n277/mode/2up +https://fr.wikipedia.org/wiki/Projet:Biologie/Illustrations/Insectes/Histoire_physique,_naturelle,_et_politique_de_Madagascar + +The placeholder tile images floor.png and cwall.png are from the public domain +roguelike tileset "RLTiles". You can find the original tileset at: +http://rltiles.sf.net + +Wall and floor tiles: +https://commons.wikimedia.org/wiki/File:Concrete_aggregate_grinding.JPG +https://commons.wikimedia.org/wiki/File:Concrete_Casting_Defect_Blowhole.jpg + +Font used in graphics is "Epilog" by Divide By Zero: +http://fonts.tom7.com/ diff --git a/sources/vector/roach_management/eject_button.svg b/sources/vector/roach_management/eject_button.svg index 172f5bc..34e0011 100644 --- a/sources/vector/roach_management/eject_button.svg +++ b/sources/vector/roach_management/eject_button.svg @@ -25,17 +25,17 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="2.467796" - inkscape:cx="-69.378208" - inkscape:cy="54.810268" + inkscape:zoom="6.4375" + inkscape:cx="32" + inkscape:cy="45.359223" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" units="px" - inkscape:window-width="1231" - inkscape:window-height="776" - inkscape:window-x="49" - inkscape:window-y="24" + inkscape:window-width="1178" + inkscape:window-height="999" + inkscape:window-x="102" + inkscape:window-y="0" inkscape:window-maximized="1" /> @@ -45,7 +45,7 @@ image/svg+xml - + @@ -54,21 +54,32 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-924.36216)"> - EjectRoach + + + + + + + + style="fill:#b68989;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.0080837px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 12.504042,1005.1666 0,16.635 24.952349,0 0,6.9311 13.862415,-15.2486 -13.862415,-15.2487 0,6.9312 z" + id="path4217-1" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccc" /> + + + + + + + diff --git a/sources/vector/roach_management/inventory_pad.svg b/sources/vector/roach_management/inventory_pad.svg index 3a26871..a600548 100644 --- a/sources/vector/roach_management/inventory_pad.svg +++ b/sources/vector/roach_management/inventory_pad.svg @@ -32,10 +32,10 @@ inkscape:current-layer="layer1" showgrid="false" units="px" - inkscape:window-width="1231" - inkscape:window-height="776" - inkscape:window-x="49" - inkscape:window-y="24" + inkscape:window-width="1178" + inkscape:window-height="999" + inkscape:window-x="102" + inkscape:window-y="0" inkscape:window-maximized="1" /> @@ -45,7 +45,7 @@ image/svg+xml - + @@ -54,6 +54,56 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-700.36216)"> + + + + + + + + + + + Inventory Inventory + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:45px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans Bold'">Inventory diff --git a/sources/vector/roach_management/left_button.svg b/sources/vector/roach_management/left_button.svg index 6b52e72..5e8bbf9 100644 --- a/sources/vector/roach_management/left_button.svg +++ b/sources/vector/roach_management/left_button.svg @@ -25,18 +25,24 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="5.840214" - inkscape:cx="18.147302" - inkscape:cy="23.921443" + inkscape:zoom="11.680428" + inkscape:cx="12.182747" + inkscape:cy="8.145018" inkscape:document-units="px" inkscape:current-layer="layer1" - showgrid="false" + showgrid="true" units="px" - inkscape:window-width="1231" - inkscape:window-height="776" - inkscape:window-x="49" - inkscape:window-y="24" - inkscape:window-maximized="1" /> + inkscape:window-width="1178" + inkscape:window-height="999" + inkscape:window-x="102" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:object-paths="false" + inkscape:object-nodes="true"> + + @@ -56,8 +62,9 @@ transform="translate(0,-1020.3622)"> + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccc" /> diff --git a/sources/vector/roach_management/right_button.svg b/sources/vector/roach_management/right_button.svg index 898aabe..e8728ff 100644 --- a/sources/vector/roach_management/right_button.svg +++ b/sources/vector/roach_management/right_button.svg @@ -25,18 +25,24 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="5.840214" - inkscape:cx="18.147302" - inkscape:cy="23.921443" + inkscape:zoom="11.680428" + inkscape:cx="12.182747" + inkscape:cy="8.145018" inkscape:document-units="px" inkscape:current-layer="layer1" - showgrid="false" + showgrid="true" units="px" - inkscape:window-width="1231" - inkscape:window-height="776" - inkscape:window-x="49" - inkscape:window-y="24" - inkscape:window-maximized="1" /> + inkscape:window-width="1178" + inkscape:window-height="999" + inkscape:window-x="102" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:object-paths="false" + inkscape:object-nodes="true"> + + @@ -45,7 +51,7 @@ image/svg+xml - + @@ -56,8 +62,9 @@ transform="translate(0,-1020.3622)"> + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccc" /> diff --git a/sources/vector/roach_management/roach_pad.svg b/sources/vector/roach_management/roach_pad.svg index 645c186..85bc515 100644 --- a/sources/vector/roach_management/roach_pad.svg +++ b/sources/vector/roach_management/roach_pad.svg @@ -26,16 +26,16 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="1.1546196" - inkscape:cx="-2.0781358" + inkscape:cx="-11.116012" inkscape:cy="188.57143" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" units="px" - inkscape:window-width="1231" - inkscape:window-height="776" - inkscape:window-x="49" - inkscape:window-y="24" + inkscape:window-width="1178" + inkscape:window-height="999" + inkscape:window-x="102" + inkscape:window-y="0" inkscape:window-maximized="1" /> @@ -45,7 +45,7 @@ image/svg+xml - + @@ -54,6 +54,46 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-700.36216)"> + + + + + + + + + - Outside +