update
This commit is contained in:
136
scripts/ursachen.gd
Normal file
136
scripts/ursachen.gd
Normal file
@@ -0,0 +1,136 @@
|
||||
class_name Ursachen
|
||||
## Woran ein Traum scheitert, und was im Tag davon zu sehen ist.
|
||||
##
|
||||
## Ein Traum hat eine Grundrate. Jede ungelöste Ursache bremst sie. Zwei
|
||||
## ungelöste Ursachen bremsen doppelt -- deshalb lohnt es, alle zu finden.
|
||||
## Sichtbar wird eine Ursache nur an den Tätigkeiten, die sie hervorbringt:
|
||||
## wer nie in Gang kommt, räumt auf, recherchiert und schreibt Listen.
|
||||
##
|
||||
## Grundlage: Habit Reversal Training beginnt mit awareness training -- erst
|
||||
## bemerken, dann ersetzen. Und Duhiggs goldene Regel: Auslöser und Belohnung
|
||||
## bleiben, nur die Handlung dazwischen wird getauscht.
|
||||
|
||||
static var LISTE: Dictionary = {
|
||||
"anfang": {
|
||||
"name": "Kein Anfang", "kurz": "kommt nie in Gang",
|
||||
"symptom": "Sie setzt sich hin und tut dann etwas anderes.",
|
||||
"faktor": 0.30,
|
||||
},
|
||||
"zeit": {
|
||||
"name": "Keine Zeit", "kurz": "der Tag ist voll",
|
||||
"symptom": "Der Tag ist voll mit dem, was andere wollen.",
|
||||
"faktor": 0.30,
|
||||
},
|
||||
"kraft": {
|
||||
"name": "Keine Kraft", "kurz": "abends ist nichts mehr übrig",
|
||||
"symptom": "Am Abend reicht es nur noch für Berieselung.",
|
||||
"faktor": 0.40,
|
||||
},
|
||||
"halt": {
|
||||
"name": "Kein Halt", "kurz": "fängt an und hört wieder auf",
|
||||
"symptom": "Angefangen wird oft, drangeblieben selten.",
|
||||
"faktor": 0.50,
|
||||
},
|
||||
"grund": {
|
||||
"name": "Kein Grund", "kurz": "glaubt nicht mehr daran",
|
||||
"symptom": "Sie redet sich das Vorhaben selbst klein.",
|
||||
"faktor": 0.40,
|
||||
},
|
||||
}
|
||||
|
||||
## Tätigkeiten, die einen Traum aufhalten. Jede hat einen Auslöser und eine
|
||||
## Belohnung -- genau die muss eine Ersatzhandlung wieder liefern.
|
||||
## zeit: wann im Tag die Tätigkeit auftaucht.
|
||||
static var BLOCKER: Dictionary = {
|
||||
"putzflucht": {
|
||||
"name": "räumt auf statt anzufangen", "ausloeser": "eine große Aufgabe",
|
||||
"belohnung": "erfolg", "ursache": "anfang", "zeit": "tag",
|
||||
},
|
||||
"recherche": {
|
||||
"name": "recherchiert statt anzufangen", "ausloeser": "Unsicherheit",
|
||||
"belohnung": "erfolg", "ursache": "anfang", "zeit": "tag",
|
||||
},
|
||||
"liste": {
|
||||
"name": "schreibt eine Später-Liste", "ausloeser": "Überforderung",
|
||||
"belohnung": "ordnung", "ursache": "anfang", "zeit": "morgen",
|
||||
},
|
||||
"jasagen": {
|
||||
"name": "sagt zu allem ja", "ausloeser": "eine fremde Bitte",
|
||||
"belohnung": "anerkennung", "ursache": "zeit", "zeit": "tag",
|
||||
},
|
||||
"scrollen": {
|
||||
"name": "scrollt endlos", "ausloeser": "Leerlauf",
|
||||
"belohnung": "ablenkung", "ursache": "zeit", "zeit": "tag",
|
||||
},
|
||||
"serie": {
|
||||
"name": "schaut eine Serie", "ausloeser": "Erschöpfung",
|
||||
"belohnung": "abschalten", "ursache": "kraft", "zeit": "abend",
|
||||
},
|
||||
"wach": {
|
||||
"name": "bleibt wach", "ausloeser": "ein fremdbestimmter Tag",
|
||||
"belohnung": "zeit_fuer_sich", "ursache": "kraft", "zeit": "nacht",
|
||||
},
|
||||
"kuehlschrank": {
|
||||
"name": "steht am Kühlschrank", "ausloeser": "Langeweile",
|
||||
"belohnung": "unterbrechung", "ursache": "kraft", "zeit": "abend",
|
||||
},
|
||||
"spielen": {
|
||||
"name": "spielt noch eine Runde", "ausloeser": "Anspannung",
|
||||
"belohnung": "erfolg", "ursache": "halt", "zeit": "abend",
|
||||
},
|
||||
"umschalten": {
|
||||
"name": "schaltet auf etwas anderes um", "ausloeser": "Widerstand",
|
||||
"belohnung": "neuheit", "ursache": "halt", "zeit": "tag",
|
||||
},
|
||||
"klagen": {
|
||||
"name": "klagt am Telefon", "ausloeser": "Frust",
|
||||
"belohnung": "verbundenheit", "ursache": "grund", "zeit": "abend",
|
||||
},
|
||||
"vergleichen": {
|
||||
"name": "vergleicht sich mit anderen", "ausloeser": "ein fremder Erfolg",
|
||||
"belohnung": "einordnung", "ursache": "grund", "zeit": "morgen",
|
||||
},
|
||||
}
|
||||
|
||||
static var BELOHNUNG_TEXT: Dictionary = {
|
||||
"erfolg": "ein Erfolgserlebnis",
|
||||
"ordnung": "Ordnung",
|
||||
"anerkennung": "Anerkennung",
|
||||
"anschluss": "Anschluss",
|
||||
"abschalten": "Abschalten",
|
||||
"zeit_fuer_sich": "Zeit für sich",
|
||||
"unterbrechung": "eine Unterbrechung",
|
||||
"neuheit": "etwas Neues",
|
||||
"verbundenheit": "Verbundenheit",
|
||||
"einordnung": "Einordnung",
|
||||
"ablenkung": "Ablenkung",
|
||||
}
|
||||
|
||||
|
||||
static func ist_blocker(activity: String) -> bool:
|
||||
return BLOCKER.has(activity)
|
||||
|
||||
|
||||
static func ursache_von(activity: String) -> String:
|
||||
return str(BLOCKER[activity]["ursache"]) if BLOCKER.has(activity) else ""
|
||||
|
||||
|
||||
static func belohnung_text(schluessel: String) -> String:
|
||||
return str(BELOHNUNG_TEXT.get(schluessel, schluessel))
|
||||
|
||||
|
||||
## Blocker einer Ursache, die in dieses Zeitfenster passen.
|
||||
static func blocker_fuer(ursache: String, zeit: String) -> Array:
|
||||
var out: Array = []
|
||||
for id in BLOCKER:
|
||||
if BLOCKER[id]["ursache"] == ursache and BLOCKER[id]["zeit"] == zeit:
|
||||
out.append(id)
|
||||
return out
|
||||
|
||||
|
||||
static func alle_blocker(ursache: String) -> Array:
|
||||
var out: Array = []
|
||||
for id in BLOCKER:
|
||||
if BLOCKER[id]["ursache"] == ursache:
|
||||
out.append(id)
|
||||
return out
|
||||
Reference in New Issue
Block a user