93 lines
2.6 KiB
Python
93 lines
2.6 KiB
Python
from time import sleep
|
|
from .player import Player
|
|
import tools
|
|
|
|
|
|
PLAYER_INIT_LOCATION = "Luna"
|
|
class GameManager:
|
|
'Manage the game'
|
|
|
|
def __init__(self, userInput, planets):
|
|
self.gameIsRunning = True
|
|
self.player = Player(userInput, PLAYER_INIT_LOCATION)
|
|
self.planets = planets
|
|
|
|
def isGameRunning(self):
|
|
return self.gameIsRunning
|
|
|
|
def stopGame(self):
|
|
self.gameIsRunning = False
|
|
|
|
def printPlayerStats(self):
|
|
tools.clearScreen()
|
|
print("Name: ", self.player.getName())
|
|
print("Location: ", self.player.getLocation())
|
|
self.player.printInventory()
|
|
print()
|
|
|
|
def getTradeHubItems(self):
|
|
return self.planets[
|
|
self.player.getLocation()].getTradeHub().getItems()
|
|
|
|
def buyMenu(self):
|
|
tools.clearScreen()
|
|
tradeHubItems = self.getTradeHubItems()
|
|
while True:
|
|
tools.clearScreen()
|
|
i=0
|
|
for item in tradeHubItems:
|
|
print(f"{i}, {item.getName()}")
|
|
i+=1
|
|
userInput = input("Which Item would you like to buy? (e)xit \n>> ")
|
|
|
|
if userInput == "e":
|
|
break
|
|
|
|
try:
|
|
itemNumber = int(userInput)
|
|
except ValueError:
|
|
continue
|
|
|
|
if itemNumber < i and itemNumber > -1:
|
|
print("You have choosen: " + tradeHubItems[itemNumber].getName())
|
|
userInput = input("How many would you like?\n>> ")
|
|
try:
|
|
itemQuantity = int(userInput)
|
|
except ValueError:
|
|
continue
|
|
else:
|
|
continue
|
|
|
|
if itemQuantity == 0:
|
|
print("NO ITEMS ADDED!")
|
|
break
|
|
|
|
userInput = input(f"Are you sure you want {itemQuantity} {tradeHubItems[itemNumber].getName()}? (y/n)\n>> ").lower()
|
|
|
|
if userInput == "y":
|
|
self.player.addItem(tradeHubItems[itemNumber], itemQuantity)
|
|
else:
|
|
print("NO ITEMS ADDED!")
|
|
sleep(1)
|
|
|
|
break
|
|
|
|
|
|
def enterTradeHub(self):
|
|
tools.clearScreen()
|
|
while True:
|
|
userInput = input("(e)xit\n\n(l)ist items\n(b)uy\n>> ").lower()
|
|
|
|
if userInput == 'e':
|
|
tools.clearScreen()
|
|
break;
|
|
|
|
elif userInput == 'l':
|
|
tools.clearScreen()
|
|
self.planets[self.player.getLocation()].getTradeHub().printItems()
|
|
|
|
elif userInput == 'b':
|
|
self.buyMenu()
|
|
else:
|
|
tools.clearScreen()
|