For now, I'm sticking with Python, I think! That being said, I'm going to use this thread as a place to post some of the stuff I'm working on, organize my thoughts, and possibly (hopefully!) receive advice from those with more experience--I hope that's alright!
Right now, I'm working on rebuilding my GUI interface from the ground up. Previously, I mentioned the GUI was deeply entangled with 'game events', and I wanted to disentangle them--I also wanted to institute a GUI Stack, where each window is its own 'stack' (with the 'game window'--the map that represents the actual game--being at the bottom of the stack). This would be so I could interrupt the user's gameplay to present them with 'inescapable' choices--things they have to click to proceed--but also so I could do things like allow the user to click an item in their inventory, bring it to the main map, and drop it on a tile--causing the user to 'throw' that item toward an enemy/tile/wall.
Here's how it looks so far:
These are all instances of the 'GraphWindow' object; it's a type of window that relies on a particular type of graph (the RectGraph--essentially, it's just a dictionary with a preset number of key: value pairs--you cannot add any new keys to this dictionary--you can only change the values the keys are associated with).
Right now, the interface allows you to 'click' on a potion, thereby creating a new GUI state (the 'ItemState')--your cursor 'becomes' the potion, which you can then move to an empty slot, clicking and dropping it into that slot (at which point the ItemState ends!). So it's possible to rearrange your inventory.
I've got 'Inventory', and I've got 'Status' and 'View'--that's because rather than having a traditional status bar (with hitpoints, status effects, etc), I want to reduce the majority of stats to non-integer-based 'states', or icons. If you're injured, you'll have an 'Injured' icon; if you're seriously injured, you'll have a 'Seriously Injured' icon. Similarly, View is just all the icons of the creatures/items of interest in your current view (since items can be stacked on top of one another in a square, this makes quickly determining the presence of 'valuable' or 'interesting' items easier--you don't have to flip through the stack).
There's a bunch of other stuff I'm glossing over here--but once I clean this up a bit, the next step will be to bring back the 'main map', I think.