Added Interactive Story Draft
This commit is contained in:
parent
c2fd5fb41d
commit
4ee17f7308
2 changed files with 121 additions and 0 deletions
90
Drafts/README.md
Normal file
90
Drafts/README.md
Normal file
|
@ -0,0 +1,90 @@
|
|||
# Interactive Story Draft
|
||||
|
||||
- **File Format:** `.isd`
|
||||
|
||||
The Interactive Story Draft (ISD) format is a intermediate 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. **Conditional Statements:**
|
||||
|
||||
- **Syntax:** `(if: condition)[Text if true]`
|
||||
- **Description:** Displays text or content based on a condition.
|
||||
|
||||
6. **Else Clause:**
|
||||
|
||||
- **Syntax:** `(else:)[Text if false]`
|
||||
- **Description:** Follows an `(if:)` statement to handle the false condition.
|
||||
|
||||
7. **Drop down:**
|
||||
|
||||
- **Syntax:** ``(dropdown: $variableName to "Option 1", "Option 2")``
|
||||
- **Description:** Assigns a drop down menu with the given strings as options.
|
||||
|
||||
8. **Random Number Generation:**
|
||||
|
||||
- **Syntax:** `(set: $variableName to (random: min, max))`
|
||||
- **Description:** Sets a variable to a random number between `min` and `max`.
|
||||
|
||||
9. **Text Styling:**
|
||||
|
||||
- **Syntax:** `''italic''`, `'''bold'''`, `^^superscript^^`, `~~subscript~~`
|
||||
- **Description:** Applies basic text formatting.
|
||||
|
||||
### Usage
|
||||
|
||||
```
|
||||
:: 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]]
|
||||
```
|
31
Drafts/sample.isd
Normal file
31
Drafts/sample.isd
Normal file
|
@ -0,0 +1,31 @@
|
|||
:: 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]]
|
Loading…
Add table
Reference in a new issue