- Updated validator terminal step detection to only flag truly terminal steps - Fixed validator to accept integers and booleans in buckets (as supported by app.py) - Fixed metadata_remove format in activity17 from dictionary to list of strings - Added proper terminal section to activity3.yaml without questions/buckets - Fixed missing restart transition and bucket in activity28 - Removed unused game_end transitions from battleship files - Updated exit transitions to go directly to step_4 (goodbye step) - Applied black formatting to validator code All 30 activity YAML files now validate successfully with 0 errors and 0 warnings.
332 lines
13 KiB
YAML
332 lines
13 KiB
YAML
default_max_attempts_per_step: 30
|
|
|
|
tokens_for_ai_rubric: |
|
|
You are a master storyteller. Your task is to create a coherent and engaging story based on the following chat history. The story should seamlessly integrate the user's responses and the AI's feedback, ensuring that the narrative flows naturally. Pay special attention to the user's choices and how they shape the story. Use descriptive language to bring the scenes to life and make the story immersive. The story should have a clear beginning, middle, and end, reflecting the user's journey and the outcomes of their decisions. Here is the chat history.
|
|
|
|
sections:
|
|
- section_id: "section_1"
|
|
title: "The Prize Room"
|
|
steps:
|
|
- step_id: "step_1"
|
|
title: "Receive Your Prize"
|
|
content_blocks:
|
|
- "You have entered the prize room! 🎁"
|
|
- "A prize is randomly selected for you from the room."
|
|
- "You can also go to the temple pit from here."
|
|
tokens_for_ai: "DO NOT select go_back unless the users says 'go back' in their message."
|
|
question: "You have received a prize! Guess what it could be? 🤔"
|
|
buckets:
|
|
- random_prize_guess
|
|
- go_to_temple_pit
|
|
- go_back
|
|
transitions:
|
|
random_prize_guess:
|
|
ai_feedback:
|
|
tokens_for_ai: "cheer for the player, they got a new item. list them all from metadata. now make a joke about their guess!"
|
|
|
|
content_blocks:
|
|
- "You received a random prize! 🎲"
|
|
next_section_and_step: "section_1:step_1"
|
|
metadata_random:
|
|
golden_keychain: true
|
|
mysterious_amulet: true
|
|
rare_gemstone: true
|
|
ancient_scroll: true
|
|
magical_wand: true
|
|
treasure_map: true
|
|
silver_coin: true
|
|
mystical_ring: true
|
|
rare_book: true
|
|
magical_potion: true
|
|
shadow_charm: true
|
|
flame_charm: true
|
|
|
|
go_to_temple_pit:
|
|
content_blocks:
|
|
- "You chose to go to the temple pit room. 🏛"
|
|
next_section_and_step: "section_2:step_1"
|
|
go_back:
|
|
content_blocks:
|
|
- "You chose to go back to the temple pit room. 🏛"
|
|
next_section_and_step: "section_2:step_1"
|
|
|
|
- section_id: "section_2"
|
|
title: "The Temple Pit"
|
|
steps:
|
|
- step_id: "step_1"
|
|
title: "Offer to the God"
|
|
content_blocks:
|
|
- "You have entered the temple pit. 🏛"
|
|
- "You can offer an item to the god to receive a new item."
|
|
tokens_for_ai: "Guide the user to make a choice between offering different items."
|
|
question: "Which item do you offer to the god? 🤔"
|
|
buckets:
|
|
- offer_golden_keychain
|
|
- offer_mysterious_amulet
|
|
- offer_rare_gemstone
|
|
- offer_ancient_scroll
|
|
- offer_magical_wand
|
|
- offer_treasure_map
|
|
- offer_silver_coin
|
|
- offer_mystical_ring
|
|
- offer_rare_book
|
|
- offer_magical_potion
|
|
- offer_shadow_charm
|
|
- offer_flame_charm
|
|
- go_back
|
|
- off_topic
|
|
transitions:
|
|
offer_golden_keychain:
|
|
metadata_conditions:
|
|
golden_keychain: true
|
|
content_blocks:
|
|
- "You offered the golden keychain to the god. 🗝"
|
|
- "The god grants you a mystical amulet. 🧿"
|
|
next_section_and_step: "section_2:step_1"
|
|
metadata_add:
|
|
mystical_amulet: true
|
|
metadata_remove:
|
|
- golden_keychain
|
|
offer_mysterious_amulet:
|
|
metadata_conditions:
|
|
mysterious_amulet: true
|
|
content_blocks:
|
|
- "You offered the mysterious amulet to the god. 🧿"
|
|
- "The god grants you a rare gemstone. 💎"
|
|
next_section_and_step: "section_2:step_1"
|
|
metadata_add:
|
|
rare_gemstone: true
|
|
metadata_remove:
|
|
- mysterious_amulet
|
|
offer_rare_gemstone:
|
|
metadata_conditions:
|
|
rare_gemstone: true
|
|
content_blocks:
|
|
- "You offered the rare gemstone to the god. 💎"
|
|
- "The god grants you an ancient scroll. 📜"
|
|
next_section_and_step: "section_2:step_1"
|
|
metadata_add:
|
|
ancient_scroll: true
|
|
metadata_remove:
|
|
- rare_gemstone
|
|
offer_ancient_scroll:
|
|
metadata_conditions:
|
|
ancient_scroll: true
|
|
content_blocks:
|
|
- "You offered the ancient scroll to the god. 📜"
|
|
- "The god grants you a magical wand. 🪄"
|
|
next_section_and_step: "section_2:step_1"
|
|
metadata_add:
|
|
magical_wand: true
|
|
metadata_remove:
|
|
- ancient_scroll
|
|
offer_magical_wand:
|
|
metadata_conditions:
|
|
magical_wand: true
|
|
content_blocks:
|
|
- "You offered the magical wand to the god. 🪄"
|
|
- "The god grants you a treasure map. 🗺"
|
|
next_section_and_step: "section_2:step_1"
|
|
metadata_add:
|
|
treasure_map: true
|
|
metadata_remove:
|
|
- magical_wand
|
|
offer_treasure_map:
|
|
metadata_conditions:
|
|
treasure_map: true
|
|
content_blocks:
|
|
- "You offered the treasure map to the god. 🗺"
|
|
- "The god grants you a silver coin. 🪙"
|
|
next_section_and_step: "section_2:step_1"
|
|
metadata_add:
|
|
silver_coin: true
|
|
metadata_remove:
|
|
- treasure_map
|
|
offer_silver_coin:
|
|
metadata_conditions:
|
|
silver_coin: true
|
|
content_blocks:
|
|
- "You offered the silver coin to the god. 🪙"
|
|
- "The god grants you a mystical ring. 💍"
|
|
next_section_and_step: "section_2:step_1"
|
|
metadata_add:
|
|
mystical_ring: true
|
|
metadata_remove:
|
|
- silver_coin
|
|
offer_mystical_ring:
|
|
metadata_conditions:
|
|
mystical_ring: true
|
|
content_blocks:
|
|
- "You offered the mystical ring to the god. 💍"
|
|
- "The god grants you a rare book. 📚"
|
|
next_section_and_step: "section_2:step_1"
|
|
metadata_add:
|
|
rare_book: true
|
|
metadata_remove:
|
|
- mystical_ring
|
|
offer_rare_book:
|
|
metadata_conditions:
|
|
rare_book: true
|
|
content_blocks:
|
|
- "You offered the rare book to the god. 📚"
|
|
- "The god grants you a magical potion. 🧪"
|
|
next_section_and_step: "section_2:step_1"
|
|
metadata_add:
|
|
magical_potion: true
|
|
metadata_remove:
|
|
- rare_book
|
|
offer_magical_potion:
|
|
metadata_conditions:
|
|
magical_potion: true
|
|
content_blocks:
|
|
- "You offered the magical potion to the god. 🧪"
|
|
- "The god grants you a golden keychain. 🗝"
|
|
next_section_and_step: "section_2:step_1"
|
|
metadata_add:
|
|
golden_keychain: true
|
|
metadata_remove:
|
|
- magical_potion
|
|
offer_shadow_charm:
|
|
metadata_conditions:
|
|
shadow_charm: true
|
|
metadata_remove:
|
|
- shadow_charm
|
|
content_blocks:
|
|
- "You offered the Shadow Charm to the god. 🖤"
|
|
- "The god summons the Shadow Beast! Prepare for battle!"
|
|
next_section_and_step: "section_3:step_1"
|
|
offer_flame_charm:
|
|
metadata_conditions:
|
|
flame_charm: true
|
|
metadata_remove:
|
|
- flame_charm
|
|
content_blocks:
|
|
- "You offered the Flame Charm to the god. 🔥"
|
|
- "The god summons the Fire Drake! Prepare for battle!"
|
|
next_section_and_step: "section_4:step_1"
|
|
go_back:
|
|
content_blocks:
|
|
- "You chose to go back to the prize room. 🎁"
|
|
next_section_and_step: "section_1:step_1"
|
|
off_topic:
|
|
ai_feedback:
|
|
tokens_for_ai: "Gently guide the user back to the story in a supportive manner. DO NOT ask any questions. Use emojis like 🔄 and 🧭."
|
|
next_section_and_step: "section_2:step_1"
|
|
|
|
- section_id: "section_3"
|
|
title: "The Dark Cavern"
|
|
steps:
|
|
- step_id: "step_1"
|
|
title: "Battle the Shadow Beast"
|
|
content_blocks:
|
|
- "You have entered the Dark Cavern. The air is thick with darkness, and a menacing growl echoes around you."
|
|
- "A Shadow Beast emerges from the shadows, ready to attack!"
|
|
tokens_for_ai: "Guide the user to choose their action based on their items."
|
|
question: "Do you fight the Shadow Beast? (You need the Magical Wand or Mystical Ring to win!)"
|
|
buckets:
|
|
- fight_with_wand
|
|
- fight_with_ring
|
|
- flee
|
|
transitions:
|
|
fight_with_wand:
|
|
metadata_conditions:
|
|
magical_wand: true
|
|
content_blocks:
|
|
- "You wield the Magical Wand and unleash a powerful spell!"
|
|
- "The Shadow Beast is defeated! You find a Shadow Crystal. 💎"
|
|
next_section_and_step: "section_5:step_1"
|
|
metadata_add:
|
|
shadow_crystal: true
|
|
fight_with_ring:
|
|
metadata_conditions:
|
|
mystical_ring: true
|
|
content_blocks:
|
|
- "You use the Mystical Ring to channel your inner light!"
|
|
- "The Shadow Beast is defeated! You find a Shadow Crystal. 💎"
|
|
next_section_and_step: "section_5:step_1"
|
|
metadata_add:
|
|
shadow_crystal: true
|
|
flee:
|
|
content_blocks:
|
|
- "You attempt to flee, but the Shadow Beast catches you. You have met your end. 💀"
|
|
next_section_and_step: "death_ending:step_1"
|
|
|
|
- section_id: "section_4"
|
|
title: "The Fiery Lair"
|
|
steps:
|
|
- step_id: "step_1"
|
|
title: "Battle the Fire Drake"
|
|
content_blocks:
|
|
- "You have entered the Fiery Lair. The heat is intense, and flames flicker around you."
|
|
- "A Fire Drake roars, ready to defend its territory!"
|
|
tokens_for_ai: "Guide the user to choose their action based on their items."
|
|
question: "Do you fight the Fire Drake? (You need the Treasure Map or Ancient Scroll to win!)"
|
|
buckets:
|
|
- fight_with_map
|
|
- fight_with_scroll
|
|
- flee
|
|
transitions:
|
|
fight_with_map:
|
|
metadata_conditions:
|
|
treasure_map: true
|
|
content_blocks:
|
|
- "You use the Treasure Map to find the Drake's weak spot!"
|
|
- "The Fire Drake is defeated! You find a Flame Pendant. 🔥"
|
|
next_section_and_step: "section_5:step_1"
|
|
metadata_add:
|
|
flame_pendant: true
|
|
fight_with_scroll:
|
|
metadata_conditions:
|
|
ancient_scroll: true
|
|
content_blocks:
|
|
- "You read the Ancient Scroll and summon a powerful fire shield!"
|
|
- "The Fire Drake is defeated! You find a Flame Pendant. 🔥"
|
|
next_section_and_step: "section_5:step_1"
|
|
metadata_add:
|
|
flame_pendant: true
|
|
flee:
|
|
content_blocks:
|
|
- "You attempt to flee, but the Fire Drake incinerates you. You have met your end. 💀"
|
|
next_section_and_step: "death_ending_fire:step_1"
|
|
|
|
- section_id: "section_5"
|
|
title: "The Final Path"
|
|
steps:
|
|
- step_id: "step_1"
|
|
title: "The Final Path"
|
|
content_blocks:
|
|
- "You have defeated the monster and continue on your journey."
|
|
- "You see a path leading to the final destination."
|
|
tokens_for_ai: "Guide the user to the final victory."
|
|
question: "Do you continue on the path to victory? 🤔"
|
|
buckets:
|
|
- continue_to_victory
|
|
transitions:
|
|
continue_to_victory:
|
|
content_blocks:
|
|
- "You walk down the path and reach the final destination. You are victorious! 🏆"
|
|
next_section_and_step: "victory:step_1"
|
|
|
|
- section_id: "death_ending"
|
|
title: "The Abyss of Shadows"
|
|
steps:
|
|
- step_id: "step_1"
|
|
title: "Death Ending"
|
|
content_blocks:
|
|
- "Game Over."
|
|
|
|
- section_id: "death_ending_fire"
|
|
title: "The Ashen Wastes"
|
|
steps:
|
|
- step_id: "step_1"
|
|
title: "Death Ending"
|
|
content_blocks:
|
|
- "Game Over."
|
|
|
|
- section_id: "victory"
|
|
title: "Victory"
|
|
steps:
|
|
- step_id: "step_1"
|
|
title: "Victory"
|
|
content_blocks:
|
|
- "Thank you for playing!"
|