01 — Effekt-Vokabular #2

Closed
opened 2026-08-11 13:13:21 +00:00 by RDietermann · 2 comments
Owner

Teil der Map #1 · Type: wayfinder:grilling · Blocked by: —

Was kann ein Effekt ausdruecken und wie sieht er in TOML aus? Das Effekt-Vokabular ist die Mod-API: ein Modder kann exakt das bauen, was hier definiert wird.

Volle Fragestellung (kanonisch): .scratch/rustkeep-1.0/issues/01-effekt-vokabular.md

Teil der Map #1 · **Type: `wayfinder:grilling`** · **Blocked by: —** Was kann ein Effekt ausdruecken und wie sieht er in TOML aus? Das Effekt-Vokabular ist die Mod-API: ein Modder kann exakt das bauen, was hier definiert wird. Volle Fragestellung (kanonisch): `.scratch/rustkeep-1.0/issues/01-effekt-vokabular.md`
RDietermann added the wayfinder:grilling label 2026-08-11 13:13:22 +00:00
Author
Owner

Claimed 2026-08-11 — in Arbeit. (Gitea-Assignee-API antwortet hier mit 404, der Claim steht kanonisch als Status: claimed in .scratch/rustkeep-1.0/issues/01-effekt-vokabular.md.)

**Claimed** 2026-08-11 — in Arbeit. (Gitea-Assignee-API antwortet hier mit 404, der Claim steht kanonisch als `Status: claimed` in `.scratch/rustkeep-1.0/issues/01-effekt-vokabular.md`.)
Author
Owner

Answer — aufgeloest 2026-08-11

Volle Fassung: .scratch/rustkeep-1.0/issues/01-effekt-vokabular.md. Begriffe im Glossar CONTEXT.md.

Zwei Begriffe, nicht einer. Modifikator rechnet ein Attribut um, solange er existiert (beim Auslesen aufsummiert). Aktion aendert Zustand einmalig. Getrennte Maschinen, getrennte TOML-Arrays. „Effekt" ist kein kanonischer Begriff mehr.

Attributkatalog (Engine-Vokabular, ohne Namensraum): strength dexterity constitution charisma luck level max_health max_stamina damage hit_chance critical_chance critical_factor resistance (typ-indiziert) shop_price carry_capacity. max_health ist Attribut, der Lebensstand ist Zustand — Modifikatoren wirken auf ersteres, Aktionen auf letzteres.

Modifikator: { attribute, flat?, percent?, duration?, turns?, target?, symbol?, name? } — mindestens eines von flat/percent. duration aus permanent/while_equipped/turns/until_floor_end, target aus self/target/all_enemies. Wohnt immer beim Traeger, wird beim Auslesen des Ziels eingesammelt — stirbt der Traeger, verschwindet die Aura von selbst. symbol ist ein Schluessel, keine Farbe.

Sechs Aktionen: damage, change_attribute, apply_modifier, remove_modifier, give_item, remove_item. damage bleibt eigenstaendig statt change_attribute health -12, weil Schaden durch eine Kette laeuft und „bei erlittenem Schaden" ein Event ist. Flache Liste, keine Verschachtelung.

Regeln: Stapeln (Basis + Sum flach) x (1 + Sum prozentual), intern f32, einmal gerundet · eine Uhr: der Zug, Debuffs ticken auch beim Laufen · Schadenstypen fire ice poison shock holy slash blunt, fest · ein Minderungsmechanismus: resistance je Typ, armor ist Kurzschreibweise fuer slash+blunt · Doppelpunkt = Modder-Inhalt, ohne = Engine-Vokabular · Tags sind freie namespaced Strings.

Bewusst nicht entschieden: das Bedingungsvokabular fuer condition — kommt aus #9, damit Quests und Modifikatoren dieselbe Grammatik nutzen.

Folgen fuer Code: ItemArmor.armor faellt weg (wird Modifikator auf resistance), Stats trennt Attribut von Zustand, es fehlen abgeleitete Groessen (hit_chance, carry_capacity).

Freigeschaltet: #3, #8, #14. Neu graduiert: #15, #16.

## Answer — aufgeloest 2026-08-11 Volle Fassung: `.scratch/rustkeep-1.0/issues/01-effekt-vokabular.md`. Begriffe im Glossar `CONTEXT.md`. **Zwei Begriffe, nicht einer.** **Modifikator** rechnet ein Attribut um, solange er existiert (beim Auslesen aufsummiert). **Aktion** aendert Zustand einmalig. Getrennte Maschinen, getrennte TOML-Arrays. „Effekt" ist kein kanonischer Begriff mehr. **Attributkatalog** (Engine-Vokabular, ohne Namensraum): `strength` `dexterity` `constitution` `charisma` `luck` `level` `max_health` `max_stamina` `damage` `hit_chance` `critical_chance` `critical_factor` `resistance` (typ-indiziert) `shop_price` `carry_capacity`. **`max_health` ist Attribut, der Lebensstand ist Zustand** — Modifikatoren wirken auf ersteres, Aktionen auf letzteres. **Modifikator:** `{ attribute, flat?, percent?, duration?, turns?, target?, symbol?, name? }` — mindestens eines von flat/percent. `duration` aus `permanent`/`while_equipped`/`turns`/`until_floor_end`, `target` aus `self`/`target`/`all_enemies`. Wohnt **immer beim Traeger**, wird beim Auslesen des Ziels eingesammelt — stirbt der Traeger, verschwindet die Aura von selbst. `symbol` ist ein Schluessel, keine Farbe. **Sechs Aktionen:** `damage`, `change_attribute`, `apply_modifier`, `remove_modifier`, `give_item`, `remove_item`. `damage` bleibt eigenstaendig statt `change_attribute health -12`, weil Schaden durch eine Kette laeuft und „bei erlittenem Schaden" ein Event ist. Flache Liste, keine Verschachtelung. **Regeln:** Stapeln `(Basis + Sum flach) x (1 + Sum prozentual)`, intern f32, einmal gerundet · **eine Uhr**: der Zug, Debuffs ticken auch beim Laufen · Schadenstypen `fire` `ice` `poison` `shock` `holy` `slash` `blunt`, fest · **ein Minderungsmechanismus**: `resistance` je Typ, `armor` ist Kurzschreibweise fuer `slash`+`blunt` · Doppelpunkt = Modder-Inhalt, ohne = Engine-Vokabular · Tags sind freie namespaced Strings. **Bewusst nicht entschieden:** das Bedingungsvokabular fuer `condition` — kommt aus #9, damit Quests und Modifikatoren dieselbe Grammatik nutzen. **Folgen fuer Code:** `ItemArmor.armor` faellt weg (wird Modifikator auf `resistance`), `Stats` trennt Attribut von Zustand, es fehlen abgeleitete Groessen (`hit_chance`, `carry_capacity`). Freigeschaltet: #3, #8, #14. Neu graduiert: #15, #16.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RDietermann/rustkeep#2