diff --git a/src/tower.py b/src/tower.py index 8510dd5..fd613c2 100644 --- a/src/tower.py +++ b/src/tower.py @@ -1,5 +1,3 @@ -from turtledemo.lindenmayer import draw - import pygame import random import math @@ -13,7 +11,9 @@ respawn_delay = 10000 # ms bis neues Feld spawnt class Tower: - def __init__(self) -> None: + def __init__(self, sound_manager) -> None: + self.sound_manager = sound_manager + # Feld und Tower -> None wenn nicht aktiv # Position interagierbares Feld self.field_rect: pygame.Rect = None @@ -24,7 +24,7 @@ class Tower: # Zeitpunkt, wann der Tower gebaut wurde self.tower_start: int = None # Zeitpunkt, wann Tower despawnt ist - self.despawn_timer: int = None + self.despawn_time: int = None # Zeitpunkt des letzten Schusses self.last_shot: int = 0 @@ -65,9 +65,11 @@ class Tower: return False # prüft alle Bedingungen gleichzeitig if not (self.field_rect.colliderect(player_rect) and keys[pygame.K_e] and ects.balance >= TOWER_COST): + self.sound_manager.play_sfx("buy_fail") return False # ECTS abziehen und Tower bauen + self.sound_manager.play_sfx("buy_success") ects.balance -= TOWER_COST self.tower_rect = self.field_rect self.field_rect = None @@ -100,6 +102,7 @@ class Tower: "vel_y": (dy / distance) * PROJECTILE_SPEED, }) + self.sound_manager.play_sfx("tower_shoot") self.last_shot = now # Bewegung der Projektile und Kollision mit Monster prüfen @@ -110,6 +113,7 @@ class Tower: # Projektil trifft auf Monster -> Schaden wird addiert und Projektil entfernt if monster_rect and pygame.Rect(int(p["x"]), int(p["y"]), projectile_size, projectile_size).colliderect(monster_rect): total_damage += PROJECTILE_DMG + self.sound_manager.play_sfx("monster_hit") self.projectiles.remove(p) # wenn der Tower abgelaufen ist, soll er despawnen und ein Timer starten @@ -165,8 +169,7 @@ class Tower: else: # Fallback - gelbes Rechteck pygame.draw.rect(surface, COLOR_PROJECTILE, - pygame.Rect(int(p["x"]) - cam_x, int(p["y"]) - cam_y, projectile_size, projectile_size)) - + pygame.Rect(draw_x, draw_y, projectile_size, projectile_size)) @@ -175,22 +178,4 @@ class Tower: self.field_rect = None self.tower_rect = None self.projectiles = [] - self.despawn_timer = None - - - - - - - - - - - - - - - - - - + self.despawn_time = None \ No newline at end of file