X-Git-Url: https://git.ctpug.org.za/?p=koperkapel.git;a=blobdiff_plain;f=koperkapel%2Fscenes%2Flevel.py;h=53d370f1d0f0aaeee9fe0e3e0a4d8d3a6db91b05;hp=ea32bc1eaa63107850cb9c3b82e79f22cc8a63e1;hb=c1691479e387f6676f03dbf6e431345eea60dd65;hpb=11394cc68ca2f312c93706c52bb02a0e0999b01f diff --git a/koperkapel/scenes/level.py b/koperkapel/scenes/level.py index ea32bc1..53d370f 100644 --- a/koperkapel/scenes/level.py +++ b/koperkapel/scenes/level.py @@ -31,6 +31,7 @@ class BaseLevelScene(Scene): self._overlay = self._surfaces['floor'].copy() self._doors = self.actors.add_layer("doors", level=9) self._keypads = self.actors.add_layer("keypads", level=8) + self._bullets = self.actors.add_layer("bullets", level=10) # These are already Actors for door in self._level.doors: self._doors.add(door) @@ -194,13 +195,19 @@ class GameLevelScene(BaseLevelScene): self._level.remove_enemy(enemy) self._enemies.remove(enemy) + def _fire_bullet(self, bullet, pos, dp): + if len(self._bullets) >= 10: + return + bullet.game_pos = pos + self._bullets.add(bullet) + @defer_to_update def _fire_weapon(self, world): weapon = weapon_by_name(world.weapons.current) weapon.play_sound() if weapon.bullet_range > 0: - # ranged, fire bullet - print("Pew.") + self._fire_bullet( + weapon.assemble_bullet(), self._player_pos, self._angle_dp) else: # melee pos, dp = self._player_pos, self._angle_dp @@ -228,6 +235,10 @@ class GameLevelScene(BaseLevelScene): for enemy in self._enemies: enemy.pos = self.calc_offset( enemy.game_pos[0] * TILE_SIZE, enemy.game_pos[1] * TILE_SIZE) + for bullet in self._bullets: + bullet.pos = self.calc_offset( + bullet.game_pos[0] * TILE_SIZE + (TILE_SIZE // 2), + bullet.game_pos[0] * TILE_SIZE + (TILE_SIZE // 2)) more = self._check_held_keys(dt) if more: events.extend(more)