/tragedy-looper-generator

Generate somewhat randomized plots for Tragedy Looper.

Primary LanguageTypeScriptMIT LicenseMIT

Tragedy Looper Generator

Tragedy Looper (惨劇 RoopeR) is a scenario-based deduction game where players take the roles of time loopers attempting to prevent a tragedy.

Impetus

One of the players takes on the role of the Mastermind, the overseer who is responsible for running the game from the antagonist's standpoint. In order to perform their tasks, the Mastermind follows a script which includes a cast, a series of incidents, and various plots. Enterprising Masterminds are able to use the rules of the game to write their own scripts and tell a variety of stories.

The game provides numerous scripts throughout its base game and two expansions. However, once a script has been played, it's essentially spoiled. At a certain point, continuing to play the game will require effort from the Mastermind to write a new script. This is not conducive to impromptu "game night" play.

Have a computer make scripts for you

Use the generator to randomly create a script.

Whenever possible, the published rules of the game are respected. For example, if the "Sign with me!" plot is chosen, the Key Person is guaranteed to be a Girl. Things that known to deviate from this are documented on the issue tracker.

The number of loops is calculated from the published rules of the game, with a minimum of two loops (just to be sporting). Users should feel encouraged to modify this as they see fit to alter the difficulty of their game.

Parameters

The user has a few handles by which to determine the "feel" of the game:

  • Tragedy Set
  • Character Pools
  • Number of Subplots (1 or 2)
  • Cast Size (6-11)
  • Number of Incidents (Between 0 and the minimum of days or cast size)
  • Number of Days per Loop

A couple of things to note things to note:

  • If the plot/roles require more incidents than have been requested, more incidents will be added.
  • If there are more incidents than characters that can fulfill them, more characters will be added.

Cheatsheet

Cheatsheets are a helpful way for the mastermind to get an overview of all relevant triggers and abilities that they will need during the game. This saves the effort of looking through a small-print reference card and can greatly speed up the resolution of said abilities.

Right now, there is no direct connection between the Generator tab and the Cheatsheet tab.

Development

To start a local development server, just run:

npm start

Code linting can be done with:

# Autoformat using Prettier
npm run format

# Ensure everything is linted
npm run lint

To build the production bundle, run:

npm run build