Files

69 lines
2.1 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""Lustige Sprüche zum Ergebnis.
Zielgruppe sind Jugendliche am Zukunftstag: lieber augenzwinkernd als fies.
Wer nichts tut, landet bei etwa 40-60 % – deshalb sind die Sprüche ab 70 %
lobend und darunter nur leicht frech.
"""
from __future__ import annotations
import random
#: Bei 100 % – der Wunsch aus dem Feedback.
CONTRACT_LINE = "100%! Drücke A und unterschreib gleich einen Vertrag im Lager!"
TOP_LINES = (
"Das war Lade-Profi-Niveau. Der Staplerfahrer will ein Autogramm.",
"So voll sieht dieser Auflieger selten aus – Respekt!",
"Da passt nicht mal mehr eine Müsliriegel-Packung rein. Stark!",
)
GREAT_LINES = (
"Sehr sauber geladen – damit würdest du im Lager sofort auffallen.",
"Das ist Tetris mit Koffern. Weiter so!",
"Fast Profi. Nur die letzte Lücke hat noch etwas Luft.",
)
GOOD_LINES = (
"Solide! Der Auflieger ist zufrieden, die Koffer auch.",
"Passt schon – ein bisschen Luft ist noch drin, aber das ist okay.",
"Ordentlich beladen. Kein Rekord, aber auch kein Chaos.",
)
MEH_LINES = (
"Naja … die Koffer sind drin. Irgendwie.",
"Da geht noch was – der Auflieger hat Platz für einen Koffer mehr.",
"Halb voll ist auch halb leer. Nächstes Mal!",
)
LOW_LINES = (
"Ui, da ist noch viel Luft drin. Die Koffer haben sich verlaufen.",
"Der Auflieger wartet noch auf Nachschub. Weiter probieren!",
"Eher Tetris im Anfänger-Modus – aber du bist dabei, das zählt.",
)
OUCH_LINES = (
"Der Auflieger ist noch fast leer – aber der Anfang ist gemacht!",
"Autsch. Weisst du was? Nochmal ist immer eine Option.",
"Fast leer. Dafür kann es jetzt nur noch aufwärts gehen.",
)
def saying_for(percent: float, rng: random.Random | None = None) -> str:
"""Passender Spruch zur erreichten Beladung."""
if percent >= 100:
return CONTRACT_LINE
if percent >= 85:
pool = TOP_LINES
elif percent >= 70:
pool = GREAT_LINES
elif percent >= 55:
pool = GOOD_LINES
elif percent >= 40:
pool = MEH_LINES
elif percent >= 20:
pool = LOW_LINES
else:
pool = OUCH_LINES
return (rng or random).choice(pool)