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