Tasty TADS 3 recipes for solving common and uncommon problems.

Overview

TADS 3 Cookbook

Tasty TADS 3 recipes for solving common and uncommon problems when writing interactive fiction.

There are two aspects of the TADS 3 Cookbook:

  • A wiki of recipes, with one problem and solution per page
  • A repository of code examples that may be compiled, played, and experimented with

The wiki and code samples are intended to be brief, and not full-fledged tutorials of the TADS language or library.

More information

You might also like...
Takes in a HEX color and produces variations of that colour for the foreground and background

css-colors Takes in a HEX color and produces variations of that colour for the foreground and background It takes a great php class made by Patrick Fi

An opinionated support package for Laravel, that provides flexible and reusable helper methods and traits for commonly used functionality.

Support An opinionated support package for Laravel, that provides flexible and reusable helper methods and traits for commonly used functionality. Ins

Laravel blade directives and php helpers for serverside rendered content, based on browser window size WITHOUT css. Requires Livewire and AlpineJS.

Laravel Livewire Window Size and Breakpoints Laravel blade directives and php helpers for server side rendered content, based on browser window size W

Invalidate caches and achieve high hitrate with readable and maintainable annotations

Purgatory Purgatory is an extension which makes it possible for Symfony applications to handle enormous load using minimal infrastructure. Infrastruct

Sweetalert and Toaster notifications for Laravel livewire with support for tailwind and bootstrap.

Larabell Integrate livewire with sweetalert. Installation How to use Sweetalert Toast Available configuration Installation composer require simtabi/la

Invoices, Expenses and Tasks built with Laravel and Flutter

Invoice Ninja Hosted | Self-Hosted We're on Slack, join us at slack.invoiceninja.com or if you like StackOverflow Just make sure to add the invoice-ni

Fast and simple implementation of a REST API based on the Laravel Framework, Repository Pattern, Eloquent Resources, Translatability, and Swagger.

Laravel Headless What about? This allows a fast and simple implementation of a REST API based on the Laravel Framework, Repository Pattern, Eloquent R

Collection of agnostic PHP Functions and helpers with zero dependencies to use as foundation in packages and other project

Collection of agnostic PHP Functions and helpers This package provides a lot of very usefull agnostic helpers to use as foundation in packages and oth

Laravel Podcast is Laravel 5.5 web app that enables you to manage RSS feeds for your favorite podcasts and listen to the episodes in a seamless UI and User Authentication.
Laravel Podcast is Laravel 5.5 web app that enables you to manage RSS feeds for your favorite podcasts and listen to the episodes in a seamless UI and User Authentication.

Laravel Podcast is Laravel 5.5 web app that enables you to manage RSS feeds for your favorite podcasts and listen to the episodes in a seamless UI and

Comments
  • IF is for everyone: Make menus accessible to screen reader users at startup

    IF is for everyone: Make menus accessible to screen reader users at startup

    Problem

    The TADS 3 menu system on native interpreters (both text only and HTML TADS variants) are not accessible for players using screen readers. This is due to the way the banner API works, and how they're usually displayed by interpreters.

    Solution

    Create an InitObject that asks the player if they're using a screen reader, and adjust the statusLine.statusDispMode to StatusModeText if so. The reason we need to change the statusLine.statusDispMode variable is because the menu system displays menus in whichevermode the status line is displayed in.

    screenReaderInit: InitObject
    execute()
    {
    "\bAre you using a screen reader to play this story? (Yes or no.)";
    if(yesOrNo())
    {
    statusLine.statusDispMode = StatusModeText;
    }
    }
    ;
    

    You can use the exact same code for both adv3 and adv3lite, so there's no need to change the code depending on what library you use.

    opened by BlindHunter95 1
  • "Background detail": Explain the game in a help menu

    Problem

    It can useful to tell new or returning players what the background for the game is: where the game is set or who the player character is. While this might be obvious from an EXAMINE ME, you might want to elaborate some more.

    It'd be nice to have some initial hints to guide them in the right direction.

    Solution

    Add a few game hints with permanently open goals so the hints on the backstory are always available:

    TopHintMenu 'Hints';
    
    + HintMenu 'The Basics';
    
    ++ Goal 'Where am I?'
        ['You are in the TADS Cookbook kitchen.']
        openWhen = true
    ;
    
    ++ Goal 'Who am I?'
        ['You are the AFGNCAAP: the ageless, faceless, gender-neutral, culturally-ambiguous adventure person.']
        openWhen = true
    ;
    

    To get to this menu, a player needs to type HINT (and then again after the warning). To disable the warning, you can do so at game initialization:

    InitObject
        execute() {
            sessionHintStatus.hintWarning = true;
            gameHintStatus.hintWarning = true;
        }
    

    To remap HELP to HINT:

    DefineIAction(Help)
        execAction() {
            if (gHintManager != nil)
                gHintManager.showHints();
            else
                mainReport(gLibMessages.hintsNotPresent);
        }
    ;
    
    VerbRule(Help)
        'help'
        : HelpAction
        verbPhrase = 'show/showing help'
    ;
    
    opened by BrettWitty 1
Owner
Jim Nelson
Jim Nelson
Laravel Common Password Validator

laravel-common-password-validator Laravel Common Password Validator An optimized and secure validator to check if a given password is too common. By d

WedgeHR 1 Nov 6, 2021
Blacksmith is a code generation tool which automates the creation of common files that you'd typically create for each entity in your application.

Blacksmith is a code generation tool which automates the creation of common files that you'd typically create for each entity in your application.

Indatus 197 Dec 30, 2022
A collection of common algorithms implemented in PHP. The collection is based on "Cracking the Coding Interview" by Gayle Laakmann McDowell

PHPAlgorithms A collection of common algorithms implemented in PHP. The collection is based on "Cracking the Coding Interview" by Gayle Laakmann McDow

Doğan Can Uçar 921 Dec 18, 2022
Foreman is a Laravel scaffolding application that automates common tasks you typically perform with each new Laravel app you create

Foreman is a Laravel scaffolding application that automates common tasks you typically perform with each new Laravel app you create. The directives you want Forman to perform are outlined in a JSON based template file.

Indatus 145 Apr 13, 2022
A Laravel 8 and Livewire 2 demo showing how to search and filter by tags, showing article and video counts for each tag (Polymorphic relationship)

Advanced search and filter with Laravel and Livewire A demo app using Laravel 8 and Livewire 2 showing how to implement a list of articles and tags, v

Sérgio Jardim 19 Aug 29, 2022
Laravel package to generate and to validate a UUID according to the RFC 4122 standard. Only support for version 1, 3, 4 and 5 UUID are built-in.

Laravel Uuid Laravel package to generate and to validate a universally unique identifier (UUID) according to the RFC 4122 standard. Support for versio

Christoph Kempen 1.7k Dec 28, 2022
Boilerplate code for protecting a form with proof of work. Uses javascript in the browser to generate the hashcash and PHP on the server to generate the puzzle and validate the proof of work.

Boilerplate code for protecting a form with proof of work. Uses javascript in the browser to generate the hashcash and PHP on the server to generate the puzzle and validate the proof of work.

Jameson Lopp 28 Dec 19, 2022
List of 77 languages for Laravel Framework 4, 5, 6, 7 and 8, Laravel Jetstream , Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova and Laravel Spark.

Laravel Lang In this repository, you can find the lang files for the Laravel Framework 4/5/6/7/8, Laravel Jetstream , Laravel Fortify, Laravel Cashier

Laravel Lang 6.9k Jan 2, 2023
Stop duplicating your Eloquent query scopes and constraints in PHP. This package lets you re-use your query scopes and constraints by adding them as a subquery.

Laravel Eloquent Scope as Select Stop duplicating your Eloquent query scopes and constraints in PHP. This package lets you re-use your query scopes an

Protone Media 75 Dec 7, 2022
symfony workflow component for laravel7 and 8 ,php 7 and 8

Laravel workflow Use the Symfony Workflow component in Laravel8,PHP7,PHP8 This repository based on @brexis,his project since 2019-09 No longer maintai

null 3 Jul 21, 2022