work!
This commit is contained in:
@@ -12,6 +12,9 @@ ITEMS = {"food": 3, "medicine": 5, "catnip": 5}
|
|||||||
|
|
||||||
BASE_INVENTORY = {item: 0 for item in ITEMS}
|
BASE_INVENTORY = {item: 0 for item in ITEMS}
|
||||||
|
|
||||||
|
WORK_START_LETTERS = 2
|
||||||
|
WORK_EARN_PER_ROUND = 3
|
||||||
|
|
||||||
CAT_COLORS = [
|
CAT_COLORS = [
|
||||||
"orange tabby",
|
"orange tabby",
|
||||||
"black",
|
"black",
|
||||||
|
|||||||
@@ -60,3 +60,7 @@ def buy(player, item, price):
|
|||||||
player.money -= price
|
player.money -= price
|
||||||
player.inventory[item] += 1
|
player.inventory[item] += 1
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def earn(player, amount):
|
||||||
|
player.money += amount
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
from untitled import ui
|
from untitled import ui
|
||||||
from untitled.screens import shop
|
from untitled.screens import shop, work
|
||||||
|
|
||||||
|
|
||||||
def options():
|
def options():
|
||||||
@@ -14,6 +14,8 @@ def options():
|
|||||||
|
|
||||||
|
|
||||||
def go_to(save):
|
def go_to(save):
|
||||||
match ui.select("Where do you want to go?", ["The shop", "Back"]):
|
match ui.select("Where do you want to go?", ["The shop", "Work", "Back"]):
|
||||||
case "The shop":
|
case "The shop":
|
||||||
shop.shop(save)
|
shop.shop(save)
|
||||||
|
case "Work":
|
||||||
|
work.work(save)
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ def house(save: model.Save):
|
|||||||
case "Check on your cat":
|
case "Check on your cat":
|
||||||
rules.reconcile(save.cat, time.time())
|
rules.reconcile(save.cat, time.time())
|
||||||
print(
|
print(
|
||||||
f"{save.cat.name}, {generation.generate_trait_sentence(save.cat.traits).lower()}\nFullness: {round(save.cat.fullness,1)}\nHappiness: {round(save.cat.happiness,1)}"
|
f"{save.cat.name}, {generation.generate_trait_sentence(save.cat.traits).lower()}\nFullness: {round(save.cat.fullness,1)}\nHappiness: {round(save.cat.happiness,1)}\nMoney: {save.player.money}"
|
||||||
)
|
)
|
||||||
case "Feed your cat":
|
case "Feed your cat":
|
||||||
rules.reconcile(save.cat, time.time())
|
rules.reconcile(save.cat, time.time())
|
||||||
|
|||||||
51
untitled/screens/work.py
Normal file
51
untitled/screens/work.py
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
import random
|
||||||
|
import string
|
||||||
|
import time
|
||||||
|
|
||||||
|
from untitled import content, rules, ui
|
||||||
|
|
||||||
|
|
||||||
|
def work(save):
|
||||||
|
length = content.WORK_START_LETTERS
|
||||||
|
total_earned = 0
|
||||||
|
lost = False
|
||||||
|
print("Welcome to work!")
|
||||||
|
print("The rules:")
|
||||||
|
print(
|
||||||
|
"Each round, a string of letters will appear, when it says go, type them from memory. If you miss one, you lose, each round gets more money."
|
||||||
|
)
|
||||||
|
if not ui.confirm("Would you like to start?"):
|
||||||
|
return
|
||||||
|
for i in range(3, 0, -1):
|
||||||
|
print(i)
|
||||||
|
time.sleep(1)
|
||||||
|
ui.clear()
|
||||||
|
print("Start!")
|
||||||
|
while not lost:
|
||||||
|
seconds = 1 + (length * 0.5)
|
||||||
|
letters = random.choices(string.ascii_lowercase, k=length)
|
||||||
|
print(f"Round {len(letters)-1}")
|
||||||
|
print("Memorize:", " ".join(letters))
|
||||||
|
for i in range(round(seconds), 0, -1):
|
||||||
|
print(i)
|
||||||
|
time.sleep(1)
|
||||||
|
ui.clear()
|
||||||
|
print(f"Round {len(letters)-1}")
|
||||||
|
print("Type!")
|
||||||
|
for letter in letters:
|
||||||
|
key = ui.getch().lower()
|
||||||
|
print(key, end=" ", flush=True)
|
||||||
|
if key != letter:
|
||||||
|
print(f"\nThe correct key was: {letter}")
|
||||||
|
lost = True
|
||||||
|
break
|
||||||
|
if not lost:
|
||||||
|
total_earned += content.WORK_EARN_PER_ROUND
|
||||||
|
print("\nCorrect!")
|
||||||
|
time.sleep(1)
|
||||||
|
ui.clear()
|
||||||
|
length += 1
|
||||||
|
rules.earn(save.player, total_earned)
|
||||||
|
print(
|
||||||
|
f"Game finished! You earned ${total_earned}, you now have ${save.player.money}!"
|
||||||
|
)
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import sys
|
||||||
import time
|
import time
|
||||||
|
|
||||||
import questionary
|
import questionary
|
||||||
@@ -46,3 +47,21 @@ def text(title, default):
|
|||||||
|
|
||||||
def confirm(title):
|
def confirm(title):
|
||||||
return questionary.confirm(title).ask()
|
return questionary.confirm(title).ask()
|
||||||
|
|
||||||
|
|
||||||
|
def getch():
|
||||||
|
if sys.platform == "win32":
|
||||||
|
import msvcrt
|
||||||
|
|
||||||
|
return msvcrt.getwch()
|
||||||
|
else:
|
||||||
|
import termios
|
||||||
|
import tty
|
||||||
|
|
||||||
|
fd = sys.stdin.fileno()
|
||||||
|
old = termios.tcgetattr(fd)
|
||||||
|
try:
|
||||||
|
tty.setcbreak(fd)
|
||||||
|
return sys.stdin.read(1)
|
||||||
|
finally:
|
||||||
|
termios.tcsetattr(fd, termios.TCSADRAIN, old)
|
||||||
|
|||||||
Reference in New Issue
Block a user