Compare commits

...

2 Commits

Author SHA1 Message Date
ea0c475074 Refactor; start buy menu
Change tradeable items from dict to list;
give tradehubs proper inventory;
Make inventory adding dumber
2021-05-11 16:29:45 -04:00
42885f4a52 Add inventory 2021-05-11 14:58:22 -04:00
7 changed files with 94 additions and 14 deletions

14
main.py
View File

@ -15,11 +15,11 @@ def titleScreen():
def mainGame():
tools.clearScreen()
tradeableItems = {
"flour" : obj.Item("flour", 0.5),
"Rice Cakes" : obj.Item("Rice Cakes", 1),
"Water" : obj.Item("Water", 25)
}
tradeableItems = [
obj.Item("flour", 0.5),
obj.Item("Rice Cakes", 1),
obj.Item("Water", 25)
]
#Create TradeHubs
tradeHubs = {
@ -29,8 +29,7 @@ def mainGame():
tradeHubs["The Jackel"].addItems(tradeableItems)
tradeableItems.pop("flour")
tradeableItems.pop()
tradeHubs["Star Crapper"].addItems(tradeableItems)
@ -42,7 +41,6 @@ def mainGame():
planets["BoB"].addTradeHub(tradeHubs["Star Crapper"])
planets["Luna"].addTradeHub(tradeHubs["The Jackel"])
# Create user
userInput = ""

View File

@ -2,4 +2,5 @@ from .tradeHub import TradeHub
from .planet import Planet
from .item import Item
from .gameManager import GameManager
from .inventorySlot import InventorySlot
#from .player import Player

View File

@ -21,12 +21,29 @@ class GameManager:
tools.clearScreen()
print("Name: ", self.player.getName())
print("Location: ", self.player.getLocation())
self.player.printInventory()
print()
def buyMenu(self):
print()
while True:
i=0
for item in self.planets[self.player.getLocation()].getTradeHub().getItems().getInventory():
print(f"{i}, {item.getName()}")
i+=1
userInput = input("Which Item would you like to buy? (e)xit \n>> ")
if userInput == "e":
break
#choose number
#ask for quantity
#Confirm
#add item with quantity to player inv
def enterTradeHub(self):
tools.clearScreen()
while True:
userInput = input("(e)xit\n\n(l)ist items\n>> ").lower()
userInput = input("(e)xit\n\n(l)ist items\n(b)uy\n>> ").lower()
if userInput == 'e':
tools.clearScreen()
@ -35,5 +52,8 @@ class GameManager:
elif userInput == 'l':
tools.clearScreen()
self.planets[self.player.getLocation()].getTradeHub().printItems()
elif userInput == 'b':
self.buyMenu()
else:
tools.clearScreen()

24
obj/inventory.py Normal file
View File

@ -0,0 +1,24 @@
from obj.item import Item
from obj.inventorySlot import InventorySlot
class Inventory:
'Object to hold items and quantity'
def __init__(self):
#TODO Make limited slots
# __init__(self, numberOfSlots)
self.items = []
def addItem(self, item, quantity):
self.items.append(InventorySlot(item, quantity))
def printInventory(self):
print("Items: ")
print(f"{'Name' : <15}{'- - - - - | - - - - -' : ^10}{'Quantity' : >8}")
print()
for slot in self.items:
print(f"{slot.getName() : <15}{'* * * * * | * * * * *' : ^10}{str(slot.getQuantity()) : >5}")
print()
def getInventory(self):
return self.items

23
obj/inventorySlot.py Normal file
View File

@ -0,0 +1,23 @@
class InventorySlot:
'One item plus quantity'
#Do I want to add the value here too?
def __init__(self, item, quantity):
self.item = item
self.quantity = quantity
def incItem(self, amount):
self.quantity += amount
def decItem(self, amount):
self.quantity -=amount
def getQuantity(self):
return self.quantity
def getName(self):
return self.item.getName()
def getPrice(self):
return self.item.getPrice()

View File

@ -1,8 +1,11 @@
from obj.inventory import Inventory
class Player:
def __init__(self, name, location):
self.name = name
self.location = location
self.inventory = Inventory()
def getName(self):
return self.name
@ -12,4 +15,8 @@ class Player:
def getLocation(self):
return self.location
def addItem(self, item, quantity):
self.inventory.addItem(item, quantity)
def printInventory(self):
self.inventory.printInventory()

View File

@ -1,15 +1,22 @@
from obj.inventory import Inventory
class TradeHub:
'Contains items to sell'
def __init__(self, name):
self.name = name
self.items = {}
self.items = Inventory()
def addItems(self, items):
self.items = items
for item in items:
self.items.addItem(item, 100)
def getItems(self):
return self.items
def printItems(self):
print(f"{'Name' : <15}{'- - - - - | - - - - -' : ^10}{'Cost' : >6}")
print()
for item in self.items.values():
print(f"{item.getName() : <15}{'* * * * * | * * * * *' : ^10}{str(item.getPrice()) : >5}")
for slot in self.items.getInventory():
print(f"{slot.getName() : <15}{'* * * * * | * * * * *' : ^10}{str(slot.getPrice()) : >5}")
print()