VSCodium suggestions
This commit is contained in:
parent
5c849fe803
commit
05fa551cd3
29 changed files with 705 additions and 0 deletions
9
data/genderSelection.txt
Normal file
9
data/genderSelection.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
=-=-= Gender Selection =-=-=
|
||||
|
||||
What is your gender?
|
||||
1) Cis Man
|
||||
2) Cis Woman
|
||||
3) Trans Man
|
||||
4) Trans Woman
|
||||
5) Non Binary
|
||||
6) Create your own gender
|
||||
6
data/intro.txt
Normal file
6
data/intro.txt
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
______ ___________ ___ _ _
|
||||
| ___/ ___| ___| / _ \ | | | |
|
||||
| |_ \ `--.| |_ / /_\ \ __| __ _____ _ __ | |_ _ _ _ __ ___ ___
|
||||
| _| `--. | _| | _ |/ _` \ \ / / _ | '_ \| __| | | | '__/ _ / __|
|
||||
| | /\__/ | | | | | | (_| |\ V | __| | | | |_| |_| | | | __\__ \
|
||||
\_| \____/\_| \_| |_/\__,_| \_/ \___|_| |_|\__|\__,_|_| \___|___/
|
||||
9
data/levels/cocaine/cocaine.txt
Normal file
9
data/levels/cocaine/cocaine.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
Matthew Garrett runs up to you with a huge grin...
|
||||
|
||||
'Use this giant bag of cocaine to get them high! Cocaine is cruise control for cool.'
|
||||
|
||||
Who do you want to share this generous portion of COCAINE with?
|
||||
|
||||
1) Richard Stallman
|
||||
2) Alexandre Oliva
|
||||
3) Eric S. Raymond
|
||||
7
data/levels/cocaine/cocaineChoice1.txt
Normal file
7
data/levels/cocaine/cocaineChoice1.txt
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
You take some cocaine out of the bag and put some of that fantastic powder onto a mirror. You setup a line for Richard, but he grabs the bag out of your hand.
|
||||
|
||||
'That line is for you, THIS one is for me!' he yells.
|
||||
|
||||
RMS shoves his head in the bag of cocaine and starts inhaling like Kirby from a Nintendo game.
|
||||
|
||||
What a fucking hog!
|
||||
11
data/levels/cocaine/cocaineChoice2.txt
Normal file
11
data/levels/cocaine/cocaineChoice2.txt
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
You take some cocaine out of the bag and put some of that fantastic powder onto a mirror.
|
||||
|
||||
You setup a line for LXO, he rolls up a dollar bill and snorts the line.
|
||||
|
||||
'This is teh shit' he says.
|
||||
|
||||
For the next hour an a half... LXO rambles about Free Software while harassing the Libreboot project over its name.
|
||||
|
||||
'Bruh, the only true free computer is your mind maaaaaaan' he says.
|
||||
|
||||
LXO is tripping.
|
||||
15
data/levels/cocaine/cocaineChoice3.txt
Normal file
15
data/levels/cocaine/cocaineChoice3.txt
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
You take some cocaine out of the bag and try to put some of that fantastic powder onto a mirror but ESR stops you.
|
||||
|
||||
"Let me show you a little trick! It's time for a software update!" he says.
|
||||
|
||||
ESR grabs you by the hand and brings you into the FSF HQ kitchen and starts going through the cupboards.
|
||||
|
||||
'Aha! Here it is!' he says.
|
||||
|
||||
'Baking soda! We're gonna turn that cocaine into crack!'
|
||||
|
||||
After the two of you make crack, he pulls out a pipe. He starts smoking the crack.
|
||||
|
||||
ESR IS FUCKED UP ON CRACK!
|
||||
|
||||
ESR is now paranoid, he is checking the room for surveillance equipment.
|
||||
14
data/levels/groundZero/groundZero.txt
Normal file
14
data/levels/groundZero/groundZero.txt
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
Richard Stallman invites you to a Free Software party at the new HQ!
|
||||
|
||||
You barely make it past the wall of body odor as a bunch of 40 year old virgins are dressed in authentic vintage clothing and are sporting neckbeards.
|
||||
|
||||
Alexandre Oliva enters the room while rolling a tire full of nitrous oxide.
|
||||
|
||||
"We're having a laughing gas party!" he says.
|
||||
|
||||
What do you do?
|
||||
|
||||
1) Take a hit of nitrous.
|
||||
2) Replace tire of nitrous with a tire of mustard gas.
|
||||
3) Call the cops.
|
||||
4) Suggest ketamine instead.
|
||||
11
data/levels/groundZero/groundZeroChoice1.txt
Normal file
11
data/levels/groundZero/groundZeroChoice1.txt
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
You take a hit of nitrous oxide from the spare tire.
|
||||
|
||||
As soon as the gas hits your lungs, you feel a sudden and intense sensation of weightlessness, as if you're floating on a cloud of pure bliss.
|
||||
The world around you becomes distorted, like a funhouse mirror reflection of reality.
|
||||
The rush of nitrous oxide is like a tidal wave of pure pleasure, crashing over you with such force that it's almost impossible to resist.
|
||||
It's a feeling that's hard to describe, but it's like being on top of the world, with nothing but the wind in your hair and the sun on your face.
|
||||
Colors become more vivid, sounds more amplified, and time itself seems to slow down.
|
||||
It's as if the very fabric of space-time has been warped in your favour, allowing you to experience the universe in a way that's both exhilarating and terrifying.
|
||||
|
||||
Alexandre walks over to you, still laughing like a lunatic.
|
||||
'That wasn't nitrous oxide! It was aerosolized lysergic acid diethylamide!' he says while continuing to laugh.
|
||||
7
data/levels/groundZero/groundZeroChoice2.txt
Normal file
7
data/levels/groundZero/groundZeroChoice2.txt
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
You decide that you've had enough of these people already. You carefully watch them take a few hits of the nitrous oxide.
|
||||
|
||||
They are behaving erratically, this isn't just laughing gas. It's something else.
|
||||
|
||||
Ain't you glad you didn't take a hit?
|
||||
|
||||
Alexandre Oliva calls everyone over to his laptop. Now is your chance to swap the tire with your surprise, so you sneak off to the tire.
|
||||
8
data/levels/groundZero/groundZeroChoice2A.txt
Normal file
8
data/levels/groundZero/groundZeroChoice2A.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
You attempt to switch the tires... You carefully remove the tire full of nitrous oxide... You carefully put the tire of mustard gas in its place......
|
||||
|
||||
but fail!
|
||||
|
||||
Zoë Kooyman confronts you, but you casually explain to her that you were actually getting rid of the tires.
|
||||
She gives you a big hug and you walk off with both tires.
|
||||
|
||||
Fuck!
|
||||
7
data/levels/groundZero/groundZeroChoice2B1.txt
Normal file
7
data/levels/groundZero/groundZeroChoice2B1.txt
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
You attempt to switch the tires... You carefully remove the tire full of nitrous oxide... You carefully put the tire of mustard gas in its place......
|
||||
|
||||
You succeed!
|
||||
|
||||
Alexandre Olivia starts taking hits from the tire. You distract everyone else by pointing out that a homeless person is trying to break into Zoë's car.
|
||||
|
||||
You go outside and discover that there actually is a homeless person, and he is trying to break into her car.
|
||||
9
data/levels/groundZero/groundZeroChoice2B2.txt
Normal file
9
data/levels/groundZero/groundZeroChoice2B2.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
Oh... It's just Richard Stallman.
|
||||
|
||||
He does kind of look like a homeless Santa Claus.
|
||||
|
||||
Well then...
|
||||
|
||||
You go back inside, Alexandre Oliva is dead. Zoë Kooyman inspects his body and she notices redness, signs of irritation around his neck, and blistering.
|
||||
|
||||
One less person in the way of your goals.
|
||||
15
data/levels/groundZero/groundZeroChoice3.txt
Normal file
15
data/levels/groundZero/groundZeroChoice3.txt
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
You quietly slip away from the partygoers and make your way to a relatively quiet corner of the room, trying not to draw attention to yourself.
|
||||
|
||||
You quickly pull out your phone and dial 911, trying to speak as softly as possible so as not to alert anyone else to what you're doing.
|
||||
|
||||
As soon as you hang up the phone, the lights in the room begin to flicker and a loudspeaker announcement comes through the party's sound system:
|
||||
|
||||
GNU/LibertyWatch Alert Level: SEVERE.
|
||||
|
||||
'Law enforcement is en route. Please remain calm and follow instructions from the authorities.'
|
||||
|
||||
The music stops, and the partygoers begin to murmur amongst themselves, sensing that something is amiss.
|
||||
|
||||
Alexandre Oliva looks at you with a mixture of confusion and suspicion while he disposes of the tire, while Richard Stallman merely raises an eyebrow in curiosity. You're not sure what's going to happen next, but it's clear that the party has just taken a dramatic turn for the worse.")
|
||||
|
||||
The party is over.
|
||||
12
data/levels/groundZero/groundZeroChoice4A.txt
Normal file
12
data/levels/groundZero/groundZeroChoice4A.txt
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
You suggest ketamine instead, and Alexandre Oliva's eyes light up with excitement.
|
||||
|
||||
'Ah, yes! Ketamine would be perfect for this party!' he exclaims, rummaging through his bag to find a vial of liquid.
|
||||
'It'll give us all a whole new level of...freedom.'
|
||||
|
||||
The other party attendees start to murmur among themselves, some looking intrigued and others clearly apprehensive.
|
||||
|
||||
Richard Stallman, however, looks unconvinced.
|
||||
|
||||
'I'm not sure this is such a good idea,' he says, frowning. 'We don't want anyone getting hurt here.'
|
||||
|
||||
As Alexandre Oliva starts preparing the ketamine equipment, a loud, booming voice echoes through the party area.
|
||||
7
data/levels/groundZero/groundZeroChoice4B.txt
Normal file
7
data/levels/groundZero/groundZeroChoice4B.txt
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
'Hey, what's going on here?' Eric S. Raymond asks, his eyes scanning the room with a mixture of curiosity and suspicion.
|
||||
|
||||
'You're just in time for the ketamine party!' Alexandre exclaims, holding up the vial of liquid.
|
||||
|
||||
ESR looks at you, then back at Alexandre, and raises an eyebrow.
|
||||
|
||||
'Ketamine? I thought this was a sex party' he says while looking disappointed.
|
||||
8
data/levels/heroine/heroine.txt
Normal file
8
data/levels/heroine/heroine.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
Matthew Garrett runs up to you excitedly
|
||||
'Use this heroine needle to your advantage! It'll be funny as hell!' he says.
|
||||
|
||||
Who do you want to share this beautiful HEROINE with?
|
||||
|
||||
1) Richard Stallman
|
||||
2) Alexandre Oliva
|
||||
3) Eric S. Raymond
|
||||
4
data/levels/heroine/heroineChoice1.txt
Normal file
4
data/levels/heroine/heroineChoice1.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
You inject Richard Stallman in the arm with heroine.
|
||||
He starts freaking out about being forced to use passwords.
|
||||
He looks at the clock, and starts to rage about the source code not being available.
|
||||
Holy shit! RMS is tripping balls!
|
||||
3
data/levels/heroine/heroineChoice2.txt
Normal file
3
data/levels/heroine/heroineChoice2.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
You inject Alexandre Oliva in the arm with heroine.
|
||||
His eyes roll and he falls to the ground in pure ecstacy.
|
||||
He is drooling.
|
||||
4
data/levels/heroine/heroineChoice3.txt
Normal file
4
data/levels/heroine/heroineChoice3.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
You inject Eric S. Raymond in the arm with heroine.
|
||||
He starts to sweat profusely, and freaks out.
|
||||
He starts ranting about an alleged 2nd amendment right to own nuclear weapons.
|
||||
Holy shit!
|
||||
15
data/levels/lildick/choice1.txt
Normal file
15
data/levels/lildick/choice1.txt
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
You decide to try and diffuse the tension by making a penis joke at Bryan Lunduke's expense.
|
||||
|
||||
'Hey, I've heard that men like you need to use a magnifying glass to find their own dicks,' you say with a smile.
|
||||
|
||||
Bryan Lunduke's face turns beet red with rage. 'How dare you!' he spits out. 'I'll have you know, I'm a respected member of the Trump Administration!'
|
||||
|
||||
He leans forward, his eyes blazing with anger. 'You're just trying to distract me from the real issue at hand - your own incompetence as a woke libtard!'
|
||||
|
||||
The air in the room seems to thicken with tension as Bryan Lunduke's face gets redder and redder.
|
||||
|
||||
You know, I've always wondered,' you continue, trying to keep from laughing, 'what kind of dildos your wife must use to finish herself off with after a sad session with you.'
|
||||
|
||||
Bryan Lunduke's expression doesn't change, but his eyes seem to flicker with anger. He takes a deep breath and tries to compose himself.
|
||||
|
||||
'Get out of my office!'
|
||||
9
data/levels/lildick/choice2.txt
Normal file
9
data/levels/lildick/choice2.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
You decide to try and flirt with Bryan Lunduke, hoping to catch him off guard. 'So, Bryan,' you say with a smile, 'I've heard that the best way to get ahead in this organization is to kiss up to the right people.'
|
||||
|
||||
Bryan Lunduke's expression doesn't change, but his eyes seem to flicker with interest. 'Ah, yes,' he says dryly. 'That's certainly true. But I'm afraid I'm not interested in someone so mentally ill - least of all someone as...'
|
||||
|
||||
The air in the room seems to vibrate with tension as Bryan Lunduke's gaze lingers on yours.
|
||||
|
||||
'Can you send nudes? My e-mail is bryan@lildick.com'
|
||||
|
||||
You leave the office.
|
||||
14
data/levels/lildick/lildickOffice.txt
Normal file
14
data/levels/lildick/lildickOffice.txt
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
You stand before the nondescript door, labeled 'Bryan Lunduke, Director of Anti-DEI' in Comic Sans.
|
||||
The air around you seems to thicken with unease as you reach out and turn the handle.
|
||||
A faint whiff of stale cigarettes wafts out, mingling with the scent of yesterday's coffee.
|
||||
|
||||
'Ah, you must be the new volunteer,' he says, his voice dripping with sarcasm.
|
||||
|
||||
He leans back in his chair, steepling his fingers together in a gesture that's more about concealing his hands than showing any sign of interest.
|
||||
|
||||
'So, I hear you're here to discuss the new Trump mandated Anti-DEI department,' he says, a hint of venom creeping into his voice.
|
||||
'Yes, well, because of that I wanted you to know that you're a mentally ill weirdo.'
|
||||
'How big is it? Oh... nevermind'
|
||||
|
||||
1) Make a sexist joke at his expense
|
||||
2) Flirt with him
|
||||
5
data/levels/punchnazi/nazi.txt
Normal file
5
data/levels/punchnazi/nazi.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
Bryan Lunduke walks up to you, slaps you on the ass and then proceeds to call you a mentally ill pedophile.
|
||||
|
||||
How will you respond?
|
||||
1) Punch the nazi fuck right in the face!
|
||||
2) Walk away without doing anything
|
||||
6
data/levels/punchnazi/naziMissed.txt
Normal file
6
data/levels/punchnazi/naziMissed.txt
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
You swing your fist at the nazi but he dodges it.
|
||||
|
||||
'So much for the tolerant left' he says, while winking at you.
|
||||
|
||||
You notice he has a boner.
|
||||
You leave in disgust.
|
||||
6
data/levels/punchnazi/naziPunched.txt
Normal file
6
data/levels/punchnazi/naziPunched.txt
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
You swing your first and punch that nazi piece of shit in the face!
|
||||
He falls to the floor and starts to cry like a little baby.
|
||||
|
||||
'So much for the tolerant left' he says while sniffling.
|
||||
|
||||
Bryan gets up and runs away back to his office.
|
||||
4
fourfreedoms.txt
Normal file
4
fourfreedoms.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
The freedom to run the program as you wish, for any purpose (freedom 0).
|
||||
The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
|
||||
The freedom to redistribute copies so you can help others (freedom 2).
|
||||
The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
|
||||
13
go.mod
Normal file
13
go.mod
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
module fsfadventures
|
||||
|
||||
go 1.24.4
|
||||
|
||||
require (
|
||||
github.com/mattn/go-colorable v0.1.14 // indirect
|
||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||
github.com/mattn/go-runewidth v0.0.12 // indirect
|
||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d
|
||||
github.com/muesli/reflow v0.3.0
|
||||
github.com/rivo/uniseg v0.2.0 // indirect
|
||||
golang.org/x/sys v0.29.0 // indirect
|
||||
)
|
||||
18
go.sum
Normal file
18
go.sum
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
github.com/eidolon/wordwrap v0.0.0-20161011182207-e0f54129b8bb h1:ioQwBmKdOCpMVS/bDaESqNWXIE/aw4+gsVtysCGMWZ4=
|
||||
github.com/eidolon/wordwrap v0.0.0-20161011182207-e0f54129b8bb/go.mod h1:ZAPs+OyRzeVJFGvXVDVffgCzQfjg3qU9Ig8G/MU3zZ4=
|
||||
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
|
||||
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
|
||||
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
||||
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||
github.com/mattn/go-runewidth v0.0.12 h1:Y41i/hVW3Pgwr8gV+J23B9YEY0zxjptBuCWEaxmAOow=
|
||||
github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
|
||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI=
|
||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
|
||||
github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s=
|
||||
github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8=
|
||||
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||
github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
|
||||
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
|
||||
golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
449
main.go
Normal file
449
main.go
Normal file
|
|
@ -0,0 +1,449 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
_ "embed"
|
||||
"fmt"
|
||||
"math/rand/v2"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/mgutz/ansi"
|
||||
"github.com/muesli/reflow/wordwrap"
|
||||
)
|
||||
|
||||
var PlayerName string
|
||||
var TransphobiaToggle bool
|
||||
var rank = "Volunteer"
|
||||
var isRMSdead bool
|
||||
var isLXOdead bool
|
||||
var isESRdead bool
|
||||
var isRMShigh bool
|
||||
var isLXOhigh bool
|
||||
var isESRhigh bool
|
||||
var score int
|
||||
var pink = ansi.ColorFunc("magenta")
|
||||
var green = ansi.ColorFunc("green")
|
||||
var cyan = ansi.ColorFunc("cyan")
|
||||
var red = ansi.ColorFunc("red")
|
||||
var mashkey = ansi.ColorFunc("white+h:blue")
|
||||
|
||||
//go:embed data/intro.txt
|
||||
var intro string
|
||||
|
||||
//go:embed data/levels/lildick/lildickOffice.txt
|
||||
var lildickOffice string
|
||||
|
||||
//go:embed data/levels/lildick/choice1.txt
|
||||
var lildickChoice1 string
|
||||
|
||||
//go:embed data/levels/lildick/choice2.txt
|
||||
var lildickChoice2 string
|
||||
|
||||
//go:embed data/genderSelection.txt
|
||||
var genderSelection string
|
||||
|
||||
//go:embed data/levels/heroine/heroine.txt
|
||||
var heroine string
|
||||
|
||||
//go:embed data/levels/heroine/heroineChoice1.txt
|
||||
var heroineChoice1 string
|
||||
|
||||
//go:embed data/levels/heroine/heroineChoice2.txt
|
||||
var heroineChoice2 string
|
||||
|
||||
//go:embed data/levels/heroine/heroineChoice3.txt
|
||||
var heroineChoice3 string
|
||||
|
||||
//go:embed data/levels/cocaine/cocaine.txt
|
||||
var cocaine string
|
||||
|
||||
//go:embed data/levels/cocaine/cocaineChoice1.txt
|
||||
var cocaineChoice1 string
|
||||
|
||||
//go:embed data/levels/cocaine/cocaineChoice2.txt
|
||||
var cocaineChoice2 string
|
||||
|
||||
//go:embed data/levels/cocaine/cocaineChoice3.txt
|
||||
var cocaineChoice3 string
|
||||
|
||||
//go:embed data/levels/punchnazi/nazi.txt
|
||||
var nazi string
|
||||
|
||||
//go:embed data/levels/punchnazi/naziMissed.txt
|
||||
var naziMissed string
|
||||
|
||||
//go:embed data/levels/punchnazi/naziPunched.txt
|
||||
var naziPunched string
|
||||
|
||||
//go:embed data/levels/groundZero/groundZero.txt
|
||||
var groundZero string
|
||||
|
||||
//go:embed data/levels/groundZero/groundZeroChoice1.txt
|
||||
var groundZeroChoice1 string
|
||||
|
||||
//go:embed data/levels/groundZero/groundZeroChoice2.txt
|
||||
var groundzeroChoice2 string
|
||||
|
||||
//go:embed data/levels/groundZero/groundZeroChoice2A.txt
|
||||
var groundZeroChoice2A string
|
||||
|
||||
//go:embed data/levels/groundZero/groundZeroChoice2B1.txt
|
||||
var groundZeroChoice2B1 string
|
||||
|
||||
//go:embed data/levels/groundZero/groundZeroChoice2B2.txt
|
||||
var groundZeroChoice2B2 string
|
||||
|
||||
//go:embed data/levels/groundZero/groundZeroChoice3.txt
|
||||
var groundZeroChoice3 string
|
||||
|
||||
//go:embed data/levels/groundZero/groundZeroChoice4A.txt
|
||||
var groundZeroChoice4A string
|
||||
|
||||
//go:embed data/levels/groundZero/groundZeroChoice4B.txt
|
||||
var groundZeroChoice4B string
|
||||
|
||||
func ClearScreen() {
|
||||
fmt.Print("\033[H\033[2J")
|
||||
}
|
||||
|
||||
func MashEnterKey() {
|
||||
fmt.Println(mashkey("Mash the 'Enter' key!"))
|
||||
bufio.NewReader(os.Stdin).ReadBytes('\n')
|
||||
}
|
||||
|
||||
func CheckStaff() {
|
||||
if isRMSdead {
|
||||
fmt.Println("Richard... Stallman... is dead. Our glorious leader is dead...")
|
||||
} else {
|
||||
fmt.Println("Richard Stallman is doing a silly dance with his favourite parrot.")
|
||||
}
|
||||
if isLXOdead {
|
||||
fmt.Println("Alexandre Oliva is baking cookies and muffins without an oven. Because he is in hell. Ding dong, Oliva is dead.")
|
||||
} else {
|
||||
fmt.Println("Alexandre Oliva is currently hanging out on Techrights IRC with nazis and hate speech activists.")
|
||||
}
|
||||
if isESRdead {
|
||||
fmt.Println("Eric S. Raymond has died, and a team of government agents have absconded with his body.\nPerhaps he was right about the Illuminti?")
|
||||
} else {
|
||||
fmt.Println("Eric S.Raymond is hoarding guns and working on his latest manifesto. \nThis one ain't too much about software.")
|
||||
}
|
||||
if TransphobiaToggle {
|
||||
fmt.Println("Bryan Lunduke wants to fuck you, but hes too busy masterbating to femboys.")
|
||||
} else {
|
||||
}
|
||||
}
|
||||
|
||||
func StatusScreen() {
|
||||
fmt.Println("Your name is ", pink(PlayerName))
|
||||
fmt.Println("Your rank is ", cyan(rank))
|
||||
s := strconv.Itoa(score)
|
||||
fmt.Println("Your score is", green(s))
|
||||
}
|
||||
|
||||
func GenderSheet() {
|
||||
ClearScreen()
|
||||
gender := 0
|
||||
i := 0
|
||||
x := 0
|
||||
for i < 1 {
|
||||
fmt.Println(genderSelection)
|
||||
fmt.Print(red(PlayerName), ">")
|
||||
fmt.Scan(&gender)
|
||||
switch x {
|
||||
case 1, 2:
|
||||
TransphobiaToggle = false
|
||||
i = 1
|
||||
case 3, 4, 5:
|
||||
TransphobiaToggle = true
|
||||
i = 1
|
||||
case 6:
|
||||
fmt.Print("Enter your gender: ")
|
||||
reader := bufio.NewReader(os.Stdin)
|
||||
prompt, _ := reader.ReadString('\n')
|
||||
prompt2 := strings.TrimRight(prompt, "\n")
|
||||
fmt.Println("You are a", prompt2)
|
||||
TransphobiaToggle = true
|
||||
i = 1
|
||||
default:
|
||||
i = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func BryansOffice() {
|
||||
ClearScreen()
|
||||
choice := 0
|
||||
for choice < 1 {
|
||||
fmt.Println(lildickOffice)
|
||||
fmt.Println("Your choice,")
|
||||
fmt.Print(red(PlayerName), ">")
|
||||
fmt.Scan(&choice)
|
||||
if choice == 1 {
|
||||
ClearScreen()
|
||||
fmt.Println(lildickChoice1)
|
||||
score = score + 100
|
||||
MashEnterKey()
|
||||
} else if choice == 2 {
|
||||
ClearScreen()
|
||||
fmt.Println(lildickChoice2)
|
||||
score = score + 75
|
||||
MashEnterKey()
|
||||
} else {
|
||||
choice = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func Heroine() {
|
||||
ClearScreen()
|
||||
choice := 0
|
||||
for choice < 1 {
|
||||
fmt.Println(heroine)
|
||||
fmt.Println("Your choice,")
|
||||
fmt.Print(red(PlayerName), ">")
|
||||
fmt.Scan(&choice)
|
||||
if choice == 1 {
|
||||
if isRMSdead {
|
||||
fmt.Println("Richard Stallman, our glorious leader, is dead. Heroine won't be effective.")
|
||||
MashEnterKey()
|
||||
} else {
|
||||
chance := rand.IntN(100)
|
||||
if chance < 20 {
|
||||
fmt.Println(heroineChoice1)
|
||||
MashEnterKey()
|
||||
isRMShigh = true
|
||||
score = score + 500
|
||||
} else {
|
||||
fmt.Println("Richard Stallman dodges your attempt and starts to scream and cry. \nHe runs into a closet and cuddles with his parrot.")
|
||||
MashEnterKey()
|
||||
}
|
||||
}
|
||||
} else if choice == 2 {
|
||||
if isLXOdead {
|
||||
fmt.Println("Alexandre Oliva is fucking dead. Heroine won't be effective.")
|
||||
MashEnterKey()
|
||||
} else {
|
||||
chance := rand.IntN(100)
|
||||
if chance < 50 {
|
||||
fmt.Println(heroineChoice2)
|
||||
MashEnterKey()
|
||||
isLXOhigh = true
|
||||
score = score + 100
|
||||
} else {
|
||||
fmt.Println("Alexandre Oliva dodges your attempt to give him a dose of heroine.")
|
||||
MashEnterKey()
|
||||
}
|
||||
}
|
||||
} else if choice == 3 {
|
||||
if isESRdead {
|
||||
fmt.Println("ESR is fucking dead. Heroine won't be effective.")
|
||||
MashEnterKey()
|
||||
} else {
|
||||
chance := rand.IntN(100)
|
||||
if chance < 50 {
|
||||
fmt.Println(heroineChoice3)
|
||||
MashEnterKey()
|
||||
isESRhigh = true
|
||||
score = score + 100
|
||||
} else {
|
||||
fmt.Println("ESR slaps the needle out of your hand.")
|
||||
MashEnterKey()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
choice = 0
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
func Cocaine() {
|
||||
ClearScreen()
|
||||
choice := 0
|
||||
for choice < 1 {
|
||||
fmt.Println(cocaine)
|
||||
fmt.Println("Your choice,")
|
||||
fmt.Print(red(PlayerName), ">")
|
||||
fmt.Scan(&choice)
|
||||
if choice == 1 {
|
||||
if isRMSdead {
|
||||
fmt.Println("Richard Stallman, our glorious leader, is dead. \nNot even cocaine can restart his heart at this point.")
|
||||
MashEnterKey()
|
||||
choice = 0
|
||||
} else {
|
||||
chance := rand.IntN(100)
|
||||
if chance < 20 {
|
||||
fmt.Println(cocaineChoice1)
|
||||
MashEnterKey()
|
||||
isRMShigh = true
|
||||
score = score + 100
|
||||
choice = 1
|
||||
} else {
|
||||
fmt.Println("Richard Stallman tells you that drugs are bad. \nNot because they are harmful to your body, but because the recipes are not GPLv3.")
|
||||
MashEnterKey()
|
||||
}
|
||||
}
|
||||
} else if choice == 2 {
|
||||
if isLXOdead {
|
||||
fmt.Println("Alexandre Oliva is fucking dead. \nYou sprinkle some of the cocaine on his corpse... It does nothing.")
|
||||
MashEnterKey()
|
||||
choice = 0
|
||||
} else {
|
||||
chance := rand.IntN(100)
|
||||
if chance < 50 {
|
||||
fmt.Println(cocaineChoice2)
|
||||
MashEnterKey()
|
||||
isLXOhigh = true
|
||||
score = score + 50
|
||||
choice = 1
|
||||
} else {
|
||||
fmt.Println("Alexandre Oliva casually avoids you when you pull out the bag. Shit!")
|
||||
MashEnterKey()
|
||||
choice = 1
|
||||
}
|
||||
}
|
||||
} else if choice == 3 {
|
||||
if isESRdead {
|
||||
fmt.Println("ESR is fucking dead. Cocaine won't be effective.")
|
||||
MashEnterKey()
|
||||
choice = 0
|
||||
} else {
|
||||
chance := rand.IntN(100)
|
||||
if chance < 40 {
|
||||
fmt.Println(cocaineChoice3)
|
||||
MashEnterKey()
|
||||
isESRhigh = true
|
||||
score = score + 75
|
||||
} else {
|
||||
fmt.Println("ESR slaps the bag of coke out of your hand, picks it up and throws it into the trash.")
|
||||
fmt.Println("'You know that stuff was invented by the CIA right?'")
|
||||
MashEnterKey()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
choice = 0
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
func PunchNazi() {
|
||||
choice := 0
|
||||
ClearScreen()
|
||||
for choice < 1 {
|
||||
fmt.Println(nazi)
|
||||
fmt.Println("Your choice,")
|
||||
fmt.Print(red(PlayerName), ">")
|
||||
fmt.Scan(&choice)
|
||||
if choice == 1 {
|
||||
chance := rand.IntN(100)
|
||||
if chance < 50 {
|
||||
fmt.Println(naziPunched)
|
||||
score = score + 100
|
||||
MashEnterKey()
|
||||
} else {
|
||||
fmt.Println(naziMissed)
|
||||
MashEnterKey()
|
||||
}
|
||||
} else if choice == 2 {
|
||||
fmt.Println("You don't have time for that piece of shit. You simply walk away.")
|
||||
MashEnterKey()
|
||||
} else {
|
||||
choice = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func GroundZero() {
|
||||
choice1 := 0
|
||||
for choice1 < 1 {
|
||||
ClearScreen()
|
||||
fmt.Println(groundZero)
|
||||
fmt.Println("Your choice,")
|
||||
fmt.Print(red(PlayerName), ">")
|
||||
fmt.Scan(&choice1)
|
||||
if choice1 == 1 {
|
||||
ClearScreen()
|
||||
fmt.Println(groundZeroChoice1)
|
||||
score = score + 100
|
||||
fmt.Println()
|
||||
} else if choice1 == 2 {
|
||||
ClearScreen()
|
||||
fmt.Println(groundzeroChoice2)
|
||||
MashEnterKey()
|
||||
ClearScreen()
|
||||
chance := rand.IntN(100)
|
||||
if chance < 50 {
|
||||
fmt.Println(groundZeroChoice2A)
|
||||
MashEnterKey()
|
||||
} else {
|
||||
fmt.Println(groundZeroChoice2B1)
|
||||
MashEnterKey()
|
||||
ClearScreen()
|
||||
fmt.Println(groundZeroChoice2B2)
|
||||
isLXOdead = true
|
||||
MashEnterKey()
|
||||
score = score + 200
|
||||
ClearScreen()
|
||||
}
|
||||
} else if choice1 == 3 {
|
||||
ClearScreen()
|
||||
fmt.Println(groundZeroChoice3)
|
||||
MashEnterKey()
|
||||
score = score + 50
|
||||
} else if choice1 == 4 {
|
||||
ClearScreen()
|
||||
fmt.Println(groundZeroChoice4A)
|
||||
MashEnterKey()
|
||||
ClearScreen()
|
||||
fmt.Println(groundZeroChoice4B)
|
||||
MashEnterKey()
|
||||
score = score + 75
|
||||
} else {
|
||||
choice1 = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
p := fmt.Println
|
||||
ClearScreen()
|
||||
fmt.Println(green(intro))
|
||||
fmt.Println()
|
||||
fmt.Println("Richard Stallman walks over to you. He starts doing a weird dance while he molests a parrot.")
|
||||
fmt.Println()
|
||||
fmt.Println("'Who the fuck are you? A Microsoft Spy?' he demands.")
|
||||
fmt.Println()
|
||||
fmt.Print("Enter your damned name: ")
|
||||
reader := bufio.NewReader(os.Stdin)
|
||||
prompt, _ := reader.ReadString('\n')
|
||||
playerNameMaker := strings.Clone(prompt)
|
||||
PlayerName = strings.TrimRight(playerNameMaker, "\n") // removes a trailing "Return" key that fucks everything up (i dont want the enter key IN the variable)
|
||||
ClearScreen()
|
||||
fmt.Println("Welcome to the ", red("Free Software Foundation!"))
|
||||
fmt.Println()
|
||||
p(wordwrap.String("The year is 2028, our glorious leader, Dr. Richard Stallman, saved the Free Software Foundation from the brink of financial collapse.\n\nThe invention of a new form of nutritional yeast was discovered in his toes, and it is so powerful it can cure some forms of cancer.", 80))
|
||||
fmt.Println()
|
||||
fmt.Println("You are the latest recruit to enter the brand new FSF HQ.")
|
||||
fmt.Println()
|
||||
fmt.Println("You actually are a spy for Microsoft. Your mission is to take over the organization by any means necessary.")
|
||||
fmt.Println()
|
||||
StatusScreen()
|
||||
fmt.Println()
|
||||
fmt.Println("Are you ready for a GNU Dawn?")
|
||||
fmt.Println()
|
||||
MashEnterKey()
|
||||
GenderSheet()
|
||||
if TransphobiaToggle {
|
||||
BryansOffice()
|
||||
} else {
|
||||
}
|
||||
GroundZero()
|
||||
Cocaine()
|
||||
Heroine()
|
||||
CheckStaff()
|
||||
fmt.Println()
|
||||
StatusScreen()
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue