69 lines
2.1 KiB
Python
69 lines
2.1 KiB
Python
"""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)
|