gameMenu() is done!!! We've got some new menus so players can look at characters' statuses, abilities, and inventory!
from PlayableCharacter import PlayableCharacter
class GameMenu(object):
PClist = []
# PChp List will use [current, total]
PChpList = []
# The Recource will use [current, total, name]
def __init__(self):
#Defualt for now
self.PClist = []
self.PChpList = []
self.PCRecourceList = []
def update(self, playerCharacters):
self.PClist = []
self.PCRecourceList = []
self.PChpList = []
for ch in playerCharacters:
self.PClist.append(ch)
self.PChpList.append([str(ch.currentHealth), str(ch.health)])
self.PCRecourceList.append([str(ch.currentEnergy), str(ch.energyValue), str(ch.energyName)])
def displayPC(self, playableCharacter):
print(playableCharacter.displayName)
print("level: " + str(playableCharacter.level))
options = []
i = 0
while i < len(self.PClist):
if (playableCharacter == self.PClist[i]):
break
i += 1
print("HP: " + self.PChpList[i][0] + "/" + self.PChpList[1][1])
print(self.PCRecourceList[i][2] + ": " + self.PCRecourceList[i][0] + "/" + self.PCRecourceList[i][1])
print("Skill(cost) ")
i = 0
while i < len(playableCharacter.skills):
print(playableCharacter.skills[i] + "("+ str(playableCharacter.skillCosts[i]) + ")")
i += 1
print("Inventory: ")
i = 0
for item in playableCharacter.inventory:
options.append(i)
print(str(i) + ": " + item)
i += 1
options.append(i)
print(str(i) + ": Use nothing")
return options
def displayGameMenu(self):
i = 0
options = []
while i < len(self.PClist):
if self.PClist[i].level > 0:
options.append(i)
print(str(i) + ":" + self.PClist[i].displayName + ": " + self.PChpList[i][0] + "/" + self.PChpList[i][1] + " hp, " + self.PCRecourceList[i][0] + "/" + self.PCRecourceList[i][1] + " " + self.PCRecourceList[i][2])
i += 1
print(str(i) + ": Nothing")
options.append(i)
return options
The new things to look at are dsiplayGameMenu(), which shows the menu with the Player charters and basic information on it, displayCharacter() which shows more specific information for the character passed in the parameter, and the shift in PCResourceList and PChpList to holding strings of the values instead of the integers to make it easier to display in the previously mentioned functions. Then a chunk of explorer was updated to properly implement the functions:
if playerChoice == 4:
os.system("cls")
listing = menu.displayGameMenu()
Checker = inputAndCheck("Inspect: ", listing)
os.system("cls")
if Checker < len(menu.PClist):
itemAwsner = menu.displayPC(menu.PClist[Checker])
itemAwsner = inputAndCheck("Use: ", itemAwsner)
if itemAwsner < len(characters[Checker].inventory):
input("item has effect!")
With the implementation, we can finally see the results produced by the completion of the class GameMenu().
![]() |
displayMenu() |
I've decided that I should tackle the Combat() class next so we can get that big chunk of work out of the way (and lets be honest the game isn't very fun with just traveling)!
Comments
Post a Comment