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)