diff --git a/.gitignore b/.gitignore index 9c2c34a..a81cb5e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ maps saves __pycache__ -winsh.py -yamltest.py +gameshell.geany diff --git a/gamebase.py b/gamebase.py index 66debad..6433ef6 100644 --- a/gamebase.py +++ b/gamebase.py @@ -448,7 +448,7 @@ Object can be the name of the object, or its coordinates.""" if self.level.name not in self.persist: self.persist[self.level.name] = {} for i in self.level.persistent: - self.persist[self.level.name][i] = self.level.getThingByName(i) + self.persist[self.level.name][i] = self.level.getThingByID(i) preLoaded = False if args[0] in self.persist: @@ -613,7 +613,7 @@ Object can be the name of the object, or its coordinates.""" return False def handleTake(self, e): - self.level.removeThing(e.item.name) + self.level.removeThingByName(e.item.name) self.playerInv[e.item.name] = e.item return True diff --git a/gamemap.py b/gamemap.py index 6b36195..e715cd7 100644 --- a/gamemap.py +++ b/gamemap.py @@ -697,7 +697,7 @@ list of lists of tuples.""" self.thingNames[thing.name].append(thing.thingID) self.things[thing.thingID] = thing if persist: - self.persistent.append(thing.name) + self.persistent.append(thing.thingID) return nextThing def getThing(self, **kwargs): @@ -889,6 +889,8 @@ The closeEnough parameter will create a path that lands beside the source if nec self.thingNames[oldName].remove(thing.thingID) if len(self.thingNames[oldName]) == 0: del self.thingNames[oldName] + if thing.thingID in self.persistent: + self.persistent.remove(thing.thingID) del self.things[thing.thingID] return thing else: diff --git a/gameshell.py b/gameshell.py index 38473ab..7d3da4a 100644 --- a/gameshell.py +++ b/gameshell.py @@ -212,6 +212,13 @@ If -l is given, a map legend will be printed under the map.""" ret.append("Player name:{0:.>68}".format(self.gameBase.playerName)) ret.append("Player position:{0:.>64}".format("{0}{1}".format(self.gameBase.numberToLetter(self.gameBase.playerx), self.gameBase.playery))) ret.append("Prev. position:{0:.>65}".format("{0}{1}".format(self.gameBase.numberToLetter(self.gameBase.prevx), self.gameBase.prevy))) + ret.append("Things:\nID Name X Y") + for i in self.gameBase.level.things: + j = self.gameBase.level.things[i] + ret.append("{0:<7} {1:<31} {2:<3} {3:<3}".format(i, j.name, j.x, j.y)) + ret.append("Persistent:") + for i in self.gameBase.level.persistent: + ret.append(str(i)) print('\n'.join(ret)) #heapq.heappush(self.gameBase.eventQueue, (self.gameBase.gameTime, gameevents.NoOpEvent())) return