I haven't been doing nothing on the project exactly, but I'll admit there's not a lot of actual programming work to show for it lately. I've been thinking. Thinking about things like this. If this seems a little incoherent it's because I'm writing this as I work it out in my head.
One of the ideas of the game is that the player has to manipulate the game world to get around in it. What you do changes the world, and changing the world is dangerous. Like, putting a piton in a wall could crack the wall, causing liquid to drip through, possibly weakening the wall further, eventually destroying the rock face the piton is in.
It's not good enough to use a new cell type for each type of tool, because otherwise things like pitons and ropes will block fluids, which is no good. Instead, each cell needs its own Tool field. That adds a little overhead to the cell structure and cellturn(), but isn't too bad.
A rope can be tied to a piton. The question is however, how to represent this rope? Do we arbitrarily plop it down when the piton is placed? What if the piton is removed then, how will we know to remove the rope? If multiple pitons are placed vertically so their ropes overlap, how will we know to remove the right ones?
Another thing is, I've learned a bit more about how Python handles recently, particularly I've cleared up in my head how it handles static class variables, which stands to simplify the code a bit and make it more maintainable, but requires going back and redoing some of my old work.
So work is continuing, and in fact should speed up now. I find my energy for project work tends to come and go, based both on internal and external factors. Updates should be frequent again, at least for a while to come.