Introduction
Introduction Statistics Contact Development Disclaimer Help
Initial - dotg - Day Of The GrParazyd
git clone git://bitreich.org/dotg git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d…
Log
Files
Refs
Tags
---
commit 74b73ef589543b707afb73fee8f956b8a5e7d7fe
Author: parazyd <[email protected]>
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(-)
---
diff --git a/Makefile b/Makefile
@@ -0,0 +1,3 @@
+all:
+ rsync -P -e "ssh" -avul --delete --stats \
+ . [email protected]:public_html/parazyd.org/dotg/
diff --git a/act-i/Balcony.dcgi b/act-i/Balcony.dcgi
@@ -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 mil…
+
+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
diff --git a/act-i/Bedroom1.dcgi b/act-i/Bedroom1.dcgi
@@ -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
diff --git a/act-i/Bedroom2.dcgi b/act-i/Bedroom2.dcgi
@@ -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
diff --git a/act-i/Bedroom2.sh b/act-i/Bedroom2.sh
@@ -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
+}
diff --git a/act-i/Hipster_Area.dcgi b/act-i/Hipster_Area.dcgi
@@ -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
diff --git a/act-i/Hipster_Area.sh b/act-i/Hipster_Area.sh
@@ -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
+}
diff --git a/act-i/Work_Desk.dcgi b/act-i/Work_Desk.dcgi
@@ -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
diff --git a/act-i/bookshelf.dcgi b/act-i/bookshelf.dcgi
@@ -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
diff --git a/act-i/coffeetable.dcgi b/act-i/coffeetable.dcgi
@@ -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
diff --git a/act-i/config b/act-i/config
@@ -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"
diff --git a/act-i/functions b/act-i/functions
@@ -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
+}
+
diff --git a/act-i/host.dcgi b/act-i/host.dcgi
@@ -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
diff --git a/act-i/index.dcgi b/act-i/index.dcgi
@@ -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]"
diff --git a/act-i/inventory.dcgi b/act-i/inventory.dcgi
@@ -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
diff --git a/act-i/maps b/act-i/maps
@@ -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
+}
diff --git a/act-i/r1-closet.dcgi b/act-i/r1-closet.dcgi
@@ -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]"
diff --git a/act-i/reset.dcgi b/act-i/reset.dcgi
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+. config
+
+rm -rf "$savegame"
+
+cat <<EOM
+
+Game state reset.
+
+[1|Go back|/dotg/act-i|server|port]
+EOM
diff --git a/act-i/sex.dcgi b/act-i/sex.dcgi
@@ -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:oxxcdkxxd…
+lcoxxkxkdoxdxdoxckkkdxxkdxkd:okldkOkkkodxOOOkdkxodxd:lx:ckkkkxxodkxO:dxxldkxxx…
+lcoxkkdkxoxdxxlxckkkxxxOxxkd:dkldxkOkkdddkOOxlkkoddx:lx;lkkkxxkdokxO:xxxldkxxx…
+cclxkkxkkodxxxlxcdxOxxxOxxkd:dkodxkOkkdldkkxxlxkoodx:cx;lxxxxxkxokxk;kxdodkxxx…
+clodxkxkkddxxxoxllxOxxxOdkkd:dkodxxOkkxdodkxd:xkolox:cd:cddddxxxoxxx;kxxoxkxxx…
+;lcdxkxxkkdxxxokd:dOkxdc;;ld;dkloxkkkxxxooddd;dxoccd::dclddddddkoxdx:kdxoxkxxx…
+;ccoxkxdkkdkxxdxx,xOx: .:c..''....',,,';.cdo;:o:;dclooooooxdxxd:xdxdxxxxx…
+,:ccdkxdxkdkxkdxx,dk. ,c:,.. .......:clccccllxdddlcxdxdxxxkd…
+,;l:okkxdxxxdkddd,;: 'doc:,'.. ....'..','.ddod:lddddxxxxd…
+,'l:lxkxooxddkdl;.. '::':'.'.. ... .... .,';.:lllcddxdd…
+,.c::dxxolxodl;... cxxol;',;' ....:........... ...''lodcc…
+;.;c;ldl;'. .cxdc;,,;. ...dc .... ........'',:d;,…
+:..c,'... :oo:,',, ....... .'lc:. .. .... ...'','''…
+'.... .'lolc;;c..',;:;;,. ... .... 'llloc...... . ...,...…
+.. . 'clc:;,,;,,;:ccllllcc;. .;cccccc.,;c. . ...…
+. ;kkxdolc:;,,;::codddddl;'... ':cccc; .. ...…
+.... okddxddooolcccccccodddlc;''..'',:odd;.. .''',,;:;,'.. ..…
+.'.. cooddlloddddoolllllllllllcc;;,'..;lo;., c .''':loolllc;,,;:…
+.... . ':lolc',looooolooddooolccc::;;,..';:' ...k;....:loooolccclcl…
+ .. .,:::;..codddolooooooooooollc;'..,,,.,Oko0X. ...;clllllccccc…
+ .,;;' .;clloooollooolllllc:,';:;,..dxco0' . ...'',;;;,,…
+ ..'. ..,:llc:::;:;;::::::::::c;,''.... '. ....…
+ ..',;:cc:,.':cc:,'. .......,:cccc::::;;;;,........',:cl:.…
+ ..... .'. ..,lllllccl::cclllccccccc:'. …
+ .,:c::::;;;coxdocccc;. …
+ .. '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
diff --git a/act-i/start.dcgi b/act-i/start.dcgi
@@ -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
diff --git a/act-i/take.dcgi b/act-i/take.dcgi
@@ -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
diff --git a/act-i/takebeer.dcgi b/act-i/takebeer.dcgi
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+. config
+. functions
+
+if [ "$(basename $0)" = "takebeer.dcgi" ]; then
+ takebeer Beers
+else
+ takebeer Chocolate_Milks
+fi
diff --git a/act-i/takemilk.dcgi b/act-i/takemilk.dcgi
@@ -0,0 +1 @@
+takebeer.dcgi
+\ No newline at end of file
diff --git a/act-i/talk-20h.dcgi b/act-i/talk-20h.dcgi
@@ -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
diff --git a/act-i/talk-20h.sh b/act-i/talk-20h.sh
@@ -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" ]; th…
+ mv "$hipsters/20h/Plate_of_Bolognese_Sauce" "$…
+ 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" ]; th…
+ mv "$hipsters/20h/Plate_of_Bolognese_Sauce" "$…
+ 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
+}
diff --git a/act-i/talk-balcony.dcgi b/act-i/talk-balcony.dcgi
@@ -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
diff --git a/act-i/talk-gentoo.dcgi b/act-i/talk-gentoo.dcgi
@@ -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
diff --git a/act-i/talk-gentoo.sh b/act-i/talk-gentoo.sh
@@ -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" "$hip…
+ ;;
+ 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
+}
diff --git a/act-i/talk-girls.dcgi b/act-i/talk-girls.dcgi
@@ -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
diff --git a/act-i/talk-girls.sh b/act-i/talk-girls.sh
@@ -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
+}
+
diff --git a/act-i/talk-hipster.dcgi b/act-i/talk-hipster.dcgi
@@ -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
diff --git a/act-i/talk-hipster.sh b/act-i/talk-hipster.sh
@@ -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
+}
diff --git a/act-i/talk-nerds.dcgi b/act-i/talk-nerds.dcgi
@@ -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
+
+
diff --git a/act-i/talk-nerds.sh b/act-i/talk-nerds.sh
@@ -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://[email protected]|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_L…
+ 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
+}
diff --git a/act-i/use.dcgi b/act-i/use.dcgi
@@ -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
+
diff --git a/act-i/usecases.csv b/act-i/usecases.csv
@@ -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
diff --git a/index.gph b/index.gph
@@ -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]
+-----------------------------------------------------------------
You are viewing proxied material from bitreich.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.