feat: Add RPG & Tabletop Gaming Frameworks
Created rpg_frameworks.py with 15 RPG content types: CORE RULEBOOKS: 1. Core Rulebook - Main game system (300-500 pages) 2. Quickstart - Condensed intro (16-32 pages) GAME MASTER GUIDES: 3. Game Master Guide - Running games, worldbuilding 4. Adventure Module - Ready-to-run adventure 5. Campaign Setting - Complete world sourcebook SUPPLEMENTS: 6. Player's Companion - New races/classes/options 7. Monster Manual - Creatures catalog 8. Thematic Sourcebook - Deep dive on theme ADVENTURE TYPES: 9. Dungeon Crawl - Classic dungeon delve 10. Hex Crawl - Open world sandbox 11. Dungeon World Style - Narrative-forward SPECIALTY: 12. Worldbuilding Guide - How to build worlds 13. Props and Handouts - Physical/digital props 14. Solo Adventure - Single player RPG 15. LARP Document - Live action roleplaying Each includes detailed stages, prompt templates, tone guidance, typical length. Functions: - get_rpg_frameworks() - suggest_rpg_framework()
This commit is contained in:
@@ -10,6 +10,7 @@ Key components:
|
|||||||
- textbook_frameworks: Educational/academic frameworks
|
- textbook_frameworks: Educational/academic frameworks
|
||||||
- academic_papers: Established academic paper types
|
- academic_papers: Established academic paper types
|
||||||
- creative_frameworks: Interactive, epistolary, experimental formats
|
- creative_frameworks: Interactive, epistolary, experimental formats
|
||||||
|
- rpg_frameworks: Tabletop RPG content (DM guides, modules, etc.)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from opus_orchestrator.nonfiction.classifier import (
|
from opus_orchestrator.nonfiction.classifier import (
|
||||||
@@ -66,6 +67,11 @@ from opus_orchestrator.nonfiction.creative_frameworks import (
|
|||||||
get_creative_frameworks,
|
get_creative_frameworks,
|
||||||
suggest_creative_framework,
|
suggest_creative_framework,
|
||||||
)
|
)
|
||||||
|
from opus_orchestrator.nonfiction.rpg_frameworks import (
|
||||||
|
RPG_FRAMEWORKS,
|
||||||
|
get_rpg_frameworks,
|
||||||
|
suggest_rpg_framework,
|
||||||
|
)
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
# Classifier
|
# Classifier
|
||||||
@@ -113,4 +119,8 @@ __all__ = [
|
|||||||
"CREATIVE_FRAMEWORKS",
|
"CREATIVE_FRAMEWORKS",
|
||||||
"get_creative_frameworks",
|
"get_creative_frameworks",
|
||||||
"suggest_creative_framework",
|
"suggest_creative_framework",
|
||||||
|
# RPG Frameworks
|
||||||
|
"RPG_FRAMEWORKS",
|
||||||
|
"get_rpg_frameworks",
|
||||||
|
"suggest_rpg_framework",
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -0,0 +1,631 @@
|
|||||||
|
"""RPG & Tabletop Gaming Frameworks.
|
||||||
|
|
||||||
|
Game Master guides, adventure modules, worldbuilding supplements, and RPG content.
|
||||||
|
The full ecosystem of tabletop roleplaying game publishing.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from opus_orchestrator.nonfiction_taxonomy import (
|
||||||
|
ReaderPurpose,
|
||||||
|
StructuralPattern,
|
||||||
|
NonfictionCategory,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
RPG_FRAMEWORKS = {
|
||||||
|
|
||||||
|
# ==========================================================================
|
||||||
|
# CORE RULEBOOKS
|
||||||
|
# ==========================================================================
|
||||||
|
|
||||||
|
"core_rulebook": {
|
||||||
|
"name": "Core Rulebook",
|
||||||
|
"description": "The main game system book. Contains all core mechanics, character creation, and essential rules.",
|
||||||
|
"purpose": ReaderPurpose.LEARN_HANDS_ON,
|
||||||
|
"structure": StructuralPattern.SEQUENTIAL,
|
||||||
|
"category": NonfictionCategory.RPG,
|
||||||
|
"stages": [
|
||||||
|
"Introduction - What is this game",
|
||||||
|
"How to Read This Book",
|
||||||
|
"Chapter 1: Creating Characters",
|
||||||
|
"Chapter 2: Races/Species",
|
||||||
|
"Chapter 3: Classes/Roles",
|
||||||
|
"Chapter 4: Abilities and Skills",
|
||||||
|
"Chapter 5: Equipment",
|
||||||
|
"Chapter 6: Combat",
|
||||||
|
"Chapter 7: Magic/Powers",
|
||||||
|
"Chapter 8: Exploration",
|
||||||
|
"Chapter 9: Social Encounters",
|
||||||
|
"Chapter 10: Gamemastering",
|
||||||
|
"Chapter 11: Monsters/NPCs",
|
||||||
|
"Appendix A: Reference Tables",
|
||||||
|
"Appendix B: Spells/Powers List",
|
||||||
|
"Appendix C: Pre-generated Characters",
|
||||||
|
"Index",
|
||||||
|
],
|
||||||
|
"prompt_template": """Write a core rulebook for: {game_system}
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- Character creation (step by step)
|
||||||
|
- Core mechanics explained clearly
|
||||||
|
- Character options (races, classes)
|
||||||
|
- Combat system
|
||||||
|
- Magic/powers (if applicable)
|
||||||
|
- GM guidance
|
||||||
|
- Reference material""",
|
||||||
|
"tone_guidance": "Clear, comprehensive, encouraging. Accessible to new players but complete for veterans.",
|
||||||
|
"typical_length": "300-500 pages",
|
||||||
|
"audience": "Players and Game Masters",
|
||||||
|
},
|
||||||
|
|
||||||
|
"quickstart": {
|
||||||
|
"name": "Quickstart Rulebook",
|
||||||
|
"description": "Condensed intro version. Get to playing fast. Usually free or cheap.",
|
||||||
|
"purpose": ReaderPurpose.LEARN_HANDS_ON,
|
||||||
|
"structure": StructuralPattern.SEQUENTIAL,
|
||||||
|
"category": NonfictionCategory.RPG,
|
||||||
|
"stages": [
|
||||||
|
"Welcome - What's this game",
|
||||||
|
"Character Creation (abbreviated)",
|
||||||
|
"The Basics - Core rules",
|
||||||
|
"Combat (simplified)",
|
||||||
|
"Adventure - Mini dungeon/campaign",
|
||||||
|
"Character Sheet",
|
||||||
|
"Advanced Options (optional)",
|
||||||
|
],
|
||||||
|
"prompt_template": """Write a quickstart for: {game_system}
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- 5-page max rule summary
|
||||||
|
- Streamlined character creation
|
||||||
|
- One complete adventure
|
||||||
|
- Character sheet""",
|
||||||
|
"tone_guidance": "Exciting, fast, enticing. Make them want the full book.",
|
||||||
|
"typical_length": "16-32 pages",
|
||||||
|
"audience": "New players, convention demos",
|
||||||
|
},
|
||||||
|
|
||||||
|
# ==========================================================================
|
||||||
|
# GAME MASTER GUIDES
|
||||||
|
# ==========================================================================
|
||||||
|
|
||||||
|
"game_master_guide": {
|
||||||
|
"name": "Game Master Guide",
|
||||||
|
"description": "The GM's bible. Running games, worldbuilding, NPC creation, encounter design.",
|
||||||
|
"purpose": ReaderPurpose.LEARN_HANDS_ON,
|
||||||
|
"structure": StructuralPattern.SEQUENTIAL,
|
||||||
|
"category": NonfictionCategory.RPG,
|
||||||
|
"stages": [
|
||||||
|
"Introduction - Being a GM",
|
||||||
|
"Part 1: Foundations",
|
||||||
|
" - Session Zero - Setting expectations",
|
||||||
|
" - Preparation techniques",
|
||||||
|
" - Running combat",
|
||||||
|
" - Running social encounters",
|
||||||
|
" - Running exploration",
|
||||||
|
"Part 2: Worldbuilding",
|
||||||
|
" - Creating campaign settings",
|
||||||
|
" - Factions and politics",
|
||||||
|
" - Religion and culture",
|
||||||
|
" - Economy and technology",
|
||||||
|
"Part 3: NPC Creation",
|
||||||
|
" - Villains",
|
||||||
|
" - Allies",
|
||||||
|
" - Bystanders",
|
||||||
|
"Part 4: Encounter Design",
|
||||||
|
" - Combat encounters",
|
||||||
|
" - Skill challenges",
|
||||||
|
" - Social encounters",
|
||||||
|
"Part 5: Advanced GMing",
|
||||||
|
" - Improvisation",
|
||||||
|
" - Difficulty balancing",
|
||||||
|
" - Campaign arcs",
|
||||||
|
],
|
||||||
|
"prompt_template": """Write a GM guide for: {game_system}
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- How to run the game
|
||||||
|
- Worldbuilding guidance
|
||||||
|
- NPC creation
|
||||||
|
- Encounter design
|
||||||
|
- Campaign advice""",
|
||||||
|
"tone_guidance": "Mentor-like, experienced GM sharing wisdom. Practical and inspiring.",
|
||||||
|
"typical_length": "200-400 pages",
|
||||||
|
"audience": "Game Masters",
|
||||||
|
},
|
||||||
|
|
||||||
|
"adventure_module": {
|
||||||
|
"name": "Adventure Module",
|
||||||
|
"description": "Ready-to-run adventure. Setting, NPCs, encounters, maps, treasure.",
|
||||||
|
"purpose": ReaderPurpose.LEARN_HANDS_ON,
|
||||||
|
"structure": StructuralPattern.SEQUENTIAL,
|
||||||
|
"category": NonfictionCategory.RPG,
|
||||||
|
"stages": [
|
||||||
|
"Adventure Overview",
|
||||||
|
"Background/Setup",
|
||||||
|
"Hook - Getting players involved",
|
||||||
|
"Part 1: Opening encounters",
|
||||||
|
" - Encounter 1.1",
|
||||||
|
" - Encounter 1.2",
|
||||||
|
"Part 2: Rising action",
|
||||||
|
" - Encounter 2.1",
|
||||||
|
" - Major setpiece",
|
||||||
|
"Part 3: Climax",
|
||||||
|
" - Final battle/challenge",
|
||||||
|
"Resolution",
|
||||||
|
"Aftermath - What happens next",
|
||||||
|
"Appendices:",
|
||||||
|
" - NPCs stat blocks",
|
||||||
|
" - Maps",
|
||||||
|
" - Handouts",
|
||||||
|
" - Treasure/awards",
|
||||||
|
],
|
||||||
|
"prompt_template": """Write an adventure module:
|
||||||
|
|
||||||
|
Setting: {setting}
|
||||||
|
Level Range: {levels}
|
||||||
|
Theme: {themes}
|
||||||
|
Length: {sessions}
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- Detailed encounters
|
||||||
|
- NPCs with motivations
|
||||||
|
- Maps/layouts
|
||||||
|
- Treasure and rewards
|
||||||
|
- Hooks to continue""",
|
||||||
|
"tone_guidance": "Ready to play. Clear, organized, inspiring but practical.",
|
||||||
|
"typical_length": "64-200 pages",
|
||||||
|
"audience": "Game Masters",
|
||||||
|
},
|
||||||
|
|
||||||
|
"campaign_setting": {
|
||||||
|
"name": "Campaign Setting Sourcebook",
|
||||||
|
"description": "Complete world. History, geography, cultures, factions, adventure hooks.",
|
||||||
|
"purpose": ReaderPurpose.REFERENCE,
|
||||||
|
"structure": StructuralPattern.MODULAR,
|
||||||
|
"category": NonfictionCategory.RPG,
|
||||||
|
"stages": [
|
||||||
|
"Introduction to the World",
|
||||||
|
"World Map and Overview",
|
||||||
|
"History (Timeline)",
|
||||||
|
"Geography and Regions",
|
||||||
|
"Major Factions",
|
||||||
|
" - Faction A",
|
||||||
|
" - Faction B",
|
||||||
|
"Cultures and Peoples",
|
||||||
|
"Religion and Magic",
|
||||||
|
"Politics and Power",
|
||||||
|
"Major Cities/Locations",
|
||||||
|
" - Location A",
|
||||||
|
" - Location B",
|
||||||
|
"Important NPCs",
|
||||||
|
"Adventure Hooks",
|
||||||
|
"Appendix: Random Tables",
|
||||||
|
],
|
||||||
|
"prompt_template": """Write a campaign setting for: {world_name}
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- World history
|
||||||
|
- Geography
|
||||||
|
- Cultures
|
||||||
|
- Factions
|
||||||
|
- Adventure hooks""",
|
||||||
|
"tone_guidance": "Immersive, detailed, inspiring. Make the world feel real and lived-in.",
|
||||||
|
"typical_length": "200-400 pages",
|
||||||
|
"audience": "Game Masters and Players",
|
||||||
|
},
|
||||||
|
|
||||||
|
# ==========================================================================
|
||||||
|
# SUPPLEMENTS
|
||||||
|
# ==========================================================================
|
||||||
|
|
||||||
|
"player_companion": {
|
||||||
|
"name": "Player's Companion",
|
||||||
|
"description": "Player-facing content. New races, classes, options. Everything players need.",
|
||||||
|
"purpose": ReaderPurpose.LEARN_HANDS_ON,
|
||||||
|
"structure": StructuralPattern.MODULAR,
|
||||||
|
"category": NonfictionCategory.RPG,
|
||||||
|
"stages": [
|
||||||
|
"Introduction",
|
||||||
|
"New Species/Races",
|
||||||
|
"New Classes/Archetypes",
|
||||||
|
"New Feats/Features",
|
||||||
|
"New Equipment",
|
||||||
|
"New Spells/Powers",
|
||||||
|
"New Backgrounds",
|
||||||
|
"Flavor Options",
|
||||||
|
],
|
||||||
|
"prompt_template": """Write a player companion with new options:
|
||||||
|
|
||||||
|
Core System: {system}
|
||||||
|
New Content: {what_is_new}
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- Balanced new options
|
||||||
|
- Clear mechanics
|
||||||
|
- Lore/flavor""",
|
||||||
|
"tone_guidance": "Exciting, empowering. Players should feel excited to try new things.",
|
||||||
|
"typical_length": "100-200 pages",
|
||||||
|
"audience": "Players",
|
||||||
|
},
|
||||||
|
|
||||||
|
"monster_manual": {
|
||||||
|
"name": "Monster Manual",
|
||||||
|
"description": "Catalog of creatures. Stats, lore, how to use in games.",
|
||||||
|
"purpose": ReaderPurpose.REFERENCE,
|
||||||
|
"structure": StructuralPattern.MODULAR,
|
||||||
|
"category": NonfictionCategory.RPG,
|
||||||
|
"stages": [
|
||||||
|
"Introduction - Using monsters",
|
||||||
|
"Monster Statistics Explained",
|
||||||
|
"Creature Type: Aberrations",
|
||||||
|
" - Creature A",
|
||||||
|
" - Creature B",
|
||||||
|
"Creature Type: Beasts",
|
||||||
|
"Creature Type: Constructs",
|
||||||
|
"Creature Type: Dragons",
|
||||||
|
"Creature Type: Elementals",
|
||||||
|
"Creature Type: Fiends",
|
||||||
|
"Creature Type: Giants",
|
||||||
|
"Creature Type: Humanoids",
|
||||||
|
"Creature Type: Monstrosities",
|
||||||
|
"Creature Type: Oozes",
|
||||||
|
"Creature Type: Plants",
|
||||||
|
"Creature Type: Undead",
|
||||||
|
"NPC Stat Blocks",
|
||||||
|
"Appendix: Monster Building",
|
||||||
|
],
|
||||||
|
"prompt_template": """Write a monster manual:
|
||||||
|
|
||||||
|
Creatures to include: {list}
|
||||||
|
|
||||||
|
For each:
|
||||||
|
- Lore and background
|
||||||
|
- Stats
|
||||||
|
- How to use in game""",
|
||||||
|
"tone_guidance": "Authoritative, evocative. Monsters should feel threatening and interesting.",
|
||||||
|
"typical_length": "200-400 pages",
|
||||||
|
"audience": "Game Masters",
|
||||||
|
},
|
||||||
|
|
||||||
|
"sourcebook": {
|
||||||
|
"name": "Thematic Sourcebook",
|
||||||
|
"description": "Deep dive into one theme: specific region, organization, time period, etc.",
|
||||||
|
"purpose": ReaderPurpose.REFERENCE,
|
||||||
|
"structure": StructuralPattern.MODULAR,
|
||||||
|
"category": NonfictionCategory.RPG,
|
||||||
|
"stages": [
|
||||||
|
"Overview",
|
||||||
|
"History",
|
||||||
|
"Geography",
|
||||||
|
"Culture",
|
||||||
|
"Factions",
|
||||||
|
"Key Locations",
|
||||||
|
"Important NPCs",
|
||||||
|
"New Rules/Mechanics",
|
||||||
|
"New Options for Players",
|
||||||
|
"Adventure Hooks",
|
||||||
|
],
|
||||||
|
"prompt_template": """Write a sourcebook about: {topic}
|
||||||
|
|
||||||
|
Depth: {how_deep}
|
||||||
|
For: {system}
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- Everything about this topic
|
||||||
|
- New mechanics
|
||||||
|
- Player options
|
||||||
|
- GM content""",
|
||||||
|
"tone_guidance": "Deep, passionate about the topic. Fans of the theme will love it.",
|
||||||
|
"typical_length": "150-300 pages",
|
||||||
|
"audience": "Dedicated fans, GMs",
|
||||||
|
},
|
||||||
|
|
||||||
|
# ==========================================================================
|
||||||
|
# ADVENTURE TYPES
|
||||||
|
# ==========================================================================
|
||||||
|
|
||||||
|
"dungeon_crawl": {
|
||||||
|
"name": "Dungeon Crawl",
|
||||||
|
"description": "Classic dungeon delve. Rooms, traps, monsters, treasure.",
|
||||||
|
"purpose": ReaderPurpose.LEARN_HANDS_ON,
|
||||||
|
"structure": StructuralPattern.SEQUENTIAL,
|
||||||
|
"category": NonfictionCategory.RPG,
|
||||||
|
"stages": [
|
||||||
|
"Dungeon Overview",
|
||||||
|
"Entry Point",
|
||||||
|
"Dungeon Level 1:",
|
||||||
|
" - Room 1.1: Entrance",
|
||||||
|
" - Room 1.2: Traps",
|
||||||
|
" - Room 1.3: Combat",
|
||||||
|
" - Room 1.4: Puzzle",
|
||||||
|
" - Room 1.5: Boss",
|
||||||
|
"Dungeon Level 2 (optional)",
|
||||||
|
"Loot and Treasure",
|
||||||
|
"Keys and Secrets",
|
||||||
|
"Random Tables",
|
||||||
|
],
|
||||||
|
"prompt_template": """Write a dungeon crawl:
|
||||||
|
|
||||||
|
Setting: {setting}
|
||||||
|
Levels: {levels}
|
||||||
|
Theme: {theme}
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- Detailed rooms
|
||||||
|
- Traps and hazards
|
||||||
|
- Monsters
|
||||||
|
- Treasure
|
||||||
|
- Secrets""",
|
||||||
|
"tone_guidance": "Classic dungeon vibes. Challenge and reward.",
|
||||||
|
"typical_length": "32-64 pages",
|
||||||
|
"audience": "GMs running dungeon content",
|
||||||
|
},
|
||||||
|
|
||||||
|
"hex_crawl": {
|
||||||
|
"name": "Hex Crawl / Sandbox",
|
||||||
|
"description": "Open-world exploration. Multiple locations, factions, choices.",
|
||||||
|
"purpose": ReaderPurpose.LEARN_HANDS_ON,
|
||||||
|
"structure": StructuralPattern.MODULAR,
|
||||||
|
"category": NonfictionCategory.RPG,
|
||||||
|
"stages": [
|
||||||
|
"Region Overview",
|
||||||
|
"Hex Map",
|
||||||
|
"Settlement: Town A",
|
||||||
|
"Settlement: Town B",
|
||||||
|
"Point of Interest: Ruins",
|
||||||
|
"Point of Interest: Wilderness",
|
||||||
|
"Point of Interest: Dungeon",
|
||||||
|
"Faction A",
|
||||||
|
"Faction B",
|
||||||
|
"Random Encounter Tables",
|
||||||
|
"Travel Rules",
|
||||||
|
],
|
||||||
|
"prompt_template": """Write a hex crawl sandbox:
|
||||||
|
|
||||||
|
Region: {region}
|
||||||
|
Hexes: {number}
|
||||||
|
Factions: {list}
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- Multiple locations
|
||||||
|
- Factions
|
||||||
|
- Player choice
|
||||||
|
- Random tables""",
|
||||||
|
"tone_guidance": "Sandbox freedom. Players can go anywhere, do anything.",
|
||||||
|
"typical_length": "64-128 pages",
|
||||||
|
"audience": "GMs running open-world games",
|
||||||
|
},
|
||||||
|
|
||||||
|
"dungeon_world_style": {
|
||||||
|
"name": "Dungeon World Style Adventure",
|
||||||
|
"description": "Narrative-forward adventure. Fronts, threats, moves.",
|
||||||
|
"purpose": ReaderPurpose.LEARN_HANDS_ON,
|
||||||
|
"structure": StructuralPattern.NARRATIVE,
|
||||||
|
"category": NonfictionCategory.RPG,
|
||||||
|
"stages": [
|
||||||
|
"Adventure Overview",
|
||||||
|
"Background",
|
||||||
|
"The Hook",
|
||||||
|
"Front 1: Immediate Threat",
|
||||||
|
" - Grim Portents",
|
||||||
|
" - Stakes",
|
||||||
|
"Front 2: Larger Threat",
|
||||||
|
"Key Locations",
|
||||||
|
"Key NPCs",
|
||||||
|
"Monster thoughts",
|
||||||
|
"Custom Moves",
|
||||||
|
"Countdown",
|
||||||
|
],
|
||||||
|
"prompt_template": """Write a Dungeon World/PBtA adventure:
|
||||||
|
|
||||||
|
Central Conflicts: {conflicts}
|
||||||
|
Threats: {threats}
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- Fronts and grim portents
|
||||||
|
- Custom moves
|
||||||
|
- Monster motivations""",
|
||||||
|
"tone_guidance": "Narrative-forward. Like a TV show outline.",
|
||||||
|
"typical_length": "32-64 pages",
|
||||||
|
"audience": "PBtA GMs",
|
||||||
|
},
|
||||||
|
|
||||||
|
# ==========================================================================
|
||||||
|
# SPECIALTY CONTENT
|
||||||
|
# ==========================================================================
|
||||||
|
|
||||||
|
"worldbuilding_guide": {
|
||||||
|
"name": "Worldbuilding Guide",
|
||||||
|
"description": "How to build your own RPG world. Process and systems.",
|
||||||
|
"purpose": ReaderPurpose.LEARN_HANDS_ON,
|
||||||
|
"structure": StructuralPattern.SEQUENTIAL,
|
||||||
|
"category": NonfictionCategory.RPG,
|
||||||
|
"stages": [
|
||||||
|
"Why Worldbuild?",
|
||||||
|
"Core Concept - The Big Idea",
|
||||||
|
"Scope - How big?",
|
||||||
|
"Geography",
|
||||||
|
"Cultures",
|
||||||
|
"History",
|
||||||
|
"Politics",
|
||||||
|
"Religion/Magic",
|
||||||
|
"Economy",
|
||||||
|
"Technology Level",
|
||||||
|
"Putting It Together",
|
||||||
|
"Running in Your World",
|
||||||
|
],
|
||||||
|
"prompt_template": """Write a worldbuilding guide:
|
||||||
|
|
||||||
|
Approach: {philosophy}
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- Step-by-step process
|
||||||
|
- Prompts and questions
|
||||||
|
- Example content
|
||||||
|
- How to make it playable""",
|
||||||
|
"tone_guidance": "Mentor, encouraging. Guide their creativity.",
|
||||||
|
"typical_length": "150-250 pages",
|
||||||
|
"audience": "Aspiring worldbuilders and GMs",
|
||||||
|
},
|
||||||
|
|
||||||
|
"props_and_handouts": {
|
||||||
|
"name": "Props and Handouts",
|
||||||
|
"description": "Physical/digital props for immersion. Letters, maps, wanted posters.",
|
||||||
|
"purpose": ReaderPurpose.LEARN_HANDS_ON,
|
||||||
|
"structure": StructuralPattern.MODULAR,
|
||||||
|
"category": NonfictionCategory.RPG,
|
||||||
|
"stages": [
|
||||||
|
"Introduction - Why props matter",
|
||||||
|
"Handout Types",
|
||||||
|
"Letters and Documents",
|
||||||
|
"Maps and Diagrams",
|
||||||
|
"Images and Artwork",
|
||||||
|
"In-Game Objects",
|
||||||
|
"Prop Templates",
|
||||||
|
"Digital Props",
|
||||||
|
"Print and Play",
|
||||||
|
],
|
||||||
|
"prompt_template": """Create prop templates:
|
||||||
|
|
||||||
|
Adventure: {adventure_name}
|
||||||
|
Props needed: {list}
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- Text for each prop
|
||||||
|
- Design notes
|
||||||
|
- How to use in play""",
|
||||||
|
"tone_guidance": "Practical, creative. Make the game feel real.",
|
||||||
|
"typical_length": "32-64 pages",
|
||||||
|
"audience": "GMs who want immersion",
|
||||||
|
},
|
||||||
|
|
||||||
|
"solo_adventure": {
|
||||||
|
"name": "Solo Adventure / Journaling RPG",
|
||||||
|
"description": "Playable alone. Self-contained with rules for single player.",
|
||||||
|
"purpose": ReaderPurpose.LEARN_HANDS_ON,
|
||||||
|
"structure": StructuralPattern.SEQUENTIAL,
|
||||||
|
"category": NonfictionCategory.RPG,
|
||||||
|
"stages": [
|
||||||
|
"How to Play Solo",
|
||||||
|
"Character Creation",
|
||||||
|
"Rules Summary",
|
||||||
|
"Adventure Start",
|
||||||
|
"Chapter 1: The Beginning",
|
||||||
|
" - Choices and outcomes",
|
||||||
|
"Chapter 2: Development",
|
||||||
|
"Climax",
|
||||||
|
"Resolution",
|
||||||
|
"Oracles/Random Tables",
|
||||||
|
"Character Sheet",
|
||||||
|
],
|
||||||
|
"prompt_template": """Write a solo adventure:
|
||||||
|
|
||||||
|
Theme: {theme}
|
||||||
|
Length: {length}
|
||||||
|
System: {system}
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- Self-contained rules
|
||||||
|
- Story branches
|
||||||
|
- Oracle/random tables""",
|
||||||
|
"tone_guidance": "Personal, immersive. Like writing your own adventure.",
|
||||||
|
"typical_length": "64-128 pages",
|
||||||
|
"audience": "Solo RPG players",
|
||||||
|
},
|
||||||
|
|
||||||
|
"larp_document": {
|
||||||
|
"name": "LARP (Live Action) Document",
|
||||||
|
"description": "Written for live action roleplaying. Character sheets, plot, props.",
|
||||||
|
"purpose": ReaderPurpose.LEARN_HANDS_ON,
|
||||||
|
"structure": StructuralPattern.SEQUENTIAL,
|
||||||
|
"category": NonfictionCategory.RPG,
|
||||||
|
"stages": [
|
||||||
|
"Event Overview",
|
||||||
|
"Setting",
|
||||||
|
"Background/World",
|
||||||
|
"Factions and Goals",
|
||||||
|
"Character Packets:",
|
||||||
|
" - Character A",
|
||||||
|
" - Character B",
|
||||||
|
"Plot Outline",
|
||||||
|
"Timeline of Events",
|
||||||
|
"GM Notes",
|
||||||
|
"Props List",
|
||||||
|
"Safety Tools",
|
||||||
|
],
|
||||||
|
"prompt_template": """Write a LARP event:
|
||||||
|
|
||||||
|
Type: {type}
|
||||||
|
Duration: {length}
|
||||||
|
Players: {number}
|
||||||
|
|
||||||
|
Include:
|
||||||
|
- Characters with secrets
|
||||||
|
- Plot that creates drama
|
||||||
|
- Safety content""",
|
||||||
|
"tone_guidance": "Structured for live play. Clear beats and goals.",
|
||||||
|
"typical_length": "32-100 pages",
|
||||||
|
"audience": "LARPers and event organizers",
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def get_rpg_frameworks() -> dict:
|
||||||
|
"""Get all RPG frameworks."""
|
||||||
|
return RPG_FRAMEWORKS
|
||||||
|
|
||||||
|
|
||||||
|
def suggest_rpg_framework(
|
||||||
|
content_type: str = "",
|
||||||
|
audience: str = "",
|
||||||
|
) -> str:
|
||||||
|
"""Suggest the best RPG framework.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
content_type: core / adventure / supplement / etc.
|
||||||
|
audience: players / GMs / etc.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Framework ID
|
||||||
|
"""
|
||||||
|
content_type = (content_type or "").lower()
|
||||||
|
|
||||||
|
# Core books
|
||||||
|
if "core" in content_type or "rulebook" in content_type:
|
||||||
|
return "core_rulebook"
|
||||||
|
if "quick" in content_type:
|
||||||
|
return "quickstart"
|
||||||
|
|
||||||
|
# GM content
|
||||||
|
if "gm guide" in content_type or "game master" in content_type:
|
||||||
|
return "game_master_guide"
|
||||||
|
if "adventure" in content_type:
|
||||||
|
if "dungeon" in content_type:
|
||||||
|
return "dungeon_crawl"
|
||||||
|
if "hex" in content_type or "sandbox" in content_type:
|
||||||
|
return "hex_crawl"
|
||||||
|
return "adventure_module"
|
||||||
|
if "campaign" in content_type or "setting" in content_type:
|
||||||
|
return "campaign_setting"
|
||||||
|
if "world" in content_type:
|
||||||
|
return "worldbuilding_guide"
|
||||||
|
|
||||||
|
# Supplements
|
||||||
|
if "monster" in content_type or "creature" in content_type:
|
||||||
|
return "monster_manual"
|
||||||
|
if "player" in content_type:
|
||||||
|
return "player_companion"
|
||||||
|
if "sourcebook" in content_type or "supplement" in content_type:
|
||||||
|
return "sourcebook"
|
||||||
|
|
||||||
|
# Special
|
||||||
|
if "solo" in content_type or "journal" in content_type:
|
||||||
|
return "solo_adventure"
|
||||||
|
if "larp" in content_type or "live" in content_type:
|
||||||
|
return "larp_document"
|
||||||
|
if "prop" in content_type or "handout" in content_type:
|
||||||
|
return "props_and_handouts"
|
||||||
|
|
||||||
|
# Default
|
||||||
|
return "core_rulebook"
|
||||||
Reference in New Issue
Block a user