Added the following capabilities:
- add an unlimited amount of mechs
- find all mechs associated with a player
This commit is contained in:
Wholesomedonut 2020-09-15 14:23:55 -06:00
parent 147becca89
commit 125a520bce
2 changed files with 90 additions and 37 deletions

85
main.py
View File

@ -1,36 +1,65 @@
import mech
from collections import defaultdict
import clean_dict as c
import os
debug = True
def add_player(lobby_dict):
# Set the name
temp = input("Input your name: ")
# and immediately add it and a first mech into the lobby
test1 = mech.Mech(quiet=False,debug=True)
lobby_dict[temp] = test1
# cleans None from lobby
lobby_dict = c.clean(lobby_dict)
return lobby_dict
mech_list = []
menu_choices = ["n","l","q"]
# add more choices as needed
def add_mech(lobby_dict):
# takes the lobby the player is in
player = input("Input your player ID: ")
# will need to authenticate player input (this would be serverside IRL)
temp = [lobby_dict[player]]
# temporary copy of current player's lobby info'
temp.append(mech.Mech(quiet=False,debug=True))
# adds new mech onto list
return temp
main_menu = """ Main Menu:
(n)ew mech,
(l)ist a player's mechs,
or (q)uit the session.
"""
lobby_dict = defaultdict(list)
def make_mech(mech_list):
# take the given mech list
m = mech.Mech(quiet=False, debug=False)
mech_list.append(m)
return mech_list
test2 = mech.Mech(quiet=True,debug=True)
def get_player_mechs(mech_list):
player = input("Search for player name: ")
print("Mech list for: ",player)
for unit in mech_list:
u = unit.card # just for easy typing
if u["player"] == player:
print("Mech name: ",u["name"])
print("Mech variant: ",u["dez"])
print("Mech size: ",u["size"])
print("\n")
add_player(lobby_dict)
for player in lobby_dict.items():
print('Player: ',player)
lobby_dict[player] = add_mech(lobby_dict)
def menu(choice):
if choice not in menu_choices:
print("Incorrect choice. Try again.")
os.system('cls' if os.name == 'nt' else 'clear')
elif choice == 'n':
make_mech(mech_list)
return True
elif choice == 'l':
get_player_mechs(mech_list)
return True
elif choice == 'q':
print("Bye!")
return False
else:
print("This should literally be impossible to get to.")
print("THOU FOOL! THOU HAST DESECRATED MINE ROBITZ")
def main(debug):
play = True
while play:
# Clear the screen
os.system('cls' if os.name == 'nt' else 'clear')
print(main_menu)
play = menu(input("Make your choice: "))
# will automatically break the loop if you select 'q'
main(debug)

42
mech.py
View File

@ -1,7 +1,17 @@
import clean_dict as c
class Mech:
def __init__(self, name='NewMech', dez='NEW-1',size=1, skill=1, tmm=1, debug=True,quiet=True):
def __init__(self,
name='NewMech',
dez='NEW-1',
size=1,
skill=1,
tmm=1,
debug=True,
quiet=True):
# the 'quiet' flag tells the constructor whether
# to set everything as defaults,
# or to let the user set the data for the instance.
if not quiet:
self.name = input("Mech name: ")
self.size = input("Mech size: ")
@ -9,6 +19,7 @@ class Mech:
self.tmm = input("Total Movement Modifier: ")
self.dez = input("Variant name: ")
self.debug = debug
self.player = input("Assign mech to player? Leave blank for none: ")
else:
self.name = name
self.dez = dez
@ -16,20 +27,26 @@ class Mech:
self.skill = skill
self.tmm = tmm
self.debug = debug
self.player = ''
self.card = {
"name": self.get_name(),
"size": self.get_size(),
"skill": self.get_skill(),
"tmm": self.get_tmm(),
"dez": self.get_dez()
}
self.card = {
"player": self.get_player(),
"name": self.get_name(),
"dez": self.get_dez(),
"size": self.get_size(),
"skill": self.get_skill(),
"tmm": self.get_tmm()
}
if debug: print(self.card)
if debug: print(self.card)
def set_name(self, name):
self.name = name
self.card["name"] = name
def set_dez(self, dez):
self.dez = dez
self.card["dez"] = dez
def set_size(self, size):
self.size = size
@ -42,6 +59,10 @@ class Mech:
def set_tmm(self, tmm):
self.tmm = tmm
self.card["tmm"] = tmm
def set_player(self, player):
self.player = player
self.card["player"] = player
def get_name(self):
return self.name
@ -57,3 +78,6 @@ class Mech:
def get_tmm(self):
return self.tmm
def get_player(self):
return self.player