55 lines
1.3 KiB
Python
55 lines
1.3 KiB
Python
|
import json,os.path,copy
|
||
|
class Pokemon:
|
||
|
def __init__(self):
|
||
|
self.pkmns = dict()
|
||
|
def __getitem__(self,k):
|
||
|
return self.pkmns[k]
|
||
|
def add(self,**kwargs):
|
||
|
self.pkmns[kwargs["name"]] = kwargs
|
||
|
|
||
|
class PCBox:
|
||
|
"""Pokemon box"""
|
||
|
def __init__(self):
|
||
|
self.pokemon = []
|
||
|
|
||
|
def move(self,pkmn):
|
||
|
self.pokemon.append(pkmn)
|
||
|
|
||
|
def get(self):
|
||
|
return self.pokemon
|
||
|
|
||
|
@classmethod
|
||
|
def fromList(cls,l):
|
||
|
ret = cls()
|
||
|
ret.pokemon = l
|
||
|
return ret
|
||
|
|
||
|
class PokemonGame:
|
||
|
"""A game of Pokemon. Up to 6 mons, 300000 pokeyen, and 4 moves per Pokemon."""
|
||
|
def __init__(self,owner,prompt):
|
||
|
self.setupPKMNList()
|
||
|
try:
|
||
|
with open(os.path.join("/home/minerobber/.pkmn/",owner+".json"),"r") as f:
|
||
|
self.data = json.load(f)
|
||
|
self.name = self.data["name"]
|
||
|
self.pokeyen = self.data["pokeyen"]
|
||
|
self.pkmn = self.data["pkmn"]
|
||
|
self.pc = []
|
||
|
for item in self.data["boxes"]:
|
||
|
self.pc.append(PCBox.fromList(item))
|
||
|
except IOError as e:
|
||
|
self.name = prompt()
|
||
|
self.pokeyen = 3000
|
||
|
self.pkmn = []
|
||
|
self.pc = [PCBox()]*20
|
||
|
|
||
|
def addPKMN(self,type):
|
||
|
if len(self.pkmn)==6:
|
||
|
return False
|
||
|
self.pkmn.append(copy.copy(self.pkmnl[type]))
|
||
|
|
||
|
def setupPKMNList(self):
|
||
|
self.pkmnl = Pokemon()
|
||
|
self.pkmnl.add(name="Charmander",maxhp=39,atk=52,dfn=43,spa=60,sde=50,speed=65,evolves=dict(at=16,to="Charmeleon"))
|
||
|
self.pkmnl.add(name="Charmeleon")
|