FLEOHSIS didn’t look like it would be a playable game in time for the end of the challenge, so I invoked plan B: a really basic text roguelike with a simple concept.
In Corpse Stacker, you’re trapped in a 10-by-10 grid, zombies regularly appear at the edges, and when you kill them they stack up on the ground. You win if you build a stack of 10 zombie corpses. You lose if they eat you first.
It’s about two days since I started work on FLEOHSIS (github). I’ve been mostly working on interface code the past two days (making the display data-driven, using the observer pattern to keep it updated). I pledged not to spend 6 days writing engine code this year, so it’s time to start implementing gameplay features. First: defense and attack abilities on health cards!
BearLibTerminal always looks great. Probably because it has TrueType fonts and no tutorials telling people to use clown vomit colours for everything.
euclid3 is a nice lightweight library with 2D vectors that behave in sensible ways. Apart from its __repr__ function, which thinks everything needs a decimal point. And the Vector2 class name, which needs a capital V to tab-complete. Both easily fixed with monkey patches.
Bits of code that I ripped out of last year’s 7DRL.
Things that didn’t work so well:
mypy is a nice idea, but I like namedtuples, I like default arguments, and I like to write code full of namedtuples with default arguments, and Python’s type hinting facilities just can’t handle them. Not until Python 3.6.1, which is scheduled for release a week after the end of the challenge.
BearLibTerminal’s documentation isn’t quite in sync with its features, so I spent an hour or two bashing my head against the change in how to specify text wrapping bounds.
For 7DRL 2017 I’m going to try something which has been in my ideas file for a few years: a card-based health system where each health card gives you different abilities depending on whether it’s healthy or damaged.
You control the order in which normal enemy attacks damage your health cards, so you can influence how your abilities change as your health changes.
On the other hand, different types of attacks might affect health cards in a different order. You can use this to disable enemies quickly, but enemies with special attacks could likewise subvert your sequence of health cards.
I’m going to be taking some inspiration from deckbuilding board games to restrict how players can customise their health card loadout.
I’ll be using Python 3 and BearLibTerminal for display, and Wangscape to generate terrain tilesets. My piano’s getting tuned on Tunesday Tuesday, so I might record a piece or two for background music.