From ff422ce1d42188282d5d6aa7af46783d4cf2c47c Mon Sep 17 00:00:00 2001 From: bo Date: Tue, 31 Jan 2023 11:13:44 +0100 Subject: [PATCH] bs txt adv game --- trollStory.py | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 trollStory.py diff --git a/trollStory.py b/trollStory.py new file mode 100644 index 0000000..6875b30 --- /dev/null +++ b/trollStory.py @@ -0,0 +1,162 @@ +import os , time , random +trollface = "⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣤⣤⣤⣴⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣦⣤⣤⣤⣀⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⣿⣿⢿⣟⣛⣭⡽⠶⠶⠶⠮⠭⠭⣭⣭⣭⣭⣭⣭⣭⣿⣿⣯⣭⣥⣄⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⣿⢟⣫⣶⠿⣫⣭⣶⠿⠿⣿⣿⣿⠿⢿⣷⣶⣮⣭⣭⣭⣭⣭⣷⣶⣶⣶⣾⣽⣿⣷⣦⡀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣫⣾⣟⣩⣞⣫⣵⣿⣿⣿⣿⣿⣿⣿⣯⢻⣿⣿⣿⣿⣿⣿⢻⣿⣿⣿⣿⣶⣍⡻⣿⣿⣿⣷⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⣴⣿⣿⣿⣿⣿⣿⣿⣵⣿⡿⠿⠛⠛⠛⠛⠿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣣⣿⣿⣿⣿⠿⢿⣿⣷⣼⣿⣿⣿⣇⠀⠀⠀⠀\n⠀⠀⠀⠀⢀⣚⣯⣽⣿⣿⣿⣿⢻⣿⣏⡅⠀⠀⠀⠀⠀⠠⣿⣷⣯⡛⣿⣿⣿⣿⣿⣿⡿⠟⠉⠁⠐⣿⣿⣶⣽⣿⣟⣛⡻⠿⣦⡀⠀⠀\n⠀⢀⣴⣞⣯⣷⠶⣒⣛⣛⡻⢿⣷⣿⣷⣾⣶⣾⢟⣿⣿⣿⣶⣯⣟⣫⣿⣿⣿⣿⣿⣍⠀⣀⣤⣤⣬⣭⣽⣿⣿⣿⣿⣿⣿⣟⢶⡝⣦⠀\n⠀⣿⡿⣾⣿⣵⣿⣿⣿⣿⣿⣷⣾⣭⣽⣿⣭⣵⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢸⣿⣿⣿⣿⣿⡿⠿⢟⣫⣭⣭⣽⣿⣷⣿⢸⠀\n⠀⣿⡇⣿⣿⣿⡿⠿⢟⣴⣬⣛⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣻⣿⣿⣿⣿⣿⣿⣷⣝⣛⢿⣿⣿⣿⣿⣿⣿⡟⣿⣿⣿⢟⣿⢸⠀\n⠀⢿⣧⣿⣿⣿⣿⣿⣧⢻⣿⣿⣿⣷⣮⢙⡻⠿⣿⣿⣯⣭⣾⡇⣿⣿⣟⣭⣻⣿⣿⣿⣿⣿⡿⣸⣿⠿⢿⣿⣿⡿⡁⢹⣿⣷⢿⣱⠇⠀\n⠀⠀⠻⢷⣝⣿⣿⣿⣿⣧⠉⠻⢿⣿⣿⢸⣿⣿⣷⣶⣭⣝⢛⠿⢿⣿⣿⣿⣿⣿⣯⣙⣛⣭⣾⣿⣿⣿⣿⠿⡋⣾⣿⡈⣿⣿⣿⡏⠀⠀\n⠀⠀⠀⠀⠸⣽⣿⣿⣿⣿⣷⡽⣿⣷⣆⢘⠿⣿⣿⣿⣿⣿⢸⣿⣿⣶⣶⣶⡎⣭⣭⣭⣭⡩⣭⣭⣽⣦⣰⣿⣧⢿⣿⡇⣿⣿⣿⠀⠀⠀\n⠀⠀⠀⠀⠀⠘⣿⣿⣿⣿⣿⣿⣮⣻⣏⣿⣿⣾⣯⣍⠛⠋⠻⢿⣿⣿⣿⣿⡇⣿⣿⣿⣿⡇⣿⣿⣿⣿⡟⣿⠟⠈⠉⠀⣿⣿⡏⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿⣿⣿⣿⣿⣾⡿⣿⣿⣿⣿⣿⢦⣴⣦⣬⣍⡛⠛⠈⠛⠛⠛⠛⠁⠙⠛⠛⠉⠀⠀⠀⠀⢠⡆⣿⣿⡇⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠘⢿⣿⣿⣿⣿⣿⣿⣿⣮⣿⡻⣿⢏⣾⣿⣿⣿⣿⣿⣷⣶⣾⣷⣶⣄⣴⣶⣤⡤⣶⣶⡆⣾⡿⡸⣱⣿⣿⡇⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠿⣷⣝⡻⢶⣽⣻⢿⣿⣷⣭⣝⣻⣿⡿⠿⠿⠏⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⡿⠱⣿⣃⣵⣿⣿⣿⣧⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⢿⣶⣝⡻⢷⣮⣝⡻⢿⣿⣿⣿⣿⣿⣿⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣾⣿⣿⡿⣿⣿⣿⣿⣿⡄⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠿⢷⣮⣝⡻⢿⣷⣮⣭⣛⣻⠿⠿⣿⣶⣶⣶⣶⣿⣿⣿⠿⢿⣛⣽⣾⣿⡿⣹⣿⣿⡇⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠻⢿⣾⣶⣭⣽⣛⣛⠿⠿⠶⢶⣶⣶⣶⣶⡿⠿⠿⢟⣛⣭⣷⣿⣿⣿⣿⠇⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠛⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠉⠛⠛⠛⠛⠿⠿⠛⠛⠛⠉⠁⠀⠀⠀⠀⠀" +welcome = "\nHey, $tranger. You guessed it right, yeah, im a troll. $0 let's skip the FAKE P0LITENE$$ & get directly into the dirty busine$$ of FAKE NEW$. $hall we?" +autors = ['Average Citizen 1','Average Citizen 2','Average Citizen 3','NÄSA','UTOPIA TODAY'] +bio = ['Hello world!:','Happy, generally speaking:','What a wonderful life:','Expløre the universe and discover øur høme plänet with @NÄSA.','Bursting the mainstream media bubble!'] +tweets = ['This government is a complete and utter failure. #Resign! Losers!',' Happy, generally speaking: The Mainstream Media is one massive conspiracy. #FakeNews','Is everybody else stupid or what? The Earth is not flat, its a CUBE! #Conspiracy','Meteorite alert: large space object set to hit US West Coast. #BeSafe','The Best Words has just joined the fight against the mainstream media! #GoodNews'] + +# Setting up the current (saved) state +currentRoom = "newsroom" +start = True +following = False +produce = 0 +items = { + "newsroom": ["knife", "computer", "resume", "cables", "toiletPaper"], + "trainingZone": ["employees", "snacks", "beer"], + "neutralzone": ['trainingZone','office,'], + "office": ["allSortsOfIsms", "secrets", "underWear", "bullShit"] +} + +inventory = [] + +# Seperating the text and printing in delay so the content on the screen is readable and easy to comprehend +def printer (text): + for t in text: + print(t, end = "", flush= True) + # time.sleep(random.choice([0.01, 0.05, 0.1, 0.03, 0.02])) + print() + +# Defining the "taker" function and setting it up in each of the three rooms below +def taker(room): + if any(x in spliti for x in ["get", "grab", "take"]): + for item in items[room]: + if item in spliti: + printer("You took the " + item + ". Now what?") + inventory.append(item) + items[room].remove(item) + +# Creating the while-loop +while True: + if (start == True): + printer("Troll Story: The Game") + print(trollface) + printer(welcome) + start = False + + if (following == True): + printer("You Won! More Ethical Dilemmas coming you waaaaaay.") + exit() + +# Clearing the screen: "cls" for Windows; "clear" for macOS + i = input() + os.system("clear") + spliti = i.split(" ") + +# Creating an inventory + if "inventory" in i: + printer("In you current inventory is " + ", ".join(inventory)) + +# Choices in the newsroom + if currentRoom == "newsroom": + if i in ["yes","go","start"]: + printer("You're a journalist working for a small independent news outlet.\nYou're silently sitting on your desk in the newsroom, checking emails. Oh, shit! You just got a new one - a tip about a mysterious company called 'The Hive'.") + i = input("Read the email?") + if i == "read": + printer("Apparently, the company is rumoured to be a front for a massive online propaganda operation. So let's go undercover as an employee of The Hive and gather information to expose the truth behind the company's operations.") + currentRoom = "newsroom" + elif i == ["check","open","read"]: + printer("Apparently, the company is rumoured to be a front for a massive online propaganda operation. So let's go undercover as an employee of The Hive and gather information to expose the truth behind the company's operations.") + currentRoom = "newsroom" + + elif i in ["look","see","explore"]: + printer("You look around your desk! There is a " + ", ".join(items["newsroom"]) + ". Which of these objects could get you inside the company?") + + elif i in ["apply","get hired","start working","go undercover"]: + printer("You are hired as a $ocial media analy$t! You must navigate the company's workplace culture in order to gather information.\nAvoid arousing suspicion! Play along with The Hive's propaganda campaigns and maintain a low profile.") + currentRoom = "newsroom" + + elif i in ["exit","walk","leave"]: + printer("You exit the newsroom. Go to work.") + currentRoom = "trainingZone" + + else: + taker("newsroom") + +# Choices in the training zone + elif currentRoom == "trainingZone": + if i in ["look","go","explore"]: + printer("You're in the Hive's training zone. Here hundreds of employees are vigorously typing on their keyboards. Let's talk with somebody!") + #printer("Oh look in the room! There is " + ", ".join(items["trainingZone"])) + + elif i in ["talk","ask","say"]: + printer("Hey there, I'm new here. What should I do?") + printer("Welcome to The Hive, the best company to work in the entire metaWorse! We are working on a massive project aimed at analyzing public opinion and creating a brave, new world. Blah blah blah...") + i = input("Let's investigate further and get your hands dirty!") + if i == "investigate": + printer("Our company employs hundreds of workers. Each worker spends the day creating multiple social media accounts and posting tweets and memes.") + printer("Show us what you got! Get as many followers as you can. Post some viral (and by that we mean 'frustrating') tweets!") + + elif i in ["write","produce","post","tweet"]: + printer('Autor: ' + random.choice(autors)) + printer('Bio: ' + random.choice(bio)) + printer('Tweet: ' + random.choice(tweets)) + +# The "gain-following" system. Every "produce" adds 1000 users to the player's following count. The goal is to reach 100 points or credits. + printer("You have worked $0 hard. If you keep it up you can get a promotion very $00N.") + produce = produce + 1000 + printer("Follower count: " + str(produce) + " users.") + + elif i in ["exit","walk","leave"]: + printer("You exit the training zone.") + i = input("Now what? Find the Master or get back and gain more followers?") + if i == "gain": + printer("You got back to the training zone.") + #currentRoom = "trainingZone" + elif i == "find": + printer("You exit the training zone.") + currentRoom = "neutralzone" + else: + taker("trainingZone") + +# Choices in the neutral zone + elif currentRoom == "neutralzone": + if i in ["look","see","explore"]: + printer("You're in the neutral zone in The Hive's HQ.") + + elif i in ["exit","walk","leave"]: + printer("There are two doors. The one on your left leads to the Hive's training zone, the other, to the Master's office.") + i = input("Which room? (left or right)") + if i == "left": + printer("You enter the training zone.") + currentRoom = "trainingZone" + elif i == "right": + printer("You enter the Master's office.") + currentRoom = "office" + else: + taker("neutralzone") + +# Choices in the office + elif currentRoom == "office": + if i in ["look","see","view","explore"]: + printer("You're in the Master's office and looks like he is there. Let's investigate!") + printer("You look around and notice " + ", ".join(items["office"]) + ". Now, let's see if you can ask for a promotion and see if they trust you enough!") + +# The 'gain followers' condition, if followers >= 5000 --> Life Dilemma If <4999 --> Go produce more propaganda. + elif i in ["talk","speak","ask"]: + printer("Master, please excuse me.") + printer("Master: Well, well... It's you, worker 1046385. Hurry up, I'm busy, what do you want?") + i = input() + if i in ["promotion","money","prestige","power"]: + if produce >= 5000: + printer("You've been very loyal to the company since you started here, I noticed. You will get what you asked for under one condition...\nDevide your followers and get them fight against each other just to keep them oblivios.") + printer("This game is inspired by the BAD NEWS game:https://www.getbadnews.com/books/english/ \nThe goal of the game is to expose the tactics and manipulation techniques that are used to mislead people and build up a following.\nChatGPT gave me some hints on the storyline.") + following = True + else: + printer("Your current follower count is " + str(produce) + " users. You're getting pretty good at this. Let's see how far we can take these skills you've learned. Come back when you hit 5000.") + + elif i in ["exit","run","leave"]: + printer("You exit the Master's office.") + currentRoom = "trainingZone" + + else: + taker("office") \ No newline at end of file