From 3039da35fd67d8b7699146bea8a0fc6915cc5f0f Mon Sep 17 00:00:00 2001 From: Simonas Kareiva Date: Thu, 21 May 2026 17:21:12 +0300 Subject: [PATCH] Add level descriptions --- src/levels/l05.md | 14 ++++++++++++++ src/levels/l06.md | 11 +++++++++++ src/levels/l07.md | 20 ++++++++++++++++++++ src/levels/l08.md | 10 ++++++++++ src/levels/l09.md | 13 +++++++++++++ src/levels/l10.md | 9 +++++++++ src/levels/l11.md | 15 +++++++++++++++ 7 files changed, 92 insertions(+) create mode 100644 src/levels/l05.md create mode 100644 src/levels/l06.md create mode 100644 src/levels/l07.md create mode 100644 src/levels/l08.md create mode 100644 src/levels/l09.md create mode 100644 src/levels/l10.md create mode 100644 src/levels/l11.md diff --git a/src/levels/l05.md b/src/levels/l05.md new file mode 100644 index 0000000..4862760 --- /dev/null +++ b/src/levels/l05.md @@ -0,0 +1,14 @@ +Fifth level mixes dictionaries and lists. Each chamber keeps its own inventory. + +chambers: + armory: + - sword + - shield + pantry: + - bread + - water + library: + - tome + - scroll + +Randomize the chamber names and their item lists diff --git a/src/levels/l06.md b/src/levels/l06.md new file mode 100644 index 0000000..0130dd0 --- /dev/null +++ b/src/levels/l06.md @@ -0,0 +1,11 @@ +Sixth level introduces anchors. Two rooms share the same trap — define it once and alias it. + +trap: &spike_pit + type: pit + depth: 20 + spikes: true +rooms: + north: *spike_pit + south: *spike_pit + +Randomize the trap properties and which rooms reuse it diff --git a/src/levels/l07.md b/src/levels/l07.md new file mode 100644 index 0000000..59f5fe0 --- /dev/null +++ b/src/levels/l07.md @@ -0,0 +1,20 @@ +Seventh level is complex data structures. The map of a single floor, with every shape nested. + +floor: 3 +rooms: + entrance: + type: hall + exits: + - north + - east + contents: + - torch + - bench + treasury: + type: vault + locked: true + contents: + - gold + - ruby + +Randomize room names, types, exits and contents diff --git a/src/levels/l08.md b/src/levels/l08.md new file mode 100644 index 0000000..1032dbe --- /dev/null +++ b/src/levels/l08.md @@ -0,0 +1,10 @@ +Eighth level: tags and newlines. The scroll preserves its lines and demands explicit types. + +scroll: | + Beware the path + that turns twice. + Drink only at the third spring. +weight: !!float 12 +title: !!str 2024 + +Randomize the scroll text and the tagged values diff --git a/src/levels/l09.md b/src/levels/l09.md new file mode 100644 index 0000000..6ea0cdf --- /dev/null +++ b/src/levels/l09.md @@ -0,0 +1,13 @@ +Ninth level: special operators. The merge key lets each door inherit a template and override a field. + +door_defaults: &defaults + material: oak + locked: false +north_door: + <<: *defaults + locked: true +south_door: + <<: *defaults + material: iron + +Randomize the default values and which fields each door overrides diff --git a/src/levels/l10.md b/src/levels/l10.md new file mode 100644 index 0000000..f4b2e48 --- /dev/null +++ b/src/levels/l10.md @@ -0,0 +1,9 @@ +Tenth level: dynamic values. The vault ledger uses many number and date forms. + +vault: + gold: 0x1F4 + silver: 0o755 + experience: 1.5e3 + date: 2024-06-15 + +Randomize the integer bases, the exponent, and the date diff --git a/src/levels/l11.md b/src/levels/l11.md new file mode 100644 index 0000000..dc030aa --- /dev/null +++ b/src/levels/l11.md @@ -0,0 +1,15 @@ +Eleventh level: advanced anchors. Anchor shapes inside a list, then alias them elsewhere. + +shapes: + - &triangle + sides: 3 + angles: 180 + - &square + sides: 4 + angles: 360 +copies: + - *triangle + - *square + - *triangle + +Randomize the shape definitions and which copies are reused