Add complete Abenteuer-Schmiede BMAD module
- 7 specialized agents (Spielleiter, Weltenbauer, NSC-Schmied, Begegnungsdesigner, Regelwächter, Handout-Künstler, Partymodus) - Kompendium-System (Single Source of Truth) - DSA5-native with Proben, QS, Kampfwerte - Interactive Partymodus for playtesting - Balance analysis and rule checking - Templates for NSCs, locations, scenes, encounters, handouts - Export (Markdown, Print, VTT)
This commit is contained in:
parent
8cadb065de
commit
9f78d0dd7f
39 changed files with 2771 additions and 1 deletions
43
skills/as-setup/scripts/merge-config.py
Normal file
43
skills/as-setup/scripts/merge-config.py
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Merge Abenteuer-Schmiede config into BMAD _config/config.yaml."""
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
def merge_config(bmad_root):
|
||||
config_path = os.path.join(bmad_root, "_config", "config.yaml")
|
||||
|
||||
if not os.path.exists(config_path):
|
||||
print(f"BMAD config not found at {config_path}")
|
||||
sys.exit(1)
|
||||
|
||||
as_config = """
|
||||
# --- Abenteuer-Schmiede Module ---
|
||||
abenteuer-schmiede:
|
||||
abenteuer_name: ""
|
||||
setting: ""
|
||||
epoche: ""
|
||||
spieleranzahl: "3-4"
|
||||
erfahrungsstufe: "Durchschnittlich (300-600 AP)"
|
||||
abenteuer_typ: "Gemischt"
|
||||
geschaetzte_dauer: "Mittel (4-6 Abende)"
|
||||
sprache: "Deutsch"
|
||||
"""
|
||||
|
||||
with open(config_path, "r") as f:
|
||||
content = f.read()
|
||||
|
||||
if "abenteuer-schmiede:" in content:
|
||||
print("Abenteuer-Schmiede config already present. Skipping.")
|
||||
return
|
||||
|
||||
with open(config_path, "a") as f:
|
||||
f.write(as_config)
|
||||
|
||||
print("Abenteuer-Schmiede config merged into BMAD config.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) < 2:
|
||||
print("Usage: python merge-config.py <bmad-root-path>")
|
||||
sys.exit(1)
|
||||
merge_config(sys.argv[1])
|
||||
52
skills/as-setup/scripts/merge-help-csv.py
Normal file
52
skills/as-setup/scripts/merge-help-csv.py
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Merge Abenteuer-Schmiede module-help.csv into BMAD help.csv."""
|
||||
|
||||
import csv
|
||||
import sys
|
||||
import os
|
||||
|
||||
def merge_help(bmad_root):
|
||||
help_path = os.path.join(bmad_root, "_config", "help.csv")
|
||||
module_help = os.path.join(os.path.dirname(__file__), "..", "assets", "module-help.csv")
|
||||
|
||||
if not os.path.exists(module_help):
|
||||
print(f"Module help CSV not found: {module_help}")
|
||||
sys.exit(1)
|
||||
|
||||
# Read module help entries
|
||||
with open(module_help, "r", encoding="utf-8") as f:
|
||||
reader = csv.reader(f)
|
||||
header = next(reader)
|
||||
new_rows = list(reader)
|
||||
|
||||
# Read existing BMAD help (or create new)
|
||||
existing_ids = set()
|
||||
existing_rows = []
|
||||
if os.path.exists(help_path):
|
||||
with open(help_path, "r", encoding="utf-8") as f:
|
||||
reader = csv.reader(f)
|
||||
existing_header = next(reader)
|
||||
for row in reader:
|
||||
existing_ids.add(row[0])
|
||||
existing_rows.append(row)
|
||||
|
||||
# Merge: only add rows that don't exist yet
|
||||
added = 0
|
||||
for row in new_rows:
|
||||
if row[0] not in existing_ids:
|
||||
existing_rows.append(row)
|
||||
added += 1
|
||||
|
||||
# Write back
|
||||
with open(help_path, "w", encoding="utf-8", newline="") as f:
|
||||
writer = csv.writer(f)
|
||||
writer.writerow(header)
|
||||
writer.writerows(existing_rows)
|
||||
|
||||
print(f"Merged {added} new entries into BMAD help.csv.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) < 2:
|
||||
print("Usage: python merge-help-csv.py <bmad-root-path>")
|
||||
sys.exit(1)
|
||||
merge_help(sys.argv[1])
|
||||
Loading…
Add table
Add a link
Reference in a new issue