Karten-Fortschritt wie im Original: erledigte Punkte blau, bereister Weg als orange Punktspur, Unerreichtes unsichtbar (Stefans Durchspiel-Screenshots)
This commit is contained in:
@@ -2043,3 +2043,21 @@ verbrachte viel Zeit am Haus. Trotzdem ergiebig:
|
||||
rechts: ARE-Typen 17/18/31 ab x~1700).
|
||||
TODO naechste Aufnahme: bessere Sprung-Timeline (Saeulen-Gaps schaffen),
|
||||
um bis zu den Gegner-Spawns und zum Levelende zu kommen.
|
||||
|
||||
## 26.07.2026 (31) -- Karten-Fortschrittsanzeige + Level-Zusammenfassung (Stefans Durchspiel-Referenzen)
|
||||
|
||||
Stefan hat Level 1 im Original durchgespielt. Zwei Referenz-Screenshots:
|
||||
|
||||
1. LEVEL-ZUSAMMENFASSUNG (nach Levelende): Tafel mit SCORE, "MAXIMUM n /
|
||||
GESAMMELT n" (Cerealien), "VITAMINE n", gruene Buchstaben-Kaestchen
|
||||
(=> die A-O.BOBs sind VITAMIN-BUCHSTABEN! A, B1, C ... -- passt zu
|
||||
VITAMIN.SRB und ARE-Typ 12?), "n x [Kopf]" (Bonusleben?), links/rechts
|
||||
Gruppenbilder der 4 Charaktere. TODO: Screen nachbauen, sobald es
|
||||
Levelende + Sammel-Zaehler gibt.
|
||||
2. KARTE nach Durchspielen: erledigte Punkte werden BLAU (KARTE2), der
|
||||
gelaufene Weg zwischen zwei Leveln = Spur kleiner ORANGER Punkte
|
||||
(KARTE1) entlang der Original-Wegpunkte, noch nicht erreichte Level
|
||||
bleiben UNSICHTBAR. UMGESETZT in worldmap.draw(): i < current = blau,
|
||||
Pfade 1..current = Punktspur (Wegpunkte um Label-Offset -5,-16
|
||||
versetzt), Rest unsichtbar. Interim: "erledigt" = links vom Cursor
|
||||
(echtes Abschluss-Tracking kommt mit dem Levelende-Feature).
|
||||
|
||||
+15
-2
@@ -120,6 +120,7 @@ class WorldMap:
|
||||
self.dot_big_on = intro.make_border_bg_transparent(assets.pcc_surface('KARTE0'))
|
||||
self.dot_big_off = intro.make_border_bg_transparent(assets.pcc_surface('KARTE2'))
|
||||
self.dot_small = intro.make_border_bg_transparent(assets.pcc_surface('KARTE3'))
|
||||
self.dot_trail = intro.make_border_bg_transparent(assets.pcc_surface('KARTE1'))
|
||||
self.heads = {c: intro.make_border_bg_transparent(assets.pcc_surface(n))
|
||||
for c, n in HEAD_SPRITE.items()}
|
||||
self.current = 0 # Segment 0 = W1L1 (DOSBox-Messung: Startpunkt (53,56))
|
||||
@@ -128,6 +129,11 @@ class WorldMap:
|
||||
canvas.blit(self.karte, (0, 0))
|
||||
head = self.heads.get(char, self.heads['TONY'])
|
||||
head_phase = int(t / BLINK_SECONDS) % 2 == 0
|
||||
# Original-Anzeigeregeln (Stefans Screenshot nach Durchspielen von
|
||||
# Level 1): bereiste Wege = Spur kleiner ORANGER Punkte (KARTE1)
|
||||
# entlang der Wegpunkte, erledigte/besuchte Level = BLAUER Punkt
|
||||
# (KARTE2), aktueller Punkt = orange + blinkender Kopf, alles
|
||||
# noch nicht Erreichte bleibt UNSICHTBAR.
|
||||
for i, seg in enumerate(self.segments):
|
||||
if seg['label'] is None:
|
||||
continue
|
||||
@@ -138,8 +144,15 @@ class WorldMap:
|
||||
canvas.blit(self.dot_big_on, (bx + DOT_OFF[0], by + DOT_OFF[1]))
|
||||
if head_phase:
|
||||
canvas.blit(head, (bx + HEAD_OFF[0], by + HEAD_OFF[1]))
|
||||
else:
|
||||
canvas.blit(self.dot_small, (bx + SMALL_OFF[0], by + SMALL_OFF[1]))
|
||||
elif i < self.current:
|
||||
canvas.blit(self.dot_big_off, (bx + DOT_OFF[0], by + DOT_OFF[1]))
|
||||
# Punktspur auf den bereisten Pfaden (Segmente bis zum aktuellen).
|
||||
# Wegpunkte liegen auf der Stand-Linie; die Punktgrafik sitzt wie
|
||||
# die Levelpunkte um (-5,-16) versetzt (Label-Offset des Binaries).
|
||||
for i in range(1, self.current + 1):
|
||||
for wx, wy in self.segments[i]['waypoints'][1:-1]:
|
||||
canvas.blit(self.dot_trail,
|
||||
(wx - 5 + SMALL_OFF[0], wy - 16 + SMALL_OFF[1]))
|
||||
# waehrend des Laufens: Kopf entlang des Pfads
|
||||
if walk_pos is not None:
|
||||
px, py = walk_pos
|
||||
|
||||
Reference in New Issue
Block a user