URI: 
       tInitial - dotg - a bitreich fosdem adventure
  HTML git clone git://parazyd.org/dotg.git
   DIR Log
   DIR Files
   DIR Refs
       ---
   DIR commit 74b73ef589543b707afb73fee8f956b8a5e7d7fe
  HTML Author: parazyd <parazyd@dyne.org>
       Date:   Fri, 23 Feb 2018 18:16:08 +0100
       
       Initial
       
       Diffstat:
         A Makefile                            |       3 +++
         A act-i/Balcony.dcgi                  |      28 ++++++++++++++++++++++++++++
         A act-i/Bedroom1.dcgi                 |      31 +++++++++++++++++++++++++++++++
         A act-i/Bedroom2.dcgi                 |      44 +++++++++++++++++++++++++++++++
         A act-i/Bedroom2.sh                   |      21 +++++++++++++++++++++
         A act-i/Hipster_Area.dcgi             |      57 +++++++++++++++++++++++++++++++
         A act-i/Hipster_Area.sh               |      34 +++++++++++++++++++++++++++++++
         A act-i/Work_Desk.dcgi                |      30 ++++++++++++++++++++++++++++++
         A act-i/bookshelf.dcgi                |      16 ++++++++++++++++
         A act-i/coffeetable.dcgi              |      16 ++++++++++++++++
         A act-i/config                        |     105 +++++++++++++++++++++++++++++++
         A act-i/functions                     |     213 +++++++++++++++++++++++++++++++
         A act-i/host.dcgi                     |      31 +++++++++++++++++++++++++++++++
         A act-i/index.dcgi                    |      34 +++++++++++++++++++++++++++++++
         A act-i/inventory.dcgi                |      16 ++++++++++++++++
         A act-i/maps                          |     483 +++++++++++++++++++++++++++++++
         A act-i/r1-closet.dcgi                |      28 ++++++++++++++++++++++++++++
         A act-i/reset.dcgi                    |      12 ++++++++++++
         A act-i/sex.dcgi                      |     112 +++++++++++++++++++++++++++++++
         A act-i/start.dcgi                    |      19 +++++++++++++++++++
         A act-i/take.dcgi                     |      39 +++++++++++++++++++++++++++++++
         A act-i/takebeer.dcgi                 |      10 ++++++++++
         A act-i/takemilk.dcgi                 |       2 ++
         A act-i/talk-20h.dcgi                 |      29 +++++++++++++++++++++++++++++
         A act-i/talk-20h.sh                   |     128 +++++++++++++++++++++++++++++++
         A act-i/talk-balcony.dcgi             |      22 ++++++++++++++++++++++
         A act-i/talk-gentoo.dcgi              |      23 +++++++++++++++++++++++
         A act-i/talk-gentoo.sh                |      90 +++++++++++++++++++++++++++++++
         A act-i/talk-girls.dcgi               |      26 ++++++++++++++++++++++++++
         A act-i/talk-girls.sh                 |      68 +++++++++++++++++++++++++++++++
         A act-i/talk-hipster.dcgi             |      24 ++++++++++++++++++++++++
         A act-i/talk-hipster.sh               |      37 +++++++++++++++++++++++++++++++
         A act-i/talk-nerds.dcgi               |      49 +++++++++++++++++++++++++++++++
         A act-i/talk-nerds.sh                 |      90 +++++++++++++++++++++++++++++++
         A act-i/use.dcgi                      |      39 +++++++++++++++++++++++++++++++
         A act-i/usecases.csv                  |      33 +++++++++++++++++++++++++++++++
         A index.gph                           |      22 ++++++++++++++++++++++
       
       37 files changed, 2064 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/Makefile b/Makefile
       t@@ -0,0 +1,3 @@
       +all:
       +        rsync -P -e "ssh" -avul --delete --stats \
       +                . parazyd@jakku.parazyd.org:public_html/parazyd.org/dotg/
   DIR diff --git a/act-i/Balcony.dcgi b/act-i/Balcony.dcgi
       t@@ -0,0 +1,28 @@
       +#!/bin/sh
       +
       +. config
       +echo Balcony > $savegame/room
       +. functions
       +. maps
       +
       +map_balcony
       +
       +cat <<EOM
       +## THE BALCONY (BAL)
       +
       +You are on the balcony. It's chilly. There are:
       +$(cat $balcony/Beers) beers, and $(cat $balcony/Chocolate_Milks) chocolate milks left.
       +
       +There are two people talking near you.
       +
       +
       +[1|Talk to people|$path/talk-balcony.dcgi|server|port]
       +
       +[1|Take two beers|$path/takebeer.dcgi|server|port]
       +[1|Take chocolate milk|$path/takemilk.dcgi|server|port]
       +
       +[1|Check inventory|$path/inventory.dcgi|server|port]
       +
       +EOM
       +
       +navigation
   DIR diff --git a/act-i/Bedroom1.dcgi b/act-i/Bedroom1.dcgi
       t@@ -0,0 +1,31 @@
       +#!/bin/sh
       +
       +. config
       +echo Bedroom1 > $savegame/room
       +. functions
       +. maps
       +
       +map_bedroom1
       +
       +cat <<EOM
       +## BEDROOM 1 (R1)
       +
       +You are in a small bedroom.
       +
       +You see a bed, closet, and a chair.
       +
       +EOM
       +
       +[ -f "$bedroom1/.notyet" ] || {
       +        list_items_to take "$bedroom1" "foo"
       +}
       +
       +cat <<EOM
       +
       +[1|Look into the closet|$path/r1-closet.dcgi|server|port]
       +
       +[1|Check inventory|$path/inventory.dcgi|server|port]
       +
       +EOM
       +
       +navigation
   DIR diff --git a/act-i/Bedroom2.dcgi b/act-i/Bedroom2.dcgi
       t@@ -0,0 +1,44 @@
       +#!/bin/sh
       +
       +. config
       +echo Bedroom2 > $savegame/room
       +. functions
       +. maps
       +
       +gotkey="yes"
       +[ -f "$bedroom2/.notyet" ] && gotkey="no"
       +
       +case "$gotkey" in
       +        yes) map_bedroom2_unlocked ;;
       +        *)   map_bedroom2_locked ;;
       +esac
       +
       +cat <<EOM
       +## BEDROOM 2 (R1)
       +
       +EOM
       +
       +case "$gotkey" in
       +        yes)
       +                cat <<EOM
       +You are in a small bedroom.
       +
       +You see a bed, closet, and a chair.
       +
       +EOM
       +                list_items_to take "$bedroom2"
       +                ;;
       +        *)
       +                cat <<EOM
       +You can not open the bedroom door. It seems it's locked.
       +EOM
       +                ;;
       +esac
       +
       +cat <<EOM
       +
       +[1|Check inventory|$path/inventory.dcgi|server|port]
       +
       +EOM
       +
       +navigation
   DIR diff --git a/act-i/Bedroom2.sh b/act-i/Bedroom2.sh
       t@@ -0,0 +1,21 @@
       +specific_bedroom2() {
       +        item="$1"
       +
       +        case "$item" in
       +                Keychain_with_a_key)
       +                        cat <<EOM
       +
       +You unlock the bedroom door. The key snaps and breaks, blocking the
       +keyhole.
       +EOM
       +                        rm "$inventory/$item"
       +                        rm "$bedroom2/.notyet"
       +                        ;;
       +                *)
       +                        cat <<EOM
       +
       +$item is of no use here.
       +EOM
       +                        ;;
       +        esac
       +}
   DIR diff --git a/act-i/Hipster_Area.dcgi b/act-i/Hipster_Area.dcgi
       t@@ -0,0 +1,57 @@
       +#!/bin/sh
       +
       +. config
       +echo Hipster_Area> $savegame/room
       +. functions
       +. maps
       +
       +map_hipsterarea
       +
       +cat <<EOM
       +## HIPSTER AREA (HIP)
       +
       +You are in the hipster area. In front of you there is a coffee
       +ttable.
       +
       +You are sitting on a soft carpet. Left of you on the couch
       +is your friend that you have brought here with you. He's sitting
       +in the middle. On his left there is a hipster using a Macbook
       +and deep-frying his testicles. Right of him there is an obese
       +Spaniard.
       +
       +EOM
       +
       +dropitem Beers && echo "You give a beer to your friend."
       +
       +if [ -f "$inventory/.nerdsmoved" ]; then
       +        cat <<EOM
       +
       +Behind you (NX) there is an unattended NeXT UNIX machine.
       +EOM
       +else
       +        cat <<EOM
       +
       +Behind you (NX) there are a couple of nerds trying to type in
       +commands into a NeXT machine.
       +EOM
       +fi
       +
       +cat <<EOM
       +
       +The people right of you and across you do not seem interesting.
       +
       +Behind the couch to your right there's a DJ and some people
       +playing bad beats on the sound system.
       +
       +
       +[1|Talk to your friend|$path/talk-20h.dcgi|server|port]
       +[1|Talk to the obese Spaniard|$path/talk-gentoo.dcgi|server|port]
       +[1|Talk to the burning hipster|$path/talk-hipster.dcgi|server|port]
       +[1|Talk to the NeXT nerds|$path/talk-nerds.dcgi|server|port]
       +
       +[1|Inspect the coffee table|$path/coffeetable.dcgi|server|port]
       +
       +[1|Check inventory|$path/inventory.dcgi|server|port]
       +EOM
       +
       +navigation
   DIR diff --git a/act-i/Hipster_Area.sh b/act-i/Hipster_Area.sh
       t@@ -0,0 +1,34 @@
       +specific_talk_hipsterarea() {
       +        item="$1"
       +
       +        case "$item" in
       +                Old_Thinkpad)
       +                        if [ -f "$inventory/Wifi_password" ]; then
       +                                cat <<EOM
       +
       +You got the Wifi password. You type it in and you now enjoy the Gopherspace.
       +
       +EOM
       +                        else
       +                                cat <<EOM
       +
       +You scan the Wifi radio, but don't manage to find an open network.
       +EOM
       +                        fi
       +                        return
       +                        ;;
       +                Plate_of_Bolognese_Sauce)
       +                        cat <<EOM
       +
       +You disgustingly look at the Bolognese sauce, but decide to keep it.
       +EOM
       +                        return
       +                        ;;
       +                *)
       +                        cat <<EOM
       +$item is of no use here.
       +EOM
       +                        return
       +                        ;;
       +        esac
       +}
   DIR diff --git a/act-i/Work_Desk.dcgi b/act-i/Work_Desk.dcgi
       t@@ -0,0 +1,30 @@
       +#!/bin/sh
       +
       +. config
       +echo Work_Desk > $savegame/room
       +. functions
       +. maps
       +
       +map_workdesk
       +
       +cat <<EOM
       +## WORK DESK (COMP)
       +
       +You are at the work desk. There are two girls and a guy.
       +
       +Behind them there is a bookshelf. On the work desk you see:
       +
       +EOM
       +
       +list_items_to take $workdesk
       +
       +cat <<EOM
       +[1|Talk to girls |$path/talk-girls.dcgi|server|port]
       +
       +[1|Check bookshelf|$path/bookshelf.dcgi|server|port]
       +
       +[1|Check inventory|$path/inventory.dcgi|server|port]
       +
       +EOM
       +
       +navigation
   DIR diff --git a/act-i/bookshelf.dcgi b/act-i/bookshelf.dcgi
       t@@ -0,0 +1,16 @@
       +#!/bin/sh
       +
       +. config
       +. functions
       +
       +cat <<EOM
       +You look at the bookshelf, and you recognize some books:
       +
       +EOM
       +
       +list_items_to take $books
       +
       +cat <<EOM
       +
       +[1|Exit|$path/$(cat $savegame/room).dcgi|server|port]
       +EOM
   DIR diff --git a/act-i/coffeetable.dcgi b/act-i/coffeetable.dcgi
       t@@ -0,0 +1,16 @@
       +#!/bin/sh
       +
       +. config
       +. functions
       +
       +cat <<EOM
       +You look at the coffee table, and you see:
       +
       +EOM
       +
       +list_items_to take "$hipsters/coffeetable"
       +
       +cat <<EOM
       +
       +[1|Exit|$path/$(cat $savegame/room).dcgi|server|port]
       +EOM
   DIR diff --git a/act-i/config b/act-i/config
       t@@ -0,0 +1,105 @@
       +#!/bin/sh
       +
       +export path="/dotg/act-i"
       +
       +export savegame="/home/parazyd/dotg/act-i/$REMOTE_ADDR"
       +export hipsters="$savegame/hipsters"
       +export bedroom1="$savegame/bedroom1"
       +export bedroom2="$savegame/bedroom2"
       +export kitchen="$savegame/kitchen"
       +export toilet1="$savegame/toilet1"
       +export toilet2="$savegame/toilet2"
       +export books="$savegame/books"
       +export balcony="$savegame/balcony"
       +export workdesk="$savegame/workdesk"
       +export nextbox="$savegame/nextbox"
       +export inventory="$savegame/inventory"
       +
       +[ -d "$savegame" ] && return
       +
       +mkdir -p \
       +        "$hipsters" \
       +        "$hipsters/coffeetable" \
       +        "$hipsters/20h" \
       +        "$hipsters/obese" \
       +        "$hipsters/dj" \
       +        "$bedroom1" \
       +        "$bedroom2" \
       +        "$kitchen" \
       +        "$kitchen/table" \
       +        "$kitchen/sink" \
       +        "$kitchen/cupboard" \
       +        "$kitchen/fridge" \
       +        "$toilet1/toilet" \
       +        "$toilet1/shower" \
       +        "$toilet2/toilet" \
       +        "$toilet2/shower" \
       +        "$books" \
       +        "$balcony" \
       +        "$workdesk" \
       +        "$nextbox" \
       +        "$inventory"
       +
       +printf 1  > "$inventory/Old_Thinkpad"
       +printf 1  > "$inventory/Plastic_bottle_of_rakia"
       +printf 20 > "$inventory/Cigarettes"
       +printf 3  > "$inventory/Red_Lighter"
       +printf 1  > "$inventory/White_Lighter"
       +printf 1  > "$inventory/Smartphone"
       +printf 0  > "$inventory/.notyet"
       +
       +printf 0 > "$hipsters/obese/.drunklevel"
       +printf 1 > "$hipsters/obese/Plate_of_Bolognese_Sauce"
       +printf 1 > "$hipsters/20h/Plate_of_Bolognese_Sauce"
       +printf 1 > "$hipsters/coffeetable/Dirty_Ashtray"
       +printf 1 > "$hipsters/coffeetable/Empty_Beer_Bottles"
       +printf 1 > "$hipsters/coffeetable/Empty_Glasses"
       +
       +printf 100 > "$balcony/Beers"
       +printf 100 > "$balcony/Chocolate_Milks"
       +
       +printf 1 > "$bedroom1/.notyet"
       +
       +printf 1 > "$bedroom2/Unlocked_Macbook"
       +printf 1 > "$bedroom2/Google_Ad_coupons"
       +printf 1 > "$bedroom2/.notyet"
       +
       +printf 1 > "$toilet1/toilet/Vomit"
       +printf 1 > "$toilet1/shower/Lab_Rat"
       +printf 1 > "$toilet1/shower/.notyet"
       +
       +printf 1 > "$toilet2/toilet/Water"
       +printf 1 > "$toilet2/shower/Plastic_bag"
       +
       +printf 1 > "$nextbox/Terminal"
       +printf 1 > "$nextbox/Keyboard"
       +printf 1 > "$nextbox/Mouse"
       +
       +printf 1 > "$workdesk/Locked_computer"
       +printf 1 > "$workdesk/Keychain_with_a_key"
       +
       +printf 1 > "$kitchen/fridge/Wifi_password"
       +printf 1 > "$kitchen/fridge/Old_yoghurt"
       +printf 8 > "$kitchen/fridge/Beers"
       +printf 8 > "$kitchen/fridge/Chocolate_Milks"
       +printf 1 > "$kitchen/fridge/Plastic_bag"
       +
       +printf 1 > "$books/Also_sprach_Zarathustra"
       +printf 1 > "$books/The_Birth_of_Tragedy"
       +printf 1 > "$books/Siddhartha"
       +printf 1 > "$books/Steppenwolf"
       +printf 1 > "$books/Baby_and_child_care"
       +printf 1 > "$books/The_C_Programming_Language"
       +printf 1 > "$books/Developing_NodeJS"
       +printf 1 > "$books/To_Kill_a_Mockingbird"
       +printf 1 > "$books/Sex_drugs_and_cocoa_puffs"
       +printf 1 > "$books/Fight_Club"
       +printf 1 > "$books/Fear_and_loathing_in_Las_Vegas"
       +printf 1 > "$books/The_Dharma_Bums"
       +
       +printf 1 > "$kitchen/table/Empty_beer_bottles"
       +printf 1 > "$kitchen/table/Rolling_tobacco"
       +printf 1 > "$kitchen/table/Empty_Glasses"
       +printf 1 > "$kitchen/cupboard/Plates"
       +printf 1 > "$kitchen/cupboard/Empty_Glasses"
       +printf 1 > "$kitchen/sink/Dirt"
   DIR diff --git a/act-i/functions b/act-i/functions
       t@@ -0,0 +1,213 @@
       +#!/bin/sh
       +
       +navigation() {
       +        locations="
       +                Balcony
       +                Bedroom1
       +                Bedroom2
       +                Toilet1
       +                Toilet2
       +                Kitchen
       +                Hipster_Area
       +                Work_Desk
       +        "
       +        current="$(cat $savegame/room)"
       +
       +        for i in $locations; do
       +                if ! [ "$current" = "$i" ]; then
       +                        echo "[1|Go to $i|$path/$i.dcgi|server|port]"
       +                fi
       +        done
       +}
       +
       +takebeer() {
       +        current="$(cat $savegame/room)"
       +
       +        drink="$1"
       +
       +        case "$current" in
       +                Balcony)
       +                        beersat="$balcony/$drink"
       +                        ;;
       +                Kitchen)
       +                        beersat="$kitchen/fridge/$drink"
       +                        ;;
       +        esac
       +
       +        if [ -f "$inventory/$drink" ]; then
       +                inbag="$(cat $inventory/$drink)"
       +        else
       +                inbag=0
       +        fi
       +
       +        incrate="$(cat $beersat)"
       +
       +        if [ "$incrate" -lt 2 ]; then
       +                cat <<EOM
       +
       +There are no $drink left for you here!
       +
       +EOM
       +        else
       +                newcnt="$(( $incrate - 2 ))"
       +                newbag="$(( $inbag +2 ))"
       +                printf "$newcnt" > "$beersat"
       +                printf "$newbag" > "$inventory/$drink"
       +                cat << EOM
       +
       +You took two $drink from the $current.
       +
       +EOM
       +        fi
       +
       +        echo "[1|Exit|$path/$current.dcgi|server|port]"
       +}
       +
       +dropitem() {
       +        item="$1"
       +        [ -f "$inventory/$item" ] || return 1
       +        oldcount="$(cat $inventory/$item)"
       +        newcount="$(( $oldcount - 1))"
       +        printf "$newcount" > "$inventory/$item"
       +        if [ "$newcount" -lt 1 ]; then
       +                rm -f "$inventory/$item"
       +        fi
       +}
       +
       +list_items_to() {
       +        what="$1"
       +        where="$2"
       +        cd "$where"
       +        for i in $(ls -1); do
       +                echo "[1|$i|$path/$what.dcgi?$where/$i|server|port]"
       +        done
       +        cd - >/dev/null
       +
       +        cat <<EOM
       +
       +(note1: select any item to $what it)
       +
       +EOM
       +}
       +
       +take_item() {
       +        fullpath="$1"
       +        itemname="$(basename $fullpath)"
       +
       +        if echo "$itemname" | grep -q '^\.' ; then
       +                itemname="$(echo $itemname | cut -c 2-)"
       +        fi
       +
       +        mv "$fullpath" "$inventory/$itemname"
       +}
       +
       +find_usecase() {
       +        item="$1"
       +        room="$2"
       +
       +        line="$(grep "^$item" usecases.csv)"
       +        [ -z "$line" ] && {
       +                echo "No use for $item here."
       +                return
       +        }
       +
       +        uses="$(echo $line | tr ',' '\n' | tail -n+2)"
       +        if [ "$uses" = "anywhere" ]; then
       +                echo "use-generic"
       +                return
       +        fi
       +
       +        for i in $uses; do
       +                if [ "$i" = "anywhere" ]; then
       +                        echo "use-generic"
       +                        return
       +                elif [ "$i" = "$room" ]; then
       +                        echo "use-specific,$i"
       +                        return
       +                fi
       +        done
       +
       +        echo "No use for $item here."
       +}
       +
       +use_generic() {
       +    case "$1" in
       +        Cigarettes)
       +            oldcount="$(cat $inventory/Cigarettes)"
       +            newcount="$(( $oldcount -1 ))"
       +            printf "$newcount" > "$inventory/Cigarettes"
       +            if [ "$newcount" -lt 1 ]; then
       +                rm -f "$inventory/Cigarettes"
       +            fi
       +            echo "You smoke a cigarette."
       +            return
       +            ;;
       +        Beers)
       +            oldcount="$(cat $inventory/Beers)"
       +            newcount="$(( $oldcount -1 ))"
       +            printf "$newcount" > "$inventory/Beers"
       +            if [ "$newcount" -lt 1 ]; then
       +                rm -f "$inventory/Beers"
       +            fi
       +            echo "You drink a beer."
       +            return
       +            ;;
       +        Plastic_bottle_of_rakia)
       +            cat <<EOM
       +You take a sip of rakia.
       +
       +You feel drunk.
       +EOM
       +            ;;
       +                Keychain_with_a_key)
       +                        cat <<EOM
       +You try to unlock things, but there's no place to use the key.
       +
       +You put it back in your pocket.
       +EOM
       +    esac
       +}
       +
       +use_specific() {
       +        call="$1"
       +        item="$2"
       +
       +        case "$call" in
       +                talk-girls)
       +                        . talk-girls.sh
       +                        specific_talk_girls "$item"
       +                        ;;
       +                talk-gentoo)
       +                        . talk-gentoo.sh
       +                        specific_talk_gentoo "$item"
       +                        ;;
       +                talk-20h)
       +                        . talk-20h.sh
       +                        specific_talk_20h "$item"
       +                        ;;
       +                talk-hipster)
       +                        . talk-hipster.sh
       +                        specific_talk_hipster "$item"
       +                        ;;
       +                talk-nerds)
       +                        . talk-nerds.sh
       +                        specific_talk_nerds "$item"
       +                        ;;
       +                #talk-balcony)
       +                #        . talk-balcony.sh
       +                #        specific_talk_balcony "$item"
       +                #        ;;
       +                Hipster_Area)
       +                        . Hipster_Area.sh
       +                        specific_talk_hipsterarea "$item"
       +                        ;;
       +                Bedroom2)
       +                        . Bedroom2.sh
       +                        specific_bedroom2 "$item"
       +                        ;;
       +                *)
       +                        echo "Not implemented"
       +                        ;;
       +        esac
       +}
       +
   DIR diff --git a/act-i/host.dcgi b/act-i/host.dcgi
       t@@ -0,0 +1,31 @@
       +#!/bin/sh
       +
       +. config
       +. maps
       +
       +map_host
       +
       +cat <<EOM
       +"Hello! Welcome!" - The host says.
       +
       +You greet him back.
       +
       +"Feel like home. There is beer outside on the balcony, some
       +might be in the fridge." - He says.
       +
       +"The toilets are back there and to the right" - The host turns
       +around and points across the room.
       +
       +"I'll leave the two of you to be, go around and talk to people,
       +enjoy yourself" - He says, as he disappears into the crowd made
       +of a strange combination of colorfully and black dressed people.
       +
       +You oversee the room and see some free spots on the couch in
       +front of you. You look at your friend and tell him to go grab
       +tthe seats, and you'll be there with the beers.
       +
       +"Okay!" - He says, and leaves for the couch (HIP)
       +
       +You look around again, and
       +[1|leave towards the balcony.|$path/Balcony.dcgi|server|port]
       +EOM
   DIR diff --git a/act-i/index.dcgi b/act-i/index.dcgi
       t@@ -0,0 +1,34 @@
       +#!/bin/sh
       +
       +. config
       +
       +cat <<EOM
       +
       + ▛▀▖       ▞▀▖▗▀▖ ▀▛▘▌      ▞▀▖   ▛▀▖                 ▌
       + ▌ ▌▝▀▖▌ ▌ ▌ ▌▐    ▌ ▛▀▖▞▀▖ ▌▄▖▙▀▖▙▄▘▝▀▖▙▀▖▝▀▖▀▜▘▌ ▌▞▀▌
       + ▌ ▌▞▀▌▚▄▌ ▌ ▌▜▀   ▌ ▌ ▌▛▀  ▌ ▌▌  ▌  ▞▀▌▌  ▞▀▌▗▘ ▚▄▌▌ ▌
       + ▀▀ ▝▀▘▗▄▘ ▝▀ ▐    ▘ ▘ ▘▝▀▘ ▝▀ ▘  ▘  ▝▀▘▘  ▝▀▘▀▀▘▗▄▘▝▀▘
       +
       +A Bitreich FOSDEM adventure... 02 Feb 2018 A.D.
       +
       +
       + ⣎⣱ ⢀⣀ ⣰⡀   ⡇
       + ⠇⠸ ⠣⠤ ⠘⠤   ⠇
       +         -- Hipsters
       +EOM
       +
       +if [ -f "$savegame/room" ]; then
       +        cat <<EOM
       +
       +[1|Continue adventure!|$path/$(cat ${savegame}/room).dcgi|server|port]
       +
       +EOM
       +else
       +        cat <<EOM
       +
       +[1|Start adventure!|$path/start.dcgi|server|port]
       +
       +EOM
       +fi
       +
       +echo "[1|Go back :(|/dotg/index.gph|server|port]"
   DIR diff --git a/act-i/inventory.dcgi b/act-i/inventory.dcgi
       t@@ -0,0 +1,16 @@
       +#!/bin/sh
       +
       +. config
       +. functions
       +
       +cat <<EOM
       +You check your hands, backpack and pockets and find:
       +
       +EOM
       +
       +list_items_to use $inventory
       +
       +        cat <<EOM
       +
       +[1|Exit|$path/$(cat $savegame/room).dcgi|server|port]
       +EOM
   DIR diff --git a/act-i/maps b/act-i/maps
       t@@ -0,0 +1,483 @@
       +#!/bin/sh
       +
       +cat <<EOM
       +
       +[1|--reset game--|$path/reset.dcgi|server|port]
       +
       +EOM
       +
       +map_start() {
       +        cat <<EOM
       ++-------------------------------------------------------------+
       +|                 |           |                               |
       +|                 | (R1)      |                  (R2)         |
       +|-----------------+....+------+-----------------+....+--------+
       +|                                                             |
       +|                                                             |
       +|                      +---+....+---+....+------+....+--------+
       +|                   |bk|          |        |            o   |x|
       +|     o             |bk|          |        |                |x|
       +|    o  o           |bk|          |        |   <o>          |x|
       +|   | DJ |          |bk|  (T1)    |  (T2)  |   o TTTT    o  |x|
       +| +- +----+         |bk|          |        |     TTTTo   o  |x|
       +| |o  o o |         |bk|          |        |     TTTT       |S|
       +| |o  TTT              +----------+--------+  o  TTTT o     |x|
       +| |o  TTT              |                   |  o oTTTT o     |F|
       +| +-          (HIP) o +|                         TTTT       |x|
       +|   |_o______|     o NX|                         TTTT (KIT) |-|
       +|                   o +|                         TTTT         |
       +|                                               o  o          |
       +|                                                             |
       +|bk|               o (H)                                      |
       +|bk|  o                                                       |
       +|bk| o TTT                  o           +-------+....+--------+
       +|bk|   TTT                              |                     |
       +|bk|   (COMP) o                         |  (BAL)  o    bbb    |
       +|bk|                 YOU                |       o      mmm    |
       +|bk|            ☃ ☃ <----               |                     |
       ++---------------+....+----------------------------------------+
       +
       +EOM
       +}
       +
       +map_host() {
       +        cat <<EOM
       ++-------------------------------------------------------------+
       +|                 |           |                               |
       +|                 | (R1)      |                  (R2)         |
       +|-----------------+....+------+-----------------+....+--------+
       +|                                                             |
       +|                                                             |
       +|                      +---+....+---+....+------+....+--------+
       +|                   |bk|          |        |            o   |x|
       +|     o             |bk|          |        |                |x|
       +|    o  o           |bk|          |        |   <o>          |x|
       +|   | DJ |          |bk|  (T1)    |  (T2)  |   o TTTT    o  |x|
       +| +- +----+         |bk|          |        |     TTTTo   o  |x|
       +| |o  o o |         |bk|          |        |     TTTT       |S|
       +| |o  TTT              +----------+--------+  o  TTTT o     |x|
       +| |o  TTT              |                   |  o oTTTT o     |F|
       +| +-          (HIP) o +|                         TTTT       |x|
       +|   |_o______|     o NX|                         TTTT (KIT) |-|
       +|                   o +|                         TTTT         |
       +|                                               o  o          |
       +|                                                             |
       +|bk|               o                                          |
       +|bk|  o                                                       |
       +|bk| o TTT        (H)       o           +-------+....+--------+
       +|bk|   TTT       ☃ ☃ <----              |                     |
       +|bk|   (COMP) o       YOU               |  (BAL)  o    bbb    |
       +|bk|                                    |       o      mmm    |
       +|bk|                                    |                     |
       ++---------------+....+----------------------------------------+
       +
       +EOM
       +}
       +
       +map_balcony() {
       +        cat <<EOM
       ++-------------------------------------------------------------+
       +|                 |           |                               |
       +|                 | (R1)      |                  (R2)         |
       +|-----------------+....+------+-----------------+....+--------+
       +|                                                             |
       +|                                                             |
       +|                      +---+....+---+....+------+....+--------+
       +|                   |bk|          |        |            o   |x|
       +|     o             |bk|          |        |                |x|
       +|    o  o           |bk|          |        |                |x|
       +|   | DJ |          |bk|  (T1)    |  (T2)  |   o TTTT    o  |x|
       +| +- +----+         |bk|          |        |     TTTTo   o  |x|
       +| |o  o o |         |bk|          |        |     TTTT       |S|
       +| |o  TTT              +----------+--------+  o  TTTT o     |x|
       +| |o  TTT              |                   |  o oTTTT o     |F|
       +| +-          (HIP) o +|                         TTTT       |x|
       +|   |_o_☃_<o>|     o NX|                         TTTT (KIT) |-|
       +|                   o +|                      (H)TTTT         |
       +|                                               o  o          |
       +|                                                             |
       +|bk|                                                          |
       +|bk|  o                    o                                  |
       +|bk| o TTT                  o           +-------+....+--------+
       +|bk| o TTT                              |                     |
       +|bk|   (COMP)                           |  (BAL)o o    bbb    |
       +|bk|                                    |    ---->  ☃  mmm    |
       +|bk|                                    |    YOU              |
       ++---------------+....+----------------------------------------+
       +
       +EOM
       +}
       +
       +map_talkbalcony() {
       +        cat <<EOM
       ++-------------------------------------------------------------+
       +|                 |           |                               |
       +|                 | (R1)      |                  (R2)         |
       +|-----------------+....+------+-----------------+....+--------+
       +|                                                             |
       +|                                                             |
       +|                      +---+....+---+....+------+....+--------+
       +|                   |bk|          |        |            o   |x|
       +|     o             |bk|          |        |                |x|
       +|    o  o           |bk|          |        |                |x|
       +|   | DJ |          |bk|  (T1)    |  (T2)  |   o TTTT    o  |x|
       +| +- +----+         |bk|          |        |     TTTTo   o  |x|
       +| |o  o o |         |bk|          |        |     TTTT       |S|
       +| |o  TTT              +----------+--------+  o  TTTT o     |x|
       +| |o  TTT              |                   |  o oTTTT o     |F|
       +| +-          (HIP) o +|                         TTTT       |x|
       +|   |_o_☃_<o>|     o NX|                         TTTT (KIT) |-|
       +|                   o +|                      (H)TTTT         |
       +|                                               o  o          |
       +|                                                             |
       +|bk|                                                          |
       +|bk|  o                    o                                  |
       +|bk| o TTT                  o           +-------+....+--------+
       +|bk| o TTT                              |                     |
       +|bk|   (COMP)                           |  (BAL)o o    bbb    |
       +|bk|                                    |    ---->  ☃  mmm    |
       +|bk|                                    |    YOU              |
       ++---------------+....+----------------------------------------+
       +
       +EOM
       +}
       +
       +map_bedroom1() {
       +        cat <<EOM
       ++-------------------------------------------------------------+
       +|                 | YOU--> ☃  |                               |
       +|                 | (R1)      |                  (R2)         |
       +|-----------------+....+------+-----------------+....+--------+
       +|                                                             |
       +|                                                             |
       +|                      +---+....+---+....+------+....+--------+
       +|                   |bk|          |        |            o   |x|
       +|     o             |bk|          |        |                |x|
       +|    o  o           |bk|          |        |                |x|
       +|   | DJ |          |bk|  (T1)    |  (T2)  |   o TTTT    o  |x|
       +| +- +----+         |bk|          |        |     TTTTo   o  |x|
       +| |o  o o |         |bk|          |        |     TTTT       |S|
       +| |   TTT              +----------+--------+  o  TTTT o     |x|
       +| |o  TTT              |                   |  o oTTTT o     |F|
       +| +-          (HIP) o +|                         TTTT       |x|
       +|   |_o_☃_<o>|     o NX|                         TTTT (KIT) |-|
       +|                   o +|                      (H)TTTT         |
       +|    o                                          o  o          |
       +|                                                             |
       +|bk|                                                          |
       +|bk|  o                    o                                  |
       +|bk|   TTT                  o           +-------+....+--------+
       +|bk|   TTT                              |                     |
       +|bk|   (COMP)                           |  (BAL)o o    bbb    |
       +|bk|                                    |              mmm    |
       +|bk|                                    |                     |
       ++---------------+....+----------------------------------------+
       +
       +EOM
       +}
       +
       +map_bedroom2_unlocked() {
       +        cat <<EOM
       ++-------------------------------------------------------------+
       +|                 |           |       YOU--> ☃                |
       +|                 | (R1)      |                  (R2)         |
       +|-----------------+....+------+-----------------+....+--------+
       +|                                                             |
       +|                                                             |
       +|                      +---+....+---+....+------+....+--------+
       +|                   |bk|          |        |            o   |x|
       +|     o             |bk|          |        |                |x|
       +|    o  o           |bk|          |        |                |x|
       +|   | DJ |          |bk|  (T1)    |  (T2)  |   o TTTT    o  |x|
       +| +- +----+         |bk| o        |        |     TTTTo   o  |x|
       +| |o    o |         |bk| o   o    |        |     TTTT       |S|
       +| |o  TTT              +----------+--------+  o  TTTT o     |x|
       +| |o  TTT              |                   |  o oTTTT o     |F|
       +| +-          (HIP) o +|                         TTTT       |x|
       +|   |_o_☃_<o>|     o NX|                         TTTT (KIT) |-|
       +|                   o +|                         TTTT         |
       +|    o                                          o  (H)        |
       +|                                                 o   o       |
       +|bk|                                                          |
       +|bk|  o                    o                                  |
       +|bk|   TTT                  o           +-------+....+--------+
       +|bk|o  TTT                              |                     |
       +|bk| o (COMP)                           |  (BAL)o o    bbb    |
       +|bk|                                    |              mmm    |
       +|bk|                                    |                     |
       ++---------------+....+----------------------------------------+
       +
       +EOM
       +}
       +
       +map_bedroom2_locked() {
       +        cat <<EOM
       ++-------------------------------------------------------------+
       +|                 |       o   |                               |
       +|                 | (R1)  o   |                  (R2)         |
       +|-----------------+....+------+-----------------+....+--------+
       +|                                           YOU--> ☃          |
       +|                                                             |
       +|                      +---+....+---+....+------+....+--------+
       +|                   |bk|          |        |            o   |x|
       +|                   |bk|          |        |                |x|
       +|    o oo           |bk|          |        |                |x|
       +|   | DJ |          |bk|  (T1)    |  (T2)  |   o TTTT    o  |x|
       +| +- +----+         |bk|          |        |     TTTTo   o  |x|
       +| |   o o |         |bk|          |      o |     TTTT       |S|
       +| |o  TTT              +----------+--------+  o  TTTT o     |x|
       +| |o  TTT              |                   |  o oTTTT o     |F|
       +| +-          (HIP) o +|                         TTTT       |x|
       +|   |_o_☃_<o>|     o NX|                         TTTT (KIT) |-|
       +|                   o +|                         TTTT         |
       +|    o                                          o  o          |
       +|                                                             |
       +|bk|                                                          |
       +|bk|  o           o  o                                        |
       +|bk| o TTT                              +-------+....+--------+
       +|bk|  oTTT                              |                     |
       +|bk|   (COMP)                           |  (BAL)o o    bbb    |
       +|bk|                                    |       (H)    mmm    |
       +|bk|                                    |                     |
       ++---------------+....+----------------------------------------+
       +
       +EOM
       +}
       +
       +map_workdesk() {
       +        cat <<EOM
       ++-------------------------------------------------------------+
       +|                 |           |                               |
       +|                 | (R1)      |                  (R2)         |
       +|-----------------+....+------+-----------------+....+--------+
       +|                                                             |
       +|                                                             |
       +|                      +---+....+---+....+------+....+--------+
       +|                   |bk|          |        |                |x|
       +|     o             |bk|   o      |   o    |                |x|
       +|   (H) o           |bk|          |        |                |x|
       +|   | DJ |          |bk|  (T1)    |  (T2)  |   o TTTT    o  |x|
       +| +- +----+         |bk|          |        |     TTTTo   o  |x|
       +| |     o |         |bk|          |        |     TTTT       |S|
       +| |o  TTT              +----------+--------+  o  TTTT o     |x|
       +| |o  TTT              |                   |  o oTTTT o     |F|
       +| +-          (HIP) o +|                         TTTT       |x|
       +|   |_o_☃_<o>|     o NX|                         TTTT (KIT) |-|
       +|                   o +|                         TTTT         |
       +|                                               o  o          |
       +|                                                             |
       +|bk|       YOU                                                |
       +|bk|  o ☃ <----            o                                  |
       +|bk| o TTT                  o           +-------+....+--------+
       +|bk| o TTT                              |                     |
       +|bk|   (COMP)                           |  (BAL)o o    bbb    |
       +|bk|                                    |              mmm    |
       +|bk|                                    |                     |
       ++---------------+....+----------------------------------------+
       +
       +EOM
       +}
       +
       +map_talkgirls() {
       +        cat <<EOM
       ++-------------------------------------------------------------+
       +|                 |           |                               |
       +|                 | (R1)      |                  (R2)         |
       +|-----------------+....+------+-----------------+....+--------+
       +|                                                             |
       +|                                                             |
       +|                      +---+....+---+....+------+....+--------+
       +|                   |bk|          |        |                |x|
       +|     o             |bk|   o      |        |                |x|
       +|    o (H)          |bk|          |        |                |x|
       +|   | DJ |          |bk|  (T1)    |  (T2)  |   o TTTT    o  |x|
       +| +- +----+    o    |bk|          |        |     TTTTo   o  |x|
       +| |     o |         |bk|          |        |     TTTT       |S|
       +| |o  TTT              +----------+--------+  o  TTTT o     |x|
       +| |o  TTT              |                   |  o oTTTT o     |F|
       +| +-          (HIP) o +|                         TTTT       |x|
       +|   |_o_☃_<o>|     o NX|                         TTTT (KIT) |-|
       +|                   o +|                         TTTT         |
       +|                              o  o             o  o          |
       +|                                                             |
       +|bk|       YOU                                                |
       +|bk|  o ☃ <----                                               |
       +|bk| o TTT                              +-------+....+--------+
       +|bk| o TTT                              |                     |
       +|bk|   (COMP)                           |  (BAL)o o    bbb    |
       +|bk|                                    |              mmm    |
       +|bk|                                    |                     |
       ++---------------+....+----------------------------------------+
       +
       +EOM
       +}
       +
       +map_hipsterarea() {
       +        cat <<EOM
       ++-------------------------------------------------------------+
       +|                 |           |                               |
       +|                 | (R1)      |                  (R2)         |
       +|-----------------+....+------+-----------------+....+--------+
       +|                                                             |
       +|                                                             |
       +|                      +---+....+---+....+------+....+--------+
       +|                   |bk|          |        |                |x|
       +|                   |bk|          |        |                |x|
       +|     o o           |bk|          |        |                |x|
       +|   | DJ |          |bk|  (T1)    |  (T2)  |   o TTTT   (H) |x|
       +| +- +----+         |bk|          |        |     TTTTo   o  |x|
       +| |o  o o |         |bk|          |        |     TTTT       |S|
       +| |o  TTT    YOU       +----------+--------+  o  TTTT o     |x|
       +| |o  TTT ☃ <----      |                   |  o oTTTT o     |F|
       +| +-          (HIP) o +|                         TTTT       |x|
       +|   |_o_☃_<o>|     o NX|                         TTTT (KIT) |-|
       +|                   o +|                         TTTT         |
       +|     o                                         o  o          |
       +|     oo                                                      |
       +|bk|                                                          |
       +|bk|                                                          |
       +|bk| o TTT                              +-------+....+--------+
       +|bk| o TTT                              |                     |
       +|bk|   (COMP)                           |  (BAL)o o    bbb    |
       +|bk|                                    |              mmm    |
       +|bk|                                    |                     |
       ++---------------+....+----------------------------------------+
       +
       +EOM
       +}
       +
       +map_talk20h() {
       +        cat <<EOM
       ++-------------------------------------------------------------+
       +|                 |           |                               |
       +|                 | (R1)      |                  (R2)         |
       +|-----------------+....+------+-----------------+....+--------+
       +|                                                             |
       +|                                                             |
       +|                      +---+....+---+....+------+....+--------+
       +|                   |bk|          |        |                |x|
       +|                   |bk|          |        |                |x|
       +|     o o           |bk|          |        |                |x|
       +|   | DJ |          |bk|  (T1)    |  (T2)  |  oo TTTT   (H) |x|
       +| +- +----+         |bk|          |        |     TTTTo   o  |x|
       +| |o  o o |         |bk|          |     oo |     TTTT  o    |S|
       +| |o  TTT    YOU       +----------+--------+     TTTT       |x|
       +| |o  TTT ☃ <----      |                   |  oo TTTT     o |F|
       +| +-          (HIP) o +|                     o   TTTT       |x|
       +|   |_o_☃_<o>|     o NX|                      o  TTTT (KIT) |-|
       +|                   o +|                         TTTT         |
       +|                                                             |
       +|     o         o                                             |
       +|bk|          o                                               |
       +|bk|                                                          |
       +|bk| o TTT                              +-------+....+--------+
       +|bk| o TTT                              |                     |
       +|bk|   (COMP)                           |  (BAL)o o  o bbb    |
       +|bk|                                    |           o  mmm    |
       +|bk|                                    |                     |
       ++---------------+....+----------------------------------------+
       +
       +EOM
       +}
       +
       +map_talkgentoo() {
       +        cat <<EOM
       ++-------------------------------------------------------------+
       +|                 |           |                               |
       +|                 | (R1)      |                  (R2)         |
       +|-----------------+....+------+-----------------+....+--------+
       +|                                  o                          |
       +|                                      o                      |
       +|                      +---+....+---+....+------+....+--------+
       +|                   |bk|          |        |                |x|
       +|                   |bk|          |        |                |x|
       +|     o o           |bk|          |        |                |x|
       +|   | DJ |          |bk|  (T1)    |  (T2)  |     TTTT   (H) |x|
       +| +- +----+         |bk|          |        |     TTTTo   o  |x|
       +| |o  o o |         |bk|          |     oo |     TTTT  o    |S|
       +| |o  TTT    YOU       +----------+--------+     TTTT       |x|
       +| |o  TTT ☃ <----      |                   |  oo TTTT     o |F|
       +| +-          (HIP) o +|                     o   TTTT       |x|
       +|   |_o_☃_<o>|     o NX|                      o  TTTT (KIT) |-|
       +|                   o +|                         TTTT         |
       +|                                                             |
       +|     o         o                                             |
       +|bk|          o                                               |
       +|bk|                                                          |
       +|bk| o TTT                              +-------+....+--------+
       +|bk| o TTT                              |                     |
       +|bk|   (COMP)                           |  (BAL)o o  o bbb    |
       +|bk|                                    |           o  mmm    |
       +|bk|                                    |                     |
       ++---------------+....+----------------------------------------+
       +
       +EOM
       +}
       +
       +map_talkhipster() {
       +        cat <<EOM
       ++-------------------------------------------------------------+
       +|                 |           |                               |
       +|                 | (R1)      |                  (R2)         |
       +|-----------------+....+------+-----------------+....+--------+
       +|                                  o                          |
       +|                                      o                      |
       +|                      +---+....+---+....+------+....+--------+
       +|                   |bk|          |        |                |x|
       +|      o            |bk|          |        |                |x|
       +|       o           |bk|          |        |                |x|
       +|   | DJ |          |bk|  (T1)    |  (T2)  |     TTTT   (H) |x|
       +| +- +----+         |bk|          |        |     TTTTo   o  |x|
       +| |o  o o |         |bk|          |     oo |     TTTT  o    |S|
       +| |o  TTT    YOU       +----------+--------+     TTTT       |x|
       +| |o  TTT ☃ <----      |                   |  oo TTTT     o |F|
       +| +-          (HIP) o +|                     o   TTTT       |x|
       +|   |_o_☃_<o>|     o NX|                      o  TTTT (KIT) |-|
       +|      o            o +|                         TTTT         |
       +|                    o o                                      |
       +|                                                             |
       +|bk|                                                          |
       +|bk|                                                          |
       +|bk| o TTT                              +-------+....+--------+
       +|bk| o TTT                              |                     |
       +|bk|   (COMP)                           |  (BAL)o o  o bbb    |
       +|bk|                                    |           o  mmm    |
       +|bk|                                    |                     |
       ++---------------+....+----------------------------------------+
       +
       +EOM
       +}
       +
       +map_talknerds() {
       +        cat <<EOM
       ++-------------------------------------------------------------+
       +|                 |           |                               |
       +|                 | (R1)      |                  (R2)         |
       +|-----------------+....+------+-----------------+....+--------+
       +|                                  o                          |
       +|                                      o                      |
       +|                      +---+....+---+....+------+....+--------+
       +|                   |bk|          |        |                |x|
       +|      o            |bk|          |        |                |x|
       +|       o           |bk|          |        |                |x|
       +|   | DJ |          |bk|  (T1)    |  (T2)  |     TTTT   (H) |x|
       +| +- +----+         |bk|          |        |     TTTTo   o  |x|
       +| |o  o o |         |bk|          |     oo |     TTTT  o    |S|
       +| |o  TTT    YOU       +----------+--------+     TTTT       |x|
       +| |o  TTT ☃ <----      |                   |  oo TTTT     o |F|
       +| +-          (HIP) o +|                     o   TTTT       |x|
       +|   |_o_☃_<o>|     o NX|                      o  TTTT (KIT) |-|
       +|      o            o +|                         TTTT         |
       +|                                                             |
       +|                                                             |
       +|bk|  o                                                       |
       +|bk|    o                                                     |
       +|bk| o TTT                              +-------+....+--------+
       +|bk| o TTT                              |                     |
       +|bk|   (COMP)                           |  (BAL)o o  o bbb    |
       +|bk|                                    |           o  mmm    |
       +|bk|                                    |                     |
       ++---------------+....+----------------------------------------+
       +
       +EOM
       +}
   DIR diff --git a/act-i/r1-closet.dcgi b/act-i/r1-closet.dcgi
       t@@ -0,0 +1,28 @@
       +#!/bin/sh
       +
       +. config
       +
       +if [ -f "$inventory/.letusfuck" ]; then
       +        cat <<EOM
       +
       +As you open the closet, the two girls from the work desk enter the
       +bedroom...
       +
       +"Hey you" - They smile.
       +
       +"Thank you for the beers! We're all out bored by that work. Do you
       +want to have some fun?"
       +
       +You're left to no choice but to lock the bedroom door and say:
       +[1|Let us fuck.|$path/sex.dcgi|server|port]
       +
       +EOM
       +else
       +        cat <<EOM
       +
       +You find nothing interesting in the closet.
       +
       +EOM
       +fi
       +
       +echo "[1|Exit|$path/$(cat $savegame/room).dcgi|server|port]"
   DIR diff --git a/act-i/reset.dcgi b/act-i/reset.dcgi
       t@@ -0,0 +1,12 @@
       +#!/bin/sh
       +
       +. config
       +
       +rm -rf "$savegame"
       +
       +cat <<EOM
       +
       +Game state reset.
       +
       +[1|Go back|/dotg/act-i|server|port]
       +EOM
   DIR diff --git a/act-i/sex.dcgi b/act-i/sex.dcgi
       t@@ -0,0 +1,112 @@
       +#!/bin/sh
       +
       +. config
       +
       +rm -f "$bedroom1/.notyet"
       +rm -f "$inventory/.letusfuck"
       +printf 1 > "$bedroom1/Black_dildo"
       +printf 1 > "$bedroom1/Used_condom"
       +
       +cat <<EOM
       +
       +You have hardcore sex with the two girls...
       +
       +lcdxxxxkodxoxodxckkxxxxkdxkd:oxldkOxkxoddOOOkdkxodxd:lx:ckkkkxxodxxO:oxxcdkxxddxOOd'lxcdkdkl;ldcc:xd:llx::occo;:o
       +lcoxxkxkdoxdxdoxckkkdxxkdxkd:okldkOkkkodxOOOkdkxodxd:lx:ckkkkxxodkxO:dxxldkxxxdxOOd'oxodkxkc;ld::cxoccox:co:ll;:o
       +lcoxkkdkxoxdxxlxckkkxxxOxxkd:dkldxkOkkdddkOOxlkkoddx:lx;lkkkxxkdokxO:xxxldkxxxdxOOl'dkookkkc;lx,,lklocdd:lo:ol;co
       +cclxkkxkkodxxxlxcdxOxxxOxxkd:dkodxkOkkdldkkxxlxkoodx:cx;lxxxxxkxokxk;kxdodkxxxdxOOc,xkddOOxl;ox;.dkcocxd:olcdl;lo
       +clodxkxkkddxxxoxllxOxxxOdkkd:dkodxxOkkxdodkxd:xkolox:cd:cddddxxxoxxx;kxxoxkxxxxkOO:;kkddkOdc:ox;'dxcdlko:occdl:lo
       +;lcdxkxxkkdxxxokd:dOkxdc;;ld;dkloxkkkxxxooddd;dxoccd::dclddddddkoxdx:kdxoxkxxxxkOk,ckxddkOdl:ok:,xdlookocdcldl:lo
       +;ccoxkxdkkdkxxdxx,xOx:      .:c..''....',,,';.cdo;:o:;dclooooooxdxxd:xdxdxxxxxxkOx'lkxodkkdlcokc;xoolxklcocodl:ol
       +,:ccdkxdxkdkxkdxx,dk. ,c:,..                   .......:clccccllxdddlcxdxdxxxkdxkOd.dkxodxkdccox::kldokkllllddlcol
       +,;l:okkxdxxxdkddd,;: 'doc:,'..                      ....'..','.ddod:lddddxxxxdxkkl'xxdlodkdcclx:cxcddxxcocldoocol
       +,'l:lxkxooxddkdl;..  '::':'.'..                     ...   .... .,';.:lllcddxddxkk:,kdxoodxocl:d;lo:xkxxlocldolcoc
       +,.c::dxxolxodl;...   cxxol;',;'                    ....:........... ...''lodccokx;,kdkxlodd::;l'ol:xxdxlocooollo:
       +;.;c;ldl;'.          .cxdc;,,;.                     ...dc .... ........'',:d;,cxx';kdxxllodl:,;,dd:xdodllcoollll;
       +:..c,'...              :oo:,',,  .......             .'lc:. .. ....  ...'','''cxx.;xoddccodo:,,;xdcxxollccoocloc;
       +'....                 .'lolc;;c..',;:;;,.  ...  .... 'llloc......    . ...,...;dd.;dodo;:ldo;'':ddlddd:c:lolcllc,
       +..  .              'clc:;,,;,,;:ccllllcc;.     .;cccccc.,;c.            .  .....,.;oooo',ldl'..:xxcddo;c:llccl:;,
       +.                 ;kkxdolc:;,,;::codddddl;'...  ':cccc;     ..             ........:oco''coc...cxd:odc,c:cc:lc;;'
       +....              okddxddooolcccccccodddlc;''..'',:odd;..   .''',,;:;,'..   .........,c'.:o;  .cdo:ol;,cc::cl:,,'
       +.'..              cooddlloddddoolllllllllllcc;;,'..;lo;.,  c .''':loolllc;,,;::,.     ...;c'  .ldl;lc,;c:,;::,,'.
       +.... .            ':lolc',looooolooddooolccc::;;,..';:' ...k;....:loooolccclcldxdl,..   .';.  .coc,::';cc:;:''''.
       +    ..            .,:::;..codddolooooooooooollc;'..,,,.,Oko0X. ...;clllllcccccoddolllc;,..    .','.,;':c:::'.....
       +                   .,;;'   .;clloooollooolllllc:,';:;,..dxco0' .   ...'',;;;,,;:::::cccclll:'.     ...::;;,......
       +                   ..'.   ..,:llc:::;:;;::::::::::c;,''.... '.            ....  ..',;;;;::clooc;...  ..',........
       +                    ..',;:cc:,.':cc:,'.  .......,:cccc::::;;;;,........',:cl:.      ..',,,,,;:clol:,..  .........
       +                      .....       .'.           ..,lllllccl::cclllccccccc:'.                ....',;;:clc;,,'.....
       +                                                   .,:c::::;;;coxdocccc;.                          ...,:;;cccllc:
       +          ..    'cc                                   ..,;;;,,,;::;,'..              .. .   ........  .......',;,
       +          coc.'';;:;,'.                                                                      ...... .  .... ....
       +       ..,,...     .l;'.                                                                                       ..
       +     'c:.
       +   .:ll      .,;,,,:;;;
       +   llok.        .'''.
       +    ';;c:;,,,;;'..
       +
       +oh, you touch my tralala,
       +mmm... my ding ding dong.
       +la la la la la la la,
       +la la la la la la,
       +la la la la la la la.
       +Oh, you touch my tralala
       +la la la la la la la,
       +la la la la la la.
       +mmm... my ding ding dong.
       +la la la la la la la,
       +la la la la la la.
       +
       +Deep in the night,
       +i'm looking for some fun,
       +deep in the night,
       +i'm looking for some love.
       +de-de-de-deep in the night,
       +i'm looking for some fun,
       +deep in the night,
       +i'm looking for some (ping)
       +
       +You tease me,
       +oh please me,
       +i want you to be my lovetoy,
       +come near me, don't fear me,
       +i just can't get enough of you boy.
       +
       +Oh, you touch my tralala.
       +la la la..
       +mmm, my ding ding dong,
       +oh you touch my tralala,
       +mmm, my ding ding dong.
       +la la la...
       +
       +Deep in the night,
       +i'm looking for some fun,
       +deep in the night,
       +i'm looking for some love.
       +
       +you tease me,
       +oh please me,
       +i want you to be my lovetoy.
       +come near me, don't fear me,
       +i just can't get enough of you boy.
       +
       +Oh, you touch my tralala.
       +la la la...
       +mmm, my ding ding dong.
       +la la la..
       +oh, you touch my tralala.
       +la la la..
       +mmm, my ding ding dong.
       +
       +(ding ding dong)
       +mmm, my ding ding dong 2x
       +
       +oh, you touch my tralala.
       +lalala...
       +mmm, my ding ding dong.
       +oh ,you touch my tralala
       +(ding ding dong)
       +oh, you touch my tralala.
       +mmm, my ding dong dong.
       +
       +[1|Reach orgasm|$path/Bedroom1.dcgi|server|port]
       +EOM
   DIR diff --git a/act-i/start.dcgi b/act-i/start.dcgi
       t@@ -0,0 +1,19 @@
       +#!/bin/sh
       +
       +. config
       +. maps
       +
       +map_start
       +
       +cat <<EOM
       +It's Friday night before FOSDEM. You arrive at a party in
       +Brussels, Belgium with your friend. With all your plans of
       +getting drunk with Belgian beer and Serbian rakia you smuggled
       +into the country, seeing all the hipsters in this place makes
       +you feel like just walking away. But things might not be as
       +tthey seem...
       +
       +In front of you, the party host (H) greets you...
       +
       +[1|Talk to the host|$path/host.dcgi|server|port]
       +EOM
   DIR diff --git a/act-i/take.dcgi b/act-i/take.dcgi
       t@@ -0,0 +1,39 @@
       +#!/bin/sh
       +
       +. config
       +. functions
       +
       +case "$(basename $2)" in
       +        Plate_of_Bolognese_Sauce)
       +                rm -f "$toilet1/.notyet"
       +                rm -f "$hipster/obese/.takingashit"
       +                ;;
       +
       +        Keychain_with_a_key)
       +                if [ -f "$bedroom1/.notyet" ]; then
       +                        cat <<EOM
       +
       +"Umm, that's not something you should be taking..."
       +
       +The girls don't let you take the keys.
       +
       +[1|Exit|$path/$(cat $savegame/room).dcgi|server|port]
       +EOM
       +                        return
       +                else
       +                        cat <<EOM
       +
       +The girls smile at you and let you take it.
       +EOM
       +                fi
       +                ;;
       +esac
       +
       +take_item "$2"
       +
       +cat <<EOM
       +
       +You took the $(basename $2).
       +
       +[1|Exit|$path/$(cat $savegame/room).dcgi|server|port]
       +EOM
   DIR diff --git a/act-i/takebeer.dcgi b/act-i/takebeer.dcgi
       t@@ -0,0 +1,10 @@
       +#!/bin/sh
       +
       +. config
       +. functions
       +
       +if [ "$(basename $0)" = "takebeer.dcgi" ]; then
       +        takebeer Beers
       +else
       +        takebeer Chocolate_Milks
       +fi
   DIR diff --git a/act-i/takemilk.dcgi b/act-i/takemilk.dcgi
       t@@ -0,0 +1 @@
       +takebeer.dcgi
       +\ No newline at end of file
   DIR diff --git a/act-i/talk-20h.dcgi b/act-i/talk-20h.dcgi
       t@@ -0,0 +1,29 @@
       +#!/bin/sh
       +
       +. config
       +echo talk-20h > $savegame/room
       +. maps
       +
       +map_talk20h
       +
       +if [ -f "$hipsters/20h/.meaningoflife" ]; then
       +        str="He's babbling about the meaning of life to hipsters around him."
       +else
       +        str="He's eating a place of bolognese sauce"
       +fi
       +
       +cat <<EOM
       +## HIPSTER AREA (HIP)
       +
       +You nod at your friend.
       +
       +$str
       +
       +In the meantime he's talking sense into the Macbook user left
       +of him.
       +
       +
       +[1|Check inventory|$path/inventory.dcgi|server|port]
       +
       +[1|Quit the conversation|$path/Hipster_Area.dcgi|server|port]
       +EOM
   DIR diff --git a/act-i/talk-20h.sh b/act-i/talk-20h.sh
       t@@ -0,0 +1,128 @@
       +specific_talk_20h() {
       +        item="$1"
       +
       +        case "$item" in
       +                Beers)
       +                        cat <<EOM
       +
       +You give a beer to your friend. He thanks you and starts drinking it.
       +EOM
       +                        givebeer "$item"
       +                        ;;
       +                Chocolate_Milks)
       +                        cat <<EOM
       +
       +Your friend takes the chocolate milk and pours it all over the Macbook
       +guy's testicles to cool them down.
       +EOM
       +                        givebeer "$item"
       +                        ;;
       +                Locked_computer)
       +                        cat <<EOM
       +
       +Your friend takes the locked computer and installs Gentoo on it while
       +uploading the old content to the cloud.
       +EOM
       +                        mv "$inventory/$item" "$hipsters/20h/$item"
       +                        ;;
       +                Smartphone)
       +                        cat <<EOM
       +
       +Your friend takes the smartphone and calls father christmas to bring
       +some elves for fun.
       +EOM
       +                        printf 1 > "$inventory/.elvesarehere"
       +                        ;;
       +                Used_condom)
       +                        cat <<EOM
       +
       +Your friend takes the used condom, blows it up using heat from the
       +Macbook guy's produced heat and gives you back a balloon.
       +EOM
       +                        mv "$inventory/$item" "$inventory/Condom_balloon"
       +                        ;;
       +                White_Lighter)
       +                        cat <<EOM
       +
       +Your friend asks for the red lighter.
       +EOM
       +                        ;;
       +                Red_Lighter)
       +                        cat <<EOM
       +
       +Your friend uses the red lighter to start the fire of the revolution.
       +EOM
       +                        printf 1 > "$inventory/.revolutionstarted"
       +                        ;;
       +                Black_dildo)
       +                        cat <<EOM
       +
       +You give the black dildo to your friend. He smiles perversly and sticks it
       +in his butt.
       +EOM
       +                        mv "$inventory/$item" "$hipsters/20h"
       +                        ;;
       +                Also_sprach_Zarathustra)
       +                        cat <<EOM
       +
       +God dies.
       +
       +Your friend takes the book and starts babbling about the meaning of life.
       +EOM
       +                        if [ -f "$hipsters/20h/Plate_of_Bolognese_Sauce" ]; then
       +                                mv "$hipsters/20h/Plate_of_Bolognese_Sauce" "$hipsters/coffeetable"
       +                        fi
       +                        mv "$inventory/$item" "$hipsters/20h"
       +                        printf 1 > "$hipsters/20h/.meaningoflife"
       +                        ;;
       +                The_Birth_of_Tragedy)
       +                        cat <<EOM
       +
       +"Christianity is bad, mmkay" - He tries to tell a meme.
       +
       +Your friend takes the book from you and starts babbling about the meaning of
       +life.
       +EOM
       +                        if [ -f "$hipsters/20h/Plate_of_Bolognese_Sauce" ]; then
       +                                mv "$hipsters/20h/Plate_of_Bolognese_Sauce" "$hipsters/coffeetable"
       +                        fi
       +                        mv "$inventory/$item" "$hipsters/20h"
       +                        printf 1 > "$hipsters/20h/.meaningoflife"
       +                        ;;
       +                Siddhartha)
       +                        cat <<EOM
       +"Religions suck." - He says.
       +
       +You nod.
       +EOM
       +                        return
       +                        ;;
       +                The_C_Programming_Language)
       +                        cat <<EOM
       +
       +"Nice find! Keep it. It could be of good use." - Your friend says.
       +
       +You tuck the book back in your backpack.
       +EOM
       +                        ;;
       +                Developing_NodeJS)
       +                        cat <<EOM
       +
       +Your friend starts manically laughing.
       +
       +"Maybe give it to those nerds behind you!" - He grins.
       +
       +You tuck the book back in your backpack.
       +EOM
       +                        ;;
       +                Sex_drugs_and_cocoa_puffs)
       +                        cat <<EOM
       +
       +"Drugs? No. But the other two will do"
       +
       +He takes the book from you and smiles.
       +EOM
       +                        mv "$item" "$hipsters/20h"
       +                        ;;
       +        esac
       +}
   DIR diff --git a/act-i/talk-balcony.dcgi b/act-i/talk-balcony.dcgi
       t@@ -0,0 +1,22 @@
       +#!/bin/sh
       +
       +. config
       +echo talk-balcony > $savegame/room
       +. maps
       +
       +map_talkbalcony
       +
       +cat <<EOM
       +## THE BALCONY (BAL)
       +
       +You try to spark a conversation with the two hipsters.
       +
       +"Hi!" - You say.
       +
       +They don't seem to bother.
       +
       +
       +[1|Check inventory|$path/inventory.dcgi|server|port]
       +
       +[1|Quit the conversation|$path/Balcony.dcgi|server|port]
       +EOM
   DIR diff --git a/act-i/talk-gentoo.dcgi b/act-i/talk-gentoo.dcgi
       t@@ -0,0 +1,23 @@
       +#!/bin/sh
       +
       +. config
       +echo talk-gentoo > $savegame/room
       +. maps
       +
       +map_talkgentoo
       +
       +cat <<EOM
       +## HIPSTER AREA (HIP)
       +
       +You smalltalk with the spaniard. It turns out he is a Gentoo
       +developer.
       +
       +Your friend and you acknowledge this.
       +
       +The spaniard is eating a plate of bolognese sauce.
       +
       +
       +[1|Check inventory|$path/inventory.dcgi|server|port]
       +
       +[1|Quit the conversation|$path/Hipster_Area.dcgi|server|port]
       +EOM
   DIR diff --git a/act-i/talk-gentoo.sh b/act-i/talk-gentoo.sh
       t@@ -0,0 +1,90 @@
       +specific_talk_gentoo() {
       +        item="$1"
       +
       +        if [ -f "$hipsters/obese/.takingashit" ]; then
       +                cat <<EOM
       +
       +The yoghurt did not bode well for the spaniard. He's in the toilet.
       +EOM
       +                return
       +        fi
       +
       +        case "$item" in
       +                Old_Thinkpad)
       +                        cat <<EOM
       +
       +You whip out your old Thinkpad and show the spaniard the amazing
       +Gentoo Hardened setup you have.
       +
       +The spaniard is butthurt that you have access to latest Grsecurity
       +patches so he wants to start plotting murder against you.
       +
       +You realize if you just start walking away in a normal tempo he would
       +be unable to catch up.
       +
       +You put your laptop back in your backpack.
       +EOM
       +                        ;;
       +                Plate_of_Bolognese_Sauce)
       +                        cat <<EOM
       +
       +You give a plate of Bolognese sauce to the spaniard.
       +
       +He thanks you and starts eating it swiftly.
       +EOM
       +                        mv "$inventory/$item" "$hipsters/obese/"
       +                        ;;
       +                Beers)
       +                        cat <<EOM
       +You offer a beer to the spaniard. He refuses.
       +
       +Is it because it makes bellies big, you ponder...
       +EOM
       +                        ;;
       +                Chocolate_Milks)
       +                        cat <<EOM
       +
       +You give a chocolate milk bottle to the spaniard. He thanks you and
       +drinks it in one sip.
       +EOM
       +                        givebeer "$item"
       +                        ;;
       +                Old_yoghurt)
       +                        cat <<EOM
       +
       +You give the old yoghurt to the spaniard. He starts eating it.
       +
       +You hear his stomach gurgling. Struggling, but he manages to get
       +up and start walking towards the toilet.
       +EOM
       +                        printf 1 > "$hipsters/obese/.takingashit"
       +                        cp -f "$hipsters/obese/Plate_of_Bolognese_Sauce" "$hipsters/coffeetable"
       +                        ;;
       +                The_Birth_of_Tragedy)
       +                        cat <<EOM
       +"Man, christianity sucks, man." - He says while gasping.
       +
       +You nod.
       +EOM
       +                        ;;
       +                The_C_Programming_Language)
       +                        cat <<EOM
       +
       +You show the K&R book to the spaniard. His head explodes.
       +EOM
       +                        printf 1 > "$hipsters/obese/.dead"
       +                        ;;
       +                Developing_NodeJS)
       +                        cat <<EOM
       +
       +"Man, nodejs sucks, man." - He says while gasping.
       +EOM
       +                        ;;
       +                *)
       +                        cat <<EOM
       +
       +$item is of no use here.
       +EOM
       +                        ;;
       +        esac
       +}
   DIR diff --git a/act-i/talk-girls.dcgi b/act-i/talk-girls.dcgi
       t@@ -0,0 +1,26 @@
       +#!/bin/sh
       +
       +. config
       +echo talk-girls > $savegame/room
       +. functions
       +. maps
       +
       +map_talkgirls
       +
       +cat <<EOM
       +## WORK DESK (COMP)
       +
       +You introduce yourself to the girls.
       +
       +"Hello!" - You say eagerly.
       +
       +"Hello to you to! Excuse us though, we're in the middle of
       +some work. See you around later?" - One of them asks.
       +
       +"Sure thing!" - You reply.
       +
       +
       +[1|Check inventory|$path/inventory.dcgi|server|port]
       +
       +[1|Quit the conversation|$path/Work_Desk.dcgi|server|port]
       +EOM
   DIR diff --git a/act-i/talk-girls.sh b/act-i/talk-girls.sh
       t@@ -0,0 +1,68 @@
       +specific_talk_girls() {
       +        item="$1"
       +        case "$item" in
       +                Beers)
       +                        oldcount="$(cat $inventory/Beers)"
       +                        if [ "$oldcount" -lt 2 ]; then
       +                                echo "You don't have enough beers to give."
       +                        else
       +                        cat <<EOM
       +
       +You hand over two beers to the girls.
       +
       +"Why thank you! This sure is nice." - They smile.
       +
       +"Say, could you do us a favor? There is a thing in the closet in the
       +small bedroom over there. Would you mind going there and bringing it
       +back to us?" - One of the girls asks.
       +
       +"Hm, what is it?" - You ask.
       +
       +"Eh, just go, you'll figure it out when you see it" - The other one winks.
       +
       +You wonder for a short second, and say: "Ah well, why not!".
       +
       +You smile.
       +EOM
       +                        printf 1 > "$inventory/.letusfuck"
       +                        fi
       +                        return
       +                        ;;
       +                Black_dildo)
       +                        cat <<EOM
       +
       +You whip out a big black dildo in front of the girls. They laugh
       +because they know what's up. Anyone else would be disgusted/shocked.
       +EOM
       +                        return
       +                        ;;
       +                Baby_and_child_care)
       +                        cat <<EOM
       +
       +You show the Baby and child care book to the girls, obviously trolling.
       +They look confused and somewhat worried.
       +EOM
       +                        return
       +                        ;;
       +                To_Kill_a_Mockingbird)
       +                        cat <<EOM
       +
       +"One of my favorite books!", one of the girls says.
       +
       +You hand the book over to her, and say: "Enjoy it".
       +
       +You wink at her.
       +EOM
       +                        mv "$inventory/$item" "$books"
       +                        return
       +                        ;;
       +                *)
       +                        cat <<EOM
       +
       +$item is of no use here.
       +EOM
       +                        return
       +                        ;;
       +        esac
       +}
       +
   DIR diff --git a/act-i/talk-hipster.dcgi b/act-i/talk-hipster.dcgi
       t@@ -0,0 +1,24 @@
       +#!/bin/sh
       +
       +. config
       +echo talk-hipster > $savegame/room
       +. maps
       +
       +map_talkhipster
       +
       +cat <<EOM
       +## HIPSTER AREA (HIP)
       +
       +"Hi! You realize you're going to become infertile" - You say,
       +seeing that his Macbook is sitting on his testicles, burning
       +tthem up.
       +
       +He doesn't seem to care, and instead starts showing you his
       +WebGL project on the Macbook. The Macbook starts emitting even
       +more heat.
       +
       +
       +[1|Check inventory|$path/inventory.dcgi|server|port]
       +
       +[1|Quit the conversation|$path/Hipster_Area.dcgi|server|port]
       +EOM
   DIR diff --git a/act-i/talk-hipster.sh b/act-i/talk-hipster.sh
       t@@ -0,0 +1,37 @@
       +specific_talk_hipster() {
       +        item="$1"
       +
       +        case "$item" in
       +                Black_dildo)
       +                        cat <<EOM
       +
       +You make gay jokes at the hipster.
       +
       +His eyes tear up.
       +EOM
       +                        return
       +                        ;;
       +                To_Kill_a_Mockingbird)
       +                        cat <<EOM
       +
       +"Ha, did you know my name is Atticus?"
       +
       +You're shocked.
       +EOM
       +                        return
       +                        ;;
       +                Fight_Club)
       +                        cat <<EOM
       +
       +"Oh wow! That's one of my favorite movies. I didn't know they wrote
       +a book after it... I probably won't read it, but cool!"
       +
       +You're shocked. You take a sip of rakia to relax.
       +EOM
       +                        ;;
       +                *)
       +                        cat <<EOM
       +$item is of no use here.
       +EOM
       +        esac
       +}
   DIR diff --git a/act-i/talk-nerds.dcgi b/act-i/talk-nerds.dcgi
       t@@ -0,0 +1,49 @@
       +#!/bin/sh
       +
       +. config
       +echo talk-nerds > $savegame/room
       +. maps
       +. functions
       +
       +map_talknerds
       +
       +cat <<EOM
       +## HIPSTER AREA (HIP)
       +EOM
       +
       +if [ -f "$inventory/.nerdsmoved" ]; then
       +        cat <<EOM
       +
       +The nerds seem to have left the machine in a usable state. You're
       +surprised.
       +
       +You see:
       +EOM
       +
       +list_items_to use $nextbox
       +
       +        cat <<EOM
       +
       +
       +[1|Check inventory|$path/inventory.dcgi|server|port]
       +
       +[1|Leave the computer|$path/Hipster_Area.dcgi|server|port]
       +EOM
       +else
       +        cat <<EOM
       +
       +You take a look at what the nerds are doing. They seem to be
       +ttrying to find a C compiler on the NeXT machine. They are
       +not successful.
       +
       +You ask if you can use the keyboard, they do not let you and
       +diss you off instead.
       +
       +
       +[1|Check inventory|$path/inventory.dcgi|server|port]
       +
       +[1|Quit the conversation|$path/Hipster_Area.dcgi|server|port]
       +EOM
       +fi
       +
       +
   DIR diff --git a/act-i/talk-nerds.sh b/act-i/talk-nerds.sh
       t@@ -0,0 +1,90 @@
       +specific_talk_nerds() {
       +        item="$1"
       +
       +        if [ -f "$inventory/.nerdsmoved" ]; then
       +                cat <<EOM
       +
       +The nerds seem to have left.
       +
       +EOM
       +
       +        case "$item" in
       +                The_C_Programming_Language)
       +                        cat <<EOM
       +
       +You use the power of C to flip bytes and bang bits...
       +EOM
       +                        [ -f "$inventory/.notyet" ] || {
       +                                cat <<EOM
       +Accidentally, you activate a
       +[h|time machine|URL:ssh://time-machine@bitreich.org|server|port]
       +
       +
       +You have finished Act I.
       +
       +[1|To to Act II|/dotg/act-ii|server|port]
       +EOM
       +                        rm -f "$nextbox/Terminal" "$nextbox/Keyboard" \
       +                                "$nextbox/Mouse" "$nextbox/The_C_Programming_Language"
       +                        printf 1 > "$inventory/.timemachineactivated"
       +                        }
       +                        ;;
       +                Terminal|Keyboard|Mouse)
       +            cat <<EOM
       +
       +You try using the NeXT computer, but you're unsuccessful.
       +EOM
       +                        ;;
       +                *)
       +                        cat <<EOM
       +$item is of no use here.
       +EOM
       +                        ;;
       +        esac
       +        else
       +        case "$item" in
       +                Beers|Chocolate_Milks)
       +                        cat <<EOM
       +
       +The nerds steal all your $item.
       +EOM
       +                        rm -f "$inventory/$item"
       +                        ;;
       +                The_C_Programming_Language)
       +                        cat <<EOM
       +
       +The nerds take $item from you and try to type in examples in the
       +NeXT console.
       +
       +They seem to be failing.
       +EOM
       +                        mv "$inventory/$item" "$nextbox"
       +                        ;;
       +                Developing_NodeJS)
       +                        cat <<EOM
       +
       +As you pull out the book from your backpack, one of the nerds catches
       +a glance at it. He loudly points at it.
       +
       +The other nerds look at it and forcefully take it away from you. They
       +leave the area and move towards somewhere else.
       +EOM
       +                        rm -f "$inventory/$item"
       +                        printf 1 > "$inventory/.nerdsmoved"
       +                        ;;
       +                Sex_drugs_and_cocoa_puffs)
       +                        cat <<EOM
       +
       +The virgins try to convince you they're not.
       +
       +(Developer note: this is actually a good book, unrelated to the context
       +it is presented in-game. Read it ;)
       +EOM
       +                        ;;
       +                *)
       +                        cat <<EOM
       +$item is of no use here.
       +EOM
       +        esac
       +        fi # !nerdsmoved
       +}
   DIR diff --git a/act-i/use.dcgi b/act-i/use.dcgi
       t@@ -0,0 +1,39 @@
       +#!/bin/sh
       +
       +. config
       +. functions
       +
       +fullpath="$2"
       +itemname="$(basename $fullpath)"
       +
       +currentloc="$(cat $savegame/room)"
       +
       +call="$(find_usecase $itemname $currentloc)"
       +
       +case "$call" in
       +        No*)
       +                cat <<EOM
       +$call
       +
       +[1|Exit|$path/$(cat $savegame/room).dcgi|server|port]
       +EOM
       +                return
       +                ;;
       +        use-generic*)
       +                use_generic "$itemname"
       +                cat <<EOM
       +
       +[1|Exit|$path/$(cat $savegame/room).dcgi|server|port]
       +EOM
       +                return
       +                ;;
       +        use-specific*)
       +                use_specific "$(echo $call | awk -F, '{print $2}')" "$itemname"
       +                cat <<EOM
       +
       +[1|Exit|$path/$(cat $savegame/room).dcgi|server|port]
       +EOM
       +                return
       +                ;;
       +esac
       +
   DIR diff --git a/act-i/usecases.csv b/act-i/usecases.csv
       t@@ -0,0 +1,33 @@
       +Old_Thinkpad,Hipster_Area,talk-gentoo
       +Plastic_bottle_of_rakia,anywhere
       +Cigarettes,anywhere
       +Smartphone,Kitchen,Bedroom1,talk-20h
       +Plate_of_Bolognese_Sauce,Kitchen,Hipster_Area,Toilet1,talk-gentoo
       +Empty_Beer_Bottles,Toilet1,Balcony,Kitchen
       +Empty_Glasses,Kitchen,Toilet1
       +Beers,talk-girls,talk-nerds,talk-20h,talk-gentoo,anywhere
       +Chocolate_Milks,talk-gentoo,talk-nerds,Kitchen,talk-20h
       +Black_dildo,Toilet1,Balcony,Bedroom1,Bedroom2,talk-girls,talk-20h,talk-hipster
       +Red_Lighter,talk-20h
       +White_Lighter,talk-20h
       +Locked_computer,talk-20h
       +Keychain_with_a_key,Bedroom2,anywhere
       +Used_condom,Toilet1,Toilet2,talk-20h
       +Plastic_bag,Balcony,Toilet1,Toilet2
       +Old_yoghurt,talk-gentoo
       +Rolling_tobacco,anywhere
       +Empty_Glasses,Kitchen,Toilet1
       +Terminal,talk-nerds
       +Keyboard,talk-nerds
       +Mouse,talk-nerds
       +Google_Ad_coupons,talk-balcony
       +
       +Also_sprach_Zarathustra,talk-20h
       +The_Birth_of_Tragedy,talk-20h,talk-gentoo
       +Siddhartha,talk-20h
       +Baby_and_child_care,talk-20h,talk-girls
       +The_C_Programming_Language,talk-20h,talk-gentoo,talk-nerds
       +Developing_NodeJS,talk-20h,talk-gentoo,talk-nerds
       +To_Kill_a_Mockingbird,talk-hipster,talk-girls
       +Sex_drugs_and_cocoa_puffs,talk-20h,talk-nerds
       +Fight_Club,talk-hipster
   DIR diff --git a/index.gph b/index.gph
       t@@ -0,0 +1,22 @@
       +
       + ▛▀▖       ▞▀▖▗▀▖ ▀▛▘▌      ▞▀▖   ▛▀▖                 ▌
       + ▌ ▌▝▀▖▌ ▌ ▌ ▌▐    ▌ ▛▀▖▞▀▖ ▌▄▖▙▀▖▙▄▘▝▀▖▙▀▖▝▀▖▀▜▘▌ ▌▞▀▌
       + ▌ ▌▞▀▌▚▄▌ ▌ ▌▜▀   ▌ ▌ ▌▛▀  ▌ ▌▌  ▌  ▞▀▌▌  ▞▀▌▗▘ ▚▄▌▌ ▌
       + ▀▀ ▝▀▘▗▄▘ ▝▀ ▐    ▘ ▘ ▘▝▀▘ ▝▀ ▘  ▘  ▝▀▘▘  ▝▀▘▀▀▘▗▄▘▝▀▘
       +
       +A Bitreich FOSDEM adventure...
       +
       +
       + ⣎⣱ ⢀⣀ ⣰⡀   ⡇
       + ⠇⠸ ⠣⠤ ⠘⠤   ⠇
       +         -- Hipsters
       +
       +[1|Enter... 02 Feb 2018 A.D.|/dotg/act-i|server|port]
       +-----------------------------------------------------------------
       +
       + ⣎⣱ ⢀⣀ ⣰⡀   ⡇ ⡇
       + ⠇⠸ ⠣⠤ ⠘⠤   ⠇ ⠇
       +         -- "Hackers"
       +
       +[1|Enter... 03 Feb 2018 A.D.|/dotg/act-ii|server|port]
       +-----------------------------------------------------------------