From 9d1a0af6fb33efafcb43cbe664b6f8048bc616cc Mon Sep 17 00:00:00 2001 From: Starstreak Date: Thu, 7 Aug 2025 09:06:29 +0000 Subject: [PATCH] =?UTF-8?q?Added=20more=20to=20game=20=F0=9F=98=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 596 +++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 377 insertions(+), 219 deletions(-) diff --git a/main.go b/main.go index cf6e73a..9affc6f 100644 --- a/main.go +++ b/main.go @@ -1,291 +1,449 @@ package main import ( + "bufio" + _ "embed" "fmt" "math/rand/v2" "os" "strconv" "strings" - "bufio" - _ "embed" - - "github.com/charmbracelet/lipgloss" + "github.com/mgutz/ansi" + "github.com/muesli/reflow/wordwrap" ) -//go:embed menu.txt -var menu string +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 levels/wifey.txt -var wifey string - -//go:embed levels/wife-fucked.txt -var wifeyFucked string - -//go:embed officers.txt -var officers string - -//go:embed intro.txt +//go:embed data/intro.txt var intro string -//go:embed levels/propertyRoom.txt -var propertyRoom string +//go:embed data/levels/lildick/lildickOffice.txt +var lildickOffice string -// other variables - keep these from mixing with above embed strigs - its a weird go thing -var stats string -var PlayerName string -var condoms = 10 -var money = 1800 -var whores = 1 -var cocaines = 0 -var fentanyl = 0 -var oxies = 0 -var LSD = 0 +//go:embed data/levels/lildick/choice1.txt +var lildickChoice1 string -var border = lipgloss.NewStyle(). - BorderStyle(lipgloss.NormalBorder()). - BorderForeground(lipgloss.Color("63")) +//go:embed data/levels/lildick/choice2.txt +var lildickChoice2 string -var storyBorder = lipgloss.NewStyle(). - BorderStyle(lipgloss.NormalBorder()). - Width(75). - BorderForeground(lipgloss.Color("228")). - BorderBackground(lipgloss.Color("#0000FF")) +//go:embed data/genderSelection.txt +var genderSelection string -var statsStyle = lipgloss.NewStyle(). - BorderStyle(lipgloss.NormalBorder()). - Foreground(lipgloss.Color("#ffffffff ")). - Background(lipgloss.Color("#2a2a60ff")) +//go:embed data/levels/heroine/heroine.txt +var heroine string -var red = lipgloss.NewStyle(). - Foreground(lipgloss.Color("#ffffffff ")). - Background(lipgloss.Color("#f20b0bff")) +//go:embed data/levels/heroine/heroineChoice1.txt +var heroineChoice1 string -var green = lipgloss.NewStyle(). - Foreground(lipgloss.Color("#18e60aff ")). - Background(lipgloss.Color("#55576aff")) +//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(statsStyle.Render("Mash the 'Enter' key!")) + fmt.Println(mashkey("Mash the 'Enter' key!")) bufio.NewReader(os.Stdin).ReadBytes('\n') } -func breakRoom() { - fmt.Println("Not Implemented") - MainMachine() +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 doctorsRoom() { - fmt.Println("Not Implemented") - MainMachine() +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 hitTheStreets() { - fmt.Println("Not Implemented") - MainMachine() -} - -func PropertyRoom() { +func GenderSheet() { ClearScreen() + gender := 0 i := 0 - choice := "" + x := 0 for i < 1 { - fmt.Println(storyBorder.Render(propertyRoom)) - fmt.Println("Your choice,") - fmt.Print(green.Render(PlayerName), ">") - fmt.Scan(&choice) - if strings.ToUpper(choice) == "C" { - ClearScreen() - fmt.Println(border.Render("Cocaine Menu")) - fmt.Println("Price: ", red.Render("$1000 per gram.")) - fmt.Println("Your cash: $", strconv.Itoa(money)) - fmt.Println("") - fmt.Println("Buy one gram (Y/N)?") - cokePurchase := "" - fmt.Scan(&cokePurchase) - if strings.ToUpper(cokePurchase) == "Y" { - if money > 1000 { - cocaines = cocaines + 1 - money = money - 1000 - fmt.Println("You just purchased 1 gram of coke!") - MashEnterKey() - i = 0 - } else { - fmt.Println(red.Render("Get some money, broke-ass!")) - MashEnterKey() - i = 0 - } - } else { - i = 0 - } - } else if strings.ToUpper(choice) == "L" { - ClearScreen() - fmt.Println(border.Render("LSD Menu")) - fmt.Println("Price: ", red.Render("$100 for five tabs.")) - fmt.Println("Your cash: $", strconv.Itoa(money)) - fmt.Println("") - fmt.Println("Buy six tabs (Y/N)?") - LSDPurchase := "" - fmt.Scan(&LSDPurchase) - if strings.ToUpper(LSDPurchase) == "Y" { - if money > 100 { - LSD = LSD + 5 - money = money - 100 - fmt.Println("You just purchased 5 tabs of LSD!") - MashEnterKey() - i = 0 - } else { - fmt.Println(red.Render("Get some money, broke-ass!")) - MashEnterKey() - i = 0 - } - } else { - i = 0 - } - } else if strings.ToUpper(choice) == "F" { - ClearScreen() - fmt.Println(border.Render("Fentanyl Menu")) - fmt.Println("Price: ", red.Render("$500 per hundred milligrams.")) - fmt.Println("Your cash: $", strconv.Itoa(money)) - fmt.Println("") - fmt.Println("Buy 100 milligrams (Y/N)?") - fentyPurchase := "" - fmt.Scan(&fentyPurchase) - if strings.ToUpper(fentyPurchase) == "Y" { - if money > 500 { - fentanyl = fentanyl + 1 - money = money - 500 - fmt.Println("You just purchased 1 bag of fenty!") - MashEnterKey() - i = 0 - } else { - fmt.Println(red.Render("Get some money, broke-ass!")) - MashEnterKey() - i = 0 - } - } else { - i = 0 - } - } else if strings.ToUpper(choice) == "R" { + fmt.Println(genderSelection) + fmt.Print(red(PlayerName), ">") + fmt.Scan(&gender) + switch x { + case 1, 2: + TransphobiaToggle = false i = 1 - MainMachine() - } else { + 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 redRoom() { - fmt.Println("Not Implemented") - MainMachine() -} - -func ClockOut() { - choice := 0 +func BryansOffice() { ClearScreen() - fmt.Println(storyBorder.Render(wifey)) + choice := 0 for choice < 1 { + fmt.Println(lildickOffice) fmt.Println("Your choice,") - fmt.Print(green.Render(PlayerName), ">") + fmt.Print(red(PlayerName), ">") fmt.Scan(&choice) - switch choice { - case 1: - chance := rand.IntN(100) - if chance < 50 { - ClearScreen() - if cocaines < 1 { - fmt.Println(red.Render("You pull out 1kg of cocaine and smash it open all over your face")) - cocaines = cocaines - 1 - fmt.Println(red.Render("You shout 'COKE SLAM!'")) - fmt.Println(red.Render("You bust your wife right in the fucking face!")) - fmt.Println(red.Render("YARRRRR! (You don't know why you're a pirate now)")) - MashEnterKey() - } else { - fmt.Println(red.Render("You bust your wife right in the fucking face!")) - } - } else { - ClearScreen() - fmt.Println(red.Render("You try to bust your wife in the face but she dodges you and runs out the front door!")) - fmt.Println(red.Render("Oh well.. who is she gonna call bro?")) - MashEnterKey() - } - choice = 1 - case 2: - fmt.Println(border.Render(wifeyFucked)) - fmt.Println("You fuck your wife like one of your dirty whores!") + if choice == 1 { + ClearScreen() + fmt.Println(lildickChoice1) + score = score + 100 MashEnterKey() - choice = 1 - case 3: - fmt.Println("You take some of your drugs. You are enjoying your life for once.") - choice = 1 - default: + } else if choice == 2 { + ClearScreen() + fmt.Println(lildickChoice2) + score = score + 75 + MashEnterKey() + } else { choice = 0 } } } -func CheckStats() { - stats = "PLAYER STATS" + "\n\n" + "Name " + "\n" + PlayerName + "\n" + "Condoms: " + strconv.Itoa(condoms) + "\n" + "Money: $" + strconv.Itoa(money) + "\n" + "Whores:" + strconv.Itoa(whores) + "\n" + "Cocaine (1 gram bags): " + strconv.Itoa(cocaines) + "\n" + "Fentanyl (100/mg bags): " + strconv.Itoa(fentanyl) + "\n" + "Oxycodone (pills): " + strconv.Itoa(oxies) + "\n" + "LSD (tabs): " + strconv.Itoa(LSD) // builds the stats paragraph for the main screen +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 MainMachine() { +func Cocaine() { ClearScreen() - i := 0 - choice := "" - for i < 1 { - ScreenMachine() + choice := 0 + for choice < 1 { + fmt.Println(cocaine) fmt.Println("Your choice,") - fmt.Print(green.Render(PlayerName), ">") + fmt.Print(red(PlayerName), ">") fmt.Scan(&choice) - if strings.ToUpper(choice) == "H" { - hitTheStreets() - i = 1 - } else if strings.ToUpper(choice) == "P" { - PropertyRoom() - i = 1 - } else if strings.ToUpper(choice) == "B" { - breakRoom() - i = 1 - } else if strings.ToUpper(choice) == "R" { - redRoom() - i = 1 - } else if strings.ToUpper(choice) == "D" { - doctorsRoom() - i = 1 - } else if strings.ToUpper(choice) == "G" { - ClockOut() - i = 1 + 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 { - i = 0 + 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 ScreenMachine() { - CheckStats() - fmt.Println(border.Render("OPP Wars - Corruption")) - fmt.Println(lipgloss.JoinHorizontal(lipgloss.Top, border.Render(menu), statsStyle.Render(stats))) // makes a horizontal display joining two paras - +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() { - officerStyle := lipgloss.NewStyle().Foreground(lipgloss.Color("0000FF")) - fmt.Println(border.Render("OPP Wars - Corruption")) - fmt.Println(officerStyle.Render(officers)) - MashEnterKey() + p := fmt.Println ClearScreen() - fmt.Println(border.Render("OPP Wars - Corruption")) - fmt.Println(storyBorder.Render(intro)) - fmt.Print("Enter your damned name, Constable: ") + 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() - MainMachine() - + 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() }