137 lines
4.2 KiB
GDScript
137 lines
4.2 KiB
GDScript
class_name Probleme
|
|
## Die zweite Ebene: was einen Menschen nicht im Tagesablauf aufhält, sondern
|
|
## in einzelnen Momenten. Eine Gewohnheit hat einen Platz im Tag -- ein
|
|
## psychisches Problem hat keinen. Es zeigt sich in Situationen, und die
|
|
## kommen, wann sie wollen.
|
|
##
|
|
## Darum die andere Mechanik: Gewohnheiten pflanzt man ein und sie laufen ohne
|
|
## dich weiter. Bei einer Situation musst du dabei sein und im Moment die
|
|
## Technik wählen, die zu diesem Problem passt.
|
|
|
|
static var LISTE: Dictionary = {
|
|
"angst": {
|
|
"name": "Angst", "kurz": "der Körper macht dicht, bevor der Kopf mitredet",
|
|
},
|
|
"selbstzweifel": {
|
|
"name": "Selbstzweifel", "kurz": "die innere Stimme redet es klein",
|
|
},
|
|
"stress": {
|
|
"name": "Stress", "kurz": "alles gleichzeitig, nichts zu Ende",
|
|
},
|
|
"ueberforderung": {
|
|
"name": "Überforderung", "kurz": "der Berg ist zu groß zum Ansehen",
|
|
},
|
|
"erschoepfung": {
|
|
"name": "Erschöpfung", "kurz": "der Akku ist leer, bevor der Tag anfängt",
|
|
},
|
|
"einsamkeit": {
|
|
"name": "Einsamkeit", "kurz": "hängt allein an dem, was zu zweit ginge",
|
|
},
|
|
"perfektionismus": {
|
|
"name": "Perfektionismus", "kurz": "nichts ist je gut genug zum Abgeben",
|
|
},
|
|
"unruhe": {
|
|
"name": "Unruhe", "kurz": "kann nicht bleiben, wo er ist",
|
|
},
|
|
}
|
|
|
|
## Situationen: was im Moment sichtbar wird. Jede gehört zu einem Problem.
|
|
static var SITUATIONEN: Dictionary = {
|
|
"blackout": {
|
|
"name": "wird starr", "was": "Ihr wird schwarz vor Augen.",
|
|
"problem": "angst",
|
|
},
|
|
"aufschieben_angst": {
|
|
"name": "meldet sich ab", "was": "Sie sagt den Termin wieder ab.",
|
|
"problem": "angst",
|
|
},
|
|
"kleinreden": {
|
|
"name": "redet es klein", "was": "»Das kann doch jeder besser.«",
|
|
"problem": "selbstzweifel",
|
|
},
|
|
"vergleich": {
|
|
"name": "vergleicht sich", "was": "Sie sieht, was andere schaffen.",
|
|
"problem": "selbstzweifel",
|
|
},
|
|
"alles_gleichzeitig": {
|
|
"name": "fängt drei Dinge an", "was": "Alles gleichzeitig, nichts zu Ende.",
|
|
"problem": "stress",
|
|
},
|
|
"noch_ein_ja": {
|
|
"name": "sagt schon wieder ja", "was": "Noch eine Bitte, noch ein Ja.",
|
|
"problem": "stress",
|
|
},
|
|
"erstarrt": {
|
|
"name": "erstarrt vor dem Berg", "was": "Sie sieht die Aufgabe und macht nichts.",
|
|
"problem": "ueberforderung",
|
|
},
|
|
"ausgebrannt": {
|
|
"name": "sackt zusammen", "was": "Sie sitzt da und starrt.",
|
|
"problem": "erschoepfung",
|
|
},
|
|
"allein": {
|
|
"name": "hängt allein fest", "was": "Sie kommt nicht weiter und fragt niemanden.",
|
|
"problem": "einsamkeit",
|
|
},
|
|
"absagen_treffen": {
|
|
"name": "sagt das Treffen ab", "was": "Lieber allein als unter Leuten.",
|
|
"problem": "einsamkeit",
|
|
},
|
|
"verwerfen": {
|
|
"name": "verwirft den Entwurf", "was": "Sie löscht, was schon fertig war.",
|
|
"problem": "perfektionismus",
|
|
},
|
|
"nachbessern": {
|
|
"name": "bessert endlos nach", "was": "Die dritte Fassung, und es wird nicht besser.",
|
|
"problem": "perfektionismus",
|
|
},
|
|
"aufspringen": {
|
|
"name": "springt auf", "was": "Sie hält es am Platz nicht aus.",
|
|
"problem": "unruhe",
|
|
},
|
|
"ortswechsel": {
|
|
"name": "wechselt den Ort", "was": "Woanders geht es bestimmt besser.",
|
|
"problem": "unruhe",
|
|
},
|
|
"zusammenbruch_klein": {
|
|
"name": "gibt für heute auf", "was": "Der Rest des Tages ist gestrichen.",
|
|
"problem": "erschoepfung",
|
|
},
|
|
"abbruch": {
|
|
"name": "lässt es liegen", "was": "Mitten drin hört sie auf.",
|
|
"problem": "ueberforderung",
|
|
},
|
|
}
|
|
|
|
|
|
static func problem_da(schluessel: String) -> bool:
|
|
return LISTE.has(schluessel)
|
|
|
|
|
|
static func name_von(schluessel: String) -> String:
|
|
return str(LISTE[schluessel]["name"]) if LISTE.has(schluessel) else schluessel
|
|
|
|
|
|
## Alle Situationen, in denen sich dieses Problem zeigt.
|
|
static func situationen_von(problem: String) -> Array:
|
|
var out: Array = []
|
|
for key in SITUATIONEN:
|
|
if SITUATIONEN[key]["problem"] == problem:
|
|
out.append(key)
|
|
return out
|
|
|
|
|
|
## Techniken, die gegen dieses Problem etwas ausrichten -- erkennbar am Feld
|
|
## `tags` der Technik.
|
|
static func techniken_gegen(problem: String) -> Array:
|
|
var out: Array = []
|
|
for t in TechDB.LIST:
|
|
if (t["tags"] as Array).has(problem):
|
|
out.append(str(t["id"]))
|
|
return out
|
|
|
|
|
|
static func hilft(tech_id: String, problem: String) -> bool:
|
|
var t := TechDB.by_id(tech_id)
|
|
return not t.is_empty() and (t["tags"] as Array).has(problem)
|