Timeout-Fix: Levelzeit 0 loest Sterbeanimation + Leben-Abzug aus, Respawn mit frischer Zeit
This commit is contained in:
@@ -1965,3 +1965,12 @@ ALT beim Schwimmen/Tauchen (nur mit Slots 29-31 = Smacks): Blase waechst
|
|||||||
platzt an der Oberflaeche oder nach 4s. Gegner-Fang (Blase + rauswerfen)
|
platzt an der Oberflaeche oder nach 4s. Gegner-Fang (Blase + rauswerfen)
|
||||||
kommt zusammen mit den Gegnern, sobald die Typ-Zuordnung steht. Gegner-
|
kommt zusammen mit den Gegnern, sobald die Typ-Zuordnung steht. Gegner-
|
||||||
Sterbeanimationen (wie bei den Spielfiguren) ebenfalls dann.
|
Sterbeanimationen (wie bei den Spielfiguren) ebenfalls dann.
|
||||||
|
|
||||||
|
## 26.07.2026 (25) -- Levelzeit-Timeout hat jetzt Konsequenzen
|
||||||
|
|
||||||
|
Stefans Fund: Timer lief runter, aber bei 0 passierte nichts. Fix in
|
||||||
|
run_level: time_left wird am Rundenanfang berechnet; bei <= 0 startet die
|
||||||
|
Sterbeanimation (wie Herzen leer), danach Leben -1, Respawn mit vollen
|
||||||
|
Herzen und FRISCHER Levelzeit (start-Reset auch beim Respawn nach
|
||||||
|
normalem Tod). E2E: Levelzeit auf 2s gestutzt -> 3 Versuche + Rueckkehr
|
||||||
|
zur Karte nach 13.4s. --once exit 0.
|
||||||
|
|||||||
+10
-1
@@ -780,6 +780,15 @@ def run_level(clock, assets, audio_paths, map_name='W1L1'):
|
|||||||
vx=55.0 * player.facing, t=0.0))
|
vx=55.0 * player.facing, t=0.0))
|
||||||
|
|
||||||
keys = pygame.key.get_pressed()
|
keys = pygame.key.get_pressed()
|
||||||
|
time_left = info['time'] - (time.monotonic() - start)
|
||||||
|
# Zeit abgelaufen -> wie Herzen leer: Sterbeanimation, Leben -1
|
||||||
|
# (Stefans Fund: "bei 0 wird mir kein Leben abgezogen")
|
||||||
|
if dying is None and time_left <= 0:
|
||||||
|
hearts = 0
|
||||||
|
player.hurt_t = 0.0
|
||||||
|
player.force_slot = SLOT_DEATH
|
||||||
|
dying = dict(t=0.0, vy=-260.0,
|
||||||
|
drop_y=player.y - 40.0, drop_vy=-30.0)
|
||||||
if dying is None:
|
if dying is None:
|
||||||
player.update(level, dt, keys)
|
player.update(level, dt, keys)
|
||||||
else:
|
else:
|
||||||
@@ -800,6 +809,7 @@ def run_level(clock, assets, audio_paths, map_name='W1L1'):
|
|||||||
player.x, player.y = spawn_px
|
player.x, player.y = spawn_px
|
||||||
player.vy = 0.0
|
player.vy = 0.0
|
||||||
player.spawn_t = SPAWN_ANIM_SECONDS
|
player.spawn_t = SPAWN_ANIM_SECONDS
|
||||||
|
start = time.monotonic() # neuer Versuch = frische Levelzeit
|
||||||
|
|
||||||
# Tuer-Sequenz: offen zeigen (Figur schaut rein), nach 1s die Aktion
|
# Tuer-Sequenz: offen zeigen (Figur schaut rein), nach 1s die Aktion
|
||||||
if door_open_t is not None:
|
if door_open_t is not None:
|
||||||
@@ -908,7 +918,6 @@ def run_level(clock, assets, audio_paths, map_name='W1L1'):
|
|||||||
overlay.fill(WATER_TINT)
|
overlay.fill(WATER_TINT)
|
||||||
canvas.blit(overlay, (0, top))
|
canvas.blit(overlay, (0, top))
|
||||||
|
|
||||||
time_left = info['time'] - (time.monotonic() - start)
|
|
||||||
hud.draw(canvas, VIEW_H, player.d, cookies=0, score=0,
|
hud.draw(canvas, VIEW_H, player.d, cookies=0, score=0,
|
||||||
hearts=hearts, lives=lives, time_left=time_left)
|
hearts=hearts, lives=lives, time_left=time_left)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user