def _make_item(self):
     newitem = Item(self._command[1], self._command[2])
     addinventory(self._local, StatusConst.INVENTORY, newitem)
     self._controller.addcommand(self._local.title, CommandConst.GET, Get)
     self._controller.addcommand(self._local.title, CommandConst.SEE, See)
     if len(self._command) > 3:
         self._createstatus(newitem, self._command[3:])
         if hasstatus(newitem, StatusConst.CONTAINER):
             self._controller.addcommand(self._local.title, CommandConst.OPEN, Open)
         if hasstatus(newitem, StatusConst.QUANT):
             for i in range(int(getstatus(newitem, StatusConst.QUANT))-1):
                 addinventory(self._local, StatusConst.INVENTORY, newitem)
         if hasstatus(newitem, StatusConst.INSIDE):
             containername = getstatus(newitem, StatusConst.INSIDE)
             inv = getinventory(self._local, StatusConst.INVENTORY)
             if containername in inv:
                 addstatus(newitem, StatusConst.VISIBLE, False)
             else:
                 raise ContainerNotFoundError(containername)
 def _make_NPC(self):
     newnpc = NPC(self._command[1], self._command[2])
     addstatus(self._local, self._command[1], newnpc)
     if len(self._command) > 3:
         self._createstatus(newnpc, self._command[3:])
 def _createstatus(self, cls, lis):
     """Add a list of status in a class"""
     for elem in lis:
         statusname, statusattribute = elem.lower().split(':')
         addstatus(cls, statusname, statusattribute)
 def addlocal(self, local, idx, object):
     if isinstance(object, TextObject):
         addstatus(local, idx, object)
     else:
         self._controller.addcommand(local, idx, object)
 def createtextobject(self,name,description, statusdic=None):
     obj = TextObject(name,description)
     for k, v in statusdic.items():
         addstatus(obj, k, v)
     return obj
 def createitem(self,name,description, statusdic=None):
     item = Item(name,description)
     if statusdic:
         for k, v in statusdic.items():
             addstatus(item, k, v)
     return item
 def addplayerstatus(self, idx, idstatus, valuestatus):
     if idx.lower() == self._idplayer:
         addstatus(self._controller.player,idstatus,valuestatus)