From 2655f0dc96c80c259c6e196b8ca9ea1314f1fe0f Mon Sep 17 00:00:00 2001 From: Tony Bark Date: Sat, 1 Mar 2025 09:13:42 -0500 Subject: [PATCH] Remove draft and spec Reworked source code based on changes to Synthetic Fur --- draft/README.md | 96 ------------------------ draft/sample.isd | 31 -------- src/{StarterKit.twee => starterkit.twee} | 49 +++++++----- 3 files changed, 30 insertions(+), 146 deletions(-) delete mode 100644 draft/README.md delete mode 100644 draft/sample.isd rename src/{StarterKit.twee => starterkit.twee} (50%) diff --git a/draft/README.md b/draft/README.md deleted file mode 100644 index cb28c9a..0000000 --- a/draft/README.md +++ /dev/null @@ -1,96 +0,0 @@ -# Interactive Story Draft v0.5 - -- **File Format:** `.isd` - -The Interactive Story Draft (ISD) format is a story format language designed for drafting interactive fiction before implementation in Twine’s Harlowe or similar engines. It allows authors to structure branching narratives, define conditions, and track variables efficiently. - ---- - -## Specifications - -1. **Passages:** - - - **Syntax:** `# PassageName` - - **Description:** Defines a new passage or section in the story. - -2. **Links:** - - - **Syntax:** `[[Link Text -> TargetPassage]]` - - **Description:** Creates a navigational link to another passage. - -3. **Variables:** - - - **Syntax:** `$variableName` - - **Description:** Represents a variable to track states or information. - -4. **Variable Assignment:** - - - **Syntax:** `(set: $variableName to value)` - - **Description:** Assigns a value to a variable. - -5. **Input Variable**: - - - **Syntax:** `(input: $userVariable, "Placeholder")` - - **Description:** Allows the user to input data. - -6. **Conditional Statements:** - - - **Syntax:** `(if: condition)[Text if true]` - - **Description:** Displays text or content based on a condition. - -7. **Else Clause:** - - - **Syntax:** `(else:)[Text if false]` - - **Description:** Follows an `(if:)` statement to handle the false condition. - -8. **Drop down:** - - - **Syntax:** ``(dropdown: $variableName to "Option 1", "Option 2")`` - - **Description:** Assigns a drop down menu with the given strings as options. - -9. **Random Number Generation:** - - - **Syntax:** `(set: $variableName to (random: min, max))` - - **Description:** Sets a variable to a random number between `min` and `max`. - -10. **Text Styling:** - - - **Syntax:** `''italic''`, `'''bold'''`, `^^superscript^^`, `~~subscript~~` - - **Description:** Applies basic text formatting. - -## Example - -``` -# Introduction -Welcome to your adventure! You find yourself at a crossroads. - -[[Take the left path -> LeftPath]] -[[Take the right path -> RightPath]] - -# LeftPath -You walk down the left path and encounter a mysterious stranger. - -(set: $hasKey to true) -The stranger gives you a key. - -[[Continue -> Crossroads]] - -# RightPath -You walk down the right path and find a locked door. - -(if: $hasKey)[ - You use the key to unlock the door and discover a treasure! -] -(else:)[ - The door is locked. You need a key to open it. -] - -[[Return to the crossroads -> Crossroads]] - -# Crossroads -You're back at the crossroads. - -[[Take the left path -> LeftPath]] -[[Take the right path -> RightPath]] - -``` diff --git a/draft/sample.isd b/draft/sample.isd deleted file mode 100644 index ab94c4b..0000000 --- a/draft/sample.isd +++ /dev/null @@ -1,31 +0,0 @@ -# Introduction -Welcome to your adventure! You find yourself at a crossroads. - -[[Take the left path -> LeftPath]] -[[Take the right path -> RightPath]] - -# LeftPath -You walk down the left path and encounter a mysterious stranger. - -(set: $hasKey to true) -The stranger gives you a key. - -[[Continue -> Crossroads]] - -# RightPath -You walk down the right path and find a locked door. - -(if: $hasKey)[ - You use the key to unlock the door and discover a treasure! -] -(else:)[ - The door is locked. You need a key to open it. -] - -[[Return to the crossroads -> Crossroads]] - -# Crossroads -You're back at the crossroads. - -[[Take the left path -> LeftPath]] -[[Take the right path -> RightPath]] diff --git a/src/StarterKit.twee b/src/starterkit.twee similarity index 50% rename from src/StarterKit.twee rename to src/starterkit.twee index 43845a1..101b9d5 100644 --- a/src/StarterKit.twee +++ b/src/starterkit.twee @@ -12,32 +12,43 @@ Starter Kit } -:: Header [header] {"position":"450,350","size":"100,100"} -(align:"=><=")+(box:"X")[''Starter Adventure'' | - [[Settings->Settings]]] - -:: Return {"position":"575,350","size":"100,100"} -(align:"=><=")+(box:"X")[(link-goto: - "Return", (history:)'s last)] - - -:: Settings {"position":"450,500","size":"100,100"} +:: About {"position":"325,250","size":"100,100"} (align:"=><=")+(box:"X")[= - Name: (input-box:2bind $player,"X",1,"Zack") - Location: (dropdown: bind $location, "Sunset Arms", "TPaw HQ") - Class: (dropdown: bind $class, "DJ", "Programmer") - - (display:"Return") +=|= +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur ac ornare nulla. Suspendisse metus ex, bibendum eget convallis sit amet, cursus efficitur metus. Nulla ullamcorper ex dapibus, porta sapien ac, malesuada tortor. Curabitur aliquam eleifend sapien eu hendrerit. Aenean euismod, enim quis porta vehicula, est lorem sagittis nulla, a congue dui purus sed lorem. Nunc ullamcorper felis et ante laoreet tristique. Ut a justo scelerisque, tristique purus quis, volutpat neque. +=|= +Nulla lobortis euismod mattis. Aenean sit amet augue ullamcorper, pharetra mi sed, finibus arcu. Nullam sed justo at orci varius tristique nec quis lectus. Curabitur id pulvinar libero, eget lacinia justo. Ut eget tempor risus. Sed fermentum lobortis dignissim. Aliquam erat volutpat. Interdum et malesuada fames ac ante ipsum primis in faucibus. Suspendisse potenti. Quisque et aliquet orci, eget sollicitudin neque. +|==| -:: Main Menu {"position":"325,350","size":"100,100"} +:: Header [header] {"position":"325,375","size":"100,100"} +(align:"=><=")+(box:"X")[ [[Settings->Settings]] | [[About->About]] ] +(seed:"36ac6237-cefe-4f59-894e-0cc812654f44") + + +:: Main Menu {"position":"200,375","size":"100,100"} (align:"=><=")+(box:"X")[= ## [[Play->Prologue]] - (unless: (history:) contains "Settings")[ - (set: $player to "Zack")] + +:: On Load [startup] {"position":"200,250","size":"100,100"} + +(set: $player to "Zack") + + +(set: $d6 to (random: 1,6)) + :: Prologue {"position":"325,500","size":"100,100"} Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ultrices quam quam, lacinia consequat justo cursus condimentum. Aenean sed rhoncus orci. Donec accumsan ex magna. Nulla tempor egestas eleifend. Sed eget aliquet augue. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer aliquet quam ut felis tempor, quis tincidunt urna pharetra. Morbi molestie libero id mauris porttitor dapibus. Donec ac ante augue. Duis commodo facilisis mi. Fusce quis enim ante. Praesent vitae est in arcu venenatis molestie nec in arcu. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed commodo erat magna. -Mauris in ipsum imperdiet, tristique turpis ut, interdum metus. Donec ante quam, aliquet quis pulvinar eu, rhoncus nec ipsum. Sed eget sapien neque. Proin convallis justo lacus, a rhoncus eros condimentum nec. Aliquam erat volutpat. Aliquam eu nulla a odio imperdiet posuere. Pellentesque id ipsum vulputate, accumsan enim nec, dignissim elit. Suspendisse lobortis neque ligula, in faucibus libero rutrum ac. Nunc porta gravida congue. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. \ No newline at end of file +Mauris in ipsum imperdiet, tristique turpis ut, interdum metus. Donec ante quam, aliquet quis pulvinar eu, rhoncus nec ipsum. Sed eget sapien neque. Proin convallis justo lacus, a rhoncus eros condimentum nec. Aliquam erat volutpat. Aliquam eu nulla a odio imperdiet posuere. Pellentesque id ipsum vulputate, accumsan enim nec, dignissim elit. Suspendisse lobortis neque ligula, in faucibus libero rutrum ac. Nunc porta gravida congue. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. + + +:: Settings {"position":"450,500","size":"100,100"} +(align:"=><=")+(box:"X")[= +''Name'' +(input-box:2bind $player,"X",1,"Zack") + + + (button:)(link-goto: "Save", (history:)'s last)