Hi there!
This proof-of-concept is an attempt to use turn-based strategy mechanics in a narrative sequence.
''BASICS:''
- You have a limited number of ACTIONS you can perform before the sequence ends.
- There are 2 types of ACTIONS: DECISIONS and CHOICES.
- DECISIONS lead to the end of a sequence.
- CHOICES have an influence on the outcome of your DECISIONS.
- There's no "good" DECISION.
[[START->Intro]]
{
(set: $Actions to 4)
(set: $SaveDan to 50)
(set: $KillDan to 50)
(set: $Why to false)
(set: $Lower to false)
(set: $Aim to false)
(set: $Wound to false)
(set: $Insult to false)
}
####Actions left: (print: $Actions)
Vietnam War, 1972.
Travis (20), an American soldier, was standing in the middle of a dense jungle with his rifle in hands. A few steps away, Dan (20), a North-Vietnamese soldier, was floundering in the mud and moaning. One of his swollen bare shin was bent into an impossible angle.
(display: "Choices Menu")
{
<table>
<tr>
<td class="choices">CHOICES :<BR>
(if: $Why is false)[(link:"'Don't move!' shouted Travis.")[(if: $Actions > 1)[(goto:"Why")](else:)[(goto:"End SAVE")]]](else:)['Don't move!' shouted Travis.]
(if: $Aim is false)[(link:"Travis aimed his rifle at Dan.")[(if: $Actions > 1)[(goto:"Aim")](else:)[(goto:"End SAVE")]]](else:)[Travis aimed his rifle at Dan.]
(if: $Lower is false)[(link:"Travis lowered his rifle.")[(if: $Actions > 1)[(goto:"Lower")](else:)[(goto:"End SAVE")]]] (else:)[Travis lowered his rifle.]
(if: $Why is true)[(if: $Actions > 1 and $Insult is false)[(link:"Travis insulted Dan.")[(goto:"Insult")](elseif: $Actions <= 1 and $Insult is false)[(goto:"End SAVE")]]
(elseif: $Why is true and $Insult is true)[Travis insulted Dan.]]
(elseif: $Aim is true)[(if: $Actions > 1 and $Insult is false)[(link:"Travis insulted Dan.")[(goto:"Insult")](elseif: $Actions <= 1 and $Insult is false)[(goto:"End SAVE")]]
(elseif: $Aim is true and $Insult is true)[Travis insulted Dan.]]
(elseif: $Aim is true and $Why is true)[(if: $Actions > 1 and $Insult is false)[(link:"Travis insulted Dan.")[(goto:"Insult")](elseif: $Actions <= 1 and $Insult is false)[(goto:"End SAVE")]]
(elseif: $Aim is true and $Why is true and $Insult is true)[Travis insulted Dan.]]
(if: $Lower is true)[(if: $Actions > 1 and $Wound is false)[(link:"Travis took a closer look at Dan's wound.")[(goto:"Wound")](elseif: $Actions <= 1 and $Wound is false)[(goto:"End SAVE")]]
(elseif: $Lower is true and $Would is true)[Travis took a closer look at Dan's wound.]]</td>
<td class="decisions">DECISIONS :<ul><li>(link:"Travis tried to save Dan.")[(goto:"End SAVE")]
$SaveDan % to succeed</li></ul>
<ul><li>(link:"Travis tried to kill Dan.")[(goto:"End KILL")]
$KillDan % to succeed</li></ul></td>
</tr>
</table>
}
{(set: $Actions to $Actions - 1)
(set: $Why to true)
(if: $Actions is 3)[
(set: $SaveDan to it + 10)
(set: $KillDan to it + 10)
]
(elseif: $Actions is 2)[
(set: $SaveDan to it + 5)
(set: $KillDan to it + 5)
]
}
####Actions left: (print: $Actions)
(if: $Actions > 1)[Dan froze and looked at Travis with watery eyes :
"I don't want to die! Please!"]\
(else:)[Dan sighed and slowly shooked his head. He glanced at a crinkled flower nearby, stained with dirt.
"I'm so sorry, love..." Dan mumbled for himself in Vietnamese, a sad smile on his emaciated face.]
(display: "Choices Menu")
(set: $SaveDanSuccess to (random: 1, 100))
(if: $SaveDanSuccess < $SaveDan and $Actions > 1)[Travis did his best to fix Dan's leg, and carried him on his shoulder.]
(else:)[There was nothing Travis could have done for Dan. He stepped away, leaving the Vietnamese soldier alone and hopeless.]
{(set: $Actions to $Actions - 1)
(set: $Insult to true)
(if: $Actions is 2)[
(set: $SaveDan to it - 10)
(set: $KillDan to it - 5)
]
(elseif: $Actions is 1)[
(set: $SaveDan to it - 5)
(set: $KillDan to it + 5)
]
}
####Actions left: (print: $Actions)
(if: $Actions is 2)[Dan curled up as if he was beaten up by Travis's words. Tears flowed from his eyes.
"I never wanted to be your enemy!" Dan cried desperately.](else:)[Dan spat bitterly on the ground, and sniffed:
"Alone in this jungle, you're gonna die too, you know."]
(display: "Choices Menu")
{(set: $Actions to $Actions - 1)
(set: $Aim to true)
(if: $Actions is 3)[
(set: $SaveDan to it - 10)
(set: $KillDan to it + 30)
]
(elseif: $Actions is 2)[
(set: $SaveDan to it - 15)
(set: $KillDan to it + 25)
]
(elseif: $Actions is 1)[
(set: $SaveDan to it - 20)
(set: $KillDan to it + 25)
]
}
####Actions left: (print: $Actions)
(if: $Actions >= 2)[Scared, Dan tried to flee, but slipped on the mucky grass, fell and gasped painfully.](else:)[Weakened, Dan did not even try to avoid Travis's sight. His weary eyes stared at the palm trees above him.]
(display: "Choices Menu")
{(set: $Actions to $Actions - 1)
(set: $Wound to true)
(if: $Actions is 2)[
(set: $SaveDan to it + 20)
(set: $KillDan to it + 5)
]
(elseif: $Actions is 1)[
(set: $SaveDan to it + 10)
(set: $KillDan to it + 10)
]
}
####Actions left: (print: $Actions)
(if: $Actions is 3)[The Vietnamese man looked famished and exhausted, but his breath became steadier, and a glimpse of faint hope appeared in his crimson eyes. His left shin was still crooked in the most awful way, though.](else:)[The Vietnamese man looked barely conscious now, with his yellowish lids, twitching like soaked moths. His left shin was crooked in the most awful way; his skeletal body would not support him much longer.]
(display: "Choices Menu")
{(set: $Actions to $Actions - 1)
(set: $Lower to true)
(if: $Actions is 3)[
(set: $SaveDan to it + 10)
(set: $KillDan to it - 10)
]
(elseif: $Actions is 2)[
(set: $SaveDan to it + 10)
(set: $KillDan to it - 10)
]
(elseif: $Actions is 1)[
(set: $SaveDan to it + 5)
(set: $KillDan to it - 5)
]
}
####Actions left: (print: $Actions)
(if: $Actions > 1)[Dan stared blankly at Travis, and tried to calm his breath. But the pain in his leg came back vividly; he cried loudly, clutching at his broken shin.](else:)[Dan looked at Travis with a hollow gaze; he seemed half-conscious and dangerously exhausted.]
(display: "Choices Menu")
''ACTIONS'':
- You start with a maximum number of ACTIONS you can carry out before the sequence automatically ends.
- You can carry out each ACTION only once.
''DECISIONS'':
- DECISIONS have a //success rate// influenced by the CHOICES you make (see below).
- If you don't make any DECISION before the end of a sequence, the game will decide for you. :)
''CHOICES'':
- CHOICES influence the //success rate// of your final DECISIONS in a positive or a negative way.
- The order of your CHOICES is also important e.g., making a CHOICE before or after the other CHOICES will produce different results.
//HINTS//
- In "FRIENDS OR FOES", Dan's reactions are influenced by his mental/physical state. His mental/physical state degrades over time, but this degradation can be aggravated/nuanced by the CHOICES you make.
- There is no "good" DECISION.
- You can perform 4 ACTIONS... or less.
[[Good luck!->Start]] :)
(set: $KillDanSuccess to (random: 1, 100))
(if: $KillDanSuccess < $KillDan and $Actions is not 0)[Travis shot Dan's head. The whole jungle remained utterly silent for a brief moment.]
(else:)[Travis shot, but missed Dan. The two soldiers stared at each other without blinking. The silence around them was thick and scary.]