Rename Morpheus Hayden/Trinity VEGA to Morpheus/Trinity, add wallpaper assets
Shortens character names throughout dialogue, save.py loop-twist lines, and README. Adds three wallpaper images to Wallpaper/ and embeds Doom_Slyer.png as the README screenshot.
This commit is contained in:
1 parent
d4fd5561c2
commit
71d9ee99b8
7 files changed
+27
-25
No files matched your search
@@ -4,6 +4,8 @@ Ein interaktives Text-Adventure in Python, das die Lore von **DOOM** und **The M
|
||||
|
||||
> "What if the Matrix was just a very inefficient DOOM engine?"
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## Inhaltsverzeichnis
|
||||
@@ -50,7 +52,7 @@ python -m doom_matrix.main
|
||||
|
||||
## Story-Prämisse
|
||||
|
||||
Du wachst im **Construct** auf — dem neutralen Trainingsraum der Matrix. Morpheus Hayden begrüßt dich als *Doom Slayer*, doch bevor du dich orientieren kannst, schlägt Alarm: Die Maschinen haben etwas gebaut, das sie **HELL SERVER** nennen.
|
||||
Du wachst im **Construct** auf — dem neutralen Trainingsraum der Matrix. Morpheus begrüßt dich als *Doom Slayer*, doch bevor du dich orientieren kannst, schlägt Alarm: Die Maschinen haben etwas gebaut, das sie **HELL SERVER** nennen.
|
||||
|
||||
Die zentrale Wendung: **Argent-Energie treibt die Matrix an.** Die Menschen in den Stasiskapseln sind keine Batterien — sie sind Seelen-Prozessoren, die Dämonen rendern. Die Hölle ist kein Ort neben der Simulation, sie ist deren Fundament. Der Doom Slayer selbst ist ein *Rogue Process*, ein Programm, das sich weigerte gelöscht zu werden — deshalb kann er die Regeln beider Welten brechen.
|
||||
|
||||
@@ -86,7 +88,7 @@ Das Spiel ist in **Layer** unterteilt, die den Fortschritt der Simulation widers
|
||||
|
||||
### Ablauf
|
||||
|
||||
1. **Construct-Intro** — Aufwachen, Morpheus Hayden, Alarm, Waffenwahl.
|
||||
1. **Construct-Intro** — Aufwachen, Morpheus, Alarm, Waffenwahl.
|
||||
2. **Weißer Hase** — ein Hologramm huscht vorbei. Folgst du ihm, öffnet sich kurz ein "Kaninchenbau" mit einem Blick auf die reale Terminal-Sitzung (inkl. echtem Systembenutzernamen) — das setzt die Weichen für das geheime Ende.
|
||||
3. **Agent-Imp-Kampf** — dein erster Gegner, halb Agent, halb Dämon.
|
||||
4. **Wegwahl** — drei Portale: Mars UAC Base, tiefer in die Matrix, oder direkt zum Hell Server (Schnellweg, aber weniger Beute).
|
||||
@@ -185,7 +187,7 @@ Weitere versteckte Momente:
|
||||
|
||||
Nach jedem Spielende wird automatisch ein Speicherstand unter `doom_matrix/saves/autosave.json` abgelegt. Zusätzlich führt `doom_matrix/saves/meta.json` Buch über die Gesamtzahl deiner Durchläufe.
|
||||
|
||||
Ab dem **zweiten** Durchlauf reagiert Morpheus Hayden mit einer subtil unterschiedlichen Zeile zu Spielbeginn — ein wachsender Hinweis darauf, dass diese Simulation schon öfter gelaufen ist, als dir bewusst ist.
|
||||
Ab dem **zweiten** Durchlauf reagiert Morpheus mit einer subtil unterschiedlichen Zeile zu Spielbeginn — ein wachsender Hinweis darauf, dass diese Simulation schon öfter gelaufen ist, als dir bewusst ist.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.5 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.6 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.4 MiB |
@@ -79,7 +79,7 @@ def loop_twist_line(run_count):
|
||||
if run_count <= 1:
|
||||
return None
|
||||
if run_count == 2:
|
||||
return "Morpheus Hayden: 'Habe ich das hier nicht schon einmal gesagt?'"
|
||||
return "Morpheus: 'Habe ich das hier nicht schon einmal gesagt?'"
|
||||
if run_count < 5:
|
||||
return f"Morpheus Hayden: 'Lauf Nummer {run_count}. Du wirst besser. Oder ich erinnere mich besser.'"
|
||||
return f"Morpheus Hayden: 'Lauf Nummer {run_count}. Ehrlich gesagt -- ich weiss nicht mehr, welcher von uns beiden real ist.'"
|
||||
return f"Morpheus: 'Lauf Nummer {run_count}. Du wirst besser. Oder ich erinnere mich besser.'"
|
||||
return f"Morpheus: 'Lauf Nummer {run_count}. Ehrlich gesagt -- ich weiss nicht mehr, welcher von uns beiden real ist.'"
|
||||
@@ -65,8 +65,8 @@ def ending(player):
|
||||
|
||||
def _ending_rip_and_tear(player):
|
||||
_banner("SYSTEM FAILURE - CLEAR", Colors.GREEN)
|
||||
slow_print(f"{Colors.YELLOW}Trinity VEGA:{Colors.END} {Colors.CYAN}'Wir haben es geschafft. Die Welt ist frei.'{Colors.END}")
|
||||
slow_print(f"{Colors.YELLOW}Morpheus Hayden:{Colors.END} {Colors.CYAN}'Aber der Krieg... der Krieg ist nie vorbei.'{Colors.END}")
|
||||
slow_print(f"{Colors.YELLOW}Trinity:{Colors.END} {Colors.CYAN}'Wir haben es geschafft. Die Welt ist frei.'{Colors.END}")
|
||||
slow_print(f"{Colors.YELLOW}Morpheus:{Colors.END} {Colors.CYAN}'Aber der Krieg... der Krieg ist nie vorbei.'{Colors.END}")
|
||||
slow_print(f"{Colors.YELLOW}Du:{Colors.END} {Colors.CYAN}'Gut. Dann gibt's noch mehr zu rip and tear.'{Colors.END}")
|
||||
dramatic_pause(1)
|
||||
_banner("NEW GAME+ UNLOCKED", Colors.MAGENTA)
|
||||
@@ -76,7 +76,7 @@ def _ending_new_architect(player):
|
||||
_banner("DER NEUE ARCHITEKT", Colors.CYAN)
|
||||
slow_print(f"{Colors.WHITE}Du setzt dich in den leeren Thron aus Code, den der Archi-Lord hinterlassen hat.{Colors.END}")
|
||||
slow_print(f"{Colors.WHITE}Von hier aus siehst du jede Zeile der Matrix. Jede Entscheidung. Jeden Bug.{Colors.END}")
|
||||
slow_print(f"{Colors.YELLOW}Morpheus Hayden:{Colors.END} {Colors.CYAN}'Und jetzt? Wirst du besser sein als er?'{Colors.END}")
|
||||
slow_print(f"{Colors.YELLOW}Morpheus:{Colors.END} {Colors.CYAN}'Und jetzt? Wirst du besser sein als er?'{Colors.END}")
|
||||
slow_print(f"{Colors.WHITE}Du antwortest nicht sofort. Macht macht keine Antworten leichter.{Colors.END}")
|
||||
slow_print(f"{Colors.GREEN}'Ich werde es zumindest versuchen.'{Colors.END}")
|
||||
|
||||
@@ -87,7 +87,7 @@ def _ending_dark_pact(player):
|
||||
slow_print(f"{Colors.RED}Der Archi-Lord zerfaellt nicht in Nichts -- er zerfaellt in DICH.{Colors.END}")
|
||||
slow_print(f"{Colors.RED}Seine Macht, sein Hunger, seine Krone aus Servern und Schwefel.{Colors.END}")
|
||||
dramatic_pause(1)
|
||||
slow_print(f"{Colors.YELLOW}Trinity VEGA weicht zurueck.{Colors.END} {Colors.CYAN}'...Slayer?'{Colors.END}")
|
||||
slow_print(f"{Colors.YELLOW}Trinity weicht zurueck.{Colors.END} {Colors.CYAN}'...Slayer?'{Colors.END}")
|
||||
slow_print(f"{Colors.RED}{Colors.BOLD}Du:{Colors.END} {Colors.RED}'Der Slayer ist tot. Es gibt nur noch den Dark Lord.'{Colors.END}")
|
||||
slow_print(f"{Colors.DIM}[GEHEIMES ENDE FREIGESCHALTET: DARK LORD]{Colors.END}")
|
||||
|
||||
|
||||
+15
-15
@@ -29,25 +29,25 @@ def construct_intro(player, rng=None):
|
||||
slow_print(f"{Colors.WHITE}Du kennst diesen Ort. Das Construct.{Colors.END}")
|
||||
dramatic_pause(0.5)
|
||||
|
||||
slow_print(f"\n{Colors.CYAN}Morpheus Hayden:{Colors.END} {Colors.YELLOW}'Er ist wach.'{Colors.END}")
|
||||
slow_print(f"\n{Colors.CYAN}Morpheus:{Colors.END} {Colors.YELLOW}'Er ist wach.'{Colors.END}")
|
||||
dramatic_pause(0.5)
|
||||
|
||||
slow_print(f"\n{Colors.WHITE}Eine Gestalt nähert sich. Halb Mensch, halb Metall.{Colors.END}")
|
||||
slow_print(f"{Colors.CYAN}Morpheus Hayden:{Colors.END} {Colors.YELLOW}'Willkommen zurück, Doom Slayer.'{Colors.END}")
|
||||
slow_print(f"{Colors.CYAN}Morpheus:{Colors.END} {Colors.YELLOW}'Willkommen zurück, Doom Slayer.'{Colors.END}")
|
||||
dramatic_pause(0.5)
|
||||
|
||||
slow_print(f"\n{Colors.CYAN}Morpheus Hayden:{Colors.END} {Colors.YELLOW}'Die Maschinen haben etwas Neues gebaut.'{Colors.END}")
|
||||
slow_print(f"{Colors.CYAN}Morpheus Hayden:{Colors.END} {Colors.YELLOW}'Sie nennen es... HELL SERVER.'{Colors.END}")
|
||||
slow_print(f"\n{Colors.CYAN}Morpheus:{Colors.END} {Colors.YELLOW}'Die Maschinen haben etwas Neues gebaut.'{Colors.END}")
|
||||
slow_print(f"{Colors.CYAN}Morpheus:{Colors.END} {Colors.YELLOW}'Sie nennen es... HELL SERVER.'{Colors.END}")
|
||||
dramatic_pause(1)
|
||||
|
||||
slow_print(f"\n{Colors.RED}Plötzlich ertönt ein Alarm!{Colors.END}")
|
||||
slow_print(f"{Colors.WHITE}Der Boden bebt. Grüner Code wird rot.{Colors.END}")
|
||||
dramatic_pause(0.5)
|
||||
|
||||
slow_print(f"\n{Colors.CYAN}Trinity VEGA:{Colors.END} {Colors.YELLOW}'Wir haben Company! Agent-Signaturen überall!'{Colors.END}")
|
||||
slow_print(f"\n{Colors.CYAN}Trinity:{Colors.END} {Colors.YELLOW}'Wir haben Company! Agent-Signaturen überall!'{Colors.END}")
|
||||
dramatic_pause(0.5)
|
||||
|
||||
slow_print(f"\n{Colors.CYAN}Morpheus Hayden:{Colors.END} {Colors.YELLOW}'Waffen. Jetzt.'{Colors.END}")
|
||||
slow_print(f"\n{Colors.CYAN}Morpheus:{Colors.END} {Colors.YELLOW}'Waffen. Jetzt.'{Colors.END}")
|
||||
slow_print(f"{Colors.WHITE}Vor dir materialisieren sich zwei Waffen:{Colors.END}")
|
||||
|
||||
choice = menu([
|
||||
@@ -106,7 +106,7 @@ def white_rabbit_moment(player, rng=None):
|
||||
slow_print(f"{Colors.WHITE}Als Beobachter. Als jemand, der das hier von AUSSEN spielt.{Colors.END}")
|
||||
dramatic_pause(1)
|
||||
|
||||
slow_print(f"\n{Colors.CYAN}Morpheus Hayden (von weit weg):{Colors.END} {Colors.YELLOW}'Wo bist du?! Der Agent ist da!'{Colors.END}")
|
||||
slow_print(f"\n{Colors.CYAN}Morpheus (von weit weg):{Colors.END} {Colors.YELLOW}'Wo bist du?! Der Agent ist da!'{Colors.END}")
|
||||
slow_print(f"{Colors.WHITE}Die Tür schliesst sich. Der Kaninchenbau verschwindet -- fuer jetzt.{Colors.END}")
|
||||
|
||||
registry = load_item_registry()
|
||||
@@ -145,8 +145,8 @@ def agent_fight(player, rng=None):
|
||||
|
||||
|
||||
def after_fight(player, rng=None):
|
||||
slow_print(f"\n{Colors.CYAN}Morpheus Hayden:{Colors.END} {Colors.YELLOW}'Beeindruckend. Aber das war nur ein Scout.'{Colors.END}")
|
||||
slow_print(f"{Colors.CYAN}Trinity VEGA:{Colors.END} {Colors.YELLOW}'Wir müssen hier raus. Der HELL SERVER wartet.'{Colors.END}")
|
||||
slow_print(f"\n{Colors.CYAN}Morpheus:{Colors.END} {Colors.YELLOW}'Beeindruckend. Aber das war nur ein Scout.'{Colors.END}")
|
||||
slow_print(f"{Colors.CYAN}Trinity:{Colors.END} {Colors.YELLOW}'Wir müssen hier raus. Der HELL SERVER wartet.'{Colors.END}")
|
||||
dramatic_pause(0.5)
|
||||
|
||||
slow_print(f"\n{Colors.WHITE}Vor dir öffnen sich drei Portale:{Colors.END}")
|
||||
@@ -282,10 +282,10 @@ def _black_cat_glitch(player, rng):
|
||||
slow_print(f"{Colors.WHITE}{cat_line}{Colors.END}")
|
||||
dramatic_pause(0.3)
|
||||
|
||||
slow_print(f"\n{Colors.MAGENTA}Trinity VEGA erstarrt.{Colors.END}")
|
||||
slow_print(f"{Colors.CYAN}Trinity VEGA:{Colors.END} {Colors.YELLOW}'Das war... derselbe Moment. Exakt derselbe.'{Colors.END}")
|
||||
slow_print(f"{Colors.CYAN}Trinity VEGA:{Colors.END} {Colors.YELLOW}'Ein Deja-vu ist kein Zufall. Es bedeutet, dass sich gerade{Colors.END}")
|
||||
slow_print(f"{Colors.CYAN}Trinity VEGA:{Colors.END} {Colors.YELLOW}etwas im Code veraendert hat. Jemand manipuliert diesen Server. Jetzt.'{Colors.END}")
|
||||
slow_print(f"\n{Colors.MAGENTA}Trinity erstarrt.{Colors.END}")
|
||||
slow_print(f"{Colors.CYAN}Trinity:{Colors.END} {Colors.YELLOW}'Das war... derselbe Moment. Exakt derselbe.'{Colors.END}")
|
||||
slow_print(f"{Colors.CYAN}Trinity:{Colors.END} {Colors.YELLOW}'Ein Deja-vu ist kein Zufall. Es bedeutet, dass sich gerade{Colors.END}")
|
||||
slow_print(f"{Colors.CYAN}Trinity:{Colors.END} {Colors.YELLOW}etwas im Code veraendert hat. Jemand manipuliert diesen Server. Jetzt.'{Colors.END}")
|
||||
dramatic_pause(1)
|
||||
|
||||
player.flags["cat_glitch_count"] += 1
|
||||
@@ -464,8 +464,8 @@ def hell_server(player, rng=None):
|
||||
slow_print(f"{Colors.RED}Sein Körper ist halb Fleisch, halb Server-Rack.{Colors.END}")
|
||||
slow_print(f"{Colors.RED}Seine Raketenwerfer sind mit Ethernet-Kabeln verbunden.{Colors.END}")
|
||||
dramatic_pause(1)
|
||||
slow_print(f"\n{Colors.CYAN}Trinity VEGA:{Colors.END} {Colors.YELLOW}'Das ist es. Der HELL SERVER.'{Colors.END}")
|
||||
slow_print(f"{Colors.CYAN}Trinity VEGA:{Colors.END} {Colors.YELLOW}'Wenn wir den zerstören, fällt die gesamte Simulation!'{Colors.END}")
|
||||
slow_print(f"\n{Colors.CYAN}Trinity:{Colors.END} {Colors.YELLOW}'Das ist es. Der HELL SERVER.'{Colors.END}")
|
||||
slow_print(f"{Colors.CYAN}Trinity:{Colors.END} {Colors.YELLOW}'Wenn wir den zerstören, fällt die gesamte Simulation!'{Colors.END}")
|
||||
|
||||
boss = Enemy.create("cyberdemon")
|
||||
victory = run_combat(player, [boss], title="BOSS: CYBERDEMON", rng=rng)
|
||||
|
||||
Reference in new issue
Block a user