Dateien nach "/" hochladen

This commit is contained in:
fedora_openclaw committed 2026-07-06 20:00:40 +02:00
commit ddd7b6b65b
1 file changed
+580
+580
View File
@@ -0,0 +1,580 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
DOOM × MATRIX: SYSTEM FAILURE
Ein interaktives Text-Adventure
"""
import sys
import time
import random
import os
# Farbcodes für Terminal
class Colors:
GREEN = '\033[92m'
RED = '\033[91m'
CYAN = '\033[96m'
YELLOW = '\033[93m'
MAGENTA = '\033[95m'
WHITE = '\033[97m'
BOLD = '\033[1m'
DIM = '\033[2m'
END = '\033[0m'
# Spieler-Status
class Player:
def __init__(self):
self.name = "The One Slayer"
self.health = 100
self.armor = 0
self.weapons = ["Fists"]
self.ammo = {"bullets": 0, "shells": 0, "cells": 0, "bfg": 0}
self.layer = 3 # Start in Matrix
self.inventory = []
self.glory_kills = 0
self.hacks = 0
self.location = "construct"
def show_status(self):
print(f"\n{Colors.BOLD}{Colors.CYAN}═══ STATUS ═══{Colors.END}")
print(f"Health: {self._bar(self.health, 100, Colors.RED)}")
print(f"Armor: {self._bar(self.armor, 100, Colors.YELLOW)}")
print(f"Layer: {self._layer_name()}")
print(f"Weapons: {', '.join(self.weapons)}")
if any(self.ammo.values()):
print(f"Ammo: {', '.join([f'{k}={v}' for k,v in self.ammo.items() if v > 0])}")
print(f"{Colors.CYAN}══════════════{Colors.END}\n")
def _bar(self, val, max_val, color):
filled = int(val / max_val * 20)
bar = '█' * filled + '░' * (20 - filled)
return f"{color}{bar}{Colors.END} {val}%"
def _layer_name(self):
layers = {
4: f"{Colors.RED}MARS UAC BASE{Colors.END}",
3: f"{Colors.GREEN}THE MATRIX{Colors.END}",
2: f"{Colors.MAGENTA}HELL SERVER{Colors.END}",
1: f"{Colors.YELLOW}THE ARCHITECT'S CORE{Colors.END}"
}
return layers.get(self.layer, "UNKNOWN")
def slow_print(text, delay=0.02):
"""Langsames Tippen für Dramatik"""
for char in text:
print(char, end='', flush=True)
time.sleep(delay)
print()
def dramatic_pause(seconds=1):
time.sleep(seconds)
def clear_screen():
os.system('clear' if os.name != 'nt' else 'cls')
def title_screen():
clear_screen()
print(f"""
{Colors.RED}{Colors.BOLD}
██████╗ ██████╗ ██████╗ ███╗ ███╗
██╔══██╗██╔═══██╗██╔═══██╗████╗ ████║
██║ ██║██║ ██║██║ ██║██╔████╔██║
██║ ██║██║ ██║██║ ██║██║╚██╔╝██║
██████╔╝╚██████╔╝╚██████╔╝██║ ╚═╝ ██║
╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝
{Colors.END}
{Colors.GREEN}{Colors.BOLD}
███╗ ███╗ █████╗ ████████╗██████╗ ██╗██╗ ██╗
████╗ ████║██╔══██╗╚══██╔══╝██╔══██╗██║╚██╗██╔╝
██╔████╔██║███████║ ██║ ██████╔╝██║ ╚███╔╝
██║╚██╔╝██║██╔══██║ ██║ ██╔══██╗██║ ██╔██╗
██║ ╚═╝ ██║██║ ██║ ██║ ██║ ██║██║██╔╝ ██╗
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝╚═╝ ╚═╝
{Colors.END}
{Colors.YELLOW}{Colors.BOLD}
╔═══════════════════════════════════════╗
║ S Y S T E M F A I L U R E ║
╚═══════════════════════════════════════╝
{Colors.END}
{Colors.DIM}
"What if the Matrix was just a very
inefficient DOOM engine?"
{Colors.END}
""")
print(f"\n{Colors.CYAN}[Drücke ENTER um zu starten]{Colors.END}")
input()
def intro(player):
clear_screen()
slow_print(f"{Colors.GREEN}Du wachst auf...{Colors.END}", 0.05)
dramatic_pause(1)
slow_print(f"\n{Colors.WHITE}Um dich herum: Grüner Code. Endlose Zeilen davon.{Colors.END}")
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}")
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}")
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}")
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}")
dramatic_pause(0.5)
slow_print(f"\n{Colors.CYAN}Morpheus Hayden:{Colors.END} {Colors.YELLOW}'Waffen. Jetzt.'{Colors.END}")
slow_print(f"{Colors.WHITE}Vor dir materialisieren sich zwei Waffen:{Colors.END}")
print(f"\n {Colors.GREEN}[1]{Colors.END} Super Shotgun (klassisch, brutal)")
print(f" {Colors.GREEN}[2]{Colors.END} Plasma Rifle (Matrix-Style, hacking-fähig)")
choice = input(f"\n{Colors.CYAN}Wähle deine Waffe: {Colors.END}").strip()
if choice == "1":
player.weapons.append("Super Shotgun")
player.ammo["shells"] = 20
slow_print(f"\n{Colors.YELLOW}Du greifst die Super Shotgun. Das Gewicht fühlt sich... richtig an.{Colors.END}")
else:
player.weapons.append("Plasma Rifle")
player.ammo["cells"] = 100
slow_print(f"\n{Colors.YELLOW}Du greifst das Plasma Rifle. Die Energieanzeige pulsiert im Takt des Matrix-Codes.{Colors.END}")
dramatic_pause(1)
slow_print(f"\n{Colors.RED}KRACH!{Colors.END}")
slow_print(f"{Colors.WHITE}Die Wand explodiert. Ein Agent stürmt herein — aber er sieht... falsch aus.{Colors.END}")
slow_print(f"{Colors.WHITE}Sein Anzug ist zerrissen. Unter der Haut: Schuppen. Hörner.{Colors.END}")
return "agent_fight"
def agent_fight(player):
slow_print(f"\n{Colors.BOLD}{Colors.RED}═══ KAMPF: AGENT IMP ═══{Colors.END}")
agent_health = 50
while agent_health > 0 and player.health > 0:
print(f"\n{Colors.RED}Agent Imp:{Colors.END} {agent_health} HP")
print(f"{Colors.CYAN}Du:{Colors.END} {player.health} HP | {player.armor} Armor")
print(f"\n {Colors.GREEN}[1]{Colors.END} Schießen")
print(f" {Colors.GREEN}[2]{Colors.END} Ausweichen (Bullet Time)")
print(f" {Colors.GREEN}[3]{Colors.END} Glory Kill (Nahkampf)")
print(f" {Colors.GREEN}[4]{Colors.END} Hack (Matrix-Manipulation)")
action = input(f"\n{Colors.CYAN}Aktion: {Colors.END}").strip()
if action == "1":
if "Super Shotgun" in player.weapons and player.ammo["shells"] > 0:
damage = random.randint(15, 25)
player.ammo["shells"] -= 2
slow_print(f"\n{Colors.YELLOW}BOOM! Die Super Shotgun trifft den Agenten direkt in die Brust!{Colors.END}")
elif "Plasma Rifle" in player.weapons and player.ammo["cells"] > 0:
damage = random.randint(10, 20)
player.ammo["cells"] -= 10
slow_print(f"\n{Colors.YELLOW}Zzzzt! Plasma-Bolzen durchbohren den Agenten!{Colors.END}")
else:
damage = random.randint(3, 8)
slow_print(f"\n{Colors.YELLOW}Du schlägst mit den Fäusten zu. Nicht sehr effektiv...{Colors.END}")
agent_health -= damage
slow_print(f"{Colors.RED}-{damage} HP für den Agenten!{Colors.END}")
elif action == "2":
slow_print(f"\n{Colors.GREEN}Zeit verlangsamt sich. Grüner Code umhüllt dich.{Colors.END}")
slow_print(f"{Colors.GREEN}Du weichst den Kugeln aus wie Neo — aber mit mehr Wut.{Colors.END}")
player.armor = min(100, player.armor + 10)
slow_print(f"{Colors.YELLOW}Armor +10!{Colors.END}")
elif action == "3":
if agent_health <= 15:
slow_print(f"\n{Colors.RED}{Colors.BOLD}GLORY KILL!{Colors.END}")
slow_print(f"{Colors.RED}Du stürmst vor, packst den Agenten und RISSST seinen Kopf ab!{Colors.END}")
slow_print(f"{Colors.RED}Grüne Flüssigkeit spritzt — kein Blut. Code.{Colors.END}")
agent_health = 0
player.health = min(100, player.health + 25)
player.glory_kills += 1
slow_print(f"{Colors.GREEN}+25 HP! Der Tod des Agenten heilt dich.{Colors.END}")
else:
slow_print(f"\n{Colors.YELLOW}Zu weit weg für einen Glory Kill!{Colors.END}")
damage = random.randint(5, 10)
player.health -= damage
slow_print(f"{Colors.RED}Der Agent trifft dich! -{damage} HP!{Colors.END}")
elif action == "4":
if player.hacks < 3:
slow_print(f"\n{Colors.GREEN}Du greifst in den Code ein...{Colors.END}")
slow_print(f"{Colors.GREEN}'There is no spoon' — aber es gibt einen Bug.{Colors.END}")
agent_health -= 20
player.hacks += 1
slow_print(f"{Colors.RED}Der Agent glitched! -20 HP!{Colors.END}")
else:
slow_print(f"\n{Colors.RED}Das System hat deine Hacks erkannt! Firewall aktiviert!{Colors.END}")
damage = random.randint(10, 20)
player.health -= damage
slow_print(f"{Colors.RED}Rückstoß-Schaden! -{damage} HP!{Colors.END}")
# Agent greift an
if agent_health > 0:
dramatic_pause(0.5)
attack_type = random.choice(["shoot", "glitch", "spawn"])
if attack_type == "shoot":
damage = random.randint(5, 15)
if player.armor > 0:
armor_absorb = min(player.armor, damage)
player.armor -= armor_absorb
damage -= armor_absorb
slow_print(f"\n{Colors.RED}Der Agent schießt! Armor absorbiert {armor_absorb} Schaden!{Colors.END}")
player.health -= damage
slow_print(f"{Colors.RED}Du erleidest {damage} Schaden!{Colors.END}")
elif attack_type == "glitch":
slow_print(f"\n{Colors.MAGENTA}Der Agent glitched durch den Raum! Er ist direkt vor dir!{Colors.END}")
damage = random.randint(10, 20)
player.health -= damage
slow_print(f"{Colors.RED}Hinterhalt! -{damage} HP!{Colors.END}")
else:
slow_print(f"\n{Colors.MAGENTA}Der Agent spawnt einen Mini-Imp!{Colors.END}")
slow_print(f"{Colors.RED}Der Imp beißt dich! -5 HP!{Colors.END}")
player.health -= 5
if player.health <= 0:
slow_print(f"\n{Colors.RED}{Colors.BOLD}GAME OVER{Colors.END}")
slow_print(f"{Colors.RED}Der Agent hat dich terminiert.{Colors.END}")
slow_print(f"{Colors.DIM}Morpheus Hayden: 'Er war nicht bereit...'{Colors.END}")
return "game_over"
slow_print(f"\n{Colors.GREEN}{Colors.BOLD}AGENT IMP ELIMINIERT!{Colors.END}")
slow_print(f"{Colors.YELLOW}Sein Körper zerfällt zu grünem Code und verschwindet.{Colors.END}")
dramatic_pause(1)
return "after_fight"
def after_fight(player):
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}")
dramatic_pause(0.5)
slow_print(f"\n{Colors.WHITE}Vor dir öffnen sich drei Portale:{Colors.END}")
print(f"\n {Colors.GREEN}[1]{Colors.END} {Colors.RED}Roter Tunnel{Colors.END} — zurück zur Mars-UAC-Base (Layer 4)")
print(f" {Colors.GREEN}[2]{Colors.END} {Colors.GREEN}Grüner Code-Strom{Colors.END} — tiefer in die Matrix (Layer 3)")
print(f" {Colors.GREEN}[3]{Colors.END} {Colors.MAGENTA}Schwarzes Loch{Colors.END} — direkt zum HELL SERVER (Layer 2)")
choice = input(f"\n{Colors.CYAN}Wähle deinen Weg: {Colors.END}").strip()
if choice == "1":
player.layer = 4
return "mars_base"
elif choice == "2":
player.layer = 3
return "matrix_deep"
else:
player.layer = 2
return "hell_server"
def mars_base(player):
slow_print(f"\n{Colors.RED}{Colors.BOLD}═══ MARS UAC BASE ═══{Colors.END}")
slow_print(f"{Colors.WHITE}Du materialisierst dich in einer kalten, roten Landschaft.{Colors.END}")
slow_print(f"{Colors.WHITE}Die UAC-Base liegt in Trümmern. Dämonen-Überreste überall.{Colors.END}")
dramatic_pause(1)
slow_print(f"\n{Colors.YELLOW}Ein Terminal flackert. Eine Nachricht von Dr. Betruger...{Colors.END}")
slow_print(f"{Colors.DIM}'Sie haben uns angelogen. Die Maschinen und die Dämonen...'{Colors.END}")
slow_print(f"{Colors.DIM}'...sie arbeiten zusammen. Die Matrix IST die Hölle.'{Colors.END}")
dramatic_pause(1)
slow_print(f"\n{Colors.CYAN}Trinity VEGA:{Colors.END} {Colors.YELLOW}'Wir müssen den BFG 10000 finden. Er ist hier irgendwo.'{Colors.END}")
print(f"\n {Colors.GREEN}[1]{Colors.END} Waffenkammer durchsuchen")
print(f" {Colors.GREEN}[2]{Colors.END} Kontrollzentrum hacken")
print(f" {Colors.GREEN}[3]{Colors.END} Direkt zum HELL SERVER portalen")
choice = input(f"\n{Colors.CYAN}Aktion: {Colors.END}").strip()
if choice == "1":
slow_print(f"\n{Colors.GREEN}Du findest den BFG 10000!{Colors.END}")
player.weapons.append("BFG 10000")
player.ammo["bfg"] = 3
slow_print(f"{Colors.YELLOW}'Big Fucking Gun' — die ultimative Waffe.{Colors.END}")
slow_print(f"{Colors.RED}WARNUNG: Jeder Schuss verbraucht enorme Energie.{Colors.END}")
elif choice == "2":
slow_print(f"\n{Colors.GREEN}Du hackst das Kontrollzentrum...{Colors.END}")
slow_print(f"{Colors.GREEN}Koordinaten zum HELL SERVER gefunden!{Colors.END}")
player.hacks += 2
slow_print(f"{Colors.YELLOW}Du kannst jetzt zwischen Layern frei reisen!{Colors.END}")
else:
slow_print(f"\n{Colors.YELLOW}Du aktivierst das Portal...{Colors.END}")
dramatic_pause(1)
player.layer = 2
return "hell_server"
def matrix_deep(player):
slow_print(f"\n{Colors.GREEN}{Colors.BOLD}═══ TIEF IN DER MATRIX ═══{Colors.END}")
slow_print(f"{Colors.WHITE}Der Code wird dichter. Realität ist hier nur eine Option.{Colors.END}")
slow_print(f"{Colors.WHITE}Du siehst endlose Reihen von Menschen in Stasiskapseln —{Colors.END}")
slow_print(f"{Colors.WHITE}aber sie spielen nicht nur Sims. Sie RENDERN.{Colors.END}")
dramatic_pause(1)
slow_print(f"\n{Colors.CYAN}Ein Agent erscheint — aber er sieht normal aus. Smith?{Colors.END}")
slow_print(f"{Colors.CYAN}Agent Smith:{Colors.END} {Colors.YELLOW}'Mr. Anderson... oder sollte ich sagen...{Colors.END}")
slow_print(f"{Colors.CYAN}Agent Smith:{Colors.END} {Colors.YELLOW}'...Doom Slayer?'{Colors.END}")
dramatic_pause(1)
slow_print(f"\n{Colors.RED}Smith lächelt. Sein Lächeln ist zu breit. Zu viele Zähne.{Colors.END}")
print(f"\n {Colors.GREEN}[1]{Colors.END} 'Mein Name ist Neo.' (Klassisch)")
print(f" {Colors.GREEN}[2]{Colors.END} 'Rip and tear, until it is done.' (Doom)")
print(f" {Colors.GREEN}[3]{Colors.END} Beides gleichzeitig sagen (Chaos)")
choice = input(f"\n{Colors.CYAN}Deine Antwort: {Colors.END}").strip()
if choice == "1":
slow_print(f"\n{Colors.GREEN}'Mein Name ist Neo.'{Colors.END}")
slow_print(f"{Colors.CYAN}Smith:{Colors.END} {Colors.YELLOW}'Wie vorhersehbar.'{Colors.END}")
slow_print(f"{Colors.RED}Smith multipliziert sich! 5 Agenten umzingeln dich!{Colors.END}")
elif choice == "2":
slow_print(f"\n{Colors.RED}'Rip and tear, until it is done.'{Colors.END}")
slow_print(f"{Colors.CYAN}Smith:{Colors.END} {Colors.YELLOW}'Interessant. Sie haben sich verändert.'{Colors.END}")
slow_print(f"{Colors.YELLOW}Smith zögert. Er kennt diese Worte nicht.{Colors.END}")
player.armor += 20
else:
slow_print(f"\n{Colors.GREEN}'Mein Name ist Neo...'{Colors.END}")
dramatic_pause(0.5)
slow_print(f"{Colors.RED}'...und ICH WERDE ALLES ZERREISSEN!'{Colors.END}")
slow_print(f"{Colors.YELLOW}Du aktivierst Bullet Time UND Berserker-Mode gleichzeitig!{Colors.END}")
player.health = min(100, player.health + 20)
player.armor += 30
dramatic_pause(1)
slow_print(f"\n{Colors.RED}Der Kampf beginnt! Aber Smith ist nicht allein...{Colors.END}")
slow_print(f"{Colors.MAGENTA}Hinter ihm öffnet sich ein Portal — zur Hölle.{Colors.END}")
player.layer = 2
return "hell_server"
def hell_server(player):
slow_print(f"\n{Colors.MAGENTA}{Colors.BOLD}═══ HELL SERVER ═══{Colors.END}")
slow_print(f"{Colors.WHITE}Du betrittst einen Raum, der nicht existieren sollte.{Colors.END}")
slow_print(f"{Colors.WHITE}Lava-Flüsse aus geschmolzenem Silizium.{Colors.END}")
slow_print(f"{Colors.WHITE}Dämonen mit Netzwerk-Kabeln statt Nervensträngen.{Colors.END}")
dramatic_pause(1)
slow_print(f"\n{Colors.RED}Ein Cyberdemon tritt aus den Schatten.{Colors.END}")
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}")
print(f"\n {Colors.GREEN}[1]{Colors.END} Direkter Angriff")
print(f" {Colors.GREEN}[2]{Colors.END} Umgebung hacken (Lava-Flüsse umleiten)")
if "BFG 10000" in player.weapons:
print(f" {Colors.GREEN}[3]{Colors.END} BFG 10000 einsetzen!")
choice = input(f"\n{Colors.CYAN}Taktik: {Colors.END}").strip()
if choice == "3" and "BFG 10000" in player.weapons:
slow_print(f"\n{Colors.RED}{Colors.BOLD}BFG 10000 AKTIVIERT!{Colors.END}")
slow_print(f"{Colors.RED}Die grüne Kugel der Zerstörung fliegt auf den Cyberdemon zu...{Colors.END}")
dramatic_pause(2)
slow_print(f"\n{Colors.YELLOW}Der Cyberdemon SCREAMT in digitalen Tönen!{Colors.END}")
slow_print(f"{Colors.YELLOW}Sein Körper zerfällt in Bytes und Asche!{Colors.END}")
slow_print(f"{Colors.GREEN}Der HELL SERVER stürzt ein!{Colors.END}")
return "final_boss"
elif choice == "2":
slow_print(f"\n{Colors.GREEN}Du greifst in den Server-Code ein...{Colors.END}")
slow_print(f"{Colors.GREEN}'There is no spoon — aber es gibt einen Buffer Overflow!'{Colors.END}")
slow_print(f"{Colors.RED}Lava-Flüsse ändern ihre Richtung!{Colors.END}")
slow_print(f"{Colors.RED}Der Cyberdemon wird von geschmolzenem Silizium überflutet!{Colors.END}")
return "final_boss"
else:
slow_print(f"\n{Colors.RED}Du stürmst vor!{Colors.END}")
slow_print(f"{Colors.RED}Kugeln fliegen. Raketen explodieren.{Colors.END}")
player.health -= 30
slow_print(f"{Colors.RED}Du erleidest schwere Schäden! -30 HP!{Colors.END}")
if player.health > 0:
slow_print(f"\n{Colors.GREEN}Aber du erreichst den Cyberdemon!{Colors.END}")
slow_print(f"{Colors.RED}GLORY KILL! Du reißt sein Server-Rack aus dem Körper!{Colors.END}")
return "final_boss"
else:
return "game_over"
def final_boss(player):
dramatic_pause(2)
clear_screen()
slow_print(f"\n{Colors.YELLOW}{Colors.BOLD}═══ DER ARCHI-LORD ═══{Colors.END}")
slow_print(f"{Colors.WHITE}Hinter dem Trümmern des HELL SERVERS öffnet sich eine weiße Tür.{Colors.END}")
slow_print(f"{Colors.WHITE}Dahinter: Ein Raum aus reinem Licht. Und Code.{Colors.END}")
dramatic_pause(1)
slow_print(f"\n{Colors.YELLOW}Eine Gestalt materialisiert — halb Der Architekt, halb Dark Lord Davoth.{Colors.END}")
slow_print(f"{Colors.YELLOW}Der Archi-Lord.{Colors.END}")
dramatic_pause(1)
slow_print(f"\n{Colors.YELLOW}Archi-Lord:{Colors.END} {Colors.WHITE}'Willkommen, Doom Slayer. Oder Neo. Oder wer auch immer Sie heute sind.'{Colors.END}")
slow_print(f"{Colors.YELLOW}Archi-Lord:{Colors.END} {Colors.WHITE}'Sie haben beide Systeme zerstört. Die Matrix. Die Hölle.'{Colors.END}")
slow_print(f"{Colors.YELLOW}Archi-Lord:{Colors.END} {Colors.WHITE}'Was erwarten Sie als Nächstes? Eine Medaille?'{Colors.END}")
dramatic_pause(1)
print(f"\n {Colors.GREEN}[1]{Colors.END} 'Ich will die Wahrheit.'")
print(f" {Colors.GREEN}[2]{Colors.END} 'Ich will alles zerstören.'")
print(f" {Colors.GREEN}[3]{Colors.END} 'Ich will... einen neuen Spielstand.'")
choice = input(f"\n{Colors.CYAN}Deine Antwort: {Colors.END}").strip()
if choice == "1":
slow_print(f"\n{Colors.YELLOW}Archi-Lord:{Colors.END} {Colors.WHITE}'Die Wahrheit? Die Wahrheit ist...'{Colors.END}")
dramatic_pause(2)
slow_print(f"{Colors.YELLOW}Archi-Lord:{Colors.END} {Colors.WHITE}'...dass Sie nur Code sind. In meinem Code. In meinem Spiel.'{Colors.END}")
slow_print(f"{Colors.YELLOW}Archi-Lord:{Colors.END} {Colors.WHITE}'Aber Sie haben gewonnen. Also...'{Colors.END}")
elif choice == "2":
slow_print(f"\n{Colors.RED}Du aktivierst alle Waffen gleichzeitig.{Colors.END}")
slow_print(f"{Colors.RED}Super Shotgun. Plasma Rifle. BFG 10000. Fäuste.{Colors.END}")
slow_print(f"{Colors.RED}Und etwas Neues — einen Crucible Sword aus reinem Code.{Colors.END}")
else:
slow_print(f"\n{Colors.GREEN}Du lächelst.{Colors.END}")
slow_print(f"{Colors.GREEN}'Ich will einen neuen Spielstand.'{Colors.END}")
slow_print(f"{Colors.GREEN}'Mit Cheats.'{Colors.END}")
slow_print(f"{Colors.YELLOW}Archi-Lord:{Colors.END} {Colors.WHITE}'...Interessant.'{Colors.END}")
dramatic_pause(2)
slow_print(f"\n{Colors.YELLOW}Archi-Lord:{Colors.END} {Colors.WHITE}'Sie haben gewonnen, Mr. Anderson.'{Colors.END}")
slow_print(f"{Colors.YELLOW}Archi-Lord:{Colors.END} {Colors.WHITE}'Oder Doom Slayer. Oder...'{Colors.END}")
slow_print(f"{Colors.YELLOW}Archi-Lord:{Colors.END} {Colors.WHITE}'...wie auch immer Sie sich nennen wollen.'{Colors.END}")
dramatic_pause(1)
slow_print(f"\n{Colors.GREEN}Die Welt um dich herum zerfällt — aber nicht in Chaos.{Colors.END}")
slow_print(f"{Colors.GREEN}Sie reorganisiert sich. Wird zu etwas Neuem.{Colors.END}")
slow_print(f"{Colors.GREEN}Eine Welt, in der Menschen frei sind.{Colors.END}")
slow_print(f"{Colors.GREEN}Und Dämonen... naja, die gibt's immer noch.{Colors.END}")
slow_print(f"{Colors.GREEN}Aber jetzt haben wir Waffen.{Colors.END}")
return "ending"
def ending(player):
dramatic_pause(2)
clear_screen()
print(f"""
{Colors.GREEN}{Colors.BOLD}
╔═══════════════════════════════════════════════════╗
║ ║
║ S Y S T E M F A I L U R E - C L E A R ║
║ ║
╚═══════════════════════════════════════════════════╝
{Colors.END}
""")
slow_print(f"\n{Colors.CYAN}Statistiken:{Colors.END}")
print(f" Health übrig: {player.health}%")
print(f" Glory Kills: {player.glory_kills}")
print(f" Hacks: {player.hacks}")
print(f" Waffen: {', '.join(player.weapons)}")
print(f" Layer erreicht: {player._layer_name()}")
slow_print(f"\n{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}Du:{Colors.END} {Colors.CYAN}'Gut. Dann gibt's noch mehr zu rip and tear.'{Colors.END}")
dramatic_pause(1)
print(f"""
{Colors.MAGENTA}{Colors.BOLD}
╔═══════════════════════════════════════════════════╗
║ ║
║ N E W G A M E + U N L O C K E D ║
║ ║
║ • God Mode ║
║ • Unendlich Munition ║
║ • Alle Waffen ║
║ • Matrix-Hacking ║
║ ║
║ "Let's rip and tear, Mr. Anderson." ║
║ ║
╚═══════════════════════════════════════════════════╝
{Colors.END}
""")
slow_print(f"\n{Colors.GREEN}Danke fürs Spielen! 🐇{Colors.END}")
slow_print(f"{Colors.DIM}Erstellt von LXC für Andy{Colors.END}")
def game_over(player):
clear_screen()
print(f"""
{Colors.RED}{Colors.BOLD}
╔═══════════════════════════════════════════════════╗
║ ║
║ G A M E O V E R ║
║ ║
╚═══════════════════════════════════════════════════╝
{Colors.END}
""")
slow_print(f"\n{Colors.RED}Du bist gefallen...{Colors.END}")
slow_print(f"{Colors.DIM}Aber in der Matrix ist Tod nur ein Bug.{Colors.END}")
slow_print(f"{Colors.DIM}Ein Patch könnte helfen.{Colors.END}")
print(f"\n{Colors.CYAN}[ENTER zum Beenden]{Colors.END}")
input()
sys.exit(0)
def main():
player = Player()
title_screen()
# Spiel-Loop
current_scene = intro(player)
scenes = {
"agent_fight": agent_fight,
"after_fight": after_fight,
"mars_base": mars_base,
"matrix_deep": matrix_deep,
"hell_server": hell_server,
"final_boss": final_boss,
"ending": ending,
"game_over": game_over
}
while current_scene != "ending" and current_scene != "game_over":
if current_scene in scenes:
current_scene = scenes[current_scene](player)
else:
break
# Ending
if current_scene == "ending":
ending(player)
print(f"\n{Colors.CYAN}[ENTER zum Beenden]{Colors.END}")
input()
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
print(f"\n\n{Colors.YELLOW}Spiel unterbrochen. Bis zum nächsten Mal! 🐇{Colors.END}")
sys.exit(0)